城轨列车受电弓滑板边缘检测算法研究
2021-02-23温明亮喻智霞
温明亮,孙 悦,喻智霞,徐 文,张 永
(1. 广州地铁集团有限公司,广州 510330;2. 南京理工大学 自动化学院,南京 210094)
城轨列车运行过程中,需要通过受电弓从接触网中获取电能,驱动列车前进[1],滑板安装在受电弓顶部,与接触网接触,是列车取电装置的核心部件之一。滑板的厚度是受电弓服役性能的重要指标,也是列车维护保养中需要定期检查的关键项点。靠人工检测滑板厚度,测量精度差,劳动强度高,因此亟需研究受电弓自动检测技术,实现滑板厚度自动测量[2]。
近年来,非接触式图像检测由于具有不影响正线行车、较易满足限界安装要求及检测精度较高等优点,成为受电弓滑板厚度自动检测的主要方式[3-4]。师鹏燕[5]利用数字图像处理技术,设计实现了滑板图像的相关检测算法,对滑板的上下边缘进行检测和定位,利用相机标定算法计算相机的内外参数,带入图像中计算上下边缘的实际厚度,得到滑板的磨耗量;莫圣阳[6]采用3D结构光测量技术,研究滑板表面数据获取、数据滤波、曲线拟合等方法,获取滑板轮廓,根据特征点定位,计算滑板磨耗值;张辉等人[7]将Canny算子和多尺度小波相结合,实现了滑板边缘检测,具有定位精确、细节清晰等优点;曾攀等人[8]综合运用改进的Canny算法、Hough变换、BP神经网络等进行滑板边缘提取和上边缘搜索,实现滑板磨耗计算;陈叶健等人[9]对滑板原始图像进行滤波,采用自适应Canny算子检测滑板边缘,通过相机标定和曲线融合实现滑板剩余磨耗曲线绘制;与传统Candy边缘检测不同,Karaduman等人[10]提出了一种基于相关分析法的滑板检测方法;Capece等人[11]采用立体相机对机车受电弓进行检测,通过图像预处理、图像调节、深度图计算与3D重构等方法,实现滑板分割与磨耗分析。
目前已有的滑板图像处理方法多是基于像素级的边缘检测,为提高其检测的精度和鲁棒性,可以采用亚像素级算法对受电弓滑板的边缘进行高精度检测[12-13]。
1 像素级边缘检测
像素级边缘检测需要对获取的滑板原始图像进行预处理,使用高斯滤波去除噪声干扰,并对彩色图片进行灰度转换,对结果图像进行多尺度小波变换,获取不同尺度的边缘,利用Canny边缘检测方法对图像中的滑板进行阈值处理,获取滑板磨耗曲线及最低磨耗厚度,实现对滑板边缘的提取,具体步骤如图1所示。
图1 像素级边缘检测步骤
1.1 Canny算子
Canny算子主要步骤是经过梯度非极大值抑制后,进行双阈值法检测。为了提高边缘检测的精度,获取图像的实际边缘,需要对单边缘响应尽可能低。通过该检测方法得到的检测边缘存在不同程度的边缘问题,且无法获取不同尺度下的边缘信息。
1.2 小波边缘检测
小波边缘检测算子通过小波平滑函数,利用图像边缘信号的模值,在图像边缘信号突变处取得局部极大值或零点,提取一阶导数或二阶导数作为平滑函数,对边缘进行检测。小波边缘检测提取的边缘较为连续,且包含多尺度细节,但会导致边缘存在大量的冗余。
1.3 基于Canny算子的多尺度小波边缘检测算法
(1)利用小波变换,计算小波变化的模值及幅角;(2)对获取的不同尺度下的模值位置,利用Canny边缘检测算子中的高低阈值限,低阈值限的选择以高阈值限为准,为高阈值限的0.3倍;(3)经过阈值限的筛选,获取图像边缘像素集,同时搜索低阈值处理的集合邻域内的边缘像素,充实稀疏边缘。该方法优化了边缘细化的处理过程,提高了边缘检测精度。
2 亚像素级边缘检测
为进一步提高边缘检测精度,使用亚像素的边缘检测算法使检测精度由像素级提升至亚像素级。亚像素[14]是将像素这个基本单位再进行细分,是比像素更小的单位。传统的亚像素检测方法主要分为3类:矩方法[15]、差值法和拟合法。本文基于改进的Zernike矩方法实现滑板的亚像素级边缘检测。
2.1 Zernike矩定义
图像f(x,y)的n阶m次Zernike矩[16]定义为:
其中,m、n需满足n≥0,n-|m|为偶数,且n≥|m|;Vnm(ρ,θ)表示积分核函数。
2.2 Zernike矩亚像素边缘检测原理
假设某个单位圆的圆心位于图像中的一个像素点上,且图像边缘线穿过该圆,可建立理想的阶跃边缘模型,如图2所示。
图2 理想阶跃边缘
图中,k为阶跃灰度,h为背景的灰度,阴影部分的灰度值为h+k;l为圆心与边缘的垂直距离,φ为x轴和边缘垂线的夹角。
将图片顺时针旋转φ角度,使边缘线平行于y轴,如图3所示。旋转后的理想阶跃边缘模型的侧剖图呈现阶梯状,如图4所示。
设旋转后的图像为f′(x,y),由于该图像关于x轴对称,可得:
即可求得图中角度φ:
图3 旋转后的理想阶跃边缘
图4 理想阶跃边缘剖面
因为Zernike矩具有旋转不变性,因此若图片旋转φ角,旋转前后的Zernike矩幅值不变,只有相角改变,即A′nm=Anme-jmφ。A00、A11及A20对应的积分函数分别是V00=1,V11=x+jy,V20=2x2+2y2-1,结合图4,可以得到旋转后的各阶Zernike矩。
由公式(5)-(7)可以解得参数l、k为:
假设采用的模板大小为N×N,结合放大效应的修正,可以得到基于Zernike矩进行亚像素边缘检测的计算式:
其中,(xs,ys)是边缘的亚像素坐标值,(x,y)是图2中的原点坐标值。
3 试验与分析
3.1 受电弓滑板边缘处理结果
该试验采用广州13号线地铁的受电弓图,运用Matlab进行仿真[17],对受电弓滑板边缘进行检测。
在获取的受电弓图像中,旧滑板和新滑板分别如图5、图6所示。新的受电弓滑板表面相对光滑,而旧滑板表面会留下灼烧痕迹,或出现毛刺边,影响边缘检测算法的精度。
图5 旧滑板图像
图6 新滑板图像
像素级别的边缘检测结果如图7所示,像素点由绿色叉来表示。
图7 像素级滑板边缘检测效果
亚像素级别的边缘检测的结果如图8所示,像素点由蓝色圈表示。
将两种结果整合后,结果如图9所示,可看出像素级检测结果与亚像素级检测结果基本相同,但存在较小误差,这也导致最终的磨耗检测结果存在误差。
3.2 结果分析
为了验证上述算法的准确性,本文随机选取20个位置进行实际值测量和检测值提取,数据统计如表1所示。像素级检测值最大误差为1.32 mm,最小误差为0.17 mm,平均误差为0.48 mm,而亚像素级检测的最大误差是0.66 mm,最小误差为0.06 mm,平均误差为0.21 mm,从数据直观可得,亚像素级边缘检测的精度高于像素级边缘检测。
表1 不同像素级边缘检测结果统计
将像素坐标转换至实际坐标,得到像素级检测数据和亚像素级检测数据。将该图像对应的人工检测实际值、像素检测值和亚像素检测值进行对比分析,分析结果如图10、图11所示。
由图10可知,亚像素级算法检测获取的值介于实际值和像素级算法检测值之间,说明亚像素级检测在像素级检测的基础之上,对检测精度有了进一步提高。像素级检测值其整体误差在±1.5 mm以内,而亚像素边缘检测整体误差在±0.7 mm以内。
图10 不同像素级检测结果分布
图11 像素检测和亚像素检测绝对误差分布
由图11可知,亚像素级检测算法有效地减少了噪声对边缘计算的影响,尤其是噪声较大的情况下。在复杂边缘情况下,像素级检测算法往往会造成较大误差。
4 结束语
本文研究了受电弓滑板边缘检测的像素级算法和亚像素级算法,并基于广州地铁13号线地铁受电弓实际数据进行了试验。实验结果表明,亚像素级检测算法具有更高的检测精度,为受电弓健康度检测提供可靠依据。下一步研究中,可通过对多项式拟合边缘检测算法进行研究,并与本文算法相结合,进一步减小受电弓滑板边缘检测误差。