丁建軍 蘇 通 朱勇杰 馬俊智 孫 超
(江漢大學物理與信息工程學院 湖北 武漢 430056)
圖像處理技術發(fā)展至今,形成了多種方法,使人們可以根據實際需求選擇。野外失火時需要檢測火焰發(fā)生地點,用到基于火焰顏色像素值的通道檢測法,這種方法由于涉及到多種閾值的設定而效率較低[1];進行路面裂紋檢測時用到的方向可調濾波方法,是一種方向可選的卷積算法,本質上則是2D高斯濾波,這種方法會造成一定程度的邊緣模糊[2];常見的是自動化生產中機械手對工件的識別抓取,獲取的圖像常用中值濾波進行處理,當工件邊緣細節(jié)不明顯時也能較好地去除噪聲,然而在處理細節(jié)較多的工件時表現不甚理想[3-5]。
Akar等[6]用Matlab軟件對圖像濾波方法進行了比較分析。各種方法的優(yōu)缺點在一種五金工件的圖像處理過程中也有提及,遺憾的是,文章中選擇的方法是常用方法——中值濾波[4]。根據以上比較分析,考慮一種方法可以在圖像處理時模糊其他不重要的區(qū)域,強化邊緣和細節(jié)部分。
得益于計算機軟件技術的快速發(fā)展,圖像處理可以通過很多程序實現,其中Halcon軟件擁有很多功能強大的算子,通過組合使用能夠達到我們的目的[7-9]。早前,Kamei等[10]在濾波設計理論方面就提供了幫助,現在本文結合該理論和Thi等[11]的機器學習思維模式,對高斯濾波進行優(yōu)化,將其加入一個新規(guī)則后,設置合理閾值和步長進行測試。最后結合現在的圖像處理技術進行特征提取[5,12-13],實現目標。
Halcon中包含的的濾波方法很多,通過比較常用的三種濾波方法找到基本思路和改進點。表1中列出了這三種濾波方法的原理和特點。
表1 三種濾波方法比較分析
三種濾波方法的公式化描述依次如式(1)-式(3)所示。
(1)
g(x,y)=med{f(x+k,y+l),(k,l∈W)}
(2)
(3)
式中:g(x,y)和f(x,y)分別代表坐標(x,y)位置經過處理后和處理前的圖像像素值;m代表鄰域窗口點的數量;med代表取中值;W是鄰域窗口大小,通常是3×3或5×5;(x+k,y+l)代表該鄰域窗口里不同位置點的坐標值;σ是鄰域窗口里像素值的標準差。
不采用均值濾波和中值濾波是因為汽車連桿工件WD-2的細節(jié)部分比較多,這兩種方法在去噪的同時容易破壞細節(jié),使特征識別趨于困難。
權重因子的加入使高斯濾波在處理圖像細節(jié)方面更具有合理性,離目標像素越近的點對最終結果的貢獻越大,然而圖像的整體出現模糊現象,不能有效突出工件邊緣輪廓,所以特征識別就仍然有改善的空間。
從上面三種常用濾波方法可以看出,濾波的思路是用模板中特定的像素值來替換模板中心點的像素值。而高斯濾波表現相對較好是因為加入了權重因子,從這個思想出發(fā),研究一下高斯濾波權重的分布,其公式化描述如下:
(4)
(5)
式中:c是基于原像素點空間距離的權重函數;kd是用來將結果進行單位化的功能函數。
高斯濾波中加入的是與空間距離相關的權重因子,如果對某一圖像的全局采用這種加權計算,必然會引起全圖的模糊。思考的方向是,在汽車連桿工件WD-2的邊緣處強化某一種濾波處理,而在其他背景里弱化這種處理。于是新的權重分布加入進來以便解決這個問題,這個權重分布比較可靠的是像素間相似度,因為工件邊緣與背景的像素值差別通常很大,意味著可以將邊緣有效強化,新規(guī)則加入后的公式化描述如下:
(6)
(7)
式中:s是基于原像素點相似程度的權重函數;k為將結果進行單位化的功能函數。
加入這個權重后,像素值相差大的地方(汽車連桿工件WD-2邊緣部分)會被直接分辨出來,從而使工件輪廓變得清晰;圖像中的其他區(qū)域因為像素間相似度很高,新權重因子的值接近1,則相當于進行高斯濾波。然而由于權重因子的增加,算法的效率會有所降低,實驗中利用圖像的一些特性設置不同閾值,將函數分解,來實現方法的加速。
灰度最大化處理方法選用直方圖法,由于將圖像中相同灰度值的點放在一個直方圖中,所以計算代價較小,利用了這種方法在灰度最大化處理中的高效率性。
最后的特征提取選用Halcon中的累計直方圖方法,這個方法的好處是確定一個閾值后,采用機器學習思維模式,設置一個合理步長,不斷嘗試后能得到較理想的另一閾值,同一環(huán)境下的后續(xù)實驗均可以設置為相同的閾值。
本文研究路線如圖1所示。
圖1 研究路線
本文利用已有的機器視覺檢測系統(tǒng)獲取工件圖像,檢測系統(tǒng)如圖2所示。
圖2 機器視覺檢測系統(tǒng)
圖2中各設備參數及工作條件如下:計算機的處理器頻率為3.40 GHz,雙目相機為德國Basler相機,相機分辨率1 280×960,使用鏡頭視角8 mm,兩相機水平距離120 mm,相機豎直放置,距離待測工件平臺450 mm。獲取圖像時的具體環(huán)境為:實驗室面積30 m2,六盞40 W日光燈正常照明。待測工件所在平臺的反光會使相機接收到的光照亮度不均勻,從而產生一些高斯噪聲。圖像獲取方法為:將工件擺放在相機下方平臺上,對該工件連續(xù)拍攝2幅圖片,作為對比實驗的原始圖像A1、B1,然后將該工件擺放其他位置重復操作,直到獲取100幅原始圖像。圖像的前期處理為:將圖像像素統(tǒng)一設置成800×600,按位置信息分成兩組,依次為A1、A2、A3、…、A50,B1、B2、B3、…、B50。選擇原始圖像A1作為對比實驗的處理對象進行說明,原始圖像如圖3所示。
圖3 待測工件原始圖像
先用高斯濾波方法來對圖像進行處理,試圖消除噪聲,主要的程序為:
gauss_filter(Image,ImageGauss,5)
算子中最后一個值設置的是濾波器大小,值越大,則分配權重越均勻,圖形越平滑,但同樣意味著圖像會更模糊,增益大于5時容易導致濾波溢出,輸出效果不理想,所以實驗中選取Size=5。
將得到的圖片ImageGauss進一步做二值化處理,主要的程序為:
equ_histo_image(ImageGauss,ImageEquHisto)
scale_image(ImageEquHisto,ImageScaled,1.0,0)
equ_histo_image將圖像灰度直方圖均衡化,scale_image中的后兩個值Mult和Add根據最佳選取規(guī)則確定,實驗中通過式(8)和式(9)計算得出。
Mult=255/(Gmax-Gmin)=1.0
(8)
Add=-Mult×Gmin=0
(9)
式中:Gmax和Gmin分別是圖像的最大像素值和最小像素值。
最后進行工件輪廓提取,選取工件前半部的圓作為特征,主要的程序如下:
edges_sub_pix(ImageScaled,Edges,‘canny’,1,10,43)
這個算子存在兩個閾值,實驗中通過灰度直方圖中像素值的分布確定低閾值為10后保持不變,對高閾值設置步長為1,從10開始增加,不斷嘗試得到較理想的高閾值。
最后得到的結果如圖4-圖8所示。
圖4 ImageGauss
圖5 ImageScaled
圖6 ImageGauss灰度直方圖
圖7 ImageScaled灰度直方圖
圖8 特征提取1
實驗步驟與高斯濾波實驗相同,開始時調出圖像灰度分布,鎖定程序應用窗口范圍,在濾波程序中用到改進方法,核心程序為:
bilateral_filter (Gj,Gj,ImageBilateral,5,20,[],[])
equ_histo_image(ImageBilateral,ImageEquHisto)
scale_image(ImageEquHisto,ImageScaled1,1.0,0)
edges_sub_pix(ImageScaled1,Edges,‘canny’,1,12,41)
程序說明及相關參數選擇情況如下。
bilateral_filter稱為雙邊濾波算子,在原有的高斯濾波中加入了連接圖像進行過渡,連接圖像一般為原始圖像,可以凸顯邊緣,同時模糊其他區(qū)域。第一個參數值代表的是高斯濾波器大小,考慮到平滑度和輸出效果,仍然設置成Size1=5。第二個參數值代表的是相似度權重,觀察圖像灰度值分布,相似度的變動幅度在15到25之間有較好輸出效果,以15為起點、步長為0.5逐漸增加相似度權重,在其為20時得到較好的輸出圖像,因此設置Size2=20。需要說明的是,步長設置根據機器學習的思維,值太小則嘗試次數過多,值太大則容易錯過最佳值,兼顧效率和結果質量,步長取0.5是合適的。
equ_histo_image將圖像灰度直方圖均衡化,輸出像素值分布較均勻的圖像。scale_image對圖像做比例運算,其中乘數因子(第一個參數值)和加數因子(第二個參數值)選取規(guī)則和高斯濾波相同,該運算實現圖像的二值化處理。
edges_sub_pix進行輪廓特征提取,經過程序(未列出)鎖定工件前半部的圓,‘canny’使緊接著的參數alpha值越大,邊緣細節(jié)越少。本文的目的是使細節(jié)盡可能多地體現出來,所以alpha應盡量小,然而其值過小會導致圖像變黑,實驗中選取alpha=1是合適的。低閾值和高閾值的選取規(guī)則同高斯濾波實驗一樣,通過灰度直方圖的分布確定低閾值為11,對高閾值設置步長為1,從11開始增加,不斷嘗試得到較理想的高閾值。這里,理想的圖像輸出結果是根據顯示的輪廓邊緣線條判斷,高閾值過大會導致邊緣線條數量多且雜亂無序,實驗中觀察到高閾值為41時比較理想,且偏差在3以內對結果的影響可忽略。
最后得到的輸出結果如圖9-圖13所示。
圖9 ImageBilateral
圖11 ImageBilateral灰度直方圖
圖10 ImageScaled1
圖12 ImageScaled1灰度直方圖
圖13 特征提取2
能直觀感受到圖13相對于圖8,模糊了其他背景區(qū)域,而在邊緣部分更加凸出。從濾波后的灰度直方圖也能發(fā)現,圖11相對于圖6,相鄰灰度的直方圖高度變化沒有這么平滑,灰度變化的范圍也相對縮窄,圖11中某些灰度對應的點明顯多于相鄰區(qū)域,這些點處于變化較快的邊界上。最后用Imagetest軟件做評測,這個軟件便于我們從數據上了解圖像變化,而不僅限于直觀感受。評測結果如圖14和圖15所示。
圖14 ImageGauss解像力
圖15 ImageBilateral解像力
從兩幅解像力數據圖中可以看出,改進方法處理后的圖像,解像力的分值發(fā)生了突變,選取3個突變峰值,通過對比,這些分值突變對應的點所在位置就是工件的邊緣輪廓點。以上結果說明,本文方法在圖像特征識別上的表現更好。
同時對之前分組的圖像分別進行兩種方法處理,A組采用高斯濾波方法,B組采用加入新權重的濾波方法,得到輸出圖各50幅,利用圓的特征識別程序進行測試,高斯濾波方法有效識別圖像48幅,識別率為96%,改進方法有效識別圖像50幅,識別率為100%。結果說明,本文方法提升了識別率。
識別率的提升有助于通過計算機將程序連接機械臂,應用于工件的分類抓取,實現生產自動化,這將作為下一步的工作。
本文對WD-2汽車連桿工件的圖像進行了分析處理,結合濾波方法的理論,使用Halcon完成了新規(guī)則的加入算法實現。通過兩組對比實驗,加入新規(guī)則的方法得到了最想要的結果,即模糊其他不重要的區(qū)域,強化邊緣和細節(jié)部分,驗證了本文方法更適用于處理WD-2汽車連桿工件的圖像。