YOLOX从0到1实战——安全帽检测(结合OAK相机)

编辑:OAK中国
首发:oakchina.cn
喜欢的话,请多多👍⭐️✍

前言

Hello,大家好,这里是OAK中国,我是助手君。

我又来给大家带来新的OAK项目啦!本文会讲解一些实践思路,最后会附上源代码。


背景

安全生产是社会发展永恒的主题,然而传统的安全生产监督方法存在监控盲区大、监督效率低、外包人员管理困难等缺点。而深度学习的发展,为安全生产带来新的解决思路。

按照规定,正确佩戴安全帽对于安全生产有着重要的意义,但是传统的安全帽佩戴检查需要耗费极大的人力与物力,在实际检查过程中存在诸多不便。使用深度学习网络模型检测安全帽的佩戴情况,可以弥补传统方法的不足。具体的应用场景包括:

  • 高危工作区域安全生产:在高危工作区域内部署安全帽佩戴检测系统,通过监控画面实时监测在岗人员安全帽佩戴情况,若未按规定佩戴安全帽,则输出报警信息,自动保存工作人员未按规定佩戴安全帽的截图作为凭证,并通知后台监控人员。该应用可以通过视频监控系统,实时监测高危工作区域工作人员的安全帽佩戴情况,既能确保安全生产的平稳进行,又可以降低监管难度和管理成本。
  • 智慧工地:将安全帽检测系统与高空坠落物检测、工作人员疲劳程度检测系统结合起来,打造智慧工地,及时对潜在的危险进行预警,通知相关人员采取措施,从而及时阻断人身伤害事故,确保安全生产。

分析

怎样定义“安全帽佩戴检测”这个问题呢?正常来看是需要判断行人头部区域有没有安全帽,比如有些做法是先用目标检测模型如SSD、Yolo系列及改进系列(各种加速版及适用移动端的网络)检测行人区域,然后再设计一个小的分类网络判断区域内是否存在安全帽。这种做法的好处是比较简单:

  • 一来,行人检测算是做的比较多的应用,数据集、算法都比较多;
  • 二来,很多数据都是以监控视频的形式存在,标注的时候标注较粗粒度的区域即可,然后做分类。

不过这种做法的劣势也比较明显:

第一,这种做法并不是一个端到端的预测过程,显然要做到先检测出行人,再用分类网络判断是否存在安全帽;
第二,目标检测和分类的区别,如果用这种粗粒度的标注方法,也就是标注出包含安全帽的较大的区域,而不是紧紧包含安全帽的那块区域,分类效果并不会太好;
第三,严谨来说,对于用户更希望得到的是,定位出佩戴安全帽的目标位置,很多情况安全帽虽然在行人区域内,但这时候并不是出于“佩戴”状态。

基于以上分析,这里用的方法是注重安全帽“佩戴”状态,所以业务层面来看,需要的数据是有“佩戴”安全帽和未“佩戴”安全帽的图片。如下图所示:

在这里插入图片描述
在这里插入图片描述

其中红色的bounding box是未佩戴安全帽的目标,绿色的bounding
box是佩戴安全帽的目标,这样可以更精准、更直接的确定是否佩戴的状态,不过需要覆盖更多场景的正负类目标数据。

实现

基于之前的分析,这里的任务可以看成一个常规的目标检测的情形,目标检测算法发展很快,单阶段的多阶段的,各种anchor及anchor-free的,GIoU,soft-NMS,各种金字塔多尺度预测的等等,不过很多sota的方法很难应用在实际项目中,毕竟速度、功耗、成本等因素均要考虑在内,本文仅用 YOLOX-nano 做示例,效果图如下:

在这里插入图片描述
在这里插入图片描述

用OAK做安全帽检测

源代码:helmet_yolox
硬件:OpenCV OAK-D相机

参考资料

https://gitee.com/oakchina/depthai-examples/
https://docs.oakchina.cn/en/latest/


OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态

戳「+关注」获取最新资讯↗↗

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值