本项目基于streamlit + heroku搭建实现。项目旨在实现对X光安检图像中的卷烟目标进行定位识别和辅助警告。卷烟目标识别算法基于对YOLOv4算法进行微调实现。本项目的编译环境:python3.8 + opencv 4.4。
本部分将对Web应用程序中三种模式进行详细的介绍。用户可以通过侧边栏的功能菜单选择不同的运行模式,详细情况如下:
-
应用介绍:介绍项目概况、程序的四种基本运行模式、目标检测算法指标和反思当前工作的不足。
-
单图检测:实现的功能包括:(1)单张测试图片上传;(2)测试图片展示;(3)如果图片包含卷烟目标,展示标注结果;(4)如何图片不包含卷烟目标或检测失败,给出提示信息;(5)支持调整目标检测算法的置信度阈值和IOU阈值并重新显示测试结果。
-
测试展示:在测试集的数据范围内,手工标注结果同卷烟目标检测算法预测结果的对比展示。
本部分记录YOLOV4算法在部分迭代次数下的指标情况统计。数据集均按照Pascal Voc格式组织。所有指标的计算结果均采用官方C版YOLOv4算法提供的计算方式得到。
序号 | 迭代次数 | 置信度 | precision | recall | mAP@0.50 | precision | recall | mAP@0.75 |
---|---|---|---|---|---|---|---|---|
1 | 1600 | 0.25 | 0.99 | 1.00 | 0.999365 | 0.83 | 0.83 | 0.778261 |
2 | 1700 | 0.25 | 0.97 | 0.94 | 0.928080 | 0.72 | 0.71 | 0.535769 |
3 | 1800 | 0.25 | 0.98 | 0.94 | 0.982245 | 0.69 | 0.67 | 0.573664 |
4 | 1900 | 0.25 | 1.00 | 0.97 | 1.000000 | 0.83 | 0.82 | 0.744467 |
5 | 2000 | 0.25 | 1.00 | 0.95 | 0.991744 | 0.84 | 0.82 | 0.762587 |
- 采用图片混合拼接等方法增强安检图像数据,增大现有烟草数据集的挑战性。
- 改进现有算法,提升模型在更具有挑战性的烟草图像数据集上的性能指标。