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