吴宗燃
【摘 要】交通标志的识别是辅助驾驶系统和无人驾驶系统中非常关键的步骤,是指将包含交通标志的待识别区域作为输入(我们在检测步骤中所得到的一组感兴趣区域),输出其交通标志的小类(如限速60公里/小时,禁止停车等),以得到人们所知道的具体含义。
【关键词】LeNet5;卷积神经网络;交通标志识别
一、交通标识识别方案的设计
卷积神经网络(convolutional neural network, CNN)[126]由LeCun等人提出,最早应用于手写数字的识别,且于2012年在ImageNet分类任务上取得了突破性的进展[127]。目前,卷积神经网络已成功应用于简单笔划识别[128]、交通标志识别[58,129]、以及相机定位[130]等多个领域。
卷积神经网络最显著的特点在于可以直接采用图像进行输入,能同时进行特征和分类器的学习,避免了传统识别算法中显式的、复杂的特征提取过程,隐式的从训练数据中进行学习。Giresan等人赢得GTSRB第二轮比赛采用的多列深度卷积神经网络(multi-column deep neural network, MCDNN)[53]包含了三个卷积层,三个最大池化层以及两个全连接层。鉴于卷积神经网络如此优秀的图像识别性能,本文采取LeNet5卷积神经网络来进行交通标志识别。
二、LeNet5卷积神经网络的算法流程
(一)交通标志识别算法的流程
交通标志识别算法流程:输入图像、预处理、特征提取、分类、输出图像等几个关键步骤。在实际的交通环境中,交通标志可能收到各种不利的外部因素影响而难以分辨,如:光线变化,位置的倾斜,风吹雨淋之后的褪色,路边树木的遮挡,这对计算机来说是十分致命的。同时在检测中,也会因算法的不理想而产生的误检、漏检、检测区域偏差等情况,难以实现百分之百的检测和完美的定位,因此我们首先需要对我们检测所得到的一组感兴趣区域做图像的预处理,来提高识别与分类的准确性。
经过图像预处理之后,我们如果直接进行分类识别,会发现通常结果都不会很好,这是因为我们所拍摄的图像中会有很多噪声,这些噪聲人眼可以控制忽略,而计算机却不能,所以通过特征映射使得同类型的数据在新的特征空间更加相近,也加大了不同类型数据的区分度,让计算机可以更加准确的判断,排除一些图像平移,形变,缩放的适应性。
这之后我们就将已完成的训练和测试数据按路径输入,同时改变输出种类为43。得到的损失图像如4.1所示。
三、实现与分析
(一)GTSRB数据集
在2011年IJCNN组织了一次交通标志识别竞赛,并与同时公布了GTSRB数据集。该数据集是从德国真实的交通环境中拍摄采集,一共包含4大类(禁令标志、警告标志、指示标志、其他标志)43小类。整个数据集包含了51839幅交通标志图像,其中训练集39209幅,测试集12630幅图像,识别数据集GTSRB每张图像上只有一个交通标志,相当于我们检测部分提取出的每一个感兴趣区域。
(二)运用LeNet5进行交通标志识别
在本文中,主要目的是运用LeNet5实现对GTSRB数据集的交通标志分类,同时了解卷积神经网络的结构及性能,独立训练了一个CNN。
GTSRB数据集中的标志通过颜色特征和形状特征我们将其分为了6大类,统计见表3.1,其中每一类都有自己的特点,例如:限速标志为圆形,红色边框,白色背景,中间为数字;解除禁止为圆形,黑色边框,白色背景,画有黑色斜线等。所以在大类之间的特点差异较大,具有较好的分辨性,但是难点在于每个小类的细分,他们的差别非常小,例如限速60公里/小时和限速80公里/小时,只差了一个数字而6和8又只差了一笔,如图3.1所示。卷积神经网络需要能够分辨这些微小的差别,才能够得到我们所需要的准确率。
(三)图像预处理
根据网络的要求,我们将数据集中的图像大小首先统一缩放到32×32。因为从原始图像中提取的感兴趣区域可能会受到各种不利因素的影响,所以现如今人们都采用了以下几种预处理算法,结果如图3.2所示。图中第1列为原始图像,第2列为灰度图,第3列到第6列分别为采用CLAHE、直方图均衡化、对比度调整以及图像锐化算法处理后的结果。
本文主要目的为实现LeNet5网络在交通标志牌中的运用,为了尽可能减少实验所需要的时间,所以采用了未经处理的原图像作为输入,仅将图像缩放为网络所需大小32×32,以此来判断是否需要做其他预处理来提高准确率。
四、实验结果与分析
首先编写了一套Python代码,用来随机选取训练集的20%进行测试(7841张),另外80%用于训练(31368)。这样做的好处是我们每次的训练和测试都不相同,提高了随机性。训练过程中采用了批量验证的方法,即在一次迭代过程中,将整个数据集分为若干个batch,每个batch包含64张图像,即我们每次训练时,输入到神经网络的图像数量为64。通过神经网络的向前传播过程得出这批图像的误差率,然后根据误差率对网络的权值和偏置求导,并更新网络中的学习参数。如图4.1所示,是我们在网络中训练一万次的loss曲线和在测试集中训练一万次的loss曲线。
在训练中所使用的LeNet5卷积神经网络结构,一共八层,其中包括为1个输入层,3个卷积层,2个池化层,1个全连接层和1个输出层。
最后训练的结果如表4.1所示:
从表中我们可以看出,分类的正确率较高,在7841个测试样本中,错误图片仅为84张,正确率为98.92%。每幅图像的处理速度为1.863毫秒。
如图4.2是部分被错分的图像,由于LeNet5是一个只具有的单个CNN的简单网络,所以其分类正确率还可以通过多种方式进行提升,比如加大网络深度,调整超参,训练多个DNN进行分类等。从样本中我们不难发现,识别错误的主要原因包括:分辨率过低,遮挡部分较多,运动模糊等。
五、总结
本文采用了一种简单的卷积神经网络LeNet5进行交通标志的识别。该网络包括三个卷积层,两个最大池化层和一个全连接层。输入图像这次为了实验采用了没有经过处理的原图,经过卷积层和池化层对图像特征的提取和压缩,进入全连接层分类,最终得到识别结果。通过在GTSRB数据集上的验证,正确率为98.92%,因此说明LeNet5卷积神经网络对于交通标志识别有较高的识别率(分类正确率),且在计算机上的运行速度仅为1.8毫秒,可以保证实时性。
【参考文献】
[1]基于融合卷积神经网络模型的手写数字识别[J]. 陈玄,朱荣,王中元. 计算机工程. 2017(11)
[2]深度学习研究综述[J]. 孙志军,薛磊,许阳明,王正. 计算机应用研究. 2012(08)
[3]基于深度卷积神经网络的人脸年龄分类[J]. 李超琪,王绍宇. 智能计算机与应用. 2017(03).