廖斌
摘要:分析目前運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤中的經(jīng)典方法,包括幀間差分法、背景差分法和Mean Shift法,探討其適用范圍及優(yōu)缺點(diǎn),然后對(duì)3種算法進(jìn)行驗(yàn)證,給出實(shí)驗(yàn)結(jié)果,并分析其優(yōu)缺點(diǎn)。
關(guān)鍵詞:幀間差分法;背景預(yù)測(cè)法;Mean Shift;視頻跟蹤;目標(biāo)檢測(cè)
DOIDOI:10.11907/rjdk.143629
中圖分類號(hào):TP317.4
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)001013603
0 引言
隨著計(jì)算機(jī)技術(shù)的發(fā)展和計(jì)算機(jī)視覺原理的廣泛應(yīng)用,利用計(jì)算機(jī)圖像視頻處理技術(shù)對(duì)目標(biāo)進(jìn)行實(shí)時(shí)跟蹤成為當(dāng)今的研究熱點(diǎn)。對(duì)目標(biāo)進(jìn)行動(dòng)態(tài)實(shí)時(shí)跟蹤定位在智能化交通系統(tǒng)、智能監(jiān)控系統(tǒng)、軍事目標(biāo)檢測(cè)及醫(yī)學(xué)導(dǎo)航手術(shù)中手術(shù)器械定位等方面具有很高的應(yīng)用價(jià)值[13]。同時(shí),運(yùn)動(dòng)目標(biāo)跟蹤也是計(jì)算機(jī)視覺研究領(lǐng)域的一個(gè)重要課題,國(guó)內(nèi)外已進(jìn)行了大量研究工作。本文主要對(duì)這些研究工作中的經(jīng)典方法包括背景預(yù)測(cè)法、幀間差分法和Mean Shift法[46]進(jìn)行分析,介紹其基本思想和算法步驟,并根據(jù)實(shí)驗(yàn)結(jié)果分析各自優(yōu)缺點(diǎn)。
1 運(yùn)動(dòng)目標(biāo)跟蹤基本方法
1.1 背景預(yù)測(cè)法
背景預(yù)測(cè)算法的基本思想如圖1所示。圖像中的任何一個(gè)像素點(diǎn),如果屬于背景,則其灰度值與屬于同一背景的其它像素點(diǎn)灰度值相關(guān)性較強(qiáng),一定可以用周圍區(qū)域的背景點(diǎn)預(yù)測(cè);如果屬于目標(biāo),其灰度值與周圍像素點(diǎn)的灰度值相關(guān)性較差,在圖像局部會(huì)形成一個(gè)或幾個(gè)異常點(diǎn)。利用這一差異分離目標(biāo)與背景是背景預(yù)測(cè)方法的出發(fā)點(diǎn)。圖像中任何一個(gè)像素點(diǎn)灰度的背景預(yù)測(cè)值都可以利用其周圍區(qū)域的一些像素點(diǎn)灰度值經(jīng)過加權(quán)組合產(chǎn)生,將圖像中所有像素點(diǎn)的實(shí)際灰度值與預(yù)測(cè)值相減得到預(yù)測(cè)殘差,然后在預(yù)測(cè)殘差圖像上進(jìn)行閾值檢測(cè)。
1.2 幀間差分法
幀間差分法直接求取前后兩幀圖像之間的差別,如圖2所示。幀間差分法是將圖像序列中連續(xù)兩幀或三幀圖像所對(duì)應(yīng)的像素灰度值相減,并且加以閾值化來分割圖像中的運(yùn)動(dòng)區(qū)域。其思想是通過幀間差分,利用運(yùn)動(dòng)序列圖像相鄰幀的強(qiáng)相關(guān)性進(jìn)行變化檢測(cè),進(jìn)而通過對(duì)變化圖像的濾波確定運(yùn)動(dòng)目標(biāo)。
傳統(tǒng)的幀間差分法是利用序列圖像中相鄰兩幀做幀差運(yùn)算。運(yùn)動(dòng)目標(biāo)運(yùn)動(dòng)速度緩慢時(shí),差分后提取的運(yùn)動(dòng)目標(biāo)內(nèi)部則會(huì)存在空洞,嚴(yán)重的會(huì)使提取的運(yùn)動(dòng)目標(biāo)區(qū)域局部邊緣產(chǎn)生缺口,這種情況采用圖像形態(tài)學(xué)也無法修復(fù)。
所以在本文中采用三幀差求取運(yùn)動(dòng)目標(biāo)區(qū)域,使目標(biāo)提取更加準(zhǔn)確。對(duì)相鄰三幀中前兩幀和后兩幀分別利用傳統(tǒng)的幀間差提取運(yùn)動(dòng)區(qū)域,再對(duì)兩個(gè)結(jié)果取公共部分,即為中間幀的運(yùn)動(dòng)區(qū)域。
圖1 背景預(yù)測(cè)法流程
圖2 幀間差分法流程
1.3 Mean Shift法
Mean Shift算法是指一個(gè)迭代的步驟,即先算出當(dāng)前點(diǎn)的偏移均值,移動(dòng)該點(diǎn)到其偏移均值,然后以此為新的起始點(diǎn),繼續(xù)移動(dòng),直到滿足一定條件結(jié)束。
對(duì)于跟蹤目標(biāo)明候選區(qū)域,假設(shè){Xi}i=1,...,n是以y為中心的像素點(diǎn),k(x)依然是以h為半徑核函數(shù)的輪廓函數(shù),u∈1…255,則候選區(qū)域的概率密度模型為:
u(y)=Ck∑nki=1k(y-xih2)δ[b(xi)-u](1)
于是問題轉(zhuǎn)化為找取離散位置y,使其密度函數(shù)u(y)與目標(biāo)密度函數(shù)u具有最大相似度。為了定義相似性度量,Bhattachaxyya系數(shù)被用于評(píng)價(jià)直方圖的匹配程度。假設(shè)目標(biāo)模型為m級(jí)直方圖,目標(biāo)的離散密度函數(shù)估計(jì)為={u } u = 1,...,m,位置在y的候選目標(biāo)的密度函數(shù)估計(jì)為={u }u=1,...,m,則目標(biāo)與候選目標(biāo)的相似性系數(shù)為:
(y)=ρ[(y),]=∑mω=1u(y)u(2)
為了計(jì)算Bhattacharyya系數(shù)(y)=ρ[(y),]的最大值,把ρ[(y),]在y0點(diǎn)泰勒展開為:
ρ[(y),]≈∑mω=1u(y0)u+12∑mu=1w(y)
u(y0)≈12∑mu=1u(y)u+Ck2∑mki=1ωik(y-xih2)(3)
其中ωi=∑mu=1δ[b(xi)-u]un(y0)為權(quán)系數(shù),由于上式中第一項(xiàng)獨(dú)立于y常數(shù),所以要使ρ[(y),]最大化需使后一項(xiàng)最大化。因此迭代求中心點(diǎn)的公式更新為:
1=∑nk i=1xi ωi g(y0 -i h2)∑nk i=1ωi g(y0 -i h2)(4)
不斷更新{u (1 )}u=1,…,m ,并估計(jì)Bhattacharyya系ρ[(y1),]=∑mu=1(1)n。當(dāng)ρ[(y1),]<ρ[(y0),]時(shí)計(jì)算1←12(0+1)。當(dāng)|1-0|<ε時(shí),停止迭代,否則0←1。
2 實(shí)驗(yàn)結(jié)果及分析
本文使用Visual C++作為可視化軟件開發(fā)工具, 以上3種方法實(shí)驗(yàn)結(jié)果如下:
(1)背景預(yù)測(cè)法實(shí)驗(yàn)結(jié)果如圖3所示。背景預(yù)測(cè)法能夠快速、準(zhǔn)確地分割出運(yùn)動(dòng)物體,但容易受環(huán)境和光照的變化影響,而且如果運(yùn)動(dòng)目標(biāo)與背景顏色相似,則檢測(cè)出來的運(yùn)動(dòng)目標(biāo)通常不完整。另外,該方法沒有考慮到攝像機(jī)的抖動(dòng)可能引起背景運(yùn)動(dòng),造成差圖像中存在較多的偽運(yùn)動(dòng)信息。
圖3 背景預(yù)測(cè)法目標(biāo)檢測(cè)
(2)幀間差分法實(shí)驗(yàn)結(jié)果如圖4所示。
幀間差分法直接求取前后兩幀圖像之間的差別,其對(duì)物體運(yùn)動(dòng)比較敏感,實(shí)際上檢測(cè)到的是目標(biāo)與背景發(fā)生相對(duì)運(yùn)動(dòng)的區(qū)域(包括運(yùn)動(dòng)目標(biāo)和顯露區(qū)域),受光線影響較小。另外該算法易于實(shí)現(xiàn)且實(shí)時(shí)性較好,因而成為目前廣泛應(yīng)用的目標(biāo)檢測(cè)方法。但缺點(diǎn)是跟蹤連續(xù)性不夠,幀間差別較明顯,導(dǎo)致整個(gè)跟蹤過程不夠連貫。
圖4 幀間差分法目標(biāo)檢測(cè)
(3)Mean Shift實(shí)驗(yàn)結(jié)果如圖5所示。
該目標(biāo)跟蹤的方法利用了圖像中目標(biāo)自身的靜態(tài)特性及運(yùn)動(dòng)特性,可以不依賴操作人員,自動(dòng)對(duì)符合條件的運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)和跟蹤,并在檢測(cè)和跟蹤過程中采用了多種特征的判據(jù)判斷與引入目標(biāo)運(yùn)動(dòng)特征的跟蹤方法,不依賴于先驗(yàn)知識(shí)和數(shù)據(jù),自適應(yīng)性非常好。但從實(shí)驗(yàn)結(jié)果可以看出,檢測(cè)仍然不夠準(zhǔn)確,跟蹤框范圍過大,無法及時(shí)鎖定運(yùn)動(dòng)目標(biāo),有一定滯后性。如果移動(dòng)較快或移動(dòng)范圍較大,甚至有可能丟失跟蹤目標(biāo)。
圖5 Mean Shift目標(biāo)跟蹤
3 三種方法比較
3.1 方法效率比較
度量一個(gè)程序的執(zhí)行時(shí)間通常有兩種方法,事后統(tǒng)計(jì)法和事前分析估計(jì)法。本文采取第一種方法對(duì)以上3種檢測(cè)跟蹤方法進(jìn)行比較,結(jié)果如表1所示。
應(yīng)用于該程序測(cè)試的視頻在正常情況下長(zhǎng)19s,前兩種方法執(zhí)行時(shí)間較長(zhǎng),這樣可能導(dǎo)致在檢測(cè)運(yùn)動(dòng)較快的目標(biāo)時(shí),雖然能檢測(cè)到目標(biāo)移動(dòng),但是跟蹤不夠及時(shí)。Mean Shift相對(duì)而言實(shí)時(shí)性較好,但在實(shí)際應(yīng)用中,仍然存在較大誤差。
3.2 資源占有率比較
衡量一個(gè)軟件的好壞,占用資源的大小是一個(gè)非常重要的衡量指標(biāo)。不同程序運(yùn)行時(shí)的CPU占有率和所占有的內(nèi)存資源如表2所示。
從表中可以看出,3種方法在占用系統(tǒng)資源方面差別不大,特別是前兩種方法。但其CPU占有率都超過一半,增大了系統(tǒng)負(fù)擔(dān),如果有其它程序并行運(yùn)行,將可能造成系統(tǒng)速度過慢。
4 結(jié)語
從實(shí)驗(yàn)結(jié)果可以看出,背景預(yù)測(cè)法在運(yùn)動(dòng)目標(biāo)所處環(huán)境過于復(fù)雜或當(dāng)目標(biāo)被遮擋時(shí)很難精確地分割出目標(biāo)物體,所以運(yùn)動(dòng)目標(biāo)的檢測(cè)和分割在很大程度上影響了跟蹤精度,同時(shí)也增加了跟蹤的復(fù)雜性;幀間差分法提高了對(duì)環(huán)境干擾的抵抗能力,改善了運(yùn)動(dòng)目標(biāo)的邊緣特性,使檢測(cè)出來的目標(biāo)更加完整,但實(shí)時(shí)性不強(qiáng);Mean Shift雖然效率較高,但是當(dāng)要跟蹤的目標(biāo)運(yùn)動(dòng)過快時(shí),Mean Shift在后一幀中則很難準(zhǔn)確跟蹤到目標(biāo)位置。