季皓宣燁,梁鵬鵬,柴玉梅,王黎明
(鄭州大學(xué)信息工程學(xué)院,鄭州 450001)
平面物體跟蹤算法在增強(qiáng)現(xiàn)實(shí)、監(jiān)控、基于視覺(jué)的控制和重建等計(jì)算機(jī)視覺(jué)鄰域有著廣泛的應(yīng)用。近年來(lái),研究人員對(duì)平面物體跟蹤算法的研究取得了較大進(jìn)展,但現(xiàn)實(shí)中的遮擋、模糊、尺度變換等各類(lèi)復(fù)雜場(chǎng)景,會(huì)影響跟蹤器的跟蹤性能[1]。因此,需要設(shè)計(jì)一個(gè)魯棒的平面物體跟蹤算法以適應(yīng)現(xiàn)實(shí)中的復(fù)雜場(chǎng)景。
平面物體跟蹤算法分為基于關(guān)鍵點(diǎn)[2-4]的平面物體跟蹤算法和基于區(qū)域[5-7]的平面物體跟蹤方法?;趨^(qū)域的方法直接使用圖像中像素點(diǎn)的外觀,并通過(guò)優(yōu)化目標(biāo)物體與輸入圖像之間的相似度度量確定目標(biāo)物體的位置,這類(lèi)方法容易受到尺度變換、部分遮擋以及快速移動(dòng)等擾動(dòng)因子的干擾[8]。而基于關(guān)鍵點(diǎn)的方法可以視作圖像之間檢測(cè)到的關(guān)鍵點(diǎn)的匹配問(wèn)題,通過(guò)將目標(biāo)物體描述為一組關(guān)鍵點(diǎn)以及帶有關(guān)鍵點(diǎn)標(biāo)識(shí)的描述符集合,使得這類(lèi)方法能夠捕捉到關(guān)鍵點(diǎn)及其局部區(qū)域外觀的變化,從而能夠充分探索目標(biāo)物體本身的結(jié)構(gòu)信息,使基于關(guān)鍵點(diǎn)的方法能夠使圖像在受到旋轉(zhuǎn)、光照以及視角變換等擾動(dòng)因子下具備不變性[9]。此外,由于這類(lèi)方法在跟蹤過(guò)程中僅利用部分關(guān)鍵點(diǎn)匹配就能得到良好的跟蹤結(jié)果,因此基于關(guān)鍵點(diǎn)的平面物體跟蹤算法適合目標(biāo)物體被部分遮擋的情況。相較于基于區(qū)域的方法,基于關(guān)鍵點(diǎn)的方法更能夠適應(yīng)復(fù)雜場(chǎng)景下的平面物體跟蹤。
為進(jìn)一步提高在各類(lèi)復(fù)雜場(chǎng)景下基于關(guān)鍵點(diǎn)的平面物體跟蹤算法的魯棒性,本文提出一種基于關(guān)鍵點(diǎn)并融合光流的平面物體跟蹤算法。對(duì)目標(biāo)物體與輸入圖像分別檢測(cè)關(guān)鍵點(diǎn)以及帶有關(guān)鍵點(diǎn)標(biāo)識(shí)的描述符,通過(guò)最近鄰匹配方法建立目標(biāo)物體與輸入圖像之間的關(guān)鍵點(diǎn)匹配集合,利用光流法計(jì)算圖像序列中目標(biāo)物體關(guān)鍵點(diǎn)的光流,計(jì)算出目標(biāo)物體的關(guān)鍵點(diǎn)在當(dāng)前圖像中的位置,得到圖像之間關(guān)鍵點(diǎn)的對(duì)應(yīng)關(guān)系。通過(guò)相應(yīng)的懲罰系數(shù),由加權(quán)平均的策略將已得到的兩組關(guān)鍵點(diǎn)對(duì)應(yīng)關(guān)系進(jìn)行融合,得出修正后目標(biāo)物體與輸入圖像之間的關(guān)鍵點(diǎn)匹配集合,通過(guò)魯棒的幾何驗(yàn)證方法估計(jì)目標(biāo)物體相對(duì)于輸入圖像的單應(yīng)性變換,從而得出當(dāng)前圖像中目標(biāo)物體的位置,并在POT[10]數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)證明。
通過(guò)局部描述符尋找圖像間的關(guān)鍵點(diǎn)對(duì)應(yīng)關(guān)系,是基于關(guān)鍵點(diǎn)的平面物體跟蹤算法的核心。該方法的目的是設(shè)計(jì)更健壯的局部描述符,并探尋利用距離度量改善描述符匹配。文獻(xiàn)[4]將關(guān)鍵點(diǎn)匹配問(wèn)題轉(zhuǎn)換為分類(lèi)問(wèn)題,在進(jìn)行分類(lèi)器的訓(xùn)練時(shí),將一個(gè)關(guān)鍵點(diǎn)的外觀集合當(dāng)作一個(gè)類(lèi)用以訓(xùn)練分類(lèi)器,因此,計(jì)算的開(kāi)銷(xiāo)轉(zhuǎn)移到訓(xùn)練階段的方法能夠快速地執(zhí)行關(guān)鍵點(diǎn)的分類(lèi)。文獻(xiàn)[11]使用樸素貝葉斯分類(lèi)框架來(lái)表達(dá)關(guān)鍵點(diǎn)識(shí)別問(wèn)題,通過(guò)數(shù)百個(gè)簡(jiǎn)單的二進(jìn)制特征描述關(guān)鍵點(diǎn)鄰域圖像斑塊,并使用分類(lèi)器計(jì)算每個(gè)關(guān)鍵點(diǎn)類(lèi)別的后驗(yàn)概率。為了在跟蹤過(guò)程中利用空間和時(shí)間的一致性,文獻(xiàn)[12]通過(guò)一個(gè)度量學(xué)習(xí)驅(qū)動(dòng)方法學(xué)習(xí)了一個(gè)魯棒的基于關(guān)鍵點(diǎn)外觀的模型。文獻(xiàn)[13]對(duì)SIFT[2]和FERNS[11]進(jìn)行改進(jìn),使它們能夠在移動(dòng)設(shè)備上進(jìn)行實(shí)時(shí)跟蹤。為充分探索對(duì)象的結(jié)構(gòu)信息,減少各種擾動(dòng)因素的干擾,文獻(xiàn)[8]提出了基于圖的跟蹤器Gacker,文獻(xiàn)[14]將關(guān)鍵點(diǎn)匹配和變換估計(jì)結(jié)合到一個(gè)統(tǒng)一的框架中,并且采用線性結(jié)構(gòu)化支持向量機(jī)(SVM)使對(duì)象模型快速適應(yīng)給定的環(huán)境。
光流法是一種利用光流方程求解目標(biāo)在圖像平面上運(yùn)動(dòng)參數(shù)的方法?;诠饬鞯母櫡椒ǎ?5]由于高效的特性而受到廣泛的關(guān)注。按照理論基礎(chǔ)與數(shù)學(xué)方法的區(qū)別,文獻(xiàn)[16]將光流計(jì)算技術(shù)分為基于梯度的方法、基于區(qū)域匹配的方法、基于能量的方法和基于相位的方法4 種?;谔荻鹊姆椒ǚQ(chēng)為微分法,利用時(shí)變圖像灰度的時(shí)空微分計(jì)算像素點(diǎn)的速度矢量,具體代表為Horn-Schunck 光流計(jì)算方法[17],該方法通過(guò)在光流基本約束方程的基礎(chǔ)上附加全局平滑假設(shè),從而計(jì)算出光流場(chǎng)。文獻(xiàn)[18]采用有條件的平滑約束,通過(guò)加權(quán)矩陣的控制對(duì)梯度進(jìn)行不同的平滑處理。針對(duì)多運(yùn)動(dòng)的估計(jì)問(wèn)題,文獻(xiàn)[19]提出了分段平滑的方法?;趨^(qū)域匹配的方法[20-21]通過(guò)定位相似區(qū)域,由相似區(qū)域的位移計(jì)算光流,通過(guò)對(duì)圖像序列進(jìn)行時(shí)空濾波處理,使基于能量的方法[15,22]適于均勻的流場(chǎng)。文獻(xiàn)[23]提出了基于相位的方法,根據(jù)與帶通速度調(diào)諧濾波器輸出中的等相位輪廓相垂直的瞬時(shí)速度來(lái)定義分速度,使帶通濾波器按照尺度、速度和定向來(lái)分離輸入信號(hào)。針對(duì)大位移在弱紋理情況下的光流信息計(jì)算誤差較大的問(wèn)題,文獻(xiàn)[24]提出一種基于改進(jìn)V1-MT 前饋模型的光流計(jì)算方法,能在大位移、弱紋理情況下更為準(zhǔn)確地計(jì)算光流信息。近年來(lái),利用神經(jīng)網(wǎng)絡(luò)建立的光流計(jì)算技術(shù)[25-26]取得了廣泛的關(guān)注與研究。
在實(shí)現(xiàn)本文算法的過(guò)程中,對(duì)于基于關(guān)鍵點(diǎn)的平面物體跟蹤算法的選取,由于基于SIFT[2]的平面物體跟蹤算法是這類(lèi)方法中的一個(gè)經(jīng)典的方法,并且在平面物體跟蹤任務(wù)中具有良好的表現(xiàn)[10],因此本文將目標(biāo)物體的SIFT[2]關(guān)鍵點(diǎn)處的光流引入基于SIFT[2]的平面物體跟蹤算法中。
基于關(guān)鍵點(diǎn)并融合光流的平面物體跟蹤算法的主要思想是根據(jù)相應(yīng)的懲罰系數(shù),對(duì)由SIFT[2]和光流法建立的圖像間的兩組對(duì)應(yīng)關(guān)系,通過(guò)加權(quán)平均的方式進(jìn)行融合,生成最終的對(duì)應(yīng)關(guān)系。這兩個(gè)懲罰系數(shù)會(huì)根據(jù)不同算法在同一個(gè)有序圖像序列下的表現(xiàn),增強(qiáng)或削弱其對(duì)修正后匹配點(diǎn)位置的貢獻(xiàn)。
對(duì)輸入的帶有目標(biāo)物體M的圖像序列I,需要使用SIFT[2]構(gòu)建I中的圖像與M之間的關(guān)鍵點(diǎn)匹配集合。對(duì)目標(biāo)物體M,由高斯差分函數(shù)來(lái)識(shí)別潛在的對(duì)于尺度以及旋轉(zhuǎn)不變的關(guān)鍵點(diǎn)。首先通過(guò)圖像的尺度變換以及高斯差分生成高斯差分金字塔,尋找極值點(diǎn)確定候選關(guān)鍵點(diǎn)。然后通過(guò)泰勒展開(kāi)去除低對(duì)比度的特征點(diǎn),并由海森(Hessian)矩陣消除邊緣的響應(yīng)點(diǎn)。由上述方法對(duì)M構(gòu)建關(guān)鍵點(diǎn)集合K0,以K0中每個(gè)關(guān)鍵點(diǎn)為中心采樣周?chē)?6×16 作為特征區(qū)域,計(jì)算區(qū)域內(nèi)每個(gè)像素點(diǎn)的梯度幅值與方向,統(tǒng)計(jì)個(gè)數(shù)最多的方向?yàn)樵撽P(guān)鍵點(diǎn)的主方向,將坐標(biāo)軸旋轉(zhuǎn)至主方向,隨后將每個(gè)特征區(qū)域分為4×4 的子域,每個(gè)子域計(jì)算8 個(gè)方向(45°,90°,…,360°)的梯度方向直方圖,通過(guò)繪制每個(gè)梯度方向的累加值,形成一個(gè)種子點(diǎn),這樣對(duì)16 個(gè)子域生成16 個(gè)包含8 個(gè)方向向量的種子點(diǎn),這樣就生成了128 維的SIFT 特征向量,經(jīng)過(guò)歸一化后生成關(guān)鍵點(diǎn)的描述符集合D0,構(gòu)建元組(K0,D0)。
為便于說(shuō)明基于SIFT 的匹配點(diǎn)集合的構(gòu)建過(guò)程,以圖像序列I中的第i張圖像Ii為例。用SIFT 算法提取Ii的關(guān)鍵點(diǎn)集合KIi及存儲(chǔ)關(guān)鍵點(diǎn)標(biāo)識(shí)的描述符集合DIi,構(gòu)建元組(KIi,DIi)。對(duì)D0中的第m個(gè)描述符D0,m以歐式距離作為相似度度量,采用暴力匹配的方式,找出DIi中與D0,m最相似的描述符DIi,n,由關(guān)鍵點(diǎn)的標(biāo)識(shí)(m,n)得到匹配的關(guān)鍵點(diǎn)對(duì)(K0,m,KIi,n),可以表示M與Ii之間一對(duì)匹配的關(guān)鍵點(diǎn)。隨后將元素(K0,m,KIi,n)送入關(guān)鍵點(diǎn)匹配集合中。重復(fù)上述過(guò)程直至遍歷K0中所有的元素。至此,對(duì)圖像Ii構(gòu)建出基于SIFT 的關(guān)鍵點(diǎn)匹配集合。
本文使用Lucas-Kanade[27]算法計(jì)算目標(biāo)物體的關(guān)鍵點(diǎn)集合K0中每一個(gè)關(guān)鍵點(diǎn)的光流,該算法基于亮度不變假設(shè)和鄰域光流相似假設(shè)兩個(gè)不變性假設(shè)?;谏鲜鰞蓚€(gè)假設(shè),對(duì)時(shí)刻t時(shí)的圖像函數(shù)Img(x,y,t)建立光流方程,由最小二乘法可得近似解:
其中,Img 表示整幅圖像,Imgx、Imgy、Imgt分別表示Img 對(duì)x、y、t的偏導(dǎo)數(shù),由式(1)得出(Δx,Δy),表示在時(shí)刻t時(shí)x、y方向的速度。
對(duì)有序圖像序列I,有第一張圖像I0以及預(yù)先指定的目標(biāo)物體的關(guān)鍵點(diǎn)集合K0,對(duì)光流法F,有LI1=F(K0),LI2=F(LI1),…,LIn=F(LIn-1),其中,LIn為In中與K0對(duì)應(yīng)的點(diǎn)的集合,與K0中的坐標(biāo)是一一對(duì)應(yīng)的。同理,對(duì)圖像Ii,由上述過(guò)程得出的點(diǎn)的集合LIi,由LIi與K0構(gòu)建對(duì)應(yīng)關(guān)系:
其中,Ind(x)為指示函數(shù),當(dāng)x成立時(shí),Ind(x)=1,否則Ind(x)=0,Δ(a,b)表示a、b之間的歐氏距離。
為計(jì)算λ1、λ2的值,本文基于以下的觀察:在SIFT進(jìn)行平面物體跟蹤的過(guò)程中,圖像序列中的前N(N較?。垐D像所預(yù)測(cè)的跟蹤框通常是可靠的?;谠撚^察對(duì)圖像序列中的前N張圖像,計(jì)算這些圖像中目標(biāo)物體的單應(yīng)性變換矩陣。由K0中元素的位置,通過(guò)透視變換得到變換后的點(diǎn)TruthIi。此時(shí),記CL為僅使用Lucas-Kanade 進(jìn)行關(guān)鍵點(diǎn)對(duì)應(yīng)時(shí)發(fā)生錯(cuò)誤(Δ(LIi,m,TruthIi,m)>μ1r)的次數(shù),CS為僅使用SIFT 進(jìn)行關(guān)鍵點(diǎn)匹配時(shí)發(fā)生錯(cuò)誤(Δ(KIi,n,TruthIi,m)>μ1r)的次數(shù)。對(duì)(λ1,λ2)的值,由式(4)計(jì)算:
通過(guò)式(3)、式(4)可以得出修正后的匹配點(diǎn)集合?Ii。由魯棒的矩陣估計(jì)方法,對(duì)?Ii計(jì)算單應(yīng)性矩陣HIi,由HIi與序列I中第1 張圖像中目標(biāo)物體M的標(biāo)注點(diǎn),通過(guò)透視變換得出圖像Ii中目標(biāo)物體的位置預(yù)測(cè)值RIi,即為Ii中目標(biāo)的跟蹤結(jié)果。算法1 描述了基于關(guān)鍵點(diǎn)并融合光流的平面物體跟蹤算法對(duì)輸入圖像序列中目標(biāo)物體M的跟蹤過(guò)程。
算法1基于關(guān)鍵點(diǎn)并融合光流的平面物體跟蹤算法
通過(guò)實(shí)驗(yàn)在公開(kāi)數(shù)據(jù)集上評(píng)測(cè)了本文提出的算法(SIFT+OF),并與SIFT[2]、FERNS[11]、SURF[3]、SOL[14]、GPF[28]、SCV[6]、ESM[7]、GO-ESM[20]、IC[5]、L1APG[29]和IVT[30]11 個(gè)經(jīng)典算法進(jìn)行了比較。
實(shí)驗(yàn)所用數(shù)據(jù)集為POT 數(shù)據(jù)集[10],該數(shù)據(jù)集對(duì)30 個(gè)物體的7 種運(yùn)動(dòng)狀態(tài)進(jìn)行采集,這7 種運(yùn)動(dòng)狀態(tài)分別是尺度變換、旋轉(zhuǎn)、透視失真、運(yùn)動(dòng)狀態(tài)的模糊、遮擋、出視野和無(wú)限制移動(dòng)。POT 數(shù)據(jù)集中每張圖像的像素為1 280×720,有52 500 張圖像標(biāo)注了目標(biāo)物體4 個(gè)角點(diǎn)的坐標(biāo),由于數(shù)據(jù)集中的圖像序列均為野外場(chǎng)景拍攝,因此可以很好地模擬實(shí)際應(yīng)用中復(fù)雜多變的環(huán)境。
按照文獻(xiàn)[10]中的評(píng)測(cè)辦法,以校正誤差作為評(píng)價(jià)指標(biāo),該指標(biāo)基于物體的4 個(gè)角點(diǎn),計(jì)算跟蹤器預(yù)測(cè)的跟蹤結(jié)果與真實(shí)值之間的歐氏距離的平均值,如式(5)所示:
其中,xi是跟蹤器預(yù)測(cè)的目標(biāo)物體的4 個(gè)角點(diǎn)坐標(biāo),為真實(shí)標(biāo)注的目標(biāo)物體4 個(gè)角點(diǎn)的坐標(biāo)。
通過(guò)精度圖反映跟蹤器的質(zhì)量[31],它表示校正誤差eAL小于閾值tp的幀所占的百分比。
本次實(shí)驗(yàn)環(huán)境為Ubuntu16.04 系統(tǒng),使用OpenCV3.2.0 設(shè)計(jì)實(shí)現(xiàn),實(shí)驗(yàn)設(shè)備為CPU:Intel Core i7-7700HQ CPU,內(nèi)存16 GB。實(shí)驗(yàn)參數(shù)設(shè)置為閾值μ1=1,μ2=3,半徑r=3,N=10。為驗(yàn)證SIFT 與光流融合的平面物體跟蹤算法(SIFT+OF)的有效性,本文實(shí)驗(yàn)評(píng)測(cè)了SIFT+OF 在平面物體跟蹤任務(wù)[10]中的跟蹤精度以及跟蹤速度。
3.3.1 平面物體跟蹤任務(wù)
本節(jié)評(píng)估了SIFT+OF 在POT 數(shù)據(jù)集[10]上的跟蹤精度,并與11個(gè)經(jīng)典的平面物體跟蹤算法[2-3,5-7,11,14,20,28-30]的跟蹤精度進(jìn)行了比較。其中,除SIFT+OF 外,其余算法的結(jié)果均引用文獻(xiàn)[10]中的評(píng)測(cè)結(jié)果。圖1 為12 種算法在7 種運(yùn)動(dòng)狀態(tài)下的跟蹤精度圖以及所有狀態(tài)下的平均結(jié)果,其中tp為校正誤差閾值。表1 為校正誤差閾值tp=5 時(shí)的跟蹤精度,其中最優(yōu)值加粗表示。
圖1 不同算法在POT 數(shù)據(jù)集中的跟蹤精度Fig.1 Tracking accuracy of different algorithms in the POT dataset
表1 校正誤差閾值為5 時(shí)不同算法在POT 數(shù)據(jù)集中的跟蹤精度Table 1 Tracking accuracy of different algorithms in the POT dataset when the correction error threshold is 5
實(shí)驗(yàn)結(jié)果表明,將SIFT 與光流融合的平面物體跟蹤算法(SIFT+OF)優(yōu)于基于SIFT[2]的平面物體跟蹤算法。特別地,在尺度變換(圖1(a)、表1)、透視失真(圖1(c)、表1)狀態(tài)下取得最好的效果,運(yùn)動(dòng)模糊(圖1(d)、表1)優(yōu)于基于SIFT 的平面物體跟蹤算法。從整體表現(xiàn)來(lái)看,在校正誤差閾值為5 時(shí),SIFT+OF 在POT 數(shù)據(jù)集[14]中的跟蹤精度與基于SIFT[2]的平面物體跟蹤算法相比,提高了4.4%。
3.3.2 跟蹤速度對(duì)比
由于SIFT+OF 與基于SIFT[2]的平面物體跟蹤算法相比增加了額外計(jì)算,為探究SIFT+OF 的運(yùn)行速度,本文對(duì)SIFT+OF 與11 種經(jīng)典的跟蹤算法的運(yùn)行速度進(jìn)行測(cè)評(píng)。表2 統(tǒng)計(jì)了各個(gè)算法的跟蹤速度。
表2 不同算法在POT 數(shù)據(jù)集中的跟蹤速度Table 2 Tracking speed of different algorithms on the POT dataset(frames·s-1)
從表2 可以看出,對(duì)FERNS[11]而言,由于計(jì)算的開(kāi)銷(xiāo)轉(zhuǎn)移至訓(xùn)練階段,因此具有更高的運(yùn)行速度,而SIFT+OF 與SIFT[2]具有相似的運(yùn)行速度,更具體地,SIFT[2]的跟蹤速度為1.859 frames/s,略快于SIFT+OF 的1.845 frames/s。因此,可得出SIFT+OF 的運(yùn)行速度稍慢于SIFT[2]算法。綜合上述的實(shí)驗(yàn)結(jié)果及分析可以得出,本文提出的算法(SIFT+OF)能夠在平面物體跟蹤的評(píng)測(cè)任務(wù)中取得良好的表現(xiàn),且具有較高的運(yùn)行速度。
本文提出一種基于關(guān)鍵點(diǎn)并融入光流的平面物體跟蹤算法。將Lucas-Kanade 算法計(jì)算的目標(biāo)物體關(guān)鍵點(diǎn)的運(yùn)動(dòng)信息融入SIFT 算法特征匹配的過(guò)程中,根據(jù)加權(quán)平均策略對(duì)目標(biāo)物體與輸入圖像關(guān)鍵點(diǎn)的對(duì)應(yīng)關(guān)系進(jìn)行調(diào)整,從而得出目標(biāo)與輸入圖像關(guān)鍵點(diǎn)之間的對(duì)應(yīng)關(guān)系。利用魯棒的幾何驗(yàn)證方法計(jì)算目標(biāo)物體在當(dāng)前圖像中的單應(yīng)性變換,基于該變換矩陣,通過(guò)目標(biāo)物體關(guān)鍵點(diǎn)的角點(diǎn)坐標(biāo)由透視變換得出跟蹤結(jié)果?;赑OT 數(shù)據(jù)集52 500 張帶標(biāo)注圖像的實(shí)驗(yàn)結(jié)果表明,該算法相比經(jīng)典的跟蹤算法能夠取得更高的跟蹤精度。下一步研究是將基于深度學(xué)習(xí)的方法與本文提出的方法相結(jié)合,在保證跟蹤速度的同時(shí),提高對(duì)圖像序列中目標(biāo)物體的跟蹤精度。