楊 彥
(鹽城紡織職業(yè)技術(shù)學(xué)院,江蘇鹽城650500)
人的臉部為外界提供了大量的視覺信息,計(jì)算機(jī)的多種感知通道,如人臉檢測(cè)、表情識(shí)別等,都建立在人臉處理技術(shù)的基礎(chǔ)上。人臉檢測(cè)與跟蹤技術(shù)[1]則是人臉信息處理中的關(guān)鍵環(huán)節(jié)。人臉檢測(cè)[2](Face Detection)是指在輸入圖像中自動(dòng)確定是否存在人臉,如果存在,則同時(shí)給出人臉在圖像中的位置、人臉區(qū)域大小等參數(shù)信息。人臉跟蹤[3](Face Tracking)則是指在圖像序列中確定人臉信息隨時(shí)間變化的情況,給出各幀之間人臉的對(duì)應(yīng)關(guān)系,并在后續(xù)圖像幀中跟蹤出已檢測(cè)到人臉的運(yùn)動(dòng)軌跡。
人臉檢測(cè)與跟蹤技術(shù)已經(jīng)取得了十分迅速的發(fā)展,一些研究成果已經(jīng)轉(zhuǎn)化為商用軟件。但由于人臉屬于復(fù)雜的非剛體,對(duì)人臉的檢測(cè)和跟蹤涉到許多領(lǐng)域,如模式識(shí)別、圖像處理、生理學(xué)、計(jì)算機(jī)視覺等方面的諸多知識(shí),如何獲取快速有效的人臉檢測(cè)與跟蹤效果仍然是一個(gè)極富挑戰(zhàn)性的課題。本文對(duì)較為經(jīng)典的人臉檢測(cè)與跟蹤算法進(jìn)行了深入的研究,并結(jié)合各算法之間性能上的互補(bǔ)性,對(duì)各種線索進(jìn)行有效的融合,搭建了一個(gè)實(shí)時(shí)人臉檢測(cè)與跟蹤系統(tǒng),在實(shí)驗(yàn)室環(huán)境下進(jìn)行了測(cè)試和性能評(píng)價(jià)。
Viola和Jones在2001年首次提出的基于Ada-Boost算法的人臉檢測(cè)方法[4],首次實(shí)現(xiàn)了實(shí)時(shí)人臉檢測(cè),是目前為止最好的檢測(cè)方法。該方法主要包含Haar-like特征、積分圖、AdaBoost迭代算法和級(jí)聯(lián)分類器等內(nèi)容,方法框架可以分成為以下3大部分:
(1)選用Haar-like特征來表示人臉,使用“積分圖”來快速計(jì)算分類器訓(xùn)練所用的Haar-like特征;
(2)利用AdaBoost算法挑選出少量最能代表人臉的特征,形成一系列的強(qiáng)分類器;
(3)將訓(xùn)練得到的強(qiáng)分類器進(jìn)行級(jí)聯(lián),利用級(jí)聯(lián)的強(qiáng)分類器構(gòu)成最終的分類器。
Haar-like型特征是一系列帶有權(quán)重的矩形模板(如圖1所示),將某一模板運(yùn)用到圖像某一區(qū)域時(shí),特征提取結(jié)果為白色矩形覆蓋區(qū)域的灰度值總和與灰色矩形覆蓋區(qū)域的灰度值總和之差。

圖1 Viola-Jones所用Haar-like特征
積分圖像是一種用來加速Haar-like型特征計(jì)算的中介圖像表示方法。灰度圖像的積分圖像I(u,v)定義為:

其中I(x,y)為圖像的灰度,可見,積分圖像中一點(diǎn)P的值就是灰度圖像中以遠(yuǎn)點(diǎn)和P為對(duì)角點(diǎn)的矩形區(qū)域的灰度總和。借助積分圖像,可以通過類似查表的方式快速計(jì)算Haar-like型特征。
通過上述方法計(jì)算出來的Haar-like特征的數(shù)量是十分巨大的,每一個(gè)Haar-like特征就對(duì)應(yīng)了一個(gè)弱分類器,但不同的弱分類器對(duì)人臉的分辨能力是不同的,對(duì)于每個(gè)弱分類器,Viola和Jones運(yùn)用AdaBoost方法進(jìn)行訓(xùn)練,對(duì)所有的分類器排序,然后從中選取少數(shù)效果最好的弱分類器組成一個(gè)強(qiáng)分類器。

其中hi是弱分類器,T為弱分類器的個(gè)數(shù),b為閾值。
通過分類器級(jí)聯(lián)技術(shù),運(yùn)算速度可以顯著加快,級(jí)聯(lián)分類器是由若干個(gè)強(qiáng)分類器的組成的,每一個(gè)強(qiáng)分類器都是由AdaBoost算法訓(xùn)練得到。利用較簡(jiǎn)單的分類器在前期將絕大部分的非人臉子窗口篩除掉,然后再利用較為復(fù)雜和可靠的強(qiáng)分類器來提高最終的分類性能。級(jí)聯(lián)分類器如圖2所示。

圖2 級(jí)聯(lián)分類器示意圖
Viola-Jones人臉檢測(cè)算法能夠滿足一定的實(shí)時(shí)性要求,且具有較好的檢測(cè)效果,但本文人臉檢測(cè)部分同時(shí)負(fù)擔(dān)著對(duì)人臉跟蹤部分的初始化的任務(wù),故要求實(shí)時(shí)性更好,且具有更低的誤檢率。所以我們提出了運(yùn)用運(yùn)動(dòng)檢測(cè)和運(yùn)動(dòng)區(qū)域內(nèi)的膚色檢測(cè)縮小人臉檢測(cè)的搜索范圍,提高檢測(cè)速度,降低檢測(cè)的誤檢率。
對(duì)圖像序列中的運(yùn)動(dòng)區(qū)域進(jìn)行檢測(cè)主要有幀間差分、背景減除和光流分割3種方法[4],本文使用三幀差分法進(jìn)行運(yùn)動(dòng)區(qū)域檢測(cè),三幀差分是將相鄰三幀圖像作為一組進(jìn)行差分,能夠較好地檢測(cè)出中間幀運(yùn)動(dòng)區(qū)域。三幀差分的基本原理可以描述如下。
設(shè)Ii(x,y)表示圖像序列中的第i幀圖像,(x,y)表示圖像幀中的像素的坐標(biāo)。對(duì)連續(xù)三幀圖像Ii-1(x,y)、Ii(x,y)、Ii+1(x,y),分別對(duì)相鄰兩幀之間進(jìn)行差分:

然后通過適當(dāng)?shù)拈撝岛Y選得到二值化圖像:

將得到的兩幅二值化圖像做進(jìn)一步的處理,得到最終的二值化圖像,從而確定圖像序列中當(dāng)前幀的運(yùn)動(dòng)區(qū)域:

經(jīng)過運(yùn)動(dòng)區(qū)域檢測(cè)以后,我們?cè)谶\(yùn)動(dòng)區(qū)域內(nèi)通過膚色檢測(cè)進(jìn)一步縮小人臉檢測(cè)的搜索范圍,更好地提高檢測(cè)速度并降低誤檢率。膚色檢測(cè)采用了Jure等人提出的RGB空間進(jìn)行膚色檢測(cè)的方法,該方法簡(jiǎn)單穩(wěn)定,考慮到了亮度對(duì)膚色檢測(cè)的影響,算法模型根據(jù)光照條件分為了兩個(gè)不同的模型。
一般光照條件下,膚色應(yīng)該滿足的模型表示為:

強(qiáng)光照的條件下,膚色應(yīng)該滿足的模型表示為:

根據(jù)上述模型,掃描運(yùn)動(dòng)區(qū)域的像素點(diǎn),確定運(yùn)動(dòng)區(qū)域內(nèi)的膚色區(qū)域,將掃描得到的區(qū)域進(jìn)行x,y的投影獲得矩形區(qū)域作為運(yùn)用基于Adaboost方法的Viola-Jones快速人臉檢測(cè)的搜索區(qū)域。
Meanshift算法[6]是一個(gè)迭代的過程,首先計(jì)算得出當(dāng)前點(diǎn)的偏移均值,然后移動(dòng)該點(diǎn)到這個(gè)偏移均值處繼續(xù)迭代過程,直到滿足一定的迭代結(jié)束條件為止。其算法實(shí)現(xiàn)的基本步驟為:
(1)對(duì)目標(biāo)區(qū)域進(jìn)行初始化,即設(shè)定跟蹤窗口的初始位置、大小等信息。
(2)計(jì)算跟蹤窗口的質(zhì)心。
利用跟蹤窗口的零階矩和一階矩就可以計(jì)算得到窗口的質(zhì)心,在圖像分析中,階矩主要用來刻畫圖像的幾何特征,式(8)描述了圖像的零階矩M00的為:

式(9)描述了x方向一階矩M10和y方向一階矩M01的計(jì)算方法為:

式中I(x,y)為坐標(biāo)點(diǎn)(x,y)的像素值,x,y的取值范圍為跟蹤窗的大小。
設(shè)跟蹤窗口的質(zhì)心坐標(biāo)為(xc,yc),其坐標(biāo)值可通過式(10)計(jì)算得到,

(3)將跟蹤窗口的中心調(diào)整到質(zhì)心的位置。
(4)重復(fù)進(jìn)行第2步和第3步的過程,不斷地將搜索窗口進(jìn)行移動(dòng),當(dāng)單次移動(dòng)的轉(zhuǎn)移量小于設(shè)定的閾值或者達(dá)到了最大迭代次數(shù)時(shí),迭代結(jié)束。
Meanshift算法是一種快速的模式匹配方法,能夠滿足系統(tǒng)實(shí)時(shí)性的要求,在目標(biāo)被初始化以后,后面的整個(gè)跟蹤過程不再需要進(jìn)行參數(shù)輸入。該方法對(duì)目標(biāo)的形變、旋轉(zhuǎn)等都具有較好的魯棒性,相對(duì)于其他跟蹤方法,具有明顯的優(yōu)勢(shì),已在許多目標(biāo)跟蹤系統(tǒng)中得到成功的應(yīng)用。
光流法[7]以光流技術(shù)為基本手段,通過光流場(chǎng)的模式分類來進(jìn)行運(yùn)動(dòng)目標(biāo)的跟蹤,它不僅能夠跟蹤到運(yùn)動(dòng)物體的位置,而且可以同時(shí)獲取目標(biāo)的速度場(chǎng)。光流可以看成帶有灰度的像素點(diǎn)在圖像平面上運(yùn)動(dòng)而產(chǎn)生的瞬時(shí)速度場(chǎng),設(shè)圖像點(diǎn)(x,y)在時(shí)刻t的照度值為I(x,y,t),假設(shè)該點(diǎn)經(jīng)Δt的時(shí)間運(yùn)動(dòng)到(x+Δx,y+Δy)位置時(shí)照度值保持不變,同時(shí)設(shè)Ix=?I/?x,Iy=?I/?y,It=?I/?t,則光流基本方程可表示為:

該式是一個(gè)關(guān)于速度分量u,v的直線方程,僅這一約束條件還不能唯一的確定出u和v,即只利用一個(gè)點(diǎn)上的信息是不能確定光流的,為此Lucas-Kanade光流計(jì)算[8]假定場(chǎng)景中物體被跟蹤的部分的亮度保持不變,且?guī)c幀之間時(shí)間很短,可以假設(shè)圖像上的局部小范圍內(nèi)(如一個(gè)小的空間鄰域Ω)相近像素點(diǎn)的光流速度相等,如果這個(gè)局部小范圍內(nèi)有m個(gè)點(diǎn),根據(jù)基本的光流約束方程,我們就可以得到這樣一個(gè)方程組:

該方程組為一個(gè)超定的方程組,可以采用最小二乘法進(jìn)行求解,求得最終結(jié)果為:

其中的ATA其實(shí)為一個(gè)2×2的矩陣,

當(dāng)矩陣ATA是非奇異矩陣時(shí),就可以得到光流v的解析解。可以通過矩陣ATA的特征值來判斷光流估計(jì)值v的可靠性,假設(shè)矩陣ATA的特征值為λ1和λ2,且λ1≥λ2。如果λ1和λ2均大于某一個(gè)閾值γ,則根據(jù)式(13)計(jì)算光流值,如果不能夠滿足λ1和λ2均大于某一個(gè)閾值γ的條件,則不進(jìn)行光流值的計(jì)算。
上文所介紹的兩種跟蹤方法都可以對(duì)圖像序列中的人臉進(jìn)行有效的跟蹤,Meanshift算法是基于膚色的跟蹤方法,我們首先需要根據(jù)膚色形象計(jì)算圖像的顏色概率直方圖,并根據(jù)顏色概率直方圖對(duì)待處理圖像進(jìn)行反向投影,得到反向投影圖后再運(yùn)用Meanshift算法進(jìn)行迭代處理,實(shí)現(xiàn)對(duì)人臉目標(biāo)的跟蹤。基于光流法的人臉跟蹤則首先運(yùn)用圖像角點(diǎn)檢測(cè)技術(shù)[9],將一系列特征點(diǎn)被自動(dòng)初始化在人臉圖像中細(xì)節(jié)豐富的邊角處,例如眼角,嘴角,唇線,眉邊等處。然后再根據(jù)光流計(jì)算的原理進(jìn)行跟蹤。
基于膚色的Meanshift算法計(jì)算迅速,對(duì)人臉目標(biāo)的形變、旋轉(zhuǎn)等都具有較好的魯棒性,但其對(duì)頭部快速運(yùn)動(dòng)和人臉深度方向的改變不魯棒,而基于光流法的人臉跟蹤則對(duì)快速運(yùn)動(dòng)和深度方向的改變都很魯棒,只是在人臉旋轉(zhuǎn)時(shí)特征點(diǎn)丟失嚴(yán)重。本文將各種跟蹤線索進(jìn)行有效的融合,充分利用各算法之間性能上的互補(bǔ)性,以實(shí)現(xiàn)更好的跟蹤效果。
本文系統(tǒng)主要分為人臉檢測(cè)和人臉跟蹤兩個(gè)模塊,人臉檢測(cè)模塊運(yùn)用上述的改進(jìn)的AdaBoost人臉檢測(cè)算法,跟蹤模塊則將Meanshift方法和光流法相結(jié)合,系統(tǒng)的最終輸出分為以下幾種情況,但人臉處于正面姿態(tài)時(shí),檢測(cè)模塊可以有效地檢測(cè)到人臉,此時(shí)將人臉檢測(cè)的輸出作為系統(tǒng)的最終輸出,但人臉檢測(cè)部分不能夠檢測(cè)到人臉時(shí),人臉處于復(fù)雜姿態(tài),此時(shí)人臉跟蹤模塊對(duì)人臉目標(biāo)進(jìn)行跟蹤輸出,當(dāng)光流特征點(diǎn)的個(gè)數(shù)滿足一定的閾值時(shí),則將光流法的輸出作為最終輸出,當(dāng)光流特征點(diǎn)丟失嚴(yán)重時(shí),則將Meanshift方法作為輸出并重新初始化區(qū)域進(jìn)行角點(diǎn)信息的檢測(cè)。系統(tǒng)實(shí)現(xiàn)的框圖如圖3所示。

圖3 系統(tǒng)實(shí)現(xiàn)基本框圖
OpenCV由英特爾微處理器研究實(shí)驗(yàn)室的視覺交互組開發(fā),用于輔助計(jì)算機(jī)視覺處理及應(yīng)用的共享文件,該庫(kù)中的圖像存儲(chǔ)結(jié)構(gòu)次采用Intel的IPL中的圖像存儲(chǔ)結(jié)構(gòu),在IPL的支持下,可輕松實(shí)現(xiàn)物體輪廓跟蹤、圖像的幾何處理、形態(tài)學(xué)處理、圖像特征提取、背景分離、姿勢(shì)的識(shí)別等很多操作。此處我們利用Microsoft Visual C++6.0技術(shù),結(jié)合OpenCV優(yōu)良的算法實(shí)現(xiàn)了上述實(shí)時(shí)人臉檢測(cè)與跟蹤系統(tǒng)。
為了驗(yàn)證系統(tǒng)的人臉檢測(cè)與跟蹤性能,我們利用NRC-IIT視頻人臉數(shù)據(jù)庫(kù)進(jìn)行了實(shí)驗(yàn)。NRC-IIT視頻人臉數(shù)據(jù)庫(kù)是為人臉識(shí)別研究而設(shè)計(jì)的開放資源庫(kù)。其中包含有11個(gè)人參與拍攝的22組短視頻。每個(gè)視頻中都只含有一個(gè)人臉,但具有豐富的人臉表情和多樣的頭部運(yùn)動(dòng)。視頻是通過放置在顯示器頂部的普通攝像頭拍攝的。該視頻庫(kù)主要是用來測(cè)試人臉識(shí)別算法的性能,但在進(jìn)行人臉識(shí)別之前必須先進(jìn)行人臉檢測(cè),NRC-IIT人臉檢測(cè)的實(shí)現(xiàn)也是基于OpenCV實(shí)現(xiàn)的Adaboost方法的人臉檢測(cè),其檢測(cè)的性能可以與本系統(tǒng)的檢測(cè)跟蹤性能做一定的對(duì)比分析。圖4是本文系統(tǒng)在NRC-IIT視頻人臉數(shù)據(jù)庫(kù)上的部分樣幀。
NRC-IIT人臉檢測(cè)所采用的也是基于AdaBoost方法的人臉檢測(cè)算法,且系統(tǒng)在OpenCV平臺(tái)下實(shí)現(xiàn),圖5給出了本文系統(tǒng)的檢測(cè)率和最終正確輸出率與NRC-IIT系統(tǒng)檢測(cè)性能的對(duì)比曲線圖。

圖4 NRC-IIT視頻人臉數(shù)據(jù)庫(kù)上輸出結(jié)果的部分樣幀

圖5 本文與NRC-IIT系統(tǒng)性能對(duì)比曲線
從圖5可以看出,兩個(gè)系統(tǒng)的人臉檢測(cè)器使用的算法和實(shí)現(xiàn)平臺(tái)基本一致。然而,NRC-IIT的檢測(cè)結(jié)果(平均74.8%)卻高于本文系統(tǒng)(平均50.2%)。這是由于本文的人臉檢測(cè)部分不僅要檢測(cè)人臉,同時(shí)還擔(dān)負(fù)著人臉跟蹤部分的初始化任務(wù),故我們?cè)谧钚∷阉鞔翱诔叽绾徒Y(jié)果分組閾值的設(shè)置上都追求低誤檢率。同時(shí),由于本文采用了運(yùn)動(dòng)區(qū)域檢測(cè)和膚色檢測(cè),更進(jìn)一步的降低了誤檢率,在NRC-IIT視頻人臉庫(kù)上保持了0%的誤檢率,而NRC-IIT系統(tǒng)則存在誤檢現(xiàn)象,個(gè)別視頻序列誤檢十分嚴(yán)重。另外,雖然本文在NRC-IIT視頻人臉庫(kù)上的檢測(cè)率不高,但是由于系統(tǒng)在檢測(cè)部分不能檢測(cè)人臉時(shí)采用跟蹤器的整合輸出作為最終結(jié)果,系統(tǒng)的總體性能得到了提高,最終輸出的平均正確率為96.7%。
另外我們對(duì)系統(tǒng)的實(shí)時(shí)性也進(jìn)行了考察,統(tǒng)計(jì)系統(tǒng)處理每幀數(shù)據(jù)所用的時(shí)間,利用采集得到的視頻序列進(jìn)行試驗(yàn)得到的統(tǒng)計(jì)結(jié)果如圖6所示。從圖6可以看出,系統(tǒng)的平均的幀處理時(shí)間為58.83 ms,即可以達(dá)到17幀/s的幀處理速度,可以滿足實(shí)時(shí)性的要求。

圖6 系統(tǒng)幀處理時(shí)間分析
研究分析了基于Adaboost的人臉檢測(cè)算法和基于Meanshift和光流法的人臉跟蹤算法,利用各算法性能上的互補(bǔ)性,基于OpenCV開發(fā)資源庫(kù)構(gòu)建了一多線索融合的人臉檢測(cè)與跟蹤系統(tǒng),通過實(shí)驗(yàn)室錄制視頻和NRC-IIT視頻人臉數(shù)據(jù)庫(kù)對(duì)系統(tǒng)進(jìn)行了性能測(cè)試。測(cè)試結(jié)果表明系統(tǒng)具有較好的實(shí)時(shí)性和魯棒性。
[1]梁路宏,艾海舟.基于人臉檢測(cè)的人臉跟蹤算法[J].計(jì)算機(jī)工程與應(yīng)用,2001(17):42-45.
[2]梁路宏,艾海舟,徐光佑,等.人臉檢測(cè)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2002,25(5):449-458.
[3]Lin Y T.Real-Time Visual Face Tracking and Recognition Techniques Used for the Interaction between Humans and Robots[D].National Taiwan University of Science and Technology,2008.
[4]Huang T S,Tao H.Visual Face Tracking and Its Application to 3d Model-Based Video Coding[C]//Picture Coding Symposium,2001:57-60.
[5]甘明剛,陳杰,劉勁,等.一種基于三幀差分和邊緣信息的運(yùn)動(dòng)目標(biāo)檢測(cè)方法[J].電子與信息學(xué)報(bào),2010,32(4):894-897.
[6]劉寶弟,王延江,馬海,等.基于均值漂移算法的人臉自適應(yīng)跟蹤[J].中國(guó)石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,31(8):153-157.
[7]賈云得.機(jī)器視覺[M].北京:科學(xué)出版社,2000:235-240.
[8]Lucas B,Kanade T.Iterative Image Registration Technique with an Application to Stereo Vision[C]//Proc of the 7th International Joint Conference on Artificial Intelligence.1981(2):674-679.
[9]趙文彬,張艷寧.角點(diǎn)檢測(cè)技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用研究,2006,23(10):17-19.