2018安全帽检测的深度学习新模型
去年年初的时候,因为项目需要,采用了深度学习的方法,做了一套安全帽检测的模型,并投入到企业的生产车间现场,起到了很好的效果.
这个项目在运行过程中感到有如下不足:
现场端设备需要过高的运算能力(i5处理器),部署和维护起来也比较复杂,整体成本偏高.
深度学习的模型现在看来偏简单,识别精度不到90%,误报较多.
-
模型训练非常费事费力,训练集的采集和现场相关性太强,模型适应性偏弱.不同场景识别产生较大偏差.需要手工调参,费时费力.
经过一年多发展,尤其是深度学习的新的模型的不断出现,无论是运算速度,识别精度上都有了很大进步,经过一定的积累,决定重新做一套新的模型和更加适应企业现场应用场景的平台,达到如下目标:
- 项目训练可以实现现场采集,及时训练,快速部署,实情实景,增加模型对现场的适应性,达到商业化的识别标准.
- 模型足够小,既可以部署到嵌入式设备中,也可以大规模在后台并发运算,大大降低整个项目的运行成本.
- 达到足够高的识别精度和尽快短的响应时间.
- 模型适应性强,部署简单,大幅降低工程项目的难度,适合推广和大规模部署.
- 实现云平台,AI入云,现场只需一个普通的网络摄像头即可使用.
1. 安全帽检测新模型
谷歌2018年发布了MobileNetV2的深度学习模型,经过仔细的研究和测试,发现这个模型的优点:轻巧,速度快,兼顾识别精度高等特点,决定参考MobileNetV2
模型,搭建一套全新的安全帽识别模型.
谷歌论文中的MobileNetV2模型是以imagenet数据集为基础的,Input size为224*224,考虑到安全帽识别的场景,我决定缩减input size,并适当减少模型中的残差网络的层数,进一步缩减模型.
搭建好模型之后,数据集的问题,考虑到实现现场数据采集和分割识别,并分类训练,就设计了一套现场采集的系统,大概思路和去年的差不多,就是实现了在云端训练,快速现场部署的要求.
2. 测试模型
一般经过半个小时的数据采集,就可以达到训练的数据量了,在云端训练完成后测试数据集的正确率在96%以上,完全达到商用标准了.
在我的老款mac air上跑起来非常流畅,试着把模型部署到树莓派3上,竟然可以达到每秒3帧的识别水平.