全燕鳴,凌 泉
(華南理工大學 機械與汽車工程學院,廣州510641)
橢圓孔在零件中廣泛存在,在視覺的工業運用領域中,采用橢圓模型去擬合實際的橢圓孔,通過檢測橢圓的位置和大小,完成零件橢圓孔尺寸檢測及定位,因此橢圓擬合算法在機器視覺和模式識別等領域內有著廣泛的應用。
近年來,學者提出了大量的橢圓檢測算法,主要可概括為三類:一類是基于Hough 變換的橢圓擬合方法[1-4],另一類是基于幾何特征的擬合方法[5-7],第三類是基于最小二乘法的橢圓擬合方法[8-10]。
本文提出了一種將橢圓對稱性及二分法相結合的橢圓擬合算法,使用Halcon 作為圖像處理算法庫。該方法利用橢圓本身的幾何對稱性,計算出橢圓中心坐標,再結合二分法,通過逐次迭代逼近的方法計算橢圓的長半軸、短半軸及方向角。最終計算出橢圓的準確參數。本文提出的檢測算法,于2019年12月已經運用于明門(中國)幼童用品有限公司的金屬管視覺檢測中。
邊緣檢測包括像素級別邊緣檢測和亞像素級別邊緣檢測,其中亞像素級別邊緣檢測,在整像素邊緣檢測的基礎上,采用像素插值和灰度曲線擬合等方法提高邊緣檢測精度。本文采用Canny 算子提取像素級橢圓邊緣并基于高斯擬合的亞像素邊緣檢測法進一步提高橢圓邊緣精度。
橢圓方程的求解,需要確定5 個參數,如圖1所示,圖中:a,b 為橢圓長短半軸長;x0,y0為橢圓中心坐標;θ 為橢圓長半軸與X 軸之間的夾角(本文中統稱為方向角)。該橢圓的方程可以表示為式(1):


圖1 橢圓參數示意圖Fig.1 Schematic diagram of ellipse parameters
由橢圓的數學模型可知,橢圓關于中心點對稱,即作任意角度直線平行線與橢圓相切存在兩根切線li,li′(本文統稱切線對),相應的存在兩切點ci,ci′(本文統稱切點對),且圓心位于兩切點連線的中點處。切點對的距離記為di;當di最大時,切點對的距離就是橢圓的長軸長;同理,當di最小時,切點對的距離就是橢圓的短軸長,并且此時切線與X 軸的夾角αi即為橢圓的方向角θ,如圖2所示。

圖2 橢圓切線對示意圖Fig.2 Schematic diagram of elliptic tangent pairs
1)先對相機進行標定獲取內外參,相機采集橢圓孔圖像,并進行圖像矯正及預處理,采用Canny算子得到橢圓的像素邊緣;通過高斯擬合的方法得到橢圓的亞像素邊緣[11]。
2) 由2.2 中的橢圓幾何對稱性計算橢圓中心坐標:計算橢圓不同角度步長(0°~180°之間,角度步長:β=180°/n)的n 組切線對li、li′,可得橢圓切點對坐標:(xi,yi)、(xi′,yi′),以及切點對之間的距離di、切線與X軸的夾角αi,橢圓中心坐標可由式(2)及式(3)計算。

式中:x0、y0為估計的橢圓中心坐標;n 為切點對的對數。
3)通過二分法迭代估計橢圓長半軸長a:通過上一步,可以得到n 個di與αi的值,對n 個di從小到大進行排序,取前2 個記為dk,ds(dk>ds),由此可鎖定橢圓長軸長存在于切線角范圍為(αk,αs)的角度區域,通過二分法取下一個角度αn+1=(αk+αs)/2,可得到對應新的切線對及切點對的距離:ln+1,l′n+1,dn+1鎖定下一個橢圓長軸長出現的切線角區域(αn+1,αn+2),其中:αn+2=(αk+αn+1)/2,如此往復通過二分法在迭代中不斷更新逼近橢圓長軸長的真實值,設當迭代到第j 次時,dn+j與dn+j+1差值的絕對值小于設定的迭代閾值ε,此時迭代結束,橢圓長半軸長計算見式(4):

4)同理,計算橢圓短半軸長b 及方向角θ,采用同樣的迭代逼近方式,通過2)中獲取的數據,對n個di從小到大進行排序,取后2 個記為dv,dp,由此可鎖定橢圓短軸長存在于切線角范圍為(αv,αp),與3) 中的迭代方式相同,設當迭代到第m 次時,dn+m與dn+m+1的差值絕對值小于設定的迭代閾值ε,此時迭代結束,橢圓的短半軸長及方向角的計算見式(5)及式(6):

通過以上4 步,可以計算出橢圓方程的5 個參數,從而完成橢圓擬合,算法流程詳見圖3。

圖3 算法流程Fig.3 Algorithm flow chart
本文采用的視覺實驗平臺如圖4,其中包括:視覺檢測支架、大恒工業相機(MER-500-7UC),25 mm定焦鏡頭、球 積分光 源、PC 機(Intel Core i5 處理器,4G 內存,Window10 系統),算法測試軟件使用Halcon 開發。

圖4 視覺實驗平臺Fig.4 Visual experiment platform
1) 通過搭建的視覺實驗平臺,對相機進行標定:將標定板放在相機的視場內,通過變換標定板的擺放位置、角度獲取不同的標定板圖像,共采集了18 張不同位置、角度的標定板圖像。通過計算18張標定板黑點直徑及圓心距離,可計算出相機的內外參,本文采用的標定板見圖5。

圖5 標定板圖Fig.5 Calibration board
2)采集橢圓圖像并進行校正:將待測工件的放置于視場中心采集圖像,通過上一步中標定出的相機內外參,對圖像進行畸變矯正;采集到的零件圖見圖6、圖7。

圖6 零件圖像Fig.6 Part image

圖7 局部橢圓圖Fig.7 Partial ellipse
3)獲取橢圓亞像素邊緣:采用Canny 算子提取橢圓像素級別的邊緣;采用文中介紹的基于高斯擬合的亞像素邊緣檢測法,可提取出橢圓的亞像素邊緣,見圖8。

圖8 橢圓亞像素邊緣Fig.8 Elliptical subpixel edge
4)計算切線對與橢圓輪廓的切點對的坐標;取這些切點對連線的中點坐標作為橢圓中心坐標(x0,y0),鎖定長半軸、短半軸、方向角出現的角度區域;通過二分法不斷迭代逼近,估計橢圓長半軸、短半軸、方向角,當達到迭代停止閾值后(ε=0.1 mm),輸出計算結果,橢圓擬合完成。
本次實驗驗證了切線對不同旋轉角步長對橢圓擬合精度的影響,實驗中采用固定迭代閾值(0.1 mm),分別對比0.5°,1°,1.5°,2°,2.5°,3°,3.5°,4°,4.5°,5°旋轉角步長時橢圓的擬合結果,橢圓的實際參數及測量結果見表1。

表1 測量結果與實際值Tab.1 Measurement results and actual values
表1中的數均精確到小數點后三位,由于采用了亞像素邊緣提取算法及二分法迭代逼近方法,提高了橢圓擬合的精度,擬合結果可達到實際的零件檢測精度要求。表2為切線對在不同旋轉角度步長下,得到的橢圓擬合參數與實際值的偏差及對應的算法運行時間。圖9為通過表2中的橢圓擬合誤差繪制出的誤差變化曲線圖。

表2 橢圓擬合誤差Tab.2 Ellipse fitting error
由圖9中的擬合誤差曲線可知:橢圓中心坐標的誤差,隨著旋轉角步長β 的增大而增加;橢圓檢測算法的運行時間則相反,隨著旋轉角步長β 的增大而減小;在此次實驗中,橢圓中心的最大擬合誤差分別為0.074 mm、0.079 mm。算法在實際運用中,用戶可以根據實際的測量精度要求選取不同的旋轉角度步長,進行調節。

圖9 擬合誤差曲線Fig.9 Fitting error curve
算法在計算橢圓長半軸長、短半軸長、方向角時采用了二分法進行迭代計算提高了擬合精度,因此長半軸長誤差、短半軸長誤差、方向角誤差不會受到旋轉角步長變化的影響,最大擬合誤差分別為0.049 mm、0.049 mm、0.113°,通過二分法可以快速縮小迭代范圍,以達到快速、精確測量的目的。
本文提出了一種基于幾何對稱性的橢圓擬合算法,通過利用橢圓的中心對稱的性質及二分迭代逼近方法,計算出橢圓中心坐標,不斷逼近橢圓長短半軸長、方向角的實際值。此算法的優點在于:可以通過控制切線的旋轉角步長,及迭代閾值分別對橢圓的中心坐標、長短半軸長的擬合精度進行調整,在達到擬合精度的同時,最大限度提升了擬合效率。擬合結果可達到項目中零件檢測精度要求,經驗證可投入實際運用。