嵌入式
返回首页

一种改进的YOLOv4-tiny车辆目标检测方法

2024-07-18 来源:eepw

0   引言

伴随近几年人工智能的快速发展,以及深度学习技术的不断突破创新,智能交通系统已经成为社会的发展趋势。国家要实现交通系统的智能化和自动化运行,就要将大量的交通信息利用计算机视觉技术进行处理,例如车牌识别、车辆识别与流量统计、无人驾驶等[1]。目前,深度学习技术被广泛运用到目标检测领域。为了提高驾驶的便捷性和安全性,自动驾驶技术被广泛重视并推向了商业化,高级驾驶辅助系统(ADAS)得到了广泛的应用,ADAS 可以实现道路检测与车辆目标检测等多种功能。因此,高效准确的车辆目标检测技术对智慧交通系统的发展起到了至关重要的作用。目前,基于计算机视觉的目标检测算法分为传统的目标检测算法和基于深度学习的目标检测算法[2]。传统的目标检测算法是基于机器学习的分类器与人工提取的局部特征相结合的算法,主要包括提取特征和分类两个方面,提取的特征通常是梯度方向直方图或类harr 特征,结合支持向量机或AdaBoost 进行目标检测。使用传统的基于机器学习的方法提取特征需要人为设计特征,容易损失信息从而造成误差,不能满足高精度和高检测速度的场景。与传统的目标检测算法相比,基于深度学习的目标检测算法具有更高的准确率、更快的检测速度和更强的鲁棒性。因此,越来越多的深度学习方法被不断应用到目标检测领域[3-6]。基于深度学习的目标检测方法包括两阶段(Two stage)目标检测算法[7] 和单阶段(One stage)目标检测算法[8],两阶段算法是对图像生成可能包含目标的候选区域(region)用卷积神经网络(CNN)对候选区域进行分类,精度很高,但速度方面欠佳。两阶段目标检测算法包括R-CNN、Fast R-CN、Faster R-CNN、基于区域的全卷积网络(R-FCN) 等,虽然两阶段法比一阶段法具有更高的精度,但一阶段法比两阶段法具有更快的检测速度[9-10]。单阶段检测算法目标检测以整张图作为输入,在特征层输出边框位置和所属的类别,从而转变为一个回归问题。YOLO(The You Only Look Once)[11]算法是Redmon 等人提出的第一个基于回归的单阶段算法,之后Redmon 等人又提出了基于YOLO 算法的YOLOv2算法 [12],删除了完全连通层和最后一个汇集层,使用锚点框来预测边界框,并设计出DarkNet-19 的新基础网络。YOLOv3[13] 是Redmon 等人提出的YOLO 方法的最后一个版本。它引入了特征金字塔网络、更好的基本网络darknet-53 和二进制交叉熵损失,以提高检测精度和检测较小目标的能力。由于YOLOv3 采用的信息融合类型没有充分利用低级信息,这是限制其在工业中潜在应用的一个弱点。因此,Alexey 等人提出了YOLOv4 算法,它使用CSPDarknet53 主干、空间金字塔池模块、PANet 路径聚合颈和YOLOv3( 基于锚点) 头作为YOLOv4 的架构。以上基于深度学习的目标检测算法在目标检测领域虽然取得一定效果,但其在智能交通领域针对小目标的检测仍然不够精准。本文通过对道路车辆目标图像进行分析,结合最新的YOLOv4-tiny 算法并对其模型进行合理优化,实现了对道路图像车辆目标的快速准确检测。


1   YOLOv4-tiny方法改进

1.1 YOLOv4-tiny模型

Yolov4-tiny[14](You Only Look Once vision4-tiny) 算法是在Yolov4 算法的基础上设计的,使其具有更快的目标检测速度,使用1080Ti GPU, Yolov4-tiny 的目标检测速度可达到371 帧/s,精度可以满足实际应用的要求。Yolov4-tiny 算法使用CSP Darknet53-tiny 网络作为骨干网络来代替Yolov4 算法中使用的CSPDarknet53网络,空间金字塔池(SPP) 和路径聚合网络(PANet) 也由特征金字塔网络(FPN) 代替,以减少检测时间。此外,它还使用了两个尺度的预测(26×26 和13×13),而不是3 个尺度的预测。CSPDarknet53-tiny 网络在跨级部分网络中使用了CSPBlock 模块,在剩余网络中使用了ResBlock 模块。CSPBlock 模块将特征映射分成两部分,通过跨阶段残差边缘将两部分进行组合,这使得梯度流可以在两种不同的网络路径上传播,增加梯度信息的相关性差异。与ResBlock 模块相比,CSPBlock 模块不仅可以提高卷积网络的学习能力、计算精度,而且还可以减少计算量。消除了ResBlock 模块中计算量较大的计算瓶颈,提高了Yolov4-tiny 方法在常数情况下的精度,减少了计算量。为了进一步简化计算过程,Yolov4-tiny 方法在CSPDarknet53-tiny 网络中使用Leaky ReLU 函数作为激活函数,而不使用Yolov4 中使用的Mish 激活函数。在特征融合部分,Yolov4-tiny 方法使用特征金字塔网络提取不同尺度的特征地图,提高了目标检测速度,而不使用Yolov4 方法中使用的空间金字塔池化和路径聚合网络。与此同时,Yolov4-tiny 使用了13×13和26×26 这两种不同尺度的特征地图来预测检测结果。假设输入图的大小为416×416,特征分类为80,Yolov4-tiny 网络结构如图1 所示。Yolov4-tiny 方法的预测过程与Yolov4 方法相同。首先调整输入图像的大小,使所有输入图像具有相同的固定大小;其次将输入图像划分为大小为S×S 的网格,每个网格使用B 个边界框检测目标,因此输入图像会生成S×S×B 的边界框,生成的边界框覆盖了整个输入图像。如果某个对象的中心落在某个网格中,网格中的边界框将预测该对象,为了减少预测过程中边界框的冗余,提出了置信阈值。如果边界框的置信值高于置信阈值,则边界框保持不变;否则边框将被删除。包围盒的置信值可得如下:

image.png

其中image.png代表第i 个网格中第j 个边界框的置信度,pi, j是目标函数。如果目标在第i个网格的第j个方格中,则pi, j =1,否则pi, j =0。image.png表示预测框与真实框在并集上的交集。可比性得分越大,预测框就越接近地面真相框。Yolov4-tiny 的损耗函数与Yolov4 相同,都是由目标框损失Lcoord 、置信度损失Lcoin 和分类损失Lclass 三部分组成,公式如下所示:

loss=loss1+loss2+loss3

loss1 ,loss2 ,loss3分别代表置信度损失、分类损失、目标框回归损失。

置信度损失函数:

image.png

1634611358931695.png

图1 YOLOv4-tiny网络框架


这里S2 是输入图像的格子的个数, B 是格子里边框的个数,image.png是一个目标函数。如果jth 边框是ith 格子里检测的正确目标,image.png否则image.pngimage.png分别是预测框的置信度分数和真实框的置信度分数,λnoobj是一个权重参数。

分类损失函数:

image.png

这里的image.pngimage.png分别代表预测框和真实框目标属于c 类目标在jth 边框中是ith 格子里的概率。

位置回归损失:

image.png

其中IOU 是预测框和真实框之间的交集并集, wgt和hgt分别为真实框的宽度和高度,W和h分别为预测框的宽度和高度,ρ 2 (b,bgt )为预测框中心点与真实框中心点之间的欧氏距离,C是能包含预测边界盒和真值边界盒的最小对角线距离。

2.2 YOLOv4-tiny改进模型

对于卷积神经网络,不同深度的卷积层对应不同级别的特征信息。低级网络具有更高的分辨率和更详细的特征,而高级网络具有更低的分辨率和更多的语义特征。为了使更深层次的网络同时包含丰富的语义特征和图像表面特征,我们基于特征融合思想改进了YOLOv4-tiny的网络架构,在原有的框架基础上增加了52×52 比例的输出,使分割图像的像元变小,这有助于提高小尺寸物体检测的精度。改进的YOLOv4-tiny 网络架构如图2 所示。其中实线代表YOLOv4-tiny 网络架构,虚线代表我们改进后的网络。

1)增加52×52 的标度输出

①提取高层语义信息和浅层表面信息

我们提取了距离第二输出最近的CSPBlock 卷积层的输出信息,由于在网络中的深层位置,其包含了丰富的语义信息。此外,提取包含图像丰富表面信息的浅层CSPBlock 的输出。

②特征融合

将A 部分提取的两个输出送入1×1×128 的CBL,输出大小为26×26×128,之后是上采样层,将其大小改为52×52×128。然后将输出结果送入concat层进行融合,融合后的特征图大小为52×52×256。这些融合的特征图被处理成3×3×256 的CBL,用于进一步的信息提取。

③增加一个输出尺度将B 节中获得的融合特征图通过1×1×255 的Conv层,再增加一个52×52×255 的输出。在YOLOv4-tiny中, 网络具有13×13 和26×26 的输出。在改良的YOLOv4-tiny 中,我们增加了52×52 比例的输出,使分割图像的像元变小,这有助于提高小尺寸物体检测的精度。

1634612038108805.png

图2 改进的YOLOv4-tiny网络框架

2)损失函数优化

YOLOv4-tiny 优化后的损失函数由目标框损失Lcoord 、置信度损失Lcoin 和分类损失Lclass 组成:

image.png

式中: L(c,x, y,w,h)为优化后的 YOLOv4-tiny 损失函数; N 为匹配到目标区域的Default Box 的数量; α 为用于调整目标框损失Lcoord 的比例(α初=1 )。目标检测算法流程如图3 所示:

image.png

2   实验结果与分析

本次实验的环境为: 英特尔酷睿TM i7-8700 CPU@3.20 GHz;Window10 带有Pytorch1.6.0 和Python3.6;GPU是NVIDIA Geforce GTX 3090,计算机配置如表1 所示。

1634612228286081.png

本文使用的车辆目标数据集是利用摄像装置在道路上采集得到,并使用图片标志工具(label Img)对数据集进行标注。通过对图像中的车辆目标用矩形框标记,标记后的图片将以XML 文件存储,作为对应训练图片的标签。数据由训练集、测试集、验证集3 部分组成(如图表2 所示),共使用8 000 张图片进行训练,对已标记好的图像进行整理,以XML 文件作为对应图片训练的标签,存储了3 个属性:Label、Pixels、Usage。

image.png

2.1 实验结果展示

在这篇文章中,我们所用的数据集都是自己在道路中采集的,之后对数据集进行标签处理。该数据集包含6 500 张训练集和1 200 张验证集,最后从300 张测试集中随机抽取2 张图像分别用YOLOv4-tiny 和改进后的YOLOv4-tiny 模型进行测试,测试效果如图4 和图5 所示。从图4、图5 可以看出,通过对YOLOv4-tiny 与改进后的YOLOv4-tiny 模型进行检测效果对比,YOLOv4-tiny没有将图像中的小目标检测出来,改进后的YOLOv4-

image.png image.png

图4 YOLOv4-tiny模型检测结果

image.png image.png

图5 改进的YOLOv4-tiny模型检测结果

2.2 实验对比与评估

文章将提出的方法与YOLOv4、YOLOv4-tiny 进行比较,测试它们在检测效果精确率P(Precision)、召回率R(Recall)、AP 的性能。其公式可表示为:

image.png

其中,FP(False Positive)是真实类别为负,预测类别为正;FN(False Negative)是样本真实类别为负,预测类别为负;TP(True Positive)是样本真实类别为正,预测类别为正;TN(True Negative)是真实类别为正,预测类别为负。

1634612480625540.png

3   结束语

为了提高对小目标的检测效果,文章提出了一种改进的YOLOv4-tiny,将YOLOv4-tiny 提取的高级卷积特征和低级卷积特征进行融合,增加52×52 尺度的输出,并使用K-means 聚类方法在数据集上生成检测框架的锚框。通过将数据集在改进前后的网络上训练,并进行对比测试。实验结果表明,改进后的YOLOv4-tiny 与YOLOv4 相比,各项指标表都比较低;改进后的YOLOv4-tiny 与YOLOv4-tiny 相比,准确率(Precision)提高了8.4%,召回率(Recall)提高了4.6%,AP 值提高了4.4%。与YOLOv4-tiny 相比,改进后的YOLOv4-tiny可以较好地检测出图像中存在的小目标。

参考文献:

[1] 徐子睿,刘猛,谈雅婷.基于YOLOv4的车辆检测与流量统计研究[J].现代信息科技,2020,4(15):98-100+103.

[2] 王永平,张红民,彭闯,等.基于YOLO v3的高压开关设备异常发热点目标检测方法[J].红外技术,2020,42(10):983-987.

[3] REDMON J,FARHADI A.YOLOv3:An Incremental Improvement[Z].arXive -prints,2018.

[4] REDMON J,FARHADI A.YOLOv3:An incremental improvement[Z].arXiv preprint,2018.

[5] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large scale image recognition[Z].arXiv preprint,2014.

[6] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:Unified,real-time object detection[C].In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016:779-788.

[7] ZHANG Y,SONG C,ZHANG D.Deep Learning-Based Object Detection Improvement for Tomato Disease[J].IEEE Access,2020(8):56607-56614.

[8] ALGABRI M,MATHKOUR H,BENCHERIF M A,et al.Towards Deep Object Detection Techniques for Phoneme Recognition[J].IEEE Access,2020(8):54663-54680.

[9] ZHOU L,MIN W, ,LIN D, ,et al. .Detecting Motion Blurred Vehicle Logo in IoV Using Filter-Deblur GAN and VL-YOLO[J]. .IEEE Transactions on Vehicular Technology, 2020, ,69(4)::3604-3614. .

[10] ZHANG H,QIN L,LI J,et al.Real-Time Detection Method for Small Traffic Signs Based on Yolov3[J].IEEE Access,2020(8):64145-64156

[11] REDMON J,DIVVALA S,GIRSHICK R,et al.You Only Look Once:Unified,Real-Time Object Detection[C].In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Las Vegas,NV,USA,2016:779-788.

[12] REDMON J,FARHADI A.YOLO9000:Better,Faster, Stronger[J].IEEE Trans.Pattern Anal.2017,29:6517–6525.

[13] REDMON J,FARHADI A.YOLOv3:An Incremental Improvement[J].IEEE Trans.Pattern Anal.2018,15:1125–1131.

[14] HOU X,MA J,ZANG S.Airborne infrared aircraft t a r g e t d e t e c t i o n a l g o r i t h m b a s e d o n Y O L O v 4 -tiny[J].2021 International Conference on Advances i n Opticsand Computational Sciences (ICAOCS) 2021,Ottawa,Canada,IOP Publishing Ltd.


进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章