宋韶輝,蔣佳佳,段發(fā)階
(天津大學 精密測試技術及儀器國家重點實驗室,天津300072)
近年來,視覺測量技術因可以快速準確地實現(xiàn)非接觸測量被大量應用到航天、高精尖設備儀器制造等領域[1-3]。測量者常在被測對象上制作圓標記點,通過定位標記中心來實現(xiàn)被測物體定位[4]。因此,圓標記中心定位精度直接影響整個測量系統(tǒng)的精度,研究如何提高圓標記中心定位精度具有十分重要的意義[5]。
常用的圓標記中心定位方法有形心法、Hough變換和最小二乘曲線擬合法。形心法要求圖像灰度分布均勻,對標記點質量要求較高;Hough 變換法計算開銷較大;最小二乘曲線擬合法因實現(xiàn)簡單且計算量小,得到廣泛應用[6]。由于最小二乘擬合法運用邊緣點擬合中心,所以邊緣定位精度直接影響了圓心定位的精度[7]。為提高定位精度,學者們提出了多種亞像素邊緣檢測算法,如文獻[8]用空間矩來檢測邊緣,可以得到較精確的亞像素邊緣但計算量較大,文獻[9-10]提出利用Zernike 矩來進行邊緣檢測,但由于人工選擇閾值,效率不高且極易誤判,文獻[11]采用梯度質心法進行圓標記亞像素邊緣定位,需確定邊緣的梯度方向和邊緣區(qū)域求出高精度邊緣點。傳統(tǒng)的梯度質心法在確定圓標記邊緣梯度方向時根據(jù)像素級邊緣點的橫縱分量的比值,易受噪聲影響,進而影響中心定位精度。
針對上述邊緣梯度方向確定中遇到的問題,本文運用徑向截面掃描法[12],以圓標記點徑向表示邊緣梯度方向;同時對傳統(tǒng)大津法進行改進,根據(jù)粗擬合圓心和半徑劃定大津法計算區(qū)域,得到準確的邊緣區(qū)域,進而高精度地實現(xiàn)圓標記點中心定位。
圓標記中心定位算法步驟[13]:像素級邊緣定位、亞像素級邊緣定位、中心定位。像素級邊緣定位算法對噪聲較為敏感,但進行降噪處理會使得邊緣信息部分丟失,如圖1 所示,在降噪后邊緣梯度峰值下降且偏移。因此本文對定位算法流程進行改進,運用粗定位坐標直接在原始圖像上的邊緣區(qū)域內進行亞像素邊緣搜索,有效地避免了平滑降噪處理造成的邊緣梯度信息的損失,具體流程如圖2 所示。
圖1 邊緣徑向截面梯度幅值曲線Fig.1 Edge radial section gradient amplitude curve
圖2 改進的分步圓心定位算法流程Fig.2 Center of the circle algorithm flow chart
本文運用Canny 算法進行像素級邊緣的粗定位,Canny 算法[14]是基于邊緣檢測最優(yōu)準則的一種像素級邊緣檢測算法,雙閾值的設置可有效地濾除噪聲和減少邊緣誤判。
利用得到的像素級粗定邊緣擬合出橢圓方程,對于平面橢圓的一般方程有:
運用最小二乘法擬合可得到參數(shù)B、C、D、E、F,即可得到粗定中心(x0,y0):
利用梯度進行亞像素邊緣提取的一個重要的前提是要確定邊緣梯度方向。本文采用徑向截面掃描確定邊緣梯度。如圖3 所示,各徑向截面上的梯度呈類高斯分布,如圖4 所示,在圓周上等間隔地擬合得到對應邊緣點的徑向截面,在徑向截面上提取亞像素邊緣點作為圓周點做最小二乘擬合,即可求得精確的標記點中心[12]。每一邊緣像素點對應徑向的直線方程由粗定圓心與粗定邊緣點擬合得到:
式中:(x0,y0)為粗定圓心坐標;(xre,yre)為粗定邊緣點坐標。
圖3 標記點邊緣梯度幅值徑向截面示意圖Fig.3 Schematic diagram of radial section of gradient amplitude of marking point edge
圖4 徑向截面掃描法原理圖Fig.4 Schematic diagram of radial section scanning method
在標記點徑向上以粗定邊緣點為中心在兩側運用雙線插值法,以0.1 像元為步長插值得到徑向梯度分布。如圖3 所示,邊緣梯度區(qū)域內的梯度幅值大于其他區(qū)域,因此可以通過閾值過濾來確定邊緣區(qū)域并排除噪聲干擾。
本文基于大津法進行邊緣閾值確定。大津法[15]的判定準則為邊緣區(qū)域和背景區(qū)域的類間方差,取得最大類間方差時T 為最佳閾值。設N 個像素點的圖像中,梯度幅值為i 的像素點個數(shù)為ni。則梯度幅值i 出現(xiàn)的概率為Pi=ni/N。閾值t 將圖像劃分為邊緣與非邊緣兩類,出現(xiàn)的概率分別為與均值分別為平均梯度幅值為,則可以得到兩類的類間方差:
運用大津法計算標記點邊緣閾值時,非標記點區(qū)域像素數(shù)量變化會使得閾值不穩(wěn)定,由于曝光不均勻等問題,每個標記點成像質量不盡相同。因此本文對傳統(tǒng)大津法進行改進,如圖5 所示,通過每個標記點的粗擬合橢圓得出長軸R,在以粗定中心(x0,y0)為中心,以4R 為邊長的正方形區(qū)域內進行大津法閾值確定,得到每個標記點穩(wěn)定準確的梯度閾值。
圖5 改進的區(qū)域大津法作用的區(qū)域Fig.5 Improved area of Otsu algorithm
將徑向上的梯度幅值經過閾值過濾后得到許多連續(xù)的片段,取包含粗定邊緣的連續(xù)區(qū)域E 得到徑向邊緣區(qū)域, 利用區(qū)域內梯度值作為補充信息,采用梯度質心法可以確定亞像素級邊緣[11]。以梯度幅值為權值求質心可得亞像素邊緣坐標,有:
式中:(xe,ye) 為亞像素邊緣點;Gxi和Gyi分別為點(xi,yi)在x 方向和y 方向的梯度幅值。
2.1.1 仿真標記點生成
本文采用基于高斯金字塔分解的方法來生成仿真圓標記點圖像,高斯金字塔分解是對圖像進行的一系列低通抽樣濾波。如圖6 所示采樣過程,設處理前原圖像為W0,將W0代入遞推公式(7)中得到圖像W1,該運算相當于對圖像先進行5×5 的高斯濾波后再進行間隔抽樣, 如此迭代獲得圖像集合{W0,W1,W2,…}稱為高斯金字塔。第k 階圖像W0的每個像素點都有遞推公式:
式中:ω(m,n)為高斯生成核;wk(i,j)為Wk上像素點。
圖6 高斯金字塔采樣過程Fig.6 Gaussian pyramid sampling process
生成仿真標記點具體流程如下:
(1)生成一張高分辨率的圓形標記點圖片W0,標記點直徑為D;
(2)采用Canny 算法得到邊緣坐標,擬合得到標記點中心(x0,y0),定位精度為0.1 像元[11];
(3)運用高斯金字塔分解得到Wn,圖像尺寸縮小為W0的,Wn上的標記點(x0n,y0n)為
2.1.2 仿真實驗結果及分析
按照2.1.1 節(jié)的流程,對6400×6400 像素圖像處理得到200×200 像素圖像,得到仿真標記點如圖7 所示。此時用來作為標準中心點坐標的最大誤差為0.0031 像元,在此實驗中可以忽略。得到的中心定位結果如表1 所示。
圖7 仿真圓標記圖像Fig.7 Image of simulated circle marker
設x 方向的偏差為dx,y 方向的偏差為dy,則總偏差為計算可得本算法最大總偏差為0.012 像元, 且本算法在標記點直徑較小的情況下仍能保持良好的定位精度。
表1 仿真圓標記定位偏差(像元)結果Tab.1 Simulate the result of the positioning deviation(pixel) of the circle mark
根據(jù)文獻[5]中的方法,選取不同直徑的3 個標記點,保持拍攝設備與標記點靜止,連續(xù)拍攝50 幅圖像,計算標記點中心定位坐標的標準差,拍攝過程中由于空氣擾動,曝光時間等原因,等同于對標記點添加了不同的噪聲,其標準差可有效地反應算法的抗噪能力和定位精度。結果如表2 所示。
設x 方向的標準差為δx,y 方向的標準差為δy,δx則總標準差為。經計算,本文算法最大總標準差為0.0198 像元,與仿真圓標記點仿真實驗得出結果一致,定位精度優(yōu)于0.02 像元。
表2 實際標記點擬合標準差(像元)結果Tab.2 Actual markers fit the standard deviation(pixel) results
本文提出了一種高精度提取視覺測量系統(tǒng)中圓標記點中心坐標的方法。該算法以過邊緣點的圓標記徑向作為該點的梯度方向,保證了邊緣梯度方向的準確性;改進了傳統(tǒng)的大津法,根據(jù)標記點的粗定圓心和半徑劃定了大津法的計算區(qū)域,解決了非標記點區(qū)域大小變化時大津法閾值不穩(wěn)定的問題,得到高精度的標記點中心。經仿真實驗和實際圖像驗證均可以達到0.02 像元的圓心定位精度,為視覺測量系統(tǒng)提供了的高精度的位置參數(shù)。