?

基于PCA和非線性SVC的小數據人臉識別

2019-12-24 07:27張持健張燕習
無線電通信技術 2019年1期
關鍵詞:特征提取人臉人臉識別

張持健,劉 雪,張 賀,張燕習

(安徽師范大學 物理與電子信息學院,安徽 蕪湖 241000 )

0 引言

人臉識別是基于人的五官信息提取面部特征,用以進行身份辨識的智能識別技術。1965年,Chan和Bledsoe設計了第一個人臉識別系統,所采用的主要方法是基于人臉幾何結構特征辨別法,從而進行對人體的身份識別。該方法提取并分析面部剪影曲線的結構特征; 1991年美國MIT的Turk和Pentland提出著名的特征人臉識別方法,使用特征臉與歸一化的協相關量作為人臉識別的性能測試基準算法,從而進一步提高了人臉識別的準確度。而人臉識別的應用發展則是由美國 “911事件”推動,2006年FRV國際測試走進人們的視線,2008年北京奧運會在安保方面應用了大規模的人臉識別技術[1]。

因此,人臉識別不僅是當今科學家們研究的熱點,也是應用領域經久不衰的重要研究課題。但是,隨著科學技術的發展,在數據集越來越紛亂的當下,人臉識別也逐漸由單一式研究發展為多項式研究,從而衍生出大數據集的人臉識別系統和小數據集的人臉識別算法2個分支方向。在小數據集的基礎上,存在一些經典的人臉識別研究方法。

文獻[2]提出基于PCA特征提取和距離哈希K近鄰分類的人臉表情識別,這種方法主要利用了PCA對高維數據的特征提取,驗證了PCA主成分分析在多維數據中的應用效果十分優秀。但PCA算法和K近鄰算法的結合在小數據集上的應用效果較為良好,而在多個特征多人表情識別中則效果不盡人意。文獻[3]提出PCA算法和SVM支持向量機算法的人臉識別,在ORL數據庫中識別效果良好。但因為作者構建多類SVM算法時,選取的核函數不同識別率也隨之改變,因此需要進行多次試驗以求得最優核函數以及其他相關參數,耗費了大量的實驗時間。

本文提出一種基于PCA主成分特征提取和數據降維,聯合可自主選取最優參數的SVC非線性支持向量機的組合學習器,用于精準分類并節省人工選取參數時間成本的人臉識別應用。實驗結果表明,本文提出的組合學習器在經典的ORL和WILD數據庫中不僅識別精度高,和同類方法相比該學習器識別時間成本更低。

1 基于PCA的表情識別

1.1 數據降維和特征提取

在圖像數據的原始高維空間中,包含著的冗余信息和噪聲信息,會在一些實際應用中(例如圖像識別或圖像處理等過程中)造成一定的誤差干擾,不僅增加了計算的復雜度,而且降低了識別效果的準確率。研究者期望通過對這樣的高維數據使用降維技術,進行空間變換處理,以減少冗余信息造成的誤差,從而提高識別的準確度。主成分分析 (PCA)是多類變量降維處理與分析研究問題中最早出現的基礎理論之一,它起源于通信與系統理論中的 K-L散度[1]。PCA通過一種線性變換將高維樣本數據投影到低維空間中生成對應低維樣本數據,并發現一組比原始的像素基向量更能有效表示輸入數據的基函數[4]。因此,只需要保留一部分特征,PCA就能揭示某些復雜數據集中的潛在隱含信息。即描述對象的最顯著的特征[1]。人的面部具有多種顯著的人臉特征,在PCA的基礎上可以形成部分特征提取的PCA人臉識別[4]。

1.2 基于PCA的數據降維和特征提取

本次實驗中,通過使用PCA的最近重構性來進行圖像數據的降維處理。

(1)

(2)

(3)

PCA算法流程為:

通過交叉驗證法選取最佳低維空間維數為d;

② 過程: 對所有樣本進行中心化操作:

(4)

至此,就是主成分分析的優化目標,即通過對樣本數據進行協方差矩陣的特征值分解,從而得到經原數據集下降維的新數據集,并且把這個已經降維的新數據集用于接下來的非線性支持向量機svc算法中,作為數據輸入。

在使用ORL數據庫進行實驗時,輸入的樣本數據大小為m*n,m,n分別為圖片數據的長和寬。令d為輸入的維數,一般情況下d=m*n。d'則為通過PCA處理后的數據維數,通常使用交叉驗證得到最優的降維后維數。輸入的訓練集樣本為:x=[x1,x2,...,xN],共N個樣本。

2 SVC非線性支持向量機及其優化

支持向量機簡單來說,它是一種二分類模型。SVM在小數據集上比較容易抓取數據和特征之間的非線性關系,因此SVM在一般情況下可以解決部分非線性問題,并且避免神經網絡結構選擇和陷入局部最優缺陷。但是由于SVM對于有殘缺的樣本數據和一些非線性問題并沒有通用的解決方案。研究者發現采用核函數后,支持向量機可以用于正規的非線性分類。本文采用的支持向量機SVC就是python中的非線性分類支持向量機。當訓練數據不可分時,通過使用核函數學到一個非線性支持向量機[4]。

2.1 SVC非線性支持向量機

因此2類樣本的幾何間隔最大化從而等價于2類樣本間隔最小化:

(5)

在此引入拉格朗日乘子αi:

(6)

得到目標函數對偶形式:

(7)

分類決策函數為:

(8)

在SVM支持向量機的基礎上,給定核函數,利用求解線性分類問題的方法求解非線性分類問題的支持向量機。非線性分類SVC可以支持多分類應用,并且有多個核函數提供選擇。如線性核函數Linear、多項式核函數poly、RBF高斯核徑向基函數以及sigmoid核函數。

本文算法中,使用的是RBF的高斯徑向基核函數(Gaussian Radial Basis Kernel Function):

(9)

(10)

式中,C為懲罰項系數,ε為松弛變量。

引入拉格朗日乘子后的對偶問題目標函數為:

(11)

分類決策函數變為:

(12)

2.2 網格搜索算法優化SVC

SVC的主流算法是O(n)2,因此,當出現大數據集時,SVC明顯計算量爆增。在本次實驗中使用SVC中的高斯徑向基核函數來進行分類實驗。高斯核徑向基函數中的參數γ和C懲罰項無法通過概率方法進行計算,只能通過窮舉實驗求出。這樣就更增加了實驗中的時間成本和計算量。因此,本文提出改進型的SVC算法,即結合網格搜索法實現算法自動尋優的SVC算法。

2.2.1 網格搜索法原理

網格搜索法是自動化調整參數值中的常見技術之一。自動化調參進行參數優化省去了人工調參的繁瑣和經驗不足。因此,在PCA和SVC算法中加入網格搜索技術,使得組合的學習器通過調節每一個參數來跟蹤評分結果,在運行過程中自動進行交叉驗證,最終使得學習器的效果性能為最佳[5]。

網格搜索法,將待搜索參數gamma(γ)和C在一定的空間范圍內劃分成網格,先使用大的步長對網格中的參數進行大范圍內的粗略搜索,在確定一個最優參數區間后,使用小步長再進行精細搜索[6]。使用網格搜索算法不但保證了搜索參數過程中的準確度,也節省了搜索時間。

SVC算法流程如下:

① 輸入

C≥αi≥0,i=1,2,...,N,

(13)

② 計算

(14)

(15)

③ 構造分類決策函數

(16)

④ 加入網格搜索算法,求得高斯核函數最佳參數gamma和C。

3 實驗結果與分析

3.1 仿真環境

實驗利用python編程實現,使用Olivetti實驗室的ORL人臉庫和從外部網站Labeled Faces in the Wild獲取的人臉識別數據庫。

ORL人臉庫數據集中一共有400幅人臉圖像(其中總共包含40個人,每個人各有10幅人臉圖,每幅圖像大小為112 * 92,每幅圖像的維數等于10 304)。

ORL數據集中的面部表情和細節有不同程度的改變,因此導致數據集中同一個人的人臉姿態也有不同程度的變化。對于某些個體,圖像在不同時間拍攝并且改變照明和面部細節,所有的圖像均采用黑色均勻背景,個體處于直立的正面位置。

Labeled Faces in the Wild集是帶標記的人臉圖像,里面包含了數千張公開的人臉照片。每個圖像包含(62*47),接近3 000像素。

本次實驗環境為Windows 10 系統,處理器為i5。編輯學習器使用的語言為python 3.7版本,搭建的識別系統運行平臺為PyCharm。

3.2 算法過程

① PCA特征提取

首先,將ORL人臉庫中400張圖像標注劃分為2類數據:訓練數據集和測試數據集。讀進訓練數據集中隨機的300張人臉圖像,使用PCA對其進行特征提取和降維的預處理。實驗將PCA主成分的數據確定為150維,經過PCA處理,訓練集中每個人的臉樣本特征向量由102 304維降維150維。

圖1為原圖和pca提取特征后的圖片。

圖1 原始圖像與PCA特征提取后的圖像對比

② 構建高斯徑向基核函數的非線性支持向量機

在多類SVC訓練階段,每一對分類直接定義一個二類非線性支持向量機,一共有N*(N-1)/2個類別的非線性支持向量機組成一個多分類的非線性支持向量機。同時,指定每個類別的權重是它出現的頻數的倒數。在分類階段,通過投票確定其類別。

③ 網格搜索

通過網格搜索和交叉驗證確定SVC最佳參數Gamma=0.005,C=10,對ORL測試集中的10個人的100幅圖片進行分類,識別率為:Train_score:1.0,Test_Score:0.96。

在Wild數據集上做分類,識別率為:Train_Score:1.0,Test_Score:0.85。其中,訓練分數為1.0,說明該分類器已達到在訓練數據上百分百的分類準確率;測試分數為0.96,說明該分類器在用于驗證系統模型數據集上的準確率為96%。

④ 本文所用的學習器和其他研究者所用的方法在WILD數據集上準確率和時間成本對比如表1所示。

表1 人臉識別方法效果比對

由表1可知,本文提出的PCA&SVC算法識別分類器與其他學者提出的PCA&SVM算法相比,對數據集的分類準確率有所提高,且節省了人工選取參數的時間成本;與另外一種常用的PCA&KNN分類器相比,雖然訓練分類器所用時間稍顯過久,但準確率有了質的飛躍,而單獨的非線性支持向量機做人臉識別則準確率更為低下。

3.3 實驗總結

本次實驗提出基于PCA和SVC算法相結合的人臉識別算法,在應用小數據集的人臉識別上效果比單獨的SVC分類器要好,在應用數據量大的數據集上效果略差。但總體來說,運算速度和精度都比單獨的SVC分類器要有所提升。相比文獻[2]提出的PCA和K近鄰的學習器組合來說,本文提出的組合學習器效果更優,而相對于文獻[1]提出的PCA和SVM的識別算法,本文節省了大量的時間成本。

4 結束語

隨著科學技術的進步和智能化的發展,人臉識別的應用將愈來愈廣泛,而對人臉識別的精度也將成為一個研究熱點。本文針對其他方法的參數尋優時間過程提出了改進型SVC算法,經試驗證明有良好的效果,而且準確度也得以保持。存在的不足是本文提出的算法準確度仍有可提升的空間,對本算法進行研究和改進將是接下來的實驗目標。

猜你喜歡
特征提取人臉人臉識別
人臉識別 等
有特點的人臉
一起學畫人臉
玻璃窗上的人臉
揭開人臉識別的神秘面紗
空間目標的ISAR成像及輪廓特征提取
基于Gazebo仿真環境的ORB特征提取與比對的研究
基于特征提取的繪本閱讀機器人設計方案
人臉識別技術的基本原理與應用
人臉識別技術研究與應用進展概述
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合