传送带箱子跌落检测系统(基于YOLOv8的先进可视化与混淆矩阵分析)
1. 项目概述
本项目采用YOLOv8n模型检测传送带上运输箱体的跌落异常情况。系统针对4GB内存环境优化,包含全面的可视化功能和详细的性能分析。
2. 核心特性
2.1 检测能力
- 🎯 基于YOLOv8n的高效箱体跌落检测
- 💾 专为4GB内存优化的训练参数配置
2.2 分析功能
- 📊 完整数据集分析与可视化
- 🔄 混淆矩阵驱动的深度性能分析
- 📈 训练过程监控(损失曲线/评估指标)
2.3 输出展示
- 🖼️ 预测效果展示与样例图像网格
- 📄 专业HTML分析报告生成
- 🍎 原生支持macOS M1/M2 Metal加速
3. 技术栈
- 开发语言:Python 3.8+
- 核心框架:YOLOv8 (Ultralytics)
- 深度学习:PyTorch
- 图像处理:OpenCV
- 数据分析:Pandas & NumPy
- 可视化:Matplotlib & Seaborn
- 机器学习:Scikit-learn
4. 数据集构建流程
4.1 Three.js三维仿真
- 🎮 基于Three.js构建传送带三维仿真环境
- 模拟不同箱体尺寸/运输速度/跌落场景
- 配置多角度摄像机与动态光照条件
- 程序化生成箱体跌落动画序列
4.2 图像采集
- 📸 捕获数千帧仿真画面
- 记录正常运输与箱体跌落状态
- 涵盖多种环境条件与箱体类型
- 构建多样化场景样本库
4.3 自动标注
- 🏷️ 实时记录箱体空间坐标
- 程序化计算边界框坐标
- 自动生成CSV格式标注文件
- 智能划分fall/no_fall类别
4.4 YOLO格式转换
- 🔄 CSV坐标转YOLO TXT格式
- 执行坐标归一化处理(0-1范围)
- 划分训练集/验证集/测试集
- 生成data.yaml配置文件
5. 检测效果对比
| 正常运输状态 | 箱体跌落检测 |
|---|---|
| ![正常运输] | ![跌落检测] |
| ✅ 平稳运行 | ❌ 跌落预警 |
6. 可视化输出
![指标分析1] ![混淆矩阵] ![PR曲线] ![损失曲线] ![检测示例]
7. 性能指标
系统计算并可视化以下核心指标:
- mAP50:IoU=0.5时的平均精度
- mAP50-95:多阈值平均精度
- Precision:精确率
- Recall:召回率
- F1-Score:调和平均数
- Accuracy:准确率
- Specificity:特异度
8. 配置参数
8.1 训练参数
train_args={'epochs':20,# 训练轮次'imgsz':416,# 图像尺寸'batch':4,# 批大小(4GB内存优化)'device':'mps',# macOS用'mps',Windows/Linux用'cuda'/'cpu''patience':15,# 早停等待轮次'workers':2,# 数据加载线程数'amp':False,# 禁用混合精度训练'cache':False# 禁用图像缓存(RAM优化)}8.2 数据增强
augmentation_args={'hsv_h':0.01,# 色相增强幅度'hsv_s':0.3,# 饱和度增强幅度'hsv_v':0.2,# 明度增强幅度'degrees':3,# 旋转角度范围'translate':0.03,# 平移幅度范围'scale':0.2,# 缩放幅度范围'flipud':0.0,# 垂直翻转概率'fliplr':0.5,# 水平翻转概率'mosaic':0.8# 马赛克增强概率}9. 内存优化建议
针对4GB内存设备的配置方案:
- 设置batch_size=4
- 关闭图像缓存(cache=False)
- 限制数据加载线程(workers=2)
- 禁用混合精度训练(amp=False)