国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PCA和SVM的人臉識別系統(tǒng)

2017-12-25 19:06:08胡沐晗
計算機時代 2017年12期
關(guān)鍵詞:測試數(shù)據(jù)人臉識別

胡沐晗

摘 要: PCA(主成分分析)與SVM(支持向量機)技術(shù)對于人臉識別而言非常重要,文章結(jié)合PCA與SVM來設(shè)計一個人臉識別系統(tǒng)。在MATLAB編譯環(huán)境下,分別探討PCA技術(shù)與SVM技術(shù),總結(jié)出一種快速PCA算法以及SVM的測試與訓(xùn)練算法;從orl_faces人臉庫中選取訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)進行訓(xùn)練與測試,對其中重要的參數(shù)進行調(diào)優(yōu),最終達到90%的識別成功率。再經(jīng)真實人臉的訓(xùn)練與測試,達到了73%的真實人臉識別成功率。

關(guān)鍵詞: PCA技術(shù); SVM技術(shù); 人臉識別; 訓(xùn)練數(shù)據(jù); 測試數(shù)據(jù); matlab

中圖分類號:TP391.4 文獻標(biāo)志碼:A 文章編號:1006-8228(2017)12-60-04

Face recognition system based on PCA and SVM

Hu Muhan

(Department of Information, ZhongBei College of NanJing Normal University, Nanjing, Jiangsu 210046, China)

Abstract: PCA (Primary Component Analysis) and SVM (Support Vector Machine) technologies are very important for face recognition. This paper combines PCA and SVM to design a face recognition system. In the MATLAB compiler environment, the PCA technology and SVM technology are discussed, a fast PCA algorithm is summed up as well as the test and training algorithm for SVM; the training data and test data are selected from the orl_faces database to train and test, the important parameters are optimized, and 90% recognition success rate is ultimately achieved. After the training and testing by real face, the success rate of 73% real face recognition is achieved.

Key words: PCA; SVM; face recognition; training data; testing data; MATLAB

0 引言

人臉識別是人工智能領(lǐng)域的一個重要技術(shù)。如今,人臉識別技術(shù)已經(jīng)在我們的生活中被廣泛應(yīng)用,例如人臉識別門禁考勤系統(tǒng),公安部的人臉識別網(wǎng)絡(luò)等。本研究項目主要立足于PCA(主成分分析方法)以及SVM(支持向量機)來對圖像進行識別,PCA與SVM是處理圖像的重要技術(shù),其中涉及的圖像降維處理,機器訓(xùn)練對人像識別尤其重要。

1 PCA技術(shù)

1.1 PCA技術(shù)原理

PCA技術(shù)是將高維的數(shù)據(jù)通過投影方式,降至低維的平面上[1],即乘以少于向量本身維數(shù)的基,來達到降維的效果。具體我們可以通過一個例子展開,如下列矩陣:

首先將每個字段內(nèi)所有值減去均值,結(jié)果每個字段都變?yōu)榫禐?,變換后:

若要將圖1的點降維,則要進行投影,即乘以所選方向的基,不過若向X軸投影,那么最左邊的兩個點將重疊,中間的兩個點也將重疊,若想要盡量多的保存信息,則要選擇一個投影平面使得投影值盡量的分散,而在數(shù)學(xué)上,判定一個數(shù)值分散程度的量是方差,方差即每個元素與字符段均值的差的平方和的均值,即:

由于上文已將字段均值減為0,所以可表示為:

方差越大,則投影的數(shù)據(jù)越分散,從而數(shù)據(jù)可盡量多的保存。

正如以上所述,PCA技術(shù)原理之一即保證投影降維之后方差盡可能大,從而保留更多的數(shù)據(jù)[2-4],但除此之外PCA還需要處理另一個問題,例如對于三維降到二維的問題來說,需要選擇兩個投影的方向,我們需要引入另一個約束條件,即不希望兩個投影方向之間存在線性相關(guān)性,因為相關(guān)性必然意味著存在重復(fù)信息。數(shù)學(xué)上可以用協(xié)方差來表示其相關(guān)性即:

當(dāng)協(xié)方差為0時,表示兩個字段完全獨立,為了讓協(xié)方差為0,我們選擇第二個基時只能在第一個基正交的方向上選擇,因此最終選擇得兩個方向一定正交。

1.2 PCA的具體操作

1.2.1 快速PCA算法

普通PCA算法存在一個問題,即對于協(xié)方差矩陣M而言,M是由ZT*Z得出,而Z是一個m*n的矩陣,所以ZT*Z是一個n*n的矩陣,往往在圖像中,n的值遠遠大于m,所以對這樣一個協(xié)方差矩陣求特征值特征向量開銷會非常巨大,因此我們需要一種更高效的PCA算法。

對于M=ZT*Z有M*V=D*V,其中V是M的特征向量,D是M的特征值,因此兩邊乘以得到M*ZT*V= D*ZT*V,所以(ZT*Z)*ZT*V=D*ZT*V,又設(shè)N=Z*ZT,且(ZT*Z)*ZT*V=ZT*(Z*ZT)*V所以ZT*N*V=D*ZT*V=ZT*D*V,所以根據(jù)以上數(shù)學(xué)公式的推導(dǎo),可以看出M的特征值D和特征向量V可以通過N來獲得,因為M如上所述是一個n*n的矩陣,而N=Z*ZT且Z=m*n,所以N是一個m*m的矩陣,因n遠大于m,故通過N求得M的特征值和特征向量將會減小資源的開銷,提高PCA降維的效率,因此可以得到一個快速PCA算法,步驟如下。

⑴ 將原始數(shù)據(jù)按列組成一個m行n列的矩陣Z。

⑵ 將Z的每一行減去零均值化,減去均值。

⑶ 設(shè)矩陣N=Z*ZT。

⑷ 求出N的特征值和特征向量,使用eigs函數(shù)將特征值從大到小排列,取出前K個特征值對應(yīng)的特征向量。

⑸ 乘以ZT得到M的沒有單位化的特征向量。

⑹ 對協(xié)方差矩陣M進行單位化。

⑺ 原始矩陣Z乘以特征向量V,得到降至K維的矩陣。

1.2.2 PCA降維

完成PCA算法后,接下來就是使用它對一組圖片進行降維處理,這里我們使用了orl_faces圖片庫,其中有40個人,每個人10張照片,總共400張照片,然后對所有圖片讀入減去均值到一張平均臉,然后將圖片進行PCA降維之后還原得到還原臉。

可以看出,相對于圖3,圖2保留了大量特征,K值越高,即降的維數(shù)越高,圖像越清晰,保留的特征越多。

兩種PCA算法的比較:

普通PCA算法降至100,200,300,400維的時間總共為81秒,而快速PCA算法所需時間僅0.4秒。

2 SVM技術(shù)

2.1 SVM技術(shù)原理

2.1.1 SVM技術(shù)簡介

SVM技術(shù)可以將一些數(shù)據(jù)點分為兩個不同的類[5-7],如圖4所示,現(xiàn)有一個二維平面,平面上有兩種不同的數(shù)據(jù),分別用圈和叉表示。由于這些數(shù)據(jù)是線性可分的,所以可以用一條直線將兩類數(shù)據(jù)分開,這條直線相當(dāng)于一個超平面,超平面一邊的數(shù)據(jù)點對應(yīng)的Y全是-1。另一邊所對應(yīng)的Y全是1。

因此,對于人臉識別而言,我們可以通過標(biāo)簽來區(qū)分兩個不同的人臉,即將一組人臉標(biāo)志為1,另一組人臉標(biāo)志為0。然后,如圖4所示這個超平面可以f(x)=ωTx+b來表示,當(dāng)f(x)等于0時,x便是位于超平面上的點,當(dāng)f(x)大于0的點對應(yīng)的y=1的數(shù)據(jù)點,f(x)小于零對應(yīng)y=-1這個點,如圖5所示。

以上通過SVM處理的都是線性可分的點,而對于線性不可分的點而言,要做的是將這些點投放到更高維的空間中進行處理,不過對于機器而言,投射的維度越高意味著模型的復(fù)雜度越高,處理數(shù)據(jù)的開銷也就越大,從而泛化誤差也就越大,因此為了處理線性不可分的數(shù)據(jù),我們引入了高斯核函數(shù),核函數(shù)對于線性不可分的點不用投放到高維空間進行處理,只用在低維空間運算就可以計算高維空間的內(nèi)積。

2.1.2 SVM技術(shù)中的重要參數(shù)

SVM模型中有兩個非常重要的參數(shù)C和gamma。SVM的目標(biāo)函數(shù):

其中C代表懲罰因子,即在線性不可分的情況下,對分類錯誤的懲罰程度。C越高往往越不能容忍誤差,因此容易過擬合,C越小,分類器會越不在乎分類錯誤,會欠擬合。

gamma是選擇RBF函數(shù)作為核函數(shù)后,該函數(shù)自帶的一個參數(shù)。隱含地決定了數(shù)據(jù)映射到新的特征空間后的分布。RBF核函數(shù):

其中g(shù)amma=-,對于gamma的物理意義而言,它影響的是每個支持向量對應(yīng)的高斯作用范圍,從而影響泛化性能,gamma越大,σ越小,對應(yīng)的支持向量也就越少,gamma值越小則支持向量越多。支持向量的個數(shù)影響訓(xùn)練與預(yù)測的個數(shù)。因此c和gamma兩個參數(shù)的調(diào)優(yōu)對于后續(xù)的人臉識別系統(tǒng)的成功率是非常重要的。

2.2 SVM的具體操作

2.2.1 SVM訓(xùn)練函數(shù)

這次我們選取兩組圖片來進行SVM處理,其中一組為訓(xùn)練數(shù)據(jù),一組為測試數(shù)據(jù),訓(xùn)練數(shù)據(jù)對應(yīng)的是0-9共十個不同數(shù)字,每個數(shù)字有5張圖片,測試數(shù)據(jù)也是0-9十個不同數(shù)字,每個數(shù)字3張圖片。除了選取數(shù)據(jù)之外,最重要的是編寫SVM訓(xùn)練函數(shù)與SVM測試函數(shù)。SVM訓(xùn)練函數(shù)步驟如下。

⑴ 將50張圖片數(shù)據(jù)讀入矩陣,每個數(shù)字對應(yīng)5張圖片,形成訓(xùn)練數(shù)據(jù)。

⑵ 將前5張打上標(biāo)簽為1,后5張數(shù)字打上標(biāo)簽0。

⑶ 調(diào)用matlab庫中的SVMtrain函數(shù),進行訓(xùn)練,通過循環(huán)產(chǎn)生45個分類器。

⑷ 將分類器存入矩陣中。

2.2.2 SVM測試函數(shù)

SVM訓(xùn)練函數(shù)主要是用來形成分類器,接下來,就要通過這個分類器來編寫SVM測試函數(shù),測試函數(shù)主要是運用了投票的理念,SVM測試函數(shù)步驟如下:

⑴ 將30張圖片數(shù)據(jù)讀入矩陣,每個數(shù)字對應(yīng)3張圖片,形成測試數(shù)據(jù)。

⑵ 讀入測試數(shù)據(jù),獲取測試數(shù)據(jù)的容量m,以及分類的容量n,形成一個m*n的voting矩陣。

⑶ 根據(jù)分類器對測試數(shù)據(jù)進行比對,通過svmclassify庫函數(shù)返回標(biāo)簽,如果標(biāo)簽對應(yīng)的是1,則測試數(shù)據(jù)在對應(yīng)數(shù)字數(shù)目加一,如果標(biāo)簽對應(yīng)的是零,則在另一個數(shù)字數(shù)目加一。

⑷ 最后,找到每個測試數(shù)據(jù)中對應(yīng)數(shù)目最多的數(shù)字,這個數(shù)字即跟這個測試數(shù)據(jù)匹配。

設(shè)置c=1,gamma=0.0001,最后經(jīng)過SVM訓(xùn)練和測試,我們對測試數(shù)據(jù)30張數(shù)字圖片的識別成功率為86.67%。

3 結(jié)合PCA與SVM的人臉識別系統(tǒng)

這個人臉識別系統(tǒng)采用的數(shù)據(jù)主要是orl_faces人臉庫中的40個人總共400張人臉,其中前五張作為訓(xùn)練數(shù)據(jù),后五張作為測試數(shù)據(jù),主要流程如下。

⑴ 將40個人的人臉總共400張圖讀入,其中前五張作為訓(xùn)練數(shù)據(jù),后五張作為測試數(shù)據(jù)。

⑵ 將訓(xùn)練數(shù)據(jù)進行PCA變換,得到降維后的矩陣,然后用scaling對數(shù)據(jù)標(biāo)準(zhǔn)化,使其在-1到1的范圍內(nèi),增加識別成功率。

⑶ 將訓(xùn)練數(shù)據(jù)放入SVM訓(xùn)練函數(shù)中,產(chǎn)生分類器。

⑷ 將測試數(shù)據(jù)進行PCA降維,然后放入SVM測試函數(shù)中。

⑸ 將測試函數(shù)產(chǎn)生的標(biāo)簽與現(xiàn)實圖片標(biāo)簽進行比對,輸出成功率。

最后,如圖7所示當(dāng)降維數(shù)K=80時,經(jīng)過對gamma和C的調(diào)參,當(dāng)C在70到80的范圍內(nèi),gamma在0.005到0.02的范圍內(nèi)時,識別成功率最 高可達90%。然后,我們將C設(shè)置為70,gamma設(shè)置為0.015,K設(shè)置為80,將小組內(nèi)三個人共30張照片放入orl_faces人臉庫進行比對,成功率只有73%。而將30張真實人臉單獨進行訓(xùn)練,測試,識別成功率只有60%。真實人臉比對的圖如圖8、圖9、圖10、圖11和圖12所示。

以上可以看出圖8,圖9識別都正確,而圖10識別錯誤主要是光線問題,圖11,圖12識別錯誤主要是相似特征太多,如黑框眼鏡。

4 結(jié)束語

為了制作一個人臉識別系統(tǒng)并且實現(xiàn)人臉識別的功能,本文將PCA與SVM技術(shù)結(jié)合,分別用于對圖片降維提取重要特征以及訓(xùn)練機器識別不同的圖片,最終在orl_faces人臉庫中測試達到了90%的識別成功率,但是如果將真實人臉圖片進行識別,成功率只有73%。本系統(tǒng)在特定的人臉庫中證明是可行的,下一步需考慮如何減少像光照,濕度,以及過于相似的特征對于識別成功率的影響,從而使本系統(tǒng)更好的識別真實人臉。

參考文獻(References):

[1] 金忠.人臉圖像特征抽取與維數(shù)研究[D].南京理工大學(xué)碩士

學(xué)位論文,1999.

[2] 徐勇,張重陽,楊靜宇.基于主分量特征與獨立分量特征的人

臉識別實驗[J].計算機工程與設(shè)計,2005.26(5):1155-1157

[3] 陳伏兵.人臉識別中鑒別特征抽取若干方法研究[D].南京理

工大學(xué),2006.

[4] 張翠平,蘇光大.人臉識別技術(shù)綜述[J].中國圖像圖形學(xué)報,

2000.5(11):885-894

[5] Javed A. Face Recognition Based on Principal Component

Analysis[J]. International Journal of Image, Graphics and Signal Processing(IJIGSP),2013.5(2):38

[6] Stan Z.Li Anil K.Jain. Handbook of Face Recognition[M].

New York:Springer,2004.5.

[7] Wayman J L Jain A K Maltoni D et al.Biometric Systems:

Technology, Design and Performance Evaluation[M].London:Springer,2005.

猜你喜歡
測試數(shù)據(jù)人臉識別
基于ID3決策樹算法的大學(xué)生體能測試數(shù)據(jù)管理系統(tǒng)設(shè)計
基于回收測試數(shù)據(jù)特點的判讀方案設(shè)計與實現(xiàn)
人臉識別 等
揭開人臉識別的神秘面紗
測試數(shù)據(jù)管理系統(tǒng)設(shè)計與實現(xiàn)
基于(2D)2PCA-LBP 的人臉識別方法的研究
電子制作(2017年17期)2017-12-18 06:40:55
人臉識別在高校安全防范中的應(yīng)用
電子制作(2017年1期)2017-05-17 03:54:46
基于自適應(yīng)粒子群優(yōu)化算法的測試數(shù)據(jù)擴增方法
空間co-location挖掘模式在學(xué)生體能測試數(shù)據(jù)中的應(yīng)用
體育科技(2016年2期)2016-02-28 17:06:21
基于類獨立核稀疏表示的魯棒人臉識別
計算機工程(2015年8期)2015-07-03 12:19:07
安仁县| 开远市| 浮山县| 霞浦县| 桂平市| 莱州市| 涡阳县| 尖扎县| 滁州市| 黔东| 沂源县| 绥棱县| 洛阳市| 青海省| 阜南县| 江都市| 新干县| 平昌县| 尉犁县| 玉龙| 丘北县| 米易县| 错那县| 大邑县| 原阳县| 鄂伦春自治旗| 鄢陵县| 桐庐县| 广宗县| 大邑县| 乌拉特后旗| 扬中市| 荥经县| 沂南县| 吉木乃县| 仁寿县| 道真| 夏邑县| 宝兴县| 泸州市| 商丘市|