除了爱,AI也能给你安全感
<br/>2020年2月14日,这个本该充满爱意的日子,因为这场已持续了一个多月的疫情,显得有些失宠。在全民抗疫的目标下,安全和健康成为大家的共同愿望。而AI在这个时期,更凸显出优势,为这场没有硝烟的战役频频助攻
2020年2月14日,这个本该充满爱意的日子,因为这场已持续了一个多月的疫情,显得有些失宠。在全民抗疫的目标下,安全和健康成为大家的共同愿望。而AI在这个时期,更凸显出优势,为这场没有硝烟的战役频频助攻。
从病毒基因检测开放平台,到AI热感视觉行为监控系统,到智能消毒洗地机器人,深兰多维度防疫产品深入前线,为着大家的安全,为了最后的胜利全力以赴。
提到安全保障,计算机视觉作为人工智能的核心技术起到了至关重要的作用,除了特殊时期,在很多日常场景中也举足轻重。比如,对建筑工地上安全帽佩戴情况的监管。安全帽佩戴检测对于提高在岗人员的安全意识、降低管理难度以及保障安全生产有着重要的意义。
2020年伊始,深兰科技就在AI研习社主办的安全帽佩戴检测赛中小试牛刀,获得了冠军。作为国内专注于AI技术发展的知名平台,AI研习社主办的此次比赛也是吸引了众多专业机构和人士的参与。下文将带来竞赛中技术细节的分享。
安全帽佩戴检测
赛题介绍:
比赛主办方提供了6057张图片作为训练集,1514张图片作为测试数据。图片包括工地照片、某大学监控视频图片、普通场景图片。主办方对训练集图片中人员进行标注,佩戴安全帽的人员标注为"hat",未佩戴安全帽的人员标注为"person"。比赛选手需要能够正确给出测试图片中佩戴安全帽人员及未佩戴安全帽人员的数量。
评测指标:
对测试数据集的测试结果以csv格式进行提交,csv第一列字段为测试图片的ID,第二列字段为图片中佩戴安全帽人员数量,第三列字段为图片中没有佩戴安全帽人员数量。根据提交结果的Score进行排名。
其中True表示同时正确预测佩戴安全帽与没有佩戴安全帽人员数量的图片张数(因此该赛题如果想取得较好的成绩,就必须同时解决误检与漏检问题),Total表示测试图片的总数。
题目特点以及常用方法
安全帽佩戴检测属于目标检测问题,针对目标检测问题现在的算法比较多,如以Faster RCNN为代表的二阶段检测网络,及以YOLO v3为代表的单阶段检测网络。同时由于本次比赛训练数据集都是针对人的头部为标注框进行数据标注(佩戴安全帽人员将人脸与安全帽共同标注为“hat”,没有佩戴安全帽的人员将头部标注为“person”),因此也可以考虑先使用人脸检测算法对人脸进行识别,然后将识别结果送入分类网络,对佩戴安全帽的情况进行分类。
由于本次比赛要求尽可能提高检测的准确率,对检测速度没有要求,因此针对本次比赛,采用了二阶段的检测网络。
比赛数据与数据分析
本次比赛的训练数据集共6057张图片,首先通过对比赛数据的分析,我们发现数据有以下特点:
类别间数据分布不平衡:训练数据集中hat的数量为7502,person的数量为87043,person与hat的比例达11:1。检测框的长宽比基本分布在0.7-1.2之间。训练数据集中单张图片目标总个数(person与hat的数量之和)不大于10的图片,占训练集总量约64%,因此想要取得较好的成绩,必须保证这部分数据检测的准确率。此外图片中只包含person的图片数量为3449,占图片总数量的57%,只包含hat的图片数量为2253,占图片总数的37.2%,图片中仅含一个类别(只有person或只有hat)的数量占图片总数的94.2%。
测试数据集无标注信息,根据对测试图片数据的观察分析,测试数据集person与hat的分布与训练数据集相似。
训练数据集的标注如下图所示,其中绿色矩形框是对佩戴安全帽人员的标注,红色矩形框是对没有佩戴安全帽人员的标注。
实验中使用的数据增强方法
通过对实验图片的分析,发现图片中包含很多密集的教室场景及人员之间的遮挡情况,因此在正式训练模型之前,进行数据增强对结果的影响实验。所使用的数据增强方法如下:
(1)随机换通道:该方法主要是为了解决部分颜色安全帽在训练数据集中数量较少,从而引起对该颜色安全帽的漏检问题。对图片进行随机换通道的增强方法如下图所示,其中左侧为原图,右侧为随机换通道后的结果。
(2)增强图片亮度:该数据增强方法目的是增强模型对亮度较高或者较低的图片检测的泛化能力。对图片亮度进行改变的数据增强方法结果如下图所示,左侧为原始图片,右侧是亮度增强后的结果。
(3)增强图片的对比度:该数据增强方法的目的使目标的特征更加清晰。增强图片对比度的结果如下图所示,其中左侧为原图,右侧是增强对比度之后的结果。
(4)改变图片的色调:对图片色调的改变如下图所示,左侧为原图,右侧为色调改变后的结果。
使用以ResNet-50为backbone的Faster RCNN作为baseline,分别使用以上数据增强方法,实验结果如下表所示。
实验模型
我们的实验是以ResNet-50作为backbone的Faster RCNN模型为baseline进行的,在Faster RCNN网络模型的基础上,使用了更大的基座网络、增加可变性卷积,并使用cbnet结构。Faster RCNN网络结构如下图所示。
同时为了提升模型效果,我们尝试了增加级联结构与使用更大的backbone等方法,同时使用了CBNet网络结构,如下图所示。下图是一个三个backbone的网络结构示意图,考虑到显存与训练时间成本,本次比赛,我们采用的是双backbone的CBNet结构。
结果如下表所示(以下结果都是在mmdet预训练模型的基础上finetune,并且在模型训练的过程中都使用了随机换通道的数据增强方法):
模型融合
模型融合是算法大赛中常用的提高模型精度方法,有些比赛在竞争激烈的后期用了几十甚至上百模型。我们最终选择了单模型得分较高的Cascade RCNN+ResNeXt-101+DCN+CBNet结构,并在该结果做为预训练模型的基础上,又使用增强图片亮度的方法,继续训练出一个模型,我们记为Cascade RCNN+ResNeXt-101+DCN+CBNet+gamma。在对这两个模型结果可视化时,发现在教室场景上存在部分漏检情况,因此,针对数据集中的教室图片重新训练出一个模型,记为classroom_only。对以上三个模型进行模型融合,最终得到64.7952的得分,拿下安全帽佩戴检测赛的冠军。
模型效果
(1)常见场景模型效果
(2)密集小目标、目标重叠场景模型效果
(3)面部遮挡场景模型效果
(4)光线较差场景模型效果
应用场景
按照规定,正确佩戴安全帽对于安全生产有着重要的意义,但是传统的安全帽佩戴检查需要耗费极大的人力与物力,在实际检查过程中存在诸多不便。使用深度学习网络模型检测安全帽的佩戴情况,可以弥补传统方法的不足。具体的应用场景包括:
(1)门禁系统:在高危区域部署安全帽佩戴检测与门禁联动系统,确保工作人员必须佩戴安全帽才能打开门禁进入防护区工作;该应用可以应用在工地入口、一线生产车间门口等处,门禁系统识别工作人员的身份,安全帽佩戴检测系统在身份确认之后进行检测识别,确保正确佩戴安全帽的相关工作人员才可以进入高危作业区。
(2)高危工作区域安全生产:在高危工作区域内部署安全帽佩戴检测系统,通过监控画面实时监测在岗人员安全帽佩戴情况,若未按规定佩戴安全帽,则输出报警信息,自动保存工作人员未按规定佩戴安全帽的截图作为凭证,并通知后台监控人员。该应用可以通过视频监控系统,实时监测高危工作区域工作人员的安全帽佩戴情况,既能确保安全生产的平稳进行,又可以降低监管难度和管理成本。
(3)智慧工地:将安全帽检测系统与高空坠落物检测、工作人员疲劳程度检测系统结合起来,打造智慧工地,及时对潜在的危险进行预警,通知相关人员采取措施,从而及时阻断人身伤害事故,确保安全生产。
总结
安全生产是社会发展永恒的主题,然而传统的安全生产监督方法存在监控盲区大、监督效率低、外包人员管理困难等缺点。而深度学习的发展,为安全生产带来新的解决思路。
安全帽佩戴检测作为安全生产的一项重要检测项目,是搭建智慧厂区、智慧工地的一项重要工作,同时安全帽佩戴检测问题又是一项目标检测任务,网络模型可扩展性强,可以根据不同需求,同时完成明火检测、工作区误入报警、工作区车辆识别等多项任务,搭建一套完整的智能检测系统。