1. 引言
近年来,电动自行车行业迅猛发展,有效提升了人们的出行便利性,并在一定程度上成功应对了人们在出行中所面临的“最后一公里”问题。但随着电动车保有量的增加,电动车相关的道路交通事故比例也在逐年增加 [1] 。非机动车驾驶员由于系统的考核和培训的缺失以至于安全意识薄弱。这种情况直接导致了交通事故频繁发生,造成了伤亡率逐年攀升,形势异常严峻。根据2015年世界卫生组织(WHO)发布的《道路安全全球现状报告》,正确使用摩托车头盔能减少70%的重伤和大约40%的死亡 [2] 。国内有研究也发现,交警部门强制要求电动车驾驶员佩戴头盔后,交通事故中电动车驾驶员颅脑损伤人数及死亡人数均有下降。
面对复杂的交通道路骑行场景,传统的人工检查方式存在耗时和费力的问题,因此在广泛应用方面受到了限制。利用人工智能技术来评估骑行者是否佩戴头盔,具有重要的实际意义 [3] 。近年来,随着“一盔一带”主题教育活动的持续推动 [4] ,国内外学术界对电动车头盔佩戴情况检测进行了全面而深入的研究。该研究领域主要可分为两大类别,即传统检测方法与基于深度学习的目标检测算法 [5] [6] 。
在传统目标检测算法的研究中,Rubaiyat等 [7] 人结合方向梯度直方图(HOG)与图像的频域信息的技术,并引入颜色和圆环霍夫变换(CHT)特征,尽管在特定场景下能够实现较高的检测率,但相应的计算耗时也较大。刘晓慧等 [8] 通过运用肤色检测技术准确定位到人脸区域。进一步采用Hu矩作为图像的特征向量,并将其与支持向量机(SVM)结合作为分类模型,取得了良好的安全头盔识别效果。但是该算法对检测目标的颜色和形状特征过于依赖,鲁棒性较差。因此,传统目标检测算法无法满足对头盔检测的需求。
目前基于深度学习的目标检测算法主要分为两阶段(two-stage)的目标检测算法和单阶段(one-stage)的目标检测算法两类 [9] 。两阶段目标检测算法以R-CNN [10] 算法系列为代表,R-CNN算法需要生成候选区域,对每个候选区都需要特征提取和分类,使用回归器精细修正候选框位置,这使得R-CNN在目标检测任务中展现出较高的准确率。然而,这种方法检测效率较慢,过程繁琐,不适于实时检测。单阶段目标检测算法主要有YOLO [11] [12] [13] [14] 系列算法和SSD [15] 算法,这类算法仅在一个阶段上就完成目标检测,直接在图像上预测物体的类别和位置,无需生成候选区域,因此检测速度较快,适用于实时目标检测任务。但由于缺乏对候选区域的筛选,相比于两阶段的目标检测任务来说其精度可能略低。
YOLO算法在交通场景的检测任务中有着出色的表现 [16] [17] ,但由于头盔在图像中通常是小目标,且可能受到头发、帽子等物体的遮挡,这导致其在检测这些目标时可能面临挑战。虽然YOLOv4和YOLOv5等后续版本通过引入一些改进策略(如多尺度预测、自适应锚框等)来提高对小目标的检测性能,但在实际应用中仍然可能存在一些困难。薛瑞晨 [16] 等人改进了YOLOv3,采用通道和空间注意力模块的加权特征融合,引入空间金字塔池化结构来强化特征提取,从而提高了对电动车头盔检测的精度。庄健军 [17] 等人改进了YOLOv5m模型用于头盔检测,引入ECA注意力机制提升中小目标识别率,重新聚类锚框尺寸,并改进Mosaic数据增强。以上YOLO模型一定程度上优化了电动车头盔检测的速度和准确性,但是由于锚检测器的存在使得模型的泛化性不高,并且对小目标以及遮挡情况的适应性仍不足。
与传统的YOLO系列采用的锚框方式不同,YOLOX [18] 采用了anchor-free的目标检测方法,直接预测对象的边界,减少了对预设锚框的依赖,可以对小目标有更好的检测效果。同时还利用了CSPNet架构来减少计算负担和提高训练速度,同时通过特征的跨阶段融合来增强模型的解析能力。YOLOX在Neck部分整合了特征金字塔和路径聚合网络,促进了不同尺度特征的互通和合并,有助于更准确地识别小目标,降低误检和漏检的风险。此外,继承自YOLOv4的Mosaic数据增强技术通过组合多张图片创建新的训练样本,增强了YOLOX对不同环境的适应性和鲁棒性。
综上所述,本文提出了一种高效的小目标实时检测算法BH-YOLOX,通过特征提取网络、引入注意力机制、扩展特征层以及优化损失函数等四个维度对YOLOX模型进行优化,有效提高头盔佩戴状况检测的精确度和实时性,从而保障电动车骑行人员的生命安全,减少因未佩戴头盔而引发的安全事故。
2. 算法设计
本文通过在特征提取网络、引入注意力机制、扩展特征层以及优化损失函数等四个维度对YOLOX模型进行优化,优化后的模型被命名为BH-YOLOX,其网路结构图如图1所示。BH-YOLOX的Backbone为轻量级的Ghostnet网络 [19] ,在减少了参数量和计算量的前提下,同时提高了特征提取能力,使模型更加轻量化。特征融合模块增加了SENet通道注意力机制 [20] ,加强了不同通道的特征的关联,提高了网络在复杂场景中的性能。BH-YOLOX在原有的三个特征层的基础上又增加了一个更大的特征层,有利于加强网络对小目标的检测能力。最后修改了损失函数,提高网络的回归精度。
2.1. 特征提取模块的改进
本文将YOLOX的骨干网络替换为Ghostnet网络,Ghostnet网络的最大特点就是仅通过少量计算就能生成大量特征图。其思想是将传统的卷积分两步进行:第1步使用1 × 1卷积核对通道数进行压缩,生成一部分特征图;第2步对第1步生成的特征图进行逐层卷积获得另一部分s个特征图,最后将两组特征图拼接在一起。
按照上述两个步骤实现的卷积模块称为C-Ghost模块。与标准卷积相比,在输入和输出特征图数量相同的情况下,Ghost模块所需要的参数量和计算量都大幅降低。假设输入为
,输出为
,卷积核尺寸为k,则C-Ghost模块的理论加速比是:
Figure 1. Schematic diagram of BH-YOLOX network structure
图1. BH-YOLOX网络结构示意图
(1)
修改后的骨干网络的结构与各网络层的参数如表1所示,输入输出尺寸为
,表示特征是高为h、宽为w、通道数为c的张量。
Table 1. The backbone network structure and the input and output parameters of each network layer
表1. 骨干网络结构及各网络层的输入输出参数
2.2. 增加通道注意力机制算法及特征层
注意力机制可在大量输入信息中着重关注更为关键的信息,本文引入SENet通道注意力机制模块,该网络关注的是不同通道的特征图的融合。SENet提出了Squeeze-and-Excitation模块,这一模块通过精确模拟各通道间的依赖关系,能够自动调整并优化各通道的特征响应。SENet模型通过Squeeze操作对特征图进行初步处理,利用全局池化将每个通道的二维特征简化为单个实数,实现空间维度的压缩。这一实数代表了通道的全局特征,为通道级别的信息概括。随后,通过Excitation操作,这些全局特征通过两层全连接网络,并通过sigmoid函数调整,生成表征各通道重要性的权重值。这些权重值再应用于原特征图,从而细化最终的特征表示。该过程体现了通过通道注意力机制,精细调控通道间依赖性的策略。
由于不同尺度的特征层含有不同的信息,较大尺度的特征层更适合识别小尺寸目标,而较小尺度的特征层则更适合大尺寸目标。考虑到头盔在图像中的尺寸远远小于人和车,可视为小目标,因此增加较大尺度的特征层以实现更有效的融合。因此,本文在原有的三个特征层的基础上增加了针对小目标检测的特征层,如图1所示,BH-YOLOX使用
、
、
、
四个特征层进行目标检测。
2.3. 损失函数的改进
本文的损失函数记为
,包含分类损失
,边界框回归损失
和置信度损失
,3类损失加权后构成的总损失如下所示:
(2)
分类损失使用二分类交叉熵损失,计算公式如下:
(3)
(4)
其中,N表示类别总数,
表示当前类别的预测值,
代表经过激活函数后的当前类别的概率,
表示当前类别的真实值。
边界框回归损失本文在YOLOX的基础上进行改进,原YOLOX的回归损失采用的是CIoU,计算公式如下所示:
(5)
(6)
(7)
其中,
表示预测框中心与真实框中心的距离,w和h为预测框的宽度和高度,
和
为真实框的宽度和高度。v评估了宽高比之间的一致性,c代表覆盖预测框和真实框的最小矩形框对角线的长度,
为权重函数。
但由于CIoU没有考虑角度问题,而方向框的角度确实可以影响回归,因此提出本文在YOLOX的基础上,使用改S-IoU取代CIoU计算边界框回归损失,同时S-IoU分别从两框角度、两框距离和两框长度进行考虑,计算公式如下:
从两框角度:
(8)
(9)
(10)
从两框距离:
(11)
(12)
从两框长度:
(13)
(14)
最终整体损失函数以下式表达:
(15)
其中,
和
分别为真实框和预测框的中心点坐标,
和
为两框的外接矩形的宽度和高度。
3. 实验分析
3.1. 数据集
在头盔检测研究领域,公开可用的数据集较为有限,其中BikesHelmets数据集是其中之一,共有761张照片。为防止数据量较少所导致的过拟合问题,本文采用的数据集由网络搜索、实地拍摄以及BikesHelmets数据集构成,共4023张图片,标签包括人、戴头盔、未带头盔、摩托车、自行车、电动自行车六种,一些图片中远处小目标数量较多,并且有些还有一定程度的遮挡情况。本文将其按照7:3的比例划分训练集和测试集。
3.2. 实验细节
本文的整个训练过程使用随机梯度下降法(SGD)来学习和更新网络参数,初始学习率为0.001,权重衰减系数为0.0005,动量为0.9,训练的批处理大小batch为4,训练集中全部样本的训练次数(epoch)为200次,图像输入尺寸为640 × 640。训练流程是每个batch训练一组检测数据,然后再训练一组分割数据,累计梯度后统一更新参数。本实验过程使用的软硬件环境配置如表2所示。
Table 2. The configuration of the environment used during the experiment
表2. 实验过程使用的环境配置
3.3. 评价指标
在目标检测领域,常用的评估指标包括召回率(recall)和准确率(precision)。召回率衡量了模型识别出的目标数量占所有应识别目标的比例,而准确率则指出这些被识别的目标中正确的比例。它们的计算方法分别如下:
(16)
(17)
进一步地,为了更精细地评估模型性能,可以通过改变预测框与实际框的交并比(IoU)阈值,从0.5至0.95(每0.05变化一次),计算在这些阈值下的召回率和准确率,并绘制成P-R曲线,曲线下的面积即为该类别的平均精度(AP)。模型的平均精度均值(mAP)则是所有类别AP的平均值,其计算如下:
(18)
(19)
其中,n是类别总数,C指代特定的类别编号,mAP值代表了模型检测的精度。
此外,模型的检测速度也是评估其性能的重要指标之一,常用帧率(FPS)来衡量,即模型每秒能处理的图像帧数。
4. 实验分析
4.1. 目标网络性能与对比
根据前述评估标准,本研究在数据集的603张验证图片上进行了推理测试,并绘制了相应的P-R曲线,如图2所示。
从图中可以观察到,模型对不同种类的目标展现出了不同的P-R曲线表现,其中蓝色曲线表示基于验证集中所有类别的目标计算得到的P-R曲线。通过这条曲线,我们可以计算出模型的mAP值为0.989。此外,记录了模型处理整个验证集所需的时间,并据此计算出模型的推理速度为104.51 FPS。模型对于测试集的检测结果的图例如图3所示,可以看出,相比于YOLOX,BH-YOLOX在多目标、小目标以及存在遮挡等复杂情境中的检测性能更为出色,检测精度也有较大提升。
为更好的评估BH-YOLOX的性能,本文对比了Faster R-CNN、YOLOv4s、YOLOv5s、SSD、YOLOX等主流目标检测网络,表3中对比了3个目标检测评价标准召回率、平均精度和帧率。可以看出,BH-YOLOX在标准召回率、平均精度和帧率中均表现了最佳的性能。
Figure 2. P-R curves of BH-YOLOX on the validation set r
图2. BH-YOLOX在验证集上的P-R曲线
Table 3. Comparison of object detection results
表3. 目标检测结果对比
4.2. 消融实验
为了验证本文所提网络中用到的模块的有效性,本文做了如下消融实验,实验结果如表4所示。
Table 4. Comparison of ablation experimental results
表4. 消融实验结果对比
表4中YOLOX使用的是CSPDarknet53骨干网络,损失函数用的是一般的CIoU计算方式。从表中可以看出将骨干网络替换成GhostNet后,虽然精度有所下降,但检测速度也得到了一定提升,可以满足实时性的要求。而在模型的Neck部分引入SE通道注意力机制后这在检测速度几乎不变的情况下准确率得到有效提升,同时SIoU损失函数进一步提升了模型的检测效果。在增加了特征层后,模型的检测精度再次提升了1.65%。
5. 总结
对于原有算法在头盔佩戴检测任务的不足,本文以YOLOX为基准模型,将骨干网络替换为GhostNet,使其拥有更高的检测速度和检测精度;增加了针对小目标的特征层以解决小目标的漏检问题;在特征融合部分增加通道注意力机制,使网络能够提取到不同通道之间的相关联的信息;再结合损失函数的改进,得到BH-YOLOX头盔检测模型。实验表明,BH-YOLOX的mAP值达到98.90%,检测速度为104.51 FPS,能满足绝大多数交通场景的要求,也适用于部署在如摄像头等边缘设备上。
基金项目
云南大学专业学位研究生实践创新基金项目资助。