劉亮
摘 ? 要:人臉識別技術是信息時代的產物,在日常工作管理、住宅安全管理、身份識別、司法刑偵、銀行自助服務等多個領域起到關鍵作用。人臉識別技術涉及多項技術,文章以PCA算法為主要切入點,介紹了一種改進算法,并闡述了算法的具體實現和對比優勢。
關鍵詞:人臉識別;主成分分析法;身份識別;信息時代
隨著信息時代的到來,人臉識別技術(Face Recognition Technology,FRT)已經在多個領域得到普及。人們也更青睞將其應用于在線辦公、網絡支付、電子門鎖等。因為這些技術的應用,不僅節省了時間和成本,而且辦事效率更高,極大地提高了人們的工作效率和生活質量。
1 ? ?人臉識別技術介紹
人臉識別技術是生物特征識別技術的一種,是根據生物個體(一般特指人)本身的生物特征來區分個體[1]。人臉識別技術是基于人的面部特征(具體表現為人臉大小、面部主要器官的位置信息),對錄入的人臉圖像或者視頻流,捕獲人臉圖像,提取出不同人臉所具有的特定信息,與已知的信息進行判斷和對比,最終確定被對比人臉的個體身份。
2 ? ?常見的幾種人臉識別方法
人臉識別有很多方法,具體包括:幾何特征識別法、特征臉(Eigenface)識別法;卷積神經網絡識別法、彈性圖匹配法、線段Hausdorff距離人臉識別法、支持向量機(Support Vector Machine,SVM)識別法以及最新的RetinaFace算法等。文章主要介紹以主成分分析法(Principal Component Analysis,PCA)[2]為基礎的經典人臉識別算法—特征臉方法。
3 ? ?基于PCA算法的特征臉識別方法
特征臉識別法是目前應用較為廣泛的一種方法,也是人臉識別技術中較為經典的方法,是真正使人臉識別技術投入實踐應用的第一種方法,其理論基礎是PCA。主要通過維度的圖像空間變換,得到具有可分性的低維線性空間投影,這些投影又可以作為表征人臉的合適向量。根據各向量間距值的大小以及訓練集內與閾值的比較,最終判斷出人臉具體權重。特征臉算法識別率高,但對訓練樣本的數量有較大需求,且是基于圖像灰度的統計特征,還需要進一步改進。
4 ? ?改進后的FisherFace
本文提出一種以PCA算法輔以基于線性判別分析(Linear Discriminant Analysis,LDA)算法的人臉識別新方案(FisherFace),對特征臉識別法進行了改進,具體體現在對PCA特征子空間維數與識別率的關系研究。
(1)系統開發環境,本設計方案設計在Windows10的系統環境下進行。
(2)系統應用工具,本設計方案需要用到PyChar2018.3+ Anaconda3+OpenCV。
(3)系統功能需求,具體的系統功能需求分析分為以下4個步驟進行:
首先,人臉檢測,通過調用分類器,在圖片中將人臉進行分析并利用特定的框架進行標記處理。
其次,數據庫存儲,根據實際情況及時更新人臉數據,存入數據庫,以備訓練。
再次,人臉識別,根據原有數據庫中已有的人臉數據信息,將輸入的未知人臉圖像數據進行對比。
最后,動態識別,利用攝像頭進行視頻畫面捕捉,可以實時識別出未知圖像中的人臉信息。
(4)界面設計,對程序輸入、輸出的顯示界面進行設計。
(5)數據庫設計,本設計基于yale人臉數據庫(該庫有165張100×100的.bmp格式灰度圖像,樣本是15人,每人共11張)。調用攝像頭自主拍攝樣本照片,按2人計,每人選擇11張作為樣本,加入數據庫。
4.1 ?算法思想基礎
在人臉識別技術中,PCA是較為常見的數據分析方法。其原理是通過線性變換將原始數據轉換為一組各維度無關的表示。主要目的是提取實驗數據的主要特征分量,一般多用于高維數據向低維數據的轉換[3]。通常,機器學習中需要的訓練樣本數量龐大,甚至會經常達到幾十萬維,資源消耗過大,一般算法難以承受。這也是降維的意義所在。
具體來說,PCA就是將一個高維向量x,通過特殊的特征向量矩陣,投影到一個低維的向量空間中。在這個過程中,可能會損失部分次要信息,但是卻可以根據主要的信息基本重構出所對應的原始高維向量u,這一過程就是降維。
在人臉識別方面,特征向量矩陣U即所謂的特征臉空間,向量UI被量化后可以看出人臉的大致輪廓。
LDA是一種監督學習的降維技術,它的數據集每個樣本是有類別輸出的,與PCA不同。PCA是不考慮樣本類別輸出的無監督降維技術。要將數據在低維度上進行投影,投影后希望每一種類別數據的投影點盡可能接近,而不同類別的數據類別中心之間的距離要盡可能大。因此,這一方案需要融入LDA的這一特點。
4.2 ?特征臉算法實現步驟
首先,需要有一個存儲有多張人臉圖像的集合,這里假設集合為C,人臉圖像數量為M。每張圖轉化為一列,將每一列進行合并,轉為矩陣,以得到圖像矩陣C。
其次,對行求均值后得到平均臉矩陣MeanC,若還原回像素矩陣,并獲得偏差矩陣,每張人臉都減去這個平均圖像最后可以得到偏差矩陣diffC。
最后,求協方差矩陣,并計算特征值和特征向量,由于本算法的協方差矩陣維度比較大,計算量龐大且無法實現存儲,需要用到以下方法:
假設T是預處理圖像的矩陣每一列對應一個減去均值圖像之后的圖像,則協方差矩陣為S=TTT,并且將S的特征值分解為TTT。由于這是一個非常大的矩陣,需要轉變方法,采用以下的特征值分解:TTTUI=λiUi。
兩邊同時乘以T,可得到TTT,這表示如果UI是TTT,則:
VM=TC是S的一個特征向量。T表示偏差矩陣,用T乘以TTT的一個特征向量即可得到協方差矩陣的特征向量u。每一行特征向量如果做成矩陣,多個圖像結合就可看作一個新的人臉,即特征臉。
由于在實踐中,樣本維數一般都會遠大于樣本數,特征值分解僅適用于方陣。這里就需要用到與特征值分解相同但是適用于任意矩陣特征值的奇異值分解,以求得協方差矩陣特征向量。
在特征向量和特征值中,越大的特征值(即主成分)對于區分圖像越有利。因此,只需要選取大特征值對應的特征向量。在本文中選取特征向量維數為40維,在大多數應用中,已經夠用了。
導入一個新的人臉,使用主成分分析后得到特征向量,求取每一個特征向量對于導入人臉的權重向量。利用獲得的權重向量與樣本集的權重向量計算歐式距離,判別未知人臉與訓練人臉之間的距離。
4.3 ?算法改進
通過PCA降維后的數據不能分類,比LDA缺少一個獨立標志每個數據的標簽。做回歸時,如果特征太多,會產生不相關特征引入、過度擬合等問題。
4.3.1 ?PCA原始降維
PCA能做到的是將整組數據整體映射到最方便這組數據的坐標軸上,映射時沒有利用任何數據內部的分類信息。這一方法雖然在表示數據方面比較方便,但是在分類上會變得困難。在增加了分類之后,兩組輸入映射到另一個坐標軸上,形成一個新的映射。這樣一來,兩組數據就比較容易區分,在低維上就可以區分,極大地減少了運算量。
4.3.2 ?加入改進后的LDA算法
對LDA算法進行改進,直接采用PCA降維后的值,而不是原始照片。這樣做的優勢在于以下幾點:
(1)數據量大大減少,有利于提高程序性能。
(2)多重共線性預測變量之間相互關聯,多重共線性空間會導致解空間的不穩定,進而使得結果不連貫。
(3)在十維空間方面的值只有0.02%,減少了變量多對查找規律建立的干擾。
(4)避免了僅分析變量層面,加強了對變量之間潛在聯系的研究。
4.4 ?對比及分析結論
改進后的算法正確率比單純使用PCA方法要高得多。由于算法本身存在限制,如果想得到更為正確的結果,對樣本有較高的要求。如光照、人的表情變化等多個方面都需要考慮。本方案也更換了不同的樣本進行測試。
當樣本選取了常規表情、光照也較明亮時,正確率很高。當樣本中人臉表情比較夸張,而實際測試時表情又比較正常時,正確率就相對較低。因此,樣本集應盡量多,保證有各種表情和不同的光照條件。
在降維方面,本方案采用了40維,實際22維完全可以滿足使用需求。
5 ? ?結語
隨著社會發展,人們對人臉識別技術的應用會越來越廣泛,不斷增加的需求也會推動人臉識別技術向更高的識別率發展。在這樣的時代背景下,構成人臉識別技術基礎的算法也將不斷得到改進,各類算法之間的優勢會在未來得到融合,形成新的算法。本方案提出的算法也只是眾多算法中的冰山一角,人臉識別技術算法研究還有很長的路要走。
[參考文獻]
[1]張翠平,蘇光大.人臉識別技術綜述[J].中國圖象圖形學報,2000(11):885-894.
[2]韓軍.基于彈性束圖匹配與隱馬爾科夫模型的人臉識別算法研究[D].蘭州:蘭州理工大學,2012.
[3]周志華.機器學習[M].北京:清華大學出版社,2016.