鐘華勇 葉建生 何高清
(合肥工業大學機械工程學院,安徽 合肥 230009)
隨著人工智能、機器學習和識別技術的快速發展,國內外對機器視覺的相關技術研究不斷深入。機器視覺在定位技術、智能識別技術、無人駕駛技術和智能機器人等方面占據著重要的地位[1-4]。基于OpenCV中的諸多函數算法,對圓心坐標點的確定,一度使用Hough圓變換識別圓輪廓特征,并且擬合得到圓的參數值[15-18],但該方法擬合得到的圓的參數不能符合基于機器視覺的圓心定位系統的精確度要求,其中的問題是沒有考慮到異常坐標點數據對圓心定位的整體影響。針對制造業水平的不斷發展對檢測技術提出高精度、高速度、低誤差的要求[17],尋求了另一種四分位數展布法處理數據異常值和基于最小二乘法擬合圓曲線相結合的方法。
基于機器視覺的圓心定位系統,是利用攝像頭對圓環柱體零件進行實時圖片采集。對采集到的圖片進行濾波,增強處理后,再將原圖片處理得到灰度圖像。利用Canny的邊緣檢測算法和輪廓提取技術,將得到的邊緣點坐標信息進行保存。接著對保存的邊緣點坐標先做異常坐標點的識別篩除和替代。最后利用最小二乘法擬合圓曲線,得到圓環柱體零件的中心點坐標。經試驗表明,該方法比直接利用Hough圓變換得到的圓心點坐標更精確,即保證了識別圓心點坐標后的進給設備的精確進給,并且提高了效率。
圓心定位系統和進給設備的硬件系統主要由工業攝像頭、伺服驅動器和電機等組成。其機械機構主要由進給掃查器、掃查小車、滑軌、掃查器軸向驅動輪和回水碗組成,如圖1所示。其中工業攝像頭安裝在回水碗結構的四周,攝像頭對圓柱形螺栓孔進行數據采集,分析出圓心所在坐標。進給掃查器和掃查器小車會根據得到的圓心坐標,移動到相應的位置,最后掃查器對螺栓孔四周進行掃查。

彩色圖像是由3個不同的分量組成的,即為三通道圖像。對彩色圖像進行直接處理,會大大增加系統的計算量。因此需要對采集到的圖像進行灰度化處理,即把RGB三通道的數據彩色圖像變為單通道的數據的灰色圖像[5]。灰度化后的圖像依然保留原圖像的特征信息,并且提高了系統的計算速度。
由于攝像采集設備硬件原因和外部環境干擾,獲取到的圖像往往會有噪聲混入。其中平滑處理作為減小圖像噪點或者失真,尤其在降低圖像分辨率的方面是一種重要手段。經過OpenCV中的幾種線性和非線性濾波算法的研究,發現中值濾波最適用于本系統。中值濾波是用像素點領域灰度值的中值來代替該像素點的灰度值。該方法在去除噪聲脈沖的同時又能保留圖像的邊緣細節,對于后面的邊緣檢測和輪廓提取大大有利。
邊緣檢測[16]的算法主要是基于圖像強度的一階和二階導數,但導數對噪聲很敏感。因此在進行濾波處理后,我們還需要對圖像進行增強,增強邊緣的基礎時確定圖像各點領域強度的變化值。經過增強后的圖像,往往領域中有很多的梯度值比較大。為此需要計算梯度幅度和方向,對這些邊緣點進行取舍,同時進行非極大值抑制進一步排除非邊緣像素,僅僅保留一些細線條。利用Canny的邊緣檢測算法,該算法使用了滯后閾值,滯后閾值包括高閾值和低閾值,以此來篩選出邊緣像素。
最終利用OpenCV中的輪廓查找函數和提取函數,將檢測到的圖像邊緣輪廓點的坐標數據記錄并保存。
對于數據的異常值通常以均值和方差為基礎來處理,但這種方法是假定數據符合服從正態分布,但實際數據情況復雜[6]。當數據不符合正態分布的時候,可以使用四分位數展布法對數據進行條件限制,篩除數據的異常值。四分位數展布法示意圖如圖2,它的識別標準為數據大于上截斷點或者小于下截斷點判定為異常值。

檢測到的邊緣點坐標為(xi,yi),i=1~N,N為邊緣點坐標的個數[14]。采用平均值法求解出圓心坐標值作為平均值中心點(a,b),公式如下:
a=∑xi/N;b=∑yi/N
計算出每個邊緣點(xi,yi)到平均值中心點(a,b)的距離平方,用Li2表示,如下:
將Li2按從小到大的順序進行排列得到數列X1,X2,…,Xn,其中位數Md記為:
利用皮爾遜經驗法[7-8]求眾數M記為:
M=ξ-3(ξ-Md) (ξ為樣本均值)
其中25%為下四分位用FL表示,75%處為上四分位用FU表示。
計算展布(間距)為:
dF=FU-FL
(為上四分位數減去下四分位數)
最小值點(下截斷點):FL-1.5dF
最大值點(上截斷點):FU+1.5dF
數據集中任意數用X表示:
FL-1.5dF 上面的參數1.5是根據經驗所得,效果很好。把異常值定義為小于下截斷點、或者大于上截斷點的數據。 選取眾數暫代異常值,數據集的眾數比平均值具有更強的代表性,理論上眾數可以不受極端異常值的影響。選取眾數暫代異常值,同時保證了數據的完整性。具體為任取數列X1,X2,…,Xn中眾數M所代表的邊緣點坐標(xM,yM)來代替異常值LN2所代表的邊緣點坐標(xN,yN)。篩除異常值并用眾數替代后最終得到處理后的邊緣點坐標為(xi,yi),i=1~N。 最小二乘法是一種數學優化技術,它通過最小化誤差的平方和找到一組數據的最佳函數匹配[9-13]。最小二乘法是用最簡的方法求得一些絕對不可知的真值[19],而令誤差平方之和為最小。最小二乘法擬合的圓曲線方程為: (x-A)2+(y-B)2=R2 對于最小二乘法的圓擬合,其誤差平方的優化目標函數為: 式中:(xi,yi)為處理后的邊緣點坐標,N為邊緣點的個數。 為了避免平方根,用下面的改進來定義誤差平方,同時得到一個最小化問題的直接解,定義如下: 令a=-2A;b=-2B;c=A2+B2-R2化簡為: 最小二乘法得到的參數a、b、c應使得E取得最小值,由多元函數極值必要條件得: (1) (2) (3) 將式(1)和式(2)寫成矩陣形式為: (4) 結合矩陣(4)和式(3)可得: 從而得到最佳擬合圓的圓心坐標為(A,B),半徑為R。 以公稱內徑尺寸為100 mm圓環柱體零件為例,繪制邊緣點坐標散點圖如圖3所示。可以看出不加處理的坐標數據有部分邊緣點偏離圓的軌跡,若直接擬合則會使擬合后圓心位置產生偏差。根據檢測到的邊緣點坐標為(xi,yi),i=1~N,N為邊緣點坐標的個數,采用平均值法求解出圓心坐標值作為平均值中心點(319.902 8,238.766 7)。計算出每個邊緣點(xi,yi)到平均值中心點(319.902 8,238.766 7)的距離平方Li2,繪制四分位數展布法的散點圖如圖4所示。以Li2繪制正態密度曲線直方圖如圖5所示。 當圓環柱體零件的內圓柱度過大或者零件的圓表面粗糙度過大有細微紋路時,就會得到如圖3偏離圓擬合曲線的異常值坐標。由圖4知,四分位數展布法可以檢測出這些異常數據,即上部分和下部分的異常數據值。同時由圖5可知,每個邊緣點到平均值中心點的距離平方Li2不符合正態分布。 對Li2使用四分位數展布法檢測到的結果如表1所示。 表1 四分位數展布法檢測到的結果 由表1可知四分位數展布法對于數據異常值的識別率高于3σ準則法。因為3σ準則法篩選數據異常值是假定數據符合正態分布,而由圖5正態密度曲線直方圖可知檢測數據并不符合正態分布。因此采用四分位數展布法篩選數據異常值更具有優勢。 根據四分位數展布法,上截斷圓之外的邊緣點坐標和下截斷圓之內的邊緣點坐標即為異常點坐標值。任取檢測數據眾數所代表的邊緣點坐標如(248,169)代替被篩除的邊緣點坐標,從而保證樣本的個數不變。篩除替代異常值后的邊緣點坐標散點圖如圖7所示。 根據最小二乘法擬合圓曲線的原理,不對數據進行異常值篩除直接擬合圓曲線如圖8所示,而對篩除替代異常值后的邊緣點坐標進行圓曲線擬合如圖9所示。 由表2可知篩除替代異常值后擬合的圓的半徑和公稱內徑尺寸為100 mm圓環柱體零件更匹配。并且經過基于機器視覺的圓心定位系統和進給設備的實驗驗證,篩除替代異常值后擬合圓曲線得到的圓心坐標更符合。因此,四分位數展布法處理數據異常值和基于最小二乘法擬合圓曲線相結合的方法,可以提高圓心坐標點定位的精確度,并提高了進給設備的準確度。 表2 不同方法參數結果對比 針對基于OpenCV圓心坐標精確定位,采用四分位數展布法處理數據異常值和基于最小二乘法擬合圓曲線相結合的方法所獲得的圓心坐標,有效提高了定位系統的精度,同時也可使進給設備根據圓心坐標數據進行精確進給。3.2 眾數代替異常值
3.3 最小二乘法擬圓曲線




4 實驗










5 結語