玄 冉,姜明明,王忠祥,米世新,劉涵玉
(山東農業工程學院,山東 淄博 255000)
伴隨著高新技術及傳感器的普及和應用,生物識別已經逐漸被揭開神秘的面紗,作為生物識別的一項重要分支,人臉識別已經成為研究領域的熱門話題。生物識別在安全保障等眾多領域被廣泛應用,具有不易偽造、方便快捷、防偽性能好等優點。本設計為基于人臉識別的門禁系統,可以將疑似人員設置為庫內人員,當小區里的人需要外出時進行人臉采集與人臉定位,然后與庫內人臉進行比對;當識別為庫內人員的時候,發出疑似人員不可外出的警示,否則提示可以放開門禁給以通行。
人臉識別,是利用攝像機采集到的含有人體面部的圖像[1],通過相關技術進行檢測,主要識別人體面部特征信息加以分辨,最終實現人類個體分類識別的一項技術。
綜上,可以大體將人臉識別的過程分為四個步驟,如圖1所示。

圖1 人臉識別流程圖
1)圖像采集。人體面部表情采集易受到環境因素的影響,不容易實現,人臉圖像可以通過攝像頭進行記錄,許多著名實驗室會通過嚴格控制圖像采集的位置,規范地創建包括姿態、表情變化在內的人臉庫,通過人臉庫進行相應的研究。
2)人臉檢測。主要用于面部識別的預處理,它能通過處理將面部的位置標出。人臉檢測的目的是透過面部豐富的特征信息篩選出有用的特征,由于環境條件的干擾是隨機的,必須將原始采集到的圖像進行圖像預處理。圖像預處理的方法有中值濾波、灰度拉伸、歸一化處理及銳化等[2]。
3)特征提取。針對篩選出的最有利分類的特征信息,進行適當降維,保留最有效的特征信息。
4)分類識別。將采集的面部特征信息整合成數據,再與數據庫比對匹配,當相似度到達一定閾值,則將數據庫匹配的結果輸出。其本質就是根據特征相似關系確定人物信息。
PCA 是縮寫,展開以后就是Principal Component Analysis[3]。利用統計學原理,可以按照一定的原則,找到它們之間的不同進行分類,簡化計算步驟,提高計算機的運行速率。將圖形進行信息處理主要是為了降維,也就是將三維立體的人體圖像特征轉換到二維當中。正是由于它的這個功能,這項技術也被廣泛地運用在圖像壓縮的處理當中,其最主要的依據是KL變換。這樣就可以達到合并數據、簡化數據的效果。
在整個前期圖像輸入過程中,都是以灰度值來進行統計的,即使其變成0~255灰度范圍內的像素點。當把所有的像素點進行分類統計以后,其會構成一個矩陣,輸入到之前已經創建好的一個坐標空間中,然后經過KL變換,就可以很容易地找到需要的信息,這就為之后圖像處理簡便化奠定了基礎。因為此時已經收集到的數據其實是三維的,然后經過統計學,保留最主要區別的特征進行降維就可實現想要的結果。在PCA中,主要利用這個構成的向量作為基底。
經過這項處理之后就能得到特征空間了,接下來的任務就是旋轉使維數降低[4]。
這個部分具體包括下面講述的幾個環節:捕捉輸入圖像,創建模板庫和特征空間,獲得特征值及對應向量。以下是有關這三個部分的詳細介紹。
1)第一部分。利用攝像機進行圖像采集和捕捉。首先,將采集到的圖像進行預處理得到屬性信息,判斷是否需要進行二值化,本文采用的算法是KL算法,KL算法在線性算法中能量集中效率最高,圖像壓縮后均方誤差最低。此種變換方式最主要的限制條件就是背景要一致,完全可以構建一個簡單的模板庫。
2)第二部分。在上述步驟完成以后,多放幾張同一個人的圖片進去,這就構成了一個訓練矩陣。因為格式是相同的,KL 變換之后就變成一維的,那么每個照片都能夠統計為一個點,這樣就使得整個空間更簡化了。
3)第三部分。上述步驟完成后,繼續進行下一步,將結果創建一個樣本集,那么出現的協方差矩陣如下。

CA為 矩陣。A是在進行灰度二值化后與平均矩陣差值。Xi是平均人臉圖像,M為被測人員數量。
在上述CA得到以后,還要找到人和對應的特征向量。因為本文用到的算法以KL 為基礎,且最后得到的CA是n×n維的矩陣,因此可以直接求對應的特征值和特征向量。但直接計算的話,其計算是非常復雜的,下面會介紹一些相對比較簡單的辦法。
2.3.1 特征值分解

從這個式子就能夠很容易得到它們的關系。那就是CA=AAT的特征向量是A?vi。
在這里需要特別提到的是:運用上述提及到的方法,最終得到的計算結果是相同的,這也間接證明了確實起到了簡化計算的效果。
制作這個界面一般可以通過命令創建[6],也可以通過MATLAB提供的圖形用戶界面開發環境GUIDE中的圖形用戶界面開發工具的GUI創建方式制作,本文側重于后者。
在進行編程的時候,必須要有一個整體的認識[7],每一部分做什么都要安排得清清楚楚,這樣的話,在真正編寫的時候才不至于忙亂。具體的整個系統的設計流程,如圖2所示。

圖2 人臉識別系統框架圖
GUI界面的使用在編寫程序的時候主要有兩大塊[8],分別是模板庫的顯示和被測圖片的顯示。
3.3.1 人臉庫采集
在一開始進行模板庫的創建時,一般使用的都是ORL人臉數據庫,在創建的時候參照了一定的標準。如果這些庫里面都沒有適合的,就需要自己去拍照,自己去創建,但是需要對其進行預處理。
整個數據庫由兩部分組成,一部分是模板庫,一部分則是被測人臉庫。在被測庫里面有10 個人的照片,每個人不同表情的照片各兩張,照片格式大小完全一樣。
3.3.2 特征提取仿真分析
特征值分布圖,如圖3所示。特征提取之前,最重要的是先要把模板庫里面的圖像導入到MATLAB 里面,然后進行變換,組成協方差矩陣。在這個里面,要把每一個點的特征值和特征向量計算出來,就構成了所謂的特征分布圖。每個圖像的特征值差別非常大,但是在這個過程當中必須將其對應到子空間,這樣才能大大降低計算量,也可以節約時間,對后續過程中的優化也是一個非常有優勢的舉措。

圖3 特征值分布圖
3.3.3 庫外判別分析
對疑似病例人員進行人臉采集、入庫、訓練,得到每個人的人臉特征值[9]。本設計為提取人臉特征值,特征值與樣本庫里面的人臉特征值進行一一對比,設置一個判斷閾值。當屬于閾值內,則判定為庫內人員,即疑似人員;否則為非疑似病例,提示可以放行。
通過對實驗結果的分析可以發現,本設計利用MATLAB 數字圖像處理相關技術及PCA 算法進行人臉識別,在一定程度上能解決疫情期間人員管控的相關問題。MATLAB仿真結果表明:人臉識別的準確率可以達到80%,它可以有效解決人員流竄問題,有效地避免人力物力資源的浪費,本文所設計的系統對疫情防控是實用的。