房廣江,孔一薈
(中國(guó)電子科技集團(tuán)公司 第二十八研究所,江蘇 南京 210016)
模板匹配是從一幅圖像(目標(biāo)圖像)中尋找已知模式(模板)的一個(gè)過(guò)程,是計(jì)算機(jī)視覺(jué)研究的重要方法[1]。通過(guò)選擇模板,在目標(biāo)圖像中移動(dòng)模板,將模板圖像與原圖像比對(duì),找到目標(biāo)圖像中與模板相匹配的區(qū)域[2]。在模板匹配過(guò)程中,如果模板是始終不變的,那么當(dāng)序列圖像中某一幀圖像受較大噪聲干擾時(shí),極易出現(xiàn)跟蹤點(diǎn)的漂移現(xiàn)象[3]。另外,從模板匹配的原理上講,該算法在與模板匹配時(shí),遍歷了整幅圖像,因而比較耗時(shí),一般不能滿足系統(tǒng)跟蹤過(guò)程中的實(shí)時(shí)性和迅速性的要求[4]。針對(duì)上述傳統(tǒng)模板匹配存在的局限性,本文在將模板匹配過(guò)程中引進(jìn)了Kalman濾波器和模板更新來(lái)跟蹤目標(biāo)。在實(shí)驗(yàn)中,取得了良好的效果。
運(yùn)動(dòng)目標(biāo)的跟蹤技術(shù)包括:目標(biāo)的捕獲(初始目標(biāo)的確定)、目標(biāo)的識(shí)別或提取、目標(biāo)的位置測(cè)量、目標(biāo)的跟蹤[5]。首先通過(guò)鼠標(biāo)在初始幀上選取目標(biāo)作為初始模板,當(dāng)捕獲到新的圖像序列時(shí),根據(jù)Kalman濾波器預(yù)測(cè)目標(biāo)大概范圍,在較小的范圍中根據(jù)模板匹配算法從圖像中提取目標(biāo)。如果此幀的目標(biāo)與模板的匹配度高于閾值,則將此幀的目標(biāo)作為下幀的目標(biāo)來(lái)更新模板,如果此幀目標(biāo)與模板匹配度低于閾值,模板不變??蚣苁疽鈭D如圖1所示。
圖1 系統(tǒng)框架示意圖
模板匹配是圖像中尋找目標(biāo)的方法之一。其原理較簡(jiǎn)單,就是在一幅圖像中尋找和模板圖像最相似的區(qū)域[6]。示意圖如圖2所示。
圖2 模板匹配示意圖
模板T的大小為w×h,被搜索圖像I的大小為W×H,模板從源圖像的左上角平移到右下角,模板覆蓋源圖像的區(qū)域稱作子圖I',子圖I'左上角在原圖上的坐標(biāo)(x,y),子圖是原圖的一部分,有:
(1)
比較模板T和子圖I'的相似性,完成模板匹配的過(guò)程。
模板和子圖的相似性可以用兩者之間的平方差R(x,y)表示:
(2)
將其歸一化,得到模板匹配的相關(guān)系數(shù):
(3)
(4)
模板與目標(biāo)的匹配度與匹配相關(guān)系數(shù)成反比,即歸一化的匹配相關(guān)系數(shù)Rnormed(x,y)越接近于0,匹配度越高。
在目標(biāo)實(shí)際跟蹤過(guò)程中,目標(biāo)的形狀是不斷變化的,傳統(tǒng)的模板匹配會(huì)導(dǎo)致目標(biāo)的跟蹤漂移[7]。模板更新能夠很好地解決由此引發(fā)的跟蹤漂移[8]。模板更新原則是:如果第n-1幀的目標(biāo)與模板匹配相關(guān)系數(shù)低于閾值,則將第n-1幀的目標(biāo)作為第n幀的模板;如果第n-1幀的目標(biāo)與模板匹配相關(guān)系數(shù)高于閾值,則不進(jìn)行模板的更新。即:
(5)
式中:Tn(x,y)為第n幀的模板,Tn-1(x,y)為第n-1幀的模板,Rn-1(x,y)為第n-1幀中跟蹤到的目標(biāo),(Rnormed(x,y)n-1)min為n-1幀的最小的匹配相關(guān)系數(shù);ξ為設(shè)定的最小相關(guān)系數(shù)閾值。
Kalman濾波器是一個(gè)線性的濾波器,算法主要包括狀態(tài)方程和量測(cè)方程[9],分別如下:
狀態(tài)方程:xk=F·xk-1+Wk-1
(6)
量測(cè)方程:Zk=Hk·xk+Vk
(7)
xk是k時(shí)刻的狀態(tài)向量,F(xiàn)是一個(gè)n×n的狀態(tài)變量增益矩陣。Zk是k時(shí)刻觀測(cè)到的系統(tǒng)狀態(tài)向量,Hk是m×n的量測(cè)矩陣。Wk-1和Vk表示過(guò)程和測(cè)量噪聲,一般可假定這2個(gè)噪聲為相互獨(dú)立的均值為0的正態(tài)白色噪聲:
(8)
由于系統(tǒng)確定,則F和Hk確定,Wk-1和Vk滿足一定假設(shè),則可以得到先驗(yàn):
x'k=F·xk-1+Wk-1
(9)
用P'k表示誤差協(xié)方差,此協(xié)方差在時(shí)刻k的先驗(yàn)估計(jì)由其在時(shí)刻k-1的值得到:
P'k=F·Pk-1·FT+Qk-1
(10)
上述等式構(gòu)成了預(yù)估器預(yù)測(cè)部分的基礎(chǔ),由此可以得到Kalman系數(shù):
(11)
于是可以計(jì)算xk和Pk最優(yōu)的估計(jì)值:
xk=x'k+Kk(Zk-Hkx'k)
(12)
Pk=(1-Kk·Hk)P'k
(13)
由預(yù)測(cè)原理可知,在跟蹤二維運(yùn)動(dòng)目標(biāo)時(shí),可以將目標(biāo)的狀態(tài)用2個(gè)位置變量x和y,以及2個(gè)速度變量vx和vy表示,這4個(gè)變量組成狀態(tài)向量xk的元素,則:
(14)
模板匹配更新能夠很好地解決跟蹤漂移的問(wèn)題,適合于非線性運(yùn)動(dòng)目標(biāo)的跟蹤,Kalman濾波器可以準(zhǔn)確地檢測(cè)運(yùn)動(dòng)目標(biāo)的位置和速度[10]。因此本文將兩種算法結(jié)合,避免跟蹤漂移并同時(shí)對(duì)目標(biāo)的運(yùn)動(dòng)狀態(tài)進(jìn)行預(yù)測(cè)。改進(jìn)的運(yùn)動(dòng)目標(biāo)跟蹤算法步驟如下:
1) 初始化目標(biāo)的位置、速度,若運(yùn)動(dòng)目標(biāo)速度未知設(shè)為0,并記錄當(dāng)前圖像的時(shí)刻;進(jìn)行目標(biāo)模板初始化,獲得目標(biāo)模板。
2) 通過(guò)圖像相鄰兩幀的差,獲得差分圖像。然后用矩形框和質(zhì)心來(lái)確定運(yùn)動(dòng)目標(biāo)區(qū)域。在目標(biāo)區(qū)域構(gòu)成的矩形框內(nèi)提取目標(biāo)特征點(diǎn)。
3) 利用Kalman濾波器計(jì)算預(yù)測(cè)目標(biāo)的位置;再根據(jù)Kalman預(yù)測(cè)結(jié)果,確定當(dāng)前目標(biāo)幀中目標(biāo)搜索區(qū)域,并修正Kalman濾波器。
4) 根據(jù)目標(biāo)檢測(cè)方法,在搜索區(qū)域中找到與目標(biāo)模型最匹配的候選目標(biāo)位置。根據(jù)候選目標(biāo)與目標(biāo)的相似度判斷是否需要模板更新,使用模板更新解決目標(biāo)姿態(tài)變化和遮擋對(duì)跟蹤的影響。模板匹配成功后判斷跟蹤是否完成。如果完成則退出程序,否則跳到下一幀,直到跟蹤結(jié)束為止。
實(shí)驗(yàn)中分別用簡(jiǎn)單的模板匹配、更新模板的模板匹配以及帶Kalman濾波的更新模板的模板匹配方法,對(duì)連續(xù)的200幀視頻序列進(jìn)行了跟蹤(模板是通過(guò)鼠標(biāo)選取的第0幀的圖像),視頻的分辨率是768×768像素。實(shí)驗(yàn)中主機(jī)配置為Intel(R)Core(TM) i3 CPU 530 @2.70GHz 2.93GHz,實(shí)驗(yàn)環(huán)境為VS2010,采用C#語(yǔ)言,利用計(jì)算機(jī)視覺(jué)庫(kù)Emgu實(shí)現(xiàn)的。選取的第35幀、85幀、135幀、185幀的實(shí)驗(yàn)效果如圖3-圖5所示。
圖3 簡(jiǎn)單模板匹配算法跟蹤效果
圖4 更新模板的模板匹配算法跟蹤效果
圖5 帶Kalman濾波器的跟新模板匹配算法跟蹤效果
不同算法的的目標(biāo)識(shí)別率和識(shí)別速度是不一樣的,對(duì)比數(shù)據(jù)如表1和表2所示。
表1 不同方法連續(xù)50幀圖像中目標(biāo)識(shí)別數(shù)與識(shí)別率
表2 不同方法處理一幀圖像平均耗時(shí) ms
由實(shí)驗(yàn)結(jié)果可知,進(jìn)行簡(jiǎn)單的模板匹配時(shí),隨著目標(biāo)的移動(dòng),識(shí)別率逐漸降低。在車(chē)輛目標(biāo)轉(zhuǎn)彎之后,識(shí)別率急劇下降。更新模板之后,200幀圖像中未跟丟目標(biāo),有效地保證了目標(biāo)的識(shí)別率。
在識(shí)別效率上,未采用Kalman濾波器時(shí)處理一幀圖像需要的時(shí)間約為160 ms。采用Kalman濾波器之后縮小了搜索目標(biāo)的范圍,減小了計(jì)算量,平均每幀圖片處理時(shí)間為14.130 8 ms,滿足工程實(shí)時(shí)性的要求。
本文首先針對(duì)簡(jiǎn)單的模板匹配的目標(biāo)識(shí)別率隨著目標(biāo)的運(yùn)動(dòng)而下降的局限性,在模板匹配過(guò)程中實(shí)時(shí)有效地更新模板,提高目標(biāo)的識(shí)別率。同時(shí)為了滿足圖像處理的實(shí)時(shí)性要求,結(jié)合Kalman濾波,有效地預(yù)測(cè)下一幀可能出現(xiàn)的區(qū)域,在較小的區(qū)域中進(jìn)行模板匹配運(yùn)算,減小計(jì)算量。實(shí)驗(yàn)表明,采用帶Kalman預(yù)測(cè)的模板更新匹配算法能夠快速準(zhǔn)確地跟蹤目標(biāo)。