基于matlab的人臉識別系統(tǒng)設計與仿真_第1頁
基于matlab的人臉識別系統(tǒng)設計與仿真_第2頁
基于matlab的人臉識別系統(tǒng)設計與仿真_第3頁
基于matlab的人臉識別系統(tǒng)設計與仿真_第4頁
基于matlab的人臉識別系統(tǒng)設計與仿真_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于 Matlab 的人臉識別系統(tǒng)設計與仿真 摘要摘要人臉識別即指利用分析比對人臉視覺特征信息從而到達身份鑒別效果的計算機技術。人臉識別是一項當下十分熱門的計算機技術的研究領域,該項技術可以人臉明暗偵測,并且自動調整動態(tài)曝光補償,同時對人臉追蹤偵測,并自動調整影像放大;這項技術屬于生物特征識別技術的一種,是利用生物體一般指人本身的生物特征從而到達區(qū)分生物體個體的目的。人臉識別技術目前主要用做身份識別。由于視頻監(jiān)控的飛速普及,使這項應用迫切的需要一種能實現在用戶非配合狀態(tài)下、遠距離的進行快速身份識別的技術,以求能在遠距離之下快速識別人員身份,從而實現智能預警的功能。最正確的選擇無疑是人臉識別技術

2、。采用快速人臉檢測識別技術可以從視頻監(jiān)控圖象中實時捕獲到人臉信息,并與人臉數據庫中的已存信息進行實時比對,從而到達快速身份識別的效果。報告利用 MATLAB 軟件來實現人臉信息檢測與識別,利用 YCbCr 空間以及灰度圖像來實現人臉的邊緣分割, 將真彩圖像轉換為灰度圖像,并根據膚色在YCbCr 色度空間上的分布范圍,來設定門限閥值,從而實現人臉區(qū)域與非人臉區(qū)域的分割,通過圖像處理等一系列的操作來剔除干擾因素,再通過長寬比和目標面積等方法在圖像中定位出人臉區(qū)域,經試驗,該方法能夠排除面部表情、衣著背景、發(fā)型等干擾因素,從而定位出人臉區(qū)域。關鍵詞:Matlab 軟件;灰度圖像;邊緣分割;人臉區(qū)域w

3、ord.AbstractFace recognition especially use comparative analysis face visual feature information for identification of computer technology. Face recognition is a hot research field computer technology, face detection, light and shade can be automatically adjusted dynamically exposure compensation, h

4、uman face tracking detection, automatic adjustment of image magnification; It belongs to the biometric identification technology, it is of organisms (generally refers to a person) individual biological characteristics to distinguish between the organism itself.Face recognition is mainly used for ide

5、ntification. Because of the video monitoring is fast popularization, many of the video monitoring application is an urgent need to a long distance, the user not cooperate condition of rapid identification technology, in order . Face recognition technology is undoubtedly the best choice, the fast fac

6、e detection technology to monitor in real-time video image search from face, and with real-time than face database, so as to realize rapid identification.Report using MATLAB software to realize face information detection and recognition, using YCbCr space and gray image to realize the face edge segm

7、entation, the true color image is converted to a grayscale image, and according to the color of skin in YCbCr chroma space distribution, to set the threshold threshold, so as to realize the segmentation of face region with the face region, through a series of operations such as image processing to e

8、liminate interference factors, and through such means as aspect ratio and the target area locate the face region in the image, the experiment, this method can eliminate facial expressions, clothes, hair background erference factors, so as to locate the face region.Keywords:Matlab;Gray image;

9、edge segmentation;face region目錄摘要摘要.1 1ABSTRACTABSTRACT.2 2目錄目錄.3 3第第 1 1 章章 緒論緒論.4 41.1 課題的研究背景、目的及意義 .41.1.1 課題的研究背景 .41.1.2 研究目的及意義 .51.2 本課題的主要內容 .5第第 2 2 章章 圖像處理的圖像處理的 MATLABMATLAB 實現實現.6 62.1 識別系統(tǒng)構成 .62.2 人臉圖像的讀取與顯示 .72.3 圖像類型的轉換 .72.4 圖像增強 .82.5 灰度圖像平滑與銳化處理 .92.6 邊緣檢測 .11第第 3 3 章章 人臉識別計算機系統(tǒng)人臉

10、識別計算機系統(tǒng).12123.1 系統(tǒng)根本構架 .123.2 人臉檢測定位算法 .123.3 匹配與識別 .17結論結論.2424致謝致謝.2525參考文獻參考文獻.2626附錄附錄 1 1 人臉識別的人臉識別的 MATLABMATLAB 源程序源程序 .2727附錄附錄 2 2 外文參考文獻及翻譯外文參考文獻及翻譯 .3131word.第 1 章 緒論1.1 課題的研究背景、目的及意義 課題的研究背景數字圖像處理技術是 20 世紀 60 年代開展起來的一門新興技術。近 30 多年來,在計算機科技和大規(guī)模集成電路技術的迅猛開展、離散數學理論創(chuàng)立和完善,以及工業(yè)、軍事、醫(yī)學等方面的應用需求在不斷增

11、長,人臉識別技術已經在人機交互、平安驗證系統(tǒng)、系統(tǒng)公安(罪犯識別等)、醫(yī)學、檔案管理、信用卡驗證、視頻會議等方面的巨大應用前景而越來越成為當前模式識別和人工智能領域的一個研究熱點。目前,人臉識別技術應用最廣泛的地方就是各大公司、商場、政府保密機構的門禁考勤系統(tǒng)。20 世紀 90 年代后期以來,一些商業(yè)性的人臉識別技術系統(tǒng)逐漸進入市場。自美國遭遇恐怖分子襲擊事件后,這一技術引起了社會各方的廣泛關注。由于隱蔽性十分好,該項技術逐漸成為國際反恐及平安防范的重要手段之一。人臉識別技術在中國也有迅猛開展的歷史。國家“十一五科技開展規(guī)劃就將人臉識別技術的研究與開展列入其中,并明確指出“要在生物特征識別技術

12、領域縮小與世界先進水平的差距,開展生物特征識別應用技術研究,開發(fā)具有高平安性、低誤報率的出入口控制新產品。在這種形勢下,國內一些科研院所在人臉識別技術上有了重大開展和突破。如清華大學、中科院計算機所、中科院自動化所等自主研發(fā)的人臉識別技術已經到達了國際先進的水平。經過多年的研發(fā)探索,在世界各大研究機構的研發(fā)人員的共同努力下,人臉識別技術這一領域取得了豐碩的成果,這些研究成果的取得和科技的進步,更進一步推動了人類對人臉識別技術這一高端技術的深入研究。人臉識別技術,顧名思義,指利用采集、分析、比擬人臉視覺特征信息來進行身份鑒別的計算機技術。廣義的人臉識別實際包括構建人臉識別系統(tǒng)的一系列相關技術,包

13、括人臉圖像采集、人臉定位、人臉識別預處理、身份確認以及身份查找等;而狹義的人臉識別特指通過人臉進行身份確認或者身份查找的word.技術或系統(tǒng)。它是人們一直所追求的讓機器智能化技術,就是讓機器具備和人類一樣的思考能力,識別能力以及處理事務的能力。而人臉識別技術的研究就是在這樣的背景下開展起來的。1.1.2 研究目的及意義目前,人臉識別技術已經廣泛用于軍隊、政府、社會福利保障、銀行、平安防務及電子商務等領域。而我們研究這項技術的目的就是讓其更好地效勞于人類社會,在這個生活快節(jié)奏的前提下,與人方便。例如京滬高鐵三站將建立人臉識別系統(tǒng),即使整容也能被識別。鐵路部門發(fā)布方案時表示,將在京滬高鐵段的天津西

14、站、濟南西站、上海虹橋站這三個站點,建立人臉識別系統(tǒng)工程,以此來協助公安部門甄別、抓捕在逃罪犯。利用這個系統(tǒng),即使作案后的犯罪分子進行整容,也會被識別。研究人臉識別技術,在現實意義上具有重大意義:一是能進一步加強對人類視覺系統(tǒng)本身的認知;二是能夠滿足人類社會中對人工智能應用的廣泛需要。同時人臉識別技術又有自然性、無侵犯性、本錢低、智能化等幾個顯著優(yōu)勢。人臉識別技術的研究也有重大的學術價值。由于人類有非常復雜的細節(jié)變化,例如眼鏡、胡須、發(fā)型等附屬物的干擾,這就給該項技術帶來了巨大挑戰(zhàn)。成功構造出人臉識別系統(tǒng)將為解決其他與之類似的復雜問題提供重要的啟示。1.2 本課題的主要內容本次課題主要講述了人

15、臉識別中應用 Matlab 對圖像進行預處理,通過人臉檢測、人臉跟蹤、人臉比對來實現基于 Matlab 的人臉識別系統(tǒng)的仿真。利用Matlab 實現一個集多種預處理方法于一體的通用的人臉識別仿真系統(tǒng),將該系統(tǒng)作為圖像預處理模塊嵌入在人臉識別系統(tǒng)中,并利用灰度圖像的直方圖比對來實現人臉圖像的識別判斷。文中在研究人臉識別技術的仿真過程中,主要涉及了 YCbCr 空間、灰度圖像轉換、噪聲消除、圖像填孔、圖像重構、人臉區(qū)域確定、邊緣檢測等技術。通過屢次實驗并比對各個算法和技術的優(yōu)缺點,有效地實現了基于 Matlab 的人臉識別系統(tǒng)的設計與仿真,并到達了預期目標和效果。word.第 2 章 圖像處理的

16、Matlab 實現2.1 識別系統(tǒng)構成人臉識別技術系統(tǒng)主要可分為四個組成局部,分別為:人臉圖像采集及檢測、人臉圖像預處理、人臉圖像特征提取以及匹配與識別。一般人臉識別系統(tǒng)構架如圖 2.1 所示:人臉圖像采集及檢測人臉圖像預處理人臉圖像特征提取匹配與識別圖 2.1 人臉識別系統(tǒng)構架1人臉圖像采集及檢測 人臉圖像采集:人臉圖像信息都能通過攝像鏡頭采集記錄下來,比方不同位置、不同表情、靜態(tài)圖像、動態(tài)圖像等方面都能得到很好的采集。當目標在采集設備拍攝的范圍內時,采集設備會自動搜索并采集目標的人臉圖像;人臉檢測:在實際中主要應用于人臉識別的預處理,即在采集到的圖像中準確定位出人臉的位置。人臉圖像中包含的

17、模式特征非常豐富,如模板特征、結構特征、直方圖特征、顏色特征等。人臉檢測就是挑出這其中有用的特征信息,并利用這些特征來實現人臉識別。2人臉圖像預處理 人臉圖像預處理:所謂人臉圖像預處理,就是基于人臉檢測結果,并對人臉圖像進行處理,最終效勞于人臉特征提取的過程。系統(tǒng)獲取的原始人臉圖像由于受到隨機干擾和各種條件的限制,通常不能直接使用,所以必須在人臉圖像處理過程中要先對它進行灰度圖像、噪聲過濾等圖像預處理。而對于人臉圖像,預處理的過程主要涉及灰度變換、人臉圖像的光線補償、幾何校正、直方圖均衡化、歸一化、濾波以及銳化等。3人臉圖像特征提取 人臉圖像特征提取:人臉識別系統(tǒng)通常會使用的特征分為視覺特征、

18、人臉圖像變換系數特征、像素統(tǒng)計特征以及人臉圖像代數特征等。所謂人臉特征提取即針對人臉的某些特征進行的提取。人臉特征提取,也被稱為人臉表征,是對人臉特征進行建模的過程。人臉特征提取的方法總結word.起來可以分為兩大類:一種是基于統(tǒng)計學習或代數特征的表征方法;另一種是基于知識的表征方法。4匹配與識別 人臉圖像的匹配與識別:將提取到的圖像特征數據與數據庫中已存的特征模板進行搜索匹配,設定一個閾值,當相似度超過這一閾值時,那么把匹配所得到的結果輸出。人臉識別就是將待識別的人臉特征與已存儲的人臉特征模板進行比對,依據相似度對該人臉圖像的身份信息進行判別。這一過程主要分為兩步:第一步是確認,就是一對一進

19、行圖像比擬的過程,第二步是識別,就是一對多進行圖像匹配比照的過程。2.2 人臉圖像的讀取與顯示人臉圖像的讀取和顯示可通過 imread( )和 imshow( )指令來實現;圖像的輸出可以用 imwrite( )函數,很方便快捷的將圖像輸出到電腦硬盤上;另外還可以通過 imcrop( )、imrisize( )、imrotate( )等函數來實現圖像的裁剪、縮放與旋轉等功能。2.3 圖像類型的轉換Matlab 支持多種圖像類型,在很多圖像操作處理中,對圖像的類型有要求,所以就涉及到了對圖像的類型進行轉換。Matlab7.0 圖像處理工具箱包含了不同圖像類型之間相互轉換的大量函數,如 rgb2g

20、ray()可以將顏色映像表或 RGB圖像轉換為灰度圖像,通過 mat2gray()函數能實現矩陣轉換為灰度圖像的功能。在類型轉換的處理過程中,我們還會經常遇到數據類型不匹配的問題,針對這一問題,Matlab7.0 工具箱中為我們提供了各種數據類型之間相互轉換的函數,例如 double()函數的功能就是將數據轉換為雙精度數據類型。因為后續(xù)的圖像增強、邊緣檢測等都是針對灰度圖像進行的,而原圖像是RGB 圖像,所以我們首先要對原圖像進行類型轉換。實現過程代碼如下:i=imread(F:2.JPG);j=rgb2gray(i);word.imshow(j);imwrite(j,F:2.tif)轉換后的

21、灰度圖像如圖 2.2 所示:圖 2.2 灰度圖像2.4 圖像增強圖像增強的目的是改善圖像的視覺效果,或者使圖像更適合于人或機器進行分析處理。通過圖像增強,可以減少圖像中的噪聲,提高目標與背景的比照度,也可以強調或抑制圖像中的某些細節(jié)。例如,消除照片中的劃痕,改善光照不均勻圖像,突出目標的邊緣等。實現圖像的灰度轉換的方法有很多,其中最常用到的是直方圖變換的方法,即直方圖的均衡化。該種方法是使輸出圖像直方圖近似服從均勻分布的變換方法。Matlab7.0 圖像處理工具箱中為我們提供了圖像直方圖均衡化的函數histeq(),我們也可以通過 imhist()函數計算和顯示圖像的直方圖。通過原圖與直方圖均

22、衡化后圖像比照可以發(fā)現,圖像變得更加清晰,并且均衡化后的直方圖相對于原直方圖的形狀更為理想。實現過程代碼如下:i=imread(F:2.tif);j=histeq(i);imshow(j);figure,subplot(1,2,1),imhist(i);subplot(1,2,2),imhist(j)word.執(zhí)行后得到的圖像如下所示: 圖 2.3 均衡化后的灰度圖像 圖 2.4 均衡化前后的直方圖比照圖2.5 灰度圖像平滑與銳化處理平滑濾波器的作用是模糊圖像或者消除噪聲,Matlab7.0 圖像處理工具箱為我們提供了 wiener2()來實現對圖像噪聲的自適應濾波,medfilter2()函

23、數用來實現中值濾波。在本文案例中,為使濾波效果更加明顯,我們預先為人臉圖像人為增加噪聲,然后用自適應濾波方法對圖像進行濾波處理。銳化處理的作用是用來強調圖像中被模糊的細節(jié),在本案例中,采用了預定義高斯濾波器的方法對圖像進行銳化濾波。實現過程的代碼如下:i=imread(F:2.tif);j=imnoise(i,gaussian,0,0.02);subplot(1,2,1),imshow(j);j1=wiener2(j);subplot(1,2,2),imshow(j1);h=fspecial(gaussian,2,0.05);j2=imfilter(i,h);figure,subplot(1,

24、2,1),imshow(i)word.subplot(1,2,2),imshow(j2)執(zhí)行上述代碼后得到的圖像如下所示:圖 2.5 平滑濾波效果圖圖 2.6 銳化濾波效果圖圖 2.5 中,第一個為參加噪聲的圖像,第二個為濾波后的圖像;圖 2.6 中,第一個為原灰度圖像,第二個為銳化后的圖像。word.2.6 邊緣檢測數字圖像的邊緣檢測是目標區(qū)域識別、圖像分割、區(qū)域形狀提取等圖像分析過程中十分重要的根底步驟,也是人臉圖像識別中用來實現提取圖像特征的一個重要步驟。通過計算一階導數或二階導數可以快捷地檢測出圖像中每個像素在其鄰域內的灰度變化,從而檢測出邊緣。常用的有梯度算子, ,Roberts 算

25、子,canny 算子,Log 算子等。Matlab7.0 工具箱中為我們提供的 edge()函數可以用來進行邊緣檢測,同時也可以根據案例所需要的選擇適宜的算子及其參數。Matlab7.0 圖像處理工具箱中提供了 edge()函數來實現圖像邊緣檢測,還有各種方法算子供我們選擇,在本案例中采用了 canny 算子來進行圖像邊緣檢測,程序代碼如下:i=imread(F:2.tif);j=edge(i,canny,0.04,0.25,1.5);imshow(j)執(zhí)行上述程序后得到如下列圖像: 圖 2.1 原灰度圖像 圖 2.7 邊緣檢測效果圖word.第 3 章 人臉識別計算機系統(tǒng)3.1 系統(tǒng)根本構架

26、人臉識別是一個十分復雜的過程,一般人臉識別的計算機系統(tǒng)流程如圖3.1 所示。它包括幾個步驟:進行圖像采集,對于采集到的圖像,首先進行人臉檢測,得出有無人臉的結果;然后進行人臉定位,找出人臉的位置并提取出來。對于人臉定位,在輸入的是圖像序列時,一般也被稱為人臉跟蹤。通常檢測和定位同步進行。借助人臉描述對提取出來的人臉就可以進行人臉識別,即通過提取人臉特征來確定其身份。開開 始始圖像采集圖像采集檢測定位檢測定位是否認位成功是否認位成功是否處理成是否處理成功圖像預處理圖像預處理人臉識別人臉識別是否識別成是否識別成功識別結果識別結果結結 束束是是是圖 3.1 根本框架圖3.2 人臉檢測定位算法人臉檢測

27、定位算法可分為兩大類:一類是基于隱式特征的方法;另一類是基于顯式特征的方法所謂的顯式特征,即指人類肉眼可以直觀看到的特征,如膚色、臉部結構、臉部輪廓等。基于顯式特征的方法是指通過肉眼的觀察,總結概括出人臉區(qū)域word.區(qū)別于“非人臉區(qū)域的特征,根據與被檢測區(qū)域的比照,即是否滿足這些人臉特征,從而判定該區(qū)域包含人臉與否。根據所選擇的“人臉特征,基于顯式特征的方法可以分為三類:模板匹配的方法、基于膚色模型的方法、基于先驗知識的方法。以上三類方法的優(yōu)缺點概括見表 3-1:表 3-1 優(yōu)缺點比照基于隱式特征的方法就是將人臉區(qū)域看成一類模式,通過“人臉、 “非人臉樣本、構造分類器的使用,判別圖像中全部可

28、能區(qū)域是否符合“人臉模式的一類方法來實現人臉的檢測。這類方法可以分為:神經網絡法、特征臉法、積分圖像法、支持向量法。以上四種方法的優(yōu)缺點比擬見表 3-2:表 3-2 優(yōu)缺點比照表檢測方法優(yōu) 點缺 點神經網絡法效率較高,錯誤報警數較少,網絡監(jiān)測速度較快多樣本訓練所耗的費時間多,網絡監(jiān)測錯誤報警數較多本征臉法能抽象人臉全部信息,運算時間相通過模板測效率較低,多模板雖然增加檢測方法優(yōu) 點缺 點模板匹配具有較強的直觀性和較好的適應性對面部表情的變換敏感;對于模板的選擇、參數確實定很困難膚色模型檢測速度相對較快陽光、背景光線等會使人臉區(qū)域被分割,導致被漏檢先驗知識的方法對于復雜圖像中的人臉檢測有較大優(yōu)勢

29、依賴于先驗知識;工作量較大,運算時間較長word.對較短了效率,但是檢測時間較長積分圖像分析法檢測速度較快,滿足實時檢測的要求,檢測效率相對較高錯誤報警數與檢測率成反比支撐向量法具有更好的泛化能力“非人臉的復雜造成支持向量數目較多,導致運算復雜度變大運用 matlab 軟件仿真進行人臉檢測定位實例:人臉檢測定位程序:% Reading of a RGB image原始圖像 i=imread(F:2.JPG);I=rgb2gray(i);BW=im2bw(I);figure,imshow(BW) %灰度圖像及均衡化灰度圖像 n1 n2=size(BW);r=floor(n1/10);c=floo

30、r(n2/10);x1=1;x2=r;s=r*c; for i=1:10 y1=1;y2=c; for j=1:10 if (y2=9*c) | (x1=1 | x2=r*10) loc=find(BW(x1:x2, y1:y2)=0);word. o p=size(loc); pr=o*100/s; if prmx & (BB2(1,k)/BB2(1,k+1)1.8word. mx=p; j=k; endendfigure,imshow(I);hold on;rectangle(Position,BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j),Edge

31、Color,r ) 1.原始圖片 2.灰度圖片 3.均衡化灰度圖片 4.人臉定位word.3.3 匹配與識別人臉人別系統(tǒng)的最后一步是人臉識別。人臉識別,即通過對所采集到的人臉圖像進行一系列處理,提取待識別人臉圖像的特征信息,通過與已存人臉數據庫信息進行匹配識別,確定待識別人臉圖像的根本信息。運行如下代碼:function varargout = faceCore(varargin)% FACECORE M-file for faceCore.fig% FACECORE, by itself, creates a new FACECORE or raises the existing% sing

32、leton*.% H = FACECORE returns the handle to a new FACECORE or the handle to% the existing singleton*.% FACECORE(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in FACECORE.M with the given input arguments.% FACECORE(Property,Value,.) creates a new FACECORE or raises th

33、e% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before faceCore_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to faceCore_OpeningFcn via varargin.word.% *See GUI Option

34、s on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help faceCore% Last Modified by GUIDE v2.5 28-May-2009 10:21:26% Begin initialization code -

35、DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, faceCore_OpeningFcn, . gui_OutputFcn, faceCore_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif n

36、argout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);word.end% End initialization code - DO NOT EDIT% - Executes just before faceCore is made visible.function faceCore_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args,

37、 see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to faceCore (see VARARGIN)% Choose default command line output for faceCorehandles.output = hObject

38、;% Update handles structureguidata(hObject, handles);% UIWAIT makes faceCore wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = faceCore_OutputFcn(hObject, eventdata, handles) % varargout cell array for

39、returning output args (see VARARGOUT);% hObject handle to figureword.% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% - Executes on butto

40、n press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global TrainDatabasePath ;TrainDatabasePath = uiget

41、dir(strcat(matlabroot,work), 訓練庫路徑選擇. );% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (se

42、e GUIDATA)global TestDatabasePath;TestDatabasePath = uigetdir(strcat(matlabroot,work), 測試庫路徑選擇.);% - Executes on button press in pushbutton3.word.%function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future vers

43、ion of MATLAB% handles structure with handles and user data (see GUIDATA)%filename,pathname=uigetfile(*.jpg;*.bmp,);%str=pathname filename;%im=imread(str);%axes(handles.axes1);%imshow(im);% - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject

44、handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global TrainDatabasePath ;global TestDatabasePath;global T;T = CreateDatabase(TrainDatabasePath);%m V_PCA V_Fisher ProjectedImages_Fisher = Fi

45、sherfaceCore(T);% - Executes on button press in pushbutton5.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)word.% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global im

46、;filename,pathname=uigetfile(*.jpg;*.bmp,選擇測試圖片.);str=pathname filename;im=imread(str);axes(handles.axes1);imshow(im);% - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined i

47、n a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%T = CreateDatabase(TrainDatabasePath);global T;global im;global TrainDatabasePath ;m V_PCA V_Fisher ProjectedImages_Fisher = FisherfaceCore(T);OutputName = Recognition(im, m, V_PCA, V_Fisher, ProjectedImages_Fis

48、her);SelectedImage = strcat(TrainDatabasePath,OutputName);SelectedImage = imread(SelectedImage);axes(handles.axes2);imshow(SelectedImage);%title(Equivalent Image);word.% - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton

49、7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)clear all;clcclose(gcf);執(zhí)行上述代碼后效果如下列圖所示:如上圖所示,當我們選擇待識別照片后,點擊圖像匹配,可以快速匹配到與該測試圖像特征信息相符合的訓練庫中的人臉圖像,效果圖如下:word.結論圖像是人類日常生活和工作中獲取和交換信息的重要來源,人臉圖像的識別技術已經應用到了生活中的方方面面?;?

50、Matlab 的人臉識別系統(tǒng)的仿真的研究很有意義。目前到處可見攝像頭,監(jiān)控錄像,這些的普及,使人臉識別具有重大商業(yè)價值。在本文圖像處理時,用到如灰度變化、格式轉換和濾波銳化等根本方法來實現圖像處理。通過對一些算法,方法的比擬,選擇了比擬合理的方法進行圖像預處理。在比擬人臉識別的幾種方法后,我們最終選擇了通過人臉圖像的直方圖差值進行比擬從而實現了人臉識別。事實證明,這種方法對人臉能更好的分類,但其對于人臉圖像的像素質量等要求較高,而我們只是采用 Orl 標準的人臉數據庫中的圖像完成測試,因此可以得到較高的識別率。在對大量參考文獻資料的閱讀的根底上,本設計對基于 Matlab 的人臉識別這一技術做

51、了詳細的綜述。然而,在現實生活中由于受到采集距離、光線明暗、人臉角度等因素的影word.響,采集到的人臉圖像與人臉庫進行匹配識別時,識別率很難可以到達測試要求。因此,在實際應用時還要根據具體情況進行分析。本次基于 Matlab 的人臉識別系統(tǒng)的仿真設計到這里就結束了,在設計過程中,雖然對幾種方法進行了比照選擇,但是還是有很多缺乏,可能很多問題想的不夠充分,設計中有些數據可能會有偏差,因此在今后的學習生活中要更加努力,不斷地提高自己的科學文化水平和各方面素質。致謝在佳木斯大學的學習生活即將結束,現在想想對母校還是有很多留戀。在做畢業(yè)設計的這段時間里,我的老師、同學們對我給予了非常多的幫助,在這里

52、,謹向他們致以最真誠的感謝!尤為感謝的,是我的導師周經國老師。周老師學識淵博,思想敏銳,洞察力超強,治學態(tài)度嚴謹,平易近人。在我做畢業(yè)設計的這段時間里,常常會被一些難題所困擾,弄得焦頭爛額。是周老師教導我,鼓勵我,對我給予了細心地指導和悉心的教誨,讓我擺脫困境,重新找回自信心。同時,我也要感謝教導過我的所有老師。是你們毫無保存的指導和細致耐心的幫助,我才能順利完成這次畢業(yè)設計。最后,我還要感謝身邊的朋友和同學,在大學生活的四年里,我在你們的陪伴中成長,謝謝你們在做畢業(yè)設計這段日子里給予我的幫助。真心的感謝所有在生活、學習中幫助過我的良師益友,謝謝你們!word.參考文獻1何東健,耿楠,張義寬.

53、數字圖像處理第二版.西安電子科技大學出版社,2022.5:1-3252于萬波.基于 MATLAB 的圖像處理.清華大學出版社,2022.3:1-2183陳書海,傅錄祥.實用數字圖像處理.北京科學出版社,20054崔屹.數字圖像處理與應用.北京:電子工業(yè)出版社,19975何東健,楊青.實用圖像處理技術.陜西科學技術出版社,19986呂風軍.溯溪圖像處理編程入門.清華大學出版社,19997章毓晉.圖像工程:圖像處理和分析上.清華大學出版社,19998章毓晉.圖像工程:圖像分析中.清華大學出版社,20059章毓晉.圖像工程:圖像理解與計算機視覺下.清華大學出版社,200010朱秀昌,劉峰,胡棟.數字

54、圖像處理與圖像通信.北京郵電大學出版社,200211韓曉軍.數字圖像處理技術與應用M.北京:電子工業(yè)出版社,200912劉剛.MATLAB 數字圖像處理M.北京:機械工業(yè)出版社,2022word.13徐倩,鄧偉. 一種融合兩種主成分分析的人臉識別方法J.計算機學報,200714郭文強,侯勇嚴.數字圖像處理.西安電子科技大學出版社,200915張宜華.精通 MATLAB5.清華大學出版社,199916張兆禮.現代圖像處理技術及 MATLAB 實現.人民郵電出版社,200117Wangmeng Zuo,Kuanquan Wang,David Zhang,Hongzhi Zhang. Combina

55、tion of two novel LDA-based methods for face recognitionC.Proceedings of the IEEE,200718何東風.人臉識別技術綜述J.計算機學報,200319The Mathworks.MATLAB User GUIdesDB/OL.2009附錄 1 人臉識別的 MATLAB 源程序1色彩空間轉換:function r,g=rgb_RGB(Ori_Face)R=Ori_Face(:,:,1);G=Ori_Face(:,:,2);B=Ori_Face(:,:,3);R1=im2double(R); % 將 uint8 型轉換成

56、 double 型G1=im2double(G);B1=im2double(B);RGB=R1+G1+B1;row=size(Ori_Face,1); % 行像素column=size(Ori_Face,2); % 列像素for i=1:rowword.for j=1:column rr(i,j)=R1(i,j)/RGB(i,j); gg(i,j)=G1(i,j)/RGB(i,j);endendrrr=mean(rr);r=mean(rrr);ggg=mean(gg);g=mean(ggg);2找區(qū)域邊界function left, right, up, down = bianjie(A)m

57、n = size(A);left = -1;right = -1;up = -1;down = -1;for j=1:n, for i=1:m, if (A(i,j) = 0) left = j; break; end; end; if (left = -1) break; end;end;for j=n:-1:1,for i=1:m,if (A(i,j) = 0) right = j; break;word.end;end;if (right = -1) break; end;end;for i=1:m,for j=1:n, if (A(i,j) = 0) up = i; break; en

58、d;end; if (up = -1) break; end;end;for i=m:-1:1, for j=1:n, if (A(i,j) = 0) down = i; break; end; end; if (down = -1) break; end;end;3模板匹配function ccorr, mfit, RectCoord = mobanpipei(mult, frontalmodel,ly,wx,cx, cy, angle)frontalmodel=rgb2gray(frontalmodel); word.model_rot = imresize(frontalmodel,ly

59、 wx,bilinear); % 調整模板大小model_rot = imrotate(model_rot,angle,bilinear); % 旋轉模板l,r,u,d = bianjie(model_rot); % 求邊界坐標bwmodel_rot=imcrop(model_rot,l u (r-l) (d-u); % 選擇模板人臉區(qū)域modx,mody =center(bwmodel_rot); % 求質心morig, norig = size(bwmodel_rot); % 產生一個覆蓋了人臉模板的灰度圖像mfit = zeros(size(mult);mfitbw = zeros(si

60、ze(mult);limy, limx = size(mfit);% 計算原圖像中人臉模板的坐標startx = cx-modx;starty = cy-mody;endx = startx + norig-1;endy = starty + morig-1;startx = checklimit(startx,limx);starty = checklimit(starty,limy);endx = checklimit(endx,limx);endy = checklimit(endy,limy);for i=starty:endy,for j=startx:endx,mfit(i,j) = model_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論