基于PCA算法的人臉識(shí)別介紹

學(xué)號(hào):17020110019? ? 姓名:高少魁

【嵌牛導(dǎo)讀】PCA算法作為一種經(jīng)典的數(shù)據(jù)降維算法滑蚯,可以對(duì)數(shù)據(jù)進(jìn)行有效的降維。降維具有如下一些優(yōu)點(diǎn):使得數(shù)據(jù)集更易使用抵栈、降低算法的計(jì)算開(kāi)銷(xiāo)告材、去除噪聲、使得結(jié)果容易理解古劲。本文對(duì)PCA算法原理進(jìn)行一些初步的介紹斥赋,之后使用matlab工具設(shè)計(jì)算法,使用ORL人臉數(shù)據(jù)庫(kù)产艾,完成一個(gè)簡(jiǎn)單的人臉識(shí)別功能灿渴。該算法識(shí)別準(zhǔn)確率達(dá)到了90%以上。

【嵌牛鼻子】數(shù)據(jù)降維? ? 人臉識(shí)別? ? 數(shù)據(jù)挖掘? ? 主成分分析算法

【嵌牛正文】

一胰舆、PCA算法介紹

PCA(Principal Components Analysis)即主成分分析骚露,也稱(chēng)主分量分析或主成分回歸分析法,是一種無(wú)監(jiān)督的數(shù)據(jù)降維方法缚窿,它通過(guò)降維棘幸,可以將多個(gè)指標(biāo)轉(zhuǎn)化為具有代表性的幾個(gè)特征來(lái)進(jìn)行分析。

PCA的主要步驟如下:

1倦零、對(duì)于樣本數(shù)據(jù)D=(x1,x2,x3,...,xm)误续,設(shè)其維度為n吨悍,若使用PCA將其維度降到n’,首先對(duì)樣本進(jìn)行去中心化:

2蹋嵌、計(jì)算樣本的協(xié)方差矩陣XXT育瓜。

3、對(duì)協(xié)方差矩陣計(jì)算特征值和特征向量栽烂。

4躏仇、取出最大的n’個(gè)特征值對(duì)應(yīng)的特征向量,將特征向量標(biāo)準(zhǔn)化后組成特征矩陣W腺办。

5焰手、對(duì)于樣本集的每一個(gè)樣本xi,使用如下公式轉(zhuǎn)化為新的樣本:

6怀喉、經(jīng)過(guò)上一步計(jì)算书妻,即可得到輸出的樣本集。

二躬拢、利用PCA進(jìn)行人臉識(shí)別的原理

要利用此算法進(jìn)行人臉識(shí)別躲履,就要先對(duì)人臉圖像進(jìn)行一些預(yù)處理。在獲得的ORL人臉數(shù)據(jù)庫(kù)中聊闯,人臉的灰度圖片大小為112×92工猜,在讀取人臉之后將其轉(zhuǎn)化為1×10304(92×112=10304)的行向量,這樣馅袁,一張人臉就被轉(zhuǎn)化為一系列的行向量域慷,便于后續(xù)的處理。

進(jìn)行數(shù)據(jù)預(yù)處理后汗销,就可以將人臉圖像集使用PCA算法進(jìn)行處理犹褒,通過(guò)去中心化得到一張平均值臉,之后計(jì)算其協(xié)方差矩陣及其特征值和特征向量弛针,再將特征值排序后進(jìn)行篩選叠骑;通過(guò)去中心化得到的差分臉矩陣的轉(zhuǎn)置與特征向量相乘,即可得到特征臉削茁,筆者保留了原特征值85%的能量宙枷,并取出了對(duì)應(yīng)的特征值組成了特征臉。

得到特征臉之后茧跋,就可以使用測(cè)試集進(jìn)行驗(yàn)證了慰丛。訓(xùn)練集中每一張圖片向量d乘以特征臉即為圖片向量在特征臉空間上的投影向量pi,而測(cè)試集的圖片同樣做這個(gè)操作瘾杭,得到投影向量p诅病,此時(shí)可以通過(guò)計(jì)算p與上面所有的pi的歐氏距離,與p的距離最小的pi所對(duì)應(yīng)的訓(xùn)練集人臉即是識(shí)別的人臉類(lèi)別。

三贤笆、使用的人臉數(shù)據(jù)集

筆者的人臉數(shù)據(jù)集來(lái)自O(shè)RL數(shù)據(jù)庫(kù)蝇棉,共選取了40個(gè)人的人臉圖像,每個(gè)人有10張不同表情的圖片芥永,一共有400張篡殷。根據(jù)實(shí)際應(yīng)用場(chǎng)景,選取前7張為訓(xùn)練集埋涧,后3張為測(cè)試集板辽。得到特征臉后,將測(cè)試集的人臉傳入recognition函數(shù)進(jìn)行識(shí)別飞袋,得到的類(lèi)別與真實(shí)類(lèi)別作對(duì)比戳气,最后將結(jié)果統(tǒng)計(jì)链患,得到識(shí)別精確率巧鸭。

ORL人臉數(shù)據(jù)庫(kù)(樣例)如下圖:

ORL人臉數(shù)據(jù)庫(kù)(樣例)

四、算法設(shè)計(jì)

筆者使用的語(yǔ)言為matlab麻捻。

1纲仍、數(shù)據(jù)加載

由于人臉數(shù)據(jù)庫(kù)文件夾的命名非常規(guī)律治笨,為’face1’逞泄,’face2’等年枕,因此數(shù)據(jù)加載部分主要是使用循環(huán)語(yǔ)句填大,通過(guò)字符串拼接生成每一次要讀取的圖片的路徑蔗喂,讀取圖片之后通過(guò)rgb2gray函數(shù)將其轉(zhuǎn)化為灰度圖像(如果原圖像為彩色人臉圖像的話)颠蕴,之后使用reshape函數(shù)將原先為92×112的圖像轉(zhuǎn)化為1×10304的行向量哨免,拼接到傳出的數(shù)據(jù)矩陣data中亚情,最后將讀取數(shù)據(jù)結(jié)果data返回給調(diào)用它的主函數(shù)摊腋。

2沸版、PCA訓(xùn)練

該部分主要是計(jì)算人臉數(shù)據(jù)的協(xié)方差矩陣、特征值兴蒸、特征向量以及得到特征臉等视粮,由于matlab在這一領(lǐng)域的庫(kù)函數(shù)十分齊全,因此該部分算法設(shè)計(jì)較為簡(jiǎn)單橙凳。上一步得到的數(shù)據(jù)集為一個(gè)二維矩陣蕾殴,每一張人臉轉(zhuǎn)化為1×10304的行向量,一共有40×7=280張人臉岛啸,因此钓觉,數(shù)據(jù)集為280×10304的矩陣。數(shù)據(jù)集通過(guò)mean函數(shù)可以得到平均臉坚踩,再將每行表示的人臉減去平均臉荡灾,即可得到去中心化的人臉(實(shí)驗(yàn)中稱(chēng)為差分臉)。將差分臉乘以其轉(zhuǎn)置可得到協(xié)方差矩陣,通過(guò)eig函數(shù)即可計(jì)算其特征值和特征向量卧晓。特征向量與差分臉進(jìn)行計(jì)算得到特征臉芬首,通過(guò)將特征值排序,保留了85%的能量逼裆,將特征值對(duì)應(yīng)的特征臉作為輸出郁稍,之后的識(shí)別步驟,即可將人臉投影到特征臉空間中去以求出兩張要對(duì)比臉的歐氏距離胜宇。

3耀怜、人臉識(shí)別

程序中的recognition函數(shù)為核心的識(shí)別程序。根據(jù)前文提到的步驟桐愉,每張訓(xùn)練集人臉都可以通過(guò)特征臉與該人臉向量轉(zhuǎn)置的乘運(yùn)算得到投影财破,而測(cè)試集圖片也經(jīng)過(guò)此步驟得到其在特征臉空間的投影。不難看出从诲,如果在訓(xùn)練集中含有測(cè)試集的人臉左痢,那么測(cè)試集圖片的投影一定與訓(xùn)練集中某個(gè)圖像投影的歐氏距離很小且與其他不屬于測(cè)試集類(lèi)別的人臉圖片投影的歐氏距離很大,通過(guò)計(jì)算歐式距離中的最小值及其索引系洛,即可得到所識(shí)別人臉的類(lèi)別代號(hào)(1~40)俊性,這樣就完成了一次人臉識(shí)別。

4描扯、主程序

為了測(cè)試此算法的準(zhǔn)確性定页,光靠輸出測(cè)試集圖像和訓(xùn)練集中匹配的人臉圖像,通過(guò)人工對(duì)比是遠(yuǎn)遠(yuǎn)不夠的绽诚,尤其在數(shù)據(jù)庫(kù)中含有雙胞胎的情況下典徊,人工也會(huì)出現(xiàn)錯(cuò)誤,因此可以將人臉識(shí)別算法輸出的該測(cè)試集屬于的類(lèi)別與傳入的測(cè)試集真正屬于的類(lèi)別作比較恩够,如果人臉識(shí)別成功卒落,那么兩個(gè)類(lèi)別代號(hào)一定是相同的。因此玫鸟,在主程序的設(shè)計(jì)上导绷,我使用了循環(huán)語(yǔ)句,通過(guò)人臉類(lèi)別和某張人臉的不同表情構(gòu)造了雙重循環(huán)屎飘,每個(gè)類(lèi)別的人臉使用了后三張作為測(cè)試集妥曲,將某張人臉傳入人臉識(shí)別函數(shù),輸出的類(lèi)別與實(shí)際人臉類(lèi)別作比較钦购,如果相同則命中的計(jì)數(shù)加一檐盟,最終將命中數(shù)除以一共傳入的圖片數(shù),得到人臉識(shí)別正確率押桃。同時(shí)葵萎,為了使運(yùn)行者能夠直觀且具體的看到識(shí)別的結(jié)果,在類(lèi)別號(hào)為12時(shí),輸出了傳入的測(cè)試圖片與識(shí)別到的與其最接近的人臉圖像羡忘。

五谎痢、算法運(yùn)行結(jié)果

運(yùn)行結(jié)果與識(shí)別精確率

可見(jiàn),在訓(xùn)練集為280張人臉圖像卷雕,測(cè)試集為120張圖像時(shí)节猿,120張圖像正確識(shí)別了110張,識(shí)別識(shí)別精確率達(dá)到了91.6667%漫雕,識(shí)別正確率較高滨嘱。在程序效率方面,訓(xùn)練數(shù)據(jù)一共使用了大約5秒浸间,整個(gè)程序運(yùn)行結(jié)束使用了約14.5秒太雨,120張測(cè)試集進(jìn)行識(shí)別時(shí)共用了約9.56秒,平均識(shí)別一張人臉需要大約0.08秒魁蒜,識(shí)別速度是較快的囊扳。

為了使運(yùn)行者能夠直觀且具體的看到識(shí)別的結(jié)果,在類(lèi)別號(hào)為12時(shí)梅惯,輸出了三組傳入的測(cè)試圖片與識(shí)別到的與其最接近的人臉圖像宪拥,如下圖:

(a)
(b)
(c)

通過(guò)分析以上結(jié)果可以看出仿野,三張測(cè)試圖片中有兩張((a)和(c))被成功識(shí)別铣减,輸出了與其最相似人臉的類(lèi)別號(hào)12,而第二張(b)識(shí)別錯(cuò)誤脚作,輸出的類(lèi)別號(hào)為40葫哗,而通過(guò)觀察也很容易看出第二張人臉識(shí)別錯(cuò)誤。

六球涛、算法局限性

(1)數(shù)據(jù)集只有40個(gè)人劣针,一共400張圖像,而測(cè)試集也只設(shè)計(jì)了120張亿扁,數(shù)據(jù)集過(guò)于小會(huì)使識(shí)別準(zhǔn)確率偏離實(shí)際捺典;

(2)280張訓(xùn)練集在訓(xùn)練時(shí)間上使用了5秒,但如果訓(xùn)練集進(jìn)一步增大會(huì)影響程序運(yùn)行速度从祝,因此需要設(shè)計(jì)更高效的算法使運(yùn)行效率提高襟己。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市牍陌,隨后出現(xiàn)的幾起案子擎浴,更是在濱河造成了極大的恐慌,老刑警劉巖毒涧,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮预,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)仿吞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)滑频,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人唤冈,你說(shuō)我怎么就攤上這事误趴。” “怎么了务傲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵凉当,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我售葡,道長(zhǎng)看杭,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任挟伙,我火速辦了婚禮楼雹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尖阔。我一直安慰自己贮缅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布介却。 她就那樣靜靜地躺著谴供,像睡著了一般。 火紅的嫁衣襯著肌膚如雪齿坷。 梳的紋絲不亂的頭發(fā)上桂肌,一...
    開(kāi)封第一講書(shū)人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音永淌,去河邊找鬼崎场。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遂蛀,可吹牛的內(nèi)容都是我干的谭跨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼李滴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼螃宙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起悬嗓,我...
    開(kāi)封第一講書(shū)人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤污呼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后包竹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體燕酷,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籍凝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苗缩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饵蒂。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酱讶,靈堂內(nèi)的尸體忽然破棺而出退盯,到底是詐尸還是另有隱情,我是刑警寧澤泻肯,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布渊迁,位于F島的核電站,受9級(jí)特大地震影響灶挟,放射性物質(zhì)發(fā)生泄漏琉朽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一稚铣、第九天 我趴在偏房一處隱蔽的房頂上張望箱叁。 院中可真熱鬧,春花似錦惕医、人聲如沸耕漱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)螟够。三九已至,卻和暖如春沛简,著一層夾襖步出監(jiān)牢的瞬間齐鲤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工椒楣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牡肉。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓捧灰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親统锤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毛俏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容