日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

MATLAB人脸识别系统

發布時間:2024/8/1 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB人脸识别系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄


引言 1

1 人臉識別技術 2

1.1人臉識別的研究內容 2

1.1.1人臉檢測(Face Detection) 2

1.1.2人臉表征(Face Representation) 2

1.2幾種典型的人臉識別方法 3

1.2.1基于幾何特征的人臉識別方法 3

1.2.2基于K-L變換的特征臉方法 4

1.2.3神經網絡方法 5

1.2.4基于小波包的識別方法 6

1.2.5支持向量機的識別方法 6

2 人臉特征提取與識別 6

2.1利用PCA進行特征提取的經典算法——Eigenface算法 7

2.2 PCA人臉識別流程 7

2.3特征向量選取 9

2.4距離函數的選擇 10

2.5 基于PCA的人臉識別 11

MATLAB人臉識別程序 12

3 MATLAB軟件程序編寫 13

3.1.創建圖片數據庫 13

3.2 主程序 13

3.3最終程序結果 14

4 心得與體會 16

參考文獻 16


引言

隨著社會的發展及技術的進步,社會各方面對快速高效的自動身份驗證的需求可以說無處不在,并與日俱增。例如,某人是否是我國的居民,是否有權進入某安全系統,是否有權進行特定的交易等。尤其是自2001年美國“9.1l”恐怖襲擊發生以來,如何在車站、機場等公共場所利用高科技手段,迅速而準確地發現并確認可疑分子成了目前世界各國在反恐斗爭中普遍關注的問題。為此,各國都投入大量人力、物力研究發展各類識別技術,使得生物特征識別技術得到了極大的發展。生物特征識別技術主要包括:人臉識別、虹膜識別、指紋識別、步態識別、語音識別、筆跡識別、掌紋識別以及多生物特征融合識別等。人類通過視覺識別文字,感知外界信息。在客觀世界中,有75%的信息量都來自視覺,因此讓計算機或機器人具有視覺,是人工智能的重要環節。由于生物特征是人的內在屬性,具有很強的穩定性和個體差異性,因此是身份驗證最理想的依據。與虹膜、指紋、基因、掌紋等其他人體生物特征識別系統相比,人臉識別系統更加直接、方便、友好,易于為用戶所接受,并且通過人臉的表情、姿態分析,還能獲得其它識別系統難以得到的一些信息。

人臉識別技術在國家重要機關及社會安防領域具有廣泛用途。例如:公安系統的罪犯識別、信用卡驗證、醫學、檔案管理、視頻會議、人機交互系統等身份識別和各類卡持有人的身份驗證。同其他人體生物特征(如:指紋、掌紋、虹膜、語音等)識別技術相比,人臉識別技術的隱性最好,人臉識別系統更直接、友好,是當今國際反恐和安防最重視的科技手段和攻關標志之一。雖然人類能毫不費力地識別出人臉及表情,但對人臉的機器自動識別確實一個難度極大的課題,它涉及到模式識別、圖像處理及生理、心理學等諸多方面的知識。人臉識別技術的研究雖然己經取得了一定的可喜成果,但在實際應用中仍存在著許多嚴峻的問題。人臉的非剛體性、姿態、表情、發型以及化妝的多樣性都給正確識別帶來了困難,要讓計算機像人一樣方便地識別出大量的人臉,尚需不同科學研究領域的科學家共同不懈的努力。

1 人臉識別技術

人臉因人而異,絕無相同,即使一對雙胞胎,其面部也一定存在著某方面的差異。雖然人類在表情、年齡或發型等發生巨大變化的情況下,可以毫不困難地由臉而識別出某一個人,但要建立一個能夠完全自動進行人臉識別的系統卻是非常困難的,它牽涉到模式識別、圖像處理、計算機視覺、生理學、心理學以及認知科學等方面的諸多知識,并與基于其他生物特征的身份鑒別方法以及計算機人機感知交互領域都有密切聯系。與指紋、視網膜、虹膜、基因、掌形等其他人體生物特征識別系統相比,人臉識別系統更加直接、友好,使用者無任何心理障礙,并且通過人臉的表情和姿態分析,還能獲得其他識別系統難以得到的一些信息。20世紀90年代以來,隨著需要的劇增,人臉識別技術成為一個熱門的研究話題。

1.1人臉識別的研究內容

人臉識別(Face Recognition)是利用計算機對人臉圖像進行特征提取和識別的模式識別技術。在二十世紀七十年代初,對人臉識別的研究涉及心理學神經科學。其直接目的是要搞清楚人是如何對人臉進行識別的。七十年代中期以后,開展了用數學、物理和技術的方法對人臉自動識別的研究。

人臉識別一般可描述為:給定靜止圖像或動態圖像序列,利用已有的人臉圖像數據庫來確認圖像中的一個或多個人。從廣義上來說,計算機人臉識別的研究內容大概可以分為以下五個方面。

1.1.1人臉檢測(Face Detection)

此過程包括人臉檢測(Detection)、人臉定位(Location)和人臉跟蹤(Tracking)。所謂人臉檢測,就是給定任意圖像,確定其中是否存在人臉,如果有,給出人臉的位置、大小等狀態信息。人臉跟蹤指在一紐連續靜態圖像所構成的動態視頻中實時地檢測人臉。人臉檢測主要受到光照、噪聲、姿念以及遮擋等因素的影響,人臉檢測的結果直接關系到后面兩個過程的準確性。近年來,人臉檢測和跟蹤開始成為獨立的研究課題受到關注。

1.1.2人臉表征(Face Representation)

人臉表征就是提取人臉的特征,是將現實空間的圖像映射到機器空間的過程。人臉的表示具有多樣性和唯一性,這其實就是人臉共性和特性之間的關系問題:只有保持這種多樣性和唯一性,才能保證人臉圖像的準確描述和識別。

人臉圖像信息數據量巨大,為提高檢測和識別的運算速度以及提高圖像傳輸和匹配檢索速度,必須對圖像進行數據壓縮,降低向量維數,即用盡可能少的數據表示盡可能多的信息。人臉的表征在提取人臉特征的同時,也實現了對原始圖像數據的降維。

1.2幾種典型的人臉識別方法

對人臉識別方法的研究主要有兩大方向:一是基于人臉圖像局部特征的識別方法;二是基于人臉圖像整體特征的識別方法?;谌四槇D像局部特征的識別通常抽取人臉器官如眼睛、眉毛、鼻子和嘴等器官的位置,尺度以及彼此間的比率作為特征。進一步地可以用幾何形狀擬合人臉器官,從而以幾何參數作為描述人臉的特征。由于此類方法通常要精確地抽取出位置、尺度、比率或幾何參數作為描述人臉的特征,因此對人臉圖像的表情變化比較敏感。同時,人臉器官分割的精確度也對人臉特征的提取有一定的影響。另外,該類方法并沒有充分利用到人臉圖像本身具有的獲度信息,該方向已經不是人臉識別技術發展的主流方向?;谌四槇D像整體特征的人臉識別方法由于不需要精確提取人臉圖像中部件的具體信息,而且可以充分利用到人臉圖像本身具有的灰度信息,因此可獲得更好的識別性能。目前,絕大部分關于人臉識別方法的文章都是基于人臉圖像整體特征的,主要有特征臉法、最佳鑒別向量集法,貝葉斯法,基予傅立葉不變特征法,彈性圖匹配法,其他相關方法有線性子空間法,可變形模型法和神經網絡法。這些方法中有的側重于表述人臉圖像的特征提取,如彈性圖匹配法和傅立葉不變特征法;有的則側重于分類,如最佳鑒別向量集法、貝葉斯法和神經網絡法;而有的則側重于人臉圖像重構,如特征臉法和線性子空間法。所有這些基于人臉圖像整體特征的人臉識別方法均取得了一定的識別性能。

1.2.1基于幾何特征的人臉識別方法

基于幾何特征的人臉識別方法主要源于人臉識別的初期研究階段。這種方法是以人臉各個器官和幾何關系為基礎進行算法設計。對于不同人來說,臉上的各個器官,如眼睛、鼻子、嘴巴以及整個臉部的輪廓具有不同的形狀、大小、相對位置和分布情況。

在基于幾何特征的人臉識別方法中,可以用一個矢量來表示提取出來的幾何參數。如果要獲得一個準確、穩定和可靠的識別結果,就要求這些被選出的幾何特征參數包含足夠豐富的辨識人臉的信息,且能反映不同人臉之間的差別。也就是說對這些矢量要求具有較高的模式分類能力,同時還要有一定的穩健性,能夠消除由于時間變遷、光照變化等其他干擾因素所帶來的影響。具體來沈,這些幾何參數一般包括人臉上兩個指定特征點之間的歐式距離、邊緣曲率、角度等等。

在實際應用過程中,基于幾何特征的人臉識別方法存在著兩個方面的問題:

(1)如何快速、準確地檢測出入臉的重要標志點依然是一個沒有很好解決的問題。臉上的重要標志點,如瞳孔、嘴巴和鼻子,它們在臉上的位置是進行臉部幾何參數計算和測量的基準。

(2)臉部幾何特征在人臉辨識中的有效性問題,即臉部幾何特征能夠提供多少可供識別的信息量。

雖然各人臉的器官在形狀、大小及分布上各不相同,但是這種器官上的差異性更多是體現在某些細微的感覺意義上。例如眼睛顯得比較小、鼻子顯得比較寬,以及皮膚的紋理、顏色上的差異等等。顯然,這些特征中的一部分是難以精確測量出來或者是不能用幾何參數準確描述的。所以僅靠增加臉上幾何參數的數目來提高人臉識別率是不太現實的。由于進一步改善測量精度是十分困難的,因而通過增加臉部幾何參數的數量來改善識別率結果,其影響是極小的。因此,基于少量人臉幾何特征進行大規模人臉辨識的可靠性是不容樂觀的。

1.2.2基于K-L變換的特征臉方法

K-L變換是圖像壓縮的一種最優正交變換,人們將它應用于特征提取,形成了子空間法模式識別的基礎。將K-L變換用于人臉識別,需要假設人臉處于低維的線性空間,不同人臉具有可分性。高維的圖像空間經過K-L變換后得到一組新的正交基,保留其中重要的正交基從而形成了低維的人臉空間。

若將所有子空間的正交基排列成圖像陣列,則正交基呈現人臉的形狀,因此這些正交基也被稱為特征臉。選擇那些正交基形成的子空間則有不同的考慮,與較大特征值對應的一些正交基(也稱主分量)能夠表達人臉的大體形狀,而具體細節需要那些小特征值對應的特征向量(也稱次分量)來加以補充描述,因此低頻成分用主分量表示,高頻分量用次分量表示。采用主分量作為新的正交空間的正交基的方法稱為主分量(Principal Component Analysis,簡稱PCA)方法。

K-L變換在90年代初受到了很大的重視,實際用于人臉識別取得了很好的效果,一般庫德大小為100幅左右,識別率在70%-100%之間不等,這主要取決于人臉庫圖像的質量。

從壓縮能量的角度來看,K-L變換是最優的,變換后的低維空間對于人臉有很好的表達能力,然而這并不等同于對不同人臉具有較好的判別能力。選擇訓練樣本的散布矩陣作為K-L變換的生成矩陣,其最大特征向量反映了該樣本集合的最大分布的方向,但這是圖像統計方法,而不是人臉統計方法。它查找的是圖像之間所有的差異,并根據這些差異來確定不同人臉間的距離,而不管這些差異是由于光線、發型或背景的改變引起的,還是屬于人臉本身的內在差異,因此特征臉的方法用于人臉識別存在理論的缺陷。研究表明,特征連的方法隨著光線、角度以及人臉的尺寸的引入而識別率急劇下降。主分量的方法使得變換后的表達能力最佳,次分量的方法考慮了高頻的人臉區分能力,但是由于外在因素帶來圖像差異和人臉本身帶來的差異對K-L變換而言是不加任何區分的,因此,如何選擇正交基并不根本解決問題。改進的一個思路是針對干擾所在,對輸入圖像作規范化處理,包括輸入圖像的均值方差歸一化,人臉尺寸歸一化。另一種改進是考慮到局部人臉圖像受到外在干擾相對較小的情況,除了計算特征臉之外,還利用K.L變換計算出特征眼、特征嘴等。將局部特征向量加權進行匹配得到一些好的效果。

總之,特征臉方法是一種簡單、快速、使用的基于變換系數的算法,但由于它在本質上依賴于訓練集合測試集圖像的灰度相關性,而且要求測試圖像與訓練集比較接近,所以存在著很大局限。

1.2.3神經網絡方法

人工神經網絡是一種以大量的處理單元(神經元)為節點,處理單元之間實現加權值互連的拓撲結構。人工神經網絡中的處理單元是人類大腦神經單元的簡化。處理單元之間的互連則是軸突、樹突這些信息傳遞路徑的簡化。根據不同的應用場合,現已研究出較多的神經元網絡模型及其動態過程的算法。

人工神經元通常采用非線性的作用函數,當大量神經元連接成一個網絡并動態運行時,則構成了一個非線性動力學系統。人工神經網絡具有自組織性、高維性、模糊性、分布性和冗余性等等特點,較馮.諾依曼體系的計算機更適合模擬人類大腦的思維機理。但總的來說,由于人類對自身思維機理認識的不足,所以對人工神經元作了極度的簡化,這種模擬表現為極其膚淺和簡單。

很多臉部識別系統都采用了多層感知機作為人工神經網絡的基本結構。多層感知機由幾層全互連的非線性神經組成。神經元之間有權值連接,權值包含了訓練模式空間的特征。訓練過程就是調整權值的過程,最常用的算法就是BP法則。

多層感知機的輸入形式有很多種,最簡單的就是將整個人臉圖像作為輸入層,也可以對人臉圖像進行采樣,然后用低分辨率圖像作為輸入層。

由此可以看出,人工神經網絡有著與Eigenface方法非常相似的表達方法。

一般來說,BP算法的收斂速度非常緩慢,學習過程可能需要對整個訓練集進行上千次反復迭代運算,這是神經網絡實際應用的一個問題。此外,BP算法以誤差梯度下降的方式達到極小值,但在實際應用中,容易陷入到局部極小中,無法得到全局最優解,這也是有待解決的一個問題。

1.2.4基于小波包的識別方法

基于小波包的面部識別方法首先對一幅人臉圖像進行小波包分解。因為小波包分解得到的不同頻帶包含有不同的人臉信息,所以從每一個小波包中可以提取出不同的面部特征。對于小波包分解得到的離散逼近稀疏,Garcai進一步將它分解成三個部分,分別是邊界區、上半部分和下半部分,然后就可以分別計算這三個區域的均值和方差,加上另外15個離散細節區域的方差,組成一個包含有21個分量的特征向量。小波包分解是一種多分辨率分析方法,能夠提供良好的面部紋理描述,所以有利于提取面部特征。

1.2.5支持向量機的識別方法

支持向量機(SupportVectorMachine,SVM)起源于統計學習理論,它研究如何構造學習機,實現模式分類問題。其基本思想是通過非線性變換將輸入空間變換到一個高維空間,在高維空間求取最優線性分類面,以解決那些線性不可分的分類問題。而這種非線性變換是通過定義適當的內積函數(即核函數)來實現的。SVM技術中核函數及其參數的選取難度較大。由于它基于結構風險最小化原理,而不是傳統統計學的經驗風險最小化,因而表現出很多優于已有方法的性能。由于SVM的訓練需要大量的存儲空間,非線性SVM分類器需要較多的支持向量,所以速度很慢。

2 人臉特征提取與識別

PCA方法將包含人臉的圖像區域看作隨機向量,因此可采用K-L變換得到正交K—L基,對應其中較大特征值的基具有與人臉相似的形狀,因此又被稱為特征臉。利用這些基的線性組合可以描述、表達和逼近人臉圖像,所以可進行人臉識別與合成。識別過程就是將人臉圖像映射到由特征臉組成的子空間上,并比較其在特征臉空間中的位置。PCA方法認為圖像的全局結構信息對于識別最重要,將圖像看作一個矩陣,計算矩陣的特征值和對應特征向量進行識別。這種方法利用圖像的總體信息,不從圖像中提取出眼、嘴、鼻等幾何特征,算法較簡單且具有較高的識別率。

主成分分析法(PCA)是模式識別判別分析中最常用的一種線性映射方法,該方法是根據樣本點在多維模式空間的位置分布,以樣本點在空間中變化最大方向,即方差最大的方向,作為判別矢量來實現數據的特征提取與數據壓縮的。從概率統計觀點可知,一個隨機變量的方差越大,該隨機變量所包含的信息就越多,如當一個變量的方差為零時,該變量為一常數,不含任何信息。

2.1利用PCA進行特征提取的經典算法——Eigenface算法

在利用PCA進行特征提取的算法中,特征臉方法(Eigenface)是其中的一個經典算法。特征臉方法是從主成分分析導出的一種人臉識別和描述技術。特征臉方法就是將包含人臉的圖像區域看作是一種隨機向量,因此可以采用K-L變換獲得其正交K-L基底。對應其中較大特征值的基底具有與人臉相似的形狀,因此又稱為特征臉。利用這些基底的線性組合可以描述、表達和逼近人臉圖像,因此可以進行人臉識別與合成。識別過程就是將人臉圖像映射到由特征臉張成的子空間上,比較其與己知人臉在特征空間中的位置,具體步驟如下:

(1)初始化,獲得人臉圖像的訓練集并計算特征臉,定義為人臉空間,存儲在模板庫中,以便系統進行識別;

(2)輸入新的人臉圖像,將其映射到特征臉空間,得到一組關于該人臉的特征數據;

(3)通過檢查圖像與人臉空間的距離判斷它是否是人臉;

(4)若為人臉,根據權值模式判斷它是否為數據庫中的某個人,并做出具體的操作。

2.2 PCA人臉識別流程

完整的PCA人臉識別應該包括以下四個步驟:人臉圖像預處理;讀入人臉庫,訓練成特征子空間;把訓練圖像和測試圖像投影到上一步驟得到的子空間上;選擇一定的距離函數進行識別。下面詳細描述整個過程:

(1)讀入人臉庫

歸一化人臉庫后,將庫中的每人選擇一定數量的圖像構成訓練集,其余構成測試集。設歸一化后的圖像是N×N的,按列相連就構成維向量,可看作是維空間中的一個點,可以通過K-L變換用一個低維子空間描述這個圖像。

(2)計算K-L變換的生成矩陣,并求取圖像的特征值和特征向量

假設人臉圖像庫中有N幅人臉圖像,用向量表示為(向量維數設為L),其人臉平均圖像如式(2-1)所示:

由此可得到每幅圖像的均差,如式(2-2)所示:

(2-2)

這樣可計算協方差矩陣,如式(2-3)所示:

(2-3)

計算矩陣C的特征值

和對應特征向量 但是在實際計算中,矩陣C的大小是

,即使對尺寸較小的圖像計算量還是很大。為了減小運算量,現將每幅圖像的均差形成一個矩陣,如式(2-4)所示:

(2-4)

則式(2-3)可以寫成式(2-5):

(2-5)

因此,根據線性代數理論,將計算

的特征值

和對應特征向量

的問題轉化為求

的特征值

和對應的特征向量

的問題。

的大小僅為N×N遠遠小于

,故簡化了計算。在求出

后,

可以通過式(2-6)得到:

(2-6)

(3)把訓練圖像和測試圖像投影到特征空間

由特征向量所形成的向量空間可表示人臉圖像的主要特征信息,將人臉圖像庫中所有N個圖像的均差向此空間投影,得到各自的投影向量

,如式(2-7)和(2-8)所示:

(2-7)

(2-8)

對于待識別人臉圖像I,計算其與k差的投影向量,如式(2-9)所示:

(2-9)

再與人臉圖像庫中N個人臉圖像對應的投影向量

比較,按照一定的距離準則完成識別。

(4)比較測試圖像和訓練圖像,確定待識別樣本類別

這里可以采用多種不同的分類器進行分類:

范式、

范式、最小距離、角度以及Mahalanobis距離等。


MATLAB特征臉程序實現

m = mean(T,2); %求樣本的平均向量

Train_Number = size(T,2);

%%%%計算每個樣本與平均向量的差向量

A = [];

for i = 1 : Train_Number

temp = double(T(:,i)) - m; %計算訓練集中每幅圖像的均差 Ai = Ti - m

A = [A temp];

end

L = A'*A; %計算協方差矩陣

[V D] = eig(L); % 求特征向量和特征值

2.3特征向量選取

上面所創建的用于投影的特征臉子空間使用的是所有r個非零的特征值對應的特征向量。雖然協方差矩陣C最多有對應于非零特征值的N個特征向量,且r≤N,但是通常情況下,r仍然會太大,而根據應用的需求,并非所有的

,都有保留意義。而特征空間投影的計算速度是直接與創建子空間所用的特征向量的數目相關,若考慮到計算時間等因素,可以適當減去一些信息量少的特征向量,且去掉這些特征向量之后不一定不利于分類結果,有的情況下反而能夠提高識別性能。下面將討論幾種不同的特征值選擇方法:

(1)標準的特征空間投影:所有r個對應于非零特征值的特征向量均被用于創建特征臉子空間。但是該方法在r值較大時,計算速度會較慢,且不利于分類。

(2)為進一步壓縮特征向量和減小運算量,將特征值按大小順序排序,忽略小特征值所對應的特征向量,即由下式得到

,則壓縮后的特征向量集如式(2-10)所示:

,M<r (2-10)

經過實驗證明當M的取值為M=[r*20%]的時候識別率最佳。

(3)保持前面的z—1個特征向量:將特征值按照降序排列,同時保留最前面的z一1個特征向量,其中z為訓練圖像的類別數。

(4)按照計算信息量來確定維數:不同于前面固定的丟棄一些特征向量,該方法采用保證剩余的特征向量所包含的信息與總的信息量相比大于一定的閾值e,e的值通常取為0.9,可依照式(2-11)計算:

(2-11)

MATLAB分類和提取特征值程序實現

% 按照特征值>1來提取特征向量

L_eig_vec = [];

for i = 1 : size(V,2)

if( D(i,i)>1 )

L_eig_vec = [L_eig_vec V(:,i)];

end

end

%%%%%%%計算協方差矩陣的特征向量

% 降維

Eigenfaces = A * L_eig_vec; % A: centered image vectors

2.4距離函數的選擇

圖像被投影到特征空間中,剩下的任務就是如何判別這些圖像的相似性。通常有兩種方法來判別:一種是計算在N維空間中圖像間的距離,另一種是測量圖像間的相似性。當測量距離時,我們希望距離盡可能地小,一般選擇與測試圖像最近的訓練圖像作為它的所屬的類別。而測量相似性的時候,則希望圖像盡可能地相似,也就是說具有最大的相似性的訓練圖像類別是測試圖像所屬的類別。在此介紹幾種計算方法:

(1)

范式

將像素間的絕對值的差值相加,也稱和范式。

范式距離公式如式(2-12)所示:

(2-12)

(2)

范式

將像素間的平方差異相加。也稱為歐幾里德距離。

范式距離公式如式(2-13)所示:

(2-13)

(3)最小距離

首先計算各類訓練樣本的平均值,接下來的距離比較和上面的

范式完全相同。這樣分類時每類只需要比較一次,減少了計算量。樣本x與第i類的距離定義如式(2-14)所示:

(2-14)

其中

為第i類所有樣本的平均值。

2.5 基于PCA的人臉識別

基于PCA算法的人臉識別過程由訓練階段和識別階段兩個階段組成。在訓練階段,每個已知人臉X映射到特征臉組成的子空間上,得到N維向量

距離閾值

定義如式(2-15)所示:

(j,k=1,2,…,N) (2-15)

在識別的時候,首先把待識別的圖像映射到特征臉空間,得出向量P及其與每個人臉集的距離

(i=1,2,3,…,N),采用歐式距離法進行人臉識別,分類規則為:

(1)若

>

,則輸入圖像不是人臉圖像;

(2)若

<

>

,則輸入圖像包含未知人臉;

(3)若

<

=min{

},則輸入圖像為庫中第k個人的人臉。

MATLAB人臉識別程序

ProjectedImages = [];

Train_Number = size(Eigenfaces,2);

for i = 1 : Train_Number

temp = Eigenfaces'*A(:,i); % 將每個樣本投影到特征空間

ProjectedImages = [ProjectedImages temp];

end

%%%%%%%%%%%從測試圖片中提取PCA特點

InputImage = imread(TestImage);

temp = InputImage(:,:,1);

[irow icol] = size(temp);

InImage = reshape(temp',irow*icol,1);

Difference = double(InImage)-m;

ProjectedTestImage = Eigenfaces'*Difference; % 將待測樣本投影到特征空間

%%%%%%%按照歐式距離取最小的原則得出匹配的人臉

Euc_dist = [];

for i = 1 : Train_Number

q = ProjectedImages(:,i);

temp = ( norm( ProjectedTestImage - q ) )^2;

Euc_dist = [Euc_dist temp];

end

[Euc_dist_min , Recognized_index] = min(Euc_dist);

OutputName = strcat(int2str(Recognized_index),'.jpg');

3 MATLAB軟件程序編寫

3.1.創建圖片數據庫

function T = CreateDatabase(TrainDatabasePath)

%%%%%%讀取訓練庫路徑,并統計樣本個數

TrainFiles = dir(TrainDatabasePath);

Train_Number = 0;

for i = 1:size(TrainFiles,1)

if not(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))

Train_Number = Train_Number + 1; % Number of all images in the training database

end

end

%%%%%%%%將2維圖像轉化為一維向量

img = imread(str);

img = rgb2gray(img);

[irow icol] = size(img);

temp = reshape(img',irow*icol,1); % Reshaping 2D images into 1D image vectors

T = [T temp]; % 'T' grows after each turn

end

3.2 主程序

clear all

clc

close all

% You can customize and fix initial directory paths

TrainDatabasePath = uigetdir(strcat(matlabroot,'\work'), 'Select training database path' );%設置訓練集路徑

TestDatabasePath = uigetdir(strcat(matlabroot,'\work'), 'Select test database path');

prompt = {'Enter test image name (a number between 1 to 10):'};

dlg_title = 'Input of PCA-Based Face Recognition System';

num_lines= 1;

def = {'1'};

TestImage = inputdlg(prompt,dlg_title,num_lines,def);

TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');

im = imread(TestImage);

T = CreateDatabase(TrainDatabasePath);

[m, A, Eigenfaces] = EigenfaceCore(T);

OutputName = Recognition(TestImage, m, A, Eigenfaces);

SelectedImage = strcat(TrainDatabasePath,'\',OutputName);

SelectedImage = imread(SelectedImage);

figure;

subplot(1,2,1);imshow(im);

title('Test Image');

subplot(1,2,2);imshow(SelectedImage);

title('Equivalent Image');

str = strcat('Matched image is : ',OutputName);

disp(str)

3.3最終程序結果

TrainDatabase里存放了20張圖片,TestDatabase里存放了10張圖片,所有圖片格式和分辨率都相同。運行主程序時,先設置好TrainDatabase的路徑,再設置好TestDatabase的路徑,之后還會彈出你想要匹配的圖片號(1-10),最終會顯示出Test Image和在TrainDatabase里匹配出來Equivalent Image。如果所要匹配的圖片和TrainDatabase里的圖片相同,則匹配出來的圖片則相同(如圖4-5-1);如果所要匹配的圖片在TrainDatabase里沒有,則搜索出最為相近的圖片(如圖4-5-2)。




參考文獻

1 黃文梅,熊佳林,楊勇編著.信號分析與處理——MATALB語言及應用.國防科技大學出版社,2000

2 錢同惠編著.數字信號處理.北京:機械工業出版社,2004

3 姚天任,江太輝編著.數字信號處理.第2版.武漢:武漢理工大學出版社,2000

4 謝平,林洪彬,王娜.信號處理原理及應用.機械工業出版社,2004

5 劉敏,魏玲.Matlab.通信仿真與應用.國防工業出版社,2005

6 樓順天.基于Matlab7.x 的系統分析與設計.西安電子科技大學,2002

7孫洪.數字信號處理.電子工業出版社,2001

總結

以上是生活随笔為你收集整理的MATLAB人脸识别系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精选一区 | 人人爽人人爽人人爽人人爽 | 亚洲天堂va | 五月天综合激情 | 俄罗斯porn | 97精品人妻一区二区三区蜜桃 | 黄色片免费网站 | 91九色中文 | 性做久久久久久免费观看欧美 | 久久久久九九 | 人妻少妇精品一区二区 | 中文字幕第2页 | 日本护士体内she精2xxx | 两个小y头稚嫩紧窄h文 | japanese国产在线观看 | 被黑人各种姿势猛c哭h文1 | 国产精品一区二区三区免费视频 | 天天干天天色天天射 | 全黄一级男人和女人 | 国产tv在线观看 | 日韩丰满少妇无码内射 | 成人欧美一区二区三区在线播放 | 国产在线播 | 最近日韩中文字幕 | 中文字幕av影视 | 九九久久国产 | 无套内谢大学处破女www小说 | 国产精品久久久久久久久久小说 | 天天想你在线观看完整版电影免费 | 99国产精品| 西比尔在线观看完整视频高清 | 97久久免费视频 | 日韩三级国产精品 | 国产一二三在线观看 | 黄色一级淫片 | 国产九区 | 麻豆传媒在线免费 | 日韩在线视频观看免费 | 无码日韩人妻精品久久蜜桃 | 久久久久麻豆v国产精华液好用吗 | 蘑菇视频黄色 | 久久国产精品国产精品 | 黄色片在线看 | 天堂网免费视频 | 中文字幕手机在线视频 | 天天拍天天操 | 日本午夜激情视频 | 国产精品一区二区三区免费观看 | 爱情岛亚洲品质自拍极速福利网站 | 亚洲国产中文字幕在线观看 | 95国产精品 | 国产精品色在线网站 | 蜜臀久久精品久久久久久酒店 | 国产精品第2页 | 亚洲欧美一区二区精品久久久 | 国产一区二区成人 | 久久精品国产亚洲AV无码男同 | 欧美黄大片| av在线毛片 | av电影免费在线播放 | 日本黄色生活片 | 51调教丨国产调教视频 | 午夜精品99 | 色网站视频 | 天干夜天干天天天爽视频 | 国产一区二区视频在线免费观看 | 五月婷婷七月丁香 | 无套内谢老熟女 | 日韩一级片免费在线观看 | 国产113页 | 亚洲播放 | 日本丰满少妇裸体自慰 | 久久人妻精品白浆国产 | 亚欧综合在线 | 337p日本大胆噜噜噜鲁 | 性开放耄耋老妇hd | 男女啪啪国产 | 熟妇人妻无乱码中文字幕真矢织江 | 久草免费福利 | 免费黄色成人 | 中文字幕人妻丝袜乱一区三区 | 日韩欧美精品在线播放 | 国产精品一区二区免费在线观看 | 亚洲经典一区二区 | 在线成人免费观看 | av首页在线| 2025韩国大尺度电影 | 日韩一级在线 | 91精品一区二区三区综合在线爱 | 亚洲色图视频网站 | 国精产品一品二品国精品69xx | 免费黄视频在线观看 | 亚洲777| 欧美日韩亚洲不卡 | 亚洲热久久 | 综合激情四射 | 欧美三级韩国三级日本三斤 | 野战少妇38p | 欧美一区二区三区四区五区 |