劉 超,惠 晶
LIU Chao,HUI Jing
江南大學(xué) 輕工過(guò)程先進(jìn)控制教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 無(wú)錫 214122
Key Laboratory of Advanced Process Control for Light Industry-The Education Ministry,Jiangnan University,Wuxi,Jiangsu 214122,China
智能視頻分析技術(shù)已成為計(jì)算機(jī)視覺(jué)領(lǐng)域中的一個(gè)重要問(wèn)題,其中目標(biāo)跟蹤技術(shù)應(yīng)用范圍廣泛,在人機(jī)交互、物體識(shí)別、視頻監(jiān)控等方面發(fā)揮著重要作用[1]。
MeanShift目標(biāo)跟蹤算法以其無(wú)需參數(shù)、計(jì)算量小,對(duì)目標(biāo)變形、旋轉(zhuǎn)變化適應(yīng)性強(qiáng)等特點(diǎn)得到普遍的重視和廣泛的研究[2-3],而CAMShift在其基礎(chǔ)之上增添了自適應(yīng)大小的功能[4]。Comaniciu等通過(guò)顏色加權(quán)直方圖描述目標(biāo),用Bhattacharrya系數(shù)度量候選目標(biāo)和模型之間的相似度,能夠通過(guò)較少的迭代次數(shù)收斂到目標(biāo)的真實(shí)位置[5]。Chu等人結(jié)合幀差法實(shí)現(xiàn)了CAMShift自動(dòng)跟蹤[6],由于幀差法僅提取了部分的輪廓邊緣,使目標(biāo)內(nèi)部產(chǎn)生孔洞,往往造成目標(biāo)提取不完整或者包含背景,使顏色特征混入了更多雜色而降低跟蹤質(zhì)量[7]。李忠海等將CAMShift與粒子濾波相結(jié)合,用以對(duì)小目標(biāo)實(shí)現(xiàn)跟蹤[8]。
目標(biāo)顏色與背景顏色的可分性對(duì)CAMShift的跟蹤效果影響較大。當(dāng)搜索窗口中包含背景顏色信息時(shí),傳統(tǒng)方法會(huì)將屬于背景的像素誤判為目標(biāo)像素,從而引入跟蹤誤差;隨著誤差的積累,可能導(dǎo)致跟蹤失敗。在跟蹤過(guò)程中如果目標(biāo)被逐漸遮擋,搜索窗口的尺寸會(huì)不斷減小甚至導(dǎo)致目標(biāo)丟失,當(dāng)目標(biāo)重新出現(xiàn)后,也無(wú)法恢復(fù)對(duì)目標(biāo)的跟蹤。針對(duì)以上存在的問(wèn)題,本文擴(kuò)展和改進(jìn)了傳統(tǒng)的CAMShift算法,給出將非線性核密度估計(jì)、Kalman濾波和CAMShift相結(jié)合的抗遮擋的目標(biāo)跟蹤解決方案。
核密度估計(jì)是一種概率密度估計(jì)方法[9]。既不需要事先假定特征密度分布的形式,也不需要設(shè)置模型參數(shù)及參數(shù)優(yōu)化。只要樣本充足,核密度估計(jì)就能漸進(jìn)收斂于任何一個(gè)概率密度函數(shù)[10]。核密度估計(jì)的目的是在已知一定數(shù)量的樣本點(diǎn)的情況下,盡量地逼近一個(gè)未知概率密度分布函數(shù)[11]。在核密度估計(jì)中發(fā)揮作用的單元是眾多具有相同尺度與形態(tài)的核函數(shù)。
假設(shè)xi(i=1,2,…,N)為未知概率密度分布產(chǎn)生的維度為d的N個(gè)樣本點(diǎn),xi∈Rd。核密度估計(jì)函數(shù)可以表示為:
其中KH為核函數(shù),可以表示為H為d×d大小的正定帶寬矩陣。當(dāng)簡(jiǎn)化帶寬矩陣為單參數(shù) h時(shí),式(1)可變?yōu)椋?/p>
多維變量的核函數(shù)KS可以通過(guò)每個(gè)維度下單變量核函數(shù)Kj的乘積計(jì)算來(lái)表示:
已知一組由 N幅圖像組成的序列,定義 xi∈{x1,x2,…,xN}為圖像中任意一個(gè)位置的像素點(diǎn)在第i時(shí)刻的色彩強(qiáng)度。對(duì)于當(dāng)前t時(shí)刻此像素點(diǎn)的觀測(cè)值xt而言,其分布函數(shù) p(xt)的核密度估計(jì)則可定義為:
其中,K為選擇的核函數(shù),滿(mǎn)足性質(zhì)K(t) ≥0和∫K(t) dt=1。由于圖像一般為多通道彩色圖像,所以樣本點(diǎn)均為多維數(shù)據(jù)(比如RGB圖像擁有3個(gè)色彩通道),利用公式(2)和(3),可以把具有d維核函數(shù)用每個(gè)色彩通道的核函數(shù)乘積來(lái)表示:
雖然普遍認(rèn)為高斯核函數(shù)在樣本點(diǎn)有限的時(shí)候能夠獲得比較好的核密度估計(jì),但是計(jì)算量過(guò)大,給實(shí)際應(yīng)用帶來(lái)不利影響[12]。相對(duì)于高斯核函數(shù)而言,Epanechnikov函數(shù)同樣具有鐘形函數(shù)的形態(tài),卻可以大大減少計(jì)算量,提高運(yùn)算速度。選擇Epanechnikov函數(shù)作為核函數(shù)的概率密度估計(jì)函數(shù)為:
公式(6)是估計(jì)三通道彩色圖像像素值的概率密度分布的最終表達(dá)式。指定Th為一個(gè)固定的閾值與計(jì)算得到的估計(jì)值進(jìn)行比較決策,將此像素值離散化為前景(foreground)或者背景(background)。當(dāng)所有像素點(diǎn)都遍歷完畢,就得到二值檢測(cè)圖像。
CAMShift算法主要通過(guò)視頻圖像中運(yùn)動(dòng)物體的顏色信息來(lái)達(dá)到跟蹤的目的[13]。算法思想如下:(1)初始化搜索窗口;(2)把搜索窗口圖像轉(zhuǎn)化為顏色概率圖并求質(zhì)心;(3)移動(dòng)搜索窗口中心到其質(zhì)心處,重新搜索直到窗口中心與質(zhì)心間的移動(dòng)距離小于預(yù)設(shè)的閾值或者運(yùn)算次數(shù)達(dá)到預(yù)設(shè)值;(4)重復(fù)(2)、(3)步驟至跟蹤結(jié)束。
設(shè)(u,v)為搜索窗口中的像素點(diǎn)坐標(biāo),I(u,v)是投影圖中對(duì)應(yīng)(u,v)點(diǎn)的灰度值。定義搜索窗口的零階矩M00和一階矩M10、M01分別如下:
可以求得當(dāng)前搜索窗口的質(zhì)心位置為:
然后調(diào)整搜索窗口的大小,并將搜索窗口的中心移動(dòng)到質(zhì)心。直到窗口中心與質(zhì)心間的移動(dòng)距離小于預(yù)設(shè)的閾值或者運(yùn)算次數(shù)達(dá)到預(yù)設(shè)值,則認(rèn)為滿(mǎn)足收斂條件,進(jìn)入下一幀圖像進(jìn)行新的目標(biāo)搜索。相對(duì)于當(dāng)前幀,下一幀中搜索窗口的長(zhǎng)度l和寬度w分別按下式更新。
其中:
CAMShift算法以逐幀處理視頻序列的方式完成目標(biāo)的連續(xù)跟蹤[14]。
非線性核密度估計(jì)對(duì)樣本數(shù)據(jù)用核函數(shù)進(jìn)行估計(jì),選出概率密度最大的樣本數(shù)據(jù)作為背景。該方法能適應(yīng)不同的場(chǎng)景,不同于混合高斯模型。它充分利用最近的歷史幀信息來(lái)表示背景模型,能夠適應(yīng)復(fù)雜的像素分布密度,克服像素值在短時(shí)間內(nèi)頻繁變化,得到準(zhǔn)確的估計(jì)。CAMShift算法通過(guò)視頻圖像中運(yùn)動(dòng)物體的顏色信息來(lái)達(dá)到跟蹤的目的,它采用目標(biāo)的顏色直方圖作為搜索特征,通過(guò)不斷迭代均值偏移向量使得算法收斂于目標(biāo)的真實(shí)位置,從而實(shí)現(xiàn)跟蹤。將兩者結(jié)合,在背景減法的基礎(chǔ)上用CAMShift做目標(biāo)跟蹤,能提高跟蹤準(zhǔn)確性,易于實(shí)現(xiàn)且運(yùn)行速度快,能夠達(dá)到實(shí)時(shí)跟蹤的目的。
圖1是算法流程圖,上面的虛線框是核密度估計(jì)過(guò)程,左下的虛線框是Kalman濾波過(guò)程,右下的虛線框是CAMShift算法執(zhí)行過(guò)程。首先用像素級(jí)非線性核密度估計(jì)算法檢測(cè)運(yùn)動(dòng)目標(biāo),通過(guò)檢測(cè)得到的二值圖像進(jìn)行連通區(qū)域分析提取感興趣目標(biāo)。然后用提取的感興趣目標(biāo)建立目標(biāo)直方圖并初始化目標(biāo)作為CAMShift的輸入,CAMShift算法用來(lái)在下一幀搜索目標(biāo)。收斂的搜索結(jié)果用以更新Kalman濾波然后預(yù)測(cè)下一幀目標(biāo)的狀態(tài)。下一幀在預(yù)測(cè)位置附近進(jìn)行CAMShift搜索目標(biāo),能夠減少運(yùn)算量,提高效率。跟蹤過(guò)程中,用非線性核密度估計(jì)的檢測(cè)結(jié)果輔助目標(biāo)直方圖的更新。采用非線性核密度估計(jì)提取感興趣目標(biāo),能實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的自動(dòng)跟蹤并能去除背景顏色,為下步建立只包含前景顏色的目標(biāo)直方圖提供保障。由于目標(biāo)位置不會(huì)突變,CAMShift算法僅在Kalman濾波預(yù)測(cè)位置附近搜索目標(biāo),能夠保證在搜索準(zhǔn)確率不變的前提下減少運(yùn)算量、提高效率。CAMShift搜索結(jié)果用以更新Kalman濾波,相當(dāng)于用真實(shí)位置更新Kalman濾波,提高預(yù)測(cè)準(zhǔn)確率。
圖1 改進(jìn)CAMShift目標(biāo)跟蹤算法流程圖
在原圖中選擇一個(gè)包含運(yùn)動(dòng)目標(biāo)的初始窗口建立直方圖,使得初始窗口不僅包含了跟蹤目標(biāo),還混入了背景顏色信息。針對(duì)上述問(wèn)題給出將背景減法與CAMShift相結(jié)合的方法。運(yùn)用非線性核密度估計(jì)先對(duì)視頻中的運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè),該模型能很好地處理光照變化的影響,適應(yīng)在噪聲環(huán)境下目標(biāo)的復(fù)雜運(yùn)動(dòng)和場(chǎng)景長(zhǎng)時(shí)間的變化。檢測(cè)后得到了包含完整目標(biāo)的最小窗口作為CAMShift的初始窗口,并將檢測(cè)出的前景像素相同位置的原圖像素信息建立直方圖。不僅使CAMShift實(shí)現(xiàn)了跟蹤自動(dòng)化,也有效地去除了背景顏色信息的干擾。本文的解決方案如下:
(1)運(yùn)用非線性核密度估計(jì)方法采用多幀建立背景模型并對(duì)當(dāng)前幀(圖2(a))進(jìn)行目標(biāo)檢測(cè),得到二值圖像(圖 2(b))。
(2)對(duì)檢測(cè)得到的目標(biāo)進(jìn)行連通區(qū)域分析,畫(huà)出包圍目標(biāo)的最小窗口,如圖2(c),記錄該窗口的坐標(biāo)。
(3)將二值圖2(b)與原圖2(a)相比較,如果二值圖中的某位置像素值為255,則原圖的同位置像素值保持不變;如果二值圖中的某位置像素值為0,則原圖的同位置像素值也變?yōu)?。得到圖2(d)。
(4)把圖2(d)轉(zhuǎn)化到HSV空間并提取H分量。
(5)把步驟(2)得到的窗口坐標(biāo)作為CAMShift的初始窗口坐標(biāo),并對(duì)圖2(d)此窗口內(nèi)的像素H分量建立直方圖,由于去除V和S值較低的部分,建立的直方圖不統(tǒng)計(jì)框內(nèi)黑色像素,只包含目標(biāo)像素的H分量。
圖2 非線性核密度估計(jì)檢測(cè)結(jié)果
通過(guò)上述五步實(shí)現(xiàn)了CAMShift的自動(dòng)化跟蹤,并建立了不包含背景顏色信息的目標(biāo)顏色直方圖[15]。接下來(lái)就是用CAMShift對(duì)目標(biāo)進(jìn)行跟蹤,并且非線性核密度估計(jì)與CAMShift相結(jié)合來(lái)更新直方圖,以適應(yīng)目標(biāo)顏色的變化。用一個(gè)物體的色彩分布來(lái)描述這個(gè)物體,假設(shè)物體中心位于x0,則該物體可以表示為:
候選的位于y的物體可以描述為:
因此物體跟蹤可以簡(jiǎn)化為尋找最優(yōu)的y,使得 pu(y)與qu最相似。 pu(y)與qu的相似性用Bhattacharrya系數(shù) ρ^(y)來(lái)度量,ρ^(y)越大,表示候選目標(biāo)與模板目標(biāo)越匹配[16],即
如果沒(méi)有發(fā)生遮擋并且Bhattacharyya系數(shù) ρ大于某一閾值Th則認(rèn)為跟蹤得到的候選目標(biāo)即為模板目標(biāo),此時(shí)利用候選目標(biāo)的H分量直方圖更新模板目標(biāo)直方圖,即
由于非線性核密度估計(jì)的前景檢測(cè)方法計(jì)算量較大,所以選擇定時(shí)更新,即每6幀運(yùn)行一次目標(biāo)檢測(cè)計(jì)算并更新一次目標(biāo)直方圖。
Bhattacharyya系數(shù)表征當(dāng)前跟蹤到的候選目標(biāo)直方圖與模板目標(biāo)直方圖的相似度。當(dāng)Bhattacharyya系數(shù)減小到一定的閾值并且目標(biāo)大小急劇減少時(shí),說(shuō)明跟蹤目標(biāo)可能發(fā)生了遮擋。若目標(biāo)披遮擋,搜索窗口的尺寸將不斷變小,此時(shí)難以判定跟蹤物體的位置并可能出現(xiàn)當(dāng)目標(biāo)重新出現(xiàn)后難以恢復(fù)跟蹤的情況。
當(dāng)發(fā)生遮擋時(shí)的跟蹤策略為:假如第k幀目標(biāo)發(fā)生遮擋,則在k-1幀還沒(méi)發(fā)生遮擋,此時(shí)不更新目標(biāo)直方圖,并且用k-1幀跟蹤到的目標(biāo)框大小及位置預(yù)測(cè)k幀的跟蹤框。這里有兩種情況,分析如下:
Case 1:當(dāng)發(fā)生部分遮擋時(shí),假設(shè)實(shí)線框 A為第k幀跟蹤到的跟蹤框,虛線框B為實(shí)際的跟蹤框,框B的大小為第k-1幀沒(méi)發(fā)生遮擋時(shí)跟蹤得到的跟蹤框大小,它們的可能位置如圖3(a)所示。根據(jù)跟蹤框附近位置非線性核密度估計(jì)方法檢測(cè)的二值圖中白色連通區(qū)域的位置,可認(rèn)為發(fā)生了某種情況的遮擋,用這種情況的跟蹤框B代替跟蹤得到的跟蹤框A,即為實(shí)際可能的目標(biāo)位置。
Case 2:如圖3(b)所示當(dāng)發(fā)生完全遮擋時(shí),此時(shí)Bhattacharyya系數(shù)會(huì)急劇減小,跟蹤框的大小也會(huì)急劇變化,用此前沒(méi)發(fā)生遮擋時(shí)跟蹤得到的跟蹤框大小代替當(dāng)前幀的跟蹤框大小,跟蹤框的中心設(shè)定為非線性核密度估計(jì)檢測(cè)得到的二值圖像中沒(méi)發(fā)生遮擋時(shí)跟蹤得到的跟蹤框附近白色連通區(qū)域的中心位置。
圖3 兩種目標(biāo)遮擋情況
由于直方圖一直沒(méi)有更新,當(dāng)目標(biāo)重新出現(xiàn)時(shí)仍能搜索得到跟蹤框,并且Bhattacharyya系數(shù)大于某一閾值,說(shuō)明遮擋已經(jīng)結(jié)束。對(duì)符合條件的跟蹤塊進(jìn)行背景減法與CAMShift相結(jié)合的運(yùn)動(dòng)目標(biāo)跟蹤,即恢復(fù)正常目標(biāo)的無(wú)遮擋跟蹤過(guò)程。
本文實(shí)驗(yàn)均在2.5 GHz*2 CPU、1 GB內(nèi)存的PC機(jī)上進(jìn)行,采用VC++6.0開(kāi)發(fā)環(huán)境;對(duì)AVSS 2007、PETS 2003等圖像序列測(cè)試跟蹤算法。
如圖4所示,在AVSS 2007序列中對(duì)序列中的一輛紅色車(chē)進(jìn)行跟蹤,圖中藍(lán)色矩形框?yàn)镵alman濾波的預(yù)測(cè)目標(biāo)狀態(tài)(包括位置和寬高等),紅色矩形框?yàn)镃AMShift的跟蹤結(jié)果。從結(jié)果可以看出,CAMShift的跟蹤結(jié)果能提供完美的觀測(cè)值來(lái)修改運(yùn)動(dòng)目標(biāo)的預(yù)測(cè)狀態(tài);Kalman濾波不僅能發(fā)現(xiàn)汽車(chē)的正確位置,適應(yīng)性也隨著車(chē)的增大而逐漸擴(kuò)大。
圖4 AVSS 2007序列運(yùn)動(dòng)目標(biāo)跟蹤結(jié)果
為了展示本文提出算法的優(yōu)越性,分別采用傳統(tǒng)CAMShift跟蹤算法和本文提出的跟蹤算法對(duì)PETS2003視頻序列進(jìn)行檢測(cè),序列分辨率為720×576,目標(biāo)在運(yùn)動(dòng)過(guò)程中存在遮擋;測(cè)試時(shí)每5幀采樣一次,得到原圖的第345、350、355、360、363、375、380、385、390幀圖像,在第350幀兩個(gè)運(yùn)動(dòng)員之間發(fā)生了局部遮擋,在第363幀目標(biāo)幾乎被完全遮擋,在385幀遮擋結(jié)束。當(dāng)?shù)?63幀目標(biāo)被完全遮擋后,由于傳統(tǒng)CAMShift跟蹤算法不更新直方圖,跟蹤了臨近的另一個(gè)穿紅衣服的運(yùn)動(dòng)員,導(dǎo)致跟蹤失敗,如圖5所示。
圖5 傳統(tǒng)CAMShift目標(biāo)跟蹤結(jié)果
圖6展示了采用本文提出的改進(jìn)CAMShift算法跟蹤結(jié)果,圖中兩個(gè)運(yùn)動(dòng)員突然向右運(yùn)動(dòng),此時(shí)Kalman濾波器產(chǎn)生了一個(gè)不準(zhǔn)確的結(jié)果,如圖6(f)。然而本文算法設(shè)計(jì)的Kalman濾波器有自適應(yīng)的性質(zhì),它會(huì)根據(jù)當(dāng)前CAMShift的跟蹤結(jié)果調(diào)整濾波器的參數(shù),使得預(yù)測(cè)的位置逐步趨向于CAMShift的跟蹤結(jié)果,如圖6(g)~(i);每次CAMShift算法均在Kalman濾波預(yù)測(cè)位置附近搜索,提高運(yùn)算速度。跟蹤過(guò)程中算法的平均運(yùn)行時(shí)間為88.9ms,算法完全能夠滿(mǎn)足實(shí)時(shí)的要求,目標(biāo)跟蹤軌跡如圖7所示。
圖6 改進(jìn)CAMShift目標(biāo)跟蹤結(jié)果
圖7 PETS 2003目標(biāo)的跟蹤軌跡
本文擴(kuò)展和改進(jìn)了傳統(tǒng)的CAMShift算法,將核密度估計(jì)、Kalman濾波器、CAMShift與遮擋策略相結(jié)合,給出一種以前景檢測(cè)為輔,CAMShift為主的目標(biāo)跟蹤方法,實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)的自動(dòng)跟蹤。當(dāng)目標(biāo)正常跟蹤時(shí),用非線性核密度估計(jì)的檢測(cè)結(jié)果對(duì)目標(biāo)直方圖進(jìn)行自適應(yīng)更新;當(dāng)檢測(cè)到目標(biāo)發(fā)生遮擋時(shí),用前面遮擋前的目標(biāo)尺寸和位置修正當(dāng)前跟蹤結(jié)果的目標(biāo)尺寸及位置;當(dāng)目標(biāo)遮擋結(jié)束,重新運(yùn)用核密度估計(jì)與CAMShift相結(jié)合的跟蹤策略進(jìn)行跟蹤。實(shí)驗(yàn)結(jié)果證明了給出的算法兼具效率和準(zhǔn)確,并且有比較強(qiáng)的魯棒性。
[1]侯志強(qiáng),韓崇昭.視覺(jué)跟蹤技術(shù)綜述[J].自動(dòng)化學(xué)報(bào),2006,32(4):603-617.
[2]吳慧敏,鄭曉勢(shì).改進(jìn)的高效Camshift跟蹤算法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(27):178-180.
[3]Brox T,Rousson M,Deriche R.Colour,texture,and motion in levelsetbased segmentation and tracking[J].Image and Vision Computing,2010,28(3):376-390.
[4]Yang Changjiang,Duraiswami R,Davis L.Efficient meanshifttracking via a new similarity measure[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2005:176-183.
[5]Chu Hongxia,Ye Shujiang,Guo Qingchang,et al.Object tracking algorithm based on CAMShift algorithm combinating with difference in frame[C]//IEEE International Conference on Automation and Logistics,2007:51-55.
[6]Dai Guojun,Zhang Yun.A novel auto-CAMShift algorithm use in object tracking[C]//CCC2008,2008:369-373.
[7]Elgammal A,DuraiswamiR,HarwoodD,etal.Background and foreground modeling using nonparametric kernel density estimation for visual surveillance[J].Proc of the IEEE,2002,90(7):1151-1163.
[8]李忠海,王莉,崔建國(guó).基于Camshift和Particle Filter的小目標(biāo)跟蹤算法[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(9):192-195.
[9]Scott D W.Multivariate density estimation[M].New York:Wiley-Interscience,1992.
[10]Comaneci D,Meer P.Meanshift:a robust approach toward feature space analysis[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(5):603-619.
[11]Jeyakar J,Venkatesh Babu R,Ramakrishnan K R.Robust object tracking with background-weighted local kernels[J].Computer Vision and Image Understanding,2008,112(3):296-309.
[12]McHugh J M,Konrad J,Saligrama V,et al.Foregroundadaptive background subtraction[J].IEEE Signal Processing Letters,2009,16(5):390-393.
[13]徐蕭蕭,楊浩,陳宗海.一種基于改進(jìn)CamShift的目標(biāo)跟蹤算法[J].系統(tǒng)仿真技術(shù)及其應(yīng)用,2009(11):851-854.
[14]Comaniciu D,Ramesh V,Meer P.Kernel-based object tracking[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(5):564-577.
[15]劉曼華,朱秀麗.基于改進(jìn)CAMShift的多目標(biāo)自動(dòng)跟蹤[J].河南大學(xué)學(xué)報(bào),2010,40(5):525-528.
[16]寧紀(jì)鋒,姜光,吳成柯.CAMSHIFT與基于核的目標(biāo)跟蹤算法的比較與分析[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(28):177-179.