杜靜雯,黃 山
(1.四川大學(xué) 電氣信息學(xué)院,四川 成都 610065;2.四川大學(xué) 計算機學(xué)院,四川 成都 610065)
針對傳統(tǒng)Meanshift[1]目標跟蹤算法在跟蹤過程中無法根據(jù)目標的大小來自適應(yīng)改變跟蹤框的大小問題,許多學(xué)者提出了大量的改進算法。文獻[2]用增量試探法來實現(xiàn)跟蹤窗自適應(yīng),其構(gòu)建的跟蹤框是線性變化的,具有一定的局限性。文獻[3]利用矩估計和巴氏系數(shù)來估計目標的真實尺度。文獻[4]對圖像進行視覺顯著性檢測,結(jié)合像素歸屬度確定目標區(qū)域并構(gòu)建自適應(yīng)核函數(shù),來實現(xiàn)尺度自適應(yīng)。文獻[5]使用了改進的三幀差分法與傳統(tǒng)均值漂移跟蹤算法相結(jié)合,在目標模板與候選模板巴氏系數(shù)小于一定閾值時進行了模板更新,但尺度自適應(yīng)的靈敏性不高。文獻[6]采用了五幀差分法結(jié)合改進的Meanshift算法進行跟蹤,雖然可以較為完整地檢測出運動目標,但卻沒有實現(xiàn)尺度自適應(yīng),而且算法復(fù)雜度升高,實時性較差。文獻[7]結(jié)合幀差法與canny算子提取目標輪廓來更新核函數(shù)帶寬和跟蹤窗,可以得到很好的跟蹤效果。文獻[5,7]雖然能夠?qū)崿F(xiàn)尺度自適應(yīng),但卻不適用于多個運動目標存在的場景。
本文提出一種尺度自適應(yīng)的均值漂移跟蹤算法,為了改善傳統(tǒng)均值漂移算法跟蹤準確度低的缺點,本文將HLBP[8]特征運用到Meanshift框架中進行跟蹤,該算法計算復(fù)雜度低,實時性高。
(1)
(2)
(3)
(4)
(5)
(6)
選擇巴氏相關(guān)系數(shù)來表征目標模型與候選模型之間的相似度,計算方法為式(7)。ρ即為巴氏系數(shù)的值
(7)
式(8)中ωi為權(quán)值,式(9)中z即為每次搜索得到的跟蹤框新位置,且g(x)=-k′(x)。 使巴氏系數(shù)取值最大的z即為當前幀目標的最終定位
(8)
(9)
HLBP紋理特征是文獻[8]中提出來的,該特征的計算結(jié)合了Haar特征和LBP紋理特征各自的計算方法,二者優(yōu)勢互補,有著更好的紋理表達能力。HLBP的8組編碼模式如圖1所示,其中的閾值是固定閾值,受人為因素影響較大,本文以模板均值作為閾值T,按式(10)計算,W(x,y)、Mi的含義以及HLBP紋理特征的詳細計算過程可查閱文獻[8]
(10)
圖1 HLBP特征編碼模式
(1)將初始幀中手動選擇的矩形框內(nèi)的圖片轉(zhuǎn)化為灰度圖,以便于提取LBP特征,之后的每一幀在處理前都將重復(fù)這一過程。
(3)讀取視頻下一幀,并保存上一幀搜索的目標質(zhì)心位置x,以上一幀的矩形框中心位置來初始化當前幀矩形框的位置y0。
(9)當循環(huán)停止的時候,此時的z就是目標的最終位置,當前幀的搜索結(jié)束,返回(3),繼續(xù)進行下一幀的搜索。
為了得到完整的運動目標,本文算法中用到了腐蝕和膨脹等形態(tài)學(xué)運算,比如對二值化圖像進行處理,填補目標內(nèi)部的空洞以及消除物體與物體的粘連,以此來更好地獲取目標。
(1)膨脹
設(shè)A和B是二維整數(shù)控件Z2中的集合,A被B膨脹定義為式(11),其中B成為結(jié)構(gòu)元素,運算如圖2所示
(11)
圖2 膨脹
(2)腐蝕
A被B膨脹定義為式(12),運算如圖3所示
A?B={z|(B)z?A}
(12)
圖3 腐蝕
本文中對每一幀圖像進行分割并二值化處理,使用最大類間方差法獲得該幀圖像的最優(yōu)閾值,其理論如下所述:假設(shè)一幅灰度圖,高為H,寬為W,I(x,y)表示圖上某像素點的灰度值。若閾值為T,大于T的像素點有N0個,小于T的像素點有N1個,則圖像被分為目標和背景兩部分,按式(13)~式(20)進行計算
(13)
(14)
(15)
(16)
u=w0×u0+w1×u1
(17)
σ2=w0×(u0-u)2+w1×(u1-u)2
(18)
把式(17)帶入式(18)得到類間方差的計算公式如下
σ2=w0×w1×(u0-u1)2
(19)
被分割的兩個區(qū)域的方差達到最大時被認為是最佳分離狀態(tài),由此對應(yīng)的閾值T為
T=max(σ2)
(20)
式(13)~式(18)中,w0為目標像素點與整幅圖總像素點的比值,w1為背景像素點與整幅圖總像素點的比值,u0為目標像素點的平均灰度值,u1為背景像素點的平均灰度值,u為圖像像素點總體的平均灰度值,σ2即為方差,σ2越大,說明在閾值T的分割下目標與背景差別越明顯,利用式(20)求出令σ2最大的閾值T,作為分割圖像前景和背景的閾值。
本文采用區(qū)域生長法以確定運動目標的大小,進而實時更新跟蹤窗的大小,其基本思想是從一個像素點出發(fā),按一定的生長準則,把其鄰域中與之具有相同性質(zhì)的像素點集合起來形成新的區(qū)域,再以這些合并進來的新的像素點為種子點繼續(xù)進行上面的操作,進而實現(xiàn)目標的提取。
3.4.1 獲取完整運動目標
由于幀差法獲得的殘差圖像會出現(xiàn)檢測出兩個目標或者重影的情況,為此本文結(jié)合最大類間方差法獲得的二值圖,對二者進行“與”運算,以此來消除重影,最后獲得的圖經(jīng)過形態(tài)學(xué)處理,即可得到當前幀中完整的運動目標。圖4從左到右依次為原圖、原圖經(jīng)過幀差法以及形態(tài)學(xué)處理得到的圖、原圖經(jīng)過最大類間方差法分割以及形態(tài)學(xué)處理得到的圖以及二者“與”運算得到的結(jié)果圖。
圖4 獲取目標示例圖
3.4.2 跟蹤框的自適應(yīng)
假設(shè)幀差法得到的圖為G(x,y),最大類間方差法得到的圖為S(x,y),則進行區(qū)域生長的源圖為V(x,y),三者關(guān)系如式(21)
V(x,y)=G(x,y)∩S(x,y)
(21)
具體流程:
(1)在圖像V(x,y)中,以基于HLBP特征的Meanshift跟蹤算法搜索獲得的運動目標的中心點(x0,y0)作為初始種子點(也即跟蹤框的中心點);
(2)以(x0,y0)為中心,判斷其8鄰域像素點 (x,y),如果點(x,y)滿足生長準則,將(x,y)與(x0,y0)合并(在同一區(qū)域內(nèi)),同時將(x,y)壓入堆棧;
(3)判斷堆棧是否為空,若不空則從堆棧中取出一個像素,把它當作(x0,y0),返回到(2),否則執(zhí)行(4);
(4)當堆棧為空時,生長結(jié)束,即運動目標已經(jīng)找到。
本文中因為是在二值圖像上進行的區(qū)域生長,所以生長準則為灰度值255,大于255的為運動目標,小于255的為背景。
進行了區(qū)域生長之后,即可通過計算獲得目標的真實質(zhì)心以及面積,用該面積來修正跟蹤框的大小及質(zhì)心,以此來實現(xiàn)尺度自適應(yīng)。由于兩幀之間目標的尺度不會發(fā)生大面積變化,所以為了防止目標與別的運動物體挨得近的情況下導(dǎo)致檢測出來的目標面積增大,也為了防止檢測錯誤,在更新跟蹤框之前,要判斷當前幀所得到的目標面積與上一幀的目標面積的比值,若大于1.5或小于0.5,則表明所得到的目標面積有誤,不對搜索框進行修改。
3.4.3 本文算法流程(如圖5所示)
圖5 本文算法流程
所選測試視頻序列的幀高度為240,幀寬度為320。選取的跟蹤目標為朝著攝像頭方向運動的行人,且視頻中目標行人處于勻速行走的狀態(tài)。實驗平臺選擇的是Visual Studio 2010和opencv2.4.9版本,編程語言使用的是C/C++。
圖6為3種算法針對目標尺度逐漸變大情況下的部分實驗圖,每幅圖底部標示著對應(yīng)的幀數(shù)。從圖中可以看出,傳統(tǒng)Meanshift算法跟蹤效果最為不理想,在233幀之后就已跟丟目標,而自適應(yīng)閾值HLBP紋理特征的Meanshift算法跟蹤效果穩(wěn)定,明顯優(yōu)于傳統(tǒng)目標跟蹤算法,雖然未達到尺度自適應(yīng),但跟蹤框的中心依舊在目標身上,這就為本文算法奠定了基礎(chǔ)。從3幅圖的比較結(jié)果來看,本文算法跟蹤框能隨目標尺度的變大而變大,幾乎達到了最小外界矩形的狀態(tài),使得跟蹤更加穩(wěn)定,背景因素的影響降到了最低,使得跟蹤準確度得到了很大提高。
圖6 運動目標跟蹤結(jié)果對比
為了進一步分析,我們使用目標實際位置與跟蹤框位置之間的歐氏距離來衡量跟蹤誤差,并通過OriginPro繪圖軟件進行繪制,繪制結(jié)果如圖7所示??梢钥闯霰疚乃惴ǖ母櫿`差幾乎為0,基于自適應(yīng)閾值HLBP紋理特征的Meanshift算法跟蹤誤差雖然在很小的范圍內(nèi)上下波動,但依舊可以達到穩(wěn)定的跟蹤,相比之下,傳統(tǒng)方法的誤差呈發(fā)散趨勢,后期完全丟失了目標。實驗說明本文算法可以準確的跟蹤目標,并且尺度自適應(yīng)的效果也很好。
圖7 3種算法跟蹤誤差
所選測試視頻序列幀高度為240,幀寬度為320。選取的跟蹤目標為高速公路上朝著遠離攝像頭方向快速運動的車輛,相比于實驗一,實驗二特意選取了背景中有多個運動目標的視頻,相比于文獻[2]和文獻[7]只適用于單目標的情況,本文算法更具實用性。實驗平臺和編程語言的選擇同實驗一。
由于傳統(tǒng)Meanshift目標跟蹤算法難以跟蹤快速移動目標,所以選取了STC跟蹤算法來進行比較。圖8為3種算法針對目標尺度逐漸變小情況下的部分實驗圖。從圖中可以看出,自適應(yīng)閾值HLBP紋理特征的Meanshift算法與STC算法的跟蹤效果不相上下,都可以穩(wěn)定地跟蹤目標,二者的均未實現(xiàn)尺度自適應(yīng),這也說明了結(jié)合HLBP紋理特征的Meanshift算法可以跟蹤快速移動的物體。從3幅圖的比較結(jié)果來看,本文算法在目標快速移動的情況下可以準確而穩(wěn)定的跟蹤,且跟蹤框能隨目標尺度的變小而變小,幾乎達到了最小外界矩形的狀態(tài),使得跟蹤更加穩(wěn)定。
圖8 運動目標跟蹤結(jié)果對比
實驗二的誤差如圖9所示??梢钥闯霰疚乃惴ǖ母櫿`差相對于其它兩種算法來說很小,也更穩(wěn)定,雖然后期出現(xiàn)了小的波動,但很快又收斂于0。實驗說明本文算法在目標快速運動的情況下可以穩(wěn)定地跟蹤目標,并且尺度自適應(yīng)的效果也非常好。
圖9 3種算法跟蹤誤差
本文提出了一種尺度自適應(yīng)的目標跟蹤算法,利用閾值自適應(yīng)HLBP紋理特征的Meanshift算法在目標慢速或快速運動的情況下可以穩(wěn)定跟蹤的優(yōu)點,結(jié)合幀差法和最大類間方法差法以及形態(tài)學(xué)處理得到二值化目標區(qū)域來實現(xiàn)跟蹤框大小以及位置的修正,為了防止檢測到的目標大小出現(xiàn)錯誤導(dǎo)致跟蹤失敗,加入了面積判斷機制來增強算法的魯棒性,該算法計算復(fù)雜度較低,跟蹤結(jié)果準確,對目標尺度變化適應(yīng)性強。