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