《武汉工程大学学报》  2018年03期 325-328   出版日期:2018-06-26   ISSN:1674-2869   CN:42-1779/TQ
基于线激光扫描成像技术的钢轨炉号识别算法


高速钢轨焊前检测识别是钢轨智能化生产的重要环节,对钢轨焊接生产线智能化管理有着长远意义。由于钢轨炉号字符颜色与背景接近、自身锈蚀污损、焊接生产线环境恶劣、炉号字符位置的不确定性等因素使各种常规的字符识别方法,如面阵相机拍照识[1-2]、热红外成像识别[3-4]等技术的可靠性受到了很大影响。字符识别常用的算法有单层神经网络方法[5-6]和模板匹配方法[7]及支持向量机(support vector machine,SVM)[8]等方法。但是单层神经网络收敛速度慢,容易出现过学习和欠学习等问题[9]。模板匹配法需要像素匹配,不容易获得理想的结果,而且运算时间长,无法满足实时检测的要求[10]。SVM算法在处理二类问题时效果很好,但在多类问题识别时存在困难,特别是涉及样本过多时会耗费大量系统时间[11]。针对这些问题,提出一种对钢轨进行非接触式激光扫描成像并识别炉号的方法。采用线激光实时扫描钢轨,通过钢轨轮廓数据点云重构字符图像,提取字符特征,再利用现有的字符模板结合多层感知分类器(multi-layer perceptron classifier,MLP)神经网络识别算法达到识别钢轨炉号的目的,提高了识别过程的自适应性和鲁棒性。1 数据采集钢轨炉号识别系统由图像采集、图像处理、字符识别三个部分组成。图像采集采用非接触式线激光传感器作为数据来源,钢轨沿着垂直于激光器安装平面方向移动,由激光传感器采集单帧钢轨轮廓,然后通过交换机上传至上位机进行数据处理并重构字符图像,工作原理如图1所示。图1中的线激光传感器采用加拿大LMI公司GOCATOR2000型二维激光传感器,该传感器在有效范围内的测量精度优于0.05 mm,全尺寸范围的扫描频率达180 Hz,每次扫描可获取1 300个有效数据,每个点位包含了当前点的X,Y坐标值及反射光强度值。当钢轨通过激光扫描区时,触发扫描动作,上位机实时采集钢轨两侧轨腰部分的廓型数据。2 图像处理2.1 图像重构将传感器采集的点云数据坐标和光强赋予色彩信息就可完成字符图像的重构过程[12]。由于受图1中传感器安装位置的影响,计算机采集到的轮廓图像会在轨头和轨腰部分呈现一个“断崖”式跳变,数据处理时可根据跳变点位置对数据进行取舍,剩余点即为轨腰部分有效数据。实际生产中钢轨炉号字符高度只占轨腰区域高度的1/3,为了减少数据量选取跳变点以下150至350个点范围内数据作为字符区域的有效数据。根据铁轨标准[13],钢轨轨腰区域实际轮廓为一圆心落在轨腰中心线的对称圆弧,由于炉号字符是轧制在轨腰表面,字符区域点到圆心的距离D与其他部分到圆心的距离R不同,通过这个方法可以将轧制的字符所在位置筛选出来。具体步骤如下:步骤1:根据圆的标准方程和字符区域两个端点A1(X1,Y1),A2(X2,Y2)及半径大小R可以求出两个圆心坐标C1和C2。圆的标准方程格式为:[(x-x1)2+(y-y1)2=R2(x-x2)2+(y-y2)2=R2] (1)步骤2:任选字符区域的一个点A3(X3,Y3),根据两点之间的距离公式[d=(x-x3)2+(y-y3)2] (2)分别求出C1,C2到A3的距离d1,d2,并与半径R比较,得到圆心坐标C0(X0,Y0)。步骤3:计算所有字符有效区域内的点An(Xn,Yn)与C0(X0,Y0)之间的距离dn,得到dn与R的差值,当差值大于预设值Δ时,即[ΔR-(xn-x0)2+(yn-y0)2] (3)当前的点An(Xn,Yn)即为钢轨炉号字符的点。其中Δ的值为钢轨字符凸起部分高度(Δ=0.35 mm)。步骤4:将字符区域所有点和与之对应的光强度大小赋予色彩信息,即大于等于Δ的点灰度值赋值为0,其余点灰度值赋值为255,最终形成字符图像。采用C#开发平台开发了用于点云数据重构的软件,图像重构过程如图2所示。采用上述步骤重构得到的字符图像如图3所示。2.2 图像预处理从图3中可以看出字符图像中包含较多椒盐噪声[14],出现位置与频率都不固定,均值滤波和高斯滤波效果较差。采用中值滤波作为图像平滑过滤器,通过调用HALCON的median_image算子实现图像滤波,该算子由滤波器大小W决定图像处理效果,其原理如式(4)所示。[gr,c=median(i,j)∈W(gr-i,c-j)] (4)其中,[gr,c]为中值滤波处理后W窗口内所有点的灰度值,窗口的选择决定了图像滤波后的效果。图4是采用不同窗口大小的中值滤波器进行处理的结果。从图4中可以看出,3×3滤波器去除了部分噪声,且保留了字符边缘,但是对于噪声面积过大的长条状噪声、片状噪声处理效果有限。5×5滤波器去除了大部分噪声,保留了字符边缘数据,不会降低字符边缘锐利程度,很大程度保留了字符特征。7×7滤波器去除了绝大部分噪声,但是降低了字符边缘的锐利程度和不同字符之间的特征差异,为后期做图像阈值分割及特征向量提取带来了困难。因此选择5×5滤波器作为图像平滑滤波,可以有效去除钢轨自身锈蚀及传送辊轴的轻微扰动产生的噪音。中值滤波后,图像中很多点的灰度值发生了变化。为了获得更清晰的字符图像,需要对中值滤波处理之后的图像进行动态阈值分割。图像阈值分割是将图像处于某一灰度范围内所有的点筛选到输出区域A,A内所有点[gr,c]的集合为:[A={gr,cgmingr,cgmax}] (5)为了筛选感兴趣区域(Region of Interest,ROI),一般取[gmin]=0或[gmax]=255,由于重构图像时,字符有效区域位置的灰度值为0,所以选取gmin=0。要获得最佳图像分割质量,首先要计算整个区域的平均灰度值,公式如式(6)。[gr,c=1r ·cn=1rm=1cgn,m] (6)由式(6)计算得,图4中5×5滤波后图像平均灰度值[gr,c]为205.4。由于字符有效区域的灰度值比整个图像的平均灰度值要低的多,图像的灰度特征中的两个峰值为0与255,直接使用阈值分割会导致字符边缘的信息被去除或者保留的冗余边界信息过多,而动态阈值分割可以避免边缘信息冗余的问题。动态阈值分割通过调用HALCON的dyn_threshold算子实现,在ROI选择时选择“dark”部分,得到的处理结果如图5所示。从图5中可以看出经过动态阈值处理之后的字符图像,去除了不需要的背景色,同时极大的保留了字符边缘信息,但其中还是包含一些不需要的干扰,仍需要进一步处理。2.3 形态学处理开运算是先腐蚀后膨胀的处理操作,能够去除小杂点,平滑字符边缘,原理如式(7):[A?B=(A?B)B] (7)式(7)表示A与结构元B平移之后的并集,不同大小和形状的结构元B对图像A有不同的影响。图6是选择不同结构元对图4进行开运算操作的结果。从图6中可以看出,当结构元过小时,杂点大小远超过结构元,开运算结果较差,不予考虑。当结构元为矩形,大小为3×3和5×5时,对图像杂点去除有一定的效果,但是对面积较大区域杂点的处理效果并不明显。而结构元为半径为5的圆时,图5中的杂点基本去除,但因结构元面积过大,对字符连接区域过腐蚀,造成字符断裂,对后期特征提取带来困难。结构元为半径为3的圆,在保留字符特征的前提下,去除了图5中绝大多数干扰部分,而且平滑了区域边界。因此使用半径为3的圆作为结构元对图像开运算操作可以得到较佳的效果,开运算操作通过调用HALCON中的opening_circle算子实现。2.4 字符分割形态学处理完成后,图6中使用半径为3的开运算的图像字符仍为整体,需把每一个字符分割出来,舍弃不需要部分,并且提取每个字符特征。HALCON中具体的字符分割操作步骤如下:步骤1. 调用connection算子计算图中联通区域,将整个字符图像分成多个联通的小region。步骤2. 调用select_shape算子,计算并提取每个连通区域不同的特征向量大小,通过区域面积area值和高度height值将字符region筛选出来。步骤3. 调用gen_empty_obj算子建立空容器,调用select_obj算子将字符region从左至右置于容器中。步骤4. 调用sort_region算子将数组排列,最终的分割结果如图7所示。3 字符识别字符分割之后炉号字符图像变成多个字符区域,使用多个类型线性变量分类器—多层神经网络分类器能够对单个区域进行识别操作。将字符分割时提取的特征向量输入一个三层OCR神经网络分类器做分类识别,步骤如下:Step 1. 调用HALCON中read_ocr_class_mlp算子,使用系统内 “document 0-9A-Z”字符模板库。Step 2. 将字符面积、字符图像重心、字符投影直方图等特征向量作为输入层输入隐含层,使用sigmoid激活函数[f(x)=11+e-x]做权值量化[15]。Step 3. 调用HALCON的do_ocr_multi_class_ mlp算子,比较权值计算结果,返回每个字符的置信率。Step 4. 根据置信率大小判断识别字符是否有误,调用area_centre算子计算字符行列坐标,最后将识别后的字符显示在原图中,效果如图8所示。4 结 语采用非接触式线激光扫描成像技术的钢轨炉号识别系统,实现了高速钢轨焊前炉号的自动采集及识别,结果表明使用激光扫描成像与多层神经网络分类器识别方法结合可以有效的处理钢轨因污损、锈蚀而导致的炉号误读问题,单次识别率达到96%以上,极大地降低了劳动强度,提高了生产效率。