YOLO 施工安全帽目标检测模型
建筑工地的工人安全是许多建筑行业日益关注的问题。佩戴安全帽可以减少建筑工地工人的伤害,但由于各种原因,安全帽并不总是正确佩戴。因此,基于计算机视觉的自动安全帽检测系统极为重要。许多研究人员已经开发了基于机器和深度学习的头盔检测系统,但很少有人专注于建筑工地的头盔检测。
在线工具推荐:三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务
头盔自动检测基本上是一个物体检测问题,可以使用深度学习和基于计算机视觉的方法来解决。由于深度学习在目标检测领域的计算方法和精度,深度学习及其在计算机视觉中的应用取得了突破性进展。目标识别方法一直是近年来计算机视觉领域的研究热点。目前有两种用于目标检测的先进深度学习方法:基于 R-CNN(卷积神经网络)的目标检测算法,该算法首先生成候选区域,然后执行分类或回归,以及 You Only Look Once(YOLO)和 Single Shot MultiBox Detector(SSD)算法,仅使用一个 CNN 执行分类或回归。基于 R-CNN 的方法实现了相对较高的准确率,但缺点是执行时间较长,因此不适合实时场景。SSD 算法运行速度更快,但在检测小物体方面存在问题,这在头盔自动检测中可能是个问题。因此,本研究使用具有不同架构的 YOLO 来自动检测建筑工地上的安全帽。
本文介绍了一种基于 YOLO 的实时计算机视觉自动安全帽检测系统。YOLO 架构速度快,每秒可处理 45 帧,使基于 YOLO 的架构可用于实时安全帽检测。本研究使用包含 5000 张安全帽图像的基准数据集,分别以 60:20:20 (%) 的比例进一步划分,用于训练、测试和验证。实验结果表明,YOLOv5x 架构实现了 92.44%的最佳平均精度(mAP),即使在弱光条件下也能显示出优异的安全帽检测效果。
在本文章,将使用UnrealSynth虚幻合成数据生成器 来生成训练所需要的数据集,用户只需要将安全帽的 3D 模型导入 UnrealSynth 中,经过简单的配置就可以自动生成数据集,非常的简单方便:
基于 YOLO 的实时计算机视觉自动安全帽检测:
1. 场景准备
将戴有安全帽和未戴安全帽的工人模型导入到场景。
配置场景先关参数,如:生成的图片数据集的图片分辨率、生成的图片的数量等。
2. 生成数据集
设置参数后,点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 生成本地合成数据集,本地数据包含两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件;images 中存放着生成的图片数据集,labels 中存放着生成的标注数据集。
images 和 labels 目录下各有两个目录:train 和 val,train 目录表示训练数据目录,val 表示验证数据目录,标注数据的格式如下所示:
synth.yaml 是数据的配置文件,数据格式如下:
3、YOLOv5 模型训练
生成数据集后,下一步就是利用 Yolo 来训练模型,第一步,打开 ultralytics hub 在线训练工具,将刚才生成的数据集上传到 ultralytics hub
将合成数据上传后,选择 YOLO 模型版本,确定好 YOLO 模型版本后,点击【continue】就可以开始使用 ultralytics 来训练集我们的模型了,如下所示:
选择 YOLO 模型后点击下一步将会生成用户 key 值,这个 key 值将在下一步模型训练时用到
复制【step1】中中的内容,点击【step2】进入到 google Colab 页面,如下所示:
首先,先点击 step 中的播放按钮,安装环境依赖,如上图所示;环境安装成功后,接下来将【Start】中的整个内容给都换掉,用在上一步中复制的 key 值整体替换里面原来的信息,如图:
然后点击播放按钮,开始训练模型,如下图所示:
模型训练需要一段时间...
4、训练模型验证
模型训练完成之后,可以用训练好的模型验证一下,用几张工地工人干活的场景图片,导入用图片来验证一下,操作步骤如图所示:
图片验证结果如下:
版权声明: 本文为 InfoQ 作者【3D建模设计】的原创文章。
原文链接:【http://xie.infoq.cn/article/a806b9f0724adbdc9e09335f9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论