金炳瑞,牛宏侠,侯涛
(兰州交通大学光电技术与智能控制教育部重点实验室,甘肃兰州730070)
改进Hough变换在直线铁轨图像边缘检测研究
金炳瑞,牛宏侠,侯涛
(兰州交通大学光电技术与智能控制教育部重点实验室,甘肃兰州730070)
针对铁路轨道数字图像处理中直线铁轨检测的快速有效问题,提出一种改进Hough变换直线铁轨检测方法。首先对图像进行小波提升,用经典的边缘检测LoG算子进行图像的边缘检测;然后计算图像空间直线斜率重叠度来快速检测出直线;最后将图像转换到参数空间,计算局部极大值点,检测出直线。通过大量的仿真实验证明了该方法对直线铁轨检测的有效性和实用性。
Hough变换;边缘检测;小波处理;直线检测
【本文献信息】金炳瑞,牛宏侠,侯涛.改进Hough变换在直线铁轨图像边缘检测研究[J].电视技术,2015,39(10).
图像边缘是图像中两个不同属性区域的交接处,是图像属性发生突变的地方,是图像中信息最集中而不确定性最大的地方,图像的边缘包含着丰富的信息。目前,对直线边缘的检测有很多方法,比如Radon检测法、Hough检测法、概率Hough变换PHT[1](Probabilistic Hough Transform),以及该进的随机Hough变换RHT[1](Randomized Hough Transform)等。这些方法的优点是抗噪能力强,能在信噪比较低的情况下检测出直线,但其计算复杂,存储空间大。针对铁路直线钢轨的边缘检测,传统的Hough变换[2-3]在对铁路钢轨和枕木都存在的图像中不能清晰地检测出钢轨,往往受到背景枕木图像的干扰。基于铁路轨道图像的直线特征,本文结合Prewitt算子、Sobel算子、LoG算子、Canny等边缘检测算子[4-6]处理结果对比分析,提出一种改进Hough变换直线铁轨检测新方法,可以有效地减少枕木噪声影响,快速有效地检测出直线铁轨。
图像边缘检测是检测图像中物体与背景在某种图像特性上的差异,这种差异包括灰度、颜色和纹理特征;边缘检测就是检测图像中发生这些差异特征的位置。为了有效地检测出直线铁轨,首先使用小波变换对原始图像去噪,滤除高频铁轨枕木边缘,在此基础上用MATLAB中edge函数,结合经典的图像边缘检测算子对灰度图像进行边缘检测,其处理结果如图1所示。
从图1处理结果可以看出,各检测算子处理结果各不相同[7]:Prewitt算子对铁轨枕木即周围强噪声不能很好地滤除;Sobel算子对枕木及其他噪声处理得较好;LoG算子首先能平化掉铁路枕木及其周围环境噪声,再进行铁轨边缘检测,所以效果更好;Canny算子不容易受噪声干扰,能够检测枕木的弱边缘。所以,本文选用LoG算子作为图像边缘检测算子。
图1 不同检测算子检测结果
2.1传统Hough直线检测
霍夫(Hough)变换是利用点与线的对偶性,将原始图像空间的曲线转化为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题[7]。其基本原理如图2所示,将图像空间直线方程
用公式
转换到参数平面空间,此时参数平面为(ρ,θ)平面。
图2 Hough变换的基本原理
由于传统的Hough变换运算复杂、计算量大[9]、定位精度低等问题,直接影响系统的处理速度和精度。为此,提出一种改进的Hough变换直线检测方法,快速有效地检测出图像空间的直线边缘。
2.2改进的Hough直线检测
将LoG算子检测出的图像边缘点作为检测的特征点[1,10]。如图3所示,这些像素点组成的图像边缘可以分为两类[11],一类是直线边缘,一类是曲线边缘。对这些目标边缘像素点进行改进Hough直线检测。
图3 目标像素点与检测直线斜率关系
若由m个特征点组成图像空间[1,9-10]
找到一个种子特征点p0(x0,y0),则p0(x0,y0)点与相异的点pi(xi,yi)两点之间的斜率关系为
为通过点p0(x0,y0)的直线斜率ki的重叠度ci的最大值设置存储空间标志位Qi(0<i≤m),并设初始值为0。对于直线边缘像素点,如图3a所示,存在多个点在同一条直线上,如第一行的8个目标像素点都在同一条直线上,即它们两两所在的直线是重合的,有相同的斜率k0,这8个像素点斜率重叠度为即k0斜率的重叠度为28。由图3a可知斜率k1的重叠度为c1=c23=3,斜率k2的重叠度为c2=3,斜率k3的重叠度为c3=28,以此类推,算出所有通过点p0(x0,y0)直线斜率的重叠度ci。对重叠度进行比较,设置阈值t1,有
斜率重叠度大于阈值,其对应的存储空间标志位设置为1;如果重叠度小于阈值,则置为0。如果两直线间的斜率差值Δk<0.05,认为两斜率为同一条直线斜率。
对于曲线边缘像素点如图3b所示,用和直线边缘像素点相同的方法,明显看到曲线边缘像素点之间的斜率重叠次数远小于直线边缘像素点之间的斜率重叠次数。在整个边缘像素点中,设定斜率重叠次数阈值,就可以将曲线边缘点排除,只检测出直线边缘点。
对于斜率无穷大的直线,即x0=xi,斜率计算公式就失去意义。
在图3a中,第一列有8个像素点组成直线,其斜率k4=∞,这8个像素点两两之间的斜率重叠次数c4为28,此时,只需检测出相同x0点的边缘像素点的个数,就可以检测出它们所在直线的斜率重叠次数为28,避免用公式计算带来的不便。
找到直线斜率,用点斜式算出直线方程
将直线转换到(ρ,θ)平面,其实现流程如图4所示。
图4 直线检测流程图
传统Hough直线检测结果如图5所示。
图5 传统Hough变换直线检测
钢轨为主要检测对象,所以在实验仿真时,将检测直线的长度做了适当的选取,对枕木部分及不必要的边缘直线做了必要的忽略,以便更清楚地显示铁路钢轨的检测直线。但是,检测结果不理想,不能完全排除枕木影响。下面对两幅铁路轨道图片用本文改进方法进行直线检测,第一幅图像的各阶段检测结果其结果如图6所示,第二幅检测结果如图7所示。
图6 本文改进方法处理结果
图7 本文改进方法处理结果
通过仿真实验结果,可以看出在用传统的Hough变换检测轨道直线时,由于轨道和枕木的灰度值相差不是很大,对轨道边缘直线检测形成干扰,轨道直线检测过程中也将枕木等高灰度值的边缘也检测出来,不能很好地凸显轨道边缘直线。然而,用本文改进的Hough直线检测结果可以看出,轨道边缘直线提取效果发生了很大的改观,经过小波提升,可以很好地去除轨道枕木对检测结果的影响,同时也看到改进后Hough变换的直线提取效果很好,能够清晰地提取出轨道直线边缘。
改进的Hough直线检测也提高了处理速率,与传统Hough检测方法作对比,结果如表1所示。文中所有仿真都是在Windows XP(SP3),MATLAB7.1环境下得到。
表1改进Hough直线检测与传统Hough直线检测速率对比
针对直线铁轨边缘检测问题,提出一种改进Hough变换参考文献:
的直线检测方法,通过小波处理,有效去除了图像中的高频噪声(铁路枕木),减少存储空间。通过计算图像空间目标像素点所在直线的斜率重叠度,得到图像空间的直线方程,能快速有效地检测图像直线边缘。该方法也可以应用到具有直线特征的人造建筑物的直线检测。
[1]卢惠民,郑志强.一种新的用于检测直线的快速Hough变换[J].计算机应用,2005,25(10):2375-2380.
[2]孙明.数字图像处理与分析基础——MATLAB和VC++实现[M].北京:电子工业出版社,2013.
[3]陈超.MATLAB应用实例精讲:图像处理与GUI设计篇[M].北京:电子工业出版社,2011.
[4]李睿,武晓春.基于数字图像处理的直线型铁轨的自动识别[J].电视技术,2014,38(3):167-169.
[5]何俊峰.基于视觉原理的图像边缘检测算子研究[D].武汉:华中科技大学,2006.
[6]黄锋华,刘琪芳,冀金凤.基于MATLAB数字图像边缘检测算子的研究[J].机械工程与自动化,2011,167(4):48-50.
[7]赵芳,栾晓明,孙越.数字图像几种边缘检测算子检测比较分析[J].自动化技术与应用,2009,28(3):68-72.
[8]赵小川,何灏,缪远诚.MATLAB数字图像处理实战[M].北京:机械工业出版社,2013.
[9]段汝娇,赵伟,黄松岭,等.一种基于改进Hough变换的直线快速检测算法[J].仪器仪表学报,2010,31(12):2774-2780.
[10]孙金彦,周绍光,陈超.基于改进的Hough变换提取影像边缘[J].计算机与数字工程,2013,41(9):1501-1504.
[11]顾嗣扬,施鹏飞,李介谷.一种基于直线Hough变换的识别曲线及参数估计方法[J].模式识别与人工智能,1994,7(1):15-20.
金炳瑞(1988—),研究生,主要从事智能信息处理研究;
牛宏侠(1978—),女,副教授,主要从事交通信息工程及控制研究;
侯涛(1975—),副教授,主要从事智能控制与智能信息处理研究。
Study of Straight Line Rail Image Edge Detection Based on Improved Hough
JIN Bingrui,NIU Hongxia,HOU Tao
(Key Laboratory Opto-Electronic Technology and Intelligent Control,Ministry of Education,Lanzhou Jiaotong University,LanzhouChina,730070)
Aiming at the problem of fast and effective linear rail detection in railway track digital image processing an improved Hough transform algorithm is proposed.Firstly,makes wavelet promote for image,use the classical edge detection LoG operator for image edge detection,then it calculates the image spatial overlapping straight slope degree to quickly detect the straight line.Transform the image into the parameter space,calculate local maximum value point and detect the straight line.A lot of simulation experiments show the method’s effectiveness and practicability for linear rail detection.
Hough transformation;edge detection;wavelet process;straight line detection
TN911.73
A
10.16280/j.videoe.2015.10.004
时雯
2014-07-31
甘肃省自然科学基金项目(1308RJZA116);甘肃省高等学校科研项目(2013A-051);兰州交通大学科技支撑计划项目(ZC2013004)