安全帽人脸联动闸机开关算法

2023-09-20 16:05:01 浏览数 (2)

安全帽人脸联动闸机开关算法通过yolov5 python网络模型深度学校框架 ,安全帽人脸联动闸机开关算法能够判断人员是否穿戴规定的工装是不是现场人员,当穿戴合规且为现场人员,闸机门禁才打开。安全帽人脸联动闸机开关算法中YOLO5的结构非常简单,就是单纯的卷积、池化最后加了两层全连接,从网络结构上看,与前面介绍的CNN分类网络没有本质的区别,最大的差异是安全帽人脸联动闸机开关算法输出层用线性函数做激活函数,因为需要预测bounding box的位置(数值型),而不仅仅是对象的概率。

安全帽是作业场所作业时头部防护所用的头部防护用品,它对使用者的头部在受坠落物或小型飞溅物体等其他因素引起的伤害起到防护作用。近年来,因不佩戴安全帽、不规范佩戴安全帽等原因导致的安全生产事故屡禁不止,事故发生背后的影响是巨大的,不仅为家人带来巨大的伤痛,也为企业的利益带来巨大的损失。而如何使员工规范佩戴安全帽、保障员工和企业双方利益,成为了一直以来各方坚持不懈想要实现的目标。因此,研究安全帽人脸联动闸机开关算法,具有重大的意义和广泛的应用价值。

本篇博客,将手把手教你搭建一个基于YOLOv5安全帽人脸联动闸机开关算法。目前,基于YOLOv5s的目标检测的佩戴安全帽识别方法的平均精度平均值mAP_0.5=0.93,mAP_0.5:0.95=0.63,基本满足业务的性能需求。

另外,为了能部署在手机Android平台上,对YOLOv5s进行了模型轻量化,开发了一个轻量级的版本yolov5s05_416和yolov5s05_320,在普通Android手机上可以达到实时的检测和识别效果,CPU(4线程)约30ms左右,GPU约25ms左右 ,基本满足业务的性能需求。

2. 安全帽人脸联动闸机开关算法的方法

(1)基于目标检测的佩戴安全帽识别方法

基于目标检测的佩戴安全帽识别方法,一步到位,把佩戴安全帽类别直接当成多个目标检测的类别进行训练。

该方案采用one-stage的方法,直接端到端训练,任务简单,速度较快;

新增类别或者数据,需要人工拉框标注佩戴安全帽的框,成本较大

部署简单

(2)基于头部检测 佩戴安全帽分类识别方法

该方法,先训练一个通用的头部检测模型(不区分是否佩戴安全帽),然后外扩检测框并裁剪头部区域,再训练一个佩戴安全帽分类器,完成对佩戴安全帽的分类识别。当然一个更加简单的方法是,可以将人脸检测器当做头部检测器,即将人脸检测框外扩2倍左右,作为头部检测框的区域。只是这样做,若人背向,人脸检测器一般效果比较差,无法识别是否佩戴了安全帽。

该方案采用two-stage方法,可针对性分别提高检测模型和分类模型的性能

头部检测模型不区分是否佩戴安全帽,只检测头部检测框,检测精度较高,

佩戴安全帽分类模型可以做到很轻量

由于采用two-stage方法进行检测-识别,因此速度相对较慢

考虑到安全帽人脸联动闸机开关算法的任务比较简单,因此本博客将采用“基于目标检测的佩戴安全帽识别方法”。目标检测的的方法较多,比如Faster-RCNN,YOLO系列,SSD等均可以采用,本博客将采用YOLOv5进行佩戴安全帽目标检测模型训练。

3. 安全帽人脸联动闸机开关算法数据集说明

(1)佩戴安全帽数据集

目前收集了2W 的佩戴安全帽数据集:

Helmet-Asian亚洲人佩戴安全帽数据集:总共有19000 图片,VOC的XML数据格式,可直接用于目标检测模型训练。

Helmet-Europe欧洲人佩戴安全帽数据集:总共有3000 图片,VOC的XML数据格式,可直接用于目标检测模型训练。

(2)自定义数据集

如果需要增/删类别数据进行训练,或者需要自定数据集进行训练,可参考如下步骤:

采集图片,建议不少于200张图片

安全帽人脸联动闸机开关算法使用Labelme等标注工具,对目标进行拉框标注:labelme工具:GitHub - wkentaro/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).

将标注格式转换为VOC数据格式,参考工具:labelme/labelme2voc.py at main · wkentaro/labelme · GitHub

生成训练集train.txt和验证集val.txt文件列表

修改engine/configs/voc_local.yaml的train和val的数据路径

重新开始训练

0 人点赞