陳甦欣,韓 暑,涂德江,晏文彬
(合肥工業(yè)大學機械工程學院,合肥 230009)
軸承是各類機械設備的重要基礎零部件,隨著現(xiàn)代工業(yè)的快速發(fā)展,對軸承的精度和壽命提出了更高的要求[1]。軸承的幾何尺寸是生產加工中非常關鍵的參數(shù),傳統(tǒng)的尺寸檢測方法大部分是通過游標卡尺、千分尺等進行接觸式測量獲取軸承的幾何尺寸,具有精度低、效率低、且易引入人為誤差的特點,不再適應現(xiàn)代化的生產需求。
目前改進的軸承尺寸檢測技術有很多,包括超聲波探聲法,激光掃描法以及視覺檢測法,其中超聲波和激光檢測方法具有較好的檢測效果,但成本較高。視覺檢測法具有非接觸、動態(tài)范圍大及信息豐富等優(yōu)點,解決了傳統(tǒng)檢測方法精度低、勞動量大、工作效率低等問題。劉科文等[2]使用了最小二乘法擬合邊緣像素,可以獲得軸承的內外徑尺寸,但是達不到高精度的要求。GAO Y等[3]采用了軸承側面投影方法檢測軸承的外徑尺寸,但無法應用于軸承的內徑尺寸檢測。朱??档萚4]提出了一種基于圖像深度信息集的Hough圓檢測方法,對軸承進行了邊緣特征提取。該方法具有對噪聲不敏感的優(yōu)點,在一定程度上提高了軸承尺寸檢測的精度,但是需要在參數(shù)空間進行累計,計算量較大。為了解決這一問題,本文重點研究了一種基于g2o(圖優(yōu)化)的尺寸檢測優(yōu)化方法,該方法具有高精度、高效率的特點,很好的解決了軸承在檢測過程中精度與時間復雜度協(xié)調的問題。
圖像的信號在形成及傳輸?shù)倪^程中夾雜著各類的噪聲[5],需要對圖像進行濾波處理以降低噪聲。常用的濾波處理有高斯濾波、均值濾波及中值濾波等。為了達到去噪保邊的目的,使用雙邊濾波[6]對圖像進行濾波,處理后的圖像如圖1所示。
圖1 雙邊濾波及局部放大圖
為了簡化或改變圖像的表示形式,需要對圖像進行分割[7]。首先,使用閾值分割將灰度圖像轉換為二值化圖像,再使用形態(tài)學操作排除圖像中小型黑洞,結果如圖2所示;其次,對二值化圖像中所有連通域的面積進行計算,通過設置閾值剔除小于該面積的連通區(qū)域,得到最終的感興趣區(qū)域圖像如圖3所示。
圖2 閾值分割 圖3 連通域處理
邊緣檢測技術的精確度直接影響測量結果的好壞。常用的像素級邊緣檢測算子有Laplacian算子、Sobel算子、Roberts算子和Canny算子等[8]。其中,使用Canny算子進行像素級邊緣檢測的效果較好,如圖4所示。
圖4 Canny邊緣檢測效果圖
軸承尺寸檢測對精度要求很高,故考慮亞像素級別的邊緣檢測。Zernike矩法是一種常用的亞像素邊緣檢測方法,圖5為亞像素邊緣檢測模型,其中直線L與圓相交的弦代表理想邊緣,b和b+n為邊緣兩側的灰度值,d為原點到L的垂直距離,圖6繞原點逆時針旋轉θ度得到圖7。
圖5 原始邊緣示意圖 圖6 旋轉后邊緣示意圖
利用Zernike矩旋轉不變性[9]可以計算出n,d,θ,若像素點滿足n≥τ∩d≤δ,將像素點代入亞像素邊緣點坐標計算公式:
其中,(x′,y′)為亞像素邊緣點坐標,(x,y)為像素邊緣點坐標,N為卷積核的大小,δ通常設置為單個像素長度的0.707。τ作為人工選擇的閾值,其大小對圖像邊緣的判斷具有十分重要的影響,如果τ取值過小,會檢測出很多偽邊緣,相反,若τ過大,真實邊緣會被丟失,所以需要反復調整才能取得較理想的檢測結果。圖像的灰度值和階躍灰度值在同一像素點處具有相同的變化趨勢,可以利用Otsu法計算目標和背景基于階躍灰度的最大類間方差,求得最優(yōu)的階躍灰度閾值τ,更快的完成檢測過程。
在機器人領域和計算機視覺中,許多優(yōu)化問題最后都歸結于求非線性誤差函數(shù)的最小值問題[10],通常對非線性最小二乘問題的求解有一些標準的方法,如Gauss-Newton(GN)和Levenberg-Marquardt(LM)等。然而,這些解法在求解的過程中需要進行大量的矩陣運算,使用g2o可以簡化求解的過程。g2o是一個通用的圖優(yōu)化開源框架,該框架集成了Eigen矩陣計算庫,具有強大的算力,部分框架如圖7所示。
圖7 g2o的部分框架圖
從圖7中可以看出,優(yōu)化算法可以調用兩個求解器,其中SparseBlockMatrix用來計算Jacobian和Hessian矩陣,linearSolver是用于線性方程求解。用戶可以根據(jù)具體的誤差函數(shù)選擇合適的迭代算法,并對迭代算法中的參數(shù)進行調整,從而方便、快速地求解非線性最小二乘問題。本文在選擇求解器與迭代算法進行曲線擬合時,由于迭代算法初始值的設置及異常數(shù)據(jù)的存在,導致優(yōu)化算法并不穩(wěn)定,因此,需要設置合適的迭代初始值并對異常數(shù)據(jù)進行適當處理。
通常最小二乘問題可以表示為:
對上式進行泰勒公式展開,保留一階梯度得:Δx*=-JT(x),稱為最速下降法;若保留二階梯度得:HΔx*=-JT(x),稱為GN法。最速下降法和GN法雖然直觀,但在實際運用中最速下降法收斂速度比較低,GN法需要計算復雜的Hessian矩陣,計算結果不穩(wěn)定。相比較而言,LM算法引入信賴區(qū)域思想,認為近似只在一定范圍內成立,如果近似太小,則縮小范圍,反之,則增加近似范圍,保證了其增量方程的正定性;但是本文在使用該算法進行優(yōu)化時發(fā)現(xiàn)算法的穩(wěn)定性不是很好,主要是因為非線性優(yōu)化的所有迭代求解方案,都需要提供一個良好的初始值,不同的初始值往往會導致不同的優(yōu)化結果。因此,為了避免LM算法容易陷入局部極小值,在運行迭代算法之前,隨機選擇三個坐標使用最小二乘法擬合曲線方程,為LM算法提供變量的初始值,從而提高算法的穩(wěn)定性。
最小二乘法使用了平方函數(shù)衡量偏差[11],使得異常數(shù)據(jù)的出現(xiàn)對最小二乘法的優(yōu)化結果產生了破環(huán)性的影響,使用魯棒性代價函數(shù)可以減少異常數(shù)據(jù)對誤差函數(shù)的影響。常用的魯棒性代價函數(shù)有Huber 函數(shù),具體形式如下:
該函數(shù)可以將誤差大于或等于閾值b的數(shù)據(jù)點按照線性增長而非二次增長,但是該函數(shù)并沒有完全消除異常數(shù)據(jù)對優(yōu)化結果的影響。于是,針對本文中出現(xiàn)的異常數(shù)據(jù)做以下分析處理:
(1)若異常數(shù)據(jù)使用Huber函數(shù)處理后,對最終優(yōu)化結果的影響在容錯范圍內,則無需對異常數(shù)據(jù)做進一步處理,優(yōu)化算法結束;
(2)若異常數(shù)據(jù)使用Huber函數(shù)處理后對最終優(yōu)化結果影響較大,則需要對異常數(shù)據(jù)進行二次處理,優(yōu)化算法繼續(xù)進行;使用迭代算法得到的曲線方程,把所有的數(shù)據(jù)代入這個曲線方程求得殘差后,通過設置容限誤差來區(qū)分inliers和outliers,從而剔除異常數(shù)據(jù)。最后,對篩選后的數(shù)據(jù)再次使用迭代算法,可以得到較好的優(yōu)化結果。
本文曲線擬合的誤差函數(shù)為:
上式,待估計變量(a,b)為圓心坐標,c為半徑;(xi,yi)為亞像素坐標。
為了使用 g2o,需要將曲線擬合問題抽象成圖優(yōu)化。該圖由若干個節(jié)點,以及連接著這些節(jié)點的邊組成。其中,節(jié)點表示優(yōu)化變量,邊表示誤差項。在曲線擬合問題中,整個問題只有一個節(jié)點,該節(jié)點包含曲線模型的3個參數(shù)a、b、c,而每個帶噪聲的數(shù)據(jù)點,即圖優(yōu)化的邊,構成了一個個誤差項。該邊是一元邊 ,即只連接一個節(jié)點,如圖8所示。
圖8 g2o曲線擬合模型
在g2o中建立該模型進行優(yōu)化,步驟如下:
(1)定義節(jié)點和邊的類型;
(2)構建圖;
(3)異常邊判斷與處理;
(4)選擇迭代算法;
(5)調用 g2o 進行優(yōu)化,返回結果。
通過代碼編程,優(yōu)化模型構建,可以得到軸承內外徑擬合部分優(yōu)化過程參數(shù),如圖9所示,包含每次迭代時間、添加邊的個數(shù)、總的迭代次數(shù)與時間以及尺寸參數(shù),擬合優(yōu)化結果如圖10所示。
圖9 軸承內外徑擬合部分優(yōu)化過程參數(shù)
圖10 軸承內外徑擬合優(yōu)化結果
尺寸檢測主要分為圖像預處理、邊緣檢測、內外點篩選、異常數(shù)據(jù)處理、使用g2o優(yōu)化曲線5個部分,如圖11所示。
圖11 基于 g2o(圖優(yōu)化)的尺寸檢測優(yōu)化方法
仿真實驗在Linux環(huán)境下進行,CPU采用Intel Core i7處理器,內存為8 GB,編程語言采用C++。為了證明方法的有效性,在Visual Studio環(huán)境下使用基于g2o(圖優(yōu)化)的優(yōu)化方法對軸承圖像進行內外徑尺寸檢測,對軸承尺寸檢測系統(tǒng)的精確度及時間復雜度進行評估。
精確度是驗證方法效果的主要準則,精度的好壞會直接影響方法的測量結果。本文使用同心度、平均值及標準差來衡量檢測精度,其中同心度表達式為:
其中,(x1,y1) 為軸承的外圓圓心坐標;(x0,y0)為軸承的內圓圓心坐標。
檢測精度結果如表1所示,軸承尺寸檢測系統(tǒng)在像素上的精度可以達到0.5個像素,軸承內外徑測量誤差在0.015 mm范圍內,且檢測系統(tǒng)的穩(wěn)定性較好。
表1 軸承尺寸測量結果
時間復雜度是驗證算法效率的重要標準,時間復雜度的高低會嚴重影響算法的運行效率。在軸承內外徑尺寸檢測的過程中,通過chrono函數(shù)得到最小二乘圓檢測法,Hough圓檢測法及本文方法的運行時間。具體時間如表2所示。
表2 時間復雜度對比 (ms)
通過表2 的對比結果可以看出,基于g2o(圖優(yōu)化)的尺寸檢測優(yōu)化方法在時間復雜度上遠低于其他兩種方法。這是因為g2o中不僅使用大量的類模板來提高運行效率,還使用了 Eigen 線性代數(shù)庫來達到較高的計算性能,從而降低了時間復雜度。
本文的重點是基于g2o(圖優(yōu)化)的尺寸檢測優(yōu)化方法的研究。以圖像濾波處理、形態(tài)學操作、閾值分割為基礎,消除了圖像中的無關信息,增強了有關信息的可檢測性;采用亞像素邊緣檢測獲取亞像素邊緣坐標,提高了軸承尺寸檢測的精度;通過最小二乘法擬合初始曲線為迭代算法提供初始值,提高了迭代算法的穩(wěn)定性;使用魯棒性代價函數(shù)處理異常數(shù)據(jù),并對優(yōu)化結果影響較大的異常數(shù)據(jù)進行二次處理,減小了異常數(shù)據(jù)對優(yōu)化結果的影響;把處理后的數(shù)據(jù)導入g2o中進行優(yōu)化,從而得到圓心坐標和半徑尺寸,提高了運行效率,降低了系統(tǒng)的時間復雜度。
實驗表明,基于g2o(圖優(yōu)化)的尺寸檢測優(yōu)化方法達到了工業(yè)級的精度要求且算法的時間復雜度優(yōu)于其他常規(guī)方法,為其它圓形零件的尺寸檢測提供參考。