# 图像分类器项目 本项目包含多种基于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