汪星航
[摘 要]為了有效檢測金屬圓孔異物缺陷,分析Hough變換(HT)以及隨機(jī)Hough變換原理(RHT),提出一種改進(jìn)型隨機(jī)Hough變換(PRHT)的方法獲取內(nèi)孔邊緣像素點(diǎn)集合,采用圓擬合方法和殘差分析,循環(huán)剔除點(diǎn)集合中無效點(diǎn),最終獲取圓心點(diǎn)與半徑,同時(shí)對(duì)圓孔缺陷進(jìn)行檢測。經(jīng)實(shí)驗(yàn)結(jié)果分析,本算法對(duì)于圓孔缺陷有良好檢出效果。
[關(guān)鍵詞]圓孔;Hough變換;缺陷檢測
中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2017)20-0171-02
引言
Paul Hough于1962年提出一種可以運(yùn)用于邊緣檢測中的算法,稱作Hough變換[1]。算法采用空間投影思想,對(duì)原始圖案中像素點(diǎn)按照對(duì)偶性將像元映射至一個(gè)二維平面,在該平面內(nèi)通過對(duì)像素點(diǎn)解析并統(tǒng)計(jì)其共性,得出原始圖像所存在的像素特征。即將某類像元信息由函數(shù)表示,以聚類的方式確定目標(biāo)。這種能按一定要求收集像素特性的思想使算法在數(shù)字圖像技術(shù)中擔(dān)當(dāng)重要角色,在實(shí)際運(yùn)用中有良好效果。
隨著研究者對(duì)算法不斷探索創(chuàng)新,Hough變換由早先用于檢測直線擴(kuò)展到復(fù)雜形狀領(lǐng)域,其中最多是用于圓形檢測。早期檢測往往需要掌握邊界函數(shù),這種方法免去了區(qū)域定位,更重要地是即使邊緣不完整或者去噪效果不理想都不會(huì)影響實(shí)驗(yàn)效果。但是要找到某種函數(shù)對(duì)復(fù)雜圖案邊緣進(jìn)行描述往往是做不到的,針對(duì)這一問題學(xué)者們展開深入探討。
1 經(jīng)典Hough變換圓檢測原理
在圓檢測中,可以將圓參數(shù)方程當(dāng)做邊緣函數(shù)[2],那么可以做一個(gè)以圓點(diǎn)(a,b),半徑大小r的圓表達(dá)式。
(1.1)
根據(jù)式(1.1)的未知數(shù)反轉(zhuǎn),把X -Y 作為常量,a-b-r 作為未知數(shù),即把X -Y 平面上的點(diǎn)轉(zhuǎn)換到a-b-r 參數(shù)空間,就是一個(gè)圓錐的方程。即以圓形表達(dá)式自變量二維空間下坐標(biāo)值為圓錐頂點(diǎn),將圓心點(diǎn)二維坐標(biāo)和圓半徑設(shè)置為一個(gè)三維空間下立體坐標(biāo)系并作為空間變量。這就實(shí)現(xiàn)了從二維空間到三維空間,從面圓到立體圓錐,從圓檢測問題到找錐面交點(diǎn)問題的轉(zhuǎn)化。
上述圓檢測原理在實(shí)現(xiàn)問題轉(zhuǎn)化的同時(shí),也暴露出一些問題:隨著圖像像素分辨率提高,參數(shù)空間將成倍放大,算法復(fù)雜度顯著提高,采用投票累加思想會(huì)占用大量存儲(chǔ)空間。因此面對(duì)處理復(fù)雜圖像時(shí),計(jì)算速度會(huì)大幅增加,如果去噪處理效果不理想將會(huì)導(dǎo)致檢測率下降。
2 隨機(jī)Hough變換
由于傳統(tǒng)Hough變換存在一系列不足,1993年Xu等人提出隨機(jī)Hough變換(RHT,Randomized Hough Transform)思想,該變換主要通過圖像空間中樣本點(diǎn)進(jìn)行隨機(jī)抽樣與參數(shù)空間的動(dòng)態(tài)鏈接表來降低計(jì)算復(fù)雜度和內(nèi)存需求[3]。RHT原理是以三個(gè)隨機(jī)不共面邊緣像素點(diǎn)為基準(zhǔn),找到相應(yīng)圓形信息并投射到參數(shù)空間進(jìn)行統(tǒng)計(jì),將達(dá)到參考值時(shí)的參數(shù)作為圓參數(shù),最后選擇滿足在圓上點(diǎn)數(shù)達(dá)到共圓比例閾值的圓當(dāng)作檢測結(jié)果。
隨機(jī)Hough變換的基本算法如下:
1)初始化參數(shù)空間,構(gòu)造圖像邊緣點(diǎn)集合與采樣次數(shù)。
2)采樣次數(shù)大于采樣閾值時(shí),算法結(jié)束。
3)在采樣次數(shù)小于采樣閾值時(shí),在邊緣點(diǎn)集合中隨機(jī)選取三個(gè)不共線像素點(diǎn)。
4)判斷這三個(gè)點(diǎn)所選圓參數(shù)解存在與否,結(jié)果為真作為候選圓執(zhí)行下一步,結(jié)果為假執(zhí)行2)。
5)如果候選圓參數(shù)相應(yīng)圖像空間點(diǎn)數(shù)達(dá)到共圓比例閾值,接著執(zhí)行下一步,未達(dá)到認(rèn)為候選圓為不是真圓,轉(zhuǎn)到2)執(zhí)行。
6)檢測到的真實(shí)圓如滿足檢測條件,算法結(jié)束。否則,將參數(shù)圓對(duì)應(yīng)的像素點(diǎn)從圖像邊緣點(diǎn)集合中移除,重置采樣次數(shù),轉(zhuǎn)到2)繼續(xù)執(zhí)行。
在算法中加入三點(diǎn)隨機(jī)機(jī)制是將單點(diǎn)對(duì)多點(diǎn)變?yōu)槎帱c(diǎn)對(duì)單點(diǎn)的改進(jìn),降低了算法復(fù)雜度,使運(yùn)算得到加速。但是隨機(jī)Hough變換也有缺點(diǎn),對(duì)于復(fù)雜圖像或者噪聲點(diǎn)增加,無目標(biāo)隨機(jī)采樣會(huì)引入許多冗余參數(shù),會(huì)產(chǎn)生眾多冗余累積,計(jì)算性能降低。
3 改進(jìn)的隨機(jī)Hough變換
為了滿足實(shí)時(shí)性要求,本文提出適用于工位一缺陷的改進(jìn)隨機(jī)Hough算法。采用改進(jìn)的隨機(jī)Hough圓檢測算法減少同心圓環(huán)的計(jì)算量,算法步驟如下:
1)由幾何學(xué)內(nèi)容可知,構(gòu)成圓的點(diǎn)集中最多只能有兩個(gè)點(diǎn)在同一條直線上。根據(jù)這個(gè)原理首先對(duì)參數(shù)空間進(jìn)行初始化,同時(shí)構(gòu)造圖像邊緣點(diǎn)集合和重置采樣次數(shù)。對(duì)圖像空間邊緣像素點(diǎn)集合中采樣的三個(gè)點(diǎn)進(jìn)行判斷,如果三點(diǎn)共線則重新進(jìn)行采樣,三點(diǎn)是否共線可以根據(jù)任意兩點(diǎn)之間斜率是否相等來進(jìn)行判斷。
2)以幾何學(xué)中圓上任意兩點(diǎn)構(gòu)成的弦過圓心為依據(jù),通過圓上A(x1,y1),B(x2,y2),C(x3,y3)三點(diǎn),做直線AB中垂線m,做直線AC中垂線n,直線m,n交于一點(diǎn),該點(diǎn)即為圓心O(x0,y0),對(duì)式1.1做變換,把X-Y平面點(diǎn)投射至參數(shù)空間,改進(jìn)計(jì)算參數(shù)空間方程式為:
(3.1)
通過式3.1求解方程中圓心坐標(biāo)(a,b)和半徑r。相比于式1.1求解方法,方程中減少了未知數(shù)的乘法與乘方運(yùn)算,從而減少了算法復(fù)雜度,使內(nèi)存占有率減小,提高了計(jì)算性能。
為了提高算法效率,減少候選圓與邊緣點(diǎn)計(jì)算的時(shí)間,可以根據(jù)幾何學(xué)中圓形固有的特點(diǎn)來縮小樣本點(diǎn)的選擇范圍。根據(jù)圓形有內(nèi)接正方形與外切正方形的特點(diǎn),該圓上邊緣點(diǎn)一定位于內(nèi)接正方形與外切正方形范圍之內(nèi),而范圍之外的點(diǎn)不可能屬于候選圓上,如圖1黑色區(qū)域所示。計(jì)算采樣點(diǎn)到圓心之間的距離,通過設(shè)置共圓比例閾值來判斷采樣點(diǎn)是否為候選圓上的點(diǎn)。本算法是以更少隨機(jī)采樣點(diǎn),實(shí)現(xiàn)減小冗余采樣概率來對(duì)RHT進(jìn)行優(yōu)化。改進(jìn)后對(duì)于高分辨率圖像,計(jì)算性能提升較為明顯。
4 基于圓擬合的圓孔缺陷檢測
利用缺陷圖形形態(tài)學(xué)方法,對(duì)金屬圓孔邊緣輪廓進(jìn)行追蹤,得到邊緣像素點(diǎn)集合,邊緣輪廓坐標(biāo)上每點(diǎn)Pt往前第3個(gè)像素點(diǎn)Pt-3與往后第3個(gè)像素點(diǎn)Pt+3連線的中點(diǎn)坐標(biāo),若該中點(diǎn)像素為黑色,則其對(duì)應(yīng)的輪廓點(diǎn)位于邊緣輪廓下凹的位置上;計(jì)算同一段下凹位置上各輪廓點(diǎn)到其往前第3個(gè)像素點(diǎn)Pt-3與往后第3個(gè)像素點(diǎn)Pt+3連線的距離dt,最大距離對(duì)應(yīng)的輪廓點(diǎn)為缺陷點(diǎn)坐標(biāo)[39-40]。最終將外邊緣點(diǎn)與擬合圓點(diǎn)進(jìn)行對(duì)比求得所有缺陷[4]坐標(biāo)點(diǎn)。
5 實(shí)驗(yàn)結(jié)果分析
本實(shí)驗(yàn)中采用PRHT算法獲取圓孔輪廓像素點(diǎn)的集合,采取最小二乘圓擬合方法,對(duì)獲取到的近圓形輪廓像素點(diǎn)進(jìn)行擬合,根據(jù)殘差分析,循環(huán)剔除不滿足條件點(diǎn),最后擬合出圓,獲取圓心點(diǎn)跟半徑,將外邊緣點(diǎn)與圓心進(jìn)行距離計(jì)算,小于半徑閾值的點(diǎn)可以判定為缺陷,同時(shí)描繪缺陷點(diǎn)。(圖2)
圖2中,藍(lán)色線為圓孔邊緣識(shí)別線,中心十字為圓孔中心標(biāo)記,邊緣紅色的為識(shí)別的異物或突起。異物或突起的檢測閾值用戶可根據(jù)檢測需求設(shè)置,圖2(a)中可以只檢出下方明顯缺陷,其余小突起不檢出。圓檢測結(jié)果如表1所示,本實(shí)驗(yàn)采取的算法對(duì)內(nèi)孔缺陷有良好的檢出效果,對(duì)圓孔檢出率達(dá)到100%,滿足工業(yè)檢測[5]要求。
6 結(jié)論
本文從檢測算法角度出發(fā),對(duì)傳統(tǒng)Hough變換與隨機(jī)Hough變換進(jìn)行了簡單闡述,隨后對(duì)隨機(jī)Hough算法進(jìn)行改進(jìn)以減少計(jì)算量,提高算法性能,介紹了采用圖形學(xué)進(jìn)行缺陷檢測的原理。最終對(duì)金屬圓孔采用改進(jìn)型RHT獲取內(nèi)孔邊緣像素點(diǎn)集合,采用圓擬合方法和殘差分析,循環(huán)剔除無效點(diǎn),得到圓心點(diǎn)跟半徑,同時(shí)對(duì)缺陷進(jìn)行判定和描繪。最后根據(jù)實(shí)驗(yàn)效果和數(shù)據(jù)結(jié)果分析,證明本章采用的算法滿足端塞的內(nèi)孔缺陷檢測。
參考文獻(xiàn)
[1] Yao A, Gall J, Gool L V. A Hough transform-based voting framework for action recognition[C]Computer Vision and Pattern Recognition. IEEE, 2010:2061-2068.
[2] 段汝嬌,趙偉,黃松嶺,等.一種基于改進(jìn)Hough變換的直線快速檢測算法[J].儀器儀表學(xué)報(bào),2010,31(12):2774-2780.
[3] Kultanen P, Xu L, Oja E. Randomized Hough transform (RHT)[J]. 2009, i(4):631-635 vol.1.
[4] 魯昌華,徐勝海,劉春.數(shù)字圖像處理技術(shù)在PCB板檢測中的應(yīng)用[J].儀器儀表學(xué)報(bào),2001,22(s2):426-429.
[5] 許運(yùn)來.基于CCD的子彈表面檢測方法研究[D].哈爾濱工程大學(xué),2009.