APP下载

基于注意力机制的深度学习行人车辆检测方法

2023-09-18汤计洁

关键词:行人注意力车辆

于 晓,叶 健,汤计洁

(1.天津理工大学 电气工程与自动化学院,天津 300384;2.郯城县公安局警航大队,山东 临沂 276100)

目标检测的主要任务是确定图像中感兴趣事物的位置和类别,其作为自动驾驶核心技术—环境感知的重要组成部分,可以快速准确地判断周边车辆和行人的位置,以便于车辆规划行车路径,保证行车安全。目前目标检测已成为计算机视觉领域的热门研究方向之一,在工业、医学、安防等领域得到了大量应用。

在深度学习网络尚未广泛应用之前,图像的目标检测工作主要是基于传统的机器学习方法,通常是手工提取特征后再使用分类器进行检测,如梯度直方图[1](HoG)、加速稳健特征[2](SURF)、支持向量机(SVM)和形变目标识别[3](DPM)等,这些方法识别率低且难以满足实时检测要求。手工提取特征存在个人的主观意识,且行人作为非刚性目标,形状动作各不相同,这些都为行人车辆的目标检测工作带来了挑战。

深度学习的发展使得目标检测的问题迎刃而解,目标检测的发展踏上快车道,基于深度学习的目标检测算法主要有单阶段和两阶段两类。两阶段算法在R-CNN[4]的基础上衍生出Fast R-CNN[5]、Faster R-CNN[6]和Mask R-CNN[7],两阶段算法的准确性较高,但是计算量大使得实时检测能力较差。以YOLO[8]和SSD[9]为代表的单阶段检测算法检测速度较快,YOLOv3算法在特征提取部分融合了FPN结构,平衡了精度和速度,突出了单阶段算法的优势,因此比R-CNN更适合用于目标检测。孙晓东等[10]将SSD算法引入到巡检机器人视觉系统,使得巡检机器人能够更好的识别目标物,从而达到避让或者跟随的效果。张修懿等[11]根据不同层次的卷积结构和CSP模块设计出具有较高提取能力的ACNet网络,并引入HSV域扰动提升了YOLO-DNF模型的泛化性。丛眸等[12]提出了一种改进YOLOv3的航拍车辆检测方法,将空间金字塔池化模块引入特征提取部分,并通过多个尺度的卷积特征金字塔进行融合,提高了检测效果的查全率。刘毅等[13]提出了一种基于注意力机制的UAST-RCNN网络,使用Swin-Transformer模块搭建骨干网络,通过改进特征金字塔调整特征图的挂件信息,并引入了焦点损失函数,满足了遮挡行人场景的检测要求。贾君霞等[14]提出了一种基于改进SSD的行人检测算法,采用DBSCAN方法结合K-means算法确定聚类中心和规格适当的Ancher Box,并将特征信息进行尺度不变的卷积后得到的特征图和原始特征图进行特征融合,提高了道路行人检测的精度。李刚等[15]借鉴FPN网络的结构特征,改进了特征金字塔,有效解决了顶层特征在不断卷积池化中可能忽略丢失小目标信息的问题。李松江等[16]在YOLOv4的骨干网络中残差部分加入ECA模块,并将特征提取部分输出的深浅层特征信息融合,使得网络能够更好地进行车辆的检测。

在现阶段,复杂背景下的遮挡或者小目标的行人车辆检测还存在很多挑战,基于上述文献的思路,本文针对其中小目标和遮挡等问题提出了一种基于注意力机制的行人车辆检测算法,使用CECA模块替换YOLOv5中的C3模块,并在Backbone结构中添加CBAM注意力机制,使得网络能够提高关键特征信息的权重,降低其他信息的关注度,从而提升网络对于小目标和遮挡部分的检测能力。

1 问题分析

随着时代的发展,汽车数量得到了快速增长,行车环境越来越多样,随之带来了交通拥堵、行车安全等一系列问题。深度学习的快速发展带动了无人驾驶技术的发展,也为解决这些问题提供了新的思路[17]。通过车载摄像头监测道路上的行人和车辆相对于自身的位置,车辆系统可以根据采集到的实时信息控制当前的行车速度和行车轨道,并根据道路情况提前做出预判,减少事故发生的概率。因此在自动驾驶过程中,及时准确的检测道路信息是非常重要的。

自动驾驶的核心技术主要包括环境感知、精准定位、决策与规划、控制与执行等。环境感知类似人类驾驶员“眼睛”“耳朵”,是实现自动驾驶的前提条件。感知系统的优劣对于自动驾驶汽车合理决策及安全行驶有着重大意义,而运动目标识别是感知系统中最重要的内容。

智能驾驶平台的开放部署环境非常多样化,对于场景自动分析的要求也更高。这给目标检测算法带来了很多新的挑战,例如如何应对智能驾驶场景中物体的各种视觉外观变化,例如遮挡、黑暗光照和小目标等,具体如图1所示。

(a)遮挡

(b)黑暗光照

(c)小目标图1 自动驾驶场景图

2 YOLOv5-EC行人车辆检测算法

YOLOv5-EC网络结构主要分为输入端、Backbone、Neck和输出端4个部分。在输入端对图像进行预处理,完成Mosaic数据增强、自动计算锚框和自适应图像缩放。Backbone由Conv、CECA、CBAM和SPPF等模块组成,将输入端得到的图像输入Backbone部分,CECA模块在主干网络中主要是用作局部跨通道融合,利用每层的特征信息获取更加丰富的特征图像,在局部跨通道融合的同时用一维卷积来实现局部跨通道交互,实现通道间的特征信息关联。同时在SPPF模块前加入CBAM注意力模块,使得网络能够同时关注空间和通道两方面的特征信息。Neck采用FPN和PAN相结合的特征金字塔结构,解决了多尺度的问题,通过上采样层和C3模块将高层的语义信息与底层的位置信息相融合,进而得到预测的特征图像并将其输入Head,其中上采样采用的是双线性插值。Head使用CIoU作为损失函数,用于输出不同尺度对象的特征信息,其输出拥有3种尺寸的图像信息,在特征生成预测框时,通过非极大值抑制保留每种类别置信度较高的预测框。具体网络结构如图2所示,其中CBS是卷积层、批量标准化BN(batch normalization)和激活函数SiLU三层的结合。针对本文研究最后通过Up sample和Concat操作融合深层和浅层特征,输出三个不同尺寸的特征图。

图2 YOLOv5-EC网络结构

当我们的输入尺寸为640×640时,会得到3个不同尺度的输出:80×80、40×40、20×20,即图2中的Prediction部分。其中,80×80代表浅层的特征图,包含较多的低层级信息,适合用于检测较小的目标,所以这一特征图所用的anchor尺度较小;同理,20×20代表深层的特征图,包含更多高层级的信息,如轮廓、结构等信息,适合用于较大目标的检测,所以这一特征图所用的anchor尺度较大;另外的40×40特征图上就用介于这两个尺度之间的anchor用来检测中等大小的目标。不同特征图使用不同尺度的anchor使得YOLOv5-EC能够高效快速地检测跨尺度目标。

2.1 CECA模块结构

CECA模块结构在原来C3模块的基础上加入了ECA模块,ECA模块结构图如图3所示。ECA模块是一种不需要降维的局部的跨通道交互机制,将C3模块输出的特征图进行平均池化操作,然后进行1维卷积操作,并经过Sigmoid激活函数得到各通道的权重,再将得到的权重与输入特征图的对应元素进行相乘,输出结果,CECA模块结构图如图4所示。

图3 ECA结构图

图4 CECA结构图

2.2 注意力机制CBAM

为了提高YOLOv5主干网络的特征提取能力,本文采用一种注意力机制来进行局部特征增强。注意力机制可以根据关注目标信息的重要程度改变相应的权重参数,能够增强待测图像的特征信息,忽略无关信息。CBAM由通道(channel)和空间(spatial)两种注意力机制组成,模块主要有池化和特征融合等操作,无大量卷积操作,模型复杂度低,是一种轻量的注意力模块,结构如图5所示。CBAM通过在channel和spatial两个作用域上应用注意力机制,可以实现先对通道进行注意力分配,然后再对空间进行注意力分配。通道注意力用于处理中间特征通道的分配关系,而空间注意力则使模型更加关注特征信息中对模型性能起决定作用的像素区域。通过对两个作用域同时进行注意力分配,可以增强注意力机制对模型性能的提升效果[18]。

图5 CBAM结构图

3 实验结果与分析

为了验证YOLOv5-EC网络在行人车辆检测中的有效性和合理性,本实验使用YOLOv5-EC、YOLOv5和同类型的其他算法在相同的数据集进行训练,并测试比较各算法的检测精度。实验所用的系统环境为Python3.9,Pytorch1.12框架,Windows10操作系统,16GB RAM,AMD Ryzen 7 5800H CPU,Nvidia GeForce GTX 1650显卡。

3.1 数据集

本实验使用的是自制数据集,一共有6167张图片,使用labeling库对车辆和行人进行人工标注后得到xml格式的文件,然后转化为txt文件。标注完成后,将数据大约按照8:1:1将数据集分成训练集、验证集和测试集,其中训练集有5047张图片,验证集有560张图片,测试集有560张图片。

3.2 可视化结果分析

YOLOv5-EC和原始YOLOv5网络对比实验的可视化结果,如图6所示。从图6中可以明显看出YOLOv5-EC算法的检测效果要优于YOLOv5算法。在第一张图片中,YOLOv5-EC算法对行人车辆遮挡部分的检测精度明显高于YOLOv5算法;在第二、三张图片中,YOLOv5算法因小目标或者是遮挡漏检了车辆和行人的信息。可视化结果说明了基于注意力机制改进后的YOLOv5-EC算法有效解决了复杂背景下对的行人车辆小目标的检测问题,证明了将注意力机制加入算法中确实具有一定的优化效果。

(a)改进模型结果

(b)原模型结果

3.3 定量分析

3.3.1 评价指标

在两个或者多个目标的检测中,对于每个类别都可以根据召回率(Recall)和准确率(Precision)绘制曲线,两条曲线与坐标轴围成的面积就是识别精度。在本文中mAP具体为行人(person)和车辆(car)两个类别的AP均值,其中准确率、召回率和mAP的计算如式(1)-式(4)所示。

(1)

(2)

(3)

(4)

在目标检测任务中,通过比较预测框和真实框之间的交并比(即交集与并集的比值)与阈值来确定TP、FP、FN和TN。具体而言,当交并比大于等于阈值时,该检测框为TP;当交并比小于阈值时,该检测框为FP;未被检测到的真实标签为FN,TN忽略不计。mAP@0.5是指IOU阈值取0.5时的值,mAP@0.5:0.95表示IOU阈值从0.5以0.05的增速增加到0.95时的mAP值的平均值。本文选用召回率(Recall)和mAP@0.5两个评价指标。

3.3.2 结果分析

如图7所示,可以看出本文网络在训练初级阶段就快速收敛,曲线于50次迭代时达到最小值附近,后续在一个小的范围内进行上下波动,并且本文网络的损失曲线比其他网络更快收敛。

图7 损失下降曲线

根据选取的评价指标对实验结果进行定量分析,召回率和mAP@0.5的评价结果如表1所示。实验结果表明,YOLOv5-EC模型和原始的YOLOv5相比,召回率基本持平,mAP@0.5提升了1.12%。相比原始网络与其他算法,本文算法在检测行人车辆目标的能力上有明显提升。

表1 改进前后算法和其他算法的评价结果

4 结论

本文提出了一种基于YOLOv5改进的行人车辆检测算法,使用CECA模块替换YOLOv5中的C3模块,并在Backbone结构中添加CBAM注意力机制,使得网络能够提高关键特征信息的权重,从而提升网络对于小目标和遮挡部分的检测能力。经过改进前后算法和其他同类型算法的实验对比证明了本文算法的有效性和准确性,因此本文算法更适用于实际交通场景中的目标检测任务中。但是在实际的交通场景中对检测速度会有很高的要求,部分情况下的背景也会非常复杂,因此本文的下一步工作需要建立一个轻量化模型,在提高检测速度的同时保证检测精度,提高模型泛化性以便于更好的为智能驾驶技术提供支持。

猜你喜欢

行人注意力车辆
让注意力“飞”回来
毒舌出没,行人避让
路不为寻找者而设
车辆
“扬眼”APP:让注意力“变现”
我是行人
冬天路滑 远离车辆
A Beautiful Way Of Looking At Things
提高车辆响应的转向辅助控制系统
行人流综述