基于卷积神经网络的交通路标识别

2018-08-07 10:47陈柏立
计算机与现代化 2018年7期
关键词:均衡化路标直方图

陈柏立,林 楠

(华南农业大学数学与信息学院,广东 广州 510642)

1 研究背景

在当代汽车行业,无人驾驶汽车具有不可估计的前景。而交通路标识别系统是无人驾驶技术的一个重要组成部分。交通路标识别系统包括交通路标图像的预处理、目标提取和识别分类。其中在预处理和目标提取上,吴锦晶等人[1]使用HSV颜色空间进行分割,先将图片从RGB空间转化为HSV空间,然后通过消噪连通等处理后分割出交通路标区域图像,取得了较好的效果。而针对交通路标的识别以及分类算法,日本科学家于1987年首先开始了交通路标检测与识别的系统代码编写,实验的主要对象是数字标志的交通路标,他们利用模板匹配进行交通路标的识别分类[2]。之后几十年里,许多科学家对交通路标的识别技术进行补充与扩展,国外比较著名的有Liu和Ran[3]所研制出的停止标志识别系统,这套系统所基于的方法是神经网络。而瑞典Gareth Loy实验室和澳大利亚Nick Barnes研究所合作开发出的交通路标识别系统[4],则是建立在交通路标图像具有的特性及对称性和图像的简单性上,利用这2个特点来确定交通路标的质心位置,进而进行交通路标的识别与分类。国内比较著名的有台湾的Fang Chiung-Yao等人[5]研制的基于神经网络的交通路标定位跟踪的方法。

当今识别分类技术已经有了很大的进步,其中比较著名的识别方法有2种:

1)基于建立数据库进行交通路标图像的重合对比,即模板匹配。该方法主要是通过对交通路标图像进行分析,利用交通路标的颜色、形状等特征信息来与数据库内信息进行对比,通过查询信息完成识别[6]。这种方法理论上可以识别路标,但在遇到模糊的交通路标图像时出错的几率就会大大增加,抗噪性不佳。实际应用时,交通路标图像往往会因为光照条件、摄像头振动、拍摄角度以及交通路标本身的破坏而带来模糊或者损坏,图像重合对比方法对这些问题难以解决。

2)基于传统神经网络的交通路标识别法。它采用梯度下降法的原理,利用迭代的思想训练整个神经网络,首先给予网络参数一个初值,这个初值可以随机或者人工给出,然后在这个初值下计算当前网络的输出[7],根据输出和分类标签之间的差去改变前面各层的参数,从而减小这个差,之后重复之前的步骤,直到收敛[8]。这种方法与卷积神经网络有相似之处,也有不同点。它们的相似之处在于采用了相似的分层结构,而不同点在于卷积神经网络使用反向传播法进行训练,它在传统的神经网络前加了2层特征层,利用这2层特征层提取的基础特征去构建更高层的、更加精准有效的分类特征,而这2层特征层是通过权重可调整的卷积运算实现的[9]。相比之下,传统神经网络的缺点就体现出来了,它在处理有限样本时缺乏对复杂函数的表示能力,针对复杂分类问题(如不同天气、光照下的交通路标),因为其分类泛化能力不足而导致分类识别失误增高。

为解决传统方法的弊端,本文提出一种改进的卷积神经网络算法进行交通路标识别训练,利用Python实现算法,大大提高了识别的抗噪性能,增加了实际应用时交通路标识别的准确率。

2 数据收集及处理

2.1 数据收集

通过网络数据搜索,一共得到了43种路标的类型,这是本文中所需的训练集以及测试集的路标类型,具体如图1所示。

图1 数据集的交通路标种类

图2展示的是通过网络搜索而得到的路标图像的一部分,这部分图像将作为训练集来使用,共39209幅。还有一部分用作测试集,共12630幅。

从图2中,可以发现收集的图像大小并不统一,于是对图像进行归一化,将图像的尺寸统一到(32,32,3)的大小。

图2 部分训练集的图像

2.2 直方图均衡化

通过统计图像中每一个强度值所具有的像素个数,并且以柱形图的方式表达出来,这是直方图。为了提高识别的准确率,先对数据集进行直方图均衡化。

直方图均衡化常用在图像处理领域中。它利用图像的直方图来调整图像的像素分布,从而增加图像的对比度。在交通路标图像的处理中,利用直方图均衡化,可以更好地得到路标在图像中的分布。

每一张彩色图像都有3个色彩分量,分别为R、G、B。把3个色彩分量拿出来作为单独一个图像,然后分别进行直方图均衡化,再将它们描绘到一起,就是彩色图像的直方图均衡化。

直方图均衡化是一种通过灰度变换的方法,将图像对比度拉伸,对直方图进行调整,从而扩大背景以及目标图像的区别,达到增强对比度的目的。

图3给出一张原始路标图像的3分量直方图以及3分量图像。

图3 彩色图像直方图

以图3的直方图为例,可以看到像素主要集中在可数的强度值上。直方图均衡化要做的就是拉伸这个范围,得到图4所示的直方图[10]。

图4 均衡后直方图

之后将它们组合到一幅图中。可以发现直方图均衡化后图像轮廓变清晰,背景以及目标路标对比度变高,能够更精确地提取图像特征。

2.3 训练集和测试集

为将预处理好的图像输出为训练集或者是测试集,首先在图像贴上标签,本文中一共有43类路标需要识别,因此将图1中的43类路标由左到右、由上到下依次对应着1~43类标签。随后,将所有的路标图像均贴上其对应的标签。

将处理后的训练集图片输出为(39209,32,32,3)的数组train_x,分别对应数据集中的39209幅图像;每一幅图像对应一种标签,进行标签的二值化,输出为(39209,43)的数组train_y;最后将数组train_x和数组train_y保存为训练集train.p。

紧接着用同样的方法,将处理后的12630幅测试集图像输出为(12630,32,32,3)的数组test_x;对其标签进行二值化输出为(12630,43)的数组test_y;将数组test_x和数组test_y保存为测试集test.p。

3 卷积神经网络

卷积神经网络依赖于局部感知域(local receptive fields)、共享权重(shared weights)和池化(pooling)这3种方法来实现图像的识别位移、缩放和扭曲不变形[11]。因此,卷积神经网络能够在图像理解的领域上得到广泛的应用,本文在交通路标识别的问题上,选择卷积神经网络来进行实验。

输入预处理图像大小为n×n的二维矩阵M,将其输入卷积层中,设置卷积核为L×L的矩阵W,卷积的步长为1,用式(1)来连接输入层与卷积层的神经元:

(1)

输出的卷积层特征图的大小是一个(n-L+1)×(n-L+1)的矩阵,Cij是该卷积特征图的第i行第j列的神经元;Wij、bij分别是可训练的共享卷积核以及共享偏差;Mij并非指矩阵M的第i行第j列的元素,而是表示与卷积核相对应的元素;“*”是卷积运算,并不是代数乘法,而是对应的点乘。

求和之后,将数值代入Sigmoid函数,可以输出对应位置的卷积层特征图的神经元。

在子采样层,同样设置为N层。将卷积层的特征图大小为n×n的二维矩阵M输入子采样层中,采样域的大小为L×L,采样的步长为2,那么得到的子采样特征图的大小为[(n-L)/2+1]×[(n-L)/2+1]。用式(2)连接卷积层与子采样层之间的神经元:

Sij=f(kijdown(Mij)+bij)

(2)

其中,Sij是该子采样特征图的第i行第j列的神经元;kij、bij分别是可训练的共享权值、共享偏差;Mij表示与子采样域相对应的区域,f是激励函数;down函数代表的是子采样函数。

常用的子采样函数有均值子采样(mean-pooling)和最大值子采样(max-pooling)。

本文采用的是均值子采样函数:

(3)

设置的全连接层大小为L×1,用式(4)将子采样层与全连接层之间的神经元相连接:

(4)

其中,Qi是该全连接层的第i行的神经元;aij是第j幅二维特征图对第i个全连接层的神经元的可训练的共享权值,bi是可训练的共享偏差;Mj指的是矩阵M,f为激励函数。

本文构建的网络使用梯度下降法:

原始图像经过卷积神经网络的前向传播后,得到标签的预测值,这个映射所表达的数学模型如下:

yn=P(Hn;W,k,a,b)

(5)

该模型表示原始图像的二维矩阵Hn经过卷积神经网络的前向传播,与卷积核参数W、子采样层权值k、全连接层参数a以及各层偏差参数b进行运算后,输出对原始图像预测的标签值yn。

在未进行参数训练前,先将参数设置为随机值进行前馈运算,然后通过梯度下降法慢慢进行反向传播,慢慢调整参数。

在利用梯度下降法对训练集进行训练的过程中,期望第n个样本图的标签预测值yn与其标签真实值tn越接近越好。所以,建立损失函数:

(6)

在训练过程中,损失函数通过梯度下降逐层更新卷积神经网络各层的可训练参数。

4 路标识别实验

4.1 LeNet5结构的卷积神经网络

本文要建立的是一个2层的卷积神经网络,即包含了2个隐藏层。在第一个隐藏层中,卷积层的大小为28×28×6,子采样层的大小为14×14×6;在第二个隐藏层中,卷积层的大小为10×10×16,子采样层的大小为5×5×16;全连接层的大小为120×1,具体结构如图5所示。

图5 LeNet5结构的卷积神经网络

在实际的操作中,设置训练次数为10次,学习率为0.1,批尺度的大小为17。批尺度表示的是在进行梯度下降时所采取样本的样本大小,批尺度过大则程序运行效率不高,批尺度过小则会影响卷积神经网络的准确率。

依据上述的数据,应用编程软件Python构建LeNet5结构的卷积神经网络,将训练集输入程序中,训练得到各个神经元间的参数,最后将测试集输入已经训练好的卷积神经网络中。经测试,路标识别的准确率为87.5%,损失值为0.913。

4.2 模型改进及应用

显然,87.5%的识别率并不令人满意,本文打算对模型进行改进,以提高路标识别的准确率。

一般来说,想要提高识别的准确率,可以从以下方面着手:1)图像的预处理;2)卷积神经网络结构的调整;3)训练期间的技巧;4)激励函数的选择等。

在数据收集及其处理部分已经对图像进行过直方图均衡化以及归一化的处理,所以为提高识别准确率,本文考虑在上述LeNet5结构的基础上,对训练期间的参数进行调整,具体如下:

1)卷积核由原来的5×5大小改成1×1;

2)批尺度也由原来的17提高到128;

3)训练次数由原来的10次增加到50次。

卷积核大小的缩小,可以尽可能地保持图像原有的特征,批尺度和训练次数的增大则可以提高卷积神经网络训练的准确率。当然相对应的代价则是训练时间相对应地延长。

当然,还可以考虑使用若干个网络结构进行组合,以提高准确率。

4.2.1 训练次数的影响

为了确定训练次数对于卷积神经网络的路标图像识别准确率的影响,将训练次数从10次到50次时卷积神经网络的训练情况由表1展示出来。

表1 训练次数与准确率间的关系

训练次数101112…47484950损失值0.1940.1930.168…0.0680.0610.0630.065准确率/%959595.6…98.698.698.498.4

从表1和图6可以发现,训练次数到了40次以后,随着训练次数的增加,准确率已经不再提高。而且,从计算出来的函数损失值可知在训练次数达到50次时,该梯度下降已收敛。所以,在训练次数为50次时,卷积神经网络的训练效果最佳。

图6 训练次数与准确率损失值

同样,可以采取相同的方法来确定批尺度与卷积神经网络的效率之间的关系。经试验确定,批尺度大小为128时,训练效果最佳。

4.2.2 改进后的对比及应用

经过上述改进,再利用Python来训练模型,然后利用测试集进行测试,得到的结果见表2。

表2 改进后的结果

LeNet5改进后卷积核5×51×1批尺度17128训练次数1050准确率/%87.593.2损失值0.9130.442

经改进后,由原来的87.5%的准确率提高到了93.2%,提高了近6个百分点,笔者认为该模型已经可以用来进行仿真实验,于是利用了4幅路标图像进行仿真实验,实验效果如图7所示。

图7 改进后仿真实验

图7中的4幅测试图片分别代表直行和向右转弯、路面不平、禁止驶入、注意儿童的路标图像,经过卷积神经网络的识别后,路标的标签均出现在图像的上方,路标类型的识别完全正确。

4.3 与传统的模板匹配算法对比

4.3.1 模板匹配算法原理

模板匹配是数字图像处理的重要组成部分之一。本文利用模板匹配对已经做好处理的路标图像进行识别[12]。

首先,将原图和第k张模板进行相减得到rRk。rRk的第(a,b)个像素点的值用式(7)得出[12]。

rRk(a,b)=|r(a,b)-Rk(a,b)|

(7)

然后,假设错误函数为Error(k),代表原图与第k幅图片的不同像素点的个数。

归定错误函数初始值为0,确定一个阈值C,错误函数如式(8)所示:

(8)

容易推出,只要遍历所有的像素点,就可以得到原图和第k张模板的错误函数Error(k)。

在模板匹配的识别中,只要对比所有的错误函数Error(k)(k=1,2,…,n),找出最小的错误函数Error(k),那么就可以得出识别结果为第h个模板。

4.3.2 模板匹配仿真实验

从数据集中,每一类路标各取一幅图片为模板,其余为测试集。运用Matlab进行仿真,准确率为0.803721,远远低于本文提出的卷积神经网络算法。

另外,从识别错误的图片中挑选出一幅图片进行举例说明,如图8所示。

图8 错误的模板匹配仿真实验

从图8可以发现,由于模板匹配的识别法不能良好地排除环境噪声的影响,使得一点点的噪声就会使识别的准确率大大降低[13]。

5 结束语

本文基于卷积神经网络的方法,构建了LeNet5的神经网络结构,用于对交通路标识别的研究。为了提高交通路标识别率的需要,对传统的卷积神经网络LeNet5的结构进行了改进,并与传统的模板匹配算法进行比较[14]。

实验结果表明,改进后的卷积神经网络识别率有所提高,对收集到的交通路标的数据样本的识别率也从原来的87.5%提高到了93.2%。

此外,还从中得知卷积神经网络的识别率与效率同各个参数息息相关,并且其识别效果远远优于传统的模板匹配算法。

接下来,进一步的研究工作如下:

1)通过加深隐藏层的层数,实验能否提高图像识别的准确率。

2)加入抗噪声性能的训练,提高识别的准确率。

3)实验除LeNet5以外的其他结构,并比较相互之间的准确率。

猜你喜欢
均衡化路标直方图
符合差分隐私的流数据统计直方图发布
路标
BP神经网络在路标识别上的应用研究
基于FPGA的直方图均衡图像增强算法设计及实现
路标
用直方图控制画面影调
基于数字图像直方图均衡化改进算法的设计研究①
中考频数分布直方图题型展示
看清医改最要紧的两个路标
制度变迁是资源均衡化的关键