图像分类器项目

本项目包含多种基于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 ·
Description
No description provided
Readme 27 MiB
Languages
Jupyter Notebook 49.5%
JavaScript 18.2%
TypeScript 17.3%
HTML 14.2%
CSS 0.7%