韓睿


摘要:本文設(shè)計(jì)描述了三種人臉識(shí)別技術(shù):(1)通過膚色模型訓(xùn)練的圖像變化技術(shù)對圖像的人臉區(qū)域進(jìn)行識(shí)別并分割出來。(2)Eigenface人臉識(shí)別算法的圖像表示技術(shù)通過輸入已知人臉圖片,可視化特征臉,與系統(tǒng)相似臉匹配并計(jì)算識(shí)別準(zhǔn)確率。(3)全連接神經(jīng)網(wǎng)絡(luò)技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)對對輸入人臉的識(shí)別分析和匹配測試,從系統(tǒng)庫里找到與之最相近的的臉,并可視化展示。
[關(guān)鍵詞]人臉識(shí)別深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)
1引言
1.1課題研究的目的和意義
近年來,隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,對有效辨別人身的需求越來越迫切。傳統(tǒng)的指紋識(shí)別和密碼識(shí)別等方式雖已發(fā)展較為完善但存在著識(shí)別率偏低,應(yīng)用性不廣等問題。人臉識(shí)別技術(shù)在識(shí)別身份和圖像處理方面有著廣泛的應(yīng)用和發(fā)展空間,與其他身體特征相比,人臉不容易被遺忘,不易竊取,且具有非接觸性和穩(wěn)定性。而身份驗(yàn)證和人臉檢測方面對人臉識(shí)別的準(zhǔn)確度提出越來越高的要求,故而人臉識(shí)別智能算法對識(shí)別準(zhǔn)確度有著較為重要的影響。
1.2設(shè)計(jì)需求
在當(dāng)今社會(huì)中,人臉識(shí)別技術(shù)主要適用于身份識(shí)別和匹配,一方面需要將獲取到的人臉圖像進(jìn)行面部識(shí)別,即將圖像中的人臉區(qū)域進(jìn)行提取,另一方面需要將識(shí)別到的人臉與系統(tǒng)庫里已有的人臉圖像進(jìn)行匹配驗(yàn)證進(jìn)而達(dá)到身份驗(yàn)證的目的。
本文通過多建立人臉訓(xùn)練膚色模型檢
測人臉區(qū)域部分,提取人臉區(qū)域,分別使用Eigenface算法,全連接網(wǎng)絡(luò)的人臉識(shí)別,卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別實(shí)現(xiàn)簡易人臉識(shí)別系統(tǒng)并測試其準(zhǔn)確率。
2多人臉訓(xùn)練膚色模型檢測
2.1訓(xùn)練膚色模型
人臉的膚色不依賴于面部的其他特征,不受表情和妝容影響,具有很好的穩(wěn)定性。由于不同膚色的人臉對應(yīng)的色調(diào)基本一致,故人臉膚色的特征主要通過膚色模型描述,故本方案采用高斯模型來表示。
2.1.1色彩空間
為了把人臉區(qū)域從非人臉區(qū)域分割出來,需要使用適合不同膚色和不同光照條件的可靠的膚色模型。在本文的實(shí)驗(yàn)中選用YCrCb空間作為膚色分布統(tǒng)計(jì)的映射空間,該空間的優(yōu)點(diǎn)是受亮度變化的影響較小,而且是兩維獨(dú)立分布,能較好地限制膚色分布區(qū)域。進(jìn)而大大提高了人倆檢測的效率和正確性。
2.1.2建立膚色樣本
建立膚色模型需要使用大量包含不同膚色的圖像信息,由于本設(shè)計(jì)目的為對一已知面部圖片進(jìn)行膚色識(shí)別,進(jìn)而可以只截取3-5張?jiān)搱D像的膚色信息圖片(即人臉的一小部分)作為膚色樣本。將其從RGB圖片轉(zhuǎn)化為YCbCr色彩空間。
2.1.3建立膚色模型
在構(gòu)建膚色模型之后,首先使用二位高斯分布來描述這種Cb-Cr的色度分布,然后對膚色樣本進(jìn)行一定的分析得到一個(gè)分布中心,在根據(jù)所觀察的像素離該中心的遠(yuǎn)近來得到一個(gè)膚色的相似度。利用已知樣本圖像,計(jì)算均值和方差得到高斯分布模型。
均值計(jì)算公式:a=s/(m*n);(像素值總和除以像素個(gè)數(shù))
方差計(jì)算公式如下:a2==s/(m*n-1);(S為所有像素與均值的平方和)
二維高斯分布表達(dá)式為:
2.2測試分析
2.2.1閾值分割
在進(jìn)行閾值分割之前,首先將彩色圖像轉(zhuǎn)換為灰度圖像,實(shí)驗(yàn)證明,不同的膚色具有相同的2D模型G(m,V^2)?;叶戎祵?yīng)屬于皮膚區(qū)域的可能性,同過設(shè)定門限,就可以轉(zhuǎn)換為二值圖像,1,0分別表示皮膚和非皮膚區(qū)域。使得圖像對存儲(chǔ)需求和傳輸帶寬的要求大大降低,從而達(dá)到在完成圖像壓縮的同時(shí)也保證了視覺上幾乎沒有損失的效果,進(jìn)而使得圖像的傳輸速度更快,存儲(chǔ)更加方便。
由于人體皮膚區(qū)域的像素與膚色模型的相似程度較高,計(jì)算得到相似度比1較大,因此在膚色灰度圖中,皮膚區(qū)域會(huì)顯得比其他部分更亮。通過嘗試改變閾值即可達(dá)到目的效果。
本設(shè)計(jì)通過選擇的閾值以0.05為間隔從0。8逐漸減小。根據(jù)閾值的選擇,就可以將膚色灰度圖轉(zhuǎn)化為二值圖。轉(zhuǎn)化二值圖片效果如圖1所示。
2.2.2人臉區(qū)間分析
由于二值化圖像可能包含多個(gè)類膚色區(qū)域,受環(huán)境亮度影響,可能會(huì)導(dǎo)致人臉判斷錯(cuò)誤。
故而需對圖像進(jìn)行標(biāo)記和判決,以便于逐個(gè)處理,本設(shè)計(jì)采用形態(tài)學(xué)判斷法,即人為設(shè)定長寬高比,逐像素判斷是否在設(shè)定的膚色范圍內(nèi)將符合條件的像素設(shè)置為白色,其余像素設(shè)置為黑色獲取圖片中的連通區(qū)域,刪除面積較小的連通區(qū)域?qū)τ诿總€(gè)保留的連通區(qū)域,畫出包含連通區(qū)域的最小矩。當(dāng)檢測區(qū)域的高度比值落在該區(qū)間時(shí),則認(rèn)為該區(qū)域?yàn)槿四樅蜻x區(qū)域。
并用矩形方框框出滿足條件的部分,如圖2所示。
3Eigenface實(shí)現(xiàn)人臉識(shí)別系統(tǒng)
3.1特征臉與平均臉的構(gòu)建
3.1.1平均臉
由系統(tǒng)已知的圖像知共165張圖像,實(shí)驗(yàn)證明,將15人的165張圖像劃分為訓(xùn)練集和測試集,訓(xùn)練集主要用于平均臉的計(jì)算以及計(jì)算特征值,測試集主要用于和訓(xùn)練集中的人臉圖像進(jìn)行匹配進(jìn)而得到識(shí)別準(zhǔn)確度。
平均臉的計(jì)算需要先計(jì)算各張訓(xùn)練集圖像的像素以及求出平均值。由于數(shù)量巨大,本設(shè)計(jì)采用將每張圖片依次讀取各張測試集圖片并存儲(chǔ)成一個(gè)向量。即獲取包含M張人臉圖像的集合S。每張圖像可以轉(zhuǎn)換成一個(gè)N維的向量然后把這M個(gè)向量放到一個(gè)集合S里。在獲取到人臉向量集合S后,計(jì)算得到平均圖像甲,計(jì)算公式如下:
將平均臉按像素排列順序進(jìn)行排列如圖3所示。
3.1.2特征臉
由高等數(shù)學(xué)知識(shí)知求特征臉即為計(jì)算九張測試集的特征向量,其中ψ表示平均圖像,C為特征向量計(jì)算公式如下:
即先計(jì)算每張圖像和平均圖像的差值φ,就是用S集合里的每個(gè)元素減去步驟二中的平均值。
找到M個(gè)正交的單位向量un,這些單位向量其實(shí)是用來描述φ(步驟三中的差值)分布的。un里面的第k(k=1,2.,..M)個(gè)向量uk是通過下式計(jì)算的
當(dāng)這個(gè)Nk(原又里取了個(gè)名子叫特征值)
取最小的值時(shí),uk基本就確定了。
上面的等式使得uk為單位正交向量。計(jì)算上面的uk其實(shí)就是計(jì)算如下協(xié)方差矩陣的特征向量:
其中A={中,P2,φ,....,中。}
對于一個(gè)NxN(比如100x100)維的圖像來說,上述直接計(jì)算其特征向量計(jì)算量實(shí)在是太大了(協(xié)方差矩陣可以達(dá)到10000x10000),所以有了如下的簡單轉(zhuǎn)化計(jì)算。如果訓(xùn)練圖像的數(shù)量小于圖像的維數(shù)比如(M 一旦我們找到了L矩陣的M個(gè)特征向量vI,那么協(xié)方差矩陣的特征向量ul就可以表示 這些所求的特征向量即為特征臉,根據(jù)像素排列順序進(jìn)行排列,在程序中用可視化界面顯示即可得到九張?zhí)卣鬟B,如圖4所示。 其中2代表要判別的人臉,S2k代表訓(xùn)練集內(nèi)的某個(gè)人臉,兩者都是通過特征臉的權(quán)重來表示的。式子是對兩者求歐式距離,當(dāng)距離小于閾值時(shí)說明要判別的臉和訓(xùn)練集內(nèi)的第k個(gè)臉是同一個(gè)人的。 3.2識(shí)別準(zhǔn)確率檢測 由上式得特征臉可以用如下方式表示: 其中k=.2...M,對于第k個(gè)特征臉uk,上式可以計(jì)算其對應(yīng)的權(quán)重,M個(gè)權(quán)重可以構(gòu)成一個(gè)向量: 計(jì)算識(shí)別的準(zhǔn)確率本設(shè)計(jì)采用歐式距離的最小值進(jìn)行計(jì)算,當(dāng)測試集中的圖像與訓(xùn)練集的圖像一對應(yīng)(即為同一個(gè)人)計(jì)數(shù)加一,用識(shí)別正確的數(shù)量比測試集的圖像數(shù)量進(jìn)而得到準(zhǔn)確率。 由已知可以通過上式對測試集求特征值,從而進(jìn)行特征值比進(jìn)而得到歐式距離。其中Q代表要判別的人臉,9k代表訓(xùn)練集內(nèi)的某個(gè)人臉,兩者都是通過特征臉的權(quán)重來表示的。式子是對兩者求歐式距離,當(dāng)距離小于閾值時(shí)說明要判別的臉和訓(xùn)練集內(nèi)的第k個(gè)臉是同一個(gè)人的。采用公式如下: 4全連接網(wǎng)絡(luò)人臉識(shí)別系統(tǒng) 4.1數(shù)據(jù)結(jié)構(gòu)的構(gòu)建 構(gòu)建結(jié)構(gòu)體儲(chǔ)存圖像的數(shù)據(jù),其中包含:訓(xùn)練集與測試集的圖像數(shù)據(jù),訓(xùn)練集的均值,圖像數(shù)據(jù)所屬類別,訓(xùn)練集驗(yàn)證機(jī)的索引。將數(shù)據(jù)集分為3組,將每個(gè)人的十張照片分為訓(xùn)練集,驗(yàn)證集和測試集,比例為6:2:2。其中訓(xùn)練集作為以上程序的訓(xùn)練樣本,另外兩組作為檢驗(yàn)樣本和驗(yàn)證。結(jié)構(gòu)存儲(chǔ)如下所示: imdb.images.data%訓(xùn)練集與測試集的圖像數(shù)據(jù) imdb.images.data_mean%訓(xùn)練集的平均值 imdb.images.labels%data中圖像所屬類別 imdb.images.set%訓(xùn)練集,驗(yàn)證集的引索 imdb.meta%儲(chǔ)存元數(shù)據(jù)信息 其中本設(shè)計(jì)由于讀入數(shù)據(jù)為圖像信息,故采用計(jì)算特征臉的方法,具體步驟如下: (1)創(chuàng)建并申請錄入數(shù)據(jù)的矩陣內(nèi)存 (2)從地址中依次讀入圖像并把圖像矩陣按列順序轉(zhuǎn)化為行向量 (3)計(jì)算錄入圖片信息的平均值 (4)進(jìn)行特征值歸一化處理 讀取圖片及轉(zhuǎn)化函數(shù)如下: imdb.images.labels(10*i-10+j)=i;. b=sprintf("%d_%d.bmp',ij); c=strcat(a,b); im=imread(c); imdb.images.raw(..,.10*i-10+j)=im; im一imresize(im,[28,28]'nearest); im=double(im); 4.2網(wǎng)絡(luò)結(jié)構(gòu)的構(gòu)建 使用函數(shù)創(chuàng)建神經(jīng)網(wǎng)絡(luò),并確立損失函數(shù),同時(shí)需要設(shè)置網(wǎng)絡(luò)參數(shù)神經(jīng)網(wǎng)絡(luò)創(chuàng)建函數(shù)如下: net=newff(minmax(input),[103],{'logsig''purelin'},'traingdx'); net=vl_simplenn_tidy(net);%用默認(rèn)值初始化網(wǎng)絡(luò)參數(shù) 網(wǎng)格參數(shù)設(shè)置如下:net=vl_simplenn_tidy(net);%用默認(rèn)值初始化網(wǎng)絡(luò)參數(shù) net.meta.inputSize一[112,92,1];%圖像加載大小. net.meta.trainOpts.learningRate0.001;%學(xué)習(xí)率 net.meta.trainOpts.numEpochs=150;%迭代次數(shù) net.meta,trainOpts.batchSize=64;%batchsize 測試數(shù)據(jù)歸一*化如下所示:testInput=tramnmx([t1,t2,t3,t4]',minI,maxI) 4.3訓(xùn)練集進(jìn)行訓(xùn)練 選擇最優(yōu)函數(shù),通過網(wǎng)絡(luò)訓(xùn)練得到最優(yōu)參數(shù)。讀取測試函數(shù),將測試數(shù)據(jù)歸一化,對結(jié)果進(jìn)行仿真。 訓(xùn)練函數(shù)使用如下: images=imdb.images.daa(:;;,batch); labels=imdb.images.labels(l,batch); 測試數(shù)據(jù)歸一化函數(shù)使用如下: testInput=tramnmx([t1,t2,t3,t4]',minI,maxI); 4.4最優(yōu)結(jié)果測試 測試結(jié)果計(jì)算識(shí)別準(zhǔn)確率,經(jīng)過訓(xùn)練達(dá)92%,實(shí)驗(yàn)結(jié)果如圖5所示。 5卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別系統(tǒng) 5.1網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建 卷積神經(jīng)網(wǎng)絡(luò)目的在于通過構(gòu)建模型,并經(jīng)過訓(xùn)練,進(jìn)而完成對人臉的匹配。對于一張待識(shí)別的圖片,無論旋轉(zhuǎn)平移還是鏡像變換,總是本人。對圖像進(jìn)行預(yù)處理,能夠更好地提高準(zhǔn)確率。識(shí)別總流程為: (1)輸入待識(shí)別人臉圖片p (2)對p進(jìn)行旋轉(zhuǎn)平移鏡像變化等產(chǎn)生批量人臉圖片pp (3)將pp輸入人臉識(shí)別模型中,進(jìn)行批量分量檢測,產(chǎn)生輸出與pp對應(yīng)的批量輸出qq (4)選取qq相似度最大的類型輸出,該類別最大程度的代表輸入人臉的類別。 網(wǎng)絡(luò)構(gòu)建并構(gòu)建數(shù)據(jù)結(jié)構(gòu)并錄入數(shù)據(jù)構(gòu)建方法與全連接網(wǎng)絡(luò)相似,主要步驟同為定義網(wǎng)絡(luò)結(jié)構(gòu)并進(jìn)行訓(xùn)練,并用測試集圖像進(jìn)行測試。在構(gòu)建模型時(shí),取兩層卷積層,一層全連接層為模型,兩層卷積層的過濾器分別為36個(gè)[5,5,1]與40個(gè)[4,4,36]。 6總結(jié)與展望 本設(shè)計(jì)通過使用多種算法,從不同角度實(shí)現(xiàn)了對人臉的識(shí)別處理。其中,多人臉訓(xùn)練膚色模型通過對圖像的處理進(jìn)而分割出人臉部分區(qū)域,進(jìn)而達(dá)到人臉的識(shí)別。Eigenface人臉識(shí)別算法的圖像表示技術(shù),以及全連接神經(jīng)網(wǎng)絡(luò)技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)技術(shù)是在已知輸入圖像的基礎(chǔ)上進(jìn)而達(dá)到與系統(tǒng)庫里的人臉圖像的準(zhǔn)確匹配。且進(jìn)過一定的訓(xùn)練,準(zhǔn)確率達(dá)到90%以上。本次設(shè)計(jì)中,對算法的優(yōu)化程度上依然有較大的提升空間。 本次設(shè)計(jì)中,初步了解了人臉識(shí)別算法的實(shí)現(xiàn)過程和數(shù)學(xué)思維,加深了對算法的理解程度。實(shí)踐能力和編程能力均得到了較大的提 參考文獻(xiàn) [1]張洪明,趙德斌,高文.基于膚色模型,神經(jīng)網(wǎng)絡(luò)和人臉結(jié)構(gòu)模型的平面旋轉(zhuǎn)人臉檢測[J].計(jì)算機(jī)學(xué)報(bào),2002,25(11):1250-1256. [2]夏良正。數(shù)字圖像處理(修訂版)[M].南京:東南大學(xué)出版社,1999. [3]梁淑芬,劉銀華,李立琛.基于LBP和深度學(xué)習(xí)的非限制條件下人臉識(shí)別算法[J].通信學(xué)報(bào),2014,35(06):154-160. [4]楊健,楊靜宇,王正群等,一種組合特征抽取的新方法[J].計(jì)算機(jī)學(xué)報(bào),2002,25(06):570-575.