摘 要: 研究了人臉識別系統(tǒng)?;跀M人機器人人臉識別系統(tǒng)的工作流程,對人臉識別系統(tǒng)中人臉檢測階段所采用的Adaboost算法、人臉跟蹤階段采用的Camshift算法,以及人臉識別階段所使用的PCA算法進行了探討。采用了這些經(jīng)典的算法后,該系統(tǒng)具有較高的識別率和系統(tǒng)性能。
關鍵詞: 擬人機器人; 人臉檢測; 人臉跟蹤; 人臉識別
中圖分類號:TP319 文獻標志碼:A 文章編號:1006-8228(2012)12-14-02
Research on face recognition system of humanoid robot
Liu Renping, Han Xianfeng, Fang Yinglan, Hou Ruizhen
(North China of Technology, Beijing 100144, China)
Abstract: Face recognition system is studied in this paper. Based on the workflow of face recognition system of humanoid robot, the Adaboost algorithm for face detection, Camshift algorithm for face tracking and PCA algorithm used in this face recognition system are discussed in detail. After applying these classical algorithms, it produces a higher recognition rate and good system performance.
Key words: humanoid robot; face detection; face tracking; face recognition
0 引言
人臉識別是指根據(jù)人臉所特有的特征信息進行人物身份識別的一種技術,是近些年來生物特征識別領域最活躍的研究熱點之一。一個完整的人臉識別系統(tǒng)包括圖像采集、人臉檢測、人臉跟蹤、圖像預處理、特征提取以及身份識別等模塊,因此人臉識別是一門涉及計算機技術、圖像處理、機器視覺、模式識別、人工智能以及生物學的綜合性學科。
本文將要介紹的擬人機器人人臉識別系統(tǒng)的研究,正是致力于實現(xiàn)一個完整的適合擬人機器人的人臉識別系統(tǒng),使其具有更好的交互能力和擬人效果。這對于擬人機器人的研究以及應用領域具有重要的現(xiàn)實意義。
1 擬人機器人人臉識別工作流程
擬人機器人人臉識別的工作流程如圖1所示,主要有訓練學習和人臉檢測跟蹤識別兩個階段組成。在人臉檢測跟蹤識別階段,位于機器人頭部的攝像頭不停地采集進入其視野范圍內(nèi)的視頻幀,并實時地進行人臉檢測,如果其視野范圍內(nèi)一旦出現(xiàn)了人臉目標則立刻對該人臉目標進行實時跟蹤,在跟蹤的過程中系統(tǒng)會自動獲取帶有人臉的視頻幀。接下來系統(tǒng)會對該視頻幀進行圖像預處理、特征提取等一系列操作,將待識別的圖像特征與“人臉庫”中的特征進行對比,觸發(fā)擬人機器人的語音模塊,將識別結(jié)果進行簡單的語音輸出。而這個階段使用的人臉庫是在訓練學習階段,對事先采集好的待識別的目標人物在不同環(huán)境下以及不同表情姿態(tài)(正面,微側(cè))的圖片進行處理形成的人臉特征庫。
[機器人頭部][開始][攝像機][獲取視頻流][人臉檢測] [人臉跟蹤] [失敗][失敗][成功][人臉檢測][成功][預處理][人臉識別][目標人臉特征數(shù)據(jù)][特征提取][人臉訓練集][人臉檢測][預處理][特征提取][識別結(jié)果語音輸出][結(jié)束]
圖1 擬人機器人人臉識別系統(tǒng)框架
2 人臉檢測、跟蹤和識別的實現(xiàn)
人臉檢測、人臉跟蹤和人臉識別是人臉識別系統(tǒng)當中比較關鍵的步驟,所選擇算法的好壞直接影響著整個系統(tǒng)的性能。
2.1 人臉檢測
如何實時準確地從視頻流或者圖片中檢測出人臉,如何對存在的人臉進行定位并將其從背景圖像中分離出來是人臉檢測過程中最關鍵的問題。人臉檢測對整個人臉識別系統(tǒng)具有重要的意義。本文主要采用實時性好、檢測率高的Adaboost算法。該算法對近景遠景當中的、復雜背景中的各種表情和姿態(tài)(正面,微側(cè))的單個人臉或者多個人臉具有比較準確的檢測效果[1]。
Adaboost算法的基本思想是對不同的訓練集訓練同一個弱分類器,然后將這些弱分類器按一定的權(quán)值累加起來,得到一個分類能力很強的強分類器[2]。Adaboost算法的具體步驟如下。
設給定的一個訓練集合S={(xi,yi)|i=1,2,…,n},xi∈X,yi∈Y其中,X是樣本描述,Y是樣本表示,yi∈(0,1),1表示正例樣本,0表示負例樣本。在人臉檢測中,1表示人臉,0表示非人臉。
⑴ 將訓練樣本權(quán)重(訓練樣本的初始概率分布)初始化。Wt,i=1/2L,L為人臉樣本總數(shù)。Wt,i=1/2M,M為非人臉樣本總數(shù)。Wt,i為第t次循環(huán)第i個樣本的誤差權(quán)重。
⑵ For t=1 to T do(T為弱分類器的個數(shù))
⑶ 對權(quán)重進行歸一化:
⑷ 對每個特征f,訓練一個弱分類器h(x,f,p,θ),計算弱分類器的加權(quán)錯誤率:
⑸ 按照錯誤率選擇最佳的弱分類器(最小錯誤率):
⑹ 根據(jù)選擇的最佳的弱分類器更新樣本權(quán)重:
其中,,ei=0表示xi被正確分類,ei=1表示xi被錯誤分類。
⑺ 對經(jīng)過T次循環(huán)得到的T個弱分類器按更新的權(quán)重疊加得到強分類器:
其中,。
本系統(tǒng)正是利用Adaboost算法較好的檢測能力以及較強的魯棒性,來提高系統(tǒng)的檢測性能,提高檢測準確率和實時性。
2.2 人臉跟蹤
當利用Adaboost算法從視頻流中檢測出人臉目標之后,系統(tǒng)會立刻對視頻流當中的人臉目標進行跟蹤。目前常用的人臉跟蹤方法有基于特征匹配的跟蹤,基于區(qū)域匹配的跟蹤以及基于模型匹配的跟蹤[3]。對于本系統(tǒng)而言,實時性是最基本的要求。多人臉跟蹤的實現(xiàn)是需要解決的一個關鍵問題。經(jīng)過實驗分析對比,本系統(tǒng)選擇了時效性較好、魯棒性較強的Camshift算法,該算法能夠快速地對運動目標進行跟蹤,對于一些遮擋的場景也具有較好的跟蹤效果。
Camshift算法的基本思想是對視頻流當中的每一幀作MeanShift運算,將上一幀的運算結(jié)果,作為其后一幀進行MeanShift運算的搜索窗的初始值,如此迭代下去實現(xiàn)對目標的跟蹤。
MeanShift算法具體步驟如下。
⑴ 選擇搜索框,即初始化跟蹤窗口的位置和大小。
⑵ 計算搜索窗的質(zhì)心:
xc=M10/M00;yc=M01/M00 ⑹
其中(搜索窗的零階矩),;(x,y的一階矩),I(x,y)為(x,y)的像素值,x,y的取值范圍決定搜索窗的大小。
⑶ 調(diào)整搜索窗的大小,移動其中心到質(zhì)心。
寬度為:;長度為1.2s
⑷ 重復上述⑵⑶步驟,直至中心與質(zhì)心的移動距離小于預定的閾值,或者超出循環(huán)次數(shù),停止計算。
Camshift算法的實質(zhì)是對MeanShift算法的改進,將MeanShift算法應用于連續(xù)的圖像序列當中。因此Camshift算法的流程如下:
⑴ 初始化搜索窗口;
⑵ 計算窗口區(qū)域的2D機率分布;
⑶ 用MeanShift算法來收斂跟蹤的區(qū)域,獲得搜索窗新的位置和大?。?/p>
⑷ 把第⑶步得到的結(jié)果作為下一幀的初始值,跳轉(zhuǎn)到第⑵步繼續(xù)執(zhí)行。
使用以上介紹的Camshift算法可以較好地實現(xiàn)單人臉跟蹤。而為了實現(xiàn)多人臉的跟蹤,本系統(tǒng)采用的方法是為每一個人臉目標分配一個Camshift跟蹤器[4]。具體方法是為在人臉檢測階段檢測出來的每一個人臉目標區(qū)域初始化一個Camshift跟蹤器窗口;然后利用為每一個人臉目標分配的跟蹤器對相應的搜索窗口進行實時跟蹤,并將跟蹤的結(jié)果進行保存,用于后續(xù)繼續(xù)跟蹤。實驗表明,本系統(tǒng)采用的這種多人臉跟蹤策略能夠很好地實現(xiàn)多人臉的跟蹤,具有較好的跟蹤效果和時效性。
2.3 人臉識別
本系統(tǒng)在人臉識別階段采用了識別性能較好的PCA算法[5],即主成分分析算法。該算法在特征提取以及降維方面有著明顯的優(yōu)勢,是人臉識別領域當中最為經(jīng)典的算法。PCA算法的基本思想是利用K-L變化獲取人臉的主成分信息,構(gòu)成特征臉空間,在識別的時候?qū)⒋R別的圖像在特征臉空間上進行投影,得到一組投影系數(shù),通過與各個人臉圖片進行比較來進行識別。PCA算法在本人臉識別系統(tǒng)當中進行人臉識別主要是由訓練和識別階段組成。
在訓練階段,步驟如下。
⑴ 訓練樣本矩陣為x=(x1,x2,…,xn)T,n為訓練的樣本數(shù)。
⑵ 計算出所有訓練圖片的平均臉。
⑺
⑶ 計算出每一張人臉與第⑵步計算出來的平均臉之差。
⑻
⑷ 構(gòu)建協(xié)方差矩陣。
⑼
⑸ 求協(xié)方差矩陣的特征值和特征向量,形成“特征臉”空間。
w=(u1,u2,…,up) (10)
其中,p為訓練樣本前p個特征向量集。
⑹ 將第⑶步計算出來的差值投影到第⑸步得到的“特征臉”空間上。
(11)
在識別階段步驟如下。
⑴ 將待識別的人臉圖像與上面計算的平均臉的差值投影都特征空間中。
⑵ 定義一個閾值。
⑶ 計算第⑴步得到ΩΓ與每個人臉的距離。
⑷ 計算原始圖像與重建的圖像之間的距離,用于區(qū)分是否為人臉。
其中,。
人臉分類的規(guī)則如下。
⑴ 若ε≥θ,結(jié)果不為人臉圖像。
⑵ 若ε<θ,且ε<θ,且?i,εi≥θ結(jié)果是圖像中的人臉未知。
⑶ 若ε<θ,且?i,εi<θ,結(jié)果是人臉為人臉庫中的人臉。
PCA算法的識別率高,識別速度快的優(yōu)點使得本系統(tǒng)達到了一個較高的人臉識別性能效果。
3 結(jié)束語
本文主要對擬人機器人人臉識別系統(tǒng)中所采用的經(jīng)典的人臉檢測、人臉跟跟蹤以及人臉識別算法進行了研究和分析。實驗表明,本擬人機器人人臉識別系統(tǒng)可以對其視野范圍內(nèi)的單個或者多個人臉進行實時檢測、跟蹤和識別,具有較強的魯棒性和較高的識別率,具有很好的應用前景。但是這些算法本身還存在著各自的不足和限制,如何改進它們以彌補這些不足,使系統(tǒng)能夠達到更好的性能,是需要我們進一步研究和探討的課題。
參考文獻:
[1] 類紅樂,魏忠恒,彭延軍.人臉識別機器人的設計與實現(xiàn)[J].電腦知識
與技術,2011.31.
[2] 郭玉珂,張松敏,高翔.AdaBoost人臉檢測算法研究[J].計算機與網(wǎng)絡,
2010.
[3] 雷靜.基于OpenCV的人臉跟蹤識別系統(tǒng)設計[D].西安電子科技大
學,2010.
[4] 張濤,蔡燦輝.一種快速多人臉跟蹤算法[J].視頻應用與工程,2009.2.
[5] 尹飛,馮大政.基于PCA算法的人臉識別[J].計算機技術與發(fā)展,
2008.10.