APP下载

基于改进YOLOv3的高速公路通行车辆分类方法研究

2023-03-22杨雨霖王润民周文帅

物联网技术 2023年3期
关键词:卷积高速公路分类

李 妍,杨雨霖,朱 宇,王润民,周文帅

(1.长安大学 信息工程学院,陕西 西安 710000;2.长安大学 电子与控制工程学院,陕西 西安 710000;3. 河南中天高新智能科技股份有限公司,河南 郑州 450000)

0 引 言

随着汽车工业、人工智能、深度学习的迅速发展,智能交通系统的发展步伐也随之加快。车辆的识别和分类是智能交通系统中的核心部分,其任务是确定目标车的分类属性[1-2]。起初车辆的分类大部分是利用硬件设备加人工筛查的方法进行的,硬件设备包括地磁传感器、激光雷达以及无线通信设备,先利用这些设备进行车辆的检测,随后工作人员对筛查硬件设备检测到的车辆信息进行人为判断、分类以实现车辆的分类,这种分类方法设备成本较高,且人工进行图片、视频筛查会耗费大量人力、时间,还容易发生误判、误分类,准确率较低,不具有普适性。随着图像处理、机器学习[3]在交通方面的广泛应用,这种方法逐渐被淘汰。Saripan等人[4]提出了一种基于决策树的车辆分类方法,该方法中用树的结构、树的各个节点分别代表不同车辆外形上不同特征点的属性,不同类别的车辆分别在树的不同分支上体现,但是这种方法分类准确性较低。Purohit等人[5]结合SVM和HOG两种经典的机器学习算法进行车辆分类。实验结果表明,该方法在车辆分类的准确率上相较于利用决策树的方法有明显的提高。该方法利用方向梯度直方图对不同车辆的外观进行特征提取,根据提取后的特征利用支持向量机完成对车辆的分类,这种方法在复杂场景下效果并不是很好,抗噪声能力较差,结果具有较大偏差。Shravani等人[6]基于贝叶斯理论构建动态贝叶斯网络进行车辆分类,在实验过程中发现只有在大规模的数据集上进行实验才会使结果更好,这种方法取得了较好的效果,但是分类器培训时间过长。近年来,随着深度学习技术的发展,基于深度学习的方法在车辆分类问题上具有显著优势。现已对全国的ETC门架进行了改造,并且进行了全国联网。同时,门架上的高速公路视频监控系统的逐渐升级,基于图片和视频的车辆检测[7]、分类[8]的技术迅速发展。一种鲁棒性好、检测速度快、车型分类准确率高、适用于高速公路场景的车辆分类方法在高速公路稽查系统中能够发挥重要作用。

基于深度学习的目标检测方法可以分为以下几类:(1)基于常规图像分类的网络,例如AlexNet[9]、VGG[10]、GoogleNet[11]以及ResNet[12]等;(2)基于区域识别问题的目标块检测与分类的网络,例如R-CNN[13]、Fast R-CNN[14]等;(3)基于回归问题的目标检测及分类,例如YOLO[15]系列、SSD[16]系列。采用R-CNN、Fast R-CNN进行车辆分类任务时,由于它们是两步(Two-Stage)的分类网络,即先检测后分类,网络结构较为复杂导致需要机器进行大量计算,耗费时间较多,不能满足在ETC门架下进行实时检测的要求;对于SSD网络来说,由于SSD是基于VGG 16作为主干网络的,虽然解决了实时性的问题,但是融合各部分卷积特征时,并没有考虑各个卷积层之间的关系,所以SSD网络的检测精确率不高,存在误检、漏检的问题;在YOLO的各个版本之中,YOLOv3[17]是一个相当经典的网络,它在进行检测和分类时准确度和检测速度在同类网络中属于佼佼者,但也存在着目标漏检、误检、重复检测的现象。

本文针对上述问题,对YOLOv3的网络进行改进,提出一种基于改进YOLOv3的高速公路稽查系统车辆分类的方法,解决了YOLOv3在车辆检测和分类时存在的问题。改进的算法可以在高速公路场景下实时、有效、准确地完成对车辆的分类。

1 车辆分类

随着我国公路运输的高速发展,高速公路的内外环境发生了变化,针对高速公路上车辆的车型多样化问题、高速公路运输情况变化问题、出现多种新型收费技术问题,国家对现行的车型分类标准进行了修订。为满足高速公路收费的新发展要求,国务院办公厅印发了《深化收费公路制度改革取消高速公路省界收费站实施方案》[17],提出了调整货车通行费计费方式、统一按车(轴)型收费、修订《收费公路车辆通行费车型分类》[18]标准等任务要求。《收费公路车辆通行费车型分类》(JT/T 489-2019)是2019年9月1日实施的一项中华人民共和国交通运输行业标准,归口于全国交通工程设施(公路)标准化技术委员会。表1为各类车辆的分类标准。

表1 收费公路车辆通行费客车车型分类

做好高速公路车辆类型分类,是推进高速公路取消省界收费站、实现不停车快捷收费的有效途径,将进一步提高综合交通运输网络运行效率、降低物流成本。在高速公路的实际场景下,采用ETC门架上的摄像头对车辆信息进行采集有局限性,只能采集车头和车尾的图片信息,对车辆侧身的信息采集不到。本文设计了一种改进的YOLOv3方法,利用在ETC门架上提取到的有限的车辆图片信息实现对车辆类别的大体划分。

2 YOLOv3网络

YOLOv3首先将高速公路门架上拍摄的图像尺寸缩放为416×416,接着将这些图像送入YOLOv3中Darknet-53主干网络进行车辆外观特征的提取。在Darknet-53主干网络中,每一个卷积块都会基于输入车辆图片提取到的特征信息生成不同尺寸的特征图。得到的特征图会在图像上划分s×s个网格,若某个被检测车辆的中心落在划分的网格中,则该网格就负责对当前车辆进行预测,最终再通过Softmax分类器对车辆进行分类,并输出结果。图1为YOLOv3的预测流程。

图1 YOLOv3预测流程

2.1 改进YOLOv3模型结构

图2是改进YOLOv3网络模型结构,主要由卷积块、残差块和残差组件构成。

图2 改进YOLOv3网络模型结构

2.1.1 主干特征提取网络

Darknet-53网络中一共有2+(1×2)+1+(2×2)+1+(8×2)+1+(8×2)+1+(4×2)+1=53个 卷 积 层。 与YOLOv2[19]不同的是,YOLOv2的主干特征提取网络是Darknet-19,而YOLOv3的主干特征提取网络是Darknet-53。Darknet-53网络的Top-1(第一个标签预测的正确率)的值达到了77.2,相较于Darknet-19网络Top-1的值为74.1,有较为明显的提升。同时YOLOv3的主干提取网络中没有最大池化层Maxpool,取而代之的是残差结构Residual;在Darknet-53网络中所有的下采样基本上都是通过卷积来实现的,所以提升了检测效果。其结构如图2中的Darknet-53主干网络所示。Darknet53结构相较于Resnet较为简单,共进行了53次卷积操作和5次下采样操作。

由图2中的卷积块示意图可以看出,网络中卷积块由卷积、批量归一化BN(Batch Normalization)和Leaky ReLU激活函数三部分构成。在本文中,为了提高车辆分类的精度对激活函数进行了改进,由原来的Leaky ReLU激活函数换成了Mish激活函数。如图2所示,残差块和残差组件构成了残差结构,在残差结构中主分支为一个1×1的卷积层,再通过一个3×3的卷积层,最后将输入进残差结构“捷径”分支上的输出和主分支上的输出相加得到最终的输出。

2.1.2 预测特征层的输出

在YOLOv3中第一个预测特征层是从Darknet53中去平均池化层和全连接层之后的一个结构,此时输出的预测图大小是13×13,接着会通过一个Convolutional Set,如图2所示,在Convolutional Set中有5个卷积层堆叠在一起。通过Convolutional Set的一条分支再通过一个3×3的卷积就得到了第一张预测特征图(大小为13×13),最后使用一个距离和大小为1×1的预测器在预测图上进行预测,这就是预测特征层一;另外一个分支通过一个1×1的卷积,再通过一个上采样层,通过上采样之后图的高和宽会扩大为原来的两倍(由13×13变成了26×26),扩大之后它会与Darknet53当中通过8个残差结构输出为26×26大小的图进行深度方向的拼接,将拼接之后得到的特征矩阵再经过Convolutional Set进行处理,同样一个分支通往预测特征层二;另外一个分支继续通过一个1×1的卷积再进行上采样(由26×26变为52×52),接着再和Darknet53当中通过8个残差结构输出为52×52大小的图进行深度方向的拼接,将拼接之后得到的特征矩阵再经过Convolutional Set进行处理,同样一个分支通往预测特征层三。预测特征图一为13×13,所以在预测特征层一上预测相对较大的目标。预测特征图二的大小为26×26,所以在这个特征图上预测尺度中等的目标。最后一个预测特征层的细腻度最高,它的大小是52×52,所以在预测特征图三上预测小目标。

2.1.3 激活函数的改进

深度学习能够取得如今的成绩不仅因为其包含了优秀的卷积结构,还得益于激活函数的发展。因此一个性能优良的激活函数在网络中尤其重要。传统的激活函数ReLU在深度学习中经常被使用,ReLU可以对先进的深度网络进行完全监督的训练。当ReLU函数的输入为正时,梯度能够正常流动;输入为负时,稀疏度增加。稀疏激活只激活网络中的部分神经元,ReLU的稀疏激活只激活正值,不激活网络中的负值神经元,阻止了负值的传播,会导致网络无法从负值中学习参数。如图3(a)所示,激活函数ReLU对于小于0的值,神经元的梯度永远都会是0,会导致神经元失活,权重不再更新,阻碍网络学习。在实际操作中,若learning rate很大,很可能网络中有较多的神经元失活,即使是较小的learning rate,这种情况也很有可能发生。为了解决ReLU函数这个缺点,在负半轴引入一个泄露(Leaky)值,使得其不完全屏蔽掉负值,如图3(b)所示,所以称为Leaky ReLU函数。Leaky ReLU的数学表达式为:

其中Leak是一个很小的常数,这样保留了一些函数在负半轴的值,使得负半轴的信息不会全部丢失。

在YOLOv3中原本使用的激活函数为Leaky ReLU。在本文中,为了再次提高车辆分类的精度对激活函数进行了改进,由原来的Leaky ReLU激活函数换成了YOLOv4中的Mish激活函数。Mish是光滑的非单调激活函数,可定义为:

2019年,Misra通过搜索技术构造了Mish函数[20]。Mish函数图像没有上界,无饱和值,因此网络中的正参数可以达到任意大。与Leaky类似的是,Mish也保留了部分负半轴的值,保证对网络中负参数的轻微允许,使得网络获得更好的梯度。实验证明,平滑的激活函数可以使网络更有效地学习数据的分布,得到更高的准确性和泛化性[19]。因此Mish激活函数相较于Leaky ReLU激活函数更适合神经网络。Mish函数具有软饱和的特点,该特点可以保证网络在训练过程中不会由于零梯度的产生而使训练急剧减慢的现象发生。软饱和的特点还具有较强的正则化效果,从而减少过拟合情况的发生。如图3(c)所示,像Leaky ReLU一样,理论上对负值也有一些取值,这样能有更好的梯度流,而不是像ReLU中那样零边界。

图3 激活函数图像

2.2 目标边界框的预测

在YOLOv3中目标边界框预测采用的是和YOLOv2一样的机制,在YOLOv3网络中所预测的有关目标中心点的回归参数并不是相对于Anchor的,而是相对于当前的Gride Cell (网格)的左上角的点。当一个1×1的卷积层滑动到目标中心点所在的Cell当中,它会针对每一个Anchor模板预测四个回归参数(tx,ty,tw,th)、一个目标参数和对应每一个类别的Score(分数)。如图4所示,图中虚线所构成的矩形框就是Anchor,图中黑色粗实线所构成的矩形框是网络最终预测目标的位置以及大小。

图4 目标边界框预测

最终预测目标的位置由以下公式计算得出:

其中:pw和ph分别为Anchor的宽度和高度;cx和cy分别为当前的Gride Cell距离左上角的偏移量;Sigmoid(x)是一个常见的激活函数。得到的bx和by为最终预测目标中心点的(x,y)坐标,bw和bh分别为最终预测网络的宽度和高度。

3 实验及结果分析

3.1 数据集创建

本实验利用京港澳高速公路路段上收集的来自ETC门架上的图片信息进行数据集的创建,同时根据《收费公路车辆通行费车型分类》文件对数据集上的车辆图片进行车辆类别的划分:9座以及9座以下轿车为type I,9座以上车辆、货车及专项作业车为type II。为了得到可靠的训练模型,数据集通过ETC门架上的摄像头收集到了车辆图片56 553张,去除雨雪天气和分辨率低的图片,可供训练的车辆训练集图片共有2 300张,其中验证集占数据集的9%。数据集中包括各种主要的场景(如黑夜、白天)、车辆品牌(奥迪、奔驰、大众、比亚迪、宝马、尼桑等)、车型条件(普通客车、大面包车、旅游大巴、大型卡车、大型拉土车、专项作业车等)、车身的远近视角、车身的平视视角和俯视视角等。图5所示为数据集中部分车辆图片。

图5 数据集中部分车辆图片

本实验利用Labelimg软件,对数据集中车辆图片内车辆的实际位置进行了人为标注(如图6所示),类别有普通私家车、越野车、小型面包车、大型客车、大型货车等,标注后的文件转换为“.txt”文本文档的格式保存在训练集中,以供训练使用。

图6 Labelimg软件标注

3.2 实验环境

本实验环境基于Windows,用Python编写,使用Tensor flow1.14深度学习框架,硬件CPU处理器为Intel(R)Core(TM) i7-7700K CPU @4.20 GHz,GPU 为 NVIDIA GTX1080ti。

3.3 模型训练

在训练神经网络模型之前,需要对训练中的各个参数进行设定,超参数的值会对训练的结果产生很大的影响。模型训练参数设置见表2所列。开始神经网络训练时,开启学习率余弦下降、GPU加速和标签平滑的操作,使得训练之后得到的模型是最优模型。在模型训练结束后,对测试集中的207张图片进行测试,并计算真实值。最后对其各项指标进行计算。

表2 模型训练参数设置

3.4 实验结果

在对车辆分类训练后所得到的模型进行评估时,衡量模型的指标一般采用精确率P(Precision)和召回率R(Recall)。精确率是模型预测的所有目标中预测正确的比例。召回率是所有真实目标中模型预测正确的目标比例。公式如下:

式中:TP(True Positives)表示正样本被正确识别为正样本的数量;FP(False Positives)表示负样本被错误识别为正样本的数量;FN(False Negatives)表示正样本被错误识别为负样本的数量。

由图7中的精确率-召回率曲线可知,曲线位置越靠近右上方,算法的精确度就越高;且在算法改进后不同类型车辆的精确率均高于原始算法。

图7 改进前后各类型车辆的精确率-召回率曲线

F1的值由公式(11)计算可得,其中P为精确率,R为召回率。该分值越高表明该算法越优秀。表3为改进前后YOLOv3检测模型的各类指标统计。

表3 评价指标统计

本文采用 mAP(mean Average Precision) 指标对训练结果进行评估,其中AP是以P和R为两个轴作图所围成的面积,m表示取平均值,即各类AP的均值。如图8所示为算法改进前后的mAP。

图8 改进前后的mAP值

图8(a)表示改进前的实验训练结果的mAP,图8(b)表示采用本文所述方法优化后的实验训练结果的mAP。可知各类车辆都有较好的精度,整体验证集的mAP值由89.65%提高到了90.92%,能够满足实际应用需要。

4 结 语

本文基于目标检测及分类中的YOLOv3模型,求出适合本文车辆数据集的Anchor Boxes 坐标;并采用Mish激活函数代替YOLOv3中原来的激活函数Leaky ReLU。在自行收集并标注好的数据集上进行模型的训练与测试。实验结果表明,改良后的YOLOv3模型的性能得到了提升,车辆检测准确性较高,能够满足高速公路通行车辆分类的需要。

猜你喜欢

卷积高速公路分类
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
从滤波器理解卷积
分类讨论求坐标
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法
高速公路与PPP
一种基于卷积神经网络的性别识别方法
GPS在高速公路中的应用