车辆及挡风玻璃检测算法研究

车辆及挡风玻璃检测算法研究

摘 要:随着社会的不断进步和经济的飞速发展,汽车的数量在当今社会也越来越多,交通运输建设行业在交通控制,安全管理效率等问题上面临巨大挑战。为了解决交通运输领域更高更全面的技术要求,智能交通系统成为目前世界交通运输领域的前沿研究课题,本文具体研究了挡风玻璃的识别技术,采用YOLOv4-tiny网络。针对车辆及前排挡风玻璃的形状和大小,设计了一个结合深度可分离卷积、检测头可重构的轻量化YOLOv4-tiny目标检测框架,通过设置不同数量检测头的两个网络分别用于车辆和挡风玻璃检测。在车辆数据集、挡风玻璃数据集上进行训练和测试,实验结果表明车辆检测网络在平均精度为99.69时速度为145帧/s,挡风玻璃检测网络在平均精度为 99.88%时速度163帧/s, 本文算法在兼顾速度的同时具有较高的检测精度。
关键词:智能交通;挡风玻璃识别;深度可分离卷积

Research on Vehicle and Windshield Detection Algorithms
WANG Zhong-jie
(Shenyang University of Technology,Electronic Information 202121052,Shenyang 110870)
Abstract:With the continuous progress of society and the rapid development of economy, the number of cars is also increasing in today’s society. The transportation construction industry is facing great challenges in traffic control, safety management and efficiency. In order to solve the higher and more comprehensive technical requirements in the field of transportation, intelligent transportation system has become a cutting-edge research topic in the field of transportation in the world. According to the shape and size of vehicle and front windshield, a lightweight yolov4 tiny target detection framework combined with depth separable convolution and reconfigurable detection head is designed. Two networks with different number of detection heads are set for vehicle and windshield detection respectively. The experimental results show that the speed of vehicle detection network is 145 frames/s when the average accuracy is 99.69, and the speed of windshield detection network is 163 frames/s when the average accuracy is 99.88%. The algorithm in this paper has high detection accuracy while taking into account the speed.
Key words:Intelligent traffic; Windshield recognition; Depth separable convolution

0 引言
随着计算机技术不断飞速发展,智能交通管理技术随着日趋成熟的数字图像处理技术,人工智能技术而产生了重大的变革。车辆和挡风玻璃识别技术是现代智能交通系统的重要组成部分,伴随着我国国民经济的高速发展国内高速公路、城市道路、停车场建设越来越多,对交通控制、安全管理的要求也日益提高机动车的挡风玻璃自动识别技术越来越受到关注从长远看,智能交通系统的推广变得越来越重要。
车辆检测的研究方法主要包括传统方法的检测[1,2,3,4]和深度学习的方法检测[1,4,5]。传统方法包括:(1)基于先验知识的检测方法。该方法需要提前了解目标的应用场景、几何特征、颜色、纹理等先验知识,从图像中检测车辆。(2)基于立体视觉的检测方法。该方法使用两个及以上的摄像机从不同的角度对同一物体成像,需要建立在频差或视差的基础上检测。(3)基于运动的检测方法。该方法通过空间特征来区分运动的车辆和背景,利用连续图像之间存在大量的相同信息进行车辆的检测。(4)基于差分的检测方法。该方法检测连续帧之间的变化,主要包括背景差分法和时间差分法。
基于深度学习的目标检测方法包括两阶段(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 )算法是Redmon等人提出的第一个基于回归的单阶段算法,之后Redmon等人又提出了基于YOLO算法的YOLOv2算法[12], 删除了完全连通层和最后一个汇集层,使用锚点框来预测边界框,并设计出DarkNet- 19的新基础网络。
YOLOv3[13] 是Redmon等人提出的YOLO方法的最后一个版本。它引入了特征金字塔网络、更好的基本网络darknet-53和二进制交叉熵损失,以提高检测精度和检测较小目标的能力。由于YOLOv3采用的信息融合类型没有充分利用低级信息,这是限制其在工业中潜在应用的一个弱点。因此,Alexey等人提出了YOLOv4算法,它使用CSPDarknet53主干、空间金字塔池模块、PANet 路径聚合颈和YOLOv3(基于锚点)头作为YOLOv4的架构。以上基于深度学习的目标检测算法在目标检测领域虽然取得一定效果,但其在智能交通领域针对小目标的检测仍然不够精准。
在车辆和挡风玻璃检测时,本文使用了YOLOv4-tiny网络并在不同的应用场景下对网络作出改进。实验证明,改进的网络在不降低精度的情况下有效降低了网络的参数,提高了网络的运行效率。
1车辆及挡风玻璃的检测
交通监控场景中车辆移动速度快,需要快速的检测出车辆,YOLO算法由于其端到端的特性,在目标检测领域得到广泛应用。本文车辆和挡风玻璃检测流程如图1所示。

图1 车辆及挡风玻璃检测流程
Fig.1 Vehicle and windshield inspection process
1.1车辆检测
YOLOv4-tiny结构是YOLOv4的精简版,属于轻量化模型,参数只有600万相当于原来的十分之一,这使得检测速度提升很大。整体网络结构共有38层,使用了三个残差单元,激活函数使用了LeakyReLU,该函数的输出为负无穷到正无穷,即leaky扩大了Relu函数的范围,目标的分类与回归改为使用两个特征层,合并有效特征层时使用了特征金字塔(FPN)网络。其同样使用了CSPnet结构,并对特征提取网络进行通道分割,将经过3x3卷积后输出的特征层通道划分为两部分,并取第二部分。
在实际的监控场景中,拍摄到的车辆尺寸大,因而可以忽略单阶段检测的不足之处。由于分辨率的原因,高空监控摄像头无法清晰的拍摄到远处的挡风玻璃,远处的车辆无法对其进行安全带检测。因此本文主要针对近距离的车辆进行检测,从而能够有效避免单阶段算法小目标检测能力弱的问题。
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) 代替,以减少检测时间。
在特征融合部分,Yolov4-tiny 方法使用特征金字塔网络提取不同尺度的特征地图,提高了目标检测速度,而不使用 Yolov4 方法中使用的空间金字塔池化和路径聚合网络。与此同时,Yolov4-tiny 使用了 13×13和 26×26 这两种不同尺度的特征地图来预测检测结果。假设输入图的大小为 416×416,特征分类为 80,Yolov4-tiny 网络结构如图2所示。

图2 YOLOv4-tiny结构
Fig.2 YOLOv4-tiny structure
普通卷积在卷积时先考虑区域再考虑通道,而深度可分离卷积时能够同时考虑通道和区域并有效减少参数量。深度可分离卷积[7]分为逐通道卷积和逐点卷积两步处理,其计算过程为:
(1)
其中G为输出特征图,K为卷积核,F为输入特征图,i,j代表特征图中的像素位置,k,l代表输出特征图的分辨率,m为通道数。
深度可分离卷积相对于标准普通卷积能够有效减少参数,如式(2)所示。
(2)
其中为输入特征图尺寸、为卷积核大小、M为输入特征图通道数量、N为输出特征图通道数量。一般情况下N取值比较大,式(2)中分母为普通卷积参数,分子为深度可分离卷积参数。由式(2)可知,当卷积核尺寸越大,深度可分离卷积的压缩参数量越多。使用3 x 3 卷积核进行卷积操作时,深度可分离卷积相较标准卷积可以降低大约9倍的计算量。图3所示为深度可分离卷积的示意图。
图3 深度可分离卷积
Fig.3 Depth separable convolution
本文使用结合深度可分离卷积的YOLOv4-tiny网络来检测车辆,网络结构如图4所示。

图4 车辆检测网络结构
Fig.4 Vehicle inspection network structure
交通监控场景中,车辆距离摄像头越远,乘员区域越小,图像越模糊,越不利于安全带检测。车辆距离摄像头越近,车辆尺寸越大,乘员区域越大,越容易进行安全带检测。为了后续更好的检测安全带,在图像中检测到车辆后,通过判断车的位置是否在图像的前半部分,若在,再进行挡风玻璃检测,反之则不检测。图5所示为车辆位置检测流程图。

图5 车辆位置检测流程图
Fig.5 Vehicle position detection flowchart
1.2挡风玻璃检测
车辆中的挡风玻璃具有目标大、特征明显、几何形状规则等特点。基于挡风玻璃区域的特点,保留了YOLOv4-tiny网络的两个检测头中分辨率低的检测头用于挡风玻璃的检测,并且在保留的检测头处使用了深度可分离卷积替换普通3×3卷积。图6所示为挡风玻璃检测网络结构。

图6 挡风玻璃检测网络结构
Fig.6 Windshield inspection network structure
2 实验结果与分析
2.1数据集
本文的实验数据来源于交通监控的图像,将这些图像进行标注制作车辆数据集、挡风玻璃数据集。其中,车辆数据集、挡风玻璃检测数据集是使用LabelImg开源标注软件对交通监控图像进行标注。整个过程包括放置数据集、处理数据集、放置预处理模型、确认运行的数据集合模型、以及训练和测试。表1所示为实验所用的数据集。
表1 数据集
Tab.1 data set
数据集类别 数据集大小
(幅) 训练
(幅) 验证
(幅) 测试
(幅)
车辆 300 290 20 10
玻璃 300 290 20 10
2.2网络迁移学习权值初始化
网络进行训练时,随机初始化参数可能导致网络训练不收敛或训练时间较长。迁移学习可以有效解决这一问题。
迁移学习将学习好的网络的浅层角点信息、纹理信息等浅层参数迁移到新的网络当中,新的网络就会拥有识别浅层通用特征的能力并能够更加快速的学习新数据集的高维特征。常用的迁移学习方式包括:(1)载入权重后训练所有的参数。(2)载入权重后只训练最后一个全连接层。(3)先将主干特征提取网络冻结一定阶段训练,再解冻训练网络的所有参数。为了得到一个最优的检测效果本文采取了第三种方式进行训练。首先在前面的50个阶段冻结主干特征提取网络的参数,仅训练其余层的参数。然后将主干特征提取网络进行解冻,训练所有网络的参数。由于主干特征提取网络通用,冻结训练可以加快训练速度,也可以在训练初期防止权值被破坏。
2.3实验环境与评价指标
实验中, 软件环境操作系统为 Ubuntu 20.04, 深度学习软件框架为 Pytorch; 硬件环境 CPU 为Intel® Core™ i5-8400 2.80 GHz×6, 内存 8 GB;GPU为 Nvidia® GTX® 1050TI。
通常使用mean Average Precision(mAP)作为目标检测的评价指标检测中衡量识别精度的指标。多个类别目标检测中,每个类别都可以根据recall(召回率)和percision(准确率)绘制一条曲线。AP就是该曲线下的面积,本文车辆检测和挡风玻璃检测都为单目标检测,因此将AP值作为mAP来评价模型的检测性能。
2.4数据模型训练
对于本次用labelme来标注的图像来说,每一张图片会对应一个json文件,这个json文件里面拥有这标注的类别坐标这些信息,所以,这里将所有图片放到一个文件夹,所有json文件放到一个文件夹,但是为了区分训练数据和val数据,将json进行了划分,一部分放到了train文件夹,一部分放到了val文件夹。
接下来开始正式的数据预处理。我们运行第一个Py文件后,要创建出三个文件夹:第一个文件夹用来装xml文件,这个xml文件里面有标签类别,图片的宽高,标签的左上角和右下角坐标这些信息,每一张照片对应一个xml文件,imagesets这个文件夹里面还有一个文件夹:/Main, 在这个Main文件夹下面会产生train.txt和val.txt,这些文件里面的信息只是图片的名字,不带.jpg这些后缀的名字,而在JPEGImages里面就是所有图片了。
我们假设这第一个py文件叫convertvoc.py,运行这个代码之后,就会生成annotations这些文件夹和数据,接下来,我们要写一个getdata.py,要达到的目的是:在主目录下生成两个文件夹train.txt和val.txt,这两个文件里面存储的是图片的绝对路径,这个Py文件运行后还会生成一个label文件夹,这个文件夹里面也会生成以图片名称命名的txt文件,这些文件保存的是图片中的标签类别,中心点的x,中心点的y,标签的宽,边框的高。
接下来配置yolov4,对cfg文件进行更改之后,创建两个文件face.data,face.names,classes 就是数据的类别总数,train就是上面getdata.py生成的train.txt文件的路径,这里是相对路径,val同理,names就是刚刚创建的face.names的路径,backup就是训练过程保存模型的路径。至于face.names,里面的内容就是本次训练的类别名字,之后开始训练,训练的时候会用一张动态图来显示训练的效果。
2.5车辆检测
在车辆数据集上使用主干特征提取网络为MobileNeXt[8]、MobileNetV2[9]、MobileNetV3[10]、CSPDarknet53-tiny[13]的YOLOv4-tiny[13]网络及YOLOv4[13]、YOLOv5S实验,结果如表2所示:
测试在检测效果精确率 P(Precision)、召回率 R(Recall。其公式可表示为:
P = TP/(TP+FP ) (3)
其中,FP(False Positive)是真实类别为负,预测类别为正;FN(False Negative)是样本真实类别为负,预测类别为负;TP(True Positive)是样本真实类别为正,预测类别为正;TN(True Negative)是真实类别为正,预测类别为负。
表2 车辆检测数据表
Tab.2 Vehicle Inspection Data Sheet
网络 精准度
(%) 速度 (帧/s) 参数(MB)
YOLOv4-tiny 99.71 131 22.41
v4-tiny-DW-1 55.54 163 14.90
v4-tiny-DW 99.70 145 15.43
MobileV2-v4-tiny 99.62 88 9.92
MobileV3-v4-tiny 99.64 90 11.68
MobileXt-v4-tiny 99.70 80 5.36
YOLOv4 99.84 16 243.90
YOLOv5S 99.50 59 7.5
其中, v4-tiny-DW-1为单个检测头及检测头使用深度可分离卷积的YOLOv4-tiny网络; v4-tiny-DW为两个检测头及使用深度可分离卷积的YOLOv4-tiny网络;MobileV2-v4-tiny、MobileV3-v4-tiny、MobileXt-v4-tiny分别为主干特征提取网络为MobileNetV2、MobileNetV3、MobileNeXt的YOLOv4-tiny网络。
表2数据表明,YOLOv4-tiny的主干特征提取网络层数较少,若通过MobileNetV2、MobileNetV3、MobileNeXt网络替换其主干特征提取网络,会带来参数的大幅减少。但其层数与YOLOv4-tiny相比较多,通过主干特征提取网络的替换会带来大量的运算量,导致网络的推理时间增加。由于图像中车辆尺寸大小不一,仅仅使用一个检测头检测会造成车辆大幅度漏检。本文使用v4-tiny-DW网络进行车辆检测,其检测示例如图7所示。

图7 车辆检测示例
Fig.7 Vehicle inspection example

2.6挡风玻璃检测
将快速检测的车辆作为挡风玻璃检测的数据集,使用主干特征提取网络为CSPDarknet53-tiny、MobileNetV2、MobileNetV3、MobileNeXt的YOLOv4-tiny网络实验,结果如表3所示。
表3 挡风玻璃检测数据表
Tab.3 Windshield inspection datasheet
网络 精准度
(%) FPS
(帧/S) 参数
(MB)
YOLOv4-tiny 99.88 132 22.41
v4-tiny-DW-1 99.88 163 14.90
MobileV2-v4-tiny 99.88 88 9.92
MobileV3-v4-tiny 99.88 90 11.68
MobileXt-v4-tiny 99.88 80 5.36
其中,v4-tiny-DW-1为单个检测头及使用深度可分离卷积的YOLOv4-tiny网络。
表3数据表明,v4-tiny-DW-1网络与YOLOv4-tiny原网络相比不仅没有降低网络的检测精度,而且还将网络的FPS从132增加到了163。本文使用v4-tiny-DW-1网络进行挡风玻璃检测,其检测示例如图8所示。

图8 挡风玻璃检测示例
Fig.8 Example of windshield inspection

3 总结
本文对基于改进的轻量化YOLOv4-tiny网络的机动车及挡风玻璃识别技术进行了研究,使得检测速度提升很大。能满足车辆及挡风玻璃识别的要求,具有很强的实用性和较高的检测精度。

参考文献 (References):
[1]Wu Tianshu, Zhang Zhijia, Liu Yunp-eng,et al.Driver seat belt detection ba-sed on YOLO detection and semantic
segmentation[J]. Journal of Computer-Aided Design & Computer Graphics,2019,31(01):126-131.
(吴天舒,张志佳,刘云鹏,等.结合YOLO检测和语义分割的驾驶员安全带检测[J].计算机辅助设计与图形学学报,2019,31(01):126-131.)
[2]Li Xiangpeng, Min Weidong, Han Qi-ng,et al.License plate location and rec-ognition method based on deep learni-ng[J].Journal of Computer-Aided Design & Computer Graphics, 2019, 31(06):979-987.
[3]Ling Yan,Chen Ying.Multi-scale conte-xt information enhanced salient target detection full convolution network[J].Journal of Computer-Aided Design & Computer Graphics,2019,31(11):2007-2016.
(凌艳,陈莹.多尺度上下文信息增强的显著目标检测全卷积网络[J].计算机辅助设计与图形学学报,2019,31(11):2007-2016.)
[4]Fu Chunfen. Research on seatbelt de-tection method based on deep learn-ing[D].Wuhan:Huazhong University of Science & Technology, 2015(in Chine-se)
[5]Xiong Changzhen,Zhi Hui.Weakly sup-ervised semantic segmentation algorith-m based on multi-model integration[J].Journal of Computer-Aided Design & Computer Graphics, 2019, 31 (05): 800-807.
[6]Dalal N,Triggs B.Histograms of orien-ted gradients for human detection[C]//ComputeVision and Pattern Recogniti-on, 2005. CVPR 2005. Los Alamitos:
IEEE Computer Society Conference o-n. IEEE, 2005: 1: 886-893.
[7]Howard A, Sandler M, Chu G, et al. Searching for mobilenetv3[C]//Proceed-ings of the IEEE/CVF International C-onference on Computer Vision. 2019: 1314-1324.
[8]Hu J, Shen L, Sun G. Squeeze-and-e-xcitation networks[C]//Proceedings of
the IEEE conference on computer vis-ion and pattern recognition. 2018: 7132-7141.
[9]Woo S, Park J, Lee J Y, et al. Cbam:Convolutional block attention modu-le[C]//Proceedings of the European co-nference on computer vision (ECCV).2018: 3-19.
[10]Bochkovskiy A, Wang C Y, Liao H Y M. Yolov4: Optimal speed and accuracy of object detection[J]. arXiv preprint arXiv:2004.10934, 2020.
[11]Ma N, Zhang X, Zheng H T, et al. Shufflenet v2: Practical guidelines for efficient cnn architecture design[C]//Pr-oceedings of the European conferenceon computer vision (ECCV). 2018: 116-131.
[12]Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2818-2826.
[13]Krizhevsky A, Sutskever I, Hinton G E.Imagenet classification with deep c-onvolutional neural networks[J]. Adva-nces in neural information processing systems, 2012, 25: 1097-1105.
[14]Simonyan K, Zisserman A. Very deepconvolutional networks for large-scale image recognition[J]. arXiv preprint a-rXiv:1409.1556, 2014.
[15]Zhao H, Shi J, Qi X, et al. Pyramid scene parsing network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2881-2890.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琦哥labview

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值