姚衛(wèi)杰,朱華炳,殷玉龍
(合肥工業(yè)大學(xué)機械工程學(xué)院,合肥 230009)
基于機器視覺的自動化在線測量及制造技術(shù)是實現(xiàn)高精尖裝備中關(guān)鍵零件的自動化在線加工的重要手段,它對圖像中ROI提取的實時性和自動化程度提出了更高要求,研究實時自動ROI提取新方法,已是亟需解決的應(yīng)用研究課題。提取圖像中的ROI是實現(xiàn)自動化在線測量和目標(biāo)定位的必要條件[1-2]。模板匹配和目標(biāo)跟蹤算法都能實現(xiàn)ROI的提取。
模板匹配即使用一張目標(biāo)圖作為模板圖片,使用一定相似度度量算法來確定待匹配圖的哪個位置與模板圖最為相似,該位置即為提取到的ROI。常用的模板匹配算法可以分為灰度相關(guān)的和幾何特征相關(guān)的,灰度相關(guān)的模板匹配算法以圖像灰度信息直接進行匹配,原理簡單,但是對于光照變化和部分遮擋的情況束手無策[3],張建華[4]提出了粗匹配再精匹配的兩步基于灰度的模板匹配算法,減少了計算時間和計算量?;趲缀翁卣鞯哪0迤ヅ渌惴?,具有對光照變化、部分遮擋不敏感的優(yōu)點,還能解決角度旋轉(zhuǎn)、比例縮放的差異問題,成為模板匹配算法的研究熱點,這類算法可以以圖像矩(Hu矩、Zernike矩、復(fù)數(shù)矩等)、傅里葉變換、角點信息等作為匹配信息[5],其中,基于Hu矩的模板匹配算法因其良好的旋轉(zhuǎn)、縮放和平移不變性,得到了廣泛應(yīng)用。目前國內(nèi)外學(xué)者主要在匹配搜索策略和粗匹配精匹配結(jié)合等方面提出對Hu矩模板匹配算法的改進[6-8],在顯微視覺、水下地形匹配等方面都有應(yīng)用[9-10]。
目前常用的目標(biāo)跟蹤方法主要有L-K光流法、卡爾曼濾波方法、核方法和相關(guān)濾波跟蹤算法等。Xu M等[11]將L-K光流法與特征點匹配相結(jié)合,用于解決老電影的視頻抖動問題,實現(xiàn)了幀與幀之間的平滑過渡。崔乃剛等[12]將高階容積卡爾曼濾波算法與強跟蹤濾波算法相結(jié)合,應(yīng)用到有狀態(tài)突變的機動目標(biāo)跟蹤問題中。褚天鵬[13]將基于卡爾曼濾波器改進的KCF目標(biāo)跟蹤算法應(yīng)用于無人機拍攝到的圖像的視覺目標(biāo)跟蹤中,該方法具有抗部分遮擋、抗光照變化和抗相機抖動等優(yōu)勢。
現(xiàn)有的基于Hu矩的模板匹配算法計算量大,不易實現(xiàn)實時性,而且不能根據(jù)目標(biāo)實際大小提取到自適應(yīng)大小的ROI,但是能夠?qū)崿F(xiàn)模板的全圖匹配,不論目標(biāo)在圖像的哪個位置,都能匹配成功;現(xiàn)有的目標(biāo)跟蹤算法需要人工劃定初始跟蹤目標(biāo),無法實現(xiàn)自動的ROI提取,但是提取速度快,易于實現(xiàn)實時ROI提取。在綜合考慮兩種方法的優(yōu)劣勢后,首先提出了變模板尺寸的改進Hu矩模板匹配算法,解決現(xiàn)有Hu矩模板匹配算法無法提取到自適應(yīng)大小的ROI的問題,其次將改進后的Hu矩模板匹配算法的ROI提取結(jié)果作為目標(biāo)跟蹤算法的初始跟蹤目標(biāo),實現(xiàn)了現(xiàn)有目標(biāo)跟蹤算法的自動化ROI提取。
該算法的具體流程圖如圖1所示。為實現(xiàn)ROI的實時自動提取,先拍攝一張包含目標(biāo)的待匹配圖像,使用變模板尺寸的Hu矩模板匹配算法對待匹配圖像做預(yù)處理,預(yù)處理結(jié)束后,將變模板尺寸的Hu矩模板匹配算法的匹配結(jié)果輸入目標(biāo)跟蹤算法,作為目標(biāo)跟蹤算法的初始跟蹤目標(biāo)。在預(yù)處理階段,使用一個尺寸盡量大但不大于待匹配圖像尺寸的模板圖像,采用逐級縮小模板圖的方式做多次模板匹配,每次模板匹配使用不同的移動步距,從上到下從左到右依次遍歷待匹配圖像,使用基于Hu矩的匹配度評價函數(shù)得到每一個匹配位置的匹配得分,找到最佳得分,從而得到最佳模板大小(即ROI大小)和最佳匹配位置。預(yù)處理階段結(jié)束后,將得到的ROI作為目標(biāo)跟蹤算法的初始跟蹤目標(biāo),使用目標(biāo)跟蹤算法實現(xiàn)對ROI的實時自動提取。
圖1 實時自動ROI提取算法總體流程
M K Hu于1962年提出了由二階和三階圖形中心距做非線性組合得到的圖像不變矩,稱為Hu矩。Hu矩不隨圖像的旋轉(zhuǎn)發(fā)生改變,在模式識別和圖像匹配等方面表現(xiàn)出明顯優(yōu)勢[14]。
一個灰度圖像可以看作一個離散的二元函數(shù)f(x,y),它的p+q階不變矩定義為:
(1)
由式(1)可計算出圖像的p+q階中心距:
(2)
對中心距做歸一化處理,得到歸一化中心距:
(3)
Hu不變矩是將歸一化中心距做非線性組合得到的,由式(3)可計算出i階Hu不變矩hi(其中i=1~7):
h1=(η20+η02)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
在實際應(yīng)用場景中,目標(biāo)所占畫面比例是未知的,當(dāng)前的基于Hu矩的模板匹配算法都是使用固定大小的模板圖,將模板圖覆蓋在待匹配圖上不斷移動,再使用基于Hu矩的相似度度量方法來確定模板圖移動到待匹配圖的哪個位置時與重疊的區(qū)域最為相似,最相似的重疊區(qū)域即是提取到的ROI,這樣只匹配一次的方法提取到的ROI大小和模板圖的大小完全相等。在實際拍攝時,當(dāng)相機距離目標(biāo)較遠(yuǎn),那當(dāng)前模板匹配算法得到的ROI將偏大,其中有過多的背景;當(dāng)相機距離目標(biāo)較近時,當(dāng)前模板匹配算法得到的ROI將偏小,無法包含整個目標(biāo)。如果目標(biāo)所占畫面比例和模板圖的大小差距太大,甚至?xí)?dǎo)致匹配失敗。
為解決該問題,提出了一種變模板尺寸的Hu矩模板匹配算法。在該方法中,模板的大小可變,為使ROI提取能夠適應(yīng)盡可能多的目標(biāo)畫面占比情況,使用盡量大的初始模板圖像(在相機的最近對焦距離下拍攝目標(biāo),并截取出模板圖,這樣得到的模板圖最大),但不應(yīng)大于待匹配圖。設(shè)待匹配圖S的尺寸為W×H像素,模板圖T的尺寸為m×n像素,其中m≤W,n≤H。首先定義基于Hu矩的匹配值。
由于7個Hu不變矩變化范圍太大,先對其分別取對數(shù):
(11)
將待匹配圖S與模板圖T的重疊部分記為重疊子圖S(i,j),其中i,j為重疊部分左上角坐標(biāo)。定義重疊子圖S(i,j)和模板圖T的基于Hu矩的匹配值d(i,j)如下:
(12)
顯然,匹配值d(i,j)越小,說明模板圖T和重疊子圖S(i,j)越相似。
變模板尺寸的Hu矩模板匹配方法使用逐級縮小的模板圖去分別匹配,從而得到合適大小的ROI。該方法的流程圖如圖2所示,具體步驟如下:
圖2 變模板尺寸的Hu矩模板匹配流程圖
步驟1:獲取圖像后,先用原始大小的模板做一次Hu矩模板匹配,如圖3所示,將模板圖T疊放在待匹配圖S的左上角,然后從左到右、從上到下移動搜索,每次移動模板圖寬度像素值的1/20,計算重疊子圖S(i,j)和模板圖T的基于Hu矩的匹配值d(i,j)。顯然有0≤i≤W-m, 0≤j≤H-n。建立一個W-m+1行,H-n+1列的矩陣D,將重疊子圖S(i,j)和模板圖T的基于Hu矩的匹配值d(i,j)存放在矩陣D的第i行第j列處,移動模板搜索完畢后找到D中的最佳匹配值dmin;并記錄下最佳匹配值dmin、ROI位置(i,j)和尺寸m×n;
步驟2:使用雙線性插值方法對模板圖T做縮小,在長、寬方向上使用相等的縮放因子q,得到新的縮小后的模板圖。再對源圖S做一次Hu矩模板匹配,將新得到的最佳匹配值與上一次得到的對比,如果比上次更小,則用這次的最佳匹配值、ROI位置和尺寸代替上一次的,執(zhí)行步驟3;如果比上次的大,則直接執(zhí)行步驟3;
步驟3:判斷模板是否縮小到預(yù)定的最小尺寸,如果還沒有,則返回執(zhí)行步驟2,如果已經(jīng)縮小到最小尺寸,則進入步驟4;
步驟4:現(xiàn)在的ROI位置和尺寸即是該方法最終得到的ROI位置和尺寸。
圖3 移動模板搜索
在該方法中,由于要用多級縮小的模板圖T做多次模板匹配,如果做Hu矩模板匹配時每次模板只在待匹配圖上移動一個像素,將產(chǎn)生巨大的計算量,因此,通過實際試驗發(fā)現(xiàn),在保證精度的情況下,每次移動模板圖T橫向長度的1/20像素,這樣將大大加快匹配速度。
目標(biāo)跟蹤是計算機視覺領(lǐng)域研究的熱點問題,廣泛應(yīng)用于視頻監(jiān)控、運動員比賽分析、智能人機交互等?;谙嚓P(guān)濾波的目標(biāo)跟蹤方法將計算轉(zhuǎn)換到頻域,相比傳統(tǒng)的光流法、核方法計算量大大減小,速度得到了提高,使得目標(biāo)跟蹤取得了突破性的進展。其中KCF算法引入了循環(huán)矩陣,避免了矩陣的求逆運算,效果良好[15]。
目標(biāo)跟蹤算法速度快,可以滿足ROI的實時提取需要,但是需要輸入初始跟蹤目標(biāo),另外,在目標(biāo)位移量大時,容易跟蹤丟失;而模板匹配算法能夠在全圖搜索目標(biāo),只要輸入一個模板圖,各種場景下都能實現(xiàn)ROI的提取,但是匹配時間長,尤其在本文的變尺寸模板算法下,需要多次匹配。將兩種方法結(jié)合起來,先拍攝一張圖像使用變模板尺寸的Hu矩模板匹配算法做預(yù)處理,在預(yù)處理結(jié)束后獲得合適大小的ROI,將該ROI輸入到目標(biāo)跟蹤算法中,作為目標(biāo)跟蹤的初始跟蹤目標(biāo)。這樣,目標(biāo)跟蹤算法就可以實現(xiàn)自動化,并且利用其良好的速度優(yōu)勢可以實現(xiàn)ROI提取的實時性。
本文以KCF目標(biāo)跟蹤算法為例,結(jié)合Hu矩模板匹配,對本文方法做實驗驗證。實驗使用相機型號為大恒圖像水星系列MER-231-41U3C,鏡頭為大恒圖像定焦鏡頭HN-1216-5M-C2/3X,相機和鏡頭的具體參數(shù)如表1所示;實驗使用的計算機CPU為Intel(R) Core(TM) i5-10210U,內(nèi)存16G,Windows 10家庭中文版操作系統(tǒng),實驗程序使用C++語言編寫,在Visual Studio 2017環(huán)境下運行,使用了OpenCV4.1.1版本。實驗場景如圖4所示。
表1 相機和鏡頭重要參數(shù)
圖4 實驗場景
為了得到前文所述的盡量大但是又不大于待匹配圖的模板圖,使用相機在鏡頭的最近對焦距離下拍攝目標(biāo),并截取出只有目標(biāo)的部分作為模板圖,得到了700×700像素尺寸的模板圖,如圖5所示。
圖5 模板圖像
為模擬實際目標(biāo)定位環(huán)境,將目標(biāo)放置到物料筐中,并且在筐中散亂放置其他物料,使得背景足夠復(fù)雜。
首先從不同距離拍攝目標(biāo),使得目標(biāo)在圖像中所占比例大小不一,設(shè)置縮放因子q分別為1.0, 0.9,…, 0.2, 0.1,最小縮放到原模板的0.1,即最小模板為70×70像素,這樣的縮放因子設(shè)置已經(jīng)能覆蓋絕大多數(shù)目標(biāo)占比情況,以此來驗證該方法能否提取到合適大小的ROI。實驗結(jié)果如圖6所示。
(a) 縮放因子q=0.3時 得到最佳匹配值 (b) 縮放因子q=0.4時 得到最佳匹配值
(c) 縮放因子q=0.5時 得到最佳匹配值 (d) 縮放因子q=0.7時 得到最佳匹配值 圖6 目標(biāo)和相機不同距離的模板匹配結(jié)果
圖6a中的實驗在模板縮放因子q=0.3,模板尺寸為210×210時,最佳匹配值最小,因此最終匹配到的ROI位置為(990,390),尺寸為210×210,詳細(xì)實驗數(shù)據(jù)如表2所示。
表2 圖6a中實驗的數(shù)據(jù)
其他實驗的最終保留的最佳匹配值及其他數(shù)據(jù)如表3所示。
表3 圖6b~圖6d中實驗的部分實驗數(shù)據(jù)
觀察圖6a~圖6d,明顯看出提取到的ROI能夠適應(yīng)目標(biāo)實際所占比例,在不同目標(biāo)占比情況下,提取到了背景盡量少又能夠基本完全覆蓋目標(biāo)的ROI,說明變尺寸模板的Hu矩模板匹配方法能夠達到預(yù)期效果。
為驗證目標(biāo)與模板圖相比有旋轉(zhuǎn)的情況,將目標(biāo)以各種角度擺放在物料筐中,做模板匹配實驗,結(jié)果如圖7所示。
(a) 目標(biāo)相比模板順時針旋轉(zhuǎn)45° (b) 目標(biāo)相比模板逆時針旋轉(zhuǎn)45°
(c) 目標(biāo)相比模板順時針旋轉(zhuǎn)90° (d) 目標(biāo)相比模板逆時針旋轉(zhuǎn)90° 圖7 目標(biāo)相比模板有旋轉(zhuǎn)的匹配結(jié)果
實驗表明,Hu矩模板匹配能夠識別相對模板發(fā)生旋轉(zhuǎn)的目標(biāo),且匹配效果良好。
將上一步的模板匹配結(jié)果作為KCF目標(biāo)跟蹤算法的初始跟蹤目標(biāo),初始跟蹤目標(biāo)如圖8所示。運行KCF算法,試驗在平移和轉(zhuǎn)動料筐時,對目標(biāo)的跟蹤情況,跟蹤結(jié)果如圖9所示。
圖8 初始跟蹤目標(biāo)
(a) 原位置跟蹤結(jié)果 (b) 發(fā)生平移后的跟蹤結(jié)果
(c) 發(fā)生旋轉(zhuǎn)后的跟蹤結(jié)果 (d) 發(fā)生平移和旋轉(zhuǎn)后的跟蹤結(jié)果 圖9 目標(biāo)跟蹤結(jié)果
實驗結(jié)果顯示,在將Hu矩模板匹配的結(jié)果作為KCF目標(biāo)跟蹤算法的初始跟蹤目標(biāo)輸入后,KCF目標(biāo)跟蹤算法能夠正常運行,且在目標(biāo)發(fā)生平移、旋轉(zhuǎn)和平移加旋轉(zhuǎn)后,KCF目標(biāo)跟蹤算法都能跟蹤到目標(biāo),在使用圖像像素尺寸為1920×1200大小的實驗中,平均跟蹤速度達到了8幀/s,即每張圖像的跟蹤時間為125 ms,符合實時性要求。
為了解決基于機器視覺的智能化在線三維測量等應(yīng)用中,需要實時提取ROI的問題,本文提出了以變模板尺寸的Hu矩模板匹配算法的結(jié)果作為目標(biāo)跟蹤算法的初始跟蹤目標(biāo),來實現(xiàn)ROI的實時自動提取的方法。通過編程實現(xiàn),并采用料筐環(huán)境作為背景來測試該方法的可行性。實驗結(jié)果表明:該方法能夠提取到合適大小的ROI,并且結(jié)合目標(biāo)跟蹤算法,實現(xiàn)了對目標(biāo)平均8幀/s的提取速度,能夠?qū)崿F(xiàn)ROI的實時自動提取。