APP下载

基于图像处理和双BP神经网络的电气化铁路接触网立柱标识牌识别算法研究

2020-03-16彭乐乐钟倩文张慧玲

铁道标准设计 2020年3期
关键词:标识牌字符接触网

徐 蔚,彭乐乐,钟倩文,张慧玲

(上海工程技术大学城市轨道交通学院,上海 201620)

故障位置点定位是实现铁路维护及保养的前提,因电气化铁路接触网立柱标识牌具有唯一性,可以应用于轨道线路定位中,例如高速铁路[1]。随着机器视觉等现代检测技术的发展,基于轨检车的快速检测方法已经广泛应用于轨道维保中[2],急需一种快速、高识别率的电气化铁路接触网立柱标识牌识别算法,以实现故障位置定位。

目前针对接触网立柱标识牌识别方法多是采用智能算法来实现,李秋生等提出了一种基于LeNet-5卷积神经网络的接触网支柱标识牌的识别方法[1],该算法虽然能够实现对字符的识别,但并未考虑字符本身的特征提取及分类,使得算法的快速性有待提高。吴光龙等人利用支持向量机(SVM)实现对支柱标识牌的识别,但SVM是借助二次规划来求解支持向量,二次规划涉及矩阵计算,当矩阵阶数越大时算法运算耗时长,使得算法的实时性不高[3]。陈忠革等利用方向梯度直方图(HOG)和SVM相结合的方式来识别接触网标识牌,该方法首先采用HOG对字符进行特征提取并作为支持向量机的输入,但是通常需要根据数据人为地进行特征设计[4-5],因此该方法普适性有待提高。吴镜锋等提出基于卷积神经网络(CNN)和支持向量数据描述(SVDD)相结合的算法来识别标识牌,该方法虽识别精度高[6-7],但需要考虑不同的特征维数,算法较为复杂且运算速度慢。

为了实现接触网立柱标识牌字符快速及高效的识别,提出了一种基于图像处理和双BP神经网络的接触网立柱标识牌识别算法。首先,利用Hough变换对采集的图像进行支柱直线特征提取,得到支柱区域,减小识别范围;其次,利用形态学变换的方法实现对字符标识牌区域的获取;再次,为避免某些数字和字母的相似性造成识别率低的现象,采用平均绝对偏差算法对字母与数字进行特征提取,将提取的特征分别输入两个并行的BP神经网络进行训练和识别。最后,实验验证了算法的有效性,结果表明该方法精度可达98.3%,相较于传统识别方法速度提高了17%。

1 接触网立柱标识牌识别原理

图1给出了接触网立柱标识牌的识别过程,通过Hough变换获取接触网立柱特征实现支柱区域提取,以缩小识别范围,利用形态学变换方法获取字符标识牌区域,采用水平投影方法实现字符分割,基于两路BP并行的神经网络分别对字母和数字进行识别。

图1 方法流程

1.1 基于Hough变换的支柱区域提取

接触网支柱具有明显的直线特征,利用这一特征实现对支柱区域的提取,可以减小图片识别范围,提高识别速度。首先将相机采集的彩色图像转换成灰度图,灰度变换的公式[8]如下。

g(x,y)=0.299R(x,y)+0.587G(x,y)+

0.114B(x,y)

(1)

式中,R(x,y)为红色分量;G(x,y)为绿色分量;B(x,y)为蓝色分量;g(x,y)为灰度图像。

Sobel算子具有方向性且对噪声有平滑作用[9]。其基本原理是将图像与方向模板进行卷积,实现图像的边缘提取。因此,采用该算子对接触网支柱的边缘轮廓进行加强。典型Sobel算子具有两个大小为3×3的水平和垂直模板[10-11]

同时,利用式(2)对梯度的大小和方向进行计算

(2)

Hough变换能够实现直线检测。其基本原理是将图像空间中共线的点映射到参数空间,利用局部峰值检测出直线参数后映射回图像空间,即为直线检测结果[12]。在图像空间下一条直线表示为

y=kx+b

(3)

而参数空间下是将方程的常量和变量交换,即x和y作为已知量,k和b作为变量。但是图像空间的直线斜率会存在无穷大的情况,因此在图像空间中采用极坐标方程来表示,即

ρ=xcosθ+ysinθ

(4)

图像空间中的直线会在参数空间中形成相交的曲线,通过判断交点处的累积程度来完成直线检测[13]。在提取直线段时要不断通过改变Hough阈值(峰值数)n的大小来得到所需的直线段,当n设置为2时实现了支柱直线特征检测。接触网支柱区域提取的过程如图2所示。

图2 支柱区域提取过程

1.2 基于形态学的标识牌区域获取

形态学变换是利用一定的结构元素对图像进行结构化分析,具有有效简化图像数据,保持图像基本形状特性,同时除去不相干的结构的优势[14-15]。利用形态学这一特征可以实现立柱标识牌的获取。首先对支柱图进行灰度变换和边缘提取后,再利用形态学对图像作进一步处理。腐蚀运算具有细化和收缩物体,甚至可以消除结构元素小的像素块的优点[16]。图像经边缘提取后留下大量的白噪声,利用线型结构对标识牌图像进行腐蚀可以消除部分的噪声。但是图像经过腐蚀后,标识牌边缘区域出现不连续的现象。为消除这一特征,利用25×25的矩形结构元素进行闭运算,填充狭窄的间断处生成连通区域。图像经平滑轮廓后仍存在区域面积小于标识牌的干扰区域。利用Matlab仿真环境下的bwareaopen函数,根据标识牌区域的大小设置阈值p,将大面积区域保留的同时消除小面积干扰区域。当p=200时,即可得到相对准确的标识牌区域。接触网立柱标识牌获取过程如图3所示。

图3 立柱标识牌获取过程

1.3 基于像素水平投影的字符分割

字符分割是为了将标识牌上的一串编号切分开,方便后续对字符的识别。水平投影法具有算法简单,运行速度快的优点[17],能够满足本文对整套识别算法快速高效的要求。由于相机是连续拍摄,在采集的图像中可能存在支柱区域与整个图像像素比不完全相同的图像,因此裁剪出的标识牌可能存在不同程度的清晰度。考虑该算法的普适性问题,将两种远景和近景拍摄下的标识牌进行字符分割。两种不同状态下的标识牌如图4所示。

图4 不同状态下裁剪出的标识牌

在字符分割之前先将灰度图进行二值化。利用Matlab仿真环境下的im2bw函数将图片转换成字符区域为白色像素点,背景区域则为黑色像素点的二值图。对二值图进行水平投影,通过统计每行白色像素,投影图上会呈现明显的波峰波谷特征。若出现波谷,即白色像素统计值为0的行就是字符的切割点。利用Matlab得到水平投影如图5所示。

图5 白色像素水平投影

从图5(a)和图5(b)中均可以看出有3个独立且连续的波形图,而标识牌是一串三位数的字符,因此这3个独立的波形图就是字符区域,3个波峰之间均存在两处明显的像素统计值为0的区域。说明标识牌的清晰程度不同对该切割算法造成的影响可以忽略。从图5(a)中可以清晰地看出,横坐标在18~19行处以及33~34行处像素统计值都为0;图5(b)中的横坐标在40~45行以及79~81行像素统计值为0。

利用这一特征对字符进行分割,分割结果如图6所示。

图6 字符分割结果

1.4 基于双BP神经网络的字符识别

1.4.1 特征提取

字符识别需要对字符图像进行特征提取。因为特征提取能够提供图像中最具鉴别性的信息,而且可以减少识别算法的运算量,提高算法的识别速度[18]。

首先将所有字符图片进行归一化,通过统计200张字符(包括字母与数字)所在像素点与整个图像像素点之比,将数字图像划分为4×5的网格,将字母图像划分为5×5的网格最为合适。以往研究中,平均绝对偏差算法能实现对图像特征的快速提取[19]。因此,将该算法用于本文对标识牌字符的特征提取。该算法定义如下

(5)

式中,N为图像中像素的个数;m为图像像素的均值;f(x,y)为点(x,y)的像素值。对所有字符图像进行特征提取,分别得到数字为49字节的特征向量和字母为48字节的特征向量。整个特征向量被应用到神经网络中作为输入。

1.4.2 字符识别算法

由于标识牌字符的组成存在字母与数字的组合形式。为防止错误识别类似的数字和字母(如“0”和“O”“8”和“B”、“2”和“Z”),同时为提高识别成功率,加快运算速度,采用两个并行且具有相同结构的人工神经网络,实现对数字和字母进行分类。由于在特征提取后,字母与数字具有不同长度的特征向量。根据这一特点能将字符与数字明显区分,并分别输入各自的网络中进行识别。

BP神经网络具有较强的容错能力和泛化能力等优点[20,21],因此利用该网络作为标识牌字符识别的方法。本文采用三层BP神经网络,结构如图7所示。

图7 并行BP神经网络的结构示意

鉴于两个神经网络的结构完全一样,所以对单个三层的BP神经网络进行原理分析。设神经网络有个神经元m,输入为xi,隐藏层有个神经元s,隐藏节点为zt,输出层有个神经元n,输出节点为yi,输入层与隐藏层的权值为ωij,偏置为bt,隐藏层与输出层的权值为ωki,偏置为bj。

BP神经网络的信息是正向传播的。输入层中的每个神经元通过一系列权值被直接反馈给隐藏层神经元。在每个节点上计算权重和输入的乘积之和。同时计算值通过一系列权值直接反馈给输出层神经元。与隐藏层一样,在输出层的每个节点上计算权值与隐藏层神经元输出的乘积之和。首先选取初始权值为(-1,1)之间的随机数。隐藏层的输出、输出层的输出如下

(6)

(7)

若输出值与期望值之间的误差大于所设置的误差值,则网络会修改权重,使用新权重计算新输出。这个训练过程可以通过获得所有输入组合的期望错误率来完成。误差函数为

(8)

输出层的权值变化为

(9)

隐藏层的权值变化为

(10)

在神经网络训练的过程中,采用Sigmoid函数激活神经元。Sigmoid函数的定义为

(11)

同时,采用均方误差(MSE)函数测试网络的训练性能,训练停止的标准通常基于MSE,将MSE的值用于确定网络输出与期望输出的匹配程度。大多数情况下,当MSE下降到某个阈值时,训练则被终止。

2 识别结果及分析

为验证算法的正确率及快速性,通过摄像机采集了沪杭高速铁路段的接触网视频,从视频中提取了1 000张带有立柱标识牌的图片,其中包括1 750个阿拉伯数字和1 250个大写的英文字母,这些字符均已进行特征提取。同时,字符识别程序是在CPU为Intel Core i3-3110M,主频为2.4 GHz的华硕笔记本下的MATLAB中运行的。

设定本次训练的最小错误率MSE为0.001,当程序达到用户定义的最小错误率时停止迭代。字母集和数字集的迭代MSE结果如图8所示。

图8 字符集迭代MSE结果

从图8可以看出,在1 169次迭代中,字母训练达到最小错误率。在4 456次迭代中,数字训练达到最小错误率。最终2 948个字符被正确识别,识别率为98.3%,平均运算时间为108.3 ms,识别结果如图9所示。

图9 标识牌识别结果

为体现基于双BP神经网络并行的字符识别算法的准确性和快速性,与传统的4种标识牌识别算法在相同运算环境下进行比较。标识牌的识别结果对比如表1所示。从表1可以看出,LeNet-5卷积神经网络和双BP神经网络的识别速度相对来说较快,由于本文字符的识别是在两路并行的网络下实现的,因此运算速度相较于LeNet-5卷积神经网络来说更具优势,提高了17%。从识别率来看,支持向量机和HOG与SVM结合的算法识别率不高,均低于90%。而在其他3种识别效果较优的方法中,双BP神经网络并行算法的识别精度最高,达到了98.3%。分析原因在于双BP神经网络的字符识别方法是将字母与数字分开识别,因此改善了字符与字母相似而造成的错误识别的问题,提高了识别精度。

表1 标识牌识别方法对比

3 结语

对接触网标识牌的识别为轨检车提供了一种智能化的轨道故障定位方法。为验证该识别方法的可靠性,将该方法应用于沪杭高速铁路段的线路检测中。首先,针对从接触网视频中提取出的带有立柱标识牌的图片,利用Hough变换提取支柱区域、通过形态学得到标识牌区域、利用白色像素水平投影实现字符分割与提取。其次,将字母与数字提取特征向量作为神经网络的输入。最后,利用两个并行的BP神经网络实现对标识牌的识别。实验结果表明:与传统标识牌的识别方式相比,该算法速度提高了17%并且识别精度达到了98.3%。因此,该算法具有识别速度快且准确率高的特点,适合将其应用于自动轨道巡检系统中。

猜你喜欢

标识牌字符接触网
南方沿海地区电网标识牌褪色模糊机理分析
BIM技术在电气化铁路接触网中的应用研究
为开通打下基础!这条国际铁路完成接触网平推验收
浅述如何做好高速铁路接触网施工监理工作
中老铁路两国同步架设电气化接触网第一线
论高级用字阶段汉字系统选择字符的几个原则
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
国内旅游景点韩文标识牌的翻译问题研究