摘 要: 人臉識別門禁系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用,但是要求被識別人員靠近圖像采集設(shè)備,使用起來極不方便。解決此問題的關(guān)鍵是在被識別人員的正常行走過程中完成人臉識別的任務(wù),然而在人的正常行走過程中,因為角度、表情等變化,可能會導(dǎo)致人臉識別產(chǎn)生錯誤的結(jié)果。針對此問題,設(shè)計了一種結(jié)合CamShift跟蹤算法的人臉識別門禁系統(tǒng),采用人臉檢測的結(jié)果來改進(jìn)CamShift跟蹤算法,然后再利用這條CamShift跟蹤軌跡上人臉識別結(jié)果序列來修正錯誤識別。實驗結(jié)果表明該系統(tǒng)能夠完成正常行走過程中的人臉識別任務(wù),并且有更高的識別率。
關(guān)鍵詞: 人臉識別; CamShift算法; 目標(biāo)跟蹤; 門禁系統(tǒng)
中圖分類號: TN911.7?34; TP391.4 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)03?0108?04
0 引 言
門禁系統(tǒng)在公共安全、人事考勤等場合發(fā)揮著重大的作用。常被用于人員識別的生物信息包括指紋[1]、虹膜[2]、人臉[3]等,人臉信息作為人體生物信息最為直觀的描述,被廣泛應(yīng)用于各種場合的門禁系統(tǒng)中。人臉識別的一個優(yōu)勢是不需要與識別設(shè)備近距離接觸,但是現(xiàn)有的人臉識別門禁系統(tǒng)并沒有利用這一優(yōu)勢,需要被識別人員靠近采集識別設(shè)備,并且保持一定表情,導(dǎo)致使用不方便。能夠在被識別人員正常行走過程中完成人臉識別并且識別性能可靠的門禁系統(tǒng)將能適應(yīng)更多的應(yīng)用場景,此系統(tǒng)只需要被識別人員在行走過程中稍微配合即可自動準(zhǔn)確地對其進(jìn)行人臉檢測和識別,然后做出正確的響應(yīng)。
實驗表明,僅僅依靠實時地執(zhí)行人臉檢測和人臉識別算法來完成此系統(tǒng),會產(chǎn)生很多的錯誤識別情況。為了彌補(bǔ)這一缺陷,在被檢測人員運動過程中完成精確人臉識別的任務(wù),在人臉識別系統(tǒng)中加入CamShift[4]跟蹤算法,對檢測獲取的人臉進(jìn)行跟蹤,將CamShift跟蹤算法和人臉檢測識別算法進(jìn)行了有效地結(jié)合。
利用CamShift跟蹤算法對人臉進(jìn)行跟蹤時,在簡單背景下能夠取得很好的跟蹤效果,但是在復(fù)雜動態(tài)背景、光照突變等情景下,只靠CamShift算法很難取得好的跟蹤效果,本文利用人臉稀疏檢測結(jié)果修正CamShift算法,獲得了較好的跟蹤效果。
人臉檢測算法包括模板匹配模型方法,ANN模型方法[5],SVM模型方法[6],Adaboost模型方法等。模板匹配模型方法不需要訓(xùn)練,但是精度較差,速度較慢;ANN模型方法和SVM模型方法都是基于機(jī)器學(xué)習(xí)的方法,這兩種方法都可以獲得不錯的檢測精度,但是檢測速度比較慢;而文獻(xiàn)[7?8]由Viola和Jones提出的Adaboost人臉檢測算法是一種基于積分圖、級聯(lián)檢測器和Adaboost算法的人臉檢測算法,此算法不僅能獲得良好的檢測效果,而且檢測速度也基本上滿足實時的要求。
1 Adaboost人臉檢測算法
Adaboost人臉檢測算法[9]的核心是Adaboost算法。Adaboost算法是一種自適應(yīng)的Boosting算法,其基本思想就是將大量的分類能力一般的弱分類器通過一定方法疊加起來,構(gòu)成一個分類能力比較強(qiáng)的強(qiáng)分類器。該方法框架大概可以分為以下三步:
(1)使用Harr?like特征表示人臉特征,然后使用積分圖實現(xiàn)特征數(shù)值的快速計算;
(2)使用Adaboost算法選出一些最能代表人臉的矩形特征(即是弱分類器),然后按照加權(quán)投票的方式把弱分類器構(gòu)造為一個強(qiáng)分類器;
(3) 最后將訓(xùn)練得到的若干強(qiáng)分類器串聯(lián)組成一個級聯(lián)結(jié)構(gòu)的層疊分類器,級聯(lián)結(jié)構(gòu)能有效地提高分類器的檢測速度。
理論證明只要每個弱分類器器分類能力比隨機(jī)猜測要好,當(dāng)弱分類器個數(shù)趨于無窮時,強(qiáng)分類器的錯誤概率將趨于零。
2 CamShift跟蹤算法
CamShift算法是一種動態(tài)變化分布的概率密度函數(shù)梯度估計的非參數(shù)方法,顏色概率分布圖是它的一個關(guān)鍵概念。使用CamShift 對目標(biāo)進(jìn)行實時跟蹤時步驟如下:
(1)初始化搜索窗的位置和大小(可為任意值) 。
(2)尋找搜索窗的質(zhì)心。
(3)移動搜索窗,使窗的中心與質(zhì)心重合。
(4)重復(fù)步驟(2)和(3),直到收斂(窗某次的移動距離小于預(yù)設(shè)閾值) ,保存此時的零階矩和質(zhì)心值。
(5)在下一幀圖像中根據(jù)步驟(4)得到的零階矩和質(zhì)心值重新初始化搜索窗的位置和大小,再跳轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行。