时间:2024-07-28
李金樽,罗 山
(攀枝花学院交通与汽车工程学院,四川 攀枝花 617000)
交通标志识别在无人驾驶技术中起到重要的作用,是无人驾驶的“眼睛”。目前,国内外关于交通标志的检测与识别方法主要可分为三大类:基于颜色特征的检测方法[1];基于形状特征的检测方法;以及颜色和形状信息融合的检测方法。基于颜色信息的检测方法一般是基于某种颜色空间进行单分量或者多分量阈值分割的方法提取标志感兴趣区域(ROI);基于形状信息的检测方法一般采用边缘检测[2]、Hough变换[3]、对称性[4]等方法根据标志轮廓特征检测标志ROI区域。王博等[5]提出一种改进的CNN交通标志识别算法,该算法将数据集进行数据扩增,归一化等预处理,并使用TPE算法进行超参数优化,取得了不错的识别效果。郭志涛等[6]提出基于深度学习的交通标志识别算法,构建了一种过程更加快速、高效的交通标志识别模型TSR_Lenet。针对现有识别算法的不足,本文采用基于深度学习的交通标志识别算法,对卷积神经网络模型结构进行改进,提高了识别率和缩短了训练周期。
作为深度学习的代表算法,卷积神经网络(Convolutional Neural Networks,CNN)是为识别二维形状或二维图片而特殊设计的一种多层感知器,每层由多个二维平面组成,而每个平面由多个独立神经元组成。采用有监督的方式训练网络,网络的结构主要有稀疏连接和权值共享两个特点。受到人类视觉神经系统的启发,卷积神经网络广泛用于图片分类、检索、目标定位监测、目标分割、人脸识别、骨骼识别乃至最新的用途是否佩戴口罩也可检测。
典型的CNN包括三种基本结构层:卷积层、池化层和连接层。
CNN中的最重要的组成部分是卷积层,它由多个卷积核重叠组成,这里的卷积核充当“眼睛”的作用,提取目标边缘轮廓也即是通过对输入的数字信号进行卷积操作后才输出特征值。
池化层在卷积神经网络中充当减少参数数量的作用,池化层可以操作使外界物体呈现的图片特征减少,计算过程中由于参数减少,从而达到正常实验的目的。同时,池化操作可以保持图像平移不变形从而具有一定的保障性,此时已脱离了简单的机器学习范畴。池化常用的方式有:最大池化(Max Pooling)、平均池化(Mean Pooling)。
在完成卷积层和池化层的操作之后需要接入连接层,在交通标识图片训练中,用少量数据输入网络,通过信号前的传播方法计算相应的实际交通标识类型,反向阶段在网络的实际输出和异常输出之间存在误差,对误差函数的偏压计算,根据误差最快的减速方向,可调节权值和偏置,在前向传播过程中经过神经网的卷积运算和池化运算,交通标识图片可获得必要的特征图。然后将特征图转换为一维特征向量,最后通过网络的全连接层结合将一维向量进行识别。
激活函数可增加整个网络的非线性映射作用,采用ReLU函数,表达式为:
f(x)=max(0,x).
(1)
表达式说明输入信号x<0时,输出都是0;输入信号x>0的情况下,输出等于输入。
本文的交通标志识别的卷积神经网络训练过程为:首先加载交通标志数据集并获取数据集的特征及标签数据(如数据集大小、格式等);然后用Python库中matplotlib函数绘制交通标志图片并用直方图来展示图像训练集各个类别的分布情况随后让数据重采样,进行数据预处理,对所有数据进行打乱,封装建立图像数据生成器;最后搭建卷积神经网络模型,确定合适的卷积层、池化层、连接层等的大小,并建立模型评价可视化标准,最后运行程序得出结果。以此构建的交通标志识别模型如图1所示。
图1 交通标志识别模型
本文网络模型中卷积层、池化层与连接层缩写为Conv、MaxPooling与Dense,并且加入了Flatten层与Dropout层。Dropout层的功能为解决神经元之间过度拟合,从而实现数据更好的在神经网络中传输。Flatten层用来将数据“压平”即把多维的输入一维化,常用在从卷积层到全连接层的过渡。如想要叠加神经网络模型中的层数,就可以通过不断的设计卷积核的尺寸、数量,提取更多的特征,最后识别不同类别的物体,通过MaxPooling层后把这些数据“拍平”,送到Flatten层,然后把Flatten层的输出放到Dense里,最后采用分类器对其进行分类。
采用两种卷积网络结构对典型的德国交通标志数据集[7]进行识别实验。在Tensorflow框架上搭建卷积网络模型,网络结构1为2层Conv2D+1层MaxPooling2D+1层Drop(0.25)+1层Flatten+1层Dense+1层Dropout(0.5)+1层Dense。第1层卷积:32个3×3的卷积核,激活函数使用ReLU;第2层卷积:64个3×3的卷积核,激活函数使用ReLU;最大池化层的池化窗口大小为2×2,最后使用Softmax激活函数做多分类,输出各类别的概率。表1为建立的网络结构参数。
表1 网络结构1参数
将卷积网络结构改为3层Conv2D+1层MaxPooling2D+1层Flatten+2层Dense,得到网络结构2。对两种网络分别训练120次的网络模型性能曲线及识别结果分别如图2、表2所示。
图2 两种网络结构的损失率与精度值
表2 两种网络结构的实验结果
图2中,Model Accuracy图代表模型识别精度,Model Loss图代表模型在识别过程中的损失值大小,其中横坐标代表训练次数,纵坐标分别代表精度率与损失值的大小。从仿真实验结果可知,对网络1进行训练,随着训练次数增加,模型准确率在20次以后上升较为平稳,且损失函数也在20次以后逐渐趋于0,训练120次的精度值达到95.31%,损失率为0.2226,性能指标比网络2好,性能更优越。且网络2训练的时间比网络1的时间长,是因为网络1比网络2多了dropout层以丢弃多余的数据。从识别结果来看,网络1的正确识别率比网络2高。
针对目前交通标志识别算法的不足,采用深度学习方法实现交通标志识别。建立卷积神经网络识别模型,分别对两种不同结构的网络进行训练与测试,给出性能评价指标,网络1增加了dropout层,性能得到改善,均比传统机器学习算法有更强的性能。因此增加dropout层改变网络结构能改善网络性能及识别效果,为交通标志识别技术的应用提供一定的参考。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!