黃 靜, 蔡雪艷 , 于 娜
(1.石家莊鐵路運輸學校 河北 石家莊 050030;2.石家莊計算機職業(yè)學院 河北 石家莊 050300;3.中國聯(lián)通滄州分公司 河北 滄州 061000)
近年來基于機器視覺檢測技術(shù)成為一種新興的應(yīng)用學科,被越來越多地應(yīng)用到在線檢測中,實現(xiàn)高度準確的檢測,大幅提高產(chǎn)品檢測的速度和可靠性,降低了生產(chǎn)成本。工件檢測系統(tǒng)主要是通過在線工件和模板工件進行比較,最終對工件進行合格品與非合格品的分選處理[1]。
模板匹配主要分為兩種:一是基于灰度的模板匹配;二是基于特征的模板匹配?;诨叶鹊哪0迤ヅ浞椒ㄋ俣缺容^慢,對光照變化、噪聲非常敏感,沒有充分利用灰度統(tǒng)計特性,對每一點的灰度信息依賴較大,不適合應(yīng)用于匹配對象存在旋轉(zhuǎn)和縮放的情況?;谔卣鞯哪0迤ヅ渌惴ㄒ话悴恢苯右蕾囉谙袼刂?,并且需要經(jīng)過較為復(fù)雜的圖像預(yù)處理以提取特征,通常在模板和待匹配圖像中提取對縮放、旋轉(zhuǎn)、灰度變化具有不變性的特征。
對于在流水線上運動的工件來說,它們的位置和角度不是固定的,工作環(huán)境的光照也是變化的,所以要求提取的特征應(yīng)當具有旋轉(zhuǎn)平移不變性和對光照強度的魯棒性。本文在研究前人工作的基礎(chǔ)上,針對工件在線檢測的現(xiàn)場環(huán)境,提出了以方向碼為特征的圖像模板匹配,該算法不僅能抗旋轉(zhuǎn),而且在遮擋和光強引起的光照波動等情況下,也能較好地進行匹配。
圖像的預(yù)處理包括對原始圖像進行灰度變化,濾波、歸一化、特征提取、分割等匹配之前的處理。主要目的是消除圖像中的無關(guān)信息,恢復(fù)有用的真實信息,增強有關(guān)信息的可檢測性,最大限度地簡化數(shù)據(jù)。
灰度變換指根據(jù)某種目標條件按一定變換關(guān)系逐點改變原圖像中每一個像素灰度值的方法。目的是為改善畫質(zhì),使圖像的顯示效果更加清晰。圖1所示為拉伸前后的對比圖像。
圖1 灰度拉伸效果Fig.1 Effect of gray stretching
設(shè)原圖像的灰度值D=f(x,y),處理后圖像像素的灰度值D′=g(x,y),則灰度增強可表示為:
經(jīng)過灰度變換后,像素動態(tài)范圍增加,圖像的對比度擴展,使圖像變得更加清晰、細膩,容易識別。
中值濾波是一種非線性處理的方法,它的基本原理是把數(shù)字圖像或數(shù)字序列中的一點的值用該點的一個領(lǐng)域中的各點的中值代替[2]。中值的定義如下:
一組數(shù)x1,x2……xn,把n個數(shù)按值的大小順序排列如下:
中值濾波能很好的保留邊界,對濾除脈沖噪聲,線性噪聲,孤立點都很有效。本文采用3×3濾波。
圖2 中值濾波效果Fig.2 Effect of median filtering
模板匹配的基本思想是:首先獲取各待分類的標準產(chǎn)品圖像,以建立對應(yīng)的標準圖像模板。然后,分別將這些標準圖像模板在實時采集的圖像上做平移和旋轉(zhuǎn),同時進行相關(guān)性計算,若最大的相關(guān)值大于設(shè)定的閾值,則可認為在實時圖像中存在該標準模板所代表的產(chǎn)品。
本文提取方向碼作為特征,整個匹配過程分為粗匹配和精匹配兩個步驟。匹配流程如圖3所示。首先將模板和待匹配圖像進行預(yù)處理,計算出模板和模板覆蓋下子圖的方向碼,得到模板和子圖的方向碼直方圖,移動子圖方向碼直方圖,每移動一次計算模板和子圖方向碼直方圖的相似面積。即以它們在每個方向上的方向碼頻率值作豎坐標,每個方向作為橫坐標,做柱狀圖,求子圖和模板在每個方向上的頻率值的公共部分所包含的面積A,作為其相似性度量,得到相似矩陣S1,當A取最大值時依據(jù)直方圖的移動次數(shù)l估算得出子圖相對于模板旋轉(zhuǎn)的角度α。如果A大于預(yù)定閾值,則記下子圖的位置以便在此位置進行精匹配階段。在每一個匹配候選點上,根據(jù)第一步得到的旋轉(zhuǎn)角度旋轉(zhuǎn)模板,得到旋轉(zhuǎn)后的方向碼,再計算模板和子圖的相似性,得到相似性矩陣S2,綜合S1和S2得到最佳匹配點。
圖3 匹配流程Fig.3 Matching process
將[0,2π]范圍等分成 N個區(qū)間,N選為 16,則每個區(qū)間的角度Δθ是π/8,從水平方向開始就按逆時針方向依次給每個區(qū)間賦予一個序號,這個序號就是方向碼值,如圖4所示[3]。
圖4 方向碼Fig.4 Direction code
為了得到圖像的方向碼,必須先計算出每個像素點的梯度角。本文Δ采用sobel差分Δ算子來計算梯度角,得到像素點的水平差分Δ fΔx和垂直差分 fy后,位置(i,j)處的梯度角 θ(i,j)=arctan(fy/fx),方向碼 c(i,j)定義為
[.]——去整運算,?!撝?。
如果方向碼有 N 個,c(i,j)就在集合{0,1,2,……N-1}中取值。閾值Γ的選取一般視具體情況而定,過大,就會忽略到有用的梯度,過小,噪聲的影響就會變大。在本文的實驗中選10。選擇sobel算子計算梯度角原因有二:1)由于引用了平均因素,因而對圖像的隨機噪聲有平滑作用。2)由于它是相隔兩行或兩列之差分,故邊緣兩側(cè)得到增強,邊緣顯得粗而亮[4]。圖5為robert和sobel效果比較圖。
圖5 robert和sobel效果比較Fig.5 Comparison between Robert and Sobel
圖像經(jīng)過sobel算子檢測之后,便要對圖像進行掃描,以確定工件區(qū)域的確切置。定位方法都是直接或間接的分析工件的紋理特征。所謂的紋理特征就是掃描圖像得到的灰度變化曲線。在一幅圖像中工件的紋理特征很明顯的區(qū)別于背景,有自己的變化特征。為了便于分析,需要對整個圖像二值化,得到只含有0和1的灰度圖,根據(jù)實驗結(jié)果對工件圖像二值化的閾值選擇210。二值化后結(jié)果如圖6所示。
圖6 sobel算子檢測后二值化圖像Fig.6 Binarized image using sobel operator
然后利用投影法把圖像在水平方向和垂直方向上進行投影[5]。在投影圖上便可反映出圖像中目標對象的位置、尺寸等信息。至此確定出待匹配工件的在圖像中的確切位置。為后來的模板匹配縮小了范圍,大大減少了計算量,提高了檢測速度。圖7是一幅圖像分別在水平方向和垂直方向上的投影。
圖7 投影法Fig.7 Projection method
模板方向碼直方圖表達式為:
位置(i,j)處的子圖為 fij的方向碼直方圖為:
子圖直方圖中的第k個區(qū)域用下式表示[3]:
要在每一點計算灰度梯度方向角,在每一子圖中統(tǒng)計方向碼的直方圖,最后通過遍歷移位比較相似性。
本文采用模板和子圖直方圖的絕對差來度量兩個直方圖之間的相似性,用 s1(x,y)來表示[6]。
式中,l表示模板方向碼直方圖右移次數(shù),取值{0,1,2……N-1},sl表示右移l次后子圖和模板方向碼直方圖的交集面積。
其中,A是模板像素個數(shù)。在本文中把s1(x,y)>0.9的點作為匹配候選點,根據(jù)此時子圖直方圖移動次數(shù)計算出子圖相對于模板旋轉(zhuǎn)的角度 α,α=移動直方圖時,方向碼為N的區(qū)域不移動。
圖8 方向碼直方圖Fig.8 Histogram of direction codes
由上面的直方圖匹配可以得出匹配候選點,和子圖相對于模板的旋轉(zhuǎn)角度。根據(jù)旋轉(zhuǎn)角度將模板進行旋轉(zhuǎn),得到旋轉(zhuǎn)后模板的方向碼圖像。用OT表示模板的方向碼圖像,Oxy表示左上角坐標為(x,y)的子圖方向碼圖像,則模板和子圖間的相似性 s2(x,y)為:
方向碼間的差值為:
E是任意兩個方向碼的最大差值,所以E=N/2。
經(jīng)粗匹配和精匹配步驟,得到兩個相似度量值的矩陣S1和S2,求兩個同一點的兩個相似度量值的平均值,得到這一點的總的相似度量值S。取最大的S值處的像素點為最佳匹配點[7]。
為了驗證該匹配算法的準確程度,進行了實驗。首先將工件旋轉(zhuǎn)到標準方向,進行模板創(chuàng)建。然后將工件逆時針旋轉(zhuǎn)30°,45°,60°,90°,并且伴以亮度變化,可以得到結(jié)果如表 1 所示。
表1 實驗結(jié)果Tab.1 Experimental results
實驗表明,該算法可以成功的對工件進行匹配,而且可以估算出工件的旋轉(zhuǎn)角度。
通過前面的討論和實驗數(shù)據(jù)可以看出,本文提出的結(jié)合工件檢測實際環(huán)境的基于方向碼的模板匹配有以下特點:1)在匹配識別上不僅不受物體方位旋轉(zhuǎn)及尺寸縮放變化影響,而且能較精確地求出物體相對與模板的偏轉(zhuǎn)角度;2)對待檢測圖像先進行工件定位,確定工件的大體位置,這樣大大提高了檢測速度。
[1]何東健,耿楠,張義寬.數(shù)字圖像處理[M].西安:西安電子科技大學出版社,2003.
[2]呂景亮.工件檢測中圖像處理算法研究[D].長春:長春理工大學,2004.
[3]Ullah F,Kaneko S,Igarahi S.Object search using orientation histogram intersection[C]//Proceedings of Japan-Korea Joint Workshop on Frontiers of Computer Vision,Seoul,2000:110-115.
[4]刑軍.基于sobel算子數(shù)字圖像的邊緣檢測算法[J].微機發(fā)展,2005,15(9):48-52.XING Jun.Edge detection of Sobel based digital image[J].Microcomputer Development, 2005,15(9):48-52.
[5]劉錦峰.圖像模板匹配快速算法研究[D].長沙:中南大學,2007.
[6]段德山.工件非接觸檢測中機器視覺的研究與應(yīng)用[D].北京:北京郵電大學,2007.
[7]王強,宋京民,胡建平.一種快速模板匹配目標識別算法[J].計算機工程及應(yīng)用,2000,36(6):30-32.WANG Qiang, SONG Jing-min, HU Jian-ping.An improved template matching algorithm of target recognition[J].Computer Engineering and Applications, 2000, 36(6):30-32.