APP下载

基于深度学习的道路交通标志多目标实时检测

2020-04-07,*,

关键词:交通标志卷积特征

,*,

(1.桂林电子科技大学电子工程与自动化学院,广西桂林541004;2.广西高校非线性电路与光通信重点实验室(广西师范大学),广西桂林541004)

交通标志检测是智能交通系统的重要组成部分之一,在减少安全事故、辅助驾驶员驾驶中有着重要的作用[1-4]。由于汽车行驶过程中对交通标志检测的实时性要求较高,加上光照、天气、拍摄角度的影响,使得交通标志的实时检测难度较大。此外,由于图像中交通标志的数目较多,且目标较小,其像素值中包含的特征很少,加大了交通标志检测的难度。

在现实环境中,交通标志通常有着特定的颜色和形状,现有的交通标志检测方法多基于其颜色特征[5-6]和形状特征[7-8],或是两种特征的结合[9-10]。基于颜色的检测方法易受光照等因素的影响,在复杂的光照条件下鲁棒性较差,色差及背景复杂等因素也会造成有效信息的丢失;基于形状的检测方法鲁棒性较好,具有较强的抗噪能力,但由于计算量大,对硬件要求较高,无法满足实时性的要求。因此,研究一种复杂环境下交通标志多目标实时监测方法具有重要的理论价值和现实意义。

近年来,深度学习[11]在图像领域表现出巨大的优势,文献[12]利用深度卷积神经网络对人脸进行识别,取得了较好的识别效果;文献[13]利用残差网络实现了对道路行人的检测;文献[14]通过深度学习方法,实现了对人体行为的识别;Faster-RCNN[15]是继R-CNN[16]和Fast-RCNN[17]后,Ren等提出的最新目标检测方法,其具有检测速度快、识别率高以及泛化能力强的特点;桑军等[18]将Faster-RCNN用于车型识别,取得了较高识别率;Olmos等[19]使用Faster-RCNN对视频中枪支进行检测,也实现了较好的检测效果。

鉴于以上研究,本文以Faster-RCNN为基础,提出一种复杂道路环境下交通标志多目标实时监测方法,通过多组对比实验,证明所提方法的有效性,研究解决现有道路交通标志检测所存在的问题,实现复杂环境下道路交通标志的多目标检测,为智能汽车驾驶提供理论依据和技术支持。

1 Faster-RCNN目标检测

为了实现复杂环境下交通标志多目标的实时检测,本文采用Faster-RCNN作为目标检测框架,基本结构如图1所示。获取图像后,卷积神经网络(convolutional neural network, CNN) 通过卷积和池化操作对图像进行特征提取,得到高维特征,这些特征被共享用于区域建议网络(region proposal network, RPN)和检测网络;RPN网络利用锚点和共享特征,获取图像中交通标志准确的位置信息;检测网络对目标位置信息进行微调,获取交通标志更加精确的位置信息,并输出最终的分类和检测结果。

图1 Faster-RCNN结构Fig.1 Structure of Faster-RCNN

1.1 特征提取

图像特征的提取对于后续的分类和检测有着重要影响,传统的特征提取方法多为人工设计,如加速鲁棒特征、尺度不变特征变换、方向梯度直方图等,而设计一个好的特征提取方法往往需要很长时间,实际效果也会因所设计特征的好坏有较大起伏。

相比于传统的特征描述方法,CNN有着独特的优势。交通标志图像输入到CNN中后,通过卷积和池化等操作自动提取图像特征,加上局部感知和权值共享有效降低了训练参数,避免了传统方法中复杂的特征提取和数据重建过程,经过多次迭代,自动获得图像高层特征,取得较好的特征提取效果。

考虑到交通标志目标较小,在Faster-RCNN的基本结构下,本文采用ZF[20]网络进行特征提取,其特点是网络深度较浅,在有效提取图像特征的同时不会破坏原图中交通标志的位置信息,有利于取得更好的检测效果。

1.2 RPN网络

传统的目标检测方法,一般利用滑动窗口对图像进行遍历,产生检测区域,之后使用浅层分类器完成分类,得到所有可能的目标。该方法实时性差,且因使用浅层分类器,效果不佳。

RPN是Faster-RCNN中的一个重要部分,它是一个全连接网络(如图2所示),用于生成候选区域。以ZF为例,它利用一个3×3大小的卷积核在卷积特征图上进行特征提取,将提取的特征映射到一个256维的区域中,再送入到两个全连接层中,进而得到目标的分类信息和位置信息。

每个卷积核的中心,都对应着9个锚点,用于预测9个候选区域,每个候选区域的位置由4个坐标决定,位置回归层有4×9个输出,分类层有2×9个输出,用来判断候选区域是目标区域或者非目标区域。

图2 区域建议网络基本结构Fig.2 Structural of region proposal network

对于单个图像的损失函数定义为:

(1)

其中分类损失函数为:

(2)

回归损失函数为:

(3)

其中R为鲁棒性损失函数:

(4)

ti={tx,ty,tw,th}。

(5)

在边框回归计算中,采用如下4个坐标:

(6)

其中:x、y为候选框的中心坐标;w、h为候选框的高度和宽度。x、xa、x*为预测候选框、锚点边界框以及真实标注框的x坐标。同理,y、w、h也有对应的3个框值。利用这3组数据,完成对边框回归损失的计算。

RPN和检测网络共享CNN提取的特征图,从而极大地提高了检测速度。

1.3 检测网络

本文使用Faster-RCNN作为检测网络,它很好地解决了RCNN检测速度慢、训练时间长以及训练占用空间大的问题。

感兴趣区域(region of interesting,ROI) Pooling从RPN网络得到候选的ROI列表,通过卷积获得目标的所有特征,进行分类和回归,检测网络共享特征图,通过全连接层与Softmax函数计算出每个候选区域具体属于哪个类别;同时利用边框回归,获得更加准确的目标检测框,完成对目标的检测和分类。

Faster-RCNN算法的具体实现步骤如下:

步骤 1:输入任意大小的图片数据;

步骤 2:利用卷积神经网络对样本图像特征进行提取;

步骤 3:RPN网络共享卷积特征,生成建议区域,通过Softmax函数判断锚点属于待检测目标或者背景;

步骤 4:利用边框回归修正锚点,并获得准确的目标区域;

步骤 5:ROI Pooling整合输入的卷积特征和目标区域,获得目标区域的特征图;

步骤 6:检测网络全连接层利用目标区域的特征对目标类别进行判定;

步骤 7:再次使用边框回归获取目标更加精确的位置;

步骤 8:输出检测和分类结果。

2 算法实现

本文以Faster-RCNN作为基本检测模型,算法实现过程如图3所示,主要分为离线训练和在线识别两部分。获取待检测交通标志的训练数据后,首先选取合适的预训练模型,然后优化网络结构参数使其适应小目标检测,最后通过离线训练得到检测模型。将待检测交通标志样本图片输入到检测模型中,可自动得到最终的检测结果。

图3 基于Faster-RCNN的交通标志检测算法流程Fig.3 Trafficsign detection algorithmic flow based on Faster-RCNN

2.1 数据集准备

本文以德国交通标志检测数据集(German traffic sign detection dataset, GTSD)作为原始训练样本数据。GTSD中共有900张PPM格式图片,包含43类不同的交通标志,图片大小为1 360×800,每个图片中包含一个或多个不同大小和形状的交通标志,像素大小为16×16到128×128。

为保证训练效果,首先将图片转换为JPG格式,然后对原始数据进行数据扩增,通过调整图像对比度、亮度、色调等,将数据扩增至1 800个,预留出100张图片作测试集,剩余数据按Pascal VOC2007格式制作 (如表1所示),其中1 300张用做训练集,400张用作验证集。

表1 VOC2007数据格式

2.2 预训练模型选择

深度学习训练的目标是经过多次迭代,找到合适的权值。使用之前在大数据集上训练得到的模型,可以直接使用相应的结构和权值,可以做到对小数据训练样本的充分利用以提高训练效果。Faster-RCNN提供了3种训练好的通用模型,分别是小型网络ZF,中型网络VGG_CNN_M_1024[21]以及大型网络VGG16[22]。

由于图像中的交通标志目标较小,网络层数越深,最后一层卷积特征图上的特征点对应原图的感受野就越大,会破坏小物体在特征图上的位置信息。此外,由于VGG_CNN_M_1024和VGG16等大中型网络在训练以及实际应用中对硬件的要求较高,训练比较耗时,综合考虑检测效果、硬件要求以及训练时间等因素,本文选用小型网络ZF作为预训练模型,在有效提取和充分利用图像特征的同时,可以大量节省训练时间和计算资源,取得较好的训练效果。

2.3 模型优化

在实际驾驶过程中,道路交通标志种类众多,环境以及拍摄角度的不同,图片中的交通标志数目较多,且目标很小,使得交通标志检测变得非常困难。为了提高检测效果,文本对Faster-RCNN网络模型进行了优化。在Faster-RCNN中,原始数据集格式为VOC格式,图片大小集中在500×375左右,而锚点尺度为1282、2562、5122,锚点宽高比例为1∶2、1∶1、2∶1,对于一般大小的目标,这样的设计比较合适。由于交通标志检测中,获取的图像比较大,但要检测的交通标志目标很小,像素值中包含的特征很少,因此需要调整锚点宽高比例。本文选用3种不同尺度的锚点比例以适应交通标志的多目标检测,分别为3∶10、3∶4、1∶1。在Faster-RCNN中,对像素低于16×16的目标不进行检测,本文为了提高对小目标的检测效果,将该阈值调整为10×10。

本文采用随机梯度下降算法(stochastic gradient descent, SGD)来更新权值和偏置。批大小是其中的一个重要参数,批大小过大会使显存溢出,造成训练失败;过小会使训练时间增长,不易收敛。在合理范围内,选择合适的批大小可以提高显存利用率,减少训练时间,加快模型的收敛。考虑到显存大小,以及最终的训练效果,本文将批大小设为64,基于SGD的参数更新过程如算法1所示。

算法1 基于SGD的第n个训练迭代参数更新过程。

输入:n个训练样本。

输出:更新后的参数θ。

设定:学习速率α,初始化参数θ

while没有收敛或达到训练次数do

从训练数据中随机选取n个样本{x(1),x(2),…,x(n)}的批大小,对应的目标值为y(i);

参数更新:θ←θ-αδ;

end while。

Faster-RCNN中有交替优化与近似联合两种训练方式,训练效果相同。近似联合的训练方式是一种端到端训练方式,训练效率更高,可以有效节省训练时间。因此,为了节省训练时间,降低硬件要求,本文采用近似联合的训练方式。学习速率和动量是影响模型好坏的关键因素,本文将学习速率初始化为0.01,动量设置为0.9,每3 000次迭代改变一次学习速率,使学习过程更为平稳快速。

3 实验结果与分析

本实验在Linux系统下搭建的Caffe平台上进行,使用ZF网络作为预训练模型,并在此基础上进行微调,采用近似联合训练方式,每3 000次迭代保存一个模型,经过9 000次迭代,得到最终的训练模型。

训练过程中的损失函数如图4所示。在4个损失函数中,均有不同程度的震荡,可能原因为某些交通标志特征不够明显,且部分交通标志目标过小,受天气、光照、拍摄角度等因素影响较大,使得少量数据的学习变得困难。经过多次迭代,网络的整体损失可以迅速下降并稳定在到0.1到0.2之间,整体分类损失下降到0到0.1之间,说明训练模型可以在短时间内有效收敛,并实现对目标的准确分类。RPN网络中分类损失和边框回归损失下降到0.1以下,表明在RPN网络的训练过程中,网络进行了充分学习,可以有效对目标和背景进行区分,并通过边框修正完成对目标的检测。训练模型在验证集上获得的均值平均精度(mean average precision, MAP)达到71.27%,对单张图片300个区域建议目标的检测平均时间为0.4 s左右,满足实时检测要求。

在交通标志的检测与识别中,道路情况复杂,识别场景众多,会加大交通标志检测的难度。同时,由于背景中存在较多的干扰信息,增加了交通标志检测的难度,对检测结果造成较大的影响。为此,得到训练模型后,在测试集中随机选取了40张图片,测试了不同道路场景下,模型对交通标志目标的检测效果,部分测试结果如图5所示。

从图5中可以看出,在不同场景下,本文方法可以有效地对单个交通标志目标或多个交通标志目标进行检测,在检测目标很小的情况下,针对不同类型交通标志,依然可以实现较好的检测效果,说明通过近似联合的网络训练方式,训练模型有效地学习了数据集的高层特征,证明复杂场景下,基于Faster-RCNN的交通标志多目标检测方法是有效的。

图5 不同场景下检测结果Fig.5 Detection results in different scenarios

自然环境下,光照、拍摄角度、障碍物遮挡以及汽车运动过程中造成的运动模糊等因素会对交通标志的检测造成较大影响,为了进一步测试模型在不同环境下的检测效果,在测试集中选择4组不同自然环境下的真实图片进行测试,测试结果如图6所示。

从图6可以看出,在不同的环境影响下,图片中交通标志的差异性变化很大,其颜色和纹理信息变得不明显,造成检测困难。在目标检测中,通常使MAP来衡量模型的好坏,在4种不同的环境影响条件下,选用相同数量的测试数据,进行了多组测试实验,统计结果如表2所示。结果表明,通过优化Faster-RCNN网络结构,调整RPN锚点比例,选择合适的网络超参数,在光照影响、环境阴影、障碍物遮挡以及车辆高速运动等复杂环境条件下,本文算法依然可以实现对不同交通标志多目标的检测与识别,表明本文所提出的基于Faster-RCNN的复杂环境下交通标志多目标检测方法具有很好的鲁棒性,可以实现不同场景下多目标交通标志的检测与识别。

图6 不同环境下检测结果Fig.6 Test results in different environment

为了进一步测试算法的有效性,在迁移数据集瑞典交通标志检测数据集(Sweden traffic sign detection dataset, STSD)内,随机选取了300张不同场景和不同环境下的图片进行迁移测试,该数据集中的图像为驾驶状态下采集,能反映真实的行车状态。迁移测试结果表明,在新样本下,训练模型依然可以实现对复杂环境下多目标交通标志的检测与识别,MAP为0.703。表明训练模型具有较好的泛化能力,证明了基于Faster-RCNN的小目标检测算法的有效性,部分测试结果如图7所示。

将本文方法(即ZF+Faster-RCN)与经典的SSD[23]目标检测方法以及同样采用VOC2007数据格式的文献[24]、文献[25]进行对比,结果如表3所示。

表2 不同环境下的对比实验结果

图7 STSD数据集检测结果Fig.7 Test results of STSD

方法MAPSSD[23]0.513Multi-view SSD[24]0.644VGG16+R-FCN[25]0.650本文ZF+Faster-RCNN0.713

从表3可以看出,相比于经典的SSD小目标检测方法,以及同样基于深度学习的R-FCN小目标检测方法,本文所提出的小目标检测方法具有更好的检测效果。以上实验说明,通过选取合适的预训练网络以及调整Faster-RCNN中RPN网络对小目标的检索能力,并通过实验选择合适的网络超参数,本文提出的交通标志检测方法能够满足实际应用场景的需要,并具有较强的迁移应用性。

4 结束语

交通标志的检测是智能交通系统重要的组成部分。真实道路环境下,交通标志目标较小,场景复杂多变,环境多有变化,使得交通标志的检测难度较大。本文提出了一种基于Faster-RCNN的交通标志多目标检测方法,通过选取合适的预训练模型、网络学习率、动量系数等超参数,并对RPN网络进行优化,使其适应小目标检测。通过验证试验和迁移测试,证明了所提方法的有效性,单张图片检测时间为0.4 s,满足实时性要求,为智能汽车驾驶提供了理论依据和技术支持。

猜你喜欢

交通标志卷积特征
根据方程特征选解法
基于双向特征融合的交通标志识别
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
交通标志小课堂
我们欢迎你!