基于胶囊神经网络的交通标志识别算法研究*

2020-12-25 03:28任条娟陈鹏陈友荣江俊游静
汽车技术 2020年12期
关键词:交通标志识别率灰度

任条娟 陈鹏 陈友荣 江俊 游静

(1.常州大学,常州 213164;2.浙江树人大学,杭州 310015)

主题词:感兴趣区域 卷积神经网络 胶囊神经网络 空间信息 动态路由 交通标志

1 前言

目前,车辆大多通过数字地图获得交通标志信息[1],但只限于有地图数据的道路,因此基于人工智能和机器视觉的道路交通标志识别系统拥有大量的需求。

交通标志识别的本质是图像的多分类问题,部分学者侧重于利用机器视觉领域的特征提取以及分类器等方法实现交通标志图像的识别分类,如:文献[2]~文献[4]分别使用图像分块的方向梯度特征和内部局部二值模式特征进行特征融合,提取图像方向梯度特征,提取交通标志边缘颜色、形状和文字等图像特征,最后使用支持向量机(Support Vector Machine,SVM)进行识别;文献[5]在最大稳定极值区域(Maximally Stable Extremal Regions,MSER)的基础上,增加对黄色图像的处理,通过卷积神经网络(Convolutional Neural Network,CNN)进行定位;文献[6]利用距离边界向量的方式进行检测定位,提高其在弱光照条件下的图像查全率;文献[7]提出了一种基于岭回归和大津算法的检测和识别交通标志方法,使用HSV(Hue Saturation Value)进行阈值分割,提取感兴趣区域(Region of Interest,ROI),并用大津算法提取径向直方图特征,使用多层感知器实现分类。文献[2]~文献[7]需要人工设计先验知识的特征,且特征提取较为复杂,需花费大量的人力和时间。部分学者侧重于研究适用于交通标志识别的CNN等深度学习算法。深度学习算法无需人工构造任何图像特征,直接提取整张图像像素作为网络输入,如:文献[8]~文献[9]分别使用图像聚类和图像ROI 对图像进行预处理,并使用CNN训练和识别交通标志图像;文献[10]提出了一种基于加权多CNN的交通标志识别算法,即训练每个CNN,采用加权分类器优化分类结构,从而提高交通标志识别能力;文献[8]~文献[10]均使用CNN 对交通标志图像进行训练和识别,部分学者还使用了LeNet-5[11]、AlexNet[12]、GoogLeNet[13]等网络模型,但由于池化层的存在,在提取图像底层特征的过程中会导致空间特征信息的丢失、网络训练数据集需求量大、算法计算量较大等问题。

综上,虽然交通标志识别算法研究已取得较大进展,但在构建训练数据集时需要考虑旋转、翻转、平移等变化的图像,增加了算法的整体计算量。因此,本文针对传统网络由于池化层丢失图像空间位置、角度等重要信息导致算法计算量大的问题,提出了基于胶囊神经网络的交通标志识别算法,减小图像提取特征的区域,提高模型的训练和识别速度。

2 交通标志图像识别原理与算法实现

图1所示为交通标志图像识别流程。识别训练时,在主胶囊层中将张量的底层图像特征转化为向量图像特征后,将图像特征向量封装成胶囊(Capsule)单元,对这些单元进行动态路由聚类获取分类概率向量,其模长即某个类别的概率,之后经过反向传播更新胶囊单元内的权重参数,最后固定网络内胶囊单元权重参数,实现网络模型训练。在图像识别时,主胶囊层张量向量转换后,通过训练好的权重参数和网络动态路由聚类,输出交通标志分类的结果。

图1 交通标志图像识别流程

但仍需解决2 个问题:如何对输入图像进行预处理,获得适用于CapsNet 网络输入的交通标志图像;如何训练和应用适用于交通标志识别的CapsNet 网络模型,解决平移、翻转和角度变化后同一交通标志图像的识别问题。

2.1 交通标志采集

车载摄像头采集自然场景下同一道路不同时刻、不同角度的警示、禁止和指示3种类型交通标志图像。

2.2 图像预处理

对交通标志图像进行神经网络识别前,需要对其进行预处理,提取拥有丰富特征信息的ROI,从而缩小图像识别范围,降低算法计算量,提高识别速度。

2.2.1 图像均衡化

相较于背景区域,交通标志图像具有较强的反光性和凸显性。同时,受天气、光照等自然环境因素的影响,在图像处理时需对其亮度进行均衡化,以消除自然环境对图像造成的干扰,增强图像特征信息。均衡化流程如图2所示,其中,亮度分量的直方化处理过程为:

式中,Sn为处理后的亮度分量值;Xi为亮度分量值为i的像素数量;N为像素数量总和。

图2 图像均衡化过程

2.2.2 MSER分割

交通标志图像经过均衡化处理后,对其进行灰度化和二值化。由于MSER算法具有良好的仿射不变性、稳定性和简单高效的特点,本文基于MSER算法提取交通标志图像的ROI。该算法的基本思想如下:选取阈值t={0,1,2,…,255}对图像进行二值分割,低于阈值的像素置为黑色(0),高于或等于阈值的像素置为白色(255)。在阈值t从0增大到255的过程中,图像形成闭合区域,寻找图像像素区域变化最小的区域,即为MSER稳定区域。然后,根据交通标志本身的几何特征,筛选潜在区域,最后利用式(2)计算灰度图像中灰度值的标准差σ,得到标志所在区域,并分割出图像的ROI:

式中,xi为第i个灰度值;NA为周围区域灰度值总数量。

MSER算法的具体实现步骤如下:

a.将交通标志图像每列灰度值从大到小排序。

b.将排序后的灰度值放入与原图像尺寸大小相同的矩阵中,使用并查集(UnionFind)算法判断排序后的每列灰度值点之间是否存在链接。如果存在链接,输出灰度值点,并将其排在相邻位置的矩阵内,令t=0。

c.选取二值化阈值(t-Δ)、t和(t+Δ),其中Δ为阈值的变化量,分别选择灰度值为该阈值的像素点组成的多个区域,计算这些区域的面积,计算第i个区域的变化率

d.令t自加1,如果t<256,则跳转到步骤c,否则变化率的计算完成。选择具有最小变化率的区域为最大稳定极值区域Rt。

e.计算区域Rt的纵横比R,计算区域与其外接矩形的面积比A,如果二者同时满足式(4)、式(5),跳转到步骤f,否则跳转到步骤a,读取下一张图像:

式中,Rmin、Rmax分别为纵横比的最小值、最大值;Amin为面积比的最小值。

f.令筛选出的最大稳定极值区域的灰度值为255,其他区域灰度值为0。利用式(2)计算图像每一个灰度值与周围区域灰度值的标准差,将标准差最大的灰度值点作为交通标志图像ROI边界的灰度值点,连接这些灰度值点组成图像区域,获得区域的图像坐标。分割该坐标内所有像素点,得到交通标志图像ROI。

2.2.3 归一化

利用最邻近插值法将ROI图像规格化,获得固定大小(32×32)的图像。

2.3 CapsNet训练和识别

2.3.1 CapsNet网络结构

如图3所示,CapsNet网络由5个部分组成。第1层为输入层,输入实际图像数据。第2 层为标准卷积层Conv1,提取ROI 图像(32×32),通过卷积提取交通标志各部分特征。第3 层为CapsNet 网络主胶囊层,对上层输入的特征进行不同卷积,生成1个向量作为胶囊单元,传入数字胶囊层。第4层为数字胶囊层,通过动态路由协议进行聚类传播与更新权重矩阵,输出概率向量。第5层为输出层,计算概率向量模长,输出分类概率。

2.3.2 卷积层底层特征

卷积层具有256个大小为9×9的卷积核,其深度和步幅均为1,运用非线性激活函数提升卷积层的运算能力。卷积层提取交通标志图像底层各部分特征,输出24×24×256的张量。

图3 CapsNet网络基本结构

2.3.3 主胶囊层张量向量化

主胶囊层接收卷积层提取的交通标志图像底层特征张量,构建可作为底层特征的多维度的向量,并将该向量作为数字胶囊层输入的底层胶囊单元。即主胶囊层通过8×32个大小为9×9和步长为2的卷积核,进行32次通道数量为8 的不同卷积,生成8 个6×6×8×32 的张量。将这8 个张量合并成6×6×8×32 的向量,即为主胶囊层输出的底层胶囊单元。

2.3.4 动态路由聚类

数字胶囊层在主胶囊层输出向量单元的基础上,进行传播与路由聚类。数字胶囊层输入的胶囊单元表示图像内包含的实例化参数,使用如图4所示的动态路由算法预测更高层的胶囊单元。通过使用权重矩阵控制底层胶囊单元与高层胶囊单元间的连接紧密程度,并判断胶囊单元间方向的一致程度,更新权重矩阵。循环执行上述操作进行动态路由聚类,获得耦合系数。

图4 动态路由的层级结构

动态路由算法的步骤为:

a.输入低层胶囊单元的胶囊单元和连接权重矩阵,计算所有的预测向量:

式中,ui为低层胶囊单元的第i个胶囊单元;wij为第i个胶囊单元与第j个预测胶囊单元的连接权重矩阵;Uj|i为预测胶囊单元。

并令当前胶囊所在的层序号为L,且L=0,令路由迭代次数为R,令当前循环次数r=1。

b.令bij为第L层第i个胶囊单元连接第(L+1)层第j个胶囊单元的一致性参数,令初始值均为0。

c.如果当前循环次数小于R,则跳到步骤d,否则跳到步骤h。

d.计算每一个胶囊单元的耦合系数cij:

e.计算第(L+1)层中的所有胶囊单元的加权和:

式中,sj为第j个胶囊单元的加权和。

f.采用Squash 压缩激活函数压缩加权和sj,获得第(L+1)层的所有胶囊单元:

式中,vj为第(L+1)层的第j个胶囊单元。

g.根据第L层的所有预测向量Uj|i与第(L+1)层的所有胶囊单元vj的连接关系,参数bij增加Uj|ivj,r自加1,并跳转到步骤c。

h.输出固定动态路由过程中使用的耦合系数cij和连接一致性参数bij,输出高层胶囊单元vj。

2.3.5 反向传播和模型训练

获取数字胶囊层输出的胶囊单元向量,根据向量长度判定其属于某个类别的概率。同时,需构建损失函数:

式中,k为分类类别;Tk为分类的指示函数,如不属于类别k,Tk=1,否则Tk=0;vk为动态路由聚类为类别k的向量单元;m+、m-分别为上、下边界;λ为权重降低损失值。

在反向传播算法中更新权重矩阵:

式中,为更新后的权重矩阵;η为学习率,即梯度。

同时,在训练过程中使L自加1,从低层胶囊单元向高层胶囊单元更新。在网络训练结束后可确定胶囊网络模型的权重参数,获得网络模型。

2.3.6 图像识别

在图像识别时,将图像进行预处理输入网络模型。图像经卷积层提取特征,主胶囊层将特征张量向量化,利用训练后的权重参数,通过动态路由算法获得43 个类别的向量,向量的模长为各类别的概率,并将概率最大的类别作为分类的最终结果。

2.4 算法实现

交通标志识别算法流程如图5所示。

图5 交通标志识别算法流程

3 仿真结果分析

仿真采用Ubuntu 18.04(64 位)操作系统和TensorFlow平台,处理器为Intel®Core™i7-8700 CPU@3.20 GHz×6,使用NVIDIA RTX2060实现GPU加速训练。

3.1 数据集准备

为验证算法有效性,将其在如图6所示的德国交通标志数据集(Germany Traffic Sign Recognition Benchmark,GTSRB)上进行测试,该数据集包含43种不同类型的交通标志图片。由于GTSRB原始数据中存在很多分辨率低、运动模糊、局部遮挡、尺寸不一、光照强度不同的低质量数据,因此在数据集中添加现实场景拍摄的图像替换部分低质量图像,共获得51 839张图片的数据集,包括39 209张图片的训练集和12 630张测试图片。

图6 GTSRB数据集示例

3.2 图像ROI提取结果分析

图7展示了本文算法的图像ROI提取过程,在对图像分割时利用MSER进行交通标志分割,得到交通标志候选区域,然后利用该区域的几何特征纵横比、周长、面积等特征获得交通标志所在区域位置。

为与其他算法进行比较,选用查全率Rc进行评价:

式中,NT为检测到的交通标志数量;NZ为图中含有的交通标志总数量。

图7 提取ROI过程

选取846 张正常光照图片和360 张弱光照图片,采用HOG[4]、MSER[5]、DtBs[6]和本文算法提取图像ROI,计算查全率和标志平均检测时间,结果如表1所示。

表1 在不同光照下检测算法比较

由表1可知:本文算法、MSER和DtBs对正常光照图片的交通标志检测效果较好,本文算法的查全率略大于MSER和DtBs,但三者相差不大;针对弱光照图片,本文算法对图像亮度的均衡化可有效抑制光照对交通标志造成的影响,同时采用MSER 方法分割交通标志,避免了使用颜色阈值分割时,阈值不准确造成的漏检,在光照条件较差(夜晚)的情况下也能有效检测交通标志,故本文算法的查全率大于MSER、DtBs 和HOG。MSER 没有判断图的形状等特有特征,故其平均图片提取时间较短。本文算法在MSER基础上增加了对形状的判断,稍微延长了标志检测时间,但小于DtBs和HOG算法。

3.3 网络训练过程性能分析

网络训练完成后,绘制出CNN 和本文算法在交通标志训练过程中的识别率和损失曲线。网络识别率随训练次数的变化曲线如图8 所示,训练开始后,当训练次数达到10 000 次时,CNN 和本文算法模型的识别率达到98%以上,但是本文算法在训练次数更少的情况下达到98%以上的识别率,当训练次数达到60 000 次时,本文算法的识别率较CNN 更高。以上仿真结果表明,在网络训练过程中本文算法可更快达到较高的识别率且其识别效果更好。

图8 训练时CNN和本文算法的准确率比较

CNN 和本文算法网络训练过程损失随训练次数的变化曲线如图9所示:本文算法训练的损失从网络训练开始时即在1以下,且在训练100次后下降至0.5以下;CNN 在训练10 000次后网络的损失才下降到0.5以下,且训练的整体损失较本文算法高。以上结果表明,在网络训练过程中,本文算法比CNN训练收敛更快,可有效缩短训练时间,具有更好的实时性和更高的识别率。

图9 训练时CNN和本文算法损失比较

3.4 模型性能分析

利用未经数据增强的训练集图像进行网络训练,根据训练模块采用CNN 和本文算法对经平移、旋转和缩放的测试图像进行识别,计算识别率,如表2所示:CNN网络由于池化层的存在会丢失图像部分空间特征,导致在识别任务中表现较为逊色,识别率下降约10%;本文算法中的CapsNet 网络结构未使用池化层,而是使用动态路由聚类进行图像分类,本文算法可获得图像底层空间特征信息且不丢失,使其能够更好地分类交通标志,其识别率基本没有变化,不受图像空间变换的影响。

为了验证ROI提取方法对交通标志识别的影响,比较加入提取ROI 前、后的识别率。结果表明,在不进行图像ROI提取的情况下,交通标志识别率为93.1%,经过提取图像ROI提取操作后,识别率可以达到97.2%,使用ROI提取方法可以很好地改善交通标志识别效果。

表2 图像空间变换的识别效果比较

在选择卷积层卷积核大小时,卷积核较大可以获取较多的特征值,但提取图像的参数较多。为测试CapsNet网络卷积层提取底层特征能力,通过设置5×5、8×8、9×9、12×12共4种不同大小的卷积核,经过训练后计算图像的识别结果,识别率分别为91.7%、92.4%、93.1%和92.7%,选择卷积核大小为9×9的卷积层最适合本文网络结构。

使用卷积核大小为9×9 的卷积层时本文算法不受空间变换的影响,具有较好的识别效果,且加入ROI 提取,减少一些无关特征提取,提高了识别率。

3.5 算法识别率比较

比较经典LeNet-5[11]、AlexNet[12]、GoogLeNet[13]、CNN、SVM 和本文算法的识别率。如表3 所示:LetNet 和AlexNet属于轻型卷积网络,结构简单,能够快速完成图像的识别任务,但其网络深度和图像特征的表达能力不足;GoogLeNet 和CNN 属于深层的卷积网络,深度特征具有很强非线性表达能力,但其网络需要很长的训练时间;本文算法网络训练时间较短,识别率最高。

表3 算法识别结果比较%

4 结束语

本文采用ROI 提取方法和利用胶囊网络提出了一种基于胶囊神经网络的交通标志识别算法,在一定程度上解决了传统算法在训练过程中的特征丢失、交通标志识别网络鲁棒性差和识别率低等问题。仿真测试结果表明:该算法在预处理和识别图像过程中能较好地检测交通标志所在区域,可有效提取图像ROI,提高弱光条件的查全率,增强鲁棒性;在训练阶段,由于本文算法网络结构简单,具有较快的训练速度,可缩短训练时间;相较于经典的LeNet-5、AlexNet、GoogLeNet、CNN 和SVM 算法,本文算法的识别率更优。目前采用的数据集较小,因此下一步工作是在庞大的数据集上验证网络的识别能力,同时改进胶囊单元间的路由算法,提高识别率。

猜你喜欢
交通标志识别率灰度
航空滤光片阵列多光谱图像条带灰度调整算法
基于双向特征融合的交通标志识别
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展
交通标志小课堂
我们欢迎你!