基于Matlab人脸识别(PCA算法)
摘要
隨著科技的發展,人類社會的進步,傳統身份識別由于容易遺失,容易被破解已不能起到身份識別作用。人們需要更加安全可靠的身份識別技術。而生物特征的獨一無二,不易丟失和被復制的特性很好滿足了身份識別的需要。同時隨著計算機科學技術和生物醫學的發展使得利用生物特征識別成為了可能。在生物特征識別領域,由于人臉識別的操作快速簡單,結果直觀,準確可靠,不需要人的配合等優點已成為人們關注的焦點。主成分分析(principal component analysis ,PCA)通過提取高維度的人臉圖像的主元,使得圖像在低維度空間中被處理來降低了圖像處理的難度。由于其有效的解決了圖像空間維數過高的問題,已經成為人臉識別領域非常重要的理論。本文研究的就是基于PCA的人臉識別算法的實現。
本文按照完整人臉識別流程來分析基于PCA的人臉識別算法實現的性能。首先使用常用的人臉圖像的獲取方法獲取人臉圖像。本文為了更好的分析基于PCA人臉識別系統的性能選用了Orl人臉數據庫。接下來是人臉圖像預處理方法。由于Orl人臉圖像質量較好,而且已經做過相應的預處理,所以本文試驗中只使用灰度處理。接著使用PCA提取人臉特征,使用奇異值分解定理計算協方差矩陣的特征值和特征向量以及使用最近鄰法分類器歐幾里得距離來進行人臉判別分類。在實驗中我們發現基于PCA的人臉識別系統的識別率很高,而且具有一定魯棒性,所以基于PCA的人臉識別算法的實現的研究還是有意義。
關鍵詞:人臉識別 PCA算法 奇異值分解定理 歐幾里得距離
Abstract
With the development of science and technology, the progress of human society, the traditional identification is easy to lose, easy to be cracked and it has not play an identifiable role. People need a more secure and reliable identification technology. Biometric is unique, easy to lose and replication characteristics of good meet the needs of the identification. With the development of computer science and technology and biomedical makes use of biometric identification has become possible. In the field of biometric identification, face recognition with the advantages of operation is fast and simple, the results are intuitive, accurate and reliable, do not need co-ordination, has become the focus of attention. The principal component analysis (PCA) to extract high dimensional face image of the main element, making the images are processed in low-dimensional space and it reduces the difficulty of image processing. PCA solves effectively the problem of high dimension image space and it has become a very important theory in face recognition field. This paper is in this context of writing from.
In accordance with the full recognition process to analyze the performance of PCA-based face recognition algorithm. The first to use the method of access to commonly used face images for face images. In order to better analysis is based on the performance of the PCA face recognition system selected Essex face database. Next is the face image preprocessing methods. Essex face image quality is better, and have done the appropriate pretreatment, using only gray-scale processing of this trial. Then use the PCA for face feature extraction using singular value decomposition theorem to calculate the covariance matrix of the eigenvalues and eigenvectors, and use the Euclidean distance of the nearest neighbor classifier to the classification of human face discrimination. In the experiment, we found that a high recognition rate of the PCA-based face recognition system, but with a certain robustness, the PCA-based face recognition algorithm to achieve meaningful.
Keywords:face recognition PCA algorithm SVD Euclidean distance
隨著社會和科技的發展,社會步伐的加快,人們對高效可靠的身份識別需求日益強烈。各種技術在科研和實際中都受到了很大的重視和發展。由于生物特征內在的穩定性和唯一性使其成為了作為身份識別的理想依據。人臉特征作為典型的生物特征外,還有隱蔽性好,易于被用戶接受,不需要人的配合等優點。現已成為了身份識別領域研究的熱點。PCA算法通過降低維度,提取主元素,減少了數據冗余,解決了圖像緯度太高無法處理或處理很慢的特點,同時保持了原始圖像的絕大部分信息。在人臉識別領域,很多先進的識別算法都是在其基礎上的改進。所以研究基于PCA的人臉識別算法實現具有重要的理論和使用價值。
本文主要介紹基于PCA的人臉識別算法的實現,除第一章外,其余內容按照人臉識別的流程可分為人臉圖像獲取,人臉圖像預處理,人臉特征提取和特征匹配四個部分。具體安排如下:
第一章主要介紹人臉識別的研究現狀,人臉識別技術的主要難點及人臉識別流程。
第二章主要介紹常用的人臉圖像預處理方法。
第三章主要介紹PCA算法,SVD定理,如何通過PCA和SVD提取人臉特征及如何使用最近鄰法分類器歐幾里得距離來進行判別分類。
1 人臉識別系統概述
1.1 人臉識別的研究背景
人臉識別的研究起源比較早,Galton 在1888年和1910年就已在Nature雜志發表兩篇關于如何使用人臉進行身份識別的論文。在他的文章,他使用一組數字表示相異的人臉側面特征,同時還對人類本身的人臉識別能進行了研究分析。
自70年代以來,隨著人工智能技術的興起,人們發現許多對于人類而言可以輕易做到的事情,而讓機器來實現卻很難,如人臉圖像的識別,語音識別,自然語言理解等。人們一直想做的事情就是讓機器具有像人類一樣的思考能力,以及識別事物、處理事物的能力,因此人們從多個角度來探求人類的思維機制、以及感知事物、處理事物的機制,并努力將這些機制用于實踐,進行各種智能機器人的研制。人臉圖像的機器識別研究就是在這種背景下興起的。
同時,進行人臉圖像識別研究也具有很大的使用價值。如同人的指紋一樣,人臉也具有唯一性,也可用來鑒別一個人的身份。現在己有實用的計算機自動指紋識別系統面世,但還沒有通用成熟的人臉自動識別系統出現。與指紋圖像不同的是,人臉圖像受到諸多因素干擾,使得同一個人,在不同的環境下拍攝所得到的人臉圖像不同,有時更會有很大的差別,給識別帶來很大難度。因此在各種干擾條件下實現人臉圖像的識別,也就更具有挑戰性。
雖然人臉識別至今已取得了豐碩的研究成果。但是到目前為止,世界上還沒有任何一個完善且應用范圍較廣的人臉識別系統問世。
1.2 人臉識別的發展趨勢
隨著社會的進步,人臉識別技術將成為一個重要的研究熱點,同時也會被應用于各個方面。其未來主要的發展趨勢如下:
1.2.1 數據融合與方法綜合
多環境多領域多方法多數據的相互補充和完善。利用數據綜合分析,總結研究出更好的人臉識別效果。
1.2.2 動態人臉識別
靜態人臉識別技術局限性較大,而隨著社會的發展,動態人臉識別技術的應用和需求將大大增加。
1.2.3 三維人臉識別
實際上的人臉是三維的,三維人臉可以比二維人臉提供更加完整的信息,而目前的人臉識別是建立在二維圖像上的。隨著三維技術的應用越來越廣,三維人臉識別也將成為研究熱點。
1.2.4 復雜背景下人臉分割技術
在復雜背景下快速有效檢測和分割人臉技術還需進一步的研究。
1.2.5 全自動人臉識別技術
全自動人臉識別技術具體難點在于人臉是非剛體,無法得到準確完整的描述人臉特征。如何有效的表達人臉特征將是其研究的重點。
1.3 人臉識別技術的主要難點
人臉識別技術有著非常美好的發展前景,但是以下幾個難點一直在制約著突破性的進展:
1.3.1 復雜條件下關鍵點定位
關鍵點定位為實際人臉識別系統的前端處理模塊,此模塊直接影響著人臉識別系統的性能。復雜條件下的關鍵點定位是目前人臉識別急需解決的問題之一。
1.3.2 姿態問題
現在人臉識別算法主要以正面姿態為研究對象。當人臉姿態非正面時,人臉的識別度將會驟然下降。如何提高人臉識別系統對姿態的識別度人臉識別中一個具有挑戰性的任務。
1.3.3 表情問題
表情是人機交互不可或缺的部分,但它很難用精確的數學模型來表示。由于目前的計算機技術的限制,計算機還不能準確的定位這些面部特征點,也無法辨別面部肌肉的運動。而且,不同表情沒有固定的界限,不同人的表情也會有不同。
1.3.4 遮擋問題
由于采集到的人臉圖像不一定都是完整的,這會影響人臉特征提取與識別,也可能會導致人臉檢測算法的失效。如何有效地排除遮擋物的影響有著非常重要的意義。
1.3.5 光照問題
光照問題在人臉識別中表現得十分明顯。但光照處理技術遠未達到實用的程度,還需要深入的研究。
以上列舉了部分主要的技術難點,其他難點本文將不會涉及。
1.4 人臉識別流程
1.4.1 人臉圖像獲取
人臉圖像獲取是通過傳感器,將獲取到的人臉圖像轉換為計算機可處理的數字信號。這是人臉識別的第一步。獲取人臉圖像時,要盡量排除干擾因素,是獲取的人臉圖像能夠達到要求。
1.4.2 預處理
預處理是為了除去噪聲和對測量儀器或其他因素對人臉圖像造成退化現象進行復原。通過定位和分割算法從獲取的圖像中分割出我們要處理的人臉部分。常用的人臉預處理有:灰度變化,二值化,直方圖均衡,圖像濾波,圖像銳化和歸一化處理。
1.4.3 特征提取
特征提取就是通過提取人臉圖像中能夠凸顯與其他個體差異的本質特征,進而來實現身份識別。本文講解如何使用PCA算法提取人臉特征,進而實現人臉識別。
1.4.4 特征匹配
特征匹配是將采集到的人臉圖像的特征模版與系統中已存儲的特征模版進行比對,并輸出最佳匹配對象。
1.5 本章小結
本章簡略講述了人臉識別系統的研究背景、發展趨勢、主要技術難點和系統流程。研究背景模塊主要講述人臉識別的研究概況及研究意義;發展趨勢模塊主要講述人臉識別技術未來的走向;主要技術難點模塊主要講述人臉識別的主要技術難點以及今后的研究熱點;系統流程模塊主要講述人臉識別系統的工作流程及原理。
2 人臉圖像處理的MATLAB實現
2.1 MATLAB簡介
由Math Work公司開發的MATLAB程序設計自由度大,程序的可移植性好。MATLAB推出了功能強大的適應于圖像分析和處理的工具箱,常用的有圖像處理工具箱、小波分析工具箱及數字信號處理工具箱。MATLAB圖像處理工具箱支持索引圖像、RGB圖像、灰度圖像、二進制圖像并能操作BMP、JPG、TIF等多種圖像格式文件。
2.2 人臉圖像常用預處理方法
2.2.1 灰度變化
2.2.3 直方圖均衡
直方圖均衡是將將各灰度級分量盡量均勻分布,從而來增強人臉圖像的對比度。此外它還能減少光照對人臉圖像的影響,使人臉特征提取變得容易,同時還提高了人臉圖像的主觀質量。其主要在于根據圖像灰度分布和實際的需求選擇合適的映射函數。選擇函數可以連續平滑函數,也可以是分段函數。映射函數為分段函數時一般是基于想要突出人臉圖像中某些灰度值物體的細節,又不想犧牲其他灰度值上的細節的考慮。這樣可以是需要的細節灰度值區間得以拉伸,不需要的細節得以壓縮。
2.2.4 圖像濾波
現在消除噪聲的方法有全局處理和局部算子兩類。全局處理類的方法需要了解信號和噪聲的統計模型。人臉圖像預處理經常使用后一類方法。常用的有均值濾波器,高斯平滑濾波器,中值濾波器和邊緣保持濾波器。
2.2.4.1 均值濾波器
2.2.4.2 中值濾波器
中值濾波是一種非線性濾波方法。它在平滑脈沖噪聲方面非常有效,同時它可以保護像素尖銳的邊緣。它用像素點鄰域灰度值的中值來代替該像素點的灰度值。該方法在去除脈沖噪聲,椒鹽噪聲的同時又能保留圖像邊緣細節,這是因為它不依賴于鄰域內那些與典型值差別很大的值。中值濾波器在處理連續圖像窗函數時與線性濾波器的工作方式類似,但濾波過程不再是加權運算。例如,取4*4窗函數,計算以點[i,j]為中心的窗函數的像素中值時,首先按強度值大小排列像素點,然后選擇排序像素集的中間值作為點[i,j]的新值。
中值濾波在一定條件下,可以克服線性濾波器帶來的圖像細節模糊的缺點,而且對濾除脈沖干擾是最有效的。但對一些細節多,特別是線,尖點等細節多的圖像不宜采用中值濾波。
2.2.5 圖像銳化
2.2.6 圖像歸一化
2.3 本章小結
本章主要介紹了人臉圖像常用預處理方法。在人臉圖像常用預處理方法一節中主要介紹了常用的消除噪音的方法等,分別為灰度變化,二值化,直方圖修正,圖像濾波和圖像銳化。
3 主成分分析PCA算法
3.1 算法說明
3.2 算法實現步驟
3.4 實驗結果
本實驗采用的人臉庫為orl。其中包括40個人的人臉圖像,每人10張不同表情的圖像。本次試驗將40個人的圖像庫中抽取40張圖像(沒人一張)作為測試樣本,剩余的360張人臉圖像作為樣本庫。
本實驗主要包括四.m個文件以及兩個文件夾,其中Distance.m用來計算歐氏距離;PCA.m用來提取一張圖像的前n維特征值,Quantization.m用來將矩陣向量化,show.m為主函數,包括界面等部分,orl為樣本庫,test為測試樣本集。
實驗結果如下:
Fig 1 左上圖為測試樣本,左下圖為平均臉,中間的圖為檢索出的結果所對應的降維后的圖像,即PCA臉,右邊圖為樣本庫中最相似的圖像,從上到下,從左到右依次排列
3.5 本章小結
在本章主要講解PCA基本理論和PCA在人臉識別中應用。在第一節中主要講解了PCA基礎理論,使用PCA進行數據分析的優點和PCA方法在計算機視覺領域的應用。在第二節中主要講解了如何進行基于PCA的人臉識別。
結 論
基于MATLAB數字圖像處理與識別系統其實是一個范圍很大的應用系統,關于“人臉識別”,在了解了人臉識別的各種方法后。選擇了圖像直方圖差值比較進行了實現。該方法能較好地實現人臉的分類,但對人臉圖像的要求較高,目前僅是采用Orl的標準人臉庫中的圖像來進行測試,因此能獲得較高的識別率。而在現實生活中采集到的人臉圖像則會受到很多因素的影響,識別率就未必能達到要求了。若要進一步提高識別率和適用范圍,則還需要結合其它算法,如PCA、神經網絡等。
本文研究的是基于PCA的人臉識別算法的實現。人臉特征提取算法為PCA算法,分類方法采用的是最小距離分類法。通過實驗發現在無光照變換,正面姿態,少量遮擋情況下,基于PCA的人臉識別系統的識別率很高,而且反應很迅速。當然也存在著一些問題,例如本文對圖像的光照變化,其他姿態沒有進行考慮,但實際中這是無法忽略的問題,有可能會導致人臉識別識別率減小。
為了進一步提高基于PCA的人臉識別系統的性能和適應性,我們可以通過以下幾個方面進行改進:
改進圖像獲取方法:我們可以通過使用人臉檢測和跟蹤算法,在圖像獲取的時候,動態跟蹤和檢測人臉,只采集最佳姿態下的人臉圖像。這在一定程度可以解決姿態所引起的問題,但也同時對系統的檢測和跟蹤人臉的反應時間提出較嚴格的要求。如果反應時間較長,對于快速移動的人臉可能錯過采集最佳姿態的圖像,而導致系統無法識別人臉。
改進人臉識別特征提取算法:基于PCA的人臉識別雖考慮了人臉圖像間的差異,但是不能區分這種差異是由光照,發型變更或背景導致,還是人臉的內在差異,因此特征臉的識別方法在理論上存在一定的缺陷。究其原因是人臉圖像中所有像素都處于同等地位,在角度,光照,尺寸和表情變換可能會導致性能急劇惡化。采用同一個人的訓練樣本的平均來計算人臉圖像類間散布矩陣可在一定程度上補償這個缺點。同時也可以對輸入的人臉圖像做規范化處理,主要包括對人臉圖像做均值方差歸一化,人臉尺寸歸一化。另外還可以在計算特征臉的同時利用K-L變換計算特征眼睛和特征嘴,然后將這些局部特征向量加權進行匹配,可能會得到更好的結果。我們也可以將人臉進行差異化分類,可分為臉間差異和臉內差異。臉內差異表示同一個人臉的各種可能變形。臉間差異表示不同人的本質差異。在實際中,人臉圖像的差異為兩者之和。若臉內差異大于臉間差異,則認為兩個人臉圖像屬于一個人的可能性較大。
改進人臉識別的分類器:最近鄰法分類器屬于一種線性分類器。在實際中可以利用神經網絡這類學習能力強的非線性分類器對高維人臉識別可能會取得更好的效果。
綜合不同的人臉識別方法:在目前,僅僅單獨采用一種現有的人臉識別方法一般都不會取得很好的識別效果。各種技術和方法都有自己不同的適應環境和各自的特點。如果我們想進一步提高人臉識別系統的識別率,可以考慮使用數據融合理論,將不同的方法綜合起來,相互補充,來取得很好的人臉識別效果。這也是為人臉識別的研究趨勢之一。
總結
以上是生活随笔為你收集整理的基于Matlab人脸识别(PCA算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SetTimer函数
- 下一篇: Java、JSP药品库房管理系统