MATLAB人脸识别PCA设计
1、系統框架
本系統運用PCA算法來實現人臉特征提取,然后通過計算歐式距離來判別待識別測試人臉,本個系統框架圖如下:
?
圖:1-1 人臉識別系統框架圖
整個系統的流程是這樣的,首先通過圖像采集建立人臉庫,這個人臉庫里的人臉圖像必須是格式及像素統一的,然后針對庫里的人臉進行人臉訓練,利用PCA進行人臉特征提取,獲取特征矩陣向量組,將測試人臉投緣到特征子空間中,運用歐氏距離,在人臉庫里查找相應的人臉圖像,并輸出。在這步驟中我還實現人臉重建,對庫內和庫外人臉重構實現了比較,最后在人臉找到輸出的同時,它也輸出了對應人臉在庫內的數字編號,代表人臉的信息。
2 程序仿真及調試結果
2.1人臉庫的生成
人臉庫的建立可以運用目前現有的ORL人臉數據庫、JAZZ人臉數據庫等,這些人臉庫內的人臉都是按某個標準建立,所以在設計人臉之前,必須針對需要,來選擇。或者你也可以自己構造人臉數據庫,庫內人臉可以采用拍照等方式來獲取。不過要進行一些前期處理,以滿足系統要求。本系統是收集互聯網上的圖像獲取圖像,然后實現格式以及大小一致。
?
圖:2-1 部分人臉圖像截圖
上圖就是部分人臉庫內人臉圖像截圖。這個人臉庫分為測試人臉庫和訓練人類庫,在訓練人臉庫內的所有人臉數目有二十張,十個人的,一個人有兩張圖像,不同的表情。在測試人臉庫內有10張人臉,這10張人臉是在訓練庫內挑選的10個人臉表情。每張人臉圖像的大小為180*200,格式為JPG。因為本系統針對的圖像格式要求必須為JPG格式的圖像。我把這20張圖片的命名,用數字1-20來代替,以便后面在識別階段,可以讀出對應的數字,類似人的名字
2.3特征提取和人臉重建的仿真分析
(1) 根據PCA算法的獲取人臉庫特征值分布圖
特征提取首先把庫內待訓練的人臉圖像,讀入matlab轉換成灰度圖像,進而將人臉圖像按行排列,構成協方差矩陣,這個協方差矩陣里面,每一行都代表一個人臉,所以求這個協方差矩陣的特征值和特征向量,也就是求每個人臉的特征,每個特征值對應的特征向量,構成了特征向量子空間,下圖中曲線的就是庫內內所有人臉圖像進行特征提取獲得特征值后,按特征值大小排列,由圖可以看出,每張人臉圖像對應特征值大小的區別性很大,只要提取數值較高的特征值對應的特征向量來組成特征子空間即可,大大的減少了特征矩陣的向量的數量,這樣可以降低計算量,提高特征提取的運算速率。也為后面的人臉識別系統運行提高速度。
?
圖:2-3 特征值分布圖
2.4 模板匹配及識別的仿真分析?
?
圖:4-7人臉匹配效果
比圖4-6和圖4-7這兩幅圖像,可以看出本系統可以很好的匹配庫內人臉,這匹配過程是先測試人臉投影到特征子空間中,這樣便可以讓這張圖像成為多維空間中的一點,通過計算其與每個人臉圖像的歐式距離,然后對比找出最小歐式距離的人臉,這樣就可以匹配到相應的人臉圖像。此外,系統對庫外的人臉也可以快速判別的。
上面采用判別庫外人臉的方法就是采用距離的測度來做的,先在庫內人臉訓練的時候,計算出庫內所有人臉之間相互各自的歐式距離,基于每個人臉在重建后距離是固定的,庫內人臉在重建后與庫內人臉的歐式距離,可以通過檢索匹配到相應的值,如果是庫外人臉圖像那么它與庫內人臉的歐式距離無法找到相應匹配的值,我們通過設置一個參數來保存匹配到的次數,從而可以為判別是否庫內人臉的依據。如果是庫內人臉除了能顯示“灰度圖像外”,我們還可以通過矩陣的維數來找出對應人臉的數字標號,并且輸出來。如下圖所示:?
圖:2-9 識別后顯示的人臉數字代碼
這個圖是針對圖4-8所識別匹配時,對應得出的人數字代表。這個是庫內人臉特有的標記,可以作為人臉的代表,很好的反應的人臉的信息。?
總結
以上是生活随笔為你收集整理的MATLAB人脸识别PCA设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车机鸿蒙系统 车型,华为鸿蒙车机系统提前
- 下一篇: 用matlab实现人脸识别,Matlab