面向交通视频流的轻量化车辆检测模型
2023-12-12丁华,刘来
丁 华,刘 来
(江苏大学 汽车与交通工程学院, 江苏 镇江 212013)
0 引言
在智慧交通系统(ITS)中,车辆检测技术是必不可少的重要环节[1],其检测的速度和精度直接影响到智慧交通系统的实时性和准确性。近年来,基于自动驾驶、智能监控和数字孪生系统等新兴方向的快速发展,以及各类视频数据不断涌现的背景下,对视频流中的目标物体进行检测开始成为主流趋势。视频流样本数据本质上就是连续帧的图像数据,因此二者的检测原理相差无几。当前在视频检测领域遇到的问题主要有:1) 用于检测的网络模型的轻量化问题[2]。视频检测模型往往网络层数多,内存需求和参数量很大,这会导致模型难以部署在移动端或是嵌入式设备上。2) 在视频流中待检目标随着时间发生一系列变化的问题[3]。不断变化的目标物体经常会产生运动模糊、虚焦、遮挡之类的问题,导致难以识别到目标的有效特征。
面向交通视频流的车辆检测模型的实现主要基于目标检测技术。传统的目标检测算法主要靠人工技术来构建特征,然后使用一个给定步幅的滑动窗口进行特征提取[4]。这类检测方法主要有Haar+AdaBoost[5]、HOG+SVM[6]、DPM[7]等。这些基于人工提取特征信息的操作会导致信息冗余、内存消耗过大、检测效果差等问题,同时也会使检测速度极为缓慢。随着深度学习在目标检测领域的应用不断增多,特别是随着CNN(convolutional neural network)[8]的提出,使得图像中的车辆检测以及其他基于图像的对象检测任务取得了令人瞩目的成功[9],以YOLO[10-14]系列、SSD[15]为主要代表的单阶段检测算法开始成为车辆检测中的主流方法。虽然在早期这类方法的精度会低于以Fast R-CNN等[16]为代表的2阶段目标检测算法,但随着one-stage算法的不断迭代更新,目前最新的YOLOv6[17]、YOLOX[18]、YOLOv7[19]等检测模型在速度和精度上都远远领先于2阶段检测算法。
虽然单阶段算法在检测效果上取得了很大的成功,但是密集的层数、高额的参数量和难以识别的特征等依然是亟待解决的问题。Tan等[20]提出了一种计算效率极高的轻量化CNN架构ShuffleNet,将点态分组卷积和信道重组相结合,在维持精度的基础上节省了对内存的消耗。Tan等[21]提出了Fused-MBConv的概念,使用基于强化学习的神经网络搜索结构探寻模型的最佳缩放因子,以此来同步更新模型的宽度、深度和分辨率,从而开发出了EfficientNetV2,它的体积仅为之前最优轻量化模型的14.7%,但是计算速度却远超前者。Dong等[22]提出了一种轻量级YOLOv5车辆检测方法,将C3Ghost和Ghost模块引入YOLOv5颈部网络来提升特征提取效果,此外还引入了注意模块CBAM用来提高检测精度,最终与YOLOv5模型基线相比参数量减少了19.37%,精度提高了3.2%。Wang等[23]修剪了YOLOv4-tiny的卷积核,并在网络的残差模块中加入了扩展卷积层,还增加了参考人体视觉机制的感受野模块RFB用以提高网络模型的空间注意力和通道注意力,实现了在降低模型规模的同时提高模型的平均精度和实时检测速度。
为了减少网络模型的层数和参数量,实现检测模型的轻量化需求,同时能够对难以识别的特征起到更好的检测效果,本文提出一种改进YOLOv7的轻量化车辆检测模型。通过结合MobileNetV3结构减少网络层数和参数量,以此实现网络模型的轻量化。针对快速变化的目标特征信息难以提取的问题,引入一种无参注意力机制并融合双向特征金字塔结构来增强特征学习能力。最终通过对数据集进行随机区域忽略的处理来提高网络模型的鲁棒性。
1 相关工作
1.1 YOLOv7网络模型
与早前的YOLO系列网络相比,YOLOv7的改进工作之一是将激活函数由LeakyReLU改为SiLU[24],其他基本模块借鉴残差设计的思想进行了优化,但网络的基本框架没有发生太大的变化,仍然是由主干层、特征融合区域和检测头3个部分组成,其中特征融合区域和检测头是作为一个整体存在的。YOLOv7的网络结构如图1所示。
图1 YOLOv7网络结构
1.1.1主干层
YOLOv7的主干网络主要包括扩展高效层聚合网络E-ELAN、用于下采样和特征提取的CBS模块、MP模块和起到扩大感受野减少梯度信息重复作用的SPPCSPC模块,CBS作为最基础的模块,集成到其他模块中。
1.1.2特征融合区域
颈部层的本质就是起到一个特征融合区域的作用,它采用了传统的PAFPN[25]结构,能够让网络更好地学习从主干网络中提取到的特征,不同细粒度的特征被分别学习并集中合并,以便学习尽可能多尺度的图像特征。
1.1.3检测头
YOLOv7算法继承了以前算法的优点,保留了3个检测头,用于探测和输出目标对象的预测类别概率、置信度和预测框坐标。探测头输出3种特征尺度:20×20、40×40和80×80,这3个特征尺度分别对应于大目标、中目标和小目标。
1.2 注意力机制
注意力机制[26]的提出最早是基于对人类视觉系统的深入了解。它模拟了人类不会同时关注所有信息,而是会有针对性地着重聚焦于某些有用信息而弱化剩余无用信息的现象,以便合理利用有限的视觉处理资源。深度学习领域引入的注意力机制主要是通过只选择输入信息的一部分,或者对输入信息的不同部分赋予不同的权重,来解决信息冗余的问题。
本文从聚焦浅层结构中包含的重要目标特征,弱化无关特征出发,在头部结构中添加注意力机制,强化模型对难以识别的特征信息的学习能力,减少误检或漏检情况的出现。
2 网络模型改进
2.1 轻量化模型MobileNetV3
为了能够实现车辆检测模型在移动端或嵌入式设备上的部署,将YOLOv7的主干网络替换为轻量级网络模型MobileNetV3[27],大幅度地减少用于特征提取的主干网络模型的参数量以及对于内存空间的占用。MobileNetV3是在它的前身MobileNetV2基础上进行更新,主要的创新之处在于更新了激活函数,引入了SE通道注意力模块,重新设计了耗时层的结构,提高了模型的特征表达能力,其核心组成部分bneck模块如图2所示。
图2 bneck模块
2.2 无参注意力机制SimAM
交通视频流的图像范围广,拍摄周期长,受遮挡和光线明暗度干扰较大,因此有效聚焦重要区域至关重要。SimAM[28]是一种无参数的注意力机制,可以灵活地为不同特征图调整3D注意力权重,以此来提高网络获取目标的能力,其原理如图3所示。
图3 SimAM注意力机制原理
当从特征图中获得注意力权重时,SimAM不用添加多余的参数,从而得到更小的权重和更高的效率。SimAM的原理是利用计算神经元之间的线性可分离度来发现主要的神经元,并让这些神经元优先获得关注。本文将SimAM嵌入到改进的YOLOv7模型中以提高目标检测的性能。SimAM来源于神经科学理论,为了区分神经元的重要性并成功实现注意,使用能量函数来定义神经元t与位于相同通道中除t外任意一个其他神经元之间的线性可分离度。每个神经元的能量函数定义如下:
(1)
式中:t和xi是目标神经元和通道中的其他神经元;wt和bt是t的线性变换的权重和偏差;i是空间维度中的指数;λ是超参数;M=HW是单个通道上所有神经元的数量。变换权重和偏差表示如下:
(2)
(3)
(4)
(5)
通过计算wt、bt以及通道中每一个神经元的均值和方差的解析解,得到最小能量公式为:
(6)
(7)
(8)
从式(6)可以看出,能量函数值和神经元t与其他神经元之间的线性可分离度呈负相关的关系,线性可分离度会随着能量函数值的减小而变大。整个注意力模块都是在这个能量函数的指导下完成的,避免了过多的启发式和调整工作。通过对单个神经元进行计算,同时将线性可分离度的思想应用在整个模型中,使模型的学习能力得到了增强。本文的实验表明,在YOLOv7结构中引入SimAM无参数注意力机制有助于模型在检测过程中更有效地提取物体的特征信息,而不增加原始网络参数。
2.3 改进的双向特征金字塔网络BiFPN
YOLOv7在特征融合区域和检测头部分是沿用了FPN与PAN相结合的模式,对来自不同主干层的检测参数进行聚合。这种结合虽然有效地提高了模型的信息聚合能力,但也导致了一个问题的出现,即PAN结构本质上是对特征的再次提取,它获得的信息数据都是先由FPN提取处理过的,在预先处理信息的过程中会丢失大量主干部分的初始特征。在训练过程中缺乏初始特征容易导致欠拟合现象的出现,降低检测的精度。从解决上述问题出发,本文使用了改进的双向特征金字塔网络BiFPN[29]来改进原始的YOLOv7结构。原BiFPN网络构建了双向通道,提出了跨尺度连接方法,增加了额外的边,将特征提取网络中的特征图直接与自底向上路径中相对应尺寸的特征图融合。因此,网络保留了更多的浅层语义信息,而不会丢失太多的深层语义信息。原BiFPN网络根据不同输入的重要性设置了不同的权重,同时这种结构被反复使用以加强特征融合。然而在实际使用时发现在YOLOv7中引入加权BiFPN后的结果并不理想,其原因可能是对输入图层进行加权与添加注意力机制的操作非常相似。因此,本文去除了BiFPN的权重部分,引入了去权重的BiFPN,去加权BiFPN网络结构如图4所示。
图4 特征设计网络结构
将主干层替换为MobileNetV3结构,在MP模块后加入SimAM注意力机制,并在融合采样部分引入去加权的BiFPN结构,整体改进后的YOLOv7网络结构如图5所示。
3 实验与结果分析
3.1 实验数据集
本文主要是面向交通视频流中的车辆检测,所以选择的数据集为真实场景下的车辆视频数据集UA-DETRAC[30],该数据集包含使用佳能EOS 550D相机在北京和天津的24个不同地点拍摄的长达10 h的交通视频。视频数据以25帧/s的速度进行录制,样本尺寸为960×540像素。UA-DETRAC 数据集中有14余万帧图片和8 250辆标注了相关信息的车辆,其中训练集约82 085张图片,测试集约56 167张图片,根据不同的场景和路段共分为60段视频,数据集中的部分示例如图6所示。
图6 UA-DETRAC部分数据示意图
综合考虑数据集的特征信息冗余和本次实验的算力,决定在所有视频数据中每隔10帧取1张图片,共获得训练集8 639张,验证集2 231张,未被选取的即为测试集,并将数据集分为car、bus、van、others四类,各类样式图例如图7所示。
3.2 随机区域忽略处理
为了增强数据集中的图像数据,使网络模型获得更强的鲁棒性,同时减轻对算力和内存的需求,考虑使用一种随机区域忽略的方法对图8(a)所示的原始数据进行处理,对每一张图像随机划分出部分区域作为忽略区域,忽略区域主要是从路侧的静止车辆区域、过于远离摄像头使得车辆目标特征可以忽略不计的区域、无车辆目标或是其他目标的背景区域,处理后的样本数据及标注效果如图8(b)所示。
图7 样本分类图例
图8 数据处理及标注
3.3 评价指标
为了评估相同实验条件下改进前后网络模型的优越性,主要选取P-R曲线,当预测框与目标框的交并比(IOU)大于0.5时所有类别的平均准确度的平均值mAP0.5,模型参数量,FPS等指标来进行对比,计算公式如下:
(9)
(10)
(11)
(12)
(13)
式中:TP为预测为阳性的阳性样本数;FP为预测为阳性但实质为阴性的样本数;FN为预测为阴性但实质为阳性的样本数;FPS为每秒可以处理的图片;t为处理一张图片所需的时间。
3.4 实验准备和训练细节
本次实验所采用的设备与环境配置为:Intel(R)Xeon(R)Gold6226RCPU@2.90 GHz处理器、NVIDIA RTXA500显卡、24 G显存;Windows 11操作系统以及Python3.9.0+torch1.8.0+CUDA11.1软件环境。训练参数如表1所示。
表1 模型训练参数
3.5 消融实验
为了验证各项改进内容对于网络模型的改进效果,本文在实验环境维持不变的情况下,在UA-DETRAC上开展了4组消融实验。消融实验结果见表2所示,其中“√”表示相对应的改进方法和实验序号。
表2 改进模块消融实验结果
从表2可以看出,第1组实验是将原始的YOLOv7作为基准,在不进行任何改进的情况下,其mAP值为62.9%,参数量为37.2 M,FPS可以达到45.7。第2组实验只将BackBone层替换为MobileNetV3结构,其mAP值虽然下降了8.4%,但是模型的参数量下降到了原来的1/6,FPS提升了3倍以上。第3组实验是在前面的基础上融合了无参注意力机制SimAM,在参数量基本保持不变的情况下,mAP0.5有了一定的提升,FPS几乎没有太多变动。第4组实验则是在考虑了第3组实验的前提下引入了一种改进的BiFPN结构,进一步增强了网络模型的特征提取能力,与基准模型相比参数量减少了30.3 M,FPS提高到了143.8,mAP0.5提升了9.1%,实现了网络模型轻量化目标,达到了检测速度和精度的要求。
3.6 对比实验分析
在保证各项参数保持一致的情况下,本文将原始的YOLOv7模型与改进后的算法模型分别进行训练来确定模型对比的公平性,训练结果分别如图9所示。
图9 改进前后模型训练结果
从图9可以看出,改进后的YOLOv7算法模型mAP值从62.9%提高到72.0%,其中car类AP值从79.2%提高到81.6%,提升2.4个百分点;bus类AP值从82.4%提高到87.6,提升5.2个百分点;van类AP值从57.4提高到57.7,提升0.3个百分点;others类AP值从32.7提高到61.2,提升28.5个百分点,4种车辆类别检测的AP值均有提升。
为了验证改进后算法的优越性,在保持实验环境、训练细节和数据集不变的情况下,将改进后的算法模型与其他经典算法模型进行比较,结果见表3所示。从表3中可以看出,改进后的算法模型在输入尺寸相同的情况下,mAP值和FPS都超过了其他经典网络模型,更加适合交通视频流中的车辆检测。
表3 不同网络模型性能
3.7 可视化分析
为了更加直观地反映出算法模型改进前后的差异性,选择了3张不同情况下的数据样本生成检测效果如图10所示。
图10 可视化样例检测效果
在昏暗且有遮挡的条件下,原网络没有检测到右上角的2辆车,而改进后的算法成功检测到了车辆和对应的类别,说明改进后的网络可以减少车辆漏检情况。对于虚焦模糊且有遮挡的情况,改进后的网络整体检测精度都要高于改进前的网络,说明改进后的网络在检测效果上有明显的提升。在图像特征少的情况下,改进前的网络没有检测到下方的车辆,而改进后的网络检测到了van,其精度为0.53,说明改进后的网络对于有效特征的提取能力更加优秀。
4 结论
针对YOLOv7模型在对交通视频流中的车辆目标进行检测时遇到的一些问题,提出了一种改进的网络模型。通过将主干网络替换为MobileNetV3,降低模型整体的参数量和内存需求。引入SimAM注意力机制,对重要的特征信息聚焦处理,同时融合改进的BiFPN结构,进一步提高网络的特征整合能力,最后在数据集上做了随机区域忽略处理,增强模型的鲁棒性。改进后的网络模型在数据集UA-DETRAC上的测试结果表明,相比较YOLOv7网络模型,参数量有了大幅度的减少,FPS提高到了143.8,检测精度mAP0.5提升了9.1个百分点,证明了改进算法的优越性。但该模型只检测了4种车辆类型,而且没有对非机动车和行人等非车辆单位进行识别,后续可以对数据集进行更精细、全面的类别划分,以提高模型在实际检测中的适应能力。