交通标志识别算法的对比与分析
作者:钟玲 于雅洁 张志佳 靳永超
来源:《软件工程》2016年第01期
        摘 要:交通标志识别作为典型的机器视觉应用,已有多种机器视觉算法得到广泛的应用。卷积神经网络能够避免显式的人工特征提取过程,因此本文引入卷积神经网络为交通标志进行识别研究,并与BP神经网络、支持向量机进行对比实验,通过对实验结果的理解与分析,可以得出卷积神经网络在识别率及训练速度上均显著高于另两种算法,并能取得最佳的识别效果。
        关键词:BP神经网络;支持向量机;卷积神经网络;交通标志
        中图分类号:TP393.0 文献标识码:A
        1 引言(Introduction)
        交通标志识别是图像处理和模式识别领域的一个研究热点,广泛应用于无人驾驶汽车、车
载导航等领域,具有很强的实际应用价值[1]。虽然交通标志的图形结构较为简单,但对自然环境下的交通标志进行识别,面临着遮挡、噪声、光照多变性、形状失真等多方面的严峻挑战,因此交通标志识别是模式识别领域的重点研究内容之一[2]。
        本文采用三种常见的机器学习方法对交通标志进行识别,分别是卷积神经网络(CNN)、BP神经网络和支持向量机(SVM)。通过在同一个交通标志样本集上进行实验,根据识别率及运行时间对实验结果进行对比分析。
        2 三种机器学习方法简述(Three kinds of machine车标志识别图
        learning methods)
        2.1 卷积神经网络(CNN)
        卷积神经网络是近年发展起来,并引起广泛重视的高效识别方法,由于其能够直接输入原始图像,避免了对图像的复杂前期处理,成为众多科学领域的研究热点[3]。
        卷积神经网络的基本结构一般包括两层:卷积层和子采样层。每一个卷积层后有一个用
来求局部平均与二次提取的子采样层,这种特有的两次特征提取结构减小了特征分辨率,减少计算时间。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数[4]。局域感受野、权值共享和子采样,是卷积神经网络实现位移、缩放、扭曲不变性的三种方法。
        2.2 BP神经网络
        BP神经网络是一种按误差逆传播学习算法训练的多层前馈网络,能学习和存贮大量的输入—输出模式映射关系,是目前应用最为广泛的神经网络模型之一。
        BP神经网络的学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播的方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元,在输出层获得响应,若实际输出与期望输出不符,则进入误差反向传播阶段。误差反向传播阶段是从输出层经过隐层向输入层反传,并逐层修正权值,不断提高正确率[5,6]。两个过程的交替进行,是网络误差函数达到最小值,从而完成信息提取和记忆过程。
        2.3 支持向量机(SVM)
        支持向量机是通过最大化分类间隔或边缘提高分类性能,主要针对小样本情况,通过训练一组称为支持向量的特征子集,使得对支持向量机的线性划分等同于对整个数据集的分割,既降低了运算复杂度,又保证了分类识别的精度[7]。SVM使用核函数进行预测,可以避免BP算法中的局部极值和过学习问题,同时具有很强的学习能力和泛化性能,利用优化方法得到的结果是全局最优解,能有效加快训练过程。
        3 仿真实验及分析(Simulation experiments and
        analysis)
        本文的实验数据来源于GTSRB数据库,如图1所示,是德国交通标志识别基准,专门用于交通标志识别研究的数据库。从该数据库中随机选取500个(共10类)图像为训练样本,再随机取100个(每类10个)图像作为测试数据,其中所有样本大小均为28*28。
        图1 部分样本图片
        Fig.1 Partial sample image
        3.1 卷积神经网络识别交通标志
        由于卷积神经网络可直接处理原图像,并不需要对原始图像做过多的预处理,所以本实验直接将28*28大小的图片输入到卷积神经网络中。同时,根据卷积神经网络的结构特征,确定卷积核大小、网络层数、批量训练样本数、神经网络迭代次数、卷积层的特征图数为本实验中的重点。
        (1)卷积核大小及网络的确认
        卷积核是进行卷积运算时的权值矩阵,行列均为奇数,且为对称的,如3×3、5×5、7×7。卷积核的作用是提取输入图像的特征,因此提取出的特征与卷积核的大小息息相关。若使用3×3的卷积核,网络的层数相对增加,系统工作时间增加;若使用5×5的卷积核,网络层数可为4层;若使用7×7的卷积核,虽然网络结构变小,但是提取的特征不具有代表性。因此,本实验采取5×5的卷积核大小。
        (2)批量训练样本数、迭代次数及特征图数的确定
        由于本实验的训练样本较多,因此将全部训练样本分成若干组,每组单独训练,批量训练样本的个数以5的倍数递增,根据实验,批量训练样本数越少,正确率越高,所以本实验
的批量训练样本数为5。在此基础上,对迭代次数进行测试,可知迭代次数越多,识别率越高,且时间花费较长,综合时间与识别率,本实验设置迭代次数为20。通过设第一个及第二个卷积层的特征图数的取值范围均为[7-10],依次组合,根据实验的最高识别率得出最优组合。实验结果如图2所示。
        根据图2可知,当第一个卷积层的特征图数取4,第二个卷积层的特征图数取8时,该卷积神经网络的识别率能达到最高为93%,且运行时间为5min。
        图2 卷积神经网络识别结果
        Fig.2 Recognition results of CNN
        3.2 BP神经网络识别交通标志
        (1)图像预处理
        预处理的目的是提高图像对比度,增强有用信息。本实验的预处理操作是灰度转换(自适应阈值法)及二值化。
        (2)特征提取
        特征提取是通过降维获得最能反映样本本质的低维特征。本实验采用粗网格特征提取。首先采用最临近插值法将样本缩放至70×50,再将样本划分成10×10大小的网格,统计每个网格中像素值,形成35维的特征向量。
        (3)BP神经网络的设计
        BP算法可应用于四层或更多的前馈网络,却更易陷入局部极小点而不收敛,因此选用三层BP网络,同时选用有动量因子介入的训练方法,避免陷入局部极小值。
        对于激励函数的选择,通常采用对数S函数、双曲正切S函数及线性函数。MATLAB中提供三种传递函数与上述激励函数相对应:logsog函数、tansig函数和线性purelin函数。鉴于本文实验输出,选用tansig函数。
        迄今为止,对隐含层节点数目的选择仍无法用完备的理论解决,但是要在满足精度要求下尽可能紧凑神经网络的结,即尽可能减少隐层节点数。一般情况下,隐层结点个数根据具体训练结果确定。
        对于训练函数的选择,本文采用traingdx函数,是在动量法的基础上集合自适应学习速率法,自动调节学习率,能够有效缩短训练时间。
        设置本实验的最大迭代次数1000,期望目标1e-5,动量因子0.95。实验结果详见表1。
        表1 BP神经网络实验结果
        Tab.1 Recognition results of BP neural network
        BP神经网络 识别率 识别时间
        神经网络1 73% 20min
        神经网络2 74% 23min
        神经网络3 75% 24min20s
        神经网络4 76% 22min
        神经网络5 77% 27min
        神经网络6 79% 22min50s
        上述实验结果表明,本实验所建立的BP神经网络在该测试集上的最高识别率为79%,且识别时间为22min50s。
        3.3 支持向量机识别交通标志
        为解决交通标志的多分类问题,本文将多个两类SVM分类器组合在一起实现多类分类,即1-a-1的多类分类方法来解决手写体数字的分类识别问题。