馮 偉,楊春麗*,劉 峰,劉光宇,2,程 遠,周 豹,趙恩銘,周維云,趙繼強
(1.大理大學工程學院,云南 大理 671003;2.上海交通大學海洋智能裝備與系統教育部實驗室,上海 200030;3.中國人民解放軍32268部隊信息科,云南 大理 671003)
隨著人工智能的發展,身份信息的安全性和準確性變得尤為重要,人臉匹配由于其唯一性和不可復制性在信息安全問題上發揮了至關重要的作用[1]。人臉圖像采集方式靈活、方便,通過手機、相機等設備就能隨時完成人臉圖像的采集[2]。在采集人臉圖像時會受到噪聲干擾,所以本文在加入不同程度噪聲情況下完成人臉匹配。
人臉圖像匹配的關鍵是人臉特征提取[3]。人臉面部細節的信息量特別大,人臉特征的提取比較困難。對于特征提取,一般有兩種方法,第一種方法是根據人臉的幾何特征,提取人臉圖像器官幾何特征;第二種方法是將人臉圖像作為一個矩陣進行處理,對這個矩陣進行變換計算特征值和特征向量,特征向量即為“特征”。主成分分析法(Principal Component Analysis,PCA)屬于上述的第二種方法[4]。它是一種數據降維方法,其設計思路是把m維的特征直接映射到k(k<n)維上,這個k維特征是新的正交特征,全新構造得出的k維特征也被叫作主元,即為保留原數據最大的方向,此方向使數據的損失降到最低[5],所以能有效地解決圖像空間維數過高的問題,已經成為人臉匹配領域非常重要的理論。
基于PCA的人臉圖像匹配技術,針對人臉特征進行面部特征提取,利用人特有的面部特征作為人臉匹配的依據[6]。由于周圍環境的干擾,采集到的人臉圖像可能存在噪聲的干擾,所以對待匹配圖像加入不同程度的高斯噪聲,再用PCA方法完成人臉匹配,驗證PCA人臉匹配的有效性。
在PCA人臉匹配中,數據處理的主要目的是減少特征之間的冗余性,降低維度,并提取有用的主成分,一般包括去中心化和歸一化兩個步驟[7]。
中心化是指將每個特征的值都減去對應特征的均值,使得所有樣本點都以原點為中心。假設有n個樣本數據和m個特征,則樣本矩陣為
其中,xi∈Rm表示第i個數據樣本,其各個特征為xij。則中心化矩陣為
歸一化是指將每個特征都縮放到相同的比例范圍內。由于采集到的人臉圖像的各個特征的尺度可能存在差異,如果不進行歸一化處理,則某些特征的重要性可能由于其數值范圍較大而被過度強調,影響分類器的性能。如果對人臉的所有特征都單獨分析,不嚴謹地降低指標,就有可能會導致一些重要的信息數據丟失[8]。
在PCA人臉匹配中,通常采用的方法是將數據中的每個特征都除以對應特征的標準差,使得每個特征的方差為1。經過數據處理后,可降低維度,提取主成分,并更好地反映原始數據的本質特征,有助于人臉匹配的準確率。PCA的核心理念就是對圖像所涵蓋的數據進行分析,進而提取利用價值較高的部分,這部分信息能很好地體現原人臉圖像的特征,幾乎不損失原圖的主要特征信息,而且這幾個信息之間一般不存在關聯,可通過它們對原人臉圖像進行描述,應用此類方法能夠將有效信息得以保留并實現數據降維[9]。
假設有N幅人臉圖像用于訓練,M幅人臉圖像用于測試,把分辨率為m×n的圖像按照每列相互連接,組成H=m×n維的列向量。整個人臉庫用于訓練的圖像便構成一個矩陣KH×N,在N幅中的第i張圖像存儲在矩陣KH×N的第i列。同理可得測試樣本矩陣,便可得出用于訓練的樣本平均值Xave:
根據用于訓練的人臉圖像與平均臉的方差構成協方差矩陣:
在獲取人臉圖像的特征臉時,可首先通過計算得出其特征值,然后按照特征值大小順序依次排序,并從中選擇前k個特征值,最后按照順序獲得對應的特征向量。這些特征向量就構成了特征子空間矩陣,也就是特征臉[10]。
原來基于原始數據構成的空間稱之為測量空間。進行分類以及匹配的空間稱之為特征空間。對于特征空間來說,其中的每一個樣本都可以通過向量的方式來表示,其本質含義就是空間中的點。PCA算法的主要原理是高維空間的數據投影到低維的特征空間中,用幾個重要特征信息來表示原始的信息[11]。向量投影過程如圖1所示。

圖1 向量投影圖
具體投影過程的推導如下:
向量xi在v方向上的投影為x'i,其數學表達式為
在(6)式中θ是xi與x'i的夾角,兩向量之間的內積表示為
因此有
然而坐標系中內積可以用(9)表示:
vT·xi可以用來表示投影后的數值大小。因此沿著某一特征分布的數值中,若該方向的方差越大,其表示該方向上的信息越充實,即主成分的特征越多。用(9)表示投影得數值大小,然后計算投影后的方差。假如數據已經標準化,有vT·x=0。對投影后得方差進行推導,結果為
又因||v||=vTv,則(11)式變換為
求(12)式的最大值,運用拉格朗日乘子法將(12)式推導轉換為(13)式:
其中,f(v,λ)的平穩點與(12)式中的最大方差問題是等價的,對(13)求導得:
轉換推導,將(14)方程等價于:
其中,Cv=λv就是求特征值和特征向量的方程,再回到求最大方差問題:
在(15)式的推導中,要求的方差是我們所求的特征值,只要把Cv=λv的特征值計算出來,再對特征值按從小到大的順序進行排列,選擇幾個最大特征值,并求出特征值對應的特征向量,用這幾個特征向量來完成數據集在方向上的投影[12]。
PCA 算法原理是先將向量xi在v方向上的投影為x'i,其次計算xi與v的內積,用vT·xi表示數值大小;再計算投影后的方差,并求出特征值和特征向量;最后對特征值進行排列,選取幾個最大的特征值,求出特征值所對應的特征向量,這些特征向量就是數據集在v方向上的投影[13]。
在得到特征空間后,系統還無法對人臉圖像進行匹配,還需要對投影到特征空間的向量進行計算。基于PCA 的人臉匹配方法通常利用距離函數作為最近鄰法分類器對人臉圖像進行分類[14]。最近鄰法分類器的原理是將待匹配人臉圖像和預存人臉圖像投影到特征空間后,計算出特征空間中待匹配人臉圖像和預存人臉圖像間的距離,從而選擇距離最小的待匹配圖像作為匹配結果。距離有歐式距離、明式距離、絕對值距離和馬氏距離,本文采用的是歐式距離。歐式距離公式為
其中,d(x,y)表示距離;x表示一個測量樣本的特征量;y表示一個訓練樣本的特征量。
在眾多人臉匹配方法中,PCA算法是應用最廣泛和最經典的方法之一。人臉圖像涵蓋了大量的數據,特征維數處于較高的水平,所以計算量一般情況下相對較大。為了有效降低特征的表示維數,霍特林系統地探討了利用PCA 算法進行特征維數降低的方法,這種方法的復雜性低,在當前應用較廣,而且在降維方面能夠體現優良的效果[15]。主成分都是初始變量構成的線性組合,并且不超過初始變量的總量和保留了初始變量的核心信息。
基于PCA算法的人臉匹配是先進行人臉采集,再將采集的人臉圖像進行預處理,得到統一分辨率的人臉圖像,然后將圖像分為測試集和訓練集,分別對測試集和訓練集用PCA算法降低每張人臉圖像特征的維數,以提高算法效率。將訓練集和測試集投影到低維空間,得到對應的特征向量。對于每個測試樣本,在訓練集中用歐式距離找到最短距離,并作為人臉匹配的結果。基于PCA算法的人臉匹配流程如圖2所示。

圖2 PCA人臉匹配流程圖
為了驗證PCA人臉匹配的有效性,實驗環境是在Intel(R)Core(TM)i7-8550U CPU @ 1.80GHz 1.99 GHz 的計算機軟件Matlab2019b上進行。實驗采集了20個人不同表情和角度拍攝的240張人臉圖像,將其分為測試集和訓練集,其中測試集有40張,訓練集200張,每張圖像為180*200的像素。圖3是測試集中的人臉圖像。

圖3 測試集中人臉圖像
實驗可以任意選取測試集中任何一張照像作為待匹配人臉圖像,實驗以測試集中第1、第2張人臉圖片為例,選取第1、第2張人臉圖片在沒有加噪聲的情況下進行匹配,實驗結果如圖4、圖5所示。

圖4 第1張實驗匹配

圖5 第二張實驗匹配結果
由于在采集和傳輸人臉圖像時容易受到噪聲的污染,所以本實驗先對待匹配人臉圖像加入不同程度噪聲后再進行匹配,高斯噪聲是自然界中最常見的噪聲。為了驗證PCA人臉匹配的抗噪性,對測試集中的所有人臉圖像都加入方差為0.01的高斯噪聲,具體測試集加噪結果如圖6所示。

圖6 加入0.01高斯噪聲的測試集
對測試集中的圖像加入方差為0.01 噪聲不再進行人臉匹配,以測試集中第1、第2張人臉圖像為列,實驗結果如圖7、圖8所示。

圖7 對第1張加噪聲的結果

圖8 對第2張加噪聲的結果
對沒有加入噪聲和加入噪聲的人臉圖像進行匹配,完成人臉匹配時間和人臉匹配準確率測試,具體測試結果如表1所示。

表1 匹配完成時間和準確率
通過實驗驗證PCA 人臉匹配方法能對人臉不同表情和加入較大噪聲的情況下準確地完成人臉匹配,并能找到與測試圖像最相似的訓練圖像作為匹配結果。實驗結果顯示基于PCA 算法的人臉匹配技術,加入噪聲和未加入噪聲的匹配準確率一致,說明PCA人臉匹配方法具有很好的抗噪性,平均完成時間為1.2494,匹配準確率為97.25%。
本文采用了PCA方法完成人臉匹配,先將采集的人臉圖像統一維度,然后經過數據處理,計算協方差矩陣,特征分解,投影到低維空間,最后匹配測試圖像。實驗結果顯示,基于PCA的人臉匹配能準確完成人臉匹配,對不同角度拍攝和加入不同程度噪聲的人臉圖像能準確、快速地完成人臉匹配,抗噪性好,匹配結果非常準確。