張喜民,詹海生,余奇穎
(1.陜西國際商貿學院信息工程學院,陜西西安 712046;2.西安電子科技大學 計算機學院,陜西 西安 710071)
基于機器視覺的精密測量技術已成為國內外研究熱點[1-3]。自動檢測圖像中零件直線邊緣是尺寸測量的重要環節,邊緣直線檢測的精度直接影響零件尺寸測量的精度。目前,直線檢測算法大部分都是基于Hough 變換技術,其具有對噪聲不敏感、穩健性好、對遮擋易處理等優點[4-9]。
標準Hough 變換直線檢測算法是在圖像的邊緣提取圖上實現的,因此,會依賴邊緣檢測算法的準確性。對于有較高邊緣密度的圖像會出現大量錯誤結果。同時,由于對每個邊緣像素點都需要計算參數,計算量較大。Hough 變換直線檢測算法的改進主要體現在提高算法性能和提高檢測準確度兩個方面,在提高算法性能方面,已有大量研究論文和應用[9-13],Mukhopadhyay等和Hassanein等對這些進展進行了詳細綜述[8]。而在提高直線檢測準確率方面的研究成果相對較少,典型的有Lee 等提出了離散Hough 變換算法(DHT),Chung 等在DHT 的基礎上進一步提出了基于方向的離散Hough 變換算法(ODHT)[3],這兩種算法采用多參數的離散Hough 變換,可提高直線檢測率,但多參數的引入導致了較大計算量;針對虛假直線、線段信息缺失等問題,Almazan 等提出的馬爾可夫鏈邊緣直線段檢測器算法,其能夠檢測到更為完整的直線段,但計算量較大[14];王競雪等對檢測得到的邊緣像素進行編組[15-16],先過濾獨立像素點和短邊緣,再對每一個邊緣組分別進行Hough 變換,降低了邊緣組間干擾、提高了檢測準確度;徐超等提出結合隨機抽樣一致性算法和模型預檢驗的改進隨機Hough 變換算法[17-18],該算法通過對像素點進行分組,計算相鄰像素點的梯度方向差分,降低了直線檢測過程中的誤檢情況,但計算量也較大。
在進行工業生產線零件尺寸測量時,既要滿足精度要求又要保證算法的時間性能,上述算法為提高直線檢測精確度引入了較復雜的計算,降低了算法的時間性能,不能滿足生產要求。筆者在應用Hough 變換、隨機Hough 變換對類矩形小插件進行邊緣直線檢測時發現,由于邊角圓弧設計以及制造工藝等原因,小插件的棱有弧度,對采集圖像邊緣提取后,一條棱變成兩條相距很近的有弧度的邊緣線,這些邊緣線彎曲部分的像素點很容易在Hough 空間形成偽峰,偽峰值會對周圍的真峰值點產生抑制[3],導致Hough 變換及其衍生算法直線檢測不準確。為此,提出了基于投票約束的Hough 變換直線檢測算法,通過設計新的Hough 空間投票權重策略來抑制偽峰的產生,進而提高直線檢測的精準度。該方法引入的計算量小,在提高精準度的同時基本不降低算法的時間性能。
Hough 變換是圖像處理中識別幾何形狀的方法,它利用圖像空間X-Y與Hough 參數空間ρ-θ的點與線的對偶性,把原始圖像中給定形狀的直線或曲線變換成Hough 參數空間的一個點。圖像空間中同一條直線或曲線上的多個點在Hough 參數空間中將成為為一個正弦曲線簇,且曲線簇相交于一點,稱該點為峰值點,如圖1 所示。通過檢測該峰值點,就可檢測對應圖像空間中的一條直線或曲線。

圖1 Hough變換的點線對偶原理
若圖像空間X-Y中的點(x1,y1)、點(x2,y2)在直線L上,則它們都與Hough 參數空間ρ-θ中的一個峰值點相對應,反之,參數空間ρ-θ中的一個峰值點就和圖像空間X-Y中的一條直線相對應。Hough 變換直線檢測算法的過程如下:
1)設置正向夾角和法線距離的取值范圍[θmin,θmax]和[ρmin,ρmax],將Hough 參數空間網格量化成M×N個單元(M為θ的等分數,N為ρ的等分數),并設置累加器矩陣Q[M×N]初始值為0;
2)對于圖像空間中的每個點(x,y)執行步驟3);
3)令s=(θmax-θmin)/M為步長,對于0≤i 4)檢測累加器矩陣Q[M×N]中的極大值,獲取峰值點網格下標[mH,nH],由式(2)計算ρL和θL; 5)根據ρL和θL由式(3)計算圖像空間X-Y中直線L的參數:斜率p和截距q,并檢測到直線。 由于零件的棱本身是帶有弧度的,對應到圖像中不存在完全理論上的直線。類矩形小零件在彎曲處產生的像素點很容易在Hough 空間形成偽峰,干擾直線檢測的精度。針對上述問題,該文提出通過設計新的Hough 空間投票權重策略來抑制偽峰的產生,提高直線檢測精度。 算法的投票策略:給邊緣上弧度較小的像素點一個較大的投票權重,而給弧度較大的非線性邊緣像素點一個較小的投票權重。算法具體實現過程如下: 1)對采集圖像采用3×3 模板進行中值濾波,得到增強圖像; 2)應用基于RANSAC 去離群點的SIFT 特征匹配算法[3]對增強圖像進行圖像配準變換,得到精準的配準圖像; 3)應用最大化類間方差的方法(Otsu),迭代求出灰度值t,將t與0.5×t分別作為高低閾值傳入Canny算子,提取配準圖像邊緣得到二值圖像; 4)將Hough 參數空間網格量化成M×N個單元(M為θ的等分數,N為ρ的等分數),并設置累加器矩陣Q[M×N]的初始值全為0; 5)對于二值圖像空間中的每個點(x,y)執行步驟6)、7); 6)令s=π/M為步長,對于0≤θ<π,用式(1)循環計算ρ,對ρ進行量化,求取網格下標j; 7)判定像素點(x,y)是否處于預設的高投票權區域,用式(4)計算二值圖像像素點的空間投票權,再用式(5)更新累加器矩陣Q; 8)檢測累加器矩陣Q[M×N]中的極大值,獲取峰值點所在矩陣的行列位置,再由式(2)計算ρL和θL; 9)根據ρL和θ L由式(3)計算圖像空間中直線的參數:斜率p和截距q,并檢測到零件的邊緣直線L。 實驗系統硬件由計算機、工業數碼相機、遠心鏡頭、紅色環狀LED 光源、直流穩壓電源、支架等組成,如圖2 所示。 圖2 實驗系統硬件組成 實驗系統中計算機配置:Intel(R) Core(TM) i7-9700K、4.90 GHz,8 GB DDR4 內存,256 GB 固態硬盤;工業數碼相機為1 292×964 分辨率的單色CCD相機,采集到的圖像通過USB3.0 接口傳輸給計算機;遠心鏡頭選用焦距固定、景深大的物方遠心鏡頭,具有平行光輸出、畸變非常小的特點,以保證采集圖像的質量;紅色環狀LED 光源向下均勻照射待檢測的零件,減少了外部光照的影響,以獲取低噪聲的清晰圖像,直流穩壓電源為環形光源提供穩定的+12 V。 實驗系統軟件環境采用Windows7 64 位專業版操作系統;測量應用軟件用C++語言開發,軟件開發環境采用Visual Studio 2015;支持庫采用MFC 類庫和計算機視覺庫OpenCV4.5.1。 2.2.1 直線檢測實驗結果 以手機尾插零件為檢測對象,任選取一幅采集圖像,分別用標準HT 算法、概率HT 算法和該文提出的算法進行實驗,Hough 變換的相關參數選取如下:斜率取值范圍為[0,180°],截距的取值范圍為[0,1 000],M為1 000,N為1 800;該文算法在確定投票權重時,鑒于手機尾插外形較規整及算法時間性能的要求,只設計一個高投票權區域,圓心選零件基準圖像幾何中心位置,根據手機尾插的外形尺寸選取參數:Ci=280、λ=1/2 800。3 種算法檢測到的前8 個峰值點所對應直線的實驗結果如圖3 所示。 圖3 3種直線提取算法實驗效果 從圖3(b)可以看出,HT 算法給出的前8 個最顯著峰值點中有4 個是噪聲像素產生的偽峰(對應4 條誤檢測直線),噪聲像素主要來自于類矩形插件在四個角處的不規則彎曲邊緣;概率HT 算法也不能抑制噪聲像素的影響,前8 個最顯著峰值點中也有兩個偽峰(對應兩條誤檢測直線),如圖3(c)所示;該文算法檢測到的前8 條直線均為有效邊緣直線,如圖3(d)所示。實驗結果表明,該文算法能有效抑制偽峰的產生,誤提取的直線數目小于另外兩種算法,具有較高的直線檢測精準度。 2.2.2 偽峰抑制效果分析 為了進一步分析該文算法對Hough 空間偽峰抑制作用,分別抽取標準Hough 算法和該文算法檢測到的前10 000 個點,用Matlab 分別繪制抽取點在Hough 空間的分布情況,結果如圖4 所示。 從圖4 中可以看出,標準HT 算法得到的檢測點在Hough 空間中的分布相對嘈雜,偽峰點與真峰點包圍在一起,形成一個近似的錐形,如圖4(a)所示,說明真峰旁邊充斥著無數偽峰點,真峰不能顯著突出;該文算法得到的檢測點在Hough 空間中的分布峰值明顯尖銳,如圖4(b)所示,說明真峰點被偽峰點包圍在一起的情況較少,真峰銳利突出,很好地抑制了Hough 空間中偽峰的高度,進而提高了直線檢測的精準度。 2.2.3 直線檢測實驗精度分析 對300 張采集的手機尾插圖像分別采用標準Hough 算法、概率Hough 算法以及該文提出的投票約束的Hough 算法進行直線檢測實驗,以式(6)的平均直線檢測精準度P作為評判標準: 式中,Lall為遍歷峰值點檢測到直線數,Lright為最終需要檢測到的直線數,對于手機尾插零件為8。 圖4 算法偽峰抑制效果圖 表1 是3 種算法檢測精準度與時間性能的實驗統計結果,可以得出,該文算法的檢測精準度最高,平均直線檢測精準度P達到89%,較標準Hough 算法、概率Hough 算法有較大幅度的提升;該文算法引入的計算量小,算法的時間性能與標準Hough 算法相當。由于概率Hough 算法只進行部分像素點映射,其算法的時間性能較好,但精度最差。 表1 3種算法檢測精準度與時間性能實驗結果 Hough 變換算法被廣泛用于圖像直線檢測,但該算法用于類矩形小插件尺度測量中邊緣直線檢測時,易在Hough 空間形成偽峰、影響邊緣檢測精準度,為此,提出了基于投票約束的Hough 變換直線檢測算法,該算法通過引入Hough 空間投票權重分配新策略來抑制偽峰產生,提高了圖像邊緣直線檢測精準度,以手機尾插零件進行實驗,實驗結果表明,與標準Hough 算法、概率Hough 算法相比較,該文算法直線檢測精準度有較大的提升,可達到89%。該文算法引入的計算量小,在提高檢測準確度的同時基本不會降低算法的時間性能,該文算法可根據具體情況設置多個高投票權區域及調整參數,以適用于其他零件,達到最優直線檢測效果,且該研究已應用于某型檢測設備研制中。1.2 投票約束的Hough變換直線檢測算法
2 實驗與分析
2.1 實驗系統組成

2.2 直線檢測實驗與分析



3 結束語