之前完成一个安全帽识别的项目. 来分享一下心得.
1. 选择模型
AB大神的YOLOv3.
github 链接 : https://github.com/AlexeyAB/darknet
相比于YOLOv2, 在小物体上的识别提升了很多,我们看看对比.
对比
小物体识别,在实际应用中这是一个很重要的方面.
2. 训练模型
数据非常多大概有200G(图片,视频), 几个工地N个监控点位的图片(白天黑夜都有).
200G数据不是全部都使用了的, 我自己挑了一些出来训练(我自己认为质量较高的数据), 目标数估计有7~8万个.
数据集包含以下情况:
(1) 大目标, 中目标, 小目标
(2) 白天, 晚上
(3) 分5类 白, 蓝, 黄, 红, 没戴帽子(正), 其余分类辅助没戴帽子的
(4) 各个场景多, 每个场景都要选, 施工现场的, 仓库的, 钢筋厂的等等..
(5) 强光照射等略带干扰因素的图片.
(6) 正面 侧面 背面 男头 女头等.
images
3. 测试模型
最终实地测试的时候, 识别距离可以达到直线20米内效果佳, 最远检测距离是30多米.
720P 效果略差
720P 效果略差
720P 效果略差
720P 效果略差
720P 效果略差
720P 效果略差
720P 效果略差
720P 效果略差
以上图片都是运行时抓拍所得.
因为摄像机抓拍的图片都是720P的 , 训练时使用1080P, 效果还未达到最佳, 更换1080P摄像头仍能提升效果
检测到目标时, 只画没带安全帽的, 正常佩戴安全帽的工人,我们不做任何操作. (任何佩戴 白 黄 蓝 红 帽子的工人不做警告, 这部分数据用以提升检测未戴帽子的准确性)
最终准确率达到96%以上, 几个工地使用效果良好.