摘要:人臉檢測(cè)是人臉研究中的重要部分,Adaboost算法檢測(cè)速度雖快,但錯(cuò)檢率和重復(fù)檢測(cè)率仍比較高。本文提出了一種Adaboost算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合來進(jìn)行人臉檢測(cè)的方法,并通過實(shí)驗(yàn)表明該方法在原有Adaboost算法的基礎(chǔ)上,降低了錯(cuò)檢和重復(fù)檢測(cè)率,提高了正負(fù)樣本判斷正確的概率。
關(guān)鍵詞:人臉檢測(cè);Adaboost算法;神經(jīng)網(wǎng)絡(luò);樣本擴(kuò)張
中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 17-0000-02
0 引言
本文采用樣本擴(kuò)張策略使得樣本信息可以更全面的覆蓋人臉和非人臉信息,克服了原有算法在樣本選擇上的隨機(jī)性,加強(qiáng)了訓(xùn)練樣本的代表性,再利用Adaboost算法與神經(jīng)網(wǎng)絡(luò)串聯(lián)對(duì)人臉進(jìn)行檢測(cè),從而降低了原有算法對(duì)人臉檢測(cè)的錯(cuò)檢和重復(fù)檢測(cè)率。
1 Adaboost算法的人臉檢測(cè)
1.1 Adaboost算法原理
Adaboost是一種迭代算法,其算法思想簡(jiǎn)單說就是把一組弱分類器通過多次迭代,調(diào)整正負(fù)樣本的權(quán)重,并把這些弱分類器按一定權(quán)重累加起來,最終得到所期望的強(qiáng)分類器。利用這個(gè)強(qiáng)分類器就可以對(duì)圖像進(jìn)行人臉檢測(cè)了。
具體算法:
每個(gè)樣本都賦予一個(gè)權(quán)重,T次迭代,每次迭代后,對(duì)分類錯(cuò)誤的樣本加大權(quán)重,使得下一次的迭代更加關(guān)注這些樣本。
輸入:(X1,Y1), (X2,Y2),…(Xn,Yn)
Xi∈X, Yi∈Y={+1,-1}
初始化權(quán)值:D1(i)=1/n
For t=1,…,T
在Dt下訓(xùn)練,
得到弱的假設(shè)ht: X->{-1,+1},
錯(cuò)誤率:Εt=ΣDt(i) [ht(Xi)≠Yi]
選擇αt=1/2 ln ( (1- Εt)/ Εt ),
更改權(quán)值:
if ht(Xi)≠Yi , Dt+1(i)=Dt(i)* e αt /Zt
if ht(Xi)=Yi , Dt+1(i)=Dt(i)* e -αt /Zt
輸出:H(X)=sign( ∑αtht(X) )
1.2 弱分類器的生成
為減少計(jì)算量和主要特征參數(shù),本文采用主成分分析方法(PCA)得到弱分類器。PCA用于人臉識(shí)別,其實(shí)是假設(shè)所有的人臉都處于一個(gè)低維線性空間,而且不同的人臉在這個(gè)空間中具有可分性。其具體做法是由高維圖像空間經(jīng)K—L變換后得到的一組新的正交基,對(duì)這組正交基進(jìn)行一定的取舍,保留其中的一部分生成低維的人臉空間。
每一個(gè)PCA特征都對(duì)應(yīng)著一個(gè)弱分類器,每一個(gè)弱分類器都是根據(jù)它所對(duì)應(yīng)的特征的參數(shù)來定義的。利用上述特征的位置信息,對(duì)訓(xùn)練樣本進(jìn)行統(tǒng)計(jì)就可以得到對(duì)應(yīng)的特征參數(shù)。
1.3 測(cè)試環(huán)境和結(jié)果分析
影響本算法的因素:正負(fù)樣本的個(gè)數(shù),循環(huán)次數(shù)i的大?。豢s放的大?。患?jí)聯(lián)結(jié)構(gòu)的級(jí)數(shù);每一級(jí)中的循環(huán)次數(shù);每一級(jí)中所選取的PCA提取特征的數(shù)目以及判斷為正人臉樣本的特征的個(gè)數(shù)。
本算法選取了 2000 個(gè)正樣本,2000 個(gè)負(fù)樣本。 實(shí)驗(yàn)環(huán)境:Pentium(R) 4 CPU 2.93GHz 1.00GB內(nèi)存。MATLAB:R2010b。測(cè)試結(jié)果如圖1
圖 1
由圖可看出,此算法在多人臉檢測(cè)情況下,有較高的錯(cuò)檢率和重復(fù)檢測(cè)率。
2 Adaboost算法與神經(jīng)網(wǎng)絡(luò)串聯(lián)檢測(cè)人臉
2.1 人工神經(jīng)網(wǎng)絡(luò)概述
人工神經(jīng)網(wǎng)絡(luò)是人腦神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型,是基于模仿大腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和功能而建立的一種信息處理系統(tǒng)。它實(shí)際上是由大量簡(jiǎn)單元件相互連接而成的復(fù)雜網(wǎng)絡(luò),具有高度的非線性,能夠進(jìn)行相關(guān)的邏輯操作和非線性關(guān)系實(shí)現(xiàn)的系統(tǒng)。
在現(xiàn)有神經(jīng)網(wǎng)絡(luò)中,BP網(wǎng)絡(luò)、RBF網(wǎng)絡(luò)、反饋網(wǎng)絡(luò)和LVQ網(wǎng)絡(luò)是目前使用較多的網(wǎng)絡(luò),也是在模式識(shí)別領(lǐng)域應(yīng)用最廣泛的網(wǎng)絡(luò)。
LVQ網(wǎng)絡(luò)學(xué)習(xí)簡(jiǎn)單,速度相對(duì)來說較快,相同情況下與其他網(wǎng)絡(luò)相比可以實(shí)現(xiàn)更好的效果,因此本文采用了LVQ網(wǎng)絡(luò)在Adaboost的基礎(chǔ)之上進(jìn)行分類識(shí)別。
2.2 樣本擴(kuò)張和串聯(lián)檢測(cè)思路
Adaboost算法的效果與前期訓(xùn)練時(shí)若分類其的選取關(guān)系重大,而弱分類器的選取在一定程度上依賴于樣本集的選取,因而訓(xùn)練樣本集顯得十分重要。在Adaboost算法中,人臉和非人臉的選取比較重要隨機(jī),不能很好的表達(dá)人臉和非人臉的信息。針對(duì)這一現(xiàn)象,采用樣本擴(kuò)張的策略,使擴(kuò)張后的訓(xùn)練樣本可以比較全面的覆蓋人臉和非人臉信息。
樣本擴(kuò)張的實(shí)現(xiàn)過程如下:1、用隨機(jī)選取的人臉和非人臉樣本構(gòu)成初始訓(xùn)練庫;2、利用該訓(xùn)練庫訓(xùn)練神經(jīng)網(wǎng)絡(luò),再將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)Adaboost分類器判斷為正樣本的圖片進(jìn)行進(jìn)一步判斷,如果神經(jīng)網(wǎng)絡(luò)判斷為負(fù)樣本,則將圖片加入初始訓(xùn)練庫,用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,同時(shí)直接將Adaboost分類器判斷為負(fù)樣本的圖片加入初始訓(xùn)練庫中,用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
因此,通過樣本擴(kuò)張形成的新訓(xùn)練庫更具有代表性,可以很好的涵蓋人臉和非人臉信息,再進(jìn)行Adaboost和神經(jīng)網(wǎng)絡(luò)串聯(lián)進(jìn)行判斷,可以得到很好的效果。
2.3 測(cè)試環(huán)境和結(jié)果分析
本算法選取了 2000 個(gè)正樣本,2000 個(gè)負(fù)樣本。 實(shí)驗(yàn)環(huán)境:Pentium(R) 4 CPU 2.93GHz 1.00GB內(nèi)存。MATLAB:R2010b。測(cè)試結(jié)果如圖3
圖 2
評(píng)價(jià): 在adaboost加入神經(jīng)網(wǎng)絡(luò)串聯(lián)后,圖1與圖3相比,錯(cuò)誤和重復(fù)檢測(cè)消除了很多。實(shí)際運(yùn)行中,由于神經(jīng)網(wǎng)絡(luò)訓(xùn)練權(quán)值的隨機(jī)的初始化的影響,會(huì)造成圖片橫縱方向都每隔兩個(gè)點(diǎn)掃描檢測(cè)時(shí)可能會(huì)隨機(jī)多出1到2個(gè)錯(cuò)檢,或者就沒有錯(cuò)檢出現(xiàn),這個(gè)是沒有辦法避免的,但是效果已經(jīng)相對(duì)來說提高了很多了。
3 兩種算法在給定測(cè)試樣本數(shù)目下識(shí)別率的比較
實(shí)驗(yàn)環(huán)境:Pentium(R) 4 CPU 2.93GHz 1G內(nèi)存
MATLAB:R2010b
說明:訓(xùn)練樣本如果為10,則表示正樣本為5,負(fù)樣本也為5,訓(xùn)練樣本如果為20,則表示正樣本為10,負(fù)樣本也為10,以此類推;每一次試驗(yàn)做30次取其均值
實(shí)驗(yàn)數(shù)據(jù)來源:mit人臉數(shù)據(jù)庫
結(jié)果分析:在測(cè)試樣本數(shù)目,循環(huán)次數(shù)以及PCA能量給定的情況下,采用Adaboost算法進(jìn)行試驗(yàn),當(dāng)訓(xùn)練樣本數(shù)目較少時(shí),識(shí)別率比較低;當(dāng)訓(xùn)練樣本數(shù)增加的時(shí)候,增大到一定的程度,識(shí)別率不會(huì)有所提高了,反而所需的時(shí)間增加了,因此當(dāng)選擇訓(xùn)練樣本的數(shù)目為20的時(shí)候,識(shí)別率有所提到,而且所用時(shí)間沒有明顯增大。
表2 改變循環(huán)次數(shù)T(Train Sample = 20, Test Sample = 500, PCA(98%),Adaboost算法)
結(jié)果分析:在測(cè)試樣本數(shù)目,訓(xùn)練樣本數(shù)目以及PCA能量給定的情況下,采用Adaboost算法進(jìn)行試驗(yàn),當(dāng)循環(huán)次數(shù)較少的時(shí)候識(shí)別率比較低,當(dāng)循環(huán)次數(shù)增大到一定程度以后,再增加循環(huán)次數(shù),識(shí)別率沒有明顯提升反而所需時(shí)間增加了,因此選擇循環(huán)次數(shù)為10次的時(shí)候技能有較高的識(shí)別率,所需時(shí)間沒有明顯增加。
在選擇了訓(xùn)練樣數(shù)目以及循環(huán)次數(shù)后,基本排除了這兩個(gè)因素對(duì)識(shí)別率的影響,進(jìn)行PCA能量的選擇來比較一下Adaboost算法與增加神經(jīng)網(wǎng)絡(luò)后的算法的識(shí)別率的大小。
由上表可以看出,Adaboost算法與神經(jīng)網(wǎng)絡(luò)串聯(lián)后的的算法具有很好的識(shí)別率。本次試驗(yàn)是在識(shí)別的基礎(chǔ)之上做的,針對(duì)的是給定數(shù)目的測(cè)試樣本,要是做到人臉檢測(cè)需要更多的訓(xùn)練樣本來提取人臉特征。
4 結(jié)論
本文提出的基于神經(jīng)網(wǎng)絡(luò)擴(kuò)張的adaboost人臉檢測(cè)算法在原有adaboost算法的基礎(chǔ)上加入了LVQ神經(jīng)網(wǎng)絡(luò)串聯(lián),在經(jīng)過兩個(gè)算法的分類識(shí)別和樣本擴(kuò)張后,降低了原有算法的錯(cuò)檢率和重復(fù)檢測(cè)率,在給定測(cè)試樣本數(shù)的實(shí)驗(yàn)中,本文提出的方法要比原算法在識(shí)別率上有15%左右的提升。
參考文獻(xiàn):
[1]李維維.基于膚色和AdaBoost算法的人臉檢測(cè)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2012.
[2]李盛文.基于PCA+AdaBoost 算法的人臉識(shí)別技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2010.
[3]孫崇璇.基于PCA主成分分析的人臉檢測(cè)實(shí)現(xiàn)與分析[J].云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2010.