改进的Yolo_v2违章车辆检测方法

2020-10-19 04:40张成标童宝宏张炳力
计算机工程与应用 2020年20期
关键词:车牌违章网络结构

张成标,童宝宏,程 进,张炳力,张 润

1.安徽工业大学 机械工程学院,安徽 马鞍山 243002

2.合肥工业大学 汽车与交通工程学院,合肥 230009

1 引言

智能交通系统(Intelligent Traffic System,ITS)是未来检测城市交通违章的有效手段,智能交通系统将先进的信息技术、数据通信技术、传感器技术、电子控制技术以及计算机技术有效地综合运用于整个交通管理体系[1-2]。车辆检测利用传感器技术与计算机技术是智能交通系统数据前端采集的一个重要环节。智能交通系统中的车辆检测需要结合摄像头、激光雷达、毫米波雷达等设备,而强大的视觉识别系统可以一定程度上替代昂贵的激光雷达与毫米波雷达的作用,降低检测系统的成本[3-5]。目前基于视觉的车辆检测主要是利用卷积神经网络对图像中车辆与车牌进行识别,并将检测的车牌图片提取出来传输到Yolo_v2-tiny 卷积神经网络进行识别[6-7]。

近年来随着计算机视觉在车辆检测的兴起,基于卷积神经网络的车辆检测也成为主流方法。目前主流的卷积神经网络主要有R-CNN、Fast R-CNN、Faster R-CNN、Yolo 等[7-8]。传统的计算机视觉方法常用精心设计的手工特征(如SIFT、HOG)描述图像,而深度学习的方法则倡导习得特征[8-13]。从图像分类任务的经验来看,CNN网络自动习得的特征取得的效果已经超出了手工设计的特征,发挥卷积网络学习高质量特征的能力。R-CNN的想法直接明了,即将检测任务转化为区域上的分类任务,是深度学习方法在检测任务上的试水[14]。之后Fast R-CNN 用RPN 网络完成了检测任务的“深度化”,使用滑动窗口生成anchor box使得Faster R-CNN可以在单个GPU 上的速度提升到5 f/s[15]。由于对实时性的要求越来越高,Yolo 也应运而生,Yolo 的诞生标志着单阶段方法的开始。它将检测任务表述成一个统一的、端到端的回归问题,只处理一次图片同时得到位置和分类,大大提高了检测实时性[16-18]。

目前传统的违章检测基于多传感器融合或人工识别筛选图像,增加了成本与人工的投入。本文将改进的Yolo_v2卷积神经网络模型与车牌识别系统集成进ROS(Robot Operating System)系统,并与QT-Creator 可视化界面进行交互,做到实时对道路上违章车辆进行检测。

2 Yolo_v2卷积神经网络的改进

2.1 原Yolo_v2卷积神经网络

Yolo_v2是基于回归的目标检测方法,Yolo_v2借鉴了Yolo_v1以及SSD的网络结构。由于Yolo_v2将候选框提取、特征提取、目标分类、目标定位统一于同一个卷积神经网络中,Yolo_v2 不仅训练过程中能够实现端到端的优化,而且检测过程耗时少,能够满足实时处理需求。Yolo_v2 相较于Yolo_v3 网络结构简单,并且在NVIDIA Jetson TX2开发板上的实时性好,检测速率可以达到30 f/s。

Yolo_v2 网络包含了19 个卷积层和5 个最大池化层。为了压缩特征的同时增加网络深度,在3×3的卷积核之间加入1×1的卷积核,每次池化操作后将通道数翻倍。在每一层网络前先对输入的图像数据进行批量归一化操作,可以有效提高准确率(mAP)以及显著改善收敛性,防止过拟合。

2.2 改进Yolo_v2的网络结构

Yolo_v2 相对于Yolo 有效地提高了准确率(mAP)以及检测速率(FPS),但检测经常会出现漏检、误检的情况。针对此问题,在Yolo_v2 的基础上增加残差网络结构来提升对小目标车辆的检测精度,同时增加一个不同尺度的Yolo层对图像中的目标进行多尺度预测[19-22]。因为增加了残差结构与多尺度预测,Yolo_v2 网络结构变得厚重,对采集的路况视频检测速率只有16 f/s,因此在不降低准确率的情况下,将原19 层卷积层缩减为14层,并每隔3层添加残差网络层,精简后的Yolo_v2结构如表1所示。

表1 改进Yolo_v2的网络结构

2.3 添加残差网络与多尺度层

本文中搭建的卷积神经网络是基于Yolo_v2的网络结构。为了使卷积神经网络加快收敛保留了Yolo_v2的池化层,极大地缩减了参数数量,并添加Yolo_v3的残差网络结构来提高检测精度。为了降低卷积过程的计算量,将两个3×3的卷积层替换为两个1×1卷积层与一个3×3的卷积层,如图1所示。图1左图中是两个3×3×256的卷积,参数数目为:3×3×256×256×2=1 179 648,右图是第一个卷积层将256 通道降到了64 通道,最后通过1×1卷积层进行恢复,整体的参数数目为:1×1×256×64+3×3×64×64+1×1×64×256=69 632。新的残差结构的参数数量比原残差结构的参数数量减少了16.94 倍,这使得训练速度得到加快[23-25]。添加改进后的残差网络,在随着训练时网络深度的加深,训练错误大大小于普通网络训练时出现的错误,错误减少的同时准确率也相对应提高了。

图1 改进残差结构对比图

卷积神经网络中较深层特征有很大的感受野以及丰富的语义信息。深层特征对于物体姿态、遮挡和局部变形等变化具有鲁棒性,但由于分辨率的降低导致几何细节信息丢失。相反浅层特征有很小的感受野和丰富的几何细节信息,但分辨率较高,语义信息匮乏。在卷积神经网络中,物体的语义信息可以在不同层出现。对于小物体而言,浅层特征包含一些细节信息,随着层数加深,所提取特征的几何细节信息可能完全消失,所以通过深层特征检测小物体就变得很困难,而对于大物体而言,它语义信息将出现在较深层特征中。如图2 所示,在一张图像中有完整的车辆、被遮挡的车辆以及小目标车辆,为了使图像中的车辆都能被标记,在Yolo_v2的基础上添加一个Yolo层来进行多尺度预测,从而提取更全面的信息,既有全局的整体信息又有局部的详细信息,同时对小目标车辆也有很高的检测准确率,如图3所示[22,26-28]。

图2 被遮挡车辆示意图

图3 多尺度层结构图

2.4 设计激活函数

激活函数是深度神经网络结构的核心所在,目前常见的激活函数主要有sigmoid 系的sigmoid、tanh 函数,Relu系的Relu、Lrelu函数等。但sigmoid系的函数在后向传递过程中会出现了梯度消失问题,极大地降低训练速度[29-31]。

Relu函数能够有效缓解梯度消失问题,显著提升了深度神经网络的性能。Elu激活函数是为解决Relu激活函数存在的问题而提出,Elu既涵盖了Relu的优点,又避免了Dead relu(未被激活神经元)问题且输出的均值接近0[32-34]。

基于Elu 激活函数设计激活函数Kelu(函数图如图4 所示),Kelu 激活函数包含了Elu 激活函数的优点,Kelu 激活函数的处处可微保证了在优化中梯度的可计算性,Kelu 激活函数不仅满足处处可微,且在梯度变化的平滑性也优于Elu 激活函数(如图5 所示),这使得所有输入的数据都会得到优化。并且Kelu 激活函数在x> 0 的正半轴随着x的增大f′(x)无限接近于1,不存在梯度爆炸现象,在x<0 的负半轴保留了一些负轴的值,使得负轴信息不会全部丢失,正负信息的值与激活函数相应横坐标下纵坐标的值根据函数公式进行运算,使Kelu激活函数的输出均值是接近于零的。Kelu激活函数公式如公式(1)所示:

图4 Kelu激活函数图

图5 Elu激活函数图

Kelu激活函数的导数公式如公式(2)所示:

由Elu 激活函数求导公式可得在x=0 点处1 ≠α,左右导数不同,从而导致Elu激活函数在x=0 不平滑,也导致在x=0 处附近部分参数的不可计算,从而丢失少部分数据。

Elu激活函数公式如公式(3)所示:

对f(x)求导如公式(4)所示:

由于改进后的Kelu 激活函数在x>0 正半轴为指数运算,计算机对指数运算的时间要明显大于非指数运算。所以Kelu激活函数在卷积神经网络检测中实时性要低于其他激活函数,但是应用于交通违章检测并不需要过高的实时性,达到每秒3帧的传输速率就可以精确地监测违章。

在保证检测速率的情况下,Kelu激活函数在检测精度的表现都优于Elu、Leaky-relu等激活函数。

3 数据集制作

3.1 多方位车辆数据集制作

本文检测违章车辆是需要对道路上的不同形态的车辆进行分类检测,如图6所示。车辆的形态分为侧前方(Side Front)、侧后方(Side Behind)、正前方(Front)、正后方(Behind)、正侧方(Side)五种类型。为了增加卷积神经网络的泛化性,制作数据集的图像来源于KITTI数据集、剪辑后的视频图像的车辆图片,利用Labelimg软件对图片进行标注归类制作成数据集[35-37]。同时为了降低误检率,提高其背景区分能力,应保证有适量的负样本集,负样本集是照片中不存在目标车辆的背景图片,所以在数据集中通过添加负样本图像来制作负样本集。为了增强网络模型的泛化能力,防止训练的网络过拟合(Over-fitting),将图像样本作为训练数据输入到网络前,通过随机旋转、平移图像以及改变图像的饱和度、曝光和色调的方式,对训练集中的图像实现扩增,这样不仅能得到更多的样本,还能增强网络模型对新数据样本的判断能力[35-37]。

图6 车辆形态分类图

3.2 车牌数据集

在前节通过车辆形态识别出违章车辆的基础上,需要对违章车辆进行车牌提取。由于完整车牌数据集与被分割后的车牌数据集是分开进行训练,得到的是不同的权重文件,所以车牌数据集主要分为两类,分别是车牌完整数据集与车牌字符分割后的单个字符数据集[35-37]。完整的车牌图像(如图7所示)是车辆图像经过卷积神经网络检测后被提取发送给车牌识别系统。完整车牌进行字符分割后将七个单个字符图片(如图8所示)依次传输到Yolo_v2-tiny卷积神经网络进行识别。

图7 完整车牌数据集

4 实验结果分析与应用

4.1 实验环境搭建

本文实验环境如表2所示。

图8 单个字符数据集

表2 实验环境

4.2 激活函数比较

选择平均准确率(mAP)、召回率(recall)、神经网络每秒检测帧数(FPS)以及反映网络收敛的Loss 曲线作为卷积神经网络模型优劣的评价指标。

首先选取原Yolo_v2 网络作为基本框架,分别选取Leaky、Relu、Elu 激活函数对自制车辆多方位数据集进行训练,利用训练的权重在测试集进行批量检测,通过得到的评价指标来选取适合的激活函数;其次对Yolo_v2卷积神经网络进行改进,分别添加了残差网络结构与多尺度层,将选取的最优激活函数搭载到改进好的卷积神经网络中对网络进行训练,利用训练权重在测试集测试得到相关评价指标,如表3所示。

表3 不同激活函数训练后的评价指标

利用改进的Yolo_v2 卷积神经网络搭载Kelu 激活函数对训练集进行训练得到权重,利用所得的权重在测试集上进行测试得到相关评价指标;最后将三组测试后评价指标进行对比。

(1)训练数据集时生成的loss值可以反映模型收敛的稳定性,原Yolo_v2 网络结构三组激活函数下loss 值对比如图9。

图9 不同激活函数下的loss变化值

在原Yolo_v2网络为框架下,利用Leaky激活函数、Relu激活函数、Elu激活函数训练得到loss值。对比图9由收敛速度及收敛稳定性可以看出搭载Elu激活函数的卷积神经网络更加适用于多方位车辆的检测。

(2)训练改进的Yolo_v2 网络搭载Elu 激活函数与Kelu激活函数下评价指标对比如表4所示。

表4 改进后网络不同激活函数训练后评价指标

在改进的Yolo_v2 网络结构下,Kelu 激活函数和Elu 激活函数下的 loss 值如图10、11 所示。Kelu 激活函数的loss值在训练1 000次后就降到1以下,收敛速度高于Elu 激活函数;对比图10 与图11 可得,在收敛过程中Kelu激活函数下的loss值收敛平滑,出现噪点的数量远远低于Elu激活函数下的loss值的噪点数量。

图10 Kelu激活函数下loss变化值

图11 Elu激活函数下loss变化值

4.3 车辆违章识别实验

本文的基于改进Yolo_v2的车辆多方位识别方法可识别车辆的多种形态,在一定程度上替代了激光雷达与毫米波雷达的作用。本文将识别多方位车辆方法应用在检测交通违章上。

改进后的神经网络算法封装于ROS 软件平台中,并与QT 可视化界面建立通信,方便显示检测信息。将检测系统硬件固定在高度一定的支架上,并将支架摆放在禁止车辆掉头(转向)的路口来检测车辆违章,如图12所示。

图12 虚拟检测示意图

由图13所示通过摄像头将路况视频通过ROS节点将视频每秒3帧以图片的形式发送给改进的Yolo_v2网络,检测之后利用ROS节点将车辆方位的类别信息、准确率及检测图片通过节点发布给QT 可视化界面。在ROS下的QT程序包中定义节点接受卷积神经网络发布的检测信息,若检测到车辆的正侧身(Side)与侧前身(Side Front),则判定车辆违章。如果违章,则判定违章的按钮变红(如图13(b)所示),并且在检测到车牌后将车牌图片提取出通过字符分割后通过卷积神经网络检测车牌,将检测到的车牌号显示在QT界面上,同时发布提取的车牌图片(如图13(b)所示)。

图13 违章系统显示平台

根据实车实验结果分析,改进的Yolo_v2 卷积神经网络及设计的Kelu激活函数对多方位车辆的检测准确率优于原Yolo_v2卷积神经网络。

5 结语

本文从车辆多方位识别的角度出发,对现有的Yolo_v2 卷积神经网络进行改进,分别在原Yolo_v2 网络的基础上增加了残差网络结构和多尺度层,并且在Elu 激活函数的基础上设计了Kelu 激活函数。实验结果表明在改进了网络结构和激活函数后,新的网络可以更加精确且高效地识别道路上的多方位车辆,并验证了本文所设计的方法可用于违规掉头车辆违章检测中。

在下一步研究中,将本文所研究的基于改进的Yolo_v2卷积神经网络车辆多方位识别方法应用于更多的道路违章监测和车联网应用。

猜你喜欢
车牌违章网络结构
由“咬文嚼字”说一说反违章
打 车
拷问 涂改号牌扣12分,重吗? 它可能是违章、违法的前提!
数字图像处理技术在车牌识别系统中的应用
第一张车牌
基于MATLAB 的车牌识别系统研究
基于广义混合图的弱节点对等覆盖网络结构
体系作战信息流转超网络结构优化
广州交警使用无人机抓拍违章车辆
基于互信息的贝叶斯网络结构学习