閆懷仁,楊慕升
?
基于改進(jìn)的Hough變換的直線提取算法
閆懷仁,楊慕升
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255049)
Hough變換的運算精度及其運算速度,在高速、高精度工作環(huán)境下具有重要的意義,提出了一種改進(jìn)的Hough變換的直線提取算法。通過對零件圖像預(yù)處理、改進(jìn)的Hough變換處理,實現(xiàn)了快速、高精度地軸類零件輪廓直線的檢測。利用C++編程,采用OpenCV,針對某軸類零件軸徑的非接觸檢測,實現(xiàn)了改進(jìn)的Hough變換的直線提取算法。
Hough變換;軸類零件;邊緣檢測;直線檢測
軸類零件是機(jī)械工業(yè)中極為常見的零件之一,其幾何尺寸及精度不僅直接影響機(jī)械運動的性能、使用壽命,且對減少能源消耗與環(huán)境污染等有重要影響[1]。對軸類零件尺寸的傳統(tǒng)檢測一般是人工用手持尺類測量工具來實現(xiàn)的。人工檢測不僅易受情緒、操作方法、儀器精度環(huán)境等多種因素的影響,難以保證檢測的質(zhì)量,而且不能適應(yīng)現(xiàn)代工業(yè)生產(chǎn)現(xiàn)場在線檢測、實時控制的要求[2]。隨著圖像測量技術(shù)在國內(nèi)外的飛速發(fā)展,該技術(shù)已廣泛應(yīng)用于幾何量的尺寸測量、航空遙感測量、精密復(fù)雜零件微尺寸測量和外觀監(jiān)測、光波干涉圖、應(yīng)力應(yīng)變場狀態(tài)分布圖等和圖像有關(guān)的技術(shù)領(lǐng)域[3]。
軸徑是軸類零件的重要尺寸,為了從軸類圖像中求得軸徑大小,應(yīng)獲得軸類零件輪廓線的間隔,因而,如何得到軸類零件的輪廓線成為獲得軸徑大小的關(guān)鍵技術(shù)。直線擬合、Hough變換是國內(nèi)外近年來檢測輪廓線直線的常用的方法,直線擬合對噪聲很敏感,當(dāng)已知數(shù)據(jù)點附近存在噪聲時,擬合誤差較大,導(dǎo)致檢測直線精度低。由于良好的魯棒性及抗干擾性,Hough變換[4]已成為模式識別中提取直線的一個常用的重要的工具。然而,Hough變換容易產(chǎn)生虛假直線,導(dǎo)致其檢測精度低,另外,Hough變換運算速度較慢,因而,Hough變換未能廣泛地應(yīng)用于有著高實時性、高精度要求的領(lǐng)域。針對于Hough變換的不足,隨機(jī)Hough變換及其改進(jìn)算法被提出,然而,由于隨機(jī)Hough變換的不確定性的特點,以及受噪聲干擾較大,因而,隨機(jī)Hough變換不適于高精度尺寸檢測的場合。
在實際生產(chǎn)中,往往需要在夜間對軸類零件進(jìn)行測量,由于夜間光照強(qiáng)度不足以及對比度差,即使采取補光措施,使用傳統(tǒng)攝像工具所采集到的圖像成像質(zhì)量較低,在后續(xù)檢測輪廓線時,往往產(chǎn)生虛假直線,造成檢測誤差。因此,采用紅外成像技術(shù),對零件進(jìn)行圖像采集。
為了提高Hough變換的運算精度及其運算速度,本文提出了一種改進(jìn)的Hough變換提取直線的算法。通過對一類回轉(zhuǎn)體零件軸徑的檢測,驗證了該算法的可行性。
Hough變換的基本思想[5]是,利用圖像域與參數(shù)域的點與線的對偶原理:
設(shè)直線方程為:
=+
同一條直線上的點(0,0), (1,1), …, (x,y)可以確定唯一的、,將圖像上離散的點的坐標(biāo)作為已知量求未知量、,所以直角坐標(biāo)系下的直線=+在參數(shù)空間表示為點(,),然而,該方法不適用于不存在斜率的直線,因而將參數(shù)空間坐標(biāo)表示為極坐標(biāo)下的=cos+sin,為原點到直線的距離,為直線與軸的夾角。圖像域中的一個點(0,0),在極坐標(biāo)下變換為一條正弦曲線,同一條直線上的點在極坐標(biāo)空間下正弦曲線的交點即為要求的、。在實際應(yīng)用中,通常將參數(shù)空間離散化成一個累加器陣列(,),按照極坐標(biāo)方程,將圖像空間中的每一點(,)映射到參數(shù)空間對應(yīng)的一系列累加器中,將對應(yīng)的累加器加1。如果圖像空間中存在一條直線,則參數(shù)空間中有一個對應(yīng)的累加器出現(xiàn)局部最大值。通過檢測這個局部最大值即可確定與該直線對應(yīng)的一對(,)參數(shù),從而檢測出直線。
傳統(tǒng)Hough變換盲目性大,導(dǎo)致其存在巨大的計算量及低的算法效率,反應(yīng)在處理結(jié)果上,則為檢測速度慢,容易出現(xiàn)直線錯檢、漏檢的情況。
圖1為采集到的零件的原始圖像,該零件為一個階梯軸,為了測量該軸的最大軸徑,對圖1進(jìn)行傳統(tǒng)的Hough變換,檢測結(jié)果如圖2所示,所用時間為7296ms。分析圖2發(fā)現(xiàn),經(jīng)典的Hough變換可以檢測出最大軸徑段軸的輪廓線如圖2中①所示,然而所用時間較長且存在過多虛假直線,不利于后續(xù)檢測軸徑大小。傳統(tǒng)Hough變換不能應(yīng)用于高速、高精度工作環(huán)境。
為提高Hough檢測的運算速度,常見的方法有多分辨率Hough檢測、極角約束Hough檢測[6]。前者通過對圖像分辨率由粗到細(xì)的處理來減少參與Hough變換中“投票”的點的數(shù)量來提高速度,然而,這種處理方法會造成圖像邊緣模糊,檢測精度則大大降低;后者是通過針對應(yīng)用對象的特點,限定極角變換的范圍,從而減少計算量,然而,對于極角范圍不確定的應(yīng)用對象,該方法并不適用?;谝陨蟽煞N思想的啟發(fā),本文采用一種多分辨率投票的方法:先由較大的離散化極角值D1投票,根據(jù)參數(shù)空間的峰值確定出極角范圍?(1,2)及距離范圍?(1,2),然后采用較大的離散化極角值D1在極角范圍?(1,2)中對每個特征點進(jìn)行計算,對于計算結(jié)果處于(1,2)內(nèi)的點進(jìn)行投票。該處理方式不僅可以極大地減少計算量,而且可以有效地區(qū)分開累加器中的有效峰值與噪聲峰值,避免了錯檢與漏檢,從而大大提高了直線檢測精度。算法流程圖如圖3所示。
圖1 原始圖像
圖2 傳統(tǒng)Hough變換檢測到的直線
圖3 改進(jìn)的Hough變換檢測算法流程圖
Fig.3 The flow chart of improved Hough transform
由于CMOS元件本身存在缺陷以及拍攝現(xiàn)場干擾,拍攝出的圖像中存在有噪聲。噪聲的存在會使Canny檢測處理時產(chǎn)生無用的邊緣信息,增加Hough變換的時間且影響檢測精度,因而應(yīng)首先對圖像進(jìn)行去噪聲處理。圖像平滑是一種消除圖像噪聲的常用方法,是為了適應(yīng)人類視覺系統(tǒng)的生理接受特點而設(shè)計的一種改善圖像質(zhì)量的一種方法,其處理對象是在圖像生成、傳輸、處理、顯示等過程中受到多種因素擾動形成的受污圖像[7]。
為了有效地去除圖像中存在的噪聲并且保留輪廓信息,本文算法采用的是中值濾波器濾波。中值濾波器是一種非線性的濾波器,在保留圖像更多的輪廓信息的同時能有效地抑制脈沖干擾和圖像噪聲[8]。
為了從圖像中得到目標(biāo)物體,最常用的方法是對圖像進(jìn)行二值化處理。常見的二值化算法分為兩種,一種是全局閾值算法,另一種是局部閾值[9]算法。本文采取的二值化算法為全局閾值迭代法,其核心思想為:
2)初始閾值將圖像分為目標(biāo)區(qū)域與背景區(qū)域,分別統(tǒng)計這兩個區(qū)域的像素個數(shù)o、b,分別計算出目標(biāo)區(qū)域與背景區(qū)域的平均像素值o、b:
通過全局閾值迭代法得到了較為理想的零件二值化圖像,然而,由于采集圖像時光照較強(qiáng),零件中間出現(xiàn)一條灰度較大的光帶,經(jīng)迭代法處理后,光帶未能消除,若此時進(jìn)行Canny檢測,中間光帶處會產(chǎn)生虛假輪廓,影響Hough變換檢測直線的精度。通過填充上下輪廓之間區(qū)域的方法消除中間光帶,處理結(jié)果如圖5所示。
圖像的邊緣是圖像的最基本特征[10],由于圖像的邊緣通常含有大量重要信息,因此,邊緣檢測成為圖像處理的—個重要環(huán)節(jié)。在經(jīng)典的邊緣檢測方法中,常用的一階微分算子有Robets算子、Prewwits 算子、Sobel算子等。對噪聲較敏感,抗干擾性能差,且邊緣的精度有待提高。Canny算子是一類最優(yōu)邊緣檢測算子,具有較好的邊緣定位能力和抗噪性能[11]。圖6為Canny檢測后的圖像。
為提高Hough變換的檢測速度和精度,本文采用多分辨率投票的方法。傳統(tǒng)的參數(shù)空間變換的方法在粗投票中確定極角、距離的變化范圍時,計算量大,占用的存儲空間大,算法實現(xiàn)復(fù)雜。將二值化圖像中的點依次做變換域的計算,在圖像空間繪制出將每一個特征點所對應(yīng)的正弦曲線并進(jìn)行累加,如圖7所示,圖像空間中某店像素的灰度值越高,說明該點對應(yīng)參數(shù)空間中的直線通過點數(shù)越多,通過閾值化處理即可濾除噪聲,即可確定出極角、距離變化范圍,即新的累加器空間。通過對二值化圖像中的特征點在新的累加器空間進(jìn)行投票,從而可檢測出大徑的直線。
以工業(yè)300萬像素的CCD做圖像數(shù)據(jù)采集設(shè)備,采用C++語言進(jìn)行算法設(shè)計,基于OpenCV對某軸類零件進(jìn)行試驗,軸的大徑為59.50mm(工控機(jī)的系統(tǒng)硬件配置:CPU E3300主頻2.50G,內(nèi)存1.0G)。結(jié)果如表1。
分析表1可知,在同樣的圖像分辨率下,本文算法所用時間遠(yuǎn)小于標(biāo)準(zhǔn)Hough變換所用時間;針對于不同分辨率的圖像,同樣算法的處理時間不同,隨著分辨率的增加,算法所用時間也隨著增大;處理圖像的分辨率越大,檢測到的零件尺寸越精確。為了同時保證算法處理的速度和精度,選用圖像分辨率為640×480。
圖8為未加入噪聲的零件圖像,圖9為加入椒鹽噪聲的零件圖像,分辨率均為640×480,分別對圖8、圖9用本文算法以及直線擬合的方法進(jìn)行大徑檢測,檢測結(jié)果如表2所示。
分析表2可知,對于同一處理對象,直線擬合所用時間略短,但檢測精度較低。綜合考慮到速度和精度,本文算法更適于工業(yè)的實時性與高精度的要求。
圖10、圖12為兩種軸徑大小不同的軸,圖11為采用本文算法對圖10處理而檢測到的直線效果圖;圖13為采用本文算法對圖12處理而檢測到的直線效果圖。
分析表3可知,對于不同軸徑大小的應(yīng)用對象,均可較精確地檢測到軸徑大小,所用時間均比傳統(tǒng)Hough變換檢測直線所用時間短很多。
圖14為采用紅外技術(shù)采集到的零件圖像,圖15為零件4的處理結(jié)果,其中,灰色線為檢測到的輪廓線。分析表4可知,本文算法對軸類零件的紅外圖像進(jìn)行處理,所用時間比標(biāo)準(zhǔn)Hough變換所用時間短,檢測到的軸徑尺寸與實際尺寸相差不大,滿足精度要求。
圖16為本文算法檢測直線效果圖。通過分析表1、表2、表3、表4與圖15、圖16可知,對于可見光圖像與紅外圖像,本文算法均可以準(zhǔn)確快速地提取出目標(biāo)輪廓直線,且不受零件大小限制,滿足工業(yè)實時性與高精度的要求。
圖4 全局閾值迭代法處理后
圖5 消除光帶后的二值化圖像
圖6 Canny檢測出的輪廓圖
圖7 特征點對應(yīng)的正弦曲線累加圖
表1 檢測結(jié)果對比
表2 檢測結(jié)果對比
圖8 未加入噪聲的圖像
圖9 加入噪聲的圖像
表3 檢測結(jié)果對比
圖10 零件2
圖11 零件2的處理結(jié)果
圖12 零件3
圖13 零件3的處理結(jié)果
表4 檢測結(jié)果對比
圖14 零件4
圖15 零件4的處理結(jié)果
圖16 本文算法檢測直線效果圖
實驗結(jié)果表明,針對于同一零件尺寸檢測,相比于傳統(tǒng)的Hough檢測、曲線擬合算法,改進(jìn)的Hough檢測算法大大提高了檢測直線的精度與速度,滿足工業(yè)應(yīng)用要求。如何更精確快速地檢測直線是本文算法以后研究的方向。
[1] 祁曉玲, 趙霞霞, 靳伍銀. 基于機(jī)器視覺的軸類零件幾何尺寸測量[J]. 組合機(jī)床與自動化加工技術(shù), 2013(1): 65-68.
QI Xiao-ling, ZHAO Xia-xia, JIN Wu-yin. Geometric dimensions measurement for shaft based on machine Vision[J]., 2013(1): 65-68
[2] 尚小燕, 姜旭, 武繼安. 基于圖像處理的軸類零件尺寸測量技術(shù)研究[J]. 工具技術(shù), 2012,46(3): 85-88.
Shang Xiaoyan, Jiang Xu, Wu Ji’an. Research on size measurement of shaft parts based on image processing[J]., 2012, 46(3): 85-88.
[3] 夏若安, 朱理, 胡雙炎. 高精度零件尺寸測量系統(tǒng)[J]. 科學(xué)技術(shù)與工程, 2005, 20(5): 1506-1508.
XIA Ruo’an, ZHU Li, Hu Shuangyan. High accuracy part size measurement system[J]., 2005, 20(5): 1506-1508.
[4] Priyanka Mukhopadhyay, Bidyut B Chaudhuri. A survey of Hough transform[J]., 2015, 48(3): 993-1010.
[5] Gustavo Botelho de Souza, Aparecido Nilceu Marana. HTS and HTSn: New shape descriptors based on Hough transform statistics[J]., 2014, 127: 43-56.
[6] 楊喜寧, 段建民, 高德芝, 等. 基于改進(jìn)Hough變換的車道線檢測技術(shù)[J]. 計算機(jī)測量與控制, 2010, 18(2): 292-294.
Yang Xining, Duan Jianmin, Gao Dezhi, et al. Research on lane detection based on improved Hough transform[J]., 2010, 18(2): 292-294.
[7] 秦志遠(yuǎn), 吳冰, 王艷, 等. 圖像平滑算法比較研究及改進(jìn)策略[J]. 測繪學(xué)院學(xué)報, 2005, 22(2):103-105.
Qin Zhiyuan, Wu Bing, Wang Yan, et al. The comparison study on image smoothing algorithm & improve strategy[J]., 2005, 22(2): 103-105.
[8] Xu Jiangtao, Wang Lei, Shi Zaifeng. A switching weighted vector median filter based on edge detection[J]., 2014, 98: 359-369.
[9] 童立靖, 張艷, 舒巍, 等. 幾種文本圖像二值化方法的對比分析[J]. 北方工業(yè)大學(xué)學(xué)報, 2011, 23(1): 25-34.
Tong Lijing, Zhang Yan, Shu Wei, et al. Comparison and Analysis of Several Document Image Binarization Algorithm[J].., 2011, 23(1): 25-34.
[10] 張帆, 彭中偉, 蒙水金. 基于自適應(yīng)閾值的改進(jìn)Canny邊緣檢測方法[J]. 計算機(jī)應(yīng)用, 2012, 32(8): 2296-2298.
Zhang Fan, Peng Zhongwei, Meng Shuijin. Improved Canny edge detection method based on self-adaptive threshold[J]., 2012, 32(8): 2296-2298.
[11] 曾接賢, 周瀝瀝, 符祥. 改進(jìn)的Beamlet與Canny相結(jié)合提取復(fù)雜圖像線特征[J]. 中國圖象圖形學(xué)報, 2012, 17(7): 775-783.
Zeng Jiexian, Zhou Lili, Fu Xiang. Complex image line feature extraction based on improved Beamlet transform and the Canny operator[J]., 2012, 17(7): 775-783.
Line Extraction Based on Improved Hough Transform
YAN Huai-ren,YANG Mu-sheng
(,,255049,)
A line extraction algorithm based on improved Hough transform was proposed to realize non-contact measurement of shaft component. It processed the image by pre-treated, improved Hough transform to realize detecting the shaft component outline more quickly and with high-precision. The method which detects diameter of one shaft is realized by using OpenCV in C++ Builder programming environment.
Hough transform,shaft component,edge detection,line detect
TP391.41
A
1001-8891(2015)11-0970-06
2014-12-08;
2015-10-09.
閆懷仁(1990-),男,山東省濟(jì)寧市魚臺縣人,碩士研究生,主要研究方向:精密檢測與質(zhì)量控制技術(shù)。
楊慕升(1963-),男,山東濰坊人,教授,主要研究方向:機(jī)械制造過程質(zhì)量控制技術(shù)、機(jī)電一體化及數(shù)控技術(shù)。E-mail:huairenm4@163.com。
國家自然科學(xué)基金,面向再制造工程的精度設(shè)計及質(zhì)量控制系統(tǒng)方法的研究,編號:50875159。