CPAM-P2-YOLOv8: Safety Helmet Detection Algorithm Based on the Improved YOLOv8
Safety helmets play a crucial role in protecting construction workers from accidents and injuries. However, due to various reasons, workers did not strictly adhere to the rule of wearing safety helmets. To detect whether workers are wearing helmets, this article proposes an improved object detection algorithm based on YOLOv8 (CPAM-P2-YOLOv8). Add CPAM structure to the neck network of YOLOv8 to enhance the feature extraction of safety helmets, and introduce a processed small object detection layer P2 at the head of YOLOv8. CPAM-P2-YOLOv8 improved the accuracy of object detection, and experimental results showed that the improved model achieved an accuracy of 91%. Compared with the YOLOv8 model, CPAM-P2-YOLOv8 improved mAP50 by 1.0% and reduced parameter count by 17%. Through comparison, it was found that CPAM-P2-YOLOv8 has more advantages in detecting small targets than YOLOv8. Compared with YOLOv10, the mAP50 of CPAM-P2-YOLOv8 increased by 1.9%. By using the knowledge distillation, the precision of CPAM-P2-YOLOv8 was further improved to 91.4%.
Object Detection
在当前社会背景下,安全生产是各行各业高度重视的问题之一,尤其在建筑工地、矿井等高风险作业环境中,确保工人的人身安全尤为重要。安全头盔作为最基本的个人防护装备之一,在保护工人生命安全方面扮演着至关重要的角色。然而,由于一些工人缺乏足够的安全意识,不按规定佩戴头盔的情况时有发生,这给生产安全带来了潜在的风险。
计算机视觉和人工智能技术的迅速发展,为安全帽检测和管理提供了新的可能性。在这一背景下,安全帽目标检测成为一个备受关注的研究领域,其目标是自动地识别工作人员是否佩戴安全帽。已有的一些算法可以识别图像中的多个物体,并判断出它们的类别和位置,因此在产品安全领域中引起了研究人员的高度关注。
传统的物体检测方法通常采用基于滑动窗口的区域选择策略
为了提高YOLOv8在目标检测的性能,引入了通道和位置注意力机制(Channel and Position Attention Mechanism, CPAM),使YOLOv8模型更加关注具有丰富信息的目标特征。
为了适应真实的安全帽应用场景存在小目标
CPAM是ASF-YOLO
在ASF-YOLO中,CPAM用以整合SSFF和TFE模块,重点关注信息通道和空间位置相关的小对象,以提高检测和分割性能。为了提高YOLOv8在目标检测的性能,使其更加关注具有丰富信息的目标特征,引入了CPAM和SSFF。
CPAM的结构如
通道注意力机制的结构见
(1)
其中 和b是控制卷积核大小k与通道维度C之比的缩放参数。式中 代表对向上取奇数。实验中,将 的值设为2,b设为1。
位置注意力机制的结构见
与通道注意机制相比,位置注意机制首先根据输入特征图x的宽度w和高度h将其分成两部分,分别在高度方向和宽度方向进行空间平均池化,得到xh,xw。将拼接后的xh,xw通过卷积层和激活函数,见公式(2),(3)。
(2)
(3)
其中Concat是拼接操作,Conv是一个卷积层,BN表示批量归一化,ReLU是激活函数。
然后分离高度和宽度的特征图,并应用卷积层来生成权重。
(4)
(5)
表示Sigmoid函数。
最后,使用生成的高度和宽度方向的权重对原始特征图进行加权,得到输出out:
(6)
YOLOv8是Ultralytics公司推出的基于目标检测模型的YOLO系列之一。YOLOv8共有YOLOv8n、YOLOv8s1、YOLOv8m、YOLOv8l和YOLOv8x五个版本,检测精度和模型大小依次增加。考虑到精度、模型大小和检测速度,本文选择以YOLOv8n作为基准算法,在此基础上进行改进和创新。
YOLOv8算法模型结构主要由输入端(Input)、主干网络(Backbone)和头部(Head)组成,其中头部包括了颈部网络(Neck)和检测头(Detcet)。在输入端部分,功能包括了马赛克(Mosic)数据增强、自适应锚框(Anchor)计算和其他数据增强技术。实验设置YOLOv8输入的是一张三维尺寸为640 * 640的图像,然后利用卷积神经网络将输入图像转换成特征图。网络会预测边界框的位置、大小和相关物体的概率,并根据预测结果生成目标检测结果。
相比较传统的目标检测算法,该算法模型在不损失检测精度的前提下具有更快的检测速度、更轻量的算法模型等优点。YOLOv8在YOLOv5的基础上进行了优化,用C2f (包括两个卷积层的CSP bottleneck)模块替换了YOLOv5中的C3 (包含三个卷积层的CSP bottleneck)模块,C2f模块包含更多的跳跃连接和split操作,减少了计算量并增强了特征信息的传递。YOLOv8不仅限于目标检测,还支持实例分割和关键点检测,这使得它成为一个多用途的计算机视觉工具。YOLOv8采用了无锚点的检测方法,简化了框的预测过程,提高了检测效率。
YOLOv8主干中的1~5级特征提取分支P1、P2、P3、P4、P5,对应与这些特征映射相关联的YOLO网络输出。在YOLOv8的特征提取阶段,使用多个C2f模块堆叠为主干,然后将主干的三个有效特征分支P3、P4、P5作为特征金字塔网络
真实的安全帽应用场景中,建筑工地施工现场获得的图片由于相机距离目标较远、颜色亮度不匹配、拍摄角度不合适、恶劣天气等情况下存在小目标情况。在改进的方法中,在特征金字塔中加入专门针对小目标的P2层,如
1) 在YOLOv8的颈部引入CPAM架构,搭配SSFF,其作用是提取不同通道中包含的代表性特征信息。
2) 在YOLOv8的头部引入小目标检测层P2,作为更浅的特征层,其可以改善下采样带来的小目标信息丢失导致模型在较深的特征图中很难精准定位和识别小目标这一问题。
改进后的网络(下文称CPAM-P2-YOLOv8)结构如
在本文实验使用Colab平台,深度学习的框架为torch-2.3.1+cu121,语言版本为Python3.10.12,GPU为NVIDIA Tesla T4,15102MiB,CPU为Intel(R) Xeon(R) CPU @ 2.20GHz,Cuda版本为12.2。实验环境的配置参数如
主要训练参数配置如
参数 |
版本或数值 |
操作平台 |
Colab |
CPU |
Intel(R) Xeon(R) CPU @ 2.20GHz |
GPU |
NVIDIA Tesla T4, 15102MiB |
CUDA |
12.2 |
Pytorch |
torch-2.3.1+cu121 |
Python |
3.10.12 |
参数名称 |
配置 |
Epochs |
100 |
Batchsize |
8 |
workers |
8 |
Optimizer |
SGD |
close_mosaic |
10 |
imgsz |
640 |
本次实验采用GDUT-HWD安全帽数据集
相比于其他研究使用的安全帽数据集
实验采用精度(Precision,P)、召回率(Recall, R)、所有类别平均精度值(Mean Average Precision ,mAP,参数量(Parameters)、运算量(GFLOPs)、模型体积评估本文所提算法的性能,其中精度,召回率,mAP的公式分别是:
(7)
(8)
(9)
TP (True Positives):实际正类预测为正类的数量。
TN (True Negative):实际负类预测为负类的数量。
FP (False Positives):实际负类预测为正类的数量。
FN (False Negative):实际正类预测为负类的数量。
N为类别数量。
各类的平均精度(Average Precision, AP)可以被视为精确率与召回率曲线(PR曲线)下的面积,mAP则是衡量所有类别的平均均度。mAP50是在IOU (交并比)为0.5时的mAP。
YOLOv10
模型 |
P |
R |
mAP50% |
参数量 |
GFLOPs |
模型体积(MB) |
YOLOv8n |
0.907 |
0.837 |
90.5 |
3,006,623 |
8.1 |
6.3 |
YOLOv10n |
0.899 |
0.807 |
89.6 |
2,266,143 |
6.5 |
5.8 |
SSD-RPA512 |
--- |
--- |
83.9 |
--- |
--- |
--- |
CPAM-P2-YOLOv8n |
0.910 |
0.845 |
91.5 |
2,490,607 |
12.0 |
5.4 |
CPAM-P2-YOLOv8m |
0.918 |
0.858 |
93.0 |
22,610,721 |
94.8 |
45.7 |
CPAM-P2-YOLOv8n (学生模型) |
0.914 |
0.838 |
91.6 |
2,490,607 |
12.0 |
5.4 |
与YOLOv8n相比,CPAM-P2-YOLOv8n的精度、召回率和mAP50(下文称三项指标)分别高了0.3%、0.8%和1.0%。同时CPAM-P2-YOLOv8n的参数量和模型体积显著低于YOLOv8n,更适合部署在资源受限的设备上。由于CPAM和P2引入,GFLOPs在可接受范围内有所提高。
与YOLOv10n相比,CPAM-P2-YOLOv8n的三项指标分别高了1.1%、3.8%和1.9%。同时在参数量和模型体积方面,两者差别不大且均优于YOLOv8n。
与之前的研究中SSD-RPA512相比,CPAM-P2-YOLOv8n的mAP50高了7.6%,精度显著提高。
由于CPAM-P2-YOLOv8m的参数和模型体积大幅增加,其精度明显高于其他模型。与CPAM-P2-YOLOv8n相比,其三项指标分别高0.8%、1.3%、1.5%。大模型的训练往往耗费更多的资源,其GFLOPs 高达94.8。为了提高模型利用率,以CPAM-P2-YOLOv8m作为教师模型,通过逐层知识蒸馏(Channel-wise Knowledge Distillation)
根据应用场景的不同,可以选择适合的模型。如果追求更高的性能并且资源充足,CPAM-P2-YOLOv8m可能是更好的选择。如果需要平衡性能和资源使用,则CPAM-P2-YOLOv8更为合适。具体实验结果如
图4. 不同模型的实验对比图
安全帽检测结果如
安全帽目标检测有很大的研究价值,保护工作人员生命安全应放在生产工作的第一位。做好安全帽检测工作可以防患于未然,对于个人和社会都有重要意义。本文应用GDUT-HWD数据集,在YOLOv8的基础上引入CPAM架构和P2检测层,CPAM-P2-YOLOv8n模型比YOLOv8模型在精度和mAP50上都有提升。除此之外,与其他模型比较,CPAM-P2-YOLOv8n在检测安全帽方面有明显优势。P2检测层的引入使其在小目标检测上更加精准。未来可以通过剪枝、进一步的蒸馏和模型轻量化等手段来减少模型参数,降低计算量提升检测速度。