趙亞鵬
摘 要:為了解決快速、準確人臉識別的問題,提出了一種基于并行PCA算法的人臉識別方法。利用主成分分析法(PCA)能夠降低特征維數(shù)、容易實現(xiàn)、訓練時間較短的特點,設計實現(xiàn)了一種并行PCA算法,首先根據(jù)整幅圖像提取出4幅部分人臉圖像,然后將整幅圖像和4幅部分圖像同時由相同結構的PCA模型進行學習,提取人臉特征向量,通過歐氏距離進行測試圖像與訓練圖像的匹配計算,最后通過測試圖像與5級并行PCA模型的識別結果進行加權決策,從而實現(xiàn)人臉識別的目的。利用ORL人臉庫的圖像數(shù)據(jù),在Matlab進行的仿真實驗結果表明,該方法在準確性上有了很大程度的提升,識別的速度也相對較快,具有較高的魯棒性。
關鍵詞:PCA算法;人臉識別;五級并行PCA模型;權重計算;均值濾波
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)19-0147-02
Research on Face Recognition System Based on Parallel PCA Algorithm
ZHAO Ya-peng
(College of Information Science and Engineering, Shandong University of Science and Technology, Qingdao 266590, China )
Abstract:In order to solve the problem of fast and accurate face recognition, a face recognition method based on parallel PCA algorithm is proposed. Using principal component analysis (PCA) method can reduce the dimension of features, easy to implement, training time is short, the design and implementation of a parallel algorithm for PCA, first of all according to the whole image to extract the 4 part of face images, then the whole image and 4 partial images at the same time by the same structure of the PCA model of learning, face feature vector extraction, the Euclidean distance for matching calculation of the test images and training images, finally through the test image with the five level parallel PCA model identification results are weighted decision, in order to achieve face recognition. Using the image data of the ORL face database , the simulation results in Matlab show that the method has a great degree of improvement in accuracy, the recognition speed is relatively fast, with a high degree of robustness.
Key words:PCA algorithm;Face recognition;Five level parallel PCA model;Weight calculation;Mean filter
1 概述
隨著智能終端設備(手機、Pad、門禁等)的不斷發(fā)展,身份識別已經(jīng)成為我們?nèi)粘I畹闹匾M成部分,身份驗證技術被廣泛應用于各個領域,特別是人們對于個人隱私信息的保護,使得身份識別再次成為關注的焦點。人臉識別作為身份識別的重要手段之一,因其具有識別率高、采集性強、接受性高等特點,在身份識別的各類方法中具有獨特的優(yōu)勢,成為了目前比較熱門的研究領域。
目前,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks)是圖像識別領域最重要的研究熱點,而且在語音識別領域也取得了不錯的效果,但是卷積神經(jīng)網(wǎng)絡的整個訓練過程比較費時,而且實現(xiàn)相對復雜,而基于PCA算法的人臉識別技術因其自身存在的許多缺陷,一直沒有被廣泛應用,但該方法實現(xiàn)簡單、學習速度較快,因此,本文主要研究改進的并行PCA算法,以彌補傳統(tǒng)PCA算法在人臉識別領域的不足。
本文提出的基于并行PCA算法的人臉識別技術,首先對原始圖像進行預處理,如灰度歸一化和中值濾波等操作,以消除圖像噪聲、光照等因素造成的影響,使得特征提取更加準確可靠。然后,通過5級并行PCA模型獲取數(shù)據(jù)的不同特征矩陣,然后將訓練圖像和測試圖像分別進行子空間的投影,利用歐氏徑向基函數(shù)(Euclidean Radial Basis Function)進行人臉的匹配,最后根據(jù)訓練得到的權值向量進行加權決策。本文通過ORL人臉數(shù)據(jù)庫的仿真實驗證明,該算法的效果明顯好于PCA算法。
2 并行PCA算法
PCA(Principal Component Analysis)即主成分分析技術,PCA是基于K-L變換的統(tǒng)計學分析方法,是多元分析中常用的方法,其基本思想是將高維數(shù)據(jù)投影到低維空間,主要過程在于特征值的計算和矩陣的降維。將PCA應用于人臉識別時,首先將圖像轉化成矩陣向量,然后進行矩陣的奇異值分解(Singular Value Decomposition),將高維向量通過計算得到的特征向量矩陣投影到低維的向量空間,從而減少數(shù)據(jù)的計算量。
2.1 基于并行PCA算法的人臉識別流程
本文中提出的并行PCA算法,正是基于上述的PCA算法,通過建立5級的PCA算法模型同時進行數(shù)據(jù)特征的學習,使得最終的人臉識別準確率得到進一步的提高,具體的人臉識別流程如圖1所示。
2.2 并行PCA算法的實現(xiàn)的步驟
2.2.1 人臉圖像的預處理
首先,需要把ORL人臉數(shù)據(jù)數(shù)據(jù)庫的所有訓練圖像大小進行歸一化,并轉化為像素矩陣,矩陣大小記為,為矩陣的行數(shù),為矩陣的列數(shù)。之后利用均值濾波和灰度歸一化進行圖像的去噪處理,以消除光線等問題對圖像造成的影響,以方便后期的特征提取等操作。
2.2.2 人臉圖像的PCA降維
根據(jù)PCA的原理,可以將每一張圖像看成是一個高維的向量,所有的圖像可以看成是這個高維空間中的一點,PCA要做的就是找出另外一個盡可能多的反應圖像特征的低維空間。
假如樣本由n張大小為p*q的人臉圖像組成,那么每一張圖像可以保存為一列向量,向量維數(shù)是p*q,真?zhèn)€樣本可以看成是一個行數(shù)為n,列數(shù)為p*q的矩陣記為矩陣A。
根據(jù)上述過程,首先求出矩陣A的協(xié)方差矩陣,然后求出協(xié)方差矩陣的特征值,選取前m個最大的特征值,然后求出對應的特征向量,組成一個特征矩陣。通常所說的“特征臉”就是這些特征向量,而特種功能矩陣就是“特征臉”空間或者說子空間。然后可以將每一張圖片投影到該子空間,得到了每一張圖像的投影矩陣(l*m)。
2.2.3 人臉圖像的識別
對于待識別的圖像,也可以看成是一列向量,投影到子空間得到一個投影矩陣,然后一一求出這個投影矩陣與樣本圖像投影矩陣最相似的。然而有可能該人臉不是人臉庫中的,所以最相似的人臉也不一定是同一個人臉,還需要設置一個閾值來判斷待識別人臉是否是人臉庫中的。
人臉識別部分正是基于上述的PCA算法,在本文所提出的并行PCA模型中,是由5級的PCA模型同時進行人臉識別這一操作,最后根據(jù)訓練得到的權值向量進行決策,通過使用多個PCA模型,從而使得整個識別過程的準確率得到進一步的提升。
3 系統(tǒng)設計及實現(xiàn)
3.1 系統(tǒng)總體設計
本文中所提出的基于并行PCA算法的人臉識別系統(tǒng),包括人臉圖像采集模塊、圖像預處理模塊、識別模塊。人臉圖像采集模塊主要是采集訓練圖像數(shù)據(jù)和測試圖像數(shù)據(jù),并由原始圖像提取出4幅與之對應的部分圖像;圖像預處理模塊主要就是進行圖像歸一化和圖像的去噪工作,圖像的歸一化包括大小歸一化和灰度歸一化,可以使用比較常見的直方圖均衡化等技術,而圖像的去噪可以使用中值濾波技術,以去除比較常見的高斯噪聲等;人臉識別模塊是基于5級相互獨立的PCA模型進行特征值的學習和比對,而且通過訓練得到的權值向量進行最終的是臉識別決策。整個系統(tǒng)的實現(xiàn)是基于Matlab進行仿真實驗的,實驗數(shù)據(jù)來自劍橋大學AT&T實驗室創(chuàng)建的ORL人臉數(shù)據(jù)庫。
3.2系統(tǒng)功能模塊實現(xiàn)
3.2.1人臉圖像采集實現(xiàn)
圖像采集模塊主要就是將存儲在本地的圖像文件通過Matlab的imread函數(shù)讀入矩陣中,以方便后期的PCA操作,其核心語句為Image{t}=imread([[filepath,F(xiàn)ilDir(ii).name],'\',ImDir{ii}(jj).name]);
使用上述語句即可讀入訓練數(shù)據(jù)和測試數(shù)據(jù)文件。
3.2.2 圖像預處理模塊
該模塊的主要任務就是利用中值濾波和直方圖均衡化進行圖像的去噪工作,以消除不同光照和圖像噪聲的影響,提高準確率。其核心代碼為:
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);
end
end
S2=round((S1*256)+0.5);
for i=1:256
GPeq(i)=sum(GP(find(S2==i)));
end
3.2.3 識別模塊
圖像經(jīng)過之前的預處理之后,需要將圖像矩陣轉化為列向量,一幅圖像就是一列向量,整個訓練圖像構成了整個特征空間矩陣,測試圖像也會轉化為一列向量,之后會利用矩陣之間的運算進行圖像的分析計算。識別模塊的工作就是根據(jù)測試圖像和之前所有的訓練數(shù)據(jù)進行對比,查找到與之最相似的圖像,實驗的結果如圖2所示。
4 結論
PCA算法作為傳統(tǒng)的人臉識別算法,因其自身存在的許多缺陷而沒能發(fā)揮較好的作用,但是其自身具有其他算法所不具有的特點,本文設計的并行PCA算法雖然是基于PCA算法,但是借鑒了卷積神經(jīng)網(wǎng)絡的多層結構,而且使用加權操作進行最終人臉識別的決策?;贠RL人臉數(shù)據(jù)庫的測試結果表明,該并行PCA算法的準確率和魯棒性均得到了進一步的提升,與其他的單獨PCA算法具有十分明顯的優(yōu)勢。
參考文獻:
[1] 張利芳. 基于PCA算法的人臉識別系統(tǒng)研究[D].太原:中北大學,2015.
[2] 楊海燕,蔣新華. 基于并行卷積神經(jīng)網(wǎng)絡的人臉關鍵點定位方法研究[J]. 計算機應用研究, 2015, 32(8): 2517-2519.
[3] 楊穎嫻. 基于PCA算法和小波變換的人臉識別技術[J]. 微電子與計算機, 2011, 28(1): 92-94.
[4] 段寶彬,韓立新. 改進的卷積神經(jīng)網(wǎng)絡及在碎紙拼接中的應用[J]. 計算機工程與應用, 2014, 50(9): 176-181.
[5] 顧佳玲,彭宏京. 增長式卷積神經(jīng)網(wǎng)絡及其在人臉檢測中的應用[J]. 系統(tǒng)仿真學報, 2009, 21(8): 2441-2445.
[6] 伊力哈木·亞爾買買提. 基于改進型PCA和LDA融合算法的人臉圖像識別[J]. 計算機仿真, 2013, 30(1): 415-418.