基于迁移学习的交通标志分类

2021-04-01 05:43王乐乐
长春大学学报 2021年2期
关键词:交通标志微调准确率

刘 艳,王乐乐

(长春大学 计算机科学技术学院,长春 130022)

交通标志分类是交通标志识别中继交通标志检测之后的一个子任务。交通标志识别是辅助驾驶系统以及自动驾驶中重要且具有挑战性的问题。困难主要体现在真实的路况下,交通标志不一定都能非常清晰、垂直拍摄得到,可能会遇到汽车转弯、障碍物遮挡、雾霾天气、光线不足等情况造成采集到的交通标志图像存在一定角度、局部图案、画面模糊、亮度不够等情况,但是即使这样,在智能交通中也希望能对这些质量不高的图像快速地进行分类,及早准确地对交通作出指示和判断。

随着深度学习在大数据集上的表现大放异彩,很多学者也将深度学习用于交通标志分类与检测。文献[1]利用CNN网络提取交通标志图像的特征,该网络包括3个卷积层、3个池化层和1个全连接层,使用极限学习机分类器对交通标志进行分类。文献[2]提出使用结合铰链损失函数的随机梯度下降法训练卷积神经网络,该网络由3个卷积层、3个最大池化层、2个全连接层等17层组成,在GTSRB数据集上的识别率达到99.65%。文献[3]提出一个具有权重的多CNN的并行网络结构,具体包括2~3个Inception层、2个卷积层和2个全连接层,充分利用Inception模块通过不同大小的卷积核提取不同尺寸特征的特性,专门针对GTSRB数据集进行训练得到分类模型,识别率较高,达到99.59%。文献[4]和[5]使用Gabor小波(核或者滤波器)结合卷积神经网络模型解决实时交通标志检测和识别问题。目前已有模型虽然在特定数据集上的识别率都很高,但是泛化性和实时性有待提高。使用数据增广得到更接近真实路况的数据,利用迁移学习解决深层次网络训练数据不充足的问题,通过实验对比主流模型的性能,从中选取更适合交通标志分类的模型。

1 数据增广

为了防止过拟合,深度学习需要数以万计的样本数据对网络进行训练。比利时交通标志数据集中的训练集只有4 572张图像。数据增广可以在不改变样本标签的情况下,利用先验知识增加样本的数量,采用数据增广(data augmentation)策略来增加训练集中图像的数量。

数据增广常用的方法有旋转(ratation)、缩放(zoom)、平移(shift)、剪切(shear)、尺度变换(reacale)和遮挡(erasing)等,这些数据增广方法如果运用合理的话,在一定程度上能够提高模型的分类性能。

运用Keras中内置的类ImageDataGenerator以及其成员函数flow()对交通标志图像使用了旋转角度(参数为30)、水平或垂直平移(参数为0.1)、剪切(参数为0.2)、亮度增强(参数为(0.5,0.9))、尺寸缩放(参数为[0.5, 1.1])、水平翻转等操作来生成更多的图像。生成的训练数据更贴近真实情况,增大了数据量,防止模型过拟合。得到的增广数据保存在磁盘中,为后续实验做准备。数据增广效果对比如图1、图2所示。

图1 原始训练集

图2 数据增广后的训练集

2 迁移学习

增广后的数据还是不足以从头训练一个深层网络,迁移学习可以将源数据集学习到的知识(权重)应用于目标数据集,缓解目标数据集数据量不足的问题,所以采用迁移学习来解决交通标志分类问题。

Keras框架中内置了目前主流的模型,这些模型在ImageNet数据集上经过多GPU长时间训练得到,具有较优的权重。ImageNet数据集和交通标志均为自然图像,具有一定的相似性,可以通过冻结模型的某些层,微调其余层的方式来训练新模型。对于比利时交通标志图像分类模型采用两种极端的方式训练:

(1)冻结模型前面的所有层,只微调最后的全连接层。

(2)使用模型的权重作为初始值,微调模型的所有层(包括最后的全连接层)。

采用迁移学习的好处是不但节省了训练时间以及硬件资源,而且容易得到较高的分类准确率。基于迁移学习的交通标志分类流程图如图3所示。

图3 基于迁移学习的交通标志分类流程图

3 实验设计

3.1 数据集

实验选取比利时交通标志数据集BelgiumTS for Classification(https://btsd.ethz.ch/shareddata/),训练集train包含4 572张图像,测试集test包含2 520张图像。对训练集中的图像进行数据增广,每张图像增广得到5张图像,将增广得到的图像加入训练集,则训练集共包含26 437张图像。对于增广后的训练集,按照80%和20%的比例,将其拆分成训练集和验证集,用于本小节交通标志的分类实验,但未对测试集进行数据增广。

3.2 实验环境

实验的操作系统为Windows 10,GPU为RTX 2080Ti(1块),显存11G,内存12G,CPU为i5-7代/4核,深度学习框架为Keras,开发环境为python 3.6.7。

3.3 实验步骤及结果分析

实验对Xception[6]、Inception-v3[7]、ResNet50[8]、VGG16[9]、VGG19[9]、DenseNet121[10]和DenseNet169[10]7种主流模型进行了迁移学习实验,每种模型分别对两种情况进行了微调:只微调模型的最后一层和微调模型的所有层。

模型Xception的参数inputshape的最小值为71,所以使用该模型进行训练时,将图像的尺寸调整为71×71像素,而模型Inception-v3的参数inputshape的最小值为139,所以在使用Inception-v3模型进行实验时,将图像的尺寸调整为139×139像素,训练其他模型时,为了公平起见,将图像的尺寸均调整为71×71像素。

模型训练时结合验证集的准确率val_acc曲线,当val_acc曲线持续下行时,调整学习率继续训练,采用学习率lr=[0.001, 0.000 5, 0.000 25, 0.000 125, ……],批处理的大小设置为32,根据经验模型训练40轮停止。各模型微调后的交通标志分类效果如表1所示。

从表1中可以看出,对于7种主流模型中的任何一种,微调模型所有层的效果均优于仅微调模型最后一层。对于只微调模型最后一层的情况,VGG16和VGG19表现较好,分类准确率能达到85%以上,这是因为VGG16和VGG19较其他模型层数较浅,分别为20层和23层,只微调模型的最后一层也会对总体产生较大影响。Xception、Inception-v3、DenseNet121以及DenseNet169能达到50%左右。ResNet50表现最差,这应该与残差网络的快捷连接结构有关。

表1 主流模型交通标志分类效果对比表

对于微调模型所有层的情况,7种主流模型都能达到96%以上的分类准确率,其中,Xception模型表现最佳,达到98.678%。Inception-v3模型和DenseNet121模型的分类准确率也都达到98%以上,但是这两种模型分别为312层和428层,相比较Xception模型只有133层,这两种模型占用内存较多、加载速度慢,所以Xception模型用于交通标志分类无论从参数数目、执行速度、对服务器配置的要求上都具有绝对优势。Xception模型在训练过程中损失值和准确率变化情况如图4所示。

图4 Xception模型进行交通标志分类的损失值和准确率

从图4可以看出,Xception模型对于交通标志分类训练能够很好地收敛。该模型在训练过程中,学习率经历了4次衰减,分别是epcoh为16、23、33和38时,学习率从最初的0.001依次衰减为:0.000 5,0.000 25,0.000 125,0.000 062 5,每次衰减后验证集的准确率均产生小幅上升,直至最后没有上升空间为止。

4 结语

使用数据增广一方面产生了大量数据,解决了模型训练数据量不足的问题,另一方面模拟了真实的情况,增强了模型的泛化能力。通过迁移学习实验对比发现,目前主流模型中的Xception模型在交通标志图像数据集的分类中表现优于其他模型,不仅分类准确率较高,而且模型层数相对较少,内存加载速度快,所以该模型在实时性方面具有一定优势。针对交通标识数据集迁移学习时冻结其他层的情况以及其在不同设备上的实时表现,仍是下一步研究的重点。

猜你喜欢
交通标志微调准确率
基于双向特征融合的交通标志识别
乐海乐器“微调轴”研发成功
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
交通标志小课堂
我国的民族优惠政策应往何处去?
我们欢迎你!