70 lines
2.2 KiB
Markdown
70 lines
2.2 KiB
Markdown
# 图像分类器项目
|
||
|
||
本项目包含多种基于MobileNet特征提取的图像分类器实现,包括三层神经网络、随机森林和KNN算法。
|
||
|
||
## 模型对比
|
||
|
||
| 模型 | 算法类型 | 特点 | 适用场景 |
|
||
|------|---------|------|---------|
|
||
| 三层神经网络 | 深度学习 | 自定义全连接网络,支持训练监控、早停、正则化 | 需要高精度、可解释性强的场景 |
|
||
| 随机森林 | 集成学习 | 多决策树投票,参数直观可调 | 中等规模数据集,需要模型解释性 |
|
||
| KNN (原版) | 实例学习 | 简单实现,预测结果平滑处理 | 快速原型开发,小规模数据 |
|
||
| KNN (完善版) | 实例学习 | 增强阈值控制,支持单类别检测 | 异常检测、单类别分类场景 |
|
||
|
||
## 详细说明
|
||
|
||
### 三层神经网络分类器
|
||
- 使用MobileNet进行特征提取
|
||
- 自定义三层全连接网络进行分类
|
||
- 功能特点:
|
||
- 训练过程可视化(损失/准确率曲线)
|
||
- 支持早停、正则化等技巧
|
||
- 模型保存/加载功能
|
||
- 温度缩放调整预测置信度
|
||
|
||
### 随机森林分类器
|
||
- 使用MobileNet特征作为输入
|
||
- 构建多个决策树进行集成分类
|
||
- 可调参数:
|
||
- 决策树数量(默认10棵)
|
||
- 训练集子集比例(默认70%)
|
||
- 特点:
|
||
- 训练速度快
|
||
- 提供ImageNet标签显示功能
|
||
|
||
### KNN分类器(原版)
|
||
- 基于MobileNet特征的K最近邻算法
|
||
- 特点:
|
||
- 实现简单
|
||
- 低通滤波器平滑预测结果
|
||
- 支持模型保存/加载
|
||
|
||
### KNN分类器(完善版)
|
||
在原版基础上增强:
|
||
- 距离阈值控制
|
||
- 自适应阈值计算
|
||
- 改进的单类别检测
|
||
- 更详细的训练反馈
|
||
|
||
## 使用指南
|
||
|
||
1. 选择分类器类型
|
||
2. 上传各类别训练图片
|
||
3. 调整模型参数(如适用)
|
||
4. 点击"训练模型"按钮
|
||
5. 使用摄像头或上传图片进行预测
|
||
|
||
## 技术实现
|
||
|
||
所有分类器均基于以下技术:
|
||
- 特征提取:MobileNet (TensorFlow.js)
|
||
- 前端框架:纯JavaScript实现
|
||
- 数据存储:浏览器本地存储(IndexedDB)
|
||
|
||
## 开发建议
|
||
|
||
- 对于高精度需求:使用三层神经网络
|
||
- 对于可解释性需求:使用随机森林
|
||
- 对于快速原型开发:使用KNN
|
||
- 对于异常检测:使用完善版KNN
|
||
· |