閆懷仁,楊慕升
?
基于改進(jìn)的Hough變換的直線提取算法
閆懷仁,楊慕升
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255049)
Hough變換的運(yùn)算精度及其運(yùn)算速度,在高速、高精度工作環(huán)境下具有重要的意義,提出了一種改進(jìn)的Hough變換的直線提取算法。通過(guò)對(duì)零件圖像預(yù)處理、改進(jìn)的Hough變換處理,實(shí)現(xiàn)了快速、高精度地軸類(lèi)零件輪廓直線的檢測(cè)。利用C++編程,采用OpenCV,針對(duì)某軸類(lèi)零件軸徑的非接觸檢測(cè),實(shí)現(xiàn)了改進(jìn)的Hough變換的直線提取算法。
Hough變換;軸類(lèi)零件;邊緣檢測(cè);直線檢測(cè)
軸類(lèi)零件是機(jī)械工業(yè)中極為常見(jiàn)的零件之一,其幾何尺寸及精度不僅直接影響機(jī)械運(yùn)動(dòng)的性能、使用壽命,且對(duì)減少能源消耗與環(huán)境污染等有重要影響[1]。對(duì)軸類(lèi)零件尺寸的傳統(tǒng)檢測(cè)一般是人工用手持尺類(lèi)測(cè)量工具來(lái)實(shí)現(xiàn)的。人工檢測(cè)不僅易受情緒、操作方法、儀器精度環(huán)境等多種因素的影響,難以保證檢測(cè)的質(zhì)量,而且不能適應(yīng)現(xiàn)代工業(yè)生產(chǎn)現(xiàn)場(chǎng)在線檢測(cè)、實(shí)時(shí)控制的要求[2]。隨著圖像測(cè)量技術(shù)在國(guó)內(nèi)外的飛速發(fā)展,該技術(shù)已廣泛應(yīng)用于幾何量的尺寸測(cè)量、航空遙感測(cè)量、精密復(fù)雜零件微尺寸測(cè)量和外觀監(jiān)測(cè)、光波干涉圖、應(yīng)力應(yīng)變場(chǎng)狀態(tài)分布圖等和圖像有關(guān)的技術(shù)領(lǐng)域[3]。
軸徑是軸類(lèi)零件的重要尺寸,為了從軸類(lèi)圖像中求得軸徑大小,應(yīng)獲得軸類(lèi)零件輪廓線的間隔,因而,如何得到軸類(lèi)零件的輪廓線成為獲得軸徑大小的關(guān)鍵技術(shù)。直線擬合、Hough變換是國(guó)內(nèi)外近年來(lái)檢測(cè)輪廓線直線的常用的方法,直線擬合對(duì)噪聲很敏感,當(dāng)已知數(shù)據(jù)點(diǎn)附近存在噪聲時(shí),擬合誤差較大,導(dǎo)致檢測(cè)直線精度低。由于良好的魯棒性及抗干擾性,Hough變換[4]已成為模式識(shí)別中提取直線的一個(gè)常用的重要的工具。然而,Hough變換容易產(chǎn)生虛假直線,導(dǎo)致其檢測(cè)精度低,另外,Hough變換運(yùn)算速度較慢,因而,Hough變換未能廣泛地應(yīng)用于有著高實(shí)時(shí)性、高精度要求的領(lǐng)域。針對(duì)于Hough變換的不足,隨機(jī)Hough變換及其改進(jìn)算法被提出,然而,由于隨機(jī)Hough變換的不確定性的特點(diǎn),以及受噪聲干擾較大,因而,隨機(jī)Hough變換不適于高精度尺寸檢測(cè)的場(chǎng)合。
在實(shí)際生產(chǎn)中,往往需要在夜間對(duì)軸類(lèi)零件進(jìn)行測(cè)量,由于夜間光照強(qiáng)度不足以及對(duì)比度差,即使采取補(bǔ)光措施,使用傳統(tǒng)攝像工具所采集到的圖像成像質(zhì)量較低,在后續(xù)檢測(cè)輪廓線時(shí),往往產(chǎn)生虛假直線,造成檢測(cè)誤差。因此,采用紅外成像技術(shù),對(duì)零件進(jìn)行圖像采集。
為了提高Hough變換的運(yùn)算精度及其運(yùn)算速度,本文提出了一種改進(jìn)的Hough變換提取直線的算法。通過(guò)對(duì)一類(lèi)回轉(zhuǎn)體零件軸徑的檢測(cè),驗(yàn)證了該算法的可行性。
Hough變換的基本思想[5]是,利用圖像域與參數(shù)域的點(diǎn)與線的對(duì)偶原理:
設(shè)直線方程為:
=+
同一條直線上的點(diǎn)(0,0), (1,1), …, (x,y)可以確定唯一的、,將圖像上離散的點(diǎn)的坐標(biāo)作為已知量求未知量、,所以直角坐標(biāo)系下的直線=+在參數(shù)空間表示為點(diǎn)(,),然而,該方法不適用于不存在斜率的直線,因而將參數(shù)空間坐標(biāo)表示為極坐標(biāo)下的=cos+sin,為原點(diǎn)到直線的距離,為直線與軸的夾角。圖像域中的一個(gè)點(diǎn)(0,0),在極坐標(biāo)下變換為一條正弦曲線,同一條直線上的點(diǎn)在極坐標(biāo)空間下正弦曲線的交點(diǎn)即為要求的、。在實(shí)際應(yīng)用中,通常將參數(shù)空間離散化成一個(gè)累加器陣列(,),按照極坐標(biāo)方程,將圖像空間中的每一點(diǎn)(,)映射到參數(shù)空間對(duì)應(yīng)的一系列累加器中,將對(duì)應(yīng)的累加器加1。如果圖像空間中存在一條直線,則參數(shù)空間中有一個(gè)對(duì)應(yīng)的累加器出現(xiàn)局部最大值。通過(guò)檢測(cè)這個(gè)局部最大值即可確定與該直線對(duì)應(yīng)的一對(duì)(,)參數(shù),從而檢測(cè)出直線。
傳統(tǒng)Hough變換盲目性大,導(dǎo)致其存在巨大的計(jì)算量及低的算法效率,反應(yīng)在處理結(jié)果上,則為檢測(cè)速度慢,容易出現(xiàn)直線錯(cuò)檢、漏檢的情況。
圖1為采集到的零件的原始圖像,該零件為一個(gè)階梯軸,為了測(cè)量該軸的最大軸徑,對(duì)圖1進(jìn)行傳統(tǒng)的Hough變換,檢測(cè)結(jié)果如圖2所示,所用時(shí)間為7296ms。分析圖2發(fā)現(xiàn),經(jīng)典的Hough變換可以檢測(cè)出最大軸徑段軸的輪廓線如圖2中①所示,然而所用時(shí)間較長(zhǎng)且存在過(guò)多虛假直線,不利于后續(xù)檢測(cè)軸徑大小。傳統(tǒng)Hough變換不能應(yīng)用于高速、高精度工作環(huán)境。
為提高Hough檢測(cè)的運(yùn)算速度,常見(jiàn)的方法有多分辨率Hough檢測(cè)、極角約束Hough檢測(cè)[6]。前者通過(guò)對(duì)圖像分辨率由粗到細(xì)的處理來(lái)減少參與Hough變換中“投票”的點(diǎn)的數(shù)量來(lái)提高速度,然而,這種處理方法會(huì)造成圖像邊緣模糊,檢測(cè)精度則大大降低;后者是通過(guò)針對(duì)應(yīng)用對(duì)象的特點(diǎn),限定極角變換的范圍,從而減少計(jì)算量,然而,對(duì)于極角范圍不確定的應(yīng)用對(duì)象,該方法并不適用?;谝陨蟽煞N思想的啟發(fā),本文采用一種多分辨率投票的方法:先由較大的離散化極角值D1投票,根據(jù)參數(shù)空間的峰值確定出極角范圍?(1,2)及距離范圍?(1,2),然后采用較大的離散化極角值D1在極角范圍?(1,2)中對(duì)每個(gè)特征點(diǎn)進(jìn)行計(jì)算,對(duì)于計(jì)算結(jié)果處于(1,2)內(nèi)的點(diǎn)進(jìn)行投票。該處理方式不僅可以極大地減少計(jì)算量,而且可以有效地區(qū)分開(kāi)累加器中的有效峰值與噪聲峰值,避免了錯(cuò)檢與漏檢,從而大大提高了直線檢測(cè)精度。算法流程圖如圖3所示。
圖1 原始圖像
圖2 傳統(tǒng)Hough變換檢測(cè)到的直線
圖3 改進(jìn)的Hough變換檢測(cè)算法流程圖
Fig.3 The flow chart of improved Hough transform
由于CMOS元件本身存在缺陷以及拍攝現(xiàn)場(chǎng)干擾,拍攝出的圖像中存在有噪聲。噪聲的存在會(huì)使Canny檢測(cè)處理時(shí)產(chǎn)生無(wú)用的邊緣信息,增加Hough變換的時(shí)間且影響檢測(cè)精度,因而應(yīng)首先對(duì)圖像進(jìn)行去噪聲處理。圖像平滑是一種消除圖像噪聲的常用方法,是為了適應(yīng)人類(lèi)視覺(jué)系統(tǒng)的生理接受特點(diǎn)而設(shè)計(jì)的一種改善圖像質(zhì)量的一種方法,其處理對(duì)象是在圖像生成、傳輸、處理、顯示等過(guò)程中受到多種因素?cái)_動(dòng)形成的受污圖像[7]。
為了有效地去除圖像中存在的噪聲并且保留輪廓信息,本文算法采用的是中值濾波器濾波。中值濾波器是一種非線性的濾波器,在保留圖像更多的輪廓信息的同時(shí)能有效地抑制脈沖干擾和圖像噪聲[8]。
為了從圖像中得到目標(biāo)物體,最常用的方法是對(duì)圖像進(jìn)行二值化處理。常見(jiàn)的二值化算法分為兩種,一種是全局閾值算法,另一種是局部閾值[9]算法。本文采取的二值化算法為全局閾值迭代法,其核心思想為:
2)初始閾值將圖像分為目標(biāo)區(qū)域與背景區(qū)域,分別統(tǒng)計(jì)這兩個(gè)區(qū)域的像素個(gè)數(shù)o、b,分別計(jì)算出目標(biāo)區(qū)域與背景區(qū)域的平均像素值o、b:
通過(guò)全局閾值迭代法得到了較為理想的零件二值化圖像,然而,由于采集圖像時(shí)光照較強(qiáng),零件中間出現(xiàn)一條灰度較大的光帶,經(jīng)迭代法處理后,光帶未能消除,若此時(shí)進(jìn)行Canny檢測(cè),中間光帶處會(huì)產(chǎn)生虛假輪廓,影響Hough變換檢測(cè)直線的精度。通過(guò)填充上下輪廓之間區(qū)域的方法消除中間光帶,處理結(jié)果如圖5所示。
圖像的邊緣是圖像的最基本特征[10],由于圖像的邊緣通常含有大量重要信息,因此,邊緣檢測(cè)成為圖像處理的—個(gè)重要環(huán)節(jié)。在經(jīng)典的邊緣檢測(cè)方法中,常用的一階微分算子有Robets算子、Prewwits 算子、Sobel算子等。對(duì)噪聲較敏感,抗干擾性能差,且邊緣的精度有待提高。Canny算子是一類(lèi)最優(yōu)邊緣檢測(cè)算子,具有較好的邊緣定位能力和抗噪性能[11]。圖6為Canny檢測(cè)后的圖像。
為提高Hough變換的檢測(cè)速度和精度,本文采用多分辨率投票的方法。傳統(tǒng)的參數(shù)空間變換的方法在粗投票中確定極角、距離的變化范圍時(shí),計(jì)算量大,占用的存儲(chǔ)空間大,算法實(shí)現(xiàn)復(fù)雜。將二值化圖像中的點(diǎn)依次做變換域的計(jì)算,在圖像空間繪制出將每一個(gè)特征點(diǎn)所對(duì)應(yīng)的正弦曲線并進(jìn)行累加,如圖7所示,圖像空間中某店像素的灰度值越高,說(shuō)明該點(diǎn)對(duì)應(yīng)參數(shù)空間中的直線通過(guò)點(diǎn)數(shù)越多,通過(guò)閾值化處理即可濾除噪聲,即可確定出極角、距離變化范圍,即新的累加器空間。通過(guò)對(duì)二值化圖像中的特征點(diǎn)在新的累加器空間進(jìn)行投票,從而可檢測(cè)出大徑的直線。
以工業(yè)300萬(wàn)像素的CCD做圖像數(shù)據(jù)采集設(shè)備,采用C++語(yǔ)言進(jìn)行算法設(shè)計(jì),基于OpenCV對(duì)某軸類(lèi)零件進(jìn)行試驗(yàn),軸的大徑為59.50mm(工控機(jī)的系統(tǒng)硬件配置:CPU E3300主頻2.50G,內(nèi)存1.0G)。結(jié)果如表1。
分析表1可知,在同樣的圖像分辨率下,本文算法所用時(shí)間遠(yuǎn)小于標(biāo)準(zhǔn)Hough變換所用時(shí)間;針對(duì)于不同分辨率的圖像,同樣算法的處理時(shí)間不同,隨著分辨率的增加,算法所用時(shí)間也隨著增大;處理圖像的分辨率越大,檢測(cè)到的零件尺寸越精確。為了同時(shí)保證算法處理的速度和精度,選用圖像分辨率為640×480。
圖8為未加入噪聲的零件圖像,圖9為加入椒鹽噪聲的零件圖像,分辨率均為640×480,分別對(duì)圖8、圖9用本文算法以及直線擬合的方法進(jìn)行大徑檢測(cè),檢測(cè)結(jié)果如表2所示。
分析表2可知,對(duì)于同一處理對(duì)象,直線擬合所用時(shí)間略短,但檢測(cè)精度較低。綜合考慮到速度和精度,本文算法更適于工業(yè)的實(shí)時(shí)性與高精度的要求。
圖10、圖12為兩種軸徑大小不同的軸,圖11為采用本文算法對(duì)圖10處理而檢測(cè)到的直線效果圖;圖13為采用本文算法對(duì)圖12處理而檢測(cè)到的直線效果圖。
分析表3可知,對(duì)于不同軸徑大小的應(yīng)用對(duì)象,均可較精確地檢測(cè)到軸徑大小,所用時(shí)間均比傳統(tǒng)Hough變換檢測(cè)直線所用時(shí)間短很多。
圖14為采用紅外技術(shù)采集到的零件圖像,圖15為零件4的處理結(jié)果,其中,灰色線為檢測(cè)到的輪廓線。分析表4可知,本文算法對(duì)軸類(lèi)零件的紅外圖像進(jìn)行處理,所用時(shí)間比標(biāo)準(zhǔn)Hough變換所用時(shí)間短,檢測(cè)到的軸徑尺寸與實(shí)際尺寸相差不大,滿足精度要求。
圖16為本文算法檢測(cè)直線效果圖。通過(guò)分析表1、表2、表3、表4與圖15、圖16可知,對(duì)于可見(jiàn)光圖像與紅外圖像,本文算法均可以準(zhǔn)確快速地提取出目標(biāo)輪廓直線,且不受零件大小限制,滿足工業(yè)實(shí)時(shí)性與高精度的要求。
圖4 全局閾值迭代法處理后
圖5 消除光帶后的二值化圖像
圖6 Canny檢測(cè)出的輪廓圖
圖7 特征點(diǎn)對(duì)應(yīng)的正弦曲線累加圖
表1 檢測(cè)結(jié)果對(duì)比
表2 檢測(cè)結(jié)果對(duì)比
圖8 未加入噪聲的圖像
圖9 加入噪聲的圖像
表3 檢測(cè)結(jié)果對(duì)比
圖10 零件2
圖11 零件2的處理結(jié)果
圖12 零件3
圖13 零件3的處理結(jié)果
表4 檢測(cè)結(jié)果對(duì)比
圖14 零件4
圖15 零件4的處理結(jié)果
圖16 本文算法檢測(cè)直線效果圖
實(shí)驗(yàn)結(jié)果表明,針對(duì)于同一零件尺寸檢測(cè),相比于傳統(tǒng)的Hough檢測(cè)、曲線擬合算法,改進(jìn)的Hough檢測(cè)算法大大提高了檢測(cè)直線的精度與速度,滿足工業(yè)應(yīng)用要求。如何更精確快速地檢測(cè)直線是本文算法以后研究的方向。
[1] 祁曉玲, 趙霞霞, 靳伍銀. 基于機(jī)器視覺(jué)的軸類(lèi)零件幾何尺寸測(cè)量[J]. 組合機(jī)床與自動(dòng)化加工技術(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] 尚小燕, 姜旭, 武繼安. 基于圖像處理的軸類(lèi)零件尺寸測(cè)量技術(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] 夏若安, 朱理, 胡雙炎. 高精度零件尺寸測(cè)量系統(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變換的車(chē)道線檢測(cè)技術(shù)[J]. 計(jì)算機(jī)測(cè)量與控制, 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]. 測(cè)繪學(xué)院學(xué)報(bào), 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] 童立靖, 張艷, 舒巍, 等. 幾種文本圖像二值化方法的對(duì)比分析[J]. 北方工業(yè)大學(xué)學(xué)報(bào), 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邊緣檢測(cè)方法[J]. 計(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]. 中國(guó)圖象圖形學(xué)報(bào), 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ì)寧市魚(yú)臺(tái)縣人,碩士研究生,主要研究方向:精密檢測(cè)與質(zhì)量控制技術(shù)。
楊慕升(1963-),男,山東濰坊人,教授,主要研究方向:機(jī)械制造過(guò)程質(zhì)量控制技術(shù)、機(jī)電一體化及數(shù)控技術(shù)。E-mail:huairenm4@163.com。
國(guó)家自然科學(xué)基金,面向再制造工程的精度設(shè)計(jì)及質(zhì)量控制系統(tǒng)方法的研究,編號(hào):50875159。