湯 泉
(上海出版印刷高等專科學(xué)校,上海 200093)
?
基于AdaBoost和Camshift的人臉檢測(cè)與跟蹤
湯 泉
(上海出版印刷高等??茖W(xué)校,上海 200093)
為提高視頻序列中人臉跟蹤的準(zhǔn)確性,提出了一種使用Camshift算法,結(jié)合人臉檢測(cè)實(shí)現(xiàn)實(shí)時(shí)、自動(dòng)的人臉跟蹤方法。利用圖像的Haar特征,結(jié)合AdaBoost算法訓(xùn)練得到人臉分類器,進(jìn)行人臉的檢測(cè)來初始化人臉跟蹤窗口;利用Camshift算法對(duì)人臉進(jìn)行跟蹤,并在跟蹤過程中引入距離約束條件,使跟蹤的結(jié)果更加穩(wěn)定。實(shí)驗(yàn)結(jié)果表明,該方法能夠?qū)σ曨l幀中出現(xiàn)的人臉實(shí)現(xiàn)自動(dòng)跟蹤,有效地改善了傳統(tǒng)Camshift跟蹤方法中窗口發(fā)散、跟蹤丟失的問題。
人臉檢測(cè);人臉跟蹤;Camshift;AdaBoost算法
人臉跟蹤廣泛應(yīng)用于視頻分析、客流量統(tǒng)計(jì)等領(lǐng)域,是當(dāng)前研究領(lǐng)域的熱點(diǎn)。人臉跟蹤的過程中,通常會(huì)涉及到人臉檢測(cè);人臉檢測(cè)問題最初來源人臉識(shí)別[1],是在圖像中進(jìn)行人臉位置和大小確定的過程。20世紀(jì)90年代以來,人臉檢測(cè)得到了眾多研究者的重視,常見的有基于模板匹配[2]、基于輪廓分布特征[3]、基于膚色模型[4]等基于知識(shí)的方法;基于特征空間[5]、基于人工神經(jīng)網(wǎng)絡(luò)[6]等基于統(tǒng)計(jì)的方法。但大多數(shù)人臉檢測(cè)方法對(duì)遮擋、尺度變化、表情變化過于敏感,對(duì)圖像旋轉(zhuǎn)的魯棒性不強(qiáng)。本文利用圖像的Haar特征,使用AdaBoost的算法[7]構(gòu)建人臉分類器,能夠有效的在檢出率和正確率之間做出平衡,而且速度能夠滿足實(shí)時(shí)性的要求。
人臉跟蹤是在圖像序列中確定人臉的運(yùn)動(dòng)軌跡的過程[8]。跟蹤算法是計(jì)算機(jī)視覺研究領(lǐng)域的熱點(diǎn)問題,常見的人臉跟蹤方法有幀間差分、背景建模、光流等基于運(yùn)動(dòng)的方法[10];時(shí)空梯度、卡爾曼濾波等基于模型方法[11]。
人臉跟蹤的難點(diǎn)主要包括人臉?biāo)幈尘皬?fù)雜、人臉姿態(tài)變化、人臉表情變化等,容易造成目標(biāo)丟失現(xiàn)象的發(fā)生。文獻(xiàn)[12]中的粒子濾波方法能夠在連續(xù)的圖像序列中得到良好的跟蹤效果,對(duì)表情的變化魯棒性較強(qiáng),但算法的復(fù)雜度過高,不能滿足實(shí)時(shí)性處理的要求。Camshift算法以Meanshift算法為基礎(chǔ)[13],利用顏色直方圖模型在初始化搜索窗口的基礎(chǔ)上[13],采用迭代的方法實(shí)現(xiàn)窗口的位置和大小的自適應(yīng)改變,能夠較好地適應(yīng)人臉的遠(yuǎn)近變化,同時(shí)具有較高的效率能夠滿足實(shí)時(shí)性的要求。
本文提出對(duì)原始視頻幀進(jìn)行人臉檢測(cè),利用檢測(cè)得到的人臉位置初始化跟蹤窗口,在跟蹤的過程采用距離條件約束,進(jìn)一步提高跟蹤效率和可靠性。對(duì)新的一幀,利用跟蹤到的窗口作為掩模進(jìn)行處理得到新的圖像,在此圖像中進(jìn)行人臉檢測(cè),判斷是否有新的人臉目標(biāo)進(jìn)入跟蹤區(qū)域。實(shí)驗(yàn)表明此方法能夠有效對(duì)人臉進(jìn)行跟蹤,可應(yīng)用于客流量統(tǒng)計(jì)、智能視頻監(jiān)控分析等領(lǐng)域。
1.1 圖像Haar特征的選取
在連續(xù)視頻序列或者靜態(tài)圖像進(jìn)行人臉檢測(cè),圖像特征的選取對(duì)檢測(cè)的快速性和準(zhǔn)確性有著重要的作用。使用圖像Haar特征結(jié)合積分圖計(jì)算在人臉檢測(cè)的應(yīng)用中表現(xiàn)出了高效性。
Haar特征表現(xiàn)的是圖像灰度的變化,在人臉檢測(cè)中具體表現(xiàn)為臉部關(guān)鍵位置的灰度變化。Haar特征采用矩形模板方式進(jìn)行描述,常見的矩形模板由兩個(gè)全等的矩形組成,特征值定義為白色矩形像素和,減掉黑色矩形像素和。Harr特征能夠有效的描述邊緣、線段等有效信息,包含了大量比單純像素更有效的信息,在噪聲、光照等因素干擾下表現(xiàn)出了較好的魯棒性。
Haar特征模板在圖像中采用掃描的方式在圖像中移動(dòng),其中檢測(cè)窗口的大小和位置可變,所以可在圖像子窗口中獲得大量的特征。Haar特征在人臉圖像中的具體表現(xiàn)如圖1所示,得到人臉關(guān)鍵點(diǎn)位置周圍的相關(guān)信息。
圖1 Haar特征在人臉圖像上的表現(xiàn)
由于檢測(cè)窗口的位置、大小和類型都可變化,一幅圖像中表現(xiàn)出的Haar特征數(shù)目的量級(jí)非常大,為了能夠進(jìn)行快速的計(jì)算,采用積分圖的方法,大幅提高了特征的計(jì)算速度。用圖像g來表示圖像f的積分圖,其在(x,y)處的值定義為g(x,y)
(1)
每一行的像素累加值為s(x,y),設(shè)置其初值是s(x,-1)和g(x,y)的初值g(-1,y),那么由式(2)和式(3)可以計(jì)算積分圖像的值
s(x,y)=s(x,y-1)+f(x,y)
(2)
g(x,y)=g(x-1,y)+s(x,y)
(3)
積分圖像如圖2所示,將圖像進(jìn)行分塊操作,可計(jì)算分塊矩形區(qū)域內(nèi)的像素點(diǎn)之和,之后就能快速進(jìn)行Haar特征的計(jì)算。例如,獲得點(diǎn)1的值即為A區(qū)域內(nèi)像素值之和,B區(qū)域的像素之和為2點(diǎn)的值減去1點(diǎn)的值(2-1),同理D區(qū)域的像素值之和為4點(diǎn)減去2點(diǎn)的值,再減去3點(diǎn)(4-2-3)。通過以上方法快速得到區(qū)域像素值之和,Haar特征的特征便能得到,如AB組成的Haar特征模板的值即為2點(diǎn)的值減去1點(diǎn)的值得B區(qū)域像素點(diǎn)之和,然后再減去1點(diǎn)的值。
圖2 積分圖像
在基本Haar特征的基礎(chǔ)上,檢測(cè)器模板進(jìn)行了擴(kuò)展,形成了邊緣特征、線狀特征、中心環(huán)繞特征、對(duì)角線特征共15種類型,如圖3所示,擴(kuò)展后的特征在人臉檢測(cè)方面表現(xiàn)出了更加優(yōu)秀的性能。
圖3 擴(kuò)展后的Haar特征
1.2 AdaBoost分類器的設(shè)計(jì)
通過以上步驟得到圖像的Haar特征,為檢測(cè)到人臉區(qū)域還需要設(shè)計(jì)一個(gè)分類器,本文中采用AdaBoost算法通過分類器的級(jí)聯(lián)得到一個(gè)強(qiáng)分類器。
AdaBoost的本質(zhì)是一種可以自動(dòng)調(diào)整的迭代算法,通過構(gòu)造的弱分類器加權(quán)投票的方式生成強(qiáng)分類器,再將得到的強(qiáng)分類器用串聯(lián)的方式形成層疊結(jié)構(gòu)的分類器,能夠得到較快的檢測(cè)速度。主要流程可以如下描述:考慮一個(gè)樣本集
{x1,y1},{x2,y2},…,{xi,yi},…,{xn,yn}
其中xi∈X,yi∈Y={-1,+1},設(shè)樣本數(shù)為N。第一步進(jìn)行權(quán)重初始化D1,i=1/N,然后進(jìn)行T次循環(huán)操作,進(jìn)行權(quán)值的標(biāo)準(zhǔn)化處理。對(duì)于選取的特征j,與它相應(yīng)的弱分類器是hj,可得到加權(quán)誤差值εt。選擇最小方差,此時(shí)對(duì)應(yīng)的分類器為ht。接下來進(jìn)行權(quán)值的更新操作,得到強(qiáng)分類器H(x)如式(4)所示,其中,at是ht的權(quán)值;εt代表訓(xùn)練誤差
(4)
為了能夠在檢出率和正確率中做出有效的平衡,將得到的多個(gè)強(qiáng)分類器進(jìn)行級(jí)聯(lián),構(gòu)成一個(gè)層疊結(jié)構(gòu)的分類器。前級(jí)分類器能夠讓幾乎所有的正樣本通過,同時(shí)也能判定出相當(dāng)數(shù)量的負(fù)樣本,當(dāng)樣本被判定為負(fù)樣本時(shí)不再進(jìn)入后一級(jí)的分類器,所以后級(jí)分類器要檢測(cè)的樣本數(shù)量是遞減關(guān)系,因此既能保證一定的檢測(cè)速度要求,也能滿足對(duì)最后檢測(cè)精度的要求。
通過以上步驟構(gòu)建的人臉檢測(cè)器能夠在正確率和檢出率方面能夠達(dá)到系統(tǒng)要求,同時(shí)對(duì)人臉出現(xiàn)的旋轉(zhuǎn)也有一定的適應(yīng)性。
2.1 Camshift算法
Camshift跟蹤算法的基本思想是在圖像序列中使用顏色特征對(duì)移動(dòng)目標(biāo)的大小和位置進(jìn)行確定。它以Meanshift算法為基礎(chǔ),通過圖像的顏色概率直方圖得到其顏色概率分布,使用迭代的思想自適應(yīng)動(dòng)態(tài)調(diào)整搜索窗口的位置和大小[14],能夠較好的適應(yīng)跟蹤目標(biāo)形變帶來的影響。
為減小光照的影響,將RGB顏色空間轉(zhuǎn)化到HSV顏色空間,計(jì)算得到H通道的直方圖,對(duì)其做反向投影得到概率分布圖[15]。選中一個(gè)窗口作為初始化搜索窗口,窗口包含了需要跟蹤的目標(biāo)。按照Meanshift算法的方式計(jì)算搜索窗口的范圍內(nèi)的零階矩陣和一階矩陣,通過按照式(7)的計(jì)算方式能夠得到窗口的質(zhì)心位置。接下來將窗口的中心移動(dòng)到計(jì)算得到的質(zhì)心位置,采用迭代的方式,繼續(xù)計(jì)算此時(shí)搜索窗口的質(zhì)心位置直到窗口中心與計(jì)算得到的質(zhì)心之間的差值滿足設(shè)定的閾值,迭代結(jié)束
(5)
(6)
(7)
為更好的適應(yīng)目標(biāo)的旋轉(zhuǎn)和形變,在人臉跟蹤過程中使用橢圓模板進(jìn)行匹配,由二階矩通過式(8)可以計(jì)算得到長(zhǎng)軸的方向角θ。
(8)
其中,M20,M02和M11為二階矩。
2.2 距離條件約束
人臉目標(biāo)在視頻序列中尤其是對(duì)大場(chǎng)景進(jìn)行監(jiān)控時(shí),人臉圖像表現(xiàn)為一個(gè)較小的圖像區(qū)域,在連續(xù)幀中的運(yùn)動(dòng)也表現(xiàn)為在一定范圍內(nèi)的移動(dòng)。所以通過設(shè)定一個(gè)距離閾值來對(duì)跟蹤的可靠性進(jìn)行約束,有效的應(yīng)對(duì)傳統(tǒng)跟蹤算法中跟蹤窗口發(fā)散問題。
如圖4所示,對(duì)于當(dāng)前幀中的一個(gè)目標(biāo)A,可以通過前一幀與當(dāng)前幀的目標(biāo)的位置關(guān)系得到一個(gè)運(yùn)動(dòng)速度v和角度θ的估計(jì)值,進(jìn)而可以預(yù)估下一幀中目標(biāo)的位置為B。
圖4 距離約束模型
對(duì)于當(dāng)前幀中的目標(biāo)A計(jì)算得到中心為dA,通過預(yù)估計(jì)得到下一幀中目標(biāo)位置B的中心為dB。則采用式(9)對(duì)跟蹤得到的中心點(diǎn)dr進(jìn)行約束,滿足條件時(shí)才認(rèn)為是可靠、穩(wěn)定的跟蹤目標(biāo)
|dA-dr|≤|dA-dB|+d
(9)
其中,|dA-dr|為dA與dr之間的歐氏距離;|dA-dB|為dA與dB之間的歐式距離;d為設(shè)定的距離閾值。
為了驗(yàn)證算法的可行性,使用VS2013結(jié)合Opencv(Open Source Computer Vision Library)開源視覺庫,在MFC框架下構(gòu)建了實(shí)驗(yàn)平臺(tái)。
該實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了視頻文件的讀取,可以對(duì)本地視頻文件進(jìn)行人臉檢測(cè)跟蹤;同時(shí)實(shí)現(xiàn)了對(duì)實(shí)時(shí)USB攝像頭獲取,選擇相應(yīng)的攝像頭源,可以直接獲取視頻流進(jìn)行人臉檢測(cè)跟蹤。圖5為人臉檢測(cè)的效果圖,圖6為是對(duì)人臉檢測(cè)后,自動(dòng)跟蹤的效果,具有較高的可靠性,同時(shí)橢圓跟蹤模板對(duì)人臉具有較好的適用性。
圖5 人臉檢測(cè)
圖6 人臉跟蹤
表1給出了本文算法在Windows8操作系統(tǒng)中,采用Intel Corei3(2.1GHz)CPU條件下,對(duì)不同分辨率共600幀圖像的跟蹤耗時(shí)和誤跟蹤率,可以看出跟蹤算法具有良好的實(shí)時(shí)性,且穩(wěn)定性較高。隨著圖像分辨率變高,跟蹤耗時(shí)沒有出現(xiàn)過快的增長(zhǎng),并且誤跟蹤有所降低,所以此方法適合較大場(chǎng)景中的人臉跟蹤。
表1 跟蹤性能分析
本文介紹了使用圖像Haar特征結(jié)合Adaboost算法進(jìn)行人臉檢測(cè)的方法,在檢測(cè)到人臉的基礎(chǔ)上,使用Camshift算法對(duì)人臉區(qū)域進(jìn)行跟蹤,并在跟蹤的過程中引入距離條件約束。實(shí)現(xiàn)了對(duì)出現(xiàn)在視頻幀中的人臉進(jìn)行自動(dòng)檢測(cè)、跟蹤,并且有效提高了跟蹤的可靠性。能夠滿足視頻監(jiān)控系統(tǒng)中,對(duì)人臉進(jìn)行實(shí)時(shí)跟蹤的需要。
[1] 梁路宏,艾海舟,徐光佑,等.人臉檢測(cè)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2002,25(5):449-458.
[2] Brunelli R,Poggio T.Facerecognition: features versus templates[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1993,15(10):1042-1052.
[3] Yang G Z,Huang T S.Human face detection in a complex background[J].Pattern Recognition,1994,27(1):53-63.
[4] Lee C H,Kim J S,Park K H.Automatichuman face location in a complex background using motion and color information[J].PatternRecognition,1996,29(11):1877-1889.
[5] Turk M,Pentland A.Eigenfaces for recognition[J].Cognitive Neuroscience,1991,3(1):71-86.
[6] Juell P,Marsh R A.Hierarchicalneural network for human face detection[J].Pattern Recognition,1996,29(5):781-787.
[7] 黃琛,丁曉青.一種魯棒高效的人臉特征點(diǎn)跟蹤方法[J].自動(dòng)化學(xué)報(bào),2012,38(5):788-796.
[8] 何煒.自適應(yīng)運(yùn)動(dòng)目標(biāo)檢測(cè)和跟蹤技術(shù)研[D].昆明:云南大學(xué),2011.
[9] 周杰,盧春雨,張長(zhǎng)水,等.人臉自動(dòng)識(shí)別方法綜述[J].電子學(xué)報(bào),2000,28(4):102-106.
[10] Hager G D,Belhumeur P N.Efficientregion tracking with parametric models of geometry and illumination[J].IEEE Transactions on PAMI,1998(20):1025-1039.
[11] Ong E J,Bowden R.Robust facial feature tracking using shape constrained multiresolution selected liner predictors[J].IEEE Transactions on PAMI,2011(33):1-16.
[12] Wu Xian,Li Hong,Lai Jianhuang.A framework of face tracking with classification using CAM Shift-C and LBP [C].Shanghai:Fifth International Conference on Image and Graphics,2009.
[13] 張宏志,張金換.基于Camshift的目標(biāo)跟蹤算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(11):2012-2014.
[14] 鄔大鵬,程衛(wèi)平,于盛林.基于幀間差分和運(yùn)動(dòng)估計(jì)的Camshift目標(biāo)跟蹤算法[J].光電工程,2010,37(1):55-60.
[15] 王亮亮,孫即祥.基于人臉檢測(cè)和CAMSHIFT算法的人臉跟蹤系統(tǒng)[J].微計(jì)算機(jī)應(yīng)用,2008,29(2):14-17.
Face Detection,Tracking Based on AdaBoost and Camshift
TANG Quan
(Shanghai Publishing and Printing College, Shanghai 200093, China)
This paper proposes a method based on Camshiftand face detection,to achieve a real-time, automatic tracking system for human face. The algorithm uses the Haar feature and AdaBoost to train a classification for face detection which used to initialize the tracking window. Face tracking will be done based on Camshift algorithm, and distance constrains is also used to make sure the tracking result is stable. Experiments show that the method in the paper is more effective than traditional facetracking ways based on Camshift.
face detection; face tracking; Camshift; AdaBoost
10.16180/j.cnki.issn1007-7820.2016.12.046
2016- 06- 05
湯泉(1988-),女,碩士研究生,助教。研究方向:圖像處理。
TP391.41
A
1007-7820(2016)12-166-04