何文樂(lè)
(中山市中等專(zhuān)業(yè)學(xué)校,廣東 中山 528400)
隨著信息科技的發(fā)展,視頻監(jiān)控系統(tǒng)已經(jīng)廣泛應(yīng)用到各行業(yè)。智能視頻監(jiān)控運(yùn)動(dòng)目標(biāo)跟蹤的目的是通過(guò)獲得目標(biāo)特征,提取目標(biāo)運(yùn)動(dòng)參數(shù)。針對(duì)不同的監(jiān)控場(chǎng)景,學(xué)術(shù)界做出了許多建設(shè)性的探討,總體分為以下4類(lèi):特征跟蹤算法、3D模型跟蹤算法、運(yùn)動(dòng)邊緣跟蹤算法以及區(qū)域跟蹤算法。
為了實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)實(shí)時(shí)精準(zhǔn)定位及跟蹤,很多學(xué)者對(duì)目標(biāo)跟蹤方法做了很多研究和改進(jìn)。例如,Paragios和Deriche[1]同短程線(xiàn)的運(yùn)動(dòng)輪廓結(jié)合Levelset理論在視頻圖像序列中對(duì)多個(gè)運(yùn)動(dòng)目標(biāo)實(shí)現(xiàn)跟蹤;Polana和Nelson[2]首次提出用矩形框作為跟蹤窗口對(duì)每個(gè)跟蹤目標(biāo)進(jìn)行定位及跟蹤,其中矩形框的質(zhì)心表示目標(biāo)跟蹤特征;Isard和Blake[3]提出基于隨機(jī)微分方程描述復(fù)雜的運(yùn)動(dòng)模型的方法,并與可實(shí)時(shí)更新的模板相結(jié)合應(yīng)用于對(duì)人的跟蹤。2000年,Jang和Choi[4]通過(guò)對(duì)目標(biāo)區(qū)域的紋理顏色、邊緣等特征構(gòu)件區(qū)域模型,并通過(guò)卡爾曼濾波算法來(lái)對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行跟蹤。
近年來(lái),目標(biāo)跟蹤算法的研究一直作為智能視頻監(jiān)控發(fā)展的重要課題,國(guó)內(nèi)外學(xué)者進(jìn)行了大量研究,各種運(yùn)動(dòng)目標(biāo)跟蹤算法優(yōu)化也大量涌現(xiàn),并且很多運(yùn)動(dòng)目標(biāo)跟蹤方法已經(jīng)在一些領(lǐng)域得以應(yīng)用。但目前運(yùn)動(dòng)目標(biāo)跟蹤算法仍然面臨很多問(wèn)題有待研究解決。
本文的創(chuàng)新點(diǎn)是通過(guò)重新構(gòu)建無(wú)跡卡爾曼濾波目標(biāo)模型,針對(duì)監(jiān)控畫(huà)面中的運(yùn)動(dòng)目標(biāo)的尺寸大小、變形旋轉(zhuǎn)和被遮擋等變化的特點(diǎn),優(yōu)化跟蹤窗口設(shè)計(jì),并結(jié)合無(wú)跡卡爾曼濾波Cam-Shift(Continuously Adaptive Mean-Shift)進(jìn)行設(shè)計(jì),每一次目標(biāo)跟蹤,均根據(jù)上一次目標(biāo)的質(zhì)心作為下一次目標(biāo)跟蹤的參考點(diǎn),并根據(jù)質(zhì)心的位置調(diào)整跟蹤窗口的大小,從而模擬運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)軌跡,實(shí)現(xiàn)目標(biāo)跟蹤。
均值漂移(Mean-Shift)這一概念最早由Fukunage在1975年提出,其最初的含義正如其名:偏移的均值向量,隨著理論與技術(shù)的不斷發(fā)展,目前在聚類(lèi)、圖像平滑、分割和跟蹤等方面有著廣泛的應(yīng)用。
1.1.1 Mean-Shift工作原理分析
Mean-Shift目標(biāo)跟蹤算法通過(guò)分別計(jì)算出目標(biāo)區(qū)域和候選區(qū)域內(nèi)像素點(diǎn)的特征值概率,來(lái)描述目標(biāo)模型以及候選模型;然后根據(jù)比較相似函數(shù)度量初始幀目標(biāo)模型和當(dāng)前幀的候選區(qū)域模板的相似性,選出相似值最大的候選模型;同時(shí)計(jì)算出目標(biāo)模型的Mean-Shift向量,表示運(yùn)動(dòng)目標(biāo)由初始位置向正確位置移動(dòng)方向向量。基于Mean-Shift的快速收斂性,多次迭代計(jì)算Mean-Shift向量,算法收斂于運(yùn)動(dòng)物體的真實(shí)位置,目標(biāo)跟蹤效果好。
Mean-Shift跟蹤算法的工作原理如圖1所示。

圖1 Mean-Shift工作原理Fig.1 Working Principle of Mean-Shift
1.1.2 Mean-Shift跟蹤算法優(yōu)缺點(diǎn)分析
Mean-Shift跟蹤算法計(jì)算量不大,在目標(biāo)區(qū)域已知的情況下完全可以做到實(shí)時(shí)跟蹤,對(duì)目標(biāo)模型的變形、遮擋等情況不敏感,具有一定的魯棒性。但傳統(tǒng)的Mean-Shift跟蹤算法也存在著局限性:缺乏必要的模板更新;目標(biāo)跟蹤過(guò)程中由于窗口寬度大小保持不變,當(dāng)目標(biāo)尺度有所變化時(shí),跟蹤就會(huì)失敗;當(dāng)目標(biāo)速度較快時(shí),跟蹤效果不好;直方圖特征在目標(biāo)顏色特征描述方面略顯匱乏,缺少空間信息。
Cam-Shift對(duì)視頻序列的所有圖像幀都作Mean-Shift運(yùn)算,具體過(guò)程為將上一幀視頻圖像的結(jié)果作為下一幀視頻圖像Mean-Shift算法的搜索窗口的初始值,多次反復(fù)迭代。Mean-Shift是針對(duì)單張視頻圖像幀來(lái)搜索最優(yōu)迭代結(jié)果,Cam-Shift是針對(duì)所有視頻序列進(jìn)行處理,并在視頻圖像序列每一幀圖片均使用Mean-Shift算法來(lái)尋找最優(yōu)迭代結(jié)果。由于Cam-Shift是針對(duì)所有視頻圖像序列反復(fù)迭代,確保其能夠適應(yīng)窗口大小,即使運(yùn)動(dòng)目標(biāo)的尺寸大小發(fā)生改變,該算法也可以自適應(yīng)地調(diào)整目標(biāo)區(qū)域,在復(fù)雜的監(jiān)控環(huán)境更好地實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤。
與Mean-Shift相同的是,2種算法均通過(guò)一個(gè)權(quán)值圖像對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行跟蹤,其中權(quán)值最大的地方對(duì)應(yīng)著密度最大處,即表示運(yùn)動(dòng)目標(biāo)可能出現(xiàn)的區(qū)域,Cam-Shift和Mean-Shift跟蹤算法都能夠迭代地收斂于密度最大處。
1.2.1 構(gòu)建目標(biāo)模型

(1)
在Cam-Shift算法中,為了將全職顯示為灰度圖像,一般通過(guò)比例變換將權(quán)值映射到[0,255]。
1.2.2 模型跟蹤過(guò)程
(1)目標(biāo)位置
① 計(jì)算0階矩和1階矩
0階矩:
(2)
1階矩:
(3)
② 計(jì)算目標(biāo)位置
(4)
(2)基于二階矩的目標(biāo)尺度和方向估計(jì)
(5)
令:
則有:
(6)
式中,l1,l2分別為目標(biāo)的長(zhǎng)軸和短軸長(zhǎng)度;θ為目標(biāo)的方向角。
1.2.3 Cam-Shift跟蹤算法優(yōu)缺點(diǎn)
Cam-Shift跟蹤算法的優(yōu)缺點(diǎn)如下:
① Cam-Shift跟蹤算法是基于顏色統(tǒng)計(jì)做的跟蹤,在監(jiān)控畫(huà)面的背景與前景運(yùn)動(dòng)目標(biāo)有相近似的顏色時(shí),當(dāng)目標(biāo)快速運(yùn)動(dòng),可能會(huì)出現(xiàn)跟蹤錯(cuò)誤的過(guò)程。
② Cam-Shift跟蹤算法由于在顏色空間RGB到HSV變換過(guò)程中,在監(jiān)控畫(huà)面的亮度或?qū)Ρ榷炔粡?qiáng)的情況下,映射關(guān)系不穩(wěn)定,導(dǎo)致一些非目標(biāo)點(diǎn)的像素也被判斷為目標(biāo)區(qū)域,出現(xiàn)跟蹤錯(cuò)誤的現(xiàn)象。
③ Cam-Shift算法由于只在初始位置(而不是從每個(gè)像素點(diǎn))開(kāi)始迭代,若初始位置目標(biāo)跟蹤出現(xiàn)錯(cuò)誤,收斂的位置還是原位置,會(huì)產(chǎn)生跟蹤信息丟失的現(xiàn)象。
④ Cam-Shift算法是對(duì)直方圖反投影所形成的二值圖像進(jìn)行處理的,如果背景較為復(fù)雜或者物體的紋理較為豐富,那么此二值圖像的噪聲就很多,將直接干擾算法對(duì)物體位置的判斷。所以對(duì)于復(fù)雜背景或者紋理豐富的物體跟蹤效果較差。
基于上述不足,為了提高目標(biāo)跟蹤的精準(zhǔn)性和增強(qiáng)對(duì)干擾的魯棒性,本文提出了基于無(wú)跡卡爾曼濾波Cam-Shift算法改進(jìn)。
無(wú)跡卡爾曼濾波(Unscented Kalman Filter,UKF)是重要的非線(xiàn)性濾波方法。UKF算法是通過(guò)一組代表均值和方差分布的采樣點(diǎn)來(lái)對(duì)非線(xiàn)性系統(tǒng)進(jìn)行非線(xiàn)性計(jì)算,在不對(duì)非線(xiàn)性方程線(xiàn)性近似的條件下,達(dá)到線(xiàn)性卡爾曼濾波器的濾波效果。
UKF基于傳統(tǒng)卡爾曼濾波器的基本結(jié)構(gòu),不要求系統(tǒng)是近似線(xiàn)性的,也不要求狀態(tài)函數(shù)和量測(cè)函數(shù)必須是連續(xù)可微的,它甚至可以應(yīng)用于不連續(xù)系統(tǒng)。不論系統(tǒng)非線(xiàn)性程度如何,無(wú)跡變換理論上至少能以三階泰勒精度逼近任何非線(xiàn)性高斯系統(tǒng)狀態(tài)的后驗(yàn)均值和協(xié)方差,因此與傳統(tǒng)的擴(kuò)展卡爾曼濾波(EKF)算法相比,UKF算法對(duì)運(yùn)動(dòng)目標(biāo)具有較小的跟蹤誤差。

(7)
對(duì)應(yīng)于ξι的一階、二階權(quán)系數(shù)表示為:
(8)
(9)


(10)

(11)
在獲得新的量測(cè)后,進(jìn)行濾波量更新,則有:
(12)
由式(12)可見(jiàn),該算法過(guò)程主要分別是對(duì)時(shí)間及量測(cè)的更新。
當(dāng)監(jiān)控畫(huà)面中運(yùn)動(dòng)目標(biāo)的尺寸大小、變形旋轉(zhuǎn)和被遮擋等變化時(shí),ωi的變化也會(huì)導(dǎo)致跟蹤搜索窗口的尺寸隨之改變。包含干擾信息的跟蹤窗口與目標(biāo)模板的誤差增大,最后導(dǎo)致跟蹤失敗。因此本文提出一個(gè)參數(shù)λ限制跟蹤窗口的尺寸產(chǎn)生突變,使其保持在一定范圍內(nèi)。經(jīng)過(guò)多次實(shí)驗(yàn),參數(shù)λ∈[0.8,1.2],目標(biāo)跟蹤窗口比較穩(wěn)定。跟蹤窗口的優(yōu)化具體如下:


(13)
通過(guò)以上方法對(duì)跟蹤窗口進(jìn)行優(yōu)化,使得目標(biāo)捜索區(qū)域始終在既定合理的范圍內(nèi)變化,防止跟蹤窗口發(fā)生突變,提高對(duì)運(yùn)動(dòng)目標(biāo)的跟蹤效果。
結(jié)合UKF的Cam-Shift跟蹤算法(K_Cam-Shift)運(yùn)動(dòng)目標(biāo)跟蹤過(guò)程中,視頻連續(xù)2幀圖像序列時(shí)間間隔較短,目標(biāo)位移變化較小,假定該情況下2幀時(shí)間間隔內(nèi)做勻速運(yùn)動(dòng),T表示視頻相鄰2幀圖像序列的時(shí)間間隔。
2.3.1 設(shè)置跟蹤參數(shù)
設(shè)某運(yùn)動(dòng)目標(biāo)在時(shí)刻k的變量為X(k),則其所在的位置和速度定義的運(yùn)動(dòng)狀態(tài)向量定義為:X(k)=[x(k),y(k),vx(k),vy(k)],分別表示運(yùn)動(dòng)目標(biāo)在時(shí)間k對(duì)應(yīng)在x軸和y軸上的位置及速度。其中,
運(yùn)動(dòng)目標(biāo)在時(shí)刻k觀(guān)測(cè)狀態(tài)向量定義為:z(k)=[xw(k),yw(k)],表示此時(shí)觀(guān)測(cè)目標(biāo)的位置。初始化狀態(tài)矩陣為:

(14)
式中,Δt表示t(k)和t(k-1)的時(shí)間間隔,可以采用幀數(shù)差分來(lái)表示,即此時(shí)Δt=1。噪聲方差矩陣為:

(15)
2.3.2 模型跟蹤過(guò)程
UKF算法通過(guò)既得的目標(biāo)信息,計(jì)算出在當(dāng)前幀中對(duì)要被跟蹤的預(yù)估值,得到的預(yù)測(cè)坐標(biāo),再基于Cam-Shift算法在該坐標(biāo)處為被跟蹤的目標(biāo)進(jìn)行多次計(jì)算迭代,以至達(dá)到目標(biāo)的實(shí)際位置。K_Cam-Shift跟蹤算法流程圖如圖2所示。

圖2 K_Cam-Shift跟蹤算法流程Fig.2 Process of K_Cam-Shift tracking algorithm
具體跟蹤過(guò)程如下:
① 利用起始跟蹤窗口的位置和大小表示Cam-Shift跟蹤算法的輸入,并對(duì)其初始狀態(tài)向量X(0)進(jìn)行初始化。并用這個(gè)參數(shù)初始化卡爾曼濾波器。


為了驗(yàn)證改進(jìn)后的Cam-Shift算法性能,采用了3組場(chǎng)景,每組實(shí)驗(yàn)分別抽樣4組圖,本實(shí)驗(yàn)編程環(huán)境為Matlab2011b。
(1)實(shí)驗(yàn)1:?jiǎn)文繕?biāo)跟蹤
針對(duì)單目標(biāo)跟蹤,通過(guò)將原始圖像序列(如圖3所示),分別經(jīng)過(guò)Mean-Shift算法(如圖4所示)、Cam-Shift算法(如圖5所示)、K_Cam-Shift算法(如圖6所示)進(jìn)行比較。

(a)第3幀

(b)第34幀

(c)第74幀圖3 原始圖像序列Fig.3 Original image sequence

(a)第3幀

(b)第34幀

(c)第74幀圖4 Mean-Shift算法跟蹤效果Fig.4 Tracking effect of Mean-Shift algorithm

(a)第3幀

(b)第34幀

(c)第74幀圖5 Cam-Shift算法跟蹤效果Fig.5 Tracking effect of Cam-Shift algorithm

(a)第3幀

(b)第34幀

(c)第74幀圖6 K_Cam-Shift算法跟蹤效果Fig.6 Tracking effect of K_Cam-Shift algorithm
跟蹤目標(biāo)為運(yùn)動(dòng)的人。由圖4可以看出,傳統(tǒng)Mean-Shift算法無(wú)法及時(shí)收斂;由圖5可以看出,相比傳統(tǒng)的Mean-Shift算法,傳統(tǒng)的Cam-Shift算法有了一定的改進(jìn),能夠自適應(yīng)調(diào)節(jié)跟蹤窗口,但仍存在無(wú)法正確收斂的跟蹤;由圖6可以看出,K_Cam-Shift在目標(biāo)由小變大的過(guò)程中均保持很好的跟蹤效果。
(2)實(shí)驗(yàn)2:目標(biāo)遮擋跟蹤
針對(duì)目標(biāo)遮擋跟蹤,通過(guò)將原始圖像序列(如圖7所示),分別經(jīng)過(guò)Mean-Shift算法(如圖8所示)、Cam-Shift算法(如圖9所示)、K_Cam-Shift算法(如圖10所示)進(jìn)行比較。

(a)第18幀

(b)第56幀

(c)第99幀圖7 原始圖像序列Fig.7 Original image sequence

(a)第18幀

(b)第56幀

(c)第99幀圖8 Mean-Shift算法跟蹤效果Fig.8 Tracking effect of Mean-Shift algorithm

(a)第18幀

(b)第56幀

(c)第99幀圖9 Cam-Shift算法跟蹤效果Fig.9 Tracking effect of Cam-Shift algorithm

(a)第18幀

(b)第56幀

(c)第99幀圖10 K_Cam-Shift算法跟蹤效果Fig.10 Tracking effect of K_Cam-Shift algorithm
跟蹤目標(biāo)是行駛過(guò)程受遮擋速度較快的汽車(chē)。由圖8可以看出,傳統(tǒng)的Mean-Shift跟蹤算法均無(wú)法及時(shí)收斂,搜索窗口為整個(gè)監(jiān)控畫(huà)面,因此跟蹤失敗;由圖9和圖10可以看出,相比傳統(tǒng)Cam-Shift跟蹤算法,K_Cam-Shift跟蹤算法在整個(gè)汽車(chē)行駛的跟蹤過(guò)程中,其搜索窗口更接近汽車(chē)行駛的真實(shí)位置,跟蹤效果更好。
(3)實(shí)驗(yàn)3:多目標(biāo)跟蹤
針對(duì)目標(biāo)遮擋跟蹤,通過(guò)將原始圖像序列(如圖11所示),分別經(jīng)過(guò)Cam-Shift算法(如圖12所示)、K_Cam-Shift算法(如圖13所示)進(jìn)行比較。

(a)第24幀

(b)第35幀

(c)第54幀圖11 原始圖像序列Fig.11 Original image sequence

(a)第24幀

(b)第35幀

(c)第54幀圖12 Cam-Shift算法跟蹤效果Fig.12 Tracking effect of Cam-Shift algorithm

(a)第24幀

(b)第35幀

(c)第54幀圖13 K_Cam-Shift算法跟蹤效果Fig.13 Tracking effect ofK_Cam-Shift algorithm
跟蹤目標(biāo)是多輛在高速公路快速行駛的汽車(chē),屬于多目標(biāo)跟蹤。由圖12和圖13可以看出,相比傳統(tǒng)Cam-Shift跟蹤算法,本文提出的K_Cam-Shift跟蹤算法在多輛汽車(chē)行駛的跟蹤過(guò)程中,跟蹤效果更好。
為了評(píng)估目標(biāo)檢測(cè)算法的性能,本文以實(shí)驗(yàn)1的Man1.avi前25幀視頻圖像序列對(duì)Mean-Shift算法、Cam-Shift算法及K_Cam-Shift算法的跟蹤窗口坐標(biāo)參數(shù),來(lái)驗(yàn)證各跟蹤準(zhǔn)確率:
(16)
式中,TP表示正確跟蹤的數(shù)目;FN表示錯(cuò)誤跟蹤的數(shù)目。各算法的跟蹤性能如圖14所示。

圖14 各算法的跟蹤性能Fig.14 Tracking performance of each algorithm
現(xiàn)實(shí)生活中,視頻監(jiān)控系統(tǒng)對(duì)運(yùn)動(dòng)目標(biāo)跟蹤實(shí)時(shí)性要求高,因此滿(mǎn)足精準(zhǔn)率的同時(shí)盡量減少計(jì)算量,以達(dá)到實(shí)時(shí)跟蹤的效果。下面對(duì)以上3種跟蹤算法的快速收斂性進(jìn)行比較分析,如表1所示。

表1 各跟蹤算法運(yùn)行效率Tab.1 Operation efficiency of each tracking algorithm 單位:s
由表1可以看出,本文提出的K_Cam-Shift的運(yùn)行效率均高于傳統(tǒng)的Mean-Shift及Cam-Shift跟蹤算法。以實(shí)驗(yàn)1為例,Mean-Shift的效率為109 ms/frame,Cam-Shift的效率為96 ms/frame,本文算法效率為78 ms/frame,效率比Mean-Shift算法提高30%,比Cam-Shift算法提高20%,更好滿(mǎn)足實(shí)時(shí)性的要求。
介紹了Mean-Shift算法和Cam-Shift算法的跟蹤原理及過(guò)程,其中包括Cam-Shift算法的跟蹤原理包目標(biāo)模型描述、候選模型描述以及迭代過(guò)程。針對(duì)Mean-Shift及Cam-Shift跟蹤算法缺點(diǎn),提出一種融合無(wú)跡卡爾曼濾波器的Cam-Shift算法改進(jìn),由實(shí)驗(yàn)結(jié)果分析,本文提出的跟蹤算法性能和效率都相比傳統(tǒng)算法更好,在視頻監(jiān)控運(yùn)動(dòng)目標(biāo)跟蹤效果較好。今后,將基于本文提出的改進(jìn)算法對(duì)多目標(biāo)視頻跟蹤、存在多個(gè)干擾的目標(biāo)跟蹤進(jìn)行進(jìn)一步的研究以提高優(yōu)化算法的魯棒性。