史雙飛,張 震
(上海大學(xué) 機(jī)電工程與自動(dòng)化學(xué)院,上海 200072)
人臉檢測(cè)與跟蹤一直都是計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn),在視頻監(jiān)控、人機(jī)交互、運(yùn)動(dòng)分析等視頻分析場(chǎng)景中應(yīng)用廣泛。人臉檢測(cè)作為第一步驟非常關(guān)鍵,它的目標(biāo)是找出圖像中所有人臉對(duì)應(yīng)的位置,并輸出人臉外接矩形在圖像中的位置。而人臉跟蹤則需要在視頻序列中實(shí)時(shí)確定已被檢測(cè)的人臉在后續(xù)幀中的運(yùn)動(dòng)軌跡。目前為止,在簡(jiǎn)單穩(wěn)定的環(huán)境中,人臉檢測(cè)與跟蹤已取得了較好的成果。而在實(shí)際人流量較大的復(fù)雜場(chǎng)景中,遮擋、尺度變化、光照變化、雜亂背景、人臉姿態(tài)及表情等仍會(huì)在很大程度上影響人臉檢測(cè)與跟蹤的效果,如何增強(qiáng)檢測(cè)跟蹤算法的魯棒性仍是研究的重點(diǎn)。
目前已有的人臉檢測(cè)算法分為基于知識(shí)和基于統(tǒng)計(jì)的方法[1]?;谥R(shí)的人臉檢測(cè)算法主要是利用人臉特征的先驗(yàn)知識(shí)及規(guī)律來(lái)檢測(cè)人臉,包括眼睛、眉毛、嘴巴、鼻子等器官特征,各器官相互之間的幾何位置關(guān)系,人臉形狀、邊緣、紋理、膚色等特征。如建立YCbCr彩色空間的膚色模型[2],利用人臉灰度特征和幾何特征來(lái)定位人臉的方法[3]等,這些方法雖然特征明顯,但易受光照、遮擋等外界因素干擾?;诮y(tǒng)計(jì)的人臉檢測(cè)算法是將人臉看作一個(gè)整體,根據(jù)統(tǒng)計(jì)學(xué)原理通過(guò)大量人臉圖像樣本構(gòu)造人臉模式空間,根據(jù)相似度量來(lái)判斷人臉是否存在。該方法主要通過(guò)機(jī)器學(xué)習(xí)算法訓(xùn)練大量人臉和非人臉樣本,從而得到表征人臉的有效分類器。常用方法有神經(jīng)網(wǎng)絡(luò)法[4-5]、支持向量機(jī)法[6]、AdaBoost算法[7-8]等,這類方法檢測(cè)精度更高,適應(yīng)性和魯棒性均有了很大提升,只是需要事先訓(xùn)練大量樣本,相較于實(shí)際應(yīng)用過(guò)程中的大量在線計(jì)算,文中傾向于后者,因此選擇AdaBoost算法進(jìn)行人臉檢測(cè)。
復(fù)雜場(chǎng)景中的多人臉跟蹤方法種類繁多,其中應(yīng)用較多的有:光流法[9]、Meanshift算法[10]、Camshift算法[11]、Kalman濾波[12]和粒子濾波算法[13]等。然而僅單獨(dú)使用這些傳統(tǒng)的跟蹤算法,不僅計(jì)算量大,魯棒性不夠,且不能在線學(xué)習(xí),從而不能適應(yīng)跟蹤目標(biāo)的變化,因此需要將這些方法進(jìn)行組合或在此基礎(chǔ)上形成魯棒性較好且能在線學(xué)習(xí)新目標(biāo)的算法。文中采用一種MDP算法[14],將在線多目標(biāo)跟蹤規(guī)劃成一個(gè)馬爾可夫決策過(guò)程(Markov decision processes)中的決策,將每個(gè)目標(biāo)的生命周期(從出現(xiàn)到消失)建模成一個(gè)MDP,即將目標(biāo)的出現(xiàn)和消失看作是MDP中的狀態(tài)轉(zhuǎn)移,然后使用現(xiàn)有的單目標(biāo)跟蹤方法來(lái)處理問(wèn)題,可以泛化使用到各個(gè)場(chǎng)景的跟蹤中。
文中在原始MDP算法的基礎(chǔ)上,通過(guò)基于AdaBoost的Viola-Jones(VJ)[8]算法快速檢測(cè)人臉,將該結(jié)果作為MDP跟蹤算法的目標(biāo)檢測(cè)輸入,實(shí)現(xiàn)人臉自動(dòng)檢測(cè)。同時(shí),為了增強(qiáng)新算法的魯棒性,還在跟蹤過(guò)程中加入了Kalman濾波進(jìn)行運(yùn)動(dòng)估計(jì),從而更好地處理目標(biāo)ID分配錯(cuò)誤的情況。
人臉檢測(cè)作為人臉跟蹤的第一道工序,其準(zhǔn)確性將對(duì)后續(xù)人臉跟蹤系統(tǒng)的性能和穩(wěn)定性產(chǎn)生重大影響。人臉檢測(cè)的目的是為了獲取任務(wù)目標(biāo)人臉區(qū)域的位置、大小等信息,為后續(xù)的跟蹤奠定良好的基礎(chǔ)。文中主要利用基于AdaBoost的VJ算法[8]進(jìn)行人臉檢測(cè)。
VJ檢測(cè)算法的整體框架分成三個(gè)部分。
與使用像素來(lái)描述人臉相比,使用類Haar特征不僅包含一定領(lǐng)域的信息,且計(jì)算速度快,因而在人臉檢測(cè)算法中被大量使用。此外還引入積分圖計(jì)算類Haar特征,只需遍歷一次圖像便可求出圖像中所有區(qū)域的像素和。
VJ算法采用基于Adaboost的分類器學(xué)習(xí)方法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的弱分類器,將弱分類器相結(jié)合,從而構(gòu)成一個(gè)強(qiáng)分類器。為了提升弱分類器,在一次學(xué)習(xí)結(jié)束后,對(duì)錯(cuò)誤分類的樣本通過(guò)增加其權(quán)重并重新學(xué)習(xí)以得到比上一次更好的分類器。具體步驟如下:
(1)給定人臉圖片(x1,y1),…,(xn,yn),其中xi表示第i個(gè)樣本;yi=1表示正樣本(人臉);yi=0表示負(fù)樣本(非人臉)。
(2)初始化樣本權(quán)值。
(1)
其中,m為正樣本數(shù);n為負(fù)樣本數(shù)。
(3)首先,歸一化權(quán)值:
(2)
其中,t是迭代次數(shù)。
其次,對(duì)特征j,訓(xùn)練一個(gè)弱分類器hj,然后對(duì)每個(gè)特征生成的弱分類器計(jì)算權(quán)重誤差:
(3)
最后,選擇具有最小誤差εt的分類器ht疊加到強(qiáng)分類器中,并更新權(quán)值:
(4)輸出強(qiáng)分類器。
(4)
人臉檢測(cè)中,只靠一個(gè)強(qiáng)分類器還不足以保證檢測(cè)的正確率,需要一連串的強(qiáng)分類器聯(lián)合在一起來(lái)提高檢測(cè)正確率。文中利用篩選式級(jí)聯(lián)分類器,先將多個(gè)強(qiáng)分類器按復(fù)雜度排序,簡(jiǎn)單的在前面,類似于一個(gè)決策樹(shù),如圖1所示。第一個(gè)簡(jiǎn)單而高效的分類器輸出True結(jié)果就會(huì)觸發(fā)同樣具有較高檢測(cè)率的第二個(gè)分類器對(duì)窗口圖像做出評(píng)價(jià)。以此類推,第二個(gè)分類器輸出True結(jié)果將觸發(fā)第三個(gè)分類器對(duì)窗口圖像做出評(píng)價(jià)。只要有一個(gè)分類器節(jié)點(diǎn)輸出False結(jié)果,直接認(rèn)為該窗口圖像不包含目標(biāo)物,從而拒絕該窗口。
圖1 級(jí)聯(lián)分類器模型
基于MDP的跟蹤算法將在線的多目標(biāo)跟蹤問(wèn)題規(guī)劃成MDP中的決策,為每一個(gè)目標(biāo)建立一個(gè)MDP模型,將目標(biāo)的出現(xiàn)到消失看作是MDP中的狀態(tài)轉(zhuǎn)移,并采用強(qiáng)化學(xué)習(xí)的方法學(xué)習(xí)相似數(shù)據(jù)的關(guān)聯(lián)性,然后使用現(xiàn)有的單目標(biāo)跟蹤方法來(lái)處理問(wèn)題。
用MDP來(lái)建模一個(gè)目標(biāo)的生命周期,包括四個(gè)部分:目標(biāo)的狀態(tài)集S、目標(biāo)可采取的動(dòng)作A、狀態(tài)轉(zhuǎn)移函數(shù)T(描述各狀態(tài)進(jìn)行各動(dòng)作后的影響)、實(shí)值獎(jiǎng)勵(lì)函數(shù)r(描述在狀態(tài)s下執(zhí)行動(dòng)作a的實(shí)時(shí)獎(jiǎng)勵(lì))。
圖2 目標(biāo)的MDP模型
MDP模型將目標(biāo)分為四個(gè)狀態(tài):激活,跟蹤,丟失,休止。如圖2所示,當(dāng)VJ檢測(cè)器檢測(cè)出人臉,隨即進(jìn)入激活狀態(tài),然后根據(jù)事先訓(xùn)練好的SVM分類器[15]判斷該目標(biāo)轉(zhuǎn)移到跟蹤或休止?fàn)顟B(tài)。處于跟蹤狀態(tài)的人臉目標(biāo)通過(guò)光流法及Kalman運(yùn)動(dòng)估計(jì)繼續(xù)跟蹤,若人臉有遮擋或者離開(kāi)相機(jī)的視野范圍導(dǎo)致目標(biāo)跟蹤失敗,則進(jìn)入丟失狀態(tài)。目標(biāo)處于丟失狀態(tài)時(shí),先利用強(qiáng)化學(xué)習(xí)訓(xùn)練得到的二類SVM分類器,計(jì)算丟失目標(biāo)與VJ檢測(cè)器傳來(lái)的目標(biāo)之間的相似度分?jǐn)?shù),然后通過(guò)匈牙利算法[16]獲得丟失狀態(tài)下的目標(biāo)集合與VJ檢測(cè)目標(biāo)集合間的最優(yōu)分配。根據(jù)分配,可以將丟失狀態(tài)的目標(biāo)和某些檢測(cè)目標(biāo)關(guān)聯(lián),然后將其轉(zhuǎn)移到跟蹤狀態(tài),否則就繼續(xù)保持丟失狀態(tài)。當(dāng)目標(biāo)處于丟失狀態(tài)超過(guò)一定的閾值幀數(shù)后,就將其轉(zhuǎn)移到休止?fàn)顟B(tài),這是一個(gè)終結(jié)狀態(tài),不能再進(jìn)行轉(zhuǎn)移。文中著重介紹跟蹤狀態(tài)下所采用的策略及其改進(jìn)方案。
在跟蹤狀態(tài)下,MDP主要決定目標(biāo)是繼續(xù)保持跟蹤狀態(tài)還是轉(zhuǎn)移到丟失狀態(tài)。若目標(biāo)無(wú)遮擋且還在相機(jī)視野內(nèi),則保持跟蹤,否則轉(zhuǎn)移到丟失狀態(tài)。
2.3.1 光流計(jì)算
決策過(guò)程采用類似TLD跟蹤算法[17],首先用檢測(cè)邊界框在線初始化目標(biāo)的外觀模型,構(gòu)建目標(biāo)模板,利用光流信息進(jìn)行跟蹤,以正反向誤差(forward-backward)作為評(píng)判標(biāo)準(zhǔn)。光流法用于計(jì)算兩幀圖像間對(duì)應(yīng)點(diǎn)的運(yùn)動(dòng)矢量,即給定目標(biāo)模板I上的一點(diǎn)u=(ux,uy),通過(guò)Lucas-Kanade方法[18]計(jì)算該點(diǎn)的光流找到新視頻幀J上的對(duì)應(yīng)點(diǎn)v=u+d,其中d=(dx,dy)是u處的光流。在計(jì)算了所有采樣點(diǎn)的正向光流之后,根據(jù)正反向誤差來(lái)判斷光流是否穩(wěn)定,即根據(jù)J幀的目標(biāo)檢測(cè)值v反向計(jì)算目標(biāo)模板I對(duì)應(yīng)點(diǎn)u的光流,獲得一個(gè)新的預(yù)測(cè)u'。若光流穩(wěn)定,則u和u'應(yīng)該彼此接近,因此一個(gè)點(diǎn)的正反向誤差可以用正反向預(yù)測(cè)之間的歐氏距離來(lái)表示:e(u)=‖u-u'‖2。若所有采樣點(diǎn)的FB的中值emedFB小于設(shè)置的閾值,則認(rèn)為跟蹤穩(wěn)定,反之則不穩(wěn)定。借此可以過(guò)濾掉不穩(wěn)定的點(diǎn),并用剩下的匹配點(diǎn)形成一個(gè)新的邊界框,作為新的目標(biāo)位置,并且在跟蹤過(guò)程中,MDP會(huì)收集目標(biāo)的歷史模板,便于后續(xù)操作。
2.3.2 重疊區(qū)域計(jì)算
根據(jù)上述兩個(gè)指標(biāo),可以得到特征表達(dá)式φTracked(s)=(emedFB,omean),獎(jiǎng)勵(lì)函數(shù)如下:
(5)
其中,e0和o0是指定的閾值。當(dāng)a=a3時(shí),y(a)=+1;a=a4時(shí),y(a)=-1。也就是說(shuō)當(dāng)emedFB小于設(shè)定的閾值,omean大于設(shè)定閾值的時(shí)候,目標(biāo)會(huì)繼續(xù)保持跟蹤狀態(tài),反之轉(zhuǎn)移到丟失狀態(tài)。
2.3.3 運(yùn)動(dòng)估計(jì)
在實(shí)際應(yīng)用中,目標(biāo)處于運(yùn)動(dòng)狀態(tài)且每個(gè)目標(biāo)的運(yùn)動(dòng)方向是隨機(jī)的,因此若是目標(biāo)之間產(chǎn)生相對(duì)運(yùn)動(dòng)導(dǎo)致交叉重疊,那將會(huì)產(chǎn)生目標(biāo)ID分配錯(cuò)誤的情況,這是光流法的誤差遺留問(wèn)題。于是文中在原來(lái)的基礎(chǔ)上引入了Kalman濾波,根據(jù)目標(biāo)的歷史信息來(lái)估算下一幀該目標(biāo)可能出現(xiàn)的位置,然后將光流估計(jì)得出的邊界框與運(yùn)動(dòng)估計(jì)得出的邊界框進(jìn)行比較,判斷是否會(huì)出現(xiàn)反向,如果出現(xiàn)反向較大的情況,就認(rèn)為跟蹤失敗,該目標(biāo)應(yīng)處于丟失狀態(tài)。
(6)
其中,a為運(yùn)動(dòng)目標(biāo)在該方向的加速度;Δt為采樣時(shí)間。其矩陣形式為:
(7)
則Kalman系統(tǒng)狀態(tài)方程如下:
xk=Axk-1+Buk-1+wk-1
(8)
其中,xk-1為狀態(tài)向量;A為轉(zhuǎn)換矩陣;B為系統(tǒng)參數(shù);uk-1為系統(tǒng)輸入;wk-1為系統(tǒng)噪聲。
為了驗(yàn)證算法的有效性,文中進(jìn)行了8個(gè)不同場(chǎng)景的多人臉跟蹤實(shí)驗(yàn),并選擇3個(gè)指標(biāo)對(duì)該算法進(jìn)行評(píng)價(jià),分別是多人臉跟蹤準(zhǔn)確度(MFTA)、多人臉跟蹤精度(MFTP)以及跟蹤速率(Hz)。實(shí)驗(yàn)在Inter Core i5 CPU 1.6GHz和內(nèi)存8 G的PC機(jī)上進(jìn)行。
圖3分別展示了8個(gè)不同場(chǎng)景的視頻序列多人臉跟蹤的實(shí)驗(yàn)結(jié)果,按順序分別是Crossing,Dance,Door,Elevator,Exercise,Lab,Road,Subway??梢钥闯?,Dance,Elevator,Lab等場(chǎng)景較為簡(jiǎn)單,且目標(biāo)人物基本都為正臉的情況下,人臉檢測(cè)與跟蹤的效果明顯比其他場(chǎng)景復(fù)雜、人臉姿態(tài)各異的跟蹤效果要好一些,且在目標(biāo)被遮擋后仍能繼續(xù)跟蹤。可見(jiàn)該算法對(duì)目標(biāo)人臉的跟蹤具有一定的魯棒性。
圖3 視頻序列的正臉檢測(cè)與跟蹤
表1 改進(jìn)算法的跟蹤性能
表1顯示了該算法的性能,除了Crossing和Subway兩個(gè)場(chǎng)景的準(zhǔn)確率稍低(推測(cè)可能是人臉與背景相似度較高,檢測(cè)器出現(xiàn)了誤檢),總體來(lái)看,該算法基本可以穩(wěn)定地檢測(cè)并跟蹤場(chǎng)景內(nèi)的正臉目標(biāo),其速率也能滿足應(yīng)用要求。
MDP算法是一種結(jié)合在線與離線學(xué)習(xí)的視覺(jué)跟蹤算法,在其基礎(chǔ)上,文中提出一種基于VJ人臉檢測(cè)優(yōu)化的MDP多目標(biāo)跟蹤算法,并且在跟蹤過(guò)程中使用光流法結(jié)合Kalman運(yùn)動(dòng)估計(jì)來(lái)提高人臉跟蹤的準(zhǔn)確性和魯棒性。此外,對(duì)于沒(méi)有被跟蹤的VJ檢測(cè)目標(biāo),會(huì)初始化一個(gè)MDP繼續(xù)跟蹤。該算法能夠有效適用于復(fù)雜場(chǎng)景中人臉目標(biāo)的穩(wěn)定跟蹤。