姚衛杰,朱華炳,殷玉龍
(合肥工業大學機械工程學院,合肥 230009)
基于機器視覺的自動化在線測量及制造技術是實現高精尖裝備中關鍵零件的自動化在線加工的重要手段,它對圖像中ROI提取的實時性和自動化程度提出了更高要求,研究實時自動ROI提取新方法,已是亟需解決的應用研究課題。提取圖像中的ROI是實現自動化在線測量和目標定位的必要條件[1-2]。模板匹配和目標跟蹤算法都能實現ROI的提取。
模板匹配即使用一張目標圖作為模板圖片,使用一定相似度度量算法來確定待匹配圖的哪個位置與模板圖最為相似,該位置即為提取到的ROI。常用的模板匹配算法可以分為灰度相關的和幾何特征相關的,灰度相關的模板匹配算法以圖像灰度信息直接進行匹配,原理簡單,但是對于光照變化和部分遮擋的情況束手無策[3],張建華[4]提出了粗匹配再精匹配的兩步基于灰度的模板匹配算法,減少了計算時間和計算量。基于幾何特征的模板匹配算法,具有對光照變化、部分遮擋不敏感的優點,還能解決角度旋轉、比例縮放的差異問題,成為模板匹配算法的研究熱點,這類算法可以以圖像矩(Hu矩、Zernike矩、復數矩等)、傅里葉變換、角點信息等作為匹配信息[5],其中,基于Hu矩的模板匹配算法因其良好的旋轉、縮放和平移不變性,得到了廣泛應用。目前國內外學者主要在匹配搜索策略和粗匹配精匹配結合等方面提出對Hu矩模板匹配算法的改進[6-8],在顯微視覺、水下地形匹配等方面都有應用[9-10]。
目前常用的目標跟蹤方法主要有L-K光流法、卡爾曼濾波方法、核方法和相關濾波跟蹤算法等。Xu M等[11]將L-K光流法與特征點匹配相結合,用于解決老電影的視頻抖動問題,實現了幀與幀之間的平滑過渡。崔乃剛等[12]將高階容積卡爾曼濾波算法與強跟蹤濾波算法相結合,應用到有狀態突變的機動目標跟蹤問題中。褚天鵬[13]將基于卡爾曼濾波器改進的KCF目標跟蹤算法應用于無人機拍攝到的圖像的視覺目標跟蹤中,該方法具有抗部分遮擋、抗光照變化和抗相機抖動等優勢。
現有的基于Hu矩的模板匹配算法計算量大,不易實現實時性,而且不能根據目標實際大小提取到自適應大小的ROI,但是能夠實現模板的全圖匹配,不論目標在圖像的哪個位置,都能匹配成功;現有的目標跟蹤算法需要人工劃定初始跟蹤目標,無法實現自動的ROI提取,但是提取速度快,易于實現實時ROI提取。在綜合考慮兩種方法的優劣勢后,首先提出了變模板尺寸的改進Hu矩模板匹配算法,解決現有Hu矩模板匹配算法無法提取到自適應大小的ROI的問題,其次將改進后的Hu矩模板匹配算法的ROI提取結果作為目標跟蹤算法的初始跟蹤目標,實現了現有目標跟蹤算法的自動化ROI提取。
該算法的具體流程圖如圖1所示。為實現ROI的實時自動提取,先拍攝一張包含目標的待匹配圖像,使用變模板尺寸的Hu矩模板匹配算法對待匹配圖像做預處理,預處理結束后,將變模板尺寸的Hu矩模板匹配算法的匹配結果輸入目標跟蹤算法,作為目標跟蹤算法的初始跟蹤目標。在預處理階段,使用一個尺寸盡量大但不大于待匹配圖像尺寸的模板圖像,采用逐級縮小模板圖的方式做多次模板匹配,每次模板匹配使用不同的移動步距,從上到下從左到右依次遍歷待匹配圖像,使用基于Hu矩的匹配度評價函數得到每一個匹配位置的匹配得分,找到最佳得分,從而得到最佳模板大小(即ROI大小)和最佳匹配位置。預處理階段結束后,將得到的ROI作為目標跟蹤算法的初始跟蹤目標,使用目標跟蹤算法實現對ROI的實時自動提取。

圖1 實時自動ROI提取算法總體流程
M K Hu于1962年提出了由二階和三階圖形中心距做非線性組合得到的圖像不變矩,稱為Hu矩。Hu矩不隨圖像的旋轉發生改變,在模式識別和圖像匹配等方面表現出明顯優勢[14]。
一個灰度圖像可以看作一個離散的二元函數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)
在實際應用場景中,目標所占畫面比例是未知的,當前的基于Hu矩的模板匹配算法都是使用固定大小的模板圖,將模板圖覆蓋在待匹配圖上不斷移動,再使用基于Hu矩的相似度度量方法來確定模板圖移動到待匹配圖的哪個位置時與重疊的區域最為相似,最相似的重疊區域即是提取到的ROI,這樣只匹配一次的方法提取到的ROI大小和模板圖的大小完全相等。在實際拍攝時,當相機距離目標較遠,那當前模板匹配算法得到的ROI將偏大,其中有過多的背景;當相機距離目標較近時,當前模板匹配算法得到的ROI將偏小,無法包含整個目標。如果目標所占畫面比例和模板圖的大小差距太大,甚至會導致匹配失敗。
為解決該問題,提出了一種變模板尺寸的Hu矩模板匹配算法。在該方法中,模板的大小可變,為使ROI提取能夠適應盡可能多的目標畫面占比情況,使用盡量大的初始模板圖像(在相機的最近對焦距離下拍攝目標,并截取出模板圖,這樣得到的模板圖最大),但不應大于待匹配圖。設待匹配圖S的尺寸為W×H像素,模板圖T的尺寸為m×n像素,其中m≤W,n≤H。首先定義基于Hu矩的匹配值。
由于7個Hu不變矩變化范圍太大,先對其分別取對數:
(11)
將待匹配圖S與模板圖T的重疊部分記為重疊子圖S(i,j),其中i,j為重疊部分左上角坐標。定義重疊子圖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位置和尺寸代替上一次的,執行步驟3;如果比上次的大,則直接執行步驟3;
步驟3:判斷模板是否縮小到預定的最小尺寸,如果還沒有,則返回執行步驟2,如果已經縮小到最小尺寸,則進入步驟4;
步驟4:現在的ROI位置和尺寸即是該方法最終得到的ROI位置和尺寸。

圖3 移動模板搜索
在該方法中,由于要用多級縮小的模板圖T做多次模板匹配,如果做Hu矩模板匹配時每次模板只在待匹配圖上移動一個像素,將產生巨大的計算量,因此,通過實際試驗發現,在保證精度的情況下,每次移動模板圖T橫向長度的1/20像素,這樣將大大加快匹配速度。
目標跟蹤是計算機視覺領域研究的熱點問題,廣泛應用于視頻監控、運動員比賽分析、智能人機交互等。基于相關濾波的目標跟蹤方法將計算轉換到頻域,相比傳統的光流法、核方法計算量大大減小,速度得到了提高,使得目標跟蹤取得了突破性的進展。其中KCF算法引入了循環矩陣,避免了矩陣的求逆運算,效果良好[15]。
目標跟蹤算法速度快,可以滿足ROI的實時提取需要,但是需要輸入初始跟蹤目標,另外,在目標位移量大時,容易跟蹤丟失;而模板匹配算法能夠在全圖搜索目標,只要輸入一個模板圖,各種場景下都能實現ROI的提取,但是匹配時間長,尤其在本文的變尺寸模板算法下,需要多次匹配。將兩種方法結合起來,先拍攝一張圖像使用變模板尺寸的Hu矩模板匹配算法做預處理,在預處理結束后獲得合適大小的ROI,將該ROI輸入到目標跟蹤算法中,作為目標跟蹤的初始跟蹤目標。這樣,目標跟蹤算法就可以實現自動化,并且利用其良好的速度優勢可以實現ROI提取的實時性。
本文以KCF目標跟蹤算法為例,結合Hu矩模板匹配,對本文方法做實驗驗證。實驗使用相機型號為大恒圖像水星系列MER-231-41U3C,鏡頭為大恒圖像定焦鏡頭HN-1216-5M-C2/3X,相機和鏡頭的具體參數如表1所示;實驗使用的計算機CPU為Intel(R) Core(TM) i5-10210U,內存16G,Windows 10家庭中文版操作系統,實驗程序使用C++語言編寫,在Visual Studio 2017環境下運行,使用了OpenCV4.1.1版本。實驗場景如圖4所示。

表1 相機和鏡頭重要參數

圖4 實驗場景
為了得到前文所述的盡量大但是又不大于待匹配圖的模板圖,使用相機在鏡頭的最近對焦距離下拍攝目標,并截取出只有目標的部分作為模板圖,得到了700×700像素尺寸的模板圖,如圖5所示。

圖5 模板圖像
為模擬實際目標定位環境,將目標放置到物料筐中,并且在筐中散亂放置其他物料,使得背景足夠復雜。
首先從不同距離拍攝目標,使得目標在圖像中所占比例大小不一,設置縮放因子q分別為1.0, 0.9,…, 0.2, 0.1,最小縮放到原模板的0.1,即最小模板為70×70像素,這樣的縮放因子設置已經能覆蓋絕大多數目標占比情況,以此來驗證該方法能否提取到合適大小的ROI。實驗結果如圖6所示。

(a) 縮放因子q=0.3時 得到最佳匹配值 (b) 縮放因子q=0.4時 得到最佳匹配值

(c) 縮放因子q=0.5時 得到最佳匹配值 (d) 縮放因子q=0.7時 得到最佳匹配值 圖6 目標和相機不同距離的模板匹配結果
圖6a中的實驗在模板縮放因子q=0.3,模板尺寸為210×210時,最佳匹配值最小,因此最終匹配到的ROI位置為(990,390),尺寸為210×210,詳細實驗數據如表2所示。

表2 圖6a中實驗的數據
其他實驗的最終保留的最佳匹配值及其他數據如表3所示。

表3 圖6b~圖6d中實驗的部分實驗數據
觀察圖6a~圖6d,明顯看出提取到的ROI能夠適應目標實際所占比例,在不同目標占比情況下,提取到了背景盡量少又能夠基本完全覆蓋目標的ROI,說明變尺寸模板的Hu矩模板匹配方法能夠達到預期效果。
為驗證目標與模板圖相比有旋轉的情況,將目標以各種角度擺放在物料筐中,做模板匹配實驗,結果如圖7所示。

(a) 目標相比模板順時針旋轉45° (b) 目標相比模板逆時針旋轉45°

(c) 目標相比模板順時針旋轉90° (d) 目標相比模板逆時針旋轉90° 圖7 目標相比模板有旋轉的匹配結果
實驗表明,Hu矩模板匹配能夠識別相對模板發生旋轉的目標,且匹配效果良好。
將上一步的模板匹配結果作為KCF目標跟蹤算法的初始跟蹤目標,初始跟蹤目標如圖8所示。運行KCF算法,試驗在平移和轉動料筐時,對目標的跟蹤情況,跟蹤結果如圖9所示。

圖8 初始跟蹤目標

(a) 原位置跟蹤結果 (b) 發生平移后的跟蹤結果

(c) 發生旋轉后的跟蹤結果 (d) 發生平移和旋轉后的跟蹤結果 圖9 目標跟蹤結果
實驗結果顯示,在將Hu矩模板匹配的結果作為KCF目標跟蹤算法的初始跟蹤目標輸入后,KCF目標跟蹤算法能夠正常運行,且在目標發生平移、旋轉和平移加旋轉后,KCF目標跟蹤算法都能跟蹤到目標,在使用圖像像素尺寸為1920×1200大小的實驗中,平均跟蹤速度達到了8幀/s,即每張圖像的跟蹤時間為125 ms,符合實時性要求。
為了解決基于機器視覺的智能化在線三維測量等應用中,需要實時提取ROI的問題,本文提出了以變模板尺寸的Hu矩模板匹配算法的結果作為目標跟蹤算法的初始跟蹤目標,來實現ROI的實時自動提取的方法。通過編程實現,并采用料筐環境作為背景來測試該方法的可行性。實驗結果表明:該方法能夠提取到合適大小的ROI,并且結合目標跟蹤算法,實現了對目標平均8幀/s的提取速度,能夠實現ROI的實時自動提取。