殷蘇民,鮑紅力,吉彬斌,劉金亮,張建剛
(江蘇大學(xué)機械工程學(xué)院,江蘇鎮(zhèn)江 212013)
某汽車發(fā)動機鑄件生產(chǎn)企業(yè)在產(chǎn)品下線之前,要求對工件外觀進行檢驗,防止有缺陷的不合格工件出廠,對后續(xù)的機械加工設(shè)備產(chǎn)生不良影響。傳統(tǒng)的檢測方法是根據(jù)檢測要求進行人工目測,這種測量方法檢測效率低,勞動強度大,并且檢測結(jié)果受檢測人員的主觀影響較大。為此,在實際生產(chǎn)線上采用機器視覺系統(tǒng)進行在線檢測,自動識別工件的瑕疵,實現(xiàn)質(zhì)量檢測的自動化,以提高生產(chǎn)效率,減輕勞動強度,提高檢測質(zhì)量。本文討論的圖像模板匹配技術(shù)即是視覺系統(tǒng)中采用的一種信息處理方法,也是圖像處理中一個很重要的研究方向。圖像匹配方法有多種:基于灰度信息、基于特征、基于變換域[1]。本文針對發(fā)動機缸體圖像自身的特點,在基于灰度匹配算法的基礎(chǔ)上,提出一種基于圖像小區(qū)域的模板匹配算法,在實際應(yīng)用中獲得了良好的識別效果。
圖像匹配是對兩幅圖像在灰度和空間上的配準,一般的圖像匹配技術(shù)是利用已知的模板利用某種算法對識別圖像進行匹配計算,進而獲得圖像中是否含有該模板的信息和坐標。如圖1所示,匹配模板就是待匹配圖像中的一幅已知的小圖像(大小為m×n),而模板匹配就是在待匹配圖像中(大小為M×N)搜尋含有匹配模板信息(這些信息主要包括灰度值等)的目標,通過一定的算法使匹配模板在待匹配圖像中找到所要匹配的目標匹配區(qū)域,并確定目標匹配區(qū)域的坐標位置和相似度。
由于在圖像中含有最多的信息就是灰度值,所以,如何依靠灰度值進行模板匹配成為了目前研究模板匹配的重要方法之一。對于特定目標進行模板灰度匹配時,對灰度匹配的模板圖像要求較高,通常要使用合格的圖像作為基準圖像,再在基準圖像上構(gòu)建待搜索圖像S(大小為M×N),并選擇具有明顯特征的小區(qū)域作為模板圖T(大小為m×n),設(shè) Si,j為模板覆蓋下的子圖 (i,j為子圖的 左 上角像素在S圖中的坐標);可以對灰度匹配原理描述如下:Si,j(m,n)和T(m,n)分別為搜索子圖和模板中圖位于m×n處得像素灰度,比較 Si,j(m,n)和 T(m ×n)的內(nèi)容,求出二者的相關(guān)函數(shù) f(i,j)來衡量 Si,j(m,n)和 T(m,n)的相似程度。相似程度計算公式由具體的灰度算法決定。
圖1 模板匹配原理Fig 1 Template matching principle
依據(jù)上述原理,可以建立相應(yīng)的灰度值匹配數(shù)學(xué)模型,假設(shè)S為待匹配圖像的二維坐標數(shù)組,T為模板圖像的二維坐標數(shù)組,I1(x,y)和I2(x,y)分別為待匹配圖和模板圖像空間位置處的灰度值,兩幅圖像的匹配表達式可以表示為
利用上述等式作為依據(jù)來進行灰度匹配。
由于本文的研究對象是發(fā)動機缸體,其尺寸較大,形狀復(fù)雜,缸體灰度顏色相近,對整幅圖直接進行圖像匹配時,算法處理速度較慢,甚至會出現(xiàn)誤判和錯判現(xiàn)象。依據(jù)文獻[2]可知,被搜索圖像越大,匹配速度越慢,模板越小,匹配速度越快。因此,為了提高匹配速度和精度,本文提出對發(fā)動機缸體圖像進行區(qū)域分割,進行基于小區(qū)域的模板圖像匹配。該方法是在保證圖像質(zhì)量的前提下,通過進行區(qū)域模板分割,減少找到匹配目標所需用的匹配時間。根據(jù)模板圖像與各面待匹配圖像的特征和大小對待匹配圖像進行區(qū)域分割,以使匹配的時候可以更好地得到待匹配圖像中各個區(qū)域與模板中對應(yīng)區(qū)域的相似性和灰度值。在區(qū)域分割完成后,將多個小區(qū)域模板進行集合,并用數(shù)值依次對它們進行區(qū)域編號,使其在進行圖像匹配時,能夠根據(jù)具體的要求方便地調(diào)用相應(yīng)的區(qū)域模板。
進行區(qū)域分割后,要對待匹配圖像進行灰度匹配?;叶绕ヅ淠軌颢@得比較高的定位精度,在灰度匹配中通常采用2種方法來衡量模板圖T(m,n)和待匹配圖Si,j的相似程度:歸一化互相關(guān)(normalized cross-correlation,NCC)算法和序貫相似檢測算法(sequence similarity detection algorithm,SSDA)。
NCC算法[3]首先選擇一個大小為 m×n的模板圖T(m,n),然后在待搜索圖上循環(huán)選取m×n大小的區(qū)域,循環(huán)范圍是整幅待匹配圖S,循環(huán)匹配的過程中進行NCC相似度計算,歸一化互相關(guān)算法得到的互相關(guān)值用于確定匹配的程度。NCC相似度公式為
根據(jù)施瓦茲不等式可以知道上式中0≤NCC(x,y)≤1,NCC的值越大,模板圖和待匹配圖的相似度越大。定義一個閾值 T,NCC(x,y)>T,匹配成功;反之,匹配失敗。
SSDA算法[4]的實現(xiàn)步驟如下:首先,選取一個誤差準則作為終止不匹配點計算的標準,通常可選取絕對誤差,即有
其中
其次,設(shè)定一個不變閾值Tk,匹配過程是在子圖象中隨機選取一點,計算它與模板中相應(yīng)點的絕對誤差值ε,將每一隨機點對的誤差累加起來,若累加到第r次時誤差超過設(shè)定閾值Tk,則停止累加,記下此時的累加次數(shù)r,同時定義SSDA算法檢測曲面為
并且在曲面最大值處對應(yīng)的位置即為模板最佳匹配位置。這是因為該點需要多次累加誤差才能超過閾值,因此,相對于其他點,它最有可能是匹配位置。
由于SSDA算法中閾值Tk的設(shè)置是固定的,因此,導(dǎo)致處理速度相對較慢,并且針對特定的圖像,閾值Tk需要重新設(shè)置,這樣就給自動測量帶來很大的不便。如果通過設(shè)定一個動態(tài)閾值Tk,對不在閾值Tk范圍的像素點,跳過搜索不進行比較,這樣可以減少搜索的像素點數(shù)和進行相似度比較的次數(shù),有效地改進圖像單閾值的搜索速度,利用動態(tài)閾值的方法可以達到提高處理速度的目的。
文獻[5]中可知改進的相似度計算公式為
利用公式(7),采用對模板圖像進行粗細匹配相結(jié)合的方法進行相似度計算,進而找到匹配的最佳位置,并求出最佳匹配點和相似度。這種對SSDA算法進行改進的方法在匹配過程中有效地減少了相關(guān)性運算次數(shù),達到了提高算法處理速度的目的。
在上述模板區(qū)域分割和匹配算法的理論指導(dǎo)下,本文基于小區(qū)域模板匹配的發(fā)動機缸體檢測算法流程如圖2所示。
圖2 模板匹配算法流程圖Fig 2 Flow chart of template matching algorithm
1)取發(fā)動機缸體的標準樣板圖像作為模板圖像,并進行圖像采集;
2)對發(fā)動機缸體圖像進行區(qū)域分割;根據(jù)發(fā)動機缸體側(cè)面的形狀參數(shù)進行區(qū)域分割,在區(qū)域分割完成后,構(gòu)造多個小區(qū)域模板進行集合,用數(shù)值依次對區(qū)域進行編號;
3)根據(jù)實驗要求,調(diào)出所需的2個實驗小區(qū)域模板;
4)對發(fā)動機缸體進行粗匹配;利用式(7)計算模板圖像與待搜索圖像隔m行n列的起始像素D(0,0)的值,所隔的行數(shù)和列數(shù)根據(jù)實際的模板圖來確定。此時的D(0,0)值作為初始閾值T,然后計算待匹配圖上其他像素位置(x,y)處的D(x,y)值,如果計算過程中 D(x,y)超過 T,則停止計算此處的D(x,y),轉(zhuǎn)入進行下一個像素點的計算,如果計算完所有的像素點后D(x,y)值仍小于T,則將此像素的位置定為相關(guān)匹配點,并用D(x,y)值來更新閾值T后再重新進行匹配,最后得到一個匹配后的粗匹配點集,粗匹配結(jié)束。粗匹配點集可以采用取最小的幾個粗匹配點或利用設(shè)定差值的方法來獲取。
5)對發(fā)動機缸體進行精匹配;在得到粗匹配點集后,對粗匹配點集上的每個點都進行精匹配。以粗匹配位置點為中心,在一定的矩形區(qū)域范圍內(nèi)逐行逐列進行計算,尋找最優(yōu)的匹配點,最終得到搜索子圖和模板圖的最佳匹配值,計算出匹配點和相似度。
依據(jù)上述算法流程,在VC++6.0開發(fā)環(huán)境下編寫程序。選擇某一型號的汽車發(fā)動機缸體區(qū)域劃分后的2個待匹配小區(qū)域進行匹配計算。
區(qū)域Ⅰ和區(qū)域Ⅱ的匹配實驗如圖3和圖4所示。
圖3 區(qū)域I實驗Fig 3 RegionⅠexperiment
表1是對區(qū)域Ⅰ和區(qū)域Ⅱ采用傳統(tǒng)的NCC算法、SSDA算法和改進SSDA算法進行匹配的時間比較。
表1 不同方法的實驗數(shù)據(jù)對比Tab 1 Comparison of experimental datas by different methods
本文在基于小區(qū)域模板匹配算法對發(fā)動機缸體區(qū)域Ⅰ和區(qū)域Ⅱ多次實驗的基礎(chǔ)上得出結(jié)論:在保證發(fā)動機缸體要求的前提下,該方法能夠?qū)崿F(xiàn)發(fā)動機缸體圖像缺陷識別,且運算速度較快,能夠滿足實時性要求。通過進行各種算法匹配時間的比較,可以發(fā)現(xiàn)采用粗精匹配相結(jié)合搜索策略的SSDA算法運算速度最快。
圖像檢測技術(shù)具有非接觸、在線實時、速度快、精度合適、現(xiàn)場抗干擾能力強等優(yōu)點,本文在分析以往模板匹配方法的基礎(chǔ)上,結(jié)合發(fā)動機缸體缺陷檢測的實際情況提出基于小區(qū)域模板匹配算法。實驗結(jié)果表明:該算法能夠很好地滿足發(fā)動機缸體缺陷在線實時檢測的要求,基本消除了人工檢測的誤判,顯著提高了工作效率。
[1] 薛 菲,張榮國,張建國,等.基于NCC與SSDA的快速特征點匹配融合算法[J].計算機與數(shù)字工程,2010,38(10):19-22.
[2] 左 力,王棟民.圖像處理系統(tǒng)在自動化設(shè)備中用作位置反饋的一種方法[J].機械與電子,2004(1):43 -44.
[3] 孫卜郊,周東華.基于NCC的存在旋轉(zhuǎn)的圖像匹配方法[J].傳感器與微系統(tǒng),2008,27(5):43 -46.
[4] 王哲峰.基于提升小波變換的圖像匹配算法研究[D].長春:吉林大學(xué),2007.
[5] 李俊山,譚園園,張媛莉.SSDA的改進算法[J].電光與控制,2007,14(2):66 -68.