2. 东北林业大学,机电工程学院,黑龙江 哈尔滨 150040
2. School of Mechanical and Electrical Engineering, Northeast Forestry University, Harbin, Heilongjiang 150040, China
随着国民经济的快速发展和城镇居民生活水平的提高,机动车的数量快速增加。根据《中国移动源环境管理年报(2023)》,2022年全国机动车保有量达4.17亿辆,同比增长5.6%[1]。机动车在带给人们出行便捷的同时,也向空气中排放着多种有害物质。其中柴油车是污染物排放的“重灾区”,氮氧化物(NOx)占汽车排放总量的80%以上,颗粒物占90%以上,因此识别出高排放污染车辆,对于环境保护及其治理具有实际意义。
近年来,深度学习在许多领域的表现优于传统人工方法。自从AlexNet[2]被提出以来,卷积神经网络(CNNs)在计算机视觉任务中表现出卓越的性能,特别是在目标检测领域得到了广泛应用。目前,利用卷积神经网络进行目标检测主要有2种方法。一种是以R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]、Mask R-CNN[6]为代表的双阶段检测方法,这种方法具有更高的检测精度,但检测效率较低。另一种则是以YOLO[7-9]系列和SSD[10]等为代表的单阶段目标检测方法,这类算法以速度优势著称,但在检测精度上稍显不足。在实际应用中,为了实现对黑烟车辆的快速识别,通常采用单阶段检测算法。
吴丙芳等[11]提出一种双流卷积神经网络的机动车黑烟检测方法,所提出的检测模型对黑烟图像的识别率高达93.7%。时佳琦[12]提出一种最大信息系数的分块离散余弦变换特征的黑烟识别方法,能够有效压缩特征维数,提升识别速度。Peng等[13]提出了一种新的高效级联烟雾车辆检测框架,实验表明该框架优于手工制作的基于特征的方法和最近的高级方法。Kundu等[14]提出了一个双层框架,通过烟雾产生和变压器网络来增强数据集,还在YOLOv5主干网上提出了一种变压器网络,该网络可以同时有效地从图像帧中识别烟雾区域和烟雾车辆。Tao等[15]提出了一种新的烟雾密度估计网络(SDENet),大量的烟雾密度估计实验表明,该模型在现有方法中具有最好的性能。Wang等[16]利用目标检测网络提取多个包含柴油车和黑烟的区域,再设计二维卷积分类网络对候选黑烟区域进行细粒度分类,以实现柴油车检测。
目前黑烟车辆检测算法存在检测精度低、小目标检测困难、检测速度无法满足需求的问题,同时在复杂环境中误检率、漏检率较高。针对上述问题,现提出一种改进YOLOv5s的黑烟车辆检测算法,利用网上公开数据集和真实道路拍摄图像建立内容丰富的黑烟车辆数据集,对模型进行改进,并通过对比实验和消融实验验证算法的有效性。
1 YOLOv5s模型概述YOLOv5[17]是目前广泛使用的单阶段目标检测网络之一,因其高检测精度和快速推理等特点,在各领域中都取得了不错的成果。YOLOv5算法精心设计了4种不同大小的网络结构,分别是YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。这4种网络结构在核心组成部分上保持了高度的一致性,确保了算法在基本原理上的稳定性和可靠性,它们在深度和宽度上进行了差异化的设计。考虑到模型的轻量化需求和对设备硬件条件的性能要求,本研究选择复杂度最低的YOLOv5s进行测试和改进。另外,YOLOv5版本不断更新,本研究选取目前最高版本v7.0,该版本效果最佳。
YOLOv5s网络主要包括输入端(Input)、主干网络(Backbone)、颈部(Neck)和预测端(Head)4个部分。输入端主要用于输入原始图像,并使用Mosaic数据增强、自适应锚计算和自适应图像缩放等技术对图像进行处理,丰富数据集,增强网络的自适应性,从而提高对目标的检测性能。主干网络是图像识别和处理任务中的核心,负责高效提取图像的关键特征。该网络精心构建了CBS、C3和SPPF等多个模块,每个模块都针对特定的特征提取需求进行了优化。其中,CBS模块尤为关键,它融合了卷积层(Conv)、批量归一化层(BN)和激活函数层(SILU),形成了算法的基础组件。在主干与头部之间的颈部结构,常被用来整合多尺度信息的特征图,以产生不同层次的特征图,由特征金字塔网络(FPN)和路径聚合网络(PAN)组成,FPN利用自顶而下的方式进行上采样,将高层和低层的特征信息进行融合,生成预测特征图,在FPN之后增加了一个特征金字塔,包括通过下操作将底层和高层的特征融合在一起产生预测特征图的2个PAN结构。预测端主要解决从主干提取特征映射的定位问题,采用CIoULOSS损失函数衡量边界框定位的准确性,使用NMS非极大值抑制来消除检测时冗余的候选框,最终更加准确地预测目标的种类和位置,输出80×80,40×40和20×20(单位为像素,下同)这3个尺度的特征图,用于预测大、中、小3种尺度的目标。
采用YOLOv5s算法进行黑烟车辆检测时存在精度低、小目标检测困难、检测速度难以满足实时监测需求,且在复杂环境中误检率、漏检率高等问题。针对上述问题,首先,添加一个预测层来提升模型对小目标的检测性能,能够更加关注细粒度特征,减少细粒度特征信息丢失。其次,引入坐标注意力(Coordinate Attention,CA),有效增强模型的深层特征提取能力,从而提高检测精度。最后,将边界框回归损失函数改进为GIoU,提高边界框的定位精度。算法总体架构见图 3,实线蓝框内为改进的模块,实线红框内为引入的注意力模块。
原始YOLOv5s模型仅有3个预测层,对应的预测层特征图尺寸分别为80×80,40×40和20×20。输入尺寸为640×640的图像到Neck网络时,分别进行8,16和32倍的下采样操作,生成的预测特征图分别用于检测图像中的小目标、中目标和大目标。然而,3个预测层的结构影响模型对小目标的检测性能,因此为了提高对远距离小目标的检测准确率,本研究在YOLOv5s网络的基础上增加了1个预测层,即小目标检测层,改进前后的Neck结构见图 4(a)(b)。
原Neck网络中进行2次上采样,添加预测层后增加1次上采样,第3次上采样后的特征图大小为160×160。接着将其与Backbone网络中的第2层特征图进行Concat融合,得到新增的预测层(P2层),其特征图大小为160×160。每个特征图格子对应输入图中的4×4感受野,这样可以更好地检测小目标,并在特征融合过程中为其他层提供更多信息。在原始的YOLOv5s模型中,有3个检测层,聚类anchor框的数量为9。在加入1个预测层后,再次进行聚类,将得到12个anchor框,分别对应较小目标、小目标、中目标和大目标4个尺度。改进后的模型为4个尺度的预测层设计,将底层特征的高分辨率和深层特征的高语义信息进行融合和利用,同时网络的复杂度并未显著增加。
2.2.2 引入CA注意力在大多数情况下,摄像头抓拍到的黑烟图像较小,且分辨率不理想,这会影响网络对黑烟特征的提取和特征表达的准确性。因此,本研究引入了CA注意力[18],有效提升了骨干网络的特征提取能力。CA注意力机制是一种增强神经网络特征描述的方法,它首先将多维特征图分解为2个一维特征向量,然后利用激活(Excitation)操作在2个空间方向上聚合特征,以捕捉远程依赖关系并保留精确位置信息。接着,通过编码生成方向感知和位置敏感的注意力图,并将其加权到输入特征图中,以强调关键特征。这种机制能提升神经网络在图像识别任务中的性能,具有广泛的应用前景。
引入CA注意力可以有效增强模型对多通道输入数据的建模能力,提高模型性能和泛化能力。该机制在图像处理、视频分析等任务中具有重要的应用价值。CA注意力算法流程见图 5。
首先,为了避免空间信息全部压缩到通道中,将输入特征图进行全局平均池化,从高度(h)和宽度(w)2个方向上进行,得到2个特征图,公式见式(1)和式(2)。
$ z_c^h(h)=\frac{1}{w} \sum\limits_{0 \leqslant i <w} x_c(h, i) $ | (1) |
$ z_c^w(w)=\frac{1}{h} \sum\limits_{0 \leqslant j <h} x_c(w, j) $ | (2) |
式中:zch(h)、zcw(w)——模型在高度方向和宽度方向上的输出特征图;c——通道数;h——高度值;w——宽度值;xc(h, i)——各通道中原高度特征图;xc(w, j)——各通道中原宽度特征图。
接着,将特征图进行Concat操作,然后进行F1操作(利用1×1卷积核进行降维)和激活操作,生成相应特征图(f),公式见式(3)。
$ f=\delta\left\{F_1\left[z_h^c(h), z_h^w(w)\right]\right\} $ | (3) |
式中:δ——非线性激活函数;F1——|x|卷积;[zhc(h),zhw(w)]——沿空间维度的融合操作。
随后,将f沿着空间维度进行split操作,分成2个独立张量f h和f w,利用1×1卷积进行升维度操作,结合sigmoid激活函数,最后得到各通道下带有2个方向的注意力向量权重的总特征图[yc(i, j)],公式为(4)—(6)。
$ \begin{aligned} g^w=\sigma\left[F_w\left(f^v\right)\right] \end{aligned} $ | (4) |
$ g^h=\sigma\left[F_h\left(f^h\right)\right] $ | (5) |
$ y_c(i, j)=x_c(h, j) \times g_c^h(i) \times g_c^w(j) $ | (6) |
式中:gw、gh——注意力向量2个方向的权重;σ——sigmoid激活函数;Fw、Fh——2个1×1卷积。
最后,引入CA注意力后的Neck结构见图 6。在Neck结构增加了P2检测层的基础上,进一步改进。原YOLOv5模型中,P2、P3、P4、P5中的特征图经过上采样后传入C3,接着传入检测头。改进后,当P3、P4、P5中的特征图经过上采样后传入C3后,不再是直接传入检测头进行决策,而是在C3后引入CA注意力,进行更细粒度的特征提取后,传入对应检测头中。
黑烟具有形状不固定、刚性差等特点,因此在进行黑烟尾气检测时经常出现定位精度不佳的情况,预测框和真实框之间的差异无法准确衡量,影响了算法的精度提升。为此,本研究引入了GIoU(Generalized Intersection over Union)损失函数[19],用于更好地衡量预测框和真实框之间的重叠程度。与传统的IoU损失函数相比,GIoU考虑了预测框和真实框之间的距离,因此更准确。GIoU损失函数首先计算2个框的交集和并集,然后通过计算并集的面积减去交集的面积来得到IoU。
随后,GIoU损失函数引入了一个修正项,用于惩罚预测框和真实框之间的相对位置和尺度差异,从而更准确地衡量2个框之间的相似度。针对不同的视觉任务,同一损失函数也可能表现不一致,而在某些特殊任务中,GIoU损失函数常常表现更佳。因此本研究对各项常用的损失函数进行测试,最终选取GIoU作为模型的损失函数。
GIoULOSS计算过程如下。
首先计算出IoU值,计算公式见式(7)。
$ \mathrm{IoU}=\frac{I}{U} $ | (7) |
式中:I——2个矩形框相交部分的面积;U——2个矩形面积之和(Ap+Ag)减去2个矩形相交的面积I,因此IoU计算公式见式(8)。
$ \operatorname{IoU}=\frac{I}{U}=\frac{I}{A^p+A^g-I} $ | (8) |
GIoU在IoU基础上,考虑了2个矩形最小闭包和2个矩形的最小外接矩形的大小,GIoU的计算公式见式(9)。
$\mathrm{GIoU}=\mathrm{IoU}-\frac{A^c-U}{A^c} $ | (9) |
式中:-1≤GIoU<1;Ac——2个矩形的最小外接矩形的面积。最后计算GIoULOSS,公式见式(10)。
$ \text { GIoULOSS }=1-\mathrm{IoU} $ | (10) |
操作系统为Windows 11,CPU为Intel(R) Core(TM) i9-13900HX 2.20 GHz,GPU为NVIDIA GeForce RTX 4060 Laptop。编译环境为Python 3.8.18+Pytorch 2.1.1+CUDA 11.3。
基本训练参数:image_size=640,epoch=200,batch_size=8。
3.2 数据集构建目前深度学习领域并没有公开带标注的黑烟车辆数据集,因此本研究制作了一个多场景、三种类别的黑烟车辆数据集,数据来源于网上公开视频及道路现场实拍,包含多类车型及不同程度的黑烟,利用Python中数据增强模块对图片进行处理,最终共得到1 814张不同分辨率、不同场景的图像,数据集示例见图 7(a)—(d)。
接着利用Labelimg图像标注工具,采用Pascal VOC格式对图像进行矩形框标注,进而转换成YOLO格式。根据冒黑烟车多为大型货车的特点,将图像标注为smoky、truck、car这3个类别,分别代表黑烟、大型车辆、小型车辆,便于在查找到黑烟车的同时能够识别对应车辆,且每张图片中至少含有1个标签。最后使用Python将图像按照9 ∶ 1的比例进行分配,随机选取1 632张作为训练集,182张作为测试集,并在训练前进行相关性分析和在线数据增强,避免出现数据泄露的同时增强模型的泛化性,保证训练结果真实可靠。
3.3 评价指标根据YOLOv5s算法特点,并结合黑烟自身特性,实验结果采用评估模型复杂度的总参数(Parameters)、图片推理速度(Inference)、模型每秒钟可以处理的图像数量(FPS)、精确度(P)、召回率(R)和平均检测精度(mAP)等作为评价指标,其中设定mAP的IoU检测阈值为0.5,即该评价指标为mAP@0.5。其中,P,R,mAP计算公式见式(11)—(13)。
$ P=\frac{X_{T P}}{X_{T P}+X_{F P}} \times 100 \% $ | (11) |
$ \begin{array}{r} R=\frac{X_{T P}}{X_{T P}+X_{F N}} \times 100 \% \end{array} $ | (12) |
$\mathrm{mAP}=\frac{\sum\limits_{i=1}{ }^c A P_i}{c} \times 100 \% $ | (13) |
式中:XTP——网络模型正确检测到的目标数;XFP——网络模型未正确检测到的目标数;XFN——网络模型未检测到的目标数;c——类别的数量;AP——单个目标类别的平均精度,其计算公式见式(14)。
$ \mathrm{AP}=\int_0^1 P(R) d r $ | (14) |
为证明本研究所选注意力机制及损失函数的合理性,分别对常用的注意力和损失函数进行实验。将BL、ECA、SIM、CA这4种注意力机制分别进行实验,与原模型进行对比,实验结果见表 1。由表 1可见,嵌入上述4种注意力机制的提升效果由大到小依次为SIM、CA、BL、ECA。虽然SIM注意力机制表现最佳,但在后续模型的改进中,其表现并没有CA注意力机制好,因此本研究选择了效果排名第二的CA注意力机制。
将SIoU、GIoU、EIoU等损失函数分别进行实验,与原模型CIoU损失函数进行对比,实验结果见表 2。由表 2可见,GIoU在上述4种损失函数中效果提升最为明显,且在后续的组合模型改进中,表现依然良好,因此本研究选择替换损失函数为GIoU。
为了评估增加检测层、引入CA注意力、改进损失函数3个模块各自对YOLOv5s产生的影响,本研究对其进行消融实验,在自制数据集上测试了上文中所述的6个评价指标。
增加小目标检测层的实验结果见表 3。由表 3可见,原始模型的复杂度几乎没有变化,检测帧数虽然有所下降,但精度也有所提升。YOLOv5s的P值增加了1.0%,R值下降了2.0%,mAP增加了1.9%,对小型车辆类别的平均识别精度提升最高,增加了5.4%。
引入CA注意力机制的实验结果见表 4。由表 4可见,引入CA注意力机制后的模型对图像的特征提取更加全面,其中黑烟类别的平均识别精度增加最为明显。同时原始模型参数几乎没有变动,推理速度仅增加了0.800 ms,检测帧数仅下降5.883帧,模型的推理速度和检测效率下降非常微小。而在自制数据集上嵌入CA注意力机制后的YOLOv5s模型的P值增加了3.7%,R值下降了0.9%,mAP增加了1.6%,对黑烟的平均识别精度提升最高,增加了3.9%。
替换损失函数的实验结果见表 5。由表 5可见,替换损失函数为GIoU后原始模型参数没有变化,推理速度降低0.500 ms,推理帧数变动微小。在自制数据集上替换损失函数后的YOLOv5s的P值下降了0.4%,R值提升了1.5%,mAP增加了1.4%,对拖拉黑烟类别的平均识别精度提升最高,增加了3.6%。
改进前后的YOLOv5s训练过程对比见图 8(a)—(c)。由图 8可见,改进后的YOLOv5s训练效果更好,在100个训练周期之后,性能明显优于原始模型。
改进前后的YOLOv5s性能比较见表 6。由表 6可见,改进后的YOLOv5s在数据集上的mAP为89.6%,相较于原始模型提升了3.1%,整体识别结果得到了提高。虽然大型车辆类别的黑烟类别检测精度(AP)稍有下降,但其中目标较小的黑烟类别和小型车辆类别的AP提升较为显著,分别为5.5%和4.9%。
为了更清楚地显示检测性能的提高,选取了部分训练输出图片[图 9(a)—(d)]。
由图 9可见,改进后的YOLOv5s模型能很好地应对目标小、多尺度变化和背景复杂等因素带来的挑战,具有更好的检测性能。
4 结论(1) 为解决在黑烟车辆检测领域公开数据集匮乏的问题,通过采集数据,筛选获得1 814张具有不同大小和分辨率的图片,使模型具有较强的泛化能力。并将数据按照9 ∶ 1的比例划分为训练集和测试集,解决数据集受限的问题。
(2) 在黑烟车辆检测领域中,黑烟属于很小的目标,难以被检测到。YOLOv5s模型改进后采用了4个预测尺度的预测层,充分利用底层特征的高分辨率和深层特征的高语义信息。同时,引入CA注意力,有效增强模型对多通道输入数据的建模能力,提升特征提取性能。改进损失函数为GIoU,提高边界框的定位精度,提高算法的平均检测精度。实验证明,改进的模型能够有效地检测远距离小目标,改善漏报和虚警等问题。与原始模型相比,mAP提高了3.1%,黑烟类别的AP提高了4.9%。
(3) 基于深度学习的黑烟车辆检测研究,对我国实现碳达标、碳中和目标具有重要意义。但本研究还存在数据集较小、黑烟特征提取不全面等问题,因此在接下来的工作中,将从扩展黑烟数据集、丰富黑烟特征的多样性以及在其他复杂条件下的黑烟图像车辆检测方法等方面展开进一步研究。
[1] |
中华人民共和国生态环境部. 中国移动源环境管理年报(2023年)[J]. 环境保护, 2024, 52(2): 48-62. |
[2] |
KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[J]. ACM通讯, 2017, 60(6): 84-90. |
[3] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segm-entation[C]//2014 IEEE conference on computer vision and pattern recognition(CVPR). Portland, USA Piscataway, NJ, 2014: 580-587.
|
[4] |
GIRSHICK R. Fast r-cnn[C]//2015 IEEE conference on computer vision and pattern recognition(CVPR). Boston, Massachusetts, 2015: 1440-1448.
|
[5] |
REN S, HE K, GIRSHICK R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. Advances in Neural Information Processing Systems, 2017, 39(6): 1137-1139. |
[6] |
LIANG Z, SHAO J, ZHANG D, et al. Small object detection using deep feature pyramid networks[C]//19th Pacific-Rim Conference on Multimedia, Hefei, China, 2018: 554-564.
|
[7] |
REDON J, FARHADI A. YOLO 9000: better, faster, stron-ger[C]//2017 IEEE conference on computer vision and pattern recognition, 2017: 7263-7271.
|
[8] |
ZHU P, WEN L, DU D, et al. Detection and tracking meet drones challenge[J]. IEEE Transactions on Pattern Ana-lysis and Machine Intelligence, 2021, 44(11): 7380-7399. |
[9] |
WANG C Y, BOCHKOVSKIY A, LIAO H M. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[C]//2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR), Vancouver, BC, Canada, 2023: 7464-7475.
|
[10] |
LIU W, ANGUELOV D, ERHAN D, et al. Ssd: Single shot multibox detector[C]//Computer Vision-ECCV 2016: 14th European Conference. Amsterdam, 2016: 21-37.
|
[11] |
吴丙芳, 叶兵, 汪仕铭. 一种双流卷积神经网络的黑烟车检测算法[J]. 合肥工业大学学报(自然科学版), 2022, 45(2): 198-202. |
[12] |
时佳琦. 真实场景下黑烟车烟雾检测算法的研究[D]. 沈阳: 沈阳工业大学, 2022.
|
[13] |
PENG X, FAN X, WU Q, et al. Cascaded vehicle matching and short-term spatial-temporal network for smoky vehicle detection[J]. Applied Sciences, 2023, 13(8): 4841. |
[14] |
KUNDU S, MAULIK U, SHESHANARAYANA R, et al. Vehicle smoke synthesis and attention-based deep approach for vehicle smoke detection[J]. IEEE Transactions on Industry Applications, 2023, 59(2): 2581-2589. |
[15] |
TAO H, DUAN Q. Learningdiscriminative feature representation for estimating smoke density of smoky vehicle rear[J]. IEEE Transactions on Intelligent Transportation Systems, 2022, 23(12): 23136-23147. |
[16] |
WANG X D, KANG Y, CAO Y. SDV-Net: A two-stage convolutional neural network for smoky diesel vehicle detection[C]//2019 Chinese Control Conference(CCC). Guangzhou, China, 2019: 8611-8616.
|
[17] |
YOLOv5[EB/OL]. (2020-06-26)[2024-04-01]. https://github.com/ultralytics/YOLOv5.
|
[18] |
HOU Q, ZHOU D, FENG J. Coordinate attention for efficient mobile network design[C]//2021 IEEE/CVF Conference on Computer Visionad Pattern Recognition(CVPR). Montreal, Canada, 2021: 13713-13722.
|
[19] |
REZATOFIGHI H, TSOI N, GWAK J, et, al. Generalizedintersection over union: A metric and a loss for bounding box regres -sion[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR). Long Beach, 2019: 658-666.
|