改进YOLOv4的复杂交通场景目标检测方法

2023-04-08 13:59袁小平王准韩俊陈烨
科学技术与工程 2023年6期
关键词:特征提取注意力卷积

袁小平, 王准, 韩俊, 陈烨

(中国矿业大学信息与控制工程学院, 徐州 221116)

随着城市建设的快速发展,城市人口越来越密集,汽车保有量不断增加,给有限的交通资源带来了巨大压力。道路拥堵,交通安全隐患增多,交通事故频发,严重影响了人们的日常生活和生命安全。已有的交通资源条件难以改变,将目标检测算法应用到交通场景中完成行人、车辆以及交通信号灯的实时检测来解决问题成为研究重点[1]。

基于深度学习的目标检测算法的准确性与实时性表现较好。基于深度学习的目标检测算法可以分为基于回归的单阶段(one-stage)目标检测算法和基于候选区域的两阶段(two-stage)目标检测算法。其中,基于候选区域的检测行为由两个阶段实现:第一阶段生成目标的候选区域,第二阶段对候选区域中的候选框大小和位置进行预测,最后生成预测框。该类算法在识别准确率以及定位精度上有着不错的效果,但网络模型复杂,运算速度慢。代表算法有Faster-RCNN(faster regions with cnn features)[2];而基于回归的目标检测算法则是直接生成相应的候选框,将分类和回归任务都视作回归问题。相比于两阶段目标检测算法,其虽然并不具备更好的检测能力,但模型简单,运算速度较快。代表算法有SSD(single shot multibox detector)[3]和YOLO[4-7]系列。但是实际交通场景包含众多遮挡目标以及密集小目标,存在目标尺寸差距大问题,不利于常规卷积神经网络提取特征,使用常规目标检测算法存在漏检严重问题。

针对上述问题,本文研究以YOLOv4算法框架结构作为基础,提出改进注意力机制的多尺度特征提取融合检测网络。主要研究方法如下。

(1)为了更有效地提取图像多尺度特征,提出一种并行残差连接的多尺度特征提取融合模块MultiResBlock作为主干网络特征提取模块,该模块可以充分提取多尺度特征信息,提升网络推理速度,同时为了保证网络的轻量化,引入Ghost模块进行特征整合以及特征图尺寸通道重构。

(2)为了提高对待检测目标的关注程度,提出一种轻量级的混合注意力模块,该模块可以增强对小目标特征提取能力,减少背景对算法的干扰,同时可以避免注意力机制过度聚焦带来的漏检问题。

(3)为了提高深层网络全局信息提取能力,构建长距离依赖关系,提出一种倒残差自注意力模块IRViTBlock引入深层网络,使得深层网络能够获得全局感知,捕获特征图的全局信息。

1 本文算法

针对复杂交通场景下小目标居多、遮挡严重、背景复杂且分布密集等特点,本文研究提出基于YOLOv4框架的MRA_YOLO模型,其中主干网络基于本文提出的多尺度特征提取融合模块(MultiResBlock)、倒残差自注意力模块(IRViT)以及引入的GhostNet[8]中Ghostbottleneck模块进行重新构建,同时在主干网络浅层以及主干网络输出端引入本文改进的轻量级混合注意力机制,网络整体结构如图1所示。

1.1 多尺度特征提取模块

感受野是卷积神经网络每一层输出特征图(feature map)上的像素点映射到输入图像的区域大小,不同尺度的特征具有不同的感受野,感受野较小的特征图包含更多的细节信息,有利于小目标的检测,感受野较大的特征图,包含全局信息,有利于大目标的检测。采用固定尺寸的卷积核对特征图进行运算,感受野受限,无法充分的提取目标特征,不适用于目标尺寸差距大的交通场景。

原始的YOLOv4网络,特征提取部分采用的均是固定尺寸的卷积核操作,难以提取到有效的细节和位置信息,同时固定的感受野无法准确提取特征图的上下文信息。为了充分提取不同尺度的特征、更充分挖掘特征信息,本文构建了多尺度特征提取模块MultiResBlock。该模块采用多种卷积并行提取特征,然后将获得的多尺度特征图进行特征融合。为了尽可能减少网络参数量与计算量,该结构引入了深度可分离卷积(depthwise separable convolution)[9]与空洞卷积(dilated convolution)[10],整个模块如图2所示。MultiResBlock由3个部分组成。

(1)四分支多尺度特征并行提取部分:第1条分支通过1×1卷积提取小感受野的特征,第2条分支与第3条分支首先通过PConv(pointwise convolution)对通道进行降维,然后通过3×3的DConv(depthwise convolution)提取中等感受野的特征,最后通过PConv进行通道升维,最后将第2条分支与第3条分支的输出进行concat拼接。在网络深度相同的前提下,并行运算可以节省大量计算开销,提升推理速度,考虑到直接使用5×5卷积或者两次3×3卷积堆叠会增加网络参数量,减缓网络推理速度。因此,该结构在第4条分支首先通过PConv对通道进行降维,然后通过扩张系数为2的空洞卷积提取大感受野的特征,最后通过PConv进行通道升维。另外,考虑到实际交通背景下小目标居多,过高的感受野带来的位置信息有效性不大,因此该结构只设置一组扩张系数为2的空洞卷积进行处理,同时前3个分支可以解决空洞卷积可能无法用到所有信息的问题,最后将4个分支的特征信息进行add连接。

(2)残差连接部分:为了防止多分支特征并行提取效果不佳,同时为了加快网络收敛速度,引入残差连接,将原有特征图的特征信息,与通道拼接后的多尺度特征信息进行add。

(3)特征信息重编码部分:通过一组卷积+批归一化(BatchNormalization)+SiLU激活函数操作,对(1)、(2)两部分提取到的多尺度特征信息进行重编码,充分融合多尺度特征信息,同时重构特征图尺寸与通道。

本文利用多尺度特征提取模块作为主干网络主要特征提取及融合模块。

1.2 轻量化Ghost模块

神经网络中经过卷积层输出的特征图中存在很多相似特征图,即冗余特征图,通过大量运算生成这些冗余特征图会浪费运算资源,为了保证网络的轻量化,减轻运算资源的浪费,引入GhostNet中的Ghost模块。GhostNet将常规卷积分为两部分进行处理,一部分进行PConv对通道进行压缩,生成输入的特征浓缩,然后将浓缩特征进行一次DConv生成相似特征图Ghost,最后与浓缩特征进行一次concat拼接,具体实现过程如图3所示。

图2 多尺度特征提取模块Fig.2 Multi-scale feature extraction module

图3 常规卷积和Ghost模块Fig.3 General convolution and Ghost module

Ghost模块计算量与普通卷积计算量对比如式(1)所示。

(1)

式(1)中:Pconv为普通卷积计算量大小;Pghost为Ghost模块计算量大小,输入尺寸为(hin,win,cin),输出尺寸为(hout,wout,cout);k为卷积核尺寸;s为压缩比;rc为压缩率。

本文利用Ghost模块进行特征图尺寸的重构、通道调整,以及特征信息的整合。

图4 轻量级混合注意力模块Fig.4 Lightweight hybrid attention module

1.3 轻量级混合注意力模块

混合注意力机制分为两个部分:一部分将输入特征通过空间维度运算得到空间注意力权重;另一部分将输入特征通过通道维度运算得到通道注意力权重。对于交通背景下的目标检测任务,注意力机制将更大的权重分配给目标所在区域,而对背景噪声信息分配较小权重。因此,模型会将更多地学习重心放在权重较大的区域,从而在有限地计算资源下更好的学习有效特征,提升目标检测能力。

CBAM(convolutional block attention modoul)[11]作为混合注意力机制的代表模块,被广泛应用于目标检测任务。CBAM中CAM(channel attention module)通过由全连接层构成的多层感知机进行运算,SAM(spatial attention module)通过卷积进行运算,这会带来大量冗余的参数量。

本文研究基于更高效、更轻量的NAM(normalization-based attention module)[12]进行改进。NAM注意力机制不再通过全连接或卷积计算权重值。对于NAM中的通道注意力子模块,通过批归一化(batch normalization,BN)计算缩放因子,缩放因子即方差,缩放因子越大表示通道变化越剧烈,变化剧烈的通道包含更丰富的信息,重要性更大,而变化缓慢的通道则信息单一,重要性较小,如式(2)所示。

(2)

式(2)中:Bin为经过BN处理前的特征;Bout为经过BN处理后的特征;μB和σB分别为BN处理前特征的均值和标准差;ω为通道缩放因子,由通道对应缩放因子占全部缩放因子的比重计算而来;ε用来防止分母为0;B为位移参数。对于NAM中的空间注意力子模块,通过像素归一化(pixel normalization,PN)计算缩放因子,执行类似的操作。

由于复杂交通背景下密集小目标居多,直接串行连接通道注意力机制与空间注意力机制可能会导致注意力区域过于聚集而感受野变小,增加聚焦区域边缘目标被当作背景误处理的可能性,会丢失注意力边缘的特征[13]。因此,本文研究对原始NAM模块结构连接方式进行改进,构造的轻量级混合注意力模块RNAM(revised NAM)如图4所示。

常规的混合注意力机制连接方式首先经过通道注意力机制运算得到权重后与特征图相乘得到基于通道注意力的特征图,然后经过空间注意力机制运算得到权重后与基于通道注意力的特征图相乘得到最终的特征图,基于通道注意力的特征图相比较原始特征图含有更多的语义信息,会使得注意力聚焦区域变小,增加丢失注意力边缘特征的可能性。因此,在将基于通道注意力的特征图输入空间注意力子模块运算得到含有通道注意力机制先验知识的权重信息后,不再与基于通道注意力的特征图相乘,而是与原始特征图相乘,得到基于空间注意力机制的特征图,该特征图具有更加完整的位置聚焦区域。最后,将得到的基于通道注意力的特征图与基于空间注意力的特征图进行add加和与sigmoid归一化操作,得到基于轻量级混合注意力运算的特征图。

文献[14]证明了在浅层主干网络引入混合注意力机制对于检测复杂背景下小目标的有效性,因此在主干网络第二个卷积模块引入改进的混合注意力机制RNAM;文献[15]证明了在主干网络输出的3条分支通路上加入混合注意力机制带来的检测精度提升最有效,因此本文将改进的混合注意力机制RNAM加入主干网络3个尺寸的输出通路上。

1.4 倒残差自注意力模块

卷积神经网络具有局部连接和权值共享的特性,根据卷积的权值在局部感受野上通过聚合函数,将权值在整个特征图中共享,固有特征为图像处理带来了至关重要的归纳偏差。自注意力模块则采用基于特征上下文的加权平均操作,通过相关像素对之间的相似函数动态计算注意力权重,这种灵活性使得注意力模块能够适应地关注不同的区域,并捕捉更多的特征。卷积神经网络的局部性和自注意力机制的全局性存在潜在的互补性,为了提高网络的全局性,本文研究引入基于自注意力机制的ViT(vision transformer)[16]。

图5 倒残差自注意力模块Fig.5 Inverse residual self-attention module

ViT将输入特征图切分为多个patch(图像块),对每个patch都做一次线性变换降维处理同时嵌入位置信息,在额外加入一个class token(分类向量)组成一段一维向量序列后送入Transformer编码模块,与卷积神经网络中的BN不同,编码模块使用层标准化(layer normalization,LN),LN独立于batch size对单个数据指定维度进行处理,如式(3)所示。

(3)

式(3)中:x为输入;y为输出;E[x]为对输入均值;Var[x]为对输入求方差;为一个很小的参数,用来防止分母为0;γ、β为训练参数。

多头自注意力模块(multi-head attention)基于自注意力模块提出,如式(4)所示。

由于点乘运算后数值较大,导致通过softmax后梯度变化很小,因此引入dk进行缩放。

(4)

式(4)中:W为可训练、权值共享的变换矩阵;Q、K、V分别为由映射后输入经由变换矩阵运算后生成的qi、ki、vi组成的矩阵;dk为向量ki的长度;softmax为softmax运算。

自注意力机制减少了对外部信息的依赖,仅依靠特征图内部信息的相关性进行矩阵运算即可得到不同patch之间的注意力权重,然而标准的ViT模块忽略了CNN模型固定的空间归纳偏差,这导致网络需要更多的参数学习视觉表征,同时ViT模块对L2正则化很敏感,很容易过拟合,因此,本文借鉴MobileViT[17]的思想,构建倒残差自注意力模块,如图5所示。

对于输入特征信息,首先通过卷积模块进行局部信息编码,然后通过PConv学习输入通道的线性组合进行通道升维,再对特征图进行切分编码,将(H, W, D)信息编码为(P, N, D),相比较二维的标准ViT保留了像素空间顺序信息,通过层归一化加速模型收敛,然后通过一个多头注意力模块将输入进行多组自注意力运算,将结果拼接后与可学习参数运算得到Attention,在模块后应用DropPath防止模型过拟合,然后经过一组前馈神经网络运算,在前馈神经网络前后同样应用LN与DropPath,在对特征图折叠复原后通过PConv将特征信息映射回低维空间,原始结构直接与输入进行拼接,本文将输入进行一次局部信息编码后进行拼接,能够更好的融合局部信息的先验知识,最后在经过一次局部信息编码后,通过卷积模块进行通道的融合,倒残差自注意力模块在充分提取局部特征的基础上实现了全局感知。

对于神经网络,浅层网络特征维度较低,特征表现细节信息,覆盖局部区域,内容更为具体,因此对感受野及位置信息的需求不大;而深层网络特征维度较高,特征更倾向于表现整体信息,覆盖区域越全面,内容越抽象,对感受野及位置信息要求较大,因此将能够获取全局感知的倒残差自注意力模块加入主干网络深层,结合多尺度特征提取融合模块构建主干网络MultiGhostViTNet。

最后,为了进一步避免漏检问题,引入Soft-NMS[18]替换NMS,NMS存在的问题是当置信度最高的检测框与待判断检测框iou过大时,会将待判断检测框直接删除,Soft-NMS则将待判断检测框给予一定的惩罚而不是直接置零,远离置信度最高检测框的预测框惩罚较小,随着两者重合度的提高惩罚线性增大,一定程度上优化了漏检问题,NMS与Soft-NMS对比如式(5)所示。

(5)

2 实验与结果分析

2.1 实验准备

实验环境如表1所示。实验选取来自自动驾驶算法比赛中的Udacity数据集来验证本文算法的有效性,整个数据集共有24 420张图片。文献[19]选取整个数据集进行车辆行人目标检测,本文从中选取15 000张场景复杂、密集小目标居多的图片作为实验数据集,同时增加对交通信号灯的检测。数据集图片分辨率均为1 920×1 200。图片中标注信息有car、pedestrian、truck、trafficLightRed、trafficLightRedLeft、trafficLightGreen、trafficLightGreenLeft、trafficLightYellow共8类,本文研究将car和truck合并为car,将pedestrain更改为person,将traf-ficLightRed、afficLightRedLeft和trafficLightYellow合并为RedLight,将trafficLightGreen和trafficLightGreenLeft合并为GreenLight,主要完成车辆、行人、红灯及绿灯的检测任务,Udacity数据集图像如图6所示。

表1 实验环境

图6 Udacity数据集Fig.6 Udacity dataset

2.2 网络训练

本次实验采用平均精度(average precision,AP)、不同类别平均精度的平均值(mean average precision,mAP)中的mAP50、模型大小(model size)、参数量(params)、帧率(frames per second,FPS)几项性能指标评判算法的性能。

将Udacity数据集按8∶1∶1的比例划分为训练集、验证集和测试集。为了克服K-means算法由于初始聚类中心选择而存在随机性的问题,本文使用K-means++聚类算法替换K-means算法对Udacity训练集进行聚类,得到3种尺度的Anchor box,如表2所示。

训练阶段的参数设置如表3所示,其中学习率分别在80轮、140轮下调为前一阶段的10%。

表2 锚框大小

训练过程的Loss曲线及mAP(mean average precision)曲线如图7所示,网络在160个Epoch左右收敛。

表3 训练参数设置

图7 训练过程曲线Fig.7 Training process curve

2.3 对比实验

本文所提改进方法分别为:①用构造的多尺度特征提取模块、倒残差自注意力模块以及引入的Ghost模块重新构建主干网络;②引入构造的轻量化混合注意力机制RNAM;③利用Soft-NMS替换NMS。为了分析本文改进方法的有效性,本节进行消融实验,包括:①以原始YOLOv4算法为基础,分别只增加一种改进方法,验证每一个改进方法的有效性;②以增加一种改进方法后的算法为基础,再次增加一种改进方法,验证两种改进方法配合使用的有效性。实验结果如表4所示。本文提出的主干网络在实时性提升27.5%的前提下,精度提升了0.81%,在有效提升网络实时性的前提下取得了部分精度提升,分析认为多尺度特征提取模块特征提取能力更强,同时结合Ghost模块降低了模型计算复杂度,深层倒残差自注意力模块增强了深层网络的学习能力;本文提出的轻量级注意力模块可以将精度提升2.03%,对本文算法精度提升最大;通过引入Soft-NMS替换NMS可以在基本不损失实时性的前提下提升0.17%的精度。本文提出的改进方法都会带来有效提升,最终算法相比较原始YOLOv4算法在Udacity数据集上检测精度提升了3.07%,达到了84.41%,FPS提升了22.5%,达到了49。综上,本文算法在实时性、准确率方面都取得了较大提高。

为了验证本文改进注意力模块对比其他注意力机制的有效性,用YOLOv4、YOLOv4+SE[20]、YOLOv4+CBAM与YOLOv4+RNAM进行实验对比,结果如表5所示,可见本文提出的轻量级注意力模块可以在基本不增加模型大小的前提下取得明显精度提升,分析认为CBAM中的全连接层和卷积层带来了大量的参数量,RNAM通过归一化取得权重大大减少了网络参数量,同时优化的结构进一步提高了网络对密集小目标的检测能力。

为了进一步评估本文算法对比其他主流算法的优越性,将本文算法分别与Faster R-CNN、SSD、YOLOv3、YOLOv4、YOLOv4-tiny、YOLOv5s、YOLOX-X[21]算法进行对比实验,结果如表6所示。相比较经典网络Faster R-CNN、SSD、YOLOv3,本文算法取得了最高精度,同时实时性、模型规模也表现较好;虽然YOLOX-X检测精度与本文算法相近,但不满足实时性要求,本文算法检测速率相比较YOLOX-X高出28FPS,同时模型体量只有YOLOX-X的31.9%;相比较YOLOv4-tiny与YOLOv5s,虽然两个轻量化网络模型较小,同时取得了很高的检测速度,分别达到了113、89,但检测精度仅仅达到了55.25%、68.80%,无法应用到实际复杂交通场景中,本文网络在取得较高实时性表现的前提下,精度分别提高了29.16%、15.61%。实验结果表明,本文提出的MRA_YOLO算法在取得较高实时性前提下,有着较高的检测精度表现,同时对比同等检测精度网络,模型规模得到了较大压缩。

表4 消融实验

表5 不同注意力模块实验对比

图8 实际场景检测对比Fig.8 Comparison of actual scene detection

表6 不同算法实验对比

为了能直观地展示本文算法的检测性能,使用本文算法与YOLOv4算法分别对两种光照及路况下的实际交通场景图进行检测,实验结果如图8所示。本文算法在两种光照背景条件下均能有效检测出部分YOLOv4漏检目标,对于密集、遮挡目标检测具有一定的改进,同时本文算法能够将与背景难以区分的目标成功检测出来,目标检测能力明显提高,另外YOLOv4存在误检情况,本文算法不存在误检情况。因此,相比较YOLOv4,本文算法更适用于实际复杂交通场景下的目标检测任务。

3 结论

提出了一种改进注意力机制的多尺度特征融合检测算法,得出如下结论。

(1)构造了多尺度特征提取融合模块,选用1×1卷积、深度可分离卷积、空洞卷积进行构建,多尺度特征提取能够加强网络特征提取能力,增大网络感受野,网络可有效充分提取不同尺度目标的特征信息;在多尺度特征提取融合模块中,将3×3卷积由单通路运算更改为并行运算结合通道拼接节省了网络计算开销,提升了推理速度,最后通过残差连接,保留了原始特征,同时加快了模型收敛。

(2)混合注意力机制中的全连接层和卷积层会带来额外的参数量及运算量,选用批归一化替换注意力机制中的全连接层和卷积层进行权重运算可有效降低注意力机制的参数量与运算量;更改混合注意力机制的连接方式,避免了网络注意力过于聚焦于目标区域而丢失目标区域边缘特征信息的问题,将改进的轻量级注意力模块加入主干网络浅层与输出到加强特征提取网络的通路,有效提高了网络关注目标的能力,增强了网络的检测能力。

(3)自注意力模块具有良好的全局性,结合卷积模块的局部性能对网络带来有效的增益。结合倒残差的思想,将卷积与自注意力机制结合构造倒残差自注意力模块,融合特征的局部信息与全局信息,加入主干网络的深层,使得深层主干特征提取网络获得了全局感知,有效提高了深层网络特征学习能力。

(4)通过多组实验,验证了本文算法的有效性,本文算法在轻量化的基础上提高了检测精度,同时保证了基本的实时性,相比较YOLOv4、YOLOv5s、YOLOX等代表算法更适合部署于复杂交通背景中进行交通灯、车辆、行人目标检测任务。

猜你喜欢
特征提取注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
Bagging RCSP脑电特征提取算法
A Beautiful Way Of Looking At Things
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法