基于MATLAB的人脸识别研究
基于MATLAB的人臉識別研究
【摘要】深入分析了主成分分析(Principal Component Analysis,PCA)方法的基本原理,PCA方法最顯著的優點是能用低維特征向量來估計原始樣本,基于此特點將它用來實現對人臉的識別。此外本文還深入分析了PCA中遇到的特征值選擇和距離準則的選取問題。
【關鍵詞】MATLAB;數字圖像處理;人臉識別
1.引言
人臉識別是當前計算機模式識別領域中的一個非常活躍的研究課題,在安全檢測、身份驗證、軍事、商業等領域具有廣泛的應用前景。基于人臉識別的自動身份認證具有重要的理論意義和應用價值。但是通過人臉圖像來進行識別仍然面臨巨大的挑戰,要使這一技術成為完全成熟的技術還有許多工作需要做。
2.人臉識別的研究內容
人臉識別(Face Recognition)是指基于己知的人臉樣本庫,利用圖像處理和模式識別技術從靜態或動態場景中,識別或驗證一個或多個人臉。從廣義上講,其研究內容包括以下五個方面:
(1)人臉檢測(Face Detection):即從動態的場景或復雜的背景中檢測出人臉的存在并且確定其位置,然后分離出來。這一任務主要受光照、噪聲、頭部傾斜度以及各種遮擋的影響。
(2)人臉表征(Face Representation):也稱為人臉特征提取,即采用某種表示方法來描述檢測出的人臉與數據庫中已知人臉。通常的表示方法包括幾何特征(如歐氏距離、曲率、角度等)、代數特征(如矩陣特征矢量)、固定特征模板、特征臉、云紋圖等。
(3)人臉識別(Face Identification):即將待識別的人臉與數據庫中已知人臉比較,得出相關信息。這一過程的核心是選擇適當的人臉表征方法與匹配策略。
(4)表情分析(Facial Expression Analysis):即對待識別人臉的表情進行分析,并對其加以歸類。
(5)生理分類(Physical Classificat-ion):即對待識別人臉的生理特征進行分析,得出其年齡、性別等相關信息,或者從幾幅相關的圖像推導出希望得到的人臉圖像,如從父母圖像推導出孩子的臉部圖像、基于年齡增長的人臉圖像估算等。
相對來說,人臉的表情分析、生理分類是兩個非常難的研究方向,不過它在計算機圖形學,尤其是計算機動畫等領域有很廣泛的應用前景,因此在最近幾年得到了國內外很多從事計算機視覺(Computer Vision)的研究人員的注意。本論文主要介紹狹義的靜態人臉圖像識別方法,研究的重點是人臉特征提取與識別的關鍵技術,不涉及表情識別和生理分類方面。
人臉識別系統通常主要由人臉檢測與定位,人臉特征提取與識別兩部分組成,在這兩部分的基礎上還包括圖像預處理等步驟。其主要實現步驟如下:
(1)圖像預處理
由于實際成像系統多少存在不完善的地方以及外界光照條件等因素的影響,在一定程度上增加了圖像的噪聲,使圖像變得模糊,且對比度低、區域灰度不平衡。為了提高圖像的質量,保證提取特征的有效性,進而提高識別系統的識別率,在提取特征之前,有必要對圖像進行預處理操作,以改善圖像質量,保證提取特征的有效性。
(2)人臉的檢測與定位
從輸入圖像中找出人臉及人臉所在的位置,并將人臉從背景中分割出來,輸出為分割好的人臉局部圖像。
(3)圖像歸一化
圖像歸一化屬于圖像預處理的范疇。在對人臉圖像進行特征提取和分類之前一般需要做幾何歸一化和灰度歸一化。幾何歸一化是指根據人臉定位結果將圖像中人臉變換到同一位置和同樣大小,灰度歸一化是指對圖像進行光照補償等處理,光照補償能夠一定程度的克服光照變化的影響而提高識別率[3,4]。
(4)特征提取與識別
對于歸一化了的人臉圖像進行面部的各特征提取,將原始人臉圖像中的數據映射到特征空間,對人臉進行特征建模,建立的特征模型主要用于區分各人臉之間的差異性,為人臉識別分類打下基礎。由于原始的人臉圖像數據量是相當大的,為了有效的實現分類識別,就要對原始數據進行變換,得到最能反映分類本質的特征,如何提取穩定和有效的特征是識別系統成敗的關鍵。人臉識別驗證是整個自動人臉識別系統的最后一個步驟,根據面部特征的提取結果,將待檢測人臉與人臉庫中人臉數據進行比較,判斷出待檢驗人臉的身份信息。
一個完整的人臉自動識別系統如圖1所示。
對以上人臉識別系統進行分析可以看出,人臉識別研究需要考慮以下幾個主要方面:如何準確快速的檢測并分割出人臉部分;在非約束環境下,如何采用一些必要的處理方法來提高系統的魯棒性,尋找一種受人臉姿態變化和光照條件等因素影響較小的特征提取方法;如何有效的變化補償、特征描述和準確的分類等等,以上方面均直接影響人臉識別的速度與準確度。
3.人臉識別的具體過程
在實驗編程中,我們利用的是MATLAB
7.0平臺。MATLAB是由MathWorks公司推出的一套高性能的數值計算和可視化的數學軟件。MATLAB編程運算與人進行科學計算的思路和表達方式完全一致。不像學習其他高級語言如Basic、C那樣難于掌握。MATLAB的基本元素是矩陣,所以其非常適合用來進行圖像處理。MATLAB具有強大的數值計算和圖示能力。具有非常豐富的工具箱(ToolBox)。在國內外高等院校中,已成為高等數學、數值分析、數字信號處理、自動控制理論以及工程應用等課程的基本教學工具。
3.1 將訓練樣本圖像輸入程序
采用的訓練樣本圖像為包含4個人的圖像樣本集,以驗證本程序的通用性。圖2為本實驗要輸入到識別程序中的部分人臉樣本圖像。
3.2 程序對輸入的圖像進行預處理
本程序對輸入的圖像進行的預處理包括有彩色圖像到灰度圖像的轉換、圖像的噪聲消減、圖像的尺寸歸一化等。人臉識別需要將人臉圖像樣本尺寸歸一化,即縮放變換到固定的尺寸。在本程序中,為方便圖像矩陣的計算,提升計算速度,將圖像統一縮放到120×120大小。圖3為經過預處理后得到的灰度圖像。
3.3 人臉圖像訓練階段
利用基于PCA+LDA算法的人臉識別算法進行人臉識別,該環節包括訓練和識別兩個環節,對人臉樣本圖像進行訓練則會產生平均臉和特征臉。圖5-4為訓練樣本集中各人臉圖像的特征臉,圖4為訓練樣本集的平均臉。
3.4 人臉圖像識別階段
將測試圖像輸入程序。若經過程序判斷待測試圖像為人臉圖像庫中的人臉圖像,則顯示識別結果。圖5為測試例子和識別結果。
4.人臉識別實驗結果及分析
由于受實驗條件所限,未能利用該人臉識別系統采集大量不同的人臉實驗樣本,只是由簡單人臉圖像數據庫來充分驗證系統的性能。實驗中,人臉庫中有4個各自4幅圖片,從中每人各隨機選擇3幅人臉圖像作為訓練樣本,共同作為訓練樣本集。其余每人所剩下的1幅人臉圖像作為測試樣本集。所有照片比較充分的反映了同一個人的不同人臉圖像因光照變化、面部細節變化等因素而產生的差異。攝像頭獲取的照片拍攝于不同的時間,且同樣允許在一定范圍內的光照、表情及面部角度的變化。該人臉識別系統采用基于PCA+LDA算法的人臉識別方法,具體實現步驟如前文所述。按照上述訓練及測試樣本的選取,在不同的人臉樣本的情況下,利用該系統進行人臉識別,均獲得了80%以上的識別率。
從實驗結果可以看出,即使所采用的訓練及測試樣本集中的圖像樣本均為具有一定姿態變化,在不同光照條件下獲取的圖像,但該人臉識別系統仍具有很好的識別效果。另外,該人臉識別系統采用優秀的人臉識別算法,降低了系統的運算量,因此具有較高的識別速度。這充分說明了運用PCA+LDA方法進行人臉識別的可行性。
本文所設計的人臉識別系統實現了人臉識別主要模塊的功能,但距離一個具有實時性的快速自動人臉識別系統還相差較遠,在系統的構建方面還有許多工作要做。針對該系統現狀,在今后的工作中,還要對其作進一步的完善。
參考文獻
[1]王蘊紅,朱勇,譚鐵牛.基于虹膜識別的身份鑒別[J].自動化學報,2002,28(11):l-10.
[2]梁路宏.人臉檢測與跟蹤研究[D].清華大學博士論文,2001.
[3]程云鵬.矩陣論[M].西安:西北工業大學出版社,2003,2.
總結
以上是生活随笔為你收集整理的基于MATLAB的人脸识别研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BCH编码——c语言代码
- 下一篇: MATLAB 图像处理 简单人脸检测(详