重庆大学学报  2021, Vol. 44 Issue (12): 95-102  DOI: 10.11835/j.issn.1000-582X.2020.027 RIS(文献管理工具)
0

引用本文 

黄开启, 刘小荣, 钱艳群, 黄茂云. 雾霾天气车辆检测的改进YOLOv3算法[J]. 重庆大学学报, 2021, 44(12): 95-102. DOI: 10.11835/j.issn.1000-582X.2020.027.
HUANG Kaiqi, LIU Xiaorong, QIAN Yanqun, HUANG Maoyun. Improved YOLOv3 algorithm for vehicle detection in hazy weather[J]. Journal of Chongqing University, 2021, 44(12): 95-102. DOI: 10.11835/j.issn.1000-582X.2020.027.

基金项目

国家自然科学基金资助项目(61164009)

通信作者

黄开启(1969-), 男, 江西理工大学教授, 研究领域为新能源汽车控制技术与机器人控制技术等, (E-mail)kaiqi.huang@163.com

作者简介

刘小荣(1992-), 女, 江西理工大学硕士研究生, 研究方向为深度学习与模式识别, (E-mail)1808973401@qq.com

文章历史

收稿日期: 2020-07-31
雾霾天气车辆检测的改进YOLOv3算法
黄开启 , 刘小荣 , 钱艳群 , 黄茂云     
江西理工大学 电气工程与自动化学院, 江西 赣州 341000
摘要: 针对传统YOLOv3算法中存在检测框定位不精确的问题,提出了一种改进的YOLOv3算法用来重新估计检测框位置,提高智能汽车在雾霾交通环境下的定位精度。首先运用图像去雾算法对采集到的图片进行预处理,然后构造定位置信度替代分类置信度作为参考项来选择估计检测框位置,并改进非极大值抑制(NMS)算法,引入软化非极大值抑制(soft-NMS),最后使用加权平均的方式来更新坐标位置,以达到提高定位精度的目的。实验结果表明,先经过单尺度retinex去雾算法处理图片,再通过改进的YOLOv3算法进行车辆检测,与使用原始的YOLOv3算法进行检测相比平均精度均值mAP(mean average precision)提高了0.44%,在满足检测实时性的同时,能够检测到更多的目标,对检测车辆的定位也更加精确。
关键词: 检测框    去雾算法    车辆检测    改进YOLOv3    定位置信度    
Improved YOLOv3 algorithm for vehicle detection in hazy weather
HUANG Kaiqi , LIU Xiaorong , QIAN Yanqun , HUANG Maoyun     
School of Electrical Engineering and Automation, Jiangxi University of Science and Technology, Ganzhou 341000, Jiangxi, P. R. China
Abstract: Traditional YOLOv3 algorithm has the problem of inaccurate detection frame positioning. In this paper, an improved YOLOv3 algorithm was proposed to re-estimate the detection frame position and improve the positioning accuracy of smart cars in hazy traffic environment. Firstly, the collected images were preprocessed using image dehazing algorithms. Then, to improve positioning accuracy, estimated test box position was selected by constructing positioning confidence as the reference to replace classification confidence, and the non-maximum suppression (NMS) algorithm was improved. Finally, the soft-NMS was introduced, and the coordinates were updated using the weighted average. The experimental results show that compared with the original YOLOv3 algorithm, the mAP(mean average precision) of improved YOLOv3 algorithm increased by 0.44%, which could detect more targets and locate the detected vehicles more accurately in real-time detection.
Keywords: detection frame    dehazing algorithm    vehicle detection    improved YOLOv3    positioning confidence    

高级驾驶辅助系统(ADAS)旨在帮助驾驶员完全避免事故,进而大幅减少道路交通事故。车辆检测是ADAS的重要组成部分,在检测中准确知道并精准定位目标车辆, 这对避免交通事故的发生起着极其重要的作用。

传统车辆检测算法采用滑动窗口的策略对整幅图像进行遍历,判断车辆可能出现的位置,接着人工选取某个特征,对目标进行识别。例如刘家旭等[1]提出基于方向梯度直方图(HOG)特征的车辆检测算法,周行等[2]提出基于HOG特征和局部二值模式(LBP)特征融合检测算法。传统算法主要存在两个问题:一是基于滑动窗口的区域选择没有针对性,冗余窗口太多;二是由于目标的形态、光照、背景等多样性,手工设计的特征对于多样性的变化鲁棒性较差。随着深度学习的快速发展,卷积神经网络在计算机视觉领域取得了巨大成功,目前基于卷积神经网络的目标检测算法主要分为两类:一类是以YOLO[3]、SSD[4]、RefineDet[5]等为代表的分类回归方法,另一类是以R-CNN[6]、Fast R-CNN[7]、Faster R-CNN[8]等为代表的基于候选框的两阶段方法。其中YOLOv3[9]作为性能较为出色的目标检测算法被广泛应用到车辆检测任务中。冯加明等[10]提出通过删减部分残差以降低卷积层通道数并通过k-均值聚类与手动调节相结合的方式提高检测的精度;杜金航等[11]、崔文靓等[12]和胡贵桂[13]利用k-均值重新聚类选取锚点预测边界框,提高检测速度与定位精度;吴仁彪等[14]提出利用卷积神经网络的去雾算法对采集的图片进行预处理。汪昱东等[15]通过在检测网络中加入物浓度判断模块来提高网络的适应性和鲁棒性。

以上方法主要存在以下两个问题:一是这些方法大多都是通过k-均值重新聚类锚框的方式侧向提高定位准确性,而分类置信度与定位精度并不是强关联,所以它不能够保证检测框的可靠性; 二是目标检测的场景均为晴朗的白天,少有针对雾霾天气进行检测的研究。针对问题一,以YOLOv3为基础网络,加入正态分布模型,将标准差作为定位置信度用来定位,并改进非极大值抑制,引进软化非极大值抑制降低漏检率从而提高定位精度。针对问题二,雾霾天气存在图像退化严重,对比度低,细节信息有损失等问题,严重影响室外视觉检测,笔者添加图像去雾预处理操作,采用单尺度retinex去雾算法对原图进行图像增强[16],以提高图像对比度。

1 图像去雾处理 1.1 去雾算法

由于雾与霾有着本质的不同,霾的物理模型更加复杂,基于大气散射模型的图像复原方法不适用于雾霾环境下的去雾处理。针对此问题本研究中通过图像增强的方式共选取了单尺度retinex去雾算法、多尺度retinex去雾算法以及McCann retinex算法3种算法对图像进行去雾处理并对去雾效果进行对比。

1.2 去雾效果对比

首先采用单尺度retinex算法(single scale retinex, SSR)、多尺度retinex算法(multi scale retinex, MSR)和迭代retinex算法(McCann retinex)分别对图像进行增强处理,增强效果如下图 1所示,可以看出SSR算法表现更好,所以本文中采用SSR算法对图像进行去雾处理。

图 1 图像增强效果对比图 Fig. 1 Contrast of image enhancement effect
2 YOLOv3及其改进方式 2.1 YOLOv3框架

YOLOv3采用了全新的网络架构Darknet-53(图 2), 它包含了大量的3×3以及1×1卷积层,通过引用残差模块[17]解决随着网络层数加深模型在训练过程中产生梯度爆炸以及梯度消失的问题。YOLOv3使用了上采样操作,并将大特征图和小特征图上采样后的特征图进行拼接,使网络能够拥有既包含丰富的高层抽象特征又包含精确的位置信息特征的融合特征层。YOLOv3借鉴了FPN(金字塔网络)[18]的思想,在3种不同的规模上进行预测,检测结果分别会有3个不同尺度的输出,它包含了目标的坐标位置,目标是正样本还是负样本,目标属于那个类别的置信度,对于每个尺度的分支而言,在每个网格中会预测出3个结果(因为每个尺度下会有3个锚框)。最后将3个尺度的结果合并进行非极大值抑制(NMS)后输出最终的检测结果。

图 2 YOLOv3网络结构图 Fig. 2 YOLOv3 network structure diagram
2.2 网络输出模型改进

原始算法中目标检测框的输出是以分类置信度为依据的,将拥有高的分类分数的候选包围框作为结果输出,实际上分类置信度与定位精度并不是绝对地成正比关系,选用分类置信度为依据并不能保证检测框的正确可靠。原始算法中目标框只有位置信息而没有概率值,检测框的输出无法以定位置信度作为依据。本研究中提出通过正态分布来对网络输出进行建模,将通过正态分布产生的标准差作为定位置信度。

引入正态分布后增加了网络的输出维度,坐标预测输出由原来的txtytwth(txty表示边界框中心偏移量,twth表示宽高缩放比)共4个维度变为$ {\hat \mu _{{t_x}}}、{\hat \sigma _{{t_x}}}、{\hat \mu _{{t_y}}}、{\hat \sigma _{{t_y}}}、{\hat \mu _{{t_w}}}、{\hat \sigma _{{t_w}}}、{\hat \mu _{{t_h}}} $$ {\hat \sigma _{{t_h}}} $共8个维度,其中μ代表均值,σ代表标准差。对这8个维度参数做以下变换:

$ \sigma_{t_{x}}=\sigma\left(\hat{\sigma}_{t_{x}}\right), \sigma_{t_{y}}=\sigma\left(\hat{\sigma}_{t_{y}}\right), \sigma_{t_{w}}=\sigma\left(\hat{\sigma}_{t_{w}}\right), \sigma_{t_{h}}=\sigma\left(\hat{\sigma}_{t_{h}}\right)。$ (1)
$ {\mu _{{t_x}}} = \sigma \left( {{{\hat \mu }_{{t_x}}}} \right), {\mu _{{t_y}}} = \sigma \left( {{{\hat \mu }_{{t_y}}}} \right), {\mu _{{t_w}}} = {{\hat \sigma }_{{t_w}}}, {\mu _{{t_h}}} = {{\hat \sigma }_{{t_h}}} 。$ (2)
$ \sigma(x)=\frac{1}{1+\exp (-x)} 。$ (3)

与原YOLOv3算法一样,这里需要对μtxμty进行sigmoid操作,将值限定在(0, 1)范围内。如果不做约束,预测的边界框容易向任意方向偏移,会导致每个位置预测的边界框可能落在图片的任意位置,这就会导致模型训练不稳定,很难得到正确的偏移量;μtwμth的处理与YOLOv3相同,不需要通过sigmoid操作,因为长宽的尺度变化可能为1。此外,新增的标准差σtxσtyσtwσth也需要通过sigmoid将值限定在(0, 1)范围内。标准差表明了坐标的可靠程度,0表示可靠,1表示不可靠,这是因为正态分布中,方差越大,分布的变化越大,包围框的估计结果越不可靠。

原始的YOLOv3进行边界框回归时,由于网络预测输出就是坐标本身,计算梯度时就利用了均方误差的方式。本研究中改进的YOLOv3输出的是均值和方差,所以使用了负对数似然损失函数。改进的边界框损失函数L为:

$ L = - \log \left( {\prod\nolimits_{i = 1}^m {\frac{1}{{\sigma \sqrt {2\pi } }}\exp \left( { - \frac{{{{\left( {{x_i} - {\mu _i}} \right)}^2}}}{{2{\sigma ^2}}}} \right)} } \right) = m\log \sigma + \frac{m}{2}\log (2\pi ) + \frac{1}{{2{\sigma ^2}}}\sum\nolimits_{i = 1}^m {{{\left( {{x_i} - {\mu _i}} \right)}^2}} , $ (4)

式中m为网格数量。

2.3 NMS改进

原算法中选择检测框时使用NMS保留得分最高的包围框并将与当前预测框重叠较多的预测框视作冗余,即将所有IOU(intersection-over-union, 交并比)大于阈值的框全部删除。但是对稠密物体进行检测时,如果同类的两个目标距离较近,检测时有可能出现误以为是同一个物体而造成漏检的问题。所以针对这个问题对原始的NMS进行了改善。不是将IOU大于阈值的框删除,而是将IOU大于阈值的框通过高斯加权,降低其置信度。改进后的函数如下:

$ s_{i}=s_{i} \exp \left(-\frac{\mathrm{IOU}\left(M, b_{i}\right)^{2}}{\sigma}\right), \forall b_{i} \notin D 。$ (5)

式中:si为第i个检测框的高斯权重函数;M为当前得分最高框,bi为待处理框,biM的IOU越大,最后得到的分类分数就越低;D为放最终检测框的集合。

预测框的输出要以定位置信度为依据,对所有与M的IOU大于一定重叠度阈值的候选包围框使用加权平均操作更新坐标位置,从而达到提高定位精度的目的。公式如下:

$ x = \frac{{\frac{{\sum {{p_i}{x_i}} }}{{\sigma _{x, i}^2}}}}{{\frac{{\sum {{p_i}} }}{{\sigma _{x, i}^2}}}} 。$ (6)

改进后的YOLOv3检测数据如表 1所示。

表 1 单类别目标IOU检测结果对比 Table 1 Comparison of IOU detection results of single category of targets

改进后的YOLOv3检测效果如图 3所示。

图 3 图像检测效果对比图 Fig. 3 Comparison of image detection effects

表 1可以看到改进的YOLOv3与原算法相比IOU提高了0.03,表明改进后的算法在定位精度上有所提升。由图 3可以看到改进的算法与YOLOv2算法相比可以检测出更多目标车辆,与原YOLOv3算法相比,检测框包围目标更加精确。由图 3对比可以看到第一辆白色轿车的检测框,很明显改进的YOLOv3算法在定位上更加精确。原始的YOLOv3算法中多目标聚集在一起的时候会出现了误检的情况,如上图中的左边第2辆轿车,原YOLOv3算法中出现了2个检测框,显示此处有2辆车,很明显这是误检,而通过改进的YOLOv3算法准确识别出了它是一辆车。经过多次连续检测,改进前后的算法在检测速度上基本没有改变,检测一张图片的时间基本都在0.19 s左右,这表明了改进后的YOLOv3算法没有影响检测的速度。

3 实验

实验测试在darknet框架下进行,训练及测试的计算机硬件配置为Intel(R) Core(TM)i5-8625U CPU@1.60GHz,GPU为NVIDIA GeForce MX250,操作系统为Ubuntu18.04;mAP的计算采用voc2007的方式,阈值设置为0.5。

3.1 实验数据集

本实验中用于目标图像检测的标准化数据集是从RESIDE数据集中抽取的有雾图片与清晰图片共计300张作为训练集,图片主要针对交通道路上容易出现的人、小型汽车、摩托车、自行车以及大型公共汽车5大类进行训练。整个训练过程使用批量随机梯度下降法来优化损失函数,训练大约迭代了55 000次,实验动量系数设为0.9,初始学习率设为0.01,权重衰减值设为0.000 5,批量大小设为32。由图 4可以看出迭代至40 000次之后,损失函数明显下降,40 000次之后下降逐渐变得缓慢,最后损失函数稳定在0.5左右。

图 4 损失函数图 Fig. 4 Loss function diagram
3.2 检测结果与分析

为了验证本文算法的有效性,首先将改进的YOLOv3结合NMS算法与原YOLOv3算法进行对比,然后再分别将不同去雾处理算法结合本研究中改进的目标检测算法与原YOLOv3算法进行对比,实验结果如表 2所示。由表 2可以得出以下结论:在不改变分类精度的前提下通过引入定位置信度以后,目标的定位精度提高了0.1%;经过本文算法-SSR检测得到的平均精度相对于原YOLOv3模型提升了0.44%,说明本文设计的检测算法较原YOLOv3算法检测效果更好。

表 2 不同方法在数据集上的检测结果 Table 2 Detection results of different methods on the data set

为了测试实际雾天检测效果,设计了针对3种去雾算法的实际效果对比实验,实验得到的检测效果如图 5所示。从图中可以看出,本研究中设计的改进算法与原算法相比,在雾霾天气情况下可以检测到更多目标,目标定位也更加精确。

图 5 雾霾天气图像检测效果对比图 Fig. 5 Comparison of haze-weather image detection effects
4 结语

为了提高雾霾天气车辆定位的准确性,通过改进YOLOv3的定位方法,使用标准差替代分类分数作为定位置信度,并通过单尺度retinex算法对图像进行预处理。实验结果表明,通过以上方法得到的检测结果对不同场景环境均可保证较高的检测准确率。但是本文中提出的算法仍然存在一些问题,如针对严重遮挡的目标的检测存在定位不精确,以及对经过去雾处理后的图片仍存在一些目标没有识别的情况,这将是后期工作需要改进的重点方向。

参考文献
[1]
刘家旭. 基于HOG特征提取的车辆检测方法研究[D]. 北京: 华北电力大学, 2017.
Liu J X. Research on vehicle detection method based on HOG feature extraction[D]. Beijing: North China Electric Power University, 2017. (in Chinese)
[2]
周行, 陈淑荣. 一种基于多特征融合级联分类器的车辆检测算法[J]. 现代计算机(专业版), 2018(17): 38-43.
Zhou X, Chen S R. A vehicle detection algorithm based on multi-feature fusion and cascade classifier[J]. Modern Computer, 2018(17): 38-43. (in Chinese)
[3]
Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. IEEE, 2016: 779-788.
[4]
Liu W, Anguelov D, Erhan D, et al. SSD: single shot multibox detector[M]//Computer vision-ECCV 2016. Cham: Springer International Publishing, 2016: 21-37.
[5]
Zhang S F, Wen L Y, Bian X, et al. Single-shot refinement neural network for object detection[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. IEEE, 2018: 4203-4212.
[6]
Girshick R, Donahue J, Darrell T, et al. Region-based convolutional networks for accurate object detection and segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 38(1): 142-158. DOI:10.1109/TPAMI.2015.2437384
[7]
Girshick R. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision (ICCV), December 7-13, 2015, Santiago, Chile. IEEE, 2015: 1440-1448.
[8]
Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031
[9]
Redmon J, Farhadi A. YOLOv3: an incremental improvement[EB/OL]. [2020-07-15]. https://arxiv.org/abs/1804.02767.
[10]
冯加明, 储茂祥, 杨永辉, 等. 改进YOLOv3算法的车辆信息检测[J/OL]. 重庆大学学报: 1-12[2020-07-10]. http://kns.cnki.net/kcms/detail/50.1044.N.20200619.1503.004.html.
Feng J M, Chu M X, Yang Y H, et al. Vehicle information detection based on improved YOLOv3 algorithm[J]. Journal of Chongqing University: 1-12[2020-07-10]. http://kns.cnki.net/kcms/detail/50.1044.N.20200619.1503.004.html. (in Chinese)
[11]
杜金航, 何宁. 基于改进的YOLOv3道路车辆实时检测[J]. 计算机工程与应用, 2020, 56(11): 26-32.
Du J H, He N. Real-time road vehicles detection based on improved YOLOv3[J]. Computer Engineering and Applications, 2020, 56(11): 26-32. (in Chinese) DOI:10.3778/j.issn.1002-8331.1911-0195
[12]
崔文靓, 王玉静, 康守强, 等. 基于改进YOLOv3算法的公路车道线检测方法[J/OL]. 自动化学报: 1-9[2020-07-29]. https://doi.org/10.16383/j.aas.c190178.
Cui W J, Wang Y J, Kang S Q, et al. Road lane line detection method based on improved YOLOv3 algorithm[J/OL]. Acta Automatica Sinica: 1-9[2020-07-29]. https://doi.org/10.16383/j.aas.c190178. (in Chinese)
[13]
胡贵桂. 改进的YOLOv3算法在道路环境目标检测中的应用[J]. 汽车实用技术, 2020(5): 117-121.
Hu G G. The application of improved YOLOv3 algorithm in road environment target detection[J]. Automobile Applied Technology, 2020(5): 117-121. (in Chinese)
[14]
吴仁彪, 冯晓赛, 屈景怡, 等. 雾霾环境下基于PLATE-YOLO的车牌检测方法[J]. 信号处理, 2020, 36(5): 666-676.
Wu R B, Feng X S, Qu J Y, et al. License plate detection method based on PLATE-YOLO in smog environment[J]. Journal of Signal Processing, 2020, 36(5): 666-676. (in Chinese)
[15]
汪昱东, 郭继昌, 王天保. 一种改进的雾天图像行人和车辆检测算法[J]. 西安电子科技大学学报, 2020, 47(4): 70-77.
Wang Y D, Guo J C, Wang T B. Algorithm for foggy-image pedestrian and vehicle detection[J]. Journal of Xidian University, 2020, 47(4): 70-77. (in Chinese)
[16]
段世杰, 黄华, 王鹏飞, 等. 一种单帧图像的快速去雾方法[J]. 软件, 2015, 36(5): 1-6, 15.
Duan S J, Huang H, Wang P F, et al. A fast defogging method for single image[J]. Computer Engineering & Software, 2015, 36(5): 1-6, 15. (in Chinese)
[17]
He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. IEEE, 2016: 770-778.
[18]
Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. IEEE, 2017: 936-944.
图 1 图像增强效果对比图 Fig. 1 Contrast of image enhancement effect
图 2 YOLOv3网络结构图 Fig. 2 YOLOv3 network structure diagram
表 1 单类别目标IOU检测结果对比 Table 1 Comparison of IOU detection results of single category of targets
图 3 图像检测效果对比图 Fig. 3 Comparison of image detection effects
图 4 损失函数图 Fig. 4 Loss function diagram
表 2 不同方法在数据集上的检测结果 Table 2 Detection results of different methods on the data set
图 5 雾霾天气图像检测效果对比图 Fig. 5 Comparison of haze-weather image detection effects
雾霾天气车辆检测的改进YOLOv3算法
黄开启 , 刘小荣 , 钱艳群 , 黄茂云