張江鑫,陳 林,吳佳穎(浙江工業大學 信息工程學院,浙江 杭州 310023)
一種基于Camshift聚類的粒子濾波人臉跟蹤算法
張江鑫,陳 林,吳佳穎
(浙江工業大學 信息工程學院,浙江 杭州 310023)
針對Camshift算法無法處理相似背景顏色干擾、背景復雜和傳統粒子濾波人臉跟蹤算法中的粒子退化、計算量大等問題,提出了一種基于Camshift聚類的粒子濾波人臉跟蹤算法.在粒子濾波框架下,將Camshift算法中的聚類方法引入人臉狀態估計中,使每個粒子沿著梯度最大方向迭代至局部密度最大值區域,讓所有粒子移動到與人臉顏色相似的區域.實驗結果表明:該算法用較少的粒子實現了人臉曲線無規則運動的跟蹤,在光照和遮擋問題上有較好的魯棒性.該算法性能明顯優于傳統的粒子濾波人臉跟蹤算法,用于實現人臉跟蹤具有很好的實時性、魯棒性和有效性.
Camshift;粒子濾波;聚類;人臉跟蹤
人臉跟蹤作為運動分析的關鍵技術之一,已受到國內外的科研機構和眾多學者的廣泛關注.Camshift算法和粒子濾波算法是目前常見的兩種人臉跟蹤算法.Camshift算法是通過人臉膚色信息顏色直方圖的均值漂移[1]實現人臉跟蹤,但有相似背景干擾時會跟蹤失敗.Isard[2]最早將粒子濾波引入目標跟蹤中,解決了卡爾曼濾波無法進行非線性[3]非高斯人臉運動的狀態預測問題,但易出現粒子退化.很多學者將Camshift算法和粒子濾波算法結合起來:吳天瑞等[4]提出將膚色色度信息融合于粒子濾波技術中,杜云明等[5]提出基于HSV膚色及空間特征的粒子濾波人臉跟蹤算法.但這些算法僅僅使用單一膚色特征,無法實現復雜多變場景中的人臉跟蹤,所以也有學者在粒子濾波框架中融合多特征信息.田卉等[6]將加權顏色直方圖和旋轉復合小波融合到粒子濾波跟蹤框架中;Tian[7]提出一種結合膚色和Gabor紋理特征的粒子濾波人臉跟蹤算法.這些算法確實在人臉旋轉、背景膚色干擾和遮擋問題上有較好的魯棒性,但多特征[8-9]的加入增加了計算復雜度,也沒有解決粒子退化問題.
Camshift聚類方法[10-11]能加快目標收斂速度,筆者引入觀測信息[12],采用新的重要性密度函數[13],將Camshift聚類方法引入粒子濾波人臉狀態估計中,設計出基于Camshift聚類的粒子濾波人臉跟蹤算法,簡稱CCPF(Camshift clustering particle filter),解決了粒子退化問題,用于人臉跟蹤具有很好的實時性、魯棒性和有效性.
1.1 Camshift人臉跟蹤算法分析
Camshift人臉跟蹤算法是基于顏色直方圖的一種有效的人臉跟蹤算法,它對初始的人臉跟蹤區域進行反向投影得到顏色概率分布圖像,對其進行迭代運算使人臉區域收斂,求出搜索窗口的質心位置和零階矩陣,并用來設置下一幀人臉圖像的位置和尺寸.在人臉跟蹤過程中,人臉的運動會引起顏色概率分布圖像中顏色區域大小和位置的變化,這時Camshift人臉跟蹤算法就要在計算過程中不斷調整人臉搜索區域的大小;Camshift人臉跟蹤算法是連續自適應算法,能夠自動調節人臉搜索區域的大小和位置,并且根據當前幀搜索的結果來預測下一幀圖像中人臉區域的重心和大小.該算法跟蹤人臉比較穩定,且實時性比較好.但在人臉跟蹤過程中處理相似背景顏色干擾、背景復雜等問題時效果不好,容易導致跟蹤失敗.
1.2 粒子濾波人臉跟蹤算法分析
粒子濾波人臉跟蹤算法是一種基于蒙特卡羅的估計算法,可以求解后驗概率密度函數的最優解.通過在搜索區域以高斯模型投撒粒子,經過狀態轉移預測和重要性采樣對這些粒子進行權值更新,歸一化加權確定最佳后驗概率密度函數,確定出下一幀中人臉的最佳位置和尺寸.在權值更新過程中,傳統的粒子濾波算法是將先驗概率密度函數作為重要性密度函數,這樣做的缺陷在于粒子的選取沒有利用當前的觀測值,在多次迭代以后只有少數的粒子得到較大的權值.在后續的狀態轉移預測過程中,大量的計算浪費在權值較小的粒子上,導致大量粒子在采樣中被丟棄,加劇粒子的退化.所以需要通過重采樣緩解粒子退化,根據粒子權值的大小重新分配粒子,但這也大大增加了計算復雜度,影響了人臉狀態估計的效率.
如果能利用當前的觀測值,并采用新的重要性密度函數更新權值公式,將所有的粒子移動到人臉顏色相似的區域內,就可以實現用較少的粒子數準確地估計出后驗概率密度函數.如此就可以解決粒子退化問題,舍棄重采樣步驟,大大減少計算復雜度,提高人臉狀態估計的效率.
2.1 算法的提出
在粒子濾波人臉跟蹤算法中,粒子數的多少決定了每一幀圖像對人臉匹配運算的次數,粒子數越多,耗時越多.狀態轉移預測過程決定了下一幀粒子的散部區域,如果能將粒子集中在某一區域就可以用少數粒子準確預測人臉位置進行跟蹤.
為了用較少的粒子數目實現準確的人臉跟蹤,可以將Camshift算法中的聚類方法應用到轉移預測過程,加入當前時刻的觀測值,使建議分布函數包含最新的觀測信息,讓先驗分布函數更加準確;并采用新的重要性密度函數,摒棄傳統粒子濾波算法將先驗概率密度函數作為重要性密度函數的做法,使大多數粒子在采樣中不被丟棄,提高了粒子傳播的準確性.粒子經過聚類處理算法之后,均朝向梯度最大的方向移動,集中在真實人臉區域附近.最后進行顏色相似度比較求出似然函數,并帶入權值更新公式求出粒子的權值.迭代后的粒子大多移動到了人臉區域附近,獲得大的權值,而權值小的粒子很少,克服了粒子退化問題.
粒子經過聚類獲得的權值都很大,粒子集中在人臉區域附近,所以即使很少的粒子也能很好地反映人臉區域狀態,提高了粒子的使用效率,簡化了計算復雜度,增加了跟蹤準確性,所以該算法不需要大量的粒子就可以實現人臉跟蹤.
2.2 粒子聚類處理算法

(1)

p(xt|y1:t)=p(xt|yt,y1:t)
(2)
2)將狀態轉移預測后的粒子用Camshift算法沿著梯度最大方向迭代至局部最大值區域,粒子均移動到其附近與目標模型顏色相似的區域,得到新的粒子狀態
(3)
其中CCPF(·)為Camshift聚類的粒子濾波方程,即
(4)
式中:h為核函數窗口半徑;Xn=(xn,yn)為粒子所在區域的像素位置;g(x)為輪廓函數k(x)的負導函數.
3)引入新的重要性采樣函數
(5)
式(5)以聚類優化后的粒子新狀態為采樣中心,既考慮了粒子的狀態轉移,又考慮了目標的當前觀測.此時高斯模型的方差為σ′2,其大小取決于經聚類優化后粒子接近真實目標的概率,即σ′2越小,優化后粒子越接近真實目標.
2.3 筆者算法流程

一種基于Camshift聚類的粒子濾波人臉跟蹤算法具體流程圖如圖1所示.

圖1 筆者算法流程圖Fig.1 Flow chart of the algorithm
所有仿真結果基于Inter酷睿i5-2410m處理器,4GB內存,vs2012開發環境.采集3段實驗視頻用于以下幾組實驗,比較筆者算法和傳統粒子濾波人臉跟蹤算法的性能差異.每段視頻截取長度為200幀,每幀圖像的分辨率205×153,實驗幀率為15fps.
第1組實驗是比較兩種算法在不同粒子數下的跟蹤性能,筆者算法采用25個粒子進行實驗,傳統粒子濾波算法則采用25個粒子和50個粒子分別進行實驗.實驗視頻中人臉只進行橫向和縱向運動.第2組實驗是對第1組實驗的補充,比較兩種算法在粒子數分別為25,50個時的耗時情況,進一步體現跟蹤性能差異,實驗在MATLAB7.0上進行仿真.第3組實驗是測試兩種算法在光照變化和遮擋情況下的魯棒性,筆者算法采用25個粒子進行實驗,傳統粒子濾波算法采用50個粒子進行實驗.
3.1 不同粒子數下的跟蹤性能比較
圖2為兩種算法在不同粒子數下的跟蹤結果,實驗視頻為采集的第1段視頻,其中,藍色框體為同一時刻的粒子狀態圖,紅色區域為最終確定的人臉區域.圖2(a)為筆者算法實驗結果,圖像分別為視頻的第1,25,50幀.可以發現:通過粒子聚類使粒子沿梯度方向迭代到局部密度最大值區域,僅使用25個粒子使得所有的粒子聚集在人臉相似的區域,解決了粒子退化的問題,能夠準確地跟蹤人臉.圖2(b)為傳統粒子濾波算法實驗結果,圖像分別為視頻的第75,100,125幀.因為使用的粒子數過少,粒子隨機的狀態過于分散,即便用重采樣將粒子按權值重新分配,權值較大的粒子區域也不準確,易跟蹤失敗.圖2(c)為傳統粒子濾波算法采用50個粒子,圖像分別為視頻的第150,175,200幀,因為粒子數較多加上重采樣,基本上可以實現人臉跟蹤.但是藍色框體并沒有聚在一起,粒子的狀態為隨機狀態,即使有重采樣,這些粒子聚集效果也不好.
更進一步的不同粒子數下的跟蹤準確率見圖3,可見筆者算法明顯優于傳統跟蹤算法.隨著粒子數的增加,準確率幅度增加越快;當粒子數為180個時,準確率增長減緩,筆者算法在近200個粒子數時達到峰值為82.3%,而傳統跟蹤算法最大準確率只有55.4%.
通過實驗可以發現:筆者算法將聚類算法嵌入粒子濾波框架中,只需較少粒子就能實現準確跟蹤,大大提高跟蹤效率和準確性,較傳統粒子濾波算法性能更好.

圖2 不同粒子數跟蹤性能比較Fig.2 Comparison of tracking performance with different number of particles

圖3 不同粒子數跟蹤準確率曲線圖Fig.3 Graph with different number of the particle tracking accuracy
3.2 算法耗時比較
為了進一步說明筆者算法在人臉跟蹤性能上的優越性,對兩種算法在不同粒子數下的平均耗時進行了實驗,實驗視頻仍為采集的第1段視頻,表1為具體的實驗結果.由表1可以發現:在相同粒子數下,傳統粒子濾波算法耗時明顯大于筆者算法,因為傳統粒子濾波算法為了解決粒子退化問題,在權值更新后需要通過閾值判斷是否加入重采樣,且重采樣分配粒子耗時較長;而筆者算法通過Camshift聚類算法將所有粒子都聚集在人臉相似的區域,解決了粒子退化問題,不需要重采樣,節約了時間,同時也證明了用聚類算法迭代粒子增加的時間與傳統粒子濾波算法中的重采樣階段的時間相比要少一點,所以筆者算法在保證準確性的同時也減少了每幀圖像的處理時間,具有更好的實時性.
筆者算法也存在缺陷,在初始化人臉狀態時由于需要使用Camshift聚類聚集所有粒子于人臉區域,因此初始化單幀的耗時會高于傳統的粒子濾波人臉跟蹤算法,但后續每幀均優于傳統粒子濾波人臉跟蹤算法.
表1 不同粒子數下的粒子濾波人臉跟蹤算法的幀率實驗
Table 1 The frame rate test of particle filter face tracking algorithm with different number of particles

算法25個耗時/ms幀率/fps50個耗時/ms幀率/fps筆者算法6216.18312.0傳統算法7513.39810.2
3.3 光照和遮擋實驗
為了體現筆者算法在復雜情況下的魯棒性,筆者進行了光照和遮擋實驗.圖4為光照實驗的結果,實驗視頻為采集的第3段視頻,圖4(a,b)中的圖像均為第1,50,100幀的視頻跟蹤結果.圖4(a)為筆者算法實驗光照變化的結果,可以發現筆者算法在第50幀光線太暗的情況下依然可以實現跟蹤.圖4(b)為傳統粒子濾波算法實驗光照變化的實驗結果,在光線很暗的情況下已經無法準確跟蹤人臉.當光線較強時兩種算法都能很好的跟蹤人臉.但是當光線較差時,筆者算法能較好的實現人臉跟蹤,傳統的粒子濾波算法會出錯,可見筆者算法魯棒性更好.
圖5為進行遮擋實驗的結果,實驗視頻為采集的第4段視頻,圖5(a,b)中的圖像均為第1,50,100幀的視頻跟蹤結果.圖5(a)為筆者算法進行遮擋實驗的結果,可以發現:進行局部遮擋可以實現跟蹤,但全部遮擋無法實現跟蹤,而是選擇了與人臉相似的手部區域.圖5(b)為傳統粒子濾波人臉跟蹤算法的實驗結果,即便增加粒子數,在局部遮擋情況下確定的人臉區域準確性也差于筆者算法,當然在全部遮擋時也無法實現人臉跟蹤.當出現局部遮擋時,筆者算法較傳統的粒子濾波算法更為準確,但是當全部遮擋時,兩種算法都無法實現人臉跟蹤.
通過上述兩個實驗也證明了筆者算法在惡劣環境下的魯棒性,更加適合應用在真實的場景中.

圖4 不同粒子濾波人臉跟蹤算法光照實驗Fig.4 Illumination test of face tracking algorithm with different particle filter

圖5 不同粒子濾波人臉跟蹤算法遮擋實驗Fig.5 Occlusion test different particle filter face tracking algorithms
筆者在粒子濾波框架下提出了一種基于Camshift聚類的粒子濾波人臉跟蹤算法,通過Camshift算法迭代每個粒子,使每個粒子沿著梯度最大方向迭代至局部密度最大值區域,讓所有粒子移動到與人臉顏色相似的區域,使粒子集更好滿足狀態后驗概率密度函數.聚類以后這些粒子很好地反映了人臉狀態,因此會獲得較大的權值,而權值小的粒子則很少,很好地解決了計算量大、粒子退化等問題.通過3組實驗發現:筆者算法使用較少的粒子便能很好地反映目標狀態,相比傳統的粒子濾波算法減少了許多權值很小的粒子,提高了粒子的使用效率,減少了算法耗時;并且在人臉無規則曲線運動中實時準確跟蹤,克服了傳統粒子濾波人臉跟蹤算法只能跟蹤人臉勻速直線運動的缺點,在光照變化和遮擋情況下具有較好的魯棒性.
[1] 周芳芳,樊曉平,葉榛.均值漂移算法的研究與應用[J].控制與決策,2007,22(8):841-847.
[2] ISARD M, BLAKE A. Visual tracking by stochastic propagation of conditional density[C]//International Journal of Computer Vision. Proceedings of 4thEuropean Conference Computer Vision. Cambridge: International Journal of Computer Vision,1996:343-356.
[3] 張美玉,侯向輝,任煒彬,等.基于非線性最小乘的人臉姿態估計算法[J].浙江工業大學學報,2016,44(1):34-38.
[4] 吳天瑞,鄒月嫻,王巍.基于膚色信息的粒子濾波人臉跟蹤技術[C]//北京圖象圖形學學會.第三屆圖像圖形技術與應用學術會議論文集.北京:北京圖象圖形學學會,2008:68-73.
[5] 杜云明,劉啟生,邵東偉,等.基于膚色特征的粒子濾波人臉跟蹤算法[C]//中國體視學學會.第十二屆中國體視學與圖像分析學術會議論文集.北京:中國體視學學會,2008:32-37.
[6] 田卉,沈庭芝,趙三元,等.綜合顏色和紋理特征的粒子濾波人臉跟蹤算法[J].北京理工大學學報,2010,30(4):469-473.
[7]TIANT.基于膚色和Gabor紋理的粒子濾波人臉跟蹤[J].計算機工程,2014,40(7):123-127.
[8] 鄭博,毛劍飛,梁榮華.基于紋理權重的AAM人臉特征點檢測方法[J].浙江工業大學學報,2012,40(6):661-665.
[9] 繆永偉,王洪軍,壽華好.一種環形特征線的快速提取方法[J].浙江工業大學學報,2013,41(5):529-533.
[10] 初紅霞.基于均值移動和粒子濾波的人臉跟蹤關鍵技術研究[D].哈爾濱:哈爾濱工程大學,2012.
[11] 劉玄.基于粒子濾波的視頻人臉跟蹤算法研究[D].西安:西安電子科技大學,2013.
[12] 高建坡,楊浩,安國成,等.基于均值移動重要性采樣的粒子濾波人臉跟蹤算法[J].東南大學學報(英文版),2007,23(2):196-201.
[13] 王兆光,王敬東,李鵬.一種Camshift優化的粒子濾波跟蹤算法[J].光電子技術,2010,30(1):58-63.
[14]COMANICIUD,RAMESHV,MEERP.Kernel-basedobjecttracking[J].IEEEtransactionsonpatternanalysis&machineintelligence,2003,25(5):564-575.
(責任編輯:朱小惠)
A particle filter algorithm for face tracking based on Camshift clustering
ZHANG Jiangxin, CHEN Lin, WU Jiaying
(College of Information Engineering, ZheJiang University of Technology, Hangzhou 310023, China)
Specific to Camshift algorithm can not handle similar background color, complex background and degradation and complicated calculation of traditional particle filter algorithm for face tracking, this paper proposes a new particle filter algorithm for face tracking based on Camshift clustering. In the framework of particle filter, clustering method in Camshift algorithm is introduced into face statement estimation. Each particle is iterated along the gradient direction to the region of maximum local density so that all particles move to the region with the same face color. Experiments show that effective face tracking of curved irregular motion is achieved with fewer particles and have better robustness in the problem of light and occlusion. The performance of the proposed algorithm is obviously better than the traditional particle filter algorithm for face tracking, which is real-time, robust and effective for face tracking.
Camshift; particle filter; clustering; face tracking
2016-05-17
浙江省級重點科技創新團隊項目(2012R10011-01)
張江鑫(1964—),男,浙江海寧人,副教授,碩士,研究方向為信息與通信工程,E-mail: zjx@zjut.edu.cn.
TP391.41
A
1006-4303(2017)02-0168-05