人臉識(shí)別畢業(yè)論文_第1頁(yè)
人臉識(shí)別畢業(yè)論文_第2頁(yè)
人臉識(shí)別畢業(yè)論文_第3頁(yè)
人臉識(shí)別畢業(yè)論文_第4頁(yè)
人臉識(shí)別畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 畢業(yè)設(shè)計(jì)(論文) 題目名稱:基于主成分分析(PCA)的人臉識(shí)別門(mén)禁軟件開(kāi)發(fā) -人臉識(shí)別 院系名稱:計(jì)算機(jī)學(xué)院 班 級(jí):計(jì)科092班 學(xué) 號(hào):200900814214 學(xué)生姓名:陳冠君 指導(dǎo)教師:陸筱霞 2013 年 6 月論文編號(hào):200900814214基于主成分分析(PCA)的人臉識(shí)別門(mén)禁軟件開(kāi)發(fā) -人臉識(shí)別Face recognition access control software development based on principal component analysis(PCA)         - F

2、ace Recognition院系名稱:計(jì)算機(jī)學(xué)院班 級(jí):計(jì)科092班學(xué) 號(hào):200900814214學(xué)生姓名:陳冠君指導(dǎo)教師:陸筱霞 2013 年 6 月中文摘要 隨著安全入口控制需求的快速增長(zhǎng),生物統(tǒng)計(jì)識(shí)別技術(shù)得到了新的重視。由于人臉的易采集、非接觸等優(yōu)點(diǎn)使得人臉特征作為人生物特征應(yīng)用受到越來(lái)越多的關(guān)注,其中最主要就是人臉識(shí)別。本文主要介紹一個(gè)人臉識(shí)別門(mén)禁系統(tǒng)的核心功能模塊。本文的設(shè)計(jì)是基于OpenCV庫(kù)的,以VS2012軟件作為開(kāi)發(fā)工具,主要從需求分析,系統(tǒng)概要設(shè)計(jì),關(guān)鍵技術(shù)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)幾方面來(lái)介紹開(kāi)發(fā)過(guò)程,最后進(jìn)行運(yùn)行測(cè)試。在人臉檢測(cè)基礎(chǔ)上,提取人臉進(jìn)行識(shí)別。在人臉識(shí)別方法上,本軟

3、件主要采用主成分分析法(PCA)。將大數(shù)據(jù)維度進(jìn)行降維,投影到低維空間,利用歐氏距離計(jì)算置信度,達(dá)到閥值的訓(xùn)練數(shù)據(jù)作為判定識(shí)別標(biāo)準(zhǔn)。關(guān)鍵詞:人臉檢測(cè);人臉識(shí)別;主成分分析法(PCA);Abstract With the rapid growth of security access control, biometric identification technology has been a new emphasis. Easy acquisition of the face, the non-contact, etc. makes facial feature as biometric ap

4、plications are more and more attention, of which the most important is face recognition. This paper describes a face recognition access control system is the core functional modules. This design is based on the OpenCV library to VS2012 software as a development tool, mainly from the needs analysis,

5、outline design, key technologies, detailed design and implementation aspects to introduce the development process, and finally run the test. On the basis of face detection, the extraction of face identification. Face recognition methods, the software using principal component analysis (PCA). The dim

6、ensions of the big data dimensionality reduction, projected to low-dimensional space using the Euclidean distance to calculate the confidence to reach the threshold of training data as the decision to identify standards.Key words: Face Detection;Face recognition; principal component analysis(PCA);目錄

7、中文摘要3Abstract4目錄I第一章 緒論11.1 前言11.2課題應(yīng)用背景與研究意義11.3 人臉識(shí)別類軟件的發(fā)展現(xiàn)狀21.4 系統(tǒng)可行性研究21.4.1 為什么選用OpenCV21.4.2 開(kāi)發(fā)環(huán)境的配置21.5 本畢業(yè)設(shè)計(jì)工作和論文結(jié)構(gòu)安排31.5.1 本畢業(yè)設(shè)計(jì)工作31.5.2 論文結(jié)構(gòu)安排4第二章 系統(tǒng)需求分析42.1 功能需求42.2非功能需求5系統(tǒng)的易用性5系統(tǒng)可靠性52.2.3 系統(tǒng)可擴(kuò)展性5第三章 系統(tǒng)概要設(shè)計(jì)53.1 設(shè)計(jì)思想53.1.1 人臉數(shù)據(jù)獲取方式53.1.2 人臉訓(xùn)練識(shí)別方式63.1.3 添加功能提示63.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)6第四章 系統(tǒng)詳細(xì)設(shè)計(jì)64.1 O

8、penCV主要函數(shù)介紹64.2 關(guān)鍵功能部分函數(shù)設(shè)計(jì)實(shí)現(xiàn)9攝像頭操作:9人臉檢測(cè)功能:9圖像特征訓(xùn)練提?。?0訓(xùn)練圖像保存:10身份識(shí)別驗(yàn)證功能:10第五章 系統(tǒng)運(yùn)行測(cè)試115.1 人臉識(shí)別系統(tǒng)模塊測(cè)試115.2 運(yùn)行效果圖125.3 測(cè)試效率測(cè)評(píng)16第六章 小結(jié)18附 錄19附錄A:主要源程序19附錄B: 軟件使用說(shuō)明書(shū)30附錄C: 光盤(pán)31第一章 緒論1.1 前言 人類進(jìn)入世紀(jì),隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的日漸發(fā)達(dá),信息安全的隱患日益突出,自之后,各國(guó)越來(lái)越重視社會(huì)公共安全,信息識(shí)別和檢測(cè)顯得前所未有的重要。現(xiàn)今社會(huì)中主要采用號(hào)碼、磁卡和口令等識(shí)別方法,隨著技術(shù)的發(fā)展,這些傳統(tǒng)的身份識(shí)別方法已受

9、到越來(lái)越多的挑戰(zhàn),存在的易丟失、易偽造、易遺忘等諸多問(wèn)題,可靠性也大為降低,生物體征作為每個(gè)人獨(dú)一無(wú)二的特征,進(jìn)入人們眼界,成為新的信息識(shí)別和檢測(cè)技術(shù)的載體,從而指紋、虹膜以及人臉等作為主要依據(jù),得以發(fā)展。相對(duì)于其它的人體生物特征,人臉存在易采集、非接觸、靜態(tài)等優(yōu)點(diǎn),比較容易被接受。在科技發(fā)展的時(shí)代,得到很大程度的發(fā)展,應(yīng)用也越來(lái)越廣泛。尤其在國(guó)家安全、軍事安全和公共安全領(lǐng)域發(fā)揮重要作用,典型代表就是智能門(mén)禁、海關(guān)身份驗(yàn)證、智能視頻監(jiān)控等應(yīng)用。 近年來(lái),隨著計(jì)算機(jī)性能提高和算法的不斷成熟,人臉識(shí)別技術(shù)得到很大發(fā)展,在證件驗(yàn)證、出入口安全監(jiān)控、信息安全、視頻監(jiān)控等許多應(yīng)用都和人臉識(shí)別技術(shù)密切相關(guān)

10、。1.2課題應(yīng)用背景與研究意義 本課題根據(jù)學(xué)校要求,選用實(shí)際公司項(xiàng)目研究,在對(duì)人臉識(shí)別技術(shù)研究分析的基礎(chǔ)上,選定該題目。人類進(jìn)入21世紀(jì),隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的日漸發(fā)達(dá),信息安全的隱患日益突出,自911之后,各國(guó)越來(lái)越重視社會(huì)公共安全,信息識(shí)別和檢測(cè)顯得前所未有的重要?,F(xiàn)今社會(huì)中主要采用號(hào)碼、磁卡和口令等識(shí)別方法,隨著技術(shù)的發(fā)展,這些傳統(tǒng)的身份識(shí)別方法已受到越來(lái)越多的挑戰(zhàn),存在的易丟失、易偽造、易遺忘等諸多問(wèn)題,可靠性也大為降低,生物體征作為每個(gè)人獨(dú)一無(wú)二的特征,進(jìn)入人們眼界,成為新的信息識(shí)別和檢測(cè)技術(shù)的載體,從而指紋、虹膜以及人臉等作為主要依據(jù),得以發(fā)展。相對(duì)于其它的人體生物特征,人臉存在易

11、采集、非接觸、靜態(tài)等優(yōu)點(diǎn),比較容易被接受。在科技發(fā)展的時(shí)代,得到很大程度的發(fā)展,應(yīng)用也越來(lái)越廣泛。本課題主要關(guān)注就是人臉識(shí)別,主要內(nèi)容包括:圖像獲取及人臉檢測(cè)提取,人臉特征提取,人臉識(shí)別。實(shí)現(xiàn)方面,可以使用C+實(shí)現(xiàn)相關(guān)算法,也可以利用現(xiàn)有的函數(shù)庫(kù)。本課題主要是基于OpenCV開(kāi)發(fā)的人臉識(shí)別門(mén)禁軟件。1.3 人臉識(shí)別類軟件的發(fā)展現(xiàn)狀 人臉識(shí)別系統(tǒng)的研究開(kāi)始于20世紀(jì)60年代。其優(yōu)勢(shì)在于其自然性和不被被測(cè)試個(gè)體察覺(jué)的特點(diǎn)。人臉識(shí)別就是通過(guò)觀察比較人臉來(lái)區(qū)分和確定人的身份的。不被察覺(jué)的特點(diǎn)會(huì)使識(shí)別方法不令人反感,而且不容易引起人注意故而不易被欺騙。相對(duì)指紋識(shí)別而言,人臉識(shí)別的非接觸特點(diǎn),使得其更加友

12、好,自然,被人們接受。隨著科技的發(fā)展和安全需求的增加,人臉識(shí)別技術(shù)應(yīng)用已經(jīng)受到重視。 在公安刑偵領(lǐng)域,人臉識(shí)別技術(shù)應(yīng)用十分廣泛,目前還逐漸向民用市場(chǎng)推廣,離人們的生活越來(lái)越近。發(fā)展前景不可限量,隨著數(shù)字化、信息化社會(huì)的到來(lái),人們對(duì)人臉識(shí)別技術(shù)的了解和認(rèn)識(shí)越來(lái)越多,人臉識(shí)別技術(shù)也越將越來(lái)越來(lái)成熟和完善。1.4 系統(tǒng)可行性研究 可行性研究是為了對(duì)問(wèn)題進(jìn)行研究,以最小代價(jià)在最短時(shí)間確定問(wèn)題是否可解。經(jīng)過(guò)對(duì)項(xiàng)目詳細(xì)研究,初擬系統(tǒng)實(shí)現(xiàn)報(bào)告,對(duì)可能將要遇到的問(wèn)題及解決方案進(jìn)行設(shè)計(jì)和安排,明確開(kāi)發(fā)風(fēng)險(xiǎn)和效益。1.4.1 為什么選用OpenCV近年來(lái),大數(shù)據(jù)量,時(shí)勢(shì)性圖像處理廣泛應(yīng)用于各個(gè)領(lǐng)域。各種各樣的圖像

13、處理軟件包圍圖像分析和處理提供便利的同時(shí)也存在許多問(wèn)題。英特爾公司提供的OpenCV類庫(kù)在VC+環(huán)境下進(jìn)行圖像處理和計(jì)算機(jī)視覺(jué)編程的方法、和免費(fèi)試用的優(yōu)勢(shì),縮短相關(guān)程序開(kāi)發(fā)周期,具有強(qiáng)大的實(shí)用價(jià)值,是指在相關(guān)軟件包中占據(jù)領(lǐng)先,成為一種流行的圖像處理軟件。選用OpenCV主要因?yàn)槔锩娣庋b的類庫(kù)可以直接使用,非常方便。它不依賴與其它的外部庫(kù),擁有400多個(gè)免費(fèi)的圖像處理函數(shù),涉及領(lǐng)域涵蓋了機(jī)器視覺(jué)的大多應(yīng)用。1.4.2 開(kāi)發(fā)環(huán)境的配置 對(duì)于OpenCV的配置,可以使用CMake編譯生成針對(duì)編輯器的工程,產(chǎn)生符合編譯器的庫(kù)。也可以直接使用源碼中本身帶有的編譯好的庫(kù)。在這里我們使用自帶的庫(kù)文件 。1)

14、 安裝OpenCV :將獲取的安裝文件安裝到D:opencv2.4.4opencv,并將對(duì)應(yīng)使用的bin目錄D:opencv2.4.4opencvbuildx86vc11bin添加到環(huán)境變量PATH中;2) 配置VS2012 “項(xiàng)目”-“屬性”-“VC+目錄”中配置 包含目錄:添加D:opencv2.4.4opencvbuildinclude 庫(kù)目錄:添加D:opencv2.4.4opencvbuildx86vc11lib 對(duì)于依賴項(xiàng)配置有兩種方法,一種在項(xiàng)目屬性頁(yè)中“鏈接器”-“輸入” 中附加依賴項(xiàng)中添加需要用到的.lib文件。第二種方法是在程序中加載,也就是本系統(tǒng)中使用的方法。#ifdef

15、 WIN32#ifdef _DEBUG#pragma comment(lib,"opencv_highgui244d.lib")#pragma comment(lib,"opencv_core244d.lib")#pragma comment(lib,"opencv_imgproc244d.lib")#pragma comment(lib,"opencv_video244d.lib")#pragma comment(lib,"opencv_calib3d244d.lib")#pragma com

16、ment(lib,"opencv_objdetect244d.lib")#pragma comment(lib,"opencv_legacy244d.lib")#else#pragma comment(lib,"opencv_highgui244.lib")#pragma comment(lib,"opencv_core244.lib")#pragma comment(lib,"opencv_imgproc244.lib")#pragma comment(lib,"opencv_vid

17、eo244.lib")#pragma comment(lib,"opencv_calib3d244.lib")#pragma comment(lib,"opencv_objdetect244.lib")#pragma comment(lib,"opencv_legacy244.lib")#endif#endif系統(tǒng)主要實(shí)現(xiàn)三大功能,人臉檢測(cè),特征提取和人臉識(shí)別,輔助一些功能。具有開(kāi)發(fā)可行性,因此可以開(kāi)發(fā)該系統(tǒng)。1.5 本畢業(yè)設(shè)計(jì)工作和論文結(jié)構(gòu)安排1.5.1 本畢業(yè)設(shè)計(jì)工作 本次畢業(yè)設(shè)計(jì)課題主要工作是在VS2012環(huán)境下通過(guò)O

18、penCV庫(kù)完成人臉檢測(cè)和人臉識(shí)別功能設(shè)計(jì)。 第一階段,搜索需求技術(shù)知識(shí),配置系統(tǒng)開(kāi)發(fā)環(huán)及功能這一階段主要是準(zhǔn)備工作。主要是搜集圖像處理人臉識(shí)別的相關(guān)資料,了解OpenCV庫(kù)的相關(guān)知識(shí),詳細(xì)了解了相關(guān)函數(shù),制定開(kāi)發(fā)框架。系統(tǒng)在PC上搭建開(kāi)發(fā)平臺(tái)。這里我們開(kāi)發(fā)平臺(tái)選擇Win7操作系統(tǒng)平臺(tái),在VS2012環(huán)境下配置使用OpenCV庫(kù)。第二階段,實(shí)現(xiàn)各個(gè)功能在開(kāi)發(fā)期間,主要實(shí)現(xiàn)一下功能:1) 從攝像頭獲取圖像并對(duì)圖像進(jìn)行一定預(yù)處理;2) 從獲取圖像中檢測(cè)提取人臉區(qū)域;3) 提取人臉圖像并保存,同時(shí)寫(xiě)入文件;4) 讀取文件,讀取圖像進(jìn)行訓(xùn)練得到特征信息;5) 保存的得到的特征信息至xml文件;6) 讀

19、取xml文件,得到特征信息;7) 識(shí)別人臉,并計(jì)算置信度。8) 輔助功能實(shí)現(xiàn),包擴(kuò)添加用戶,重置數(shù)據(jù),輸出特征圖像、平均圖像等。9) 從人臉數(shù)據(jù)庫(kù)中子集讀取人臉數(shù)據(jù)進(jìn)行訓(xùn)練,提取特征,并選取另一子 集人臉圖像進(jìn)行識(shí)別測(cè)試。10) 查看生成的平均人臉圖像和特征人臉。 最后完成開(kāi)發(fā)測(cè)試,測(cè)試運(yùn)行良好。1.5.2 論文結(jié)構(gòu)安排 第一章:緒論:包括前言、應(yīng)用背景與研究意義、人臉檢測(cè)定位及跟蹤發(fā)展現(xiàn)狀、系統(tǒng)可行性研究以及本文主要內(nèi)容; 第二章:系統(tǒng)需求分析:包括功能需求、性能需求、運(yùn)行需求; 第三章:系統(tǒng)概要設(shè)計(jì):包括設(shè)計(jì)思想、系統(tǒng)功能結(jié)構(gòu)圖; 第四章:系統(tǒng)詳細(xì)設(shè)計(jì):功能模塊設(shè)計(jì)、各模塊的主要函數(shù)功能;

20、第二章 系統(tǒng)需求分析 隨著安全要求的不斷提高,人臉識(shí)別技術(shù)逐漸應(yīng)用于各種場(chǎng)合,如門(mén)禁系統(tǒng),人臉簽到,人臉密碼等等,因此設(shè)計(jì)一個(gè)人臉識(shí)別軟件對(duì)于門(mén)禁系統(tǒng)可以擴(kuò)展人臉識(shí)別技術(shù)的應(yīng)用。對(duì)于人臉識(shí)別門(mén)禁系統(tǒng),有如下目標(biāo):1、操作簡(jiǎn)單;2、識(shí)別精確度。 考慮到軟件應(yīng)用場(chǎng)合及主要功能,設(shè)計(jì)出操作簡(jiǎn)單快捷的軟件,使得軟件簡(jiǎn)單實(shí)用,符合大眾需求。2.1 功能需求 系統(tǒng)主要實(shí)現(xiàn)人身份識(shí)別,功能包括以下幾個(gè)方面:攝像頭操作:包括攝像頭打開(kāi)與關(guān)閉,從攝像頭讀取圖像并顯示到界面上。檢測(cè)操作:從攝像頭畫(huà)面中檢測(cè)提取人臉。圖像保存功能:提取的人臉圖像保存為pgm圖片。文件讀寫(xiě)功能:讀寫(xiě)txt文件,保存提取人臉圖像信息;讀

21、寫(xiě)xml文件,保存讀取人臉特征等信息。添加用戶重訓(xùn)練功能:添加用戶,重新訓(xùn)練得到特征臉和人臉特征,并保存。人臉識(shí)別功能:識(shí)別顯示當(dāng)前人臉身份。重置數(shù)據(jù)功能:清除原有訓(xùn)練數(shù)據(jù),便于重新訓(xùn)練。2.2非功能需求系統(tǒng)的易用性由于此系統(tǒng)是面向非專業(yè)操作人員的實(shí)用性程序,因此要求此系統(tǒng)具有易用性。系統(tǒng)可靠性要求系統(tǒng)發(fā)生錯(cuò)誤時(shí),通知用戶錯(cuò)誤信息,以保證系統(tǒng)可靠性。2.2.3 系統(tǒng)可擴(kuò)展性軟件可擴(kuò)展性是評(píng)價(jià)軟件性能一個(gè)重要指標(biāo)。為了是系統(tǒng)具有一定可擴(kuò)展性,設(shè)計(jì)過(guò)程中盡量使各個(gè)模塊相對(duì)獨(dú)立,為擴(kuò)展留余地。第三章 系統(tǒng)概要設(shè)計(jì) 在人臉識(shí)別門(mén)禁軟件需求分析階段中,已經(jīng)將系統(tǒng)需求做了詳細(xì)闡述,本階段在此需求分析基礎(chǔ)上

22、,對(duì)其做概要設(shè)計(jì),意在解決實(shí)現(xiàn)該系統(tǒng)需求的模塊設(shè)計(jì)問(wèn)題。3.1 設(shè)計(jì)思想3.1.1 人臉數(shù)據(jù)獲取方式 考慮到要進(jìn)行人臉識(shí)別,首先要獲取人臉圖像數(shù)據(jù),要測(cè)試識(shí)別算法,需要大量數(shù)據(jù),因此我們采用公開(kāi)的人臉圖像庫(kù)進(jìn)行靜態(tài)圖像測(cè)試,再進(jìn)而使用攝像頭獲取人臉實(shí)現(xiàn)系統(tǒng)功能,故人臉數(shù)據(jù)獲取方式有兩種,一種是直接從人臉數(shù)據(jù)庫(kù)中獲取,另一種從攝像頭數(shù)據(jù)中檢測(cè)提取得到。3.1.2 人臉訓(xùn)練識(shí)別方式 為保障可以添加用戶,實(shí)現(xiàn)多用戶使用識(shí)別,需要添加用戶功能,這樣就需要?jiǎng)討B(tài)訓(xùn)練人臉數(shù)據(jù),識(shí)別確認(rèn)。訓(xùn)練識(shí)別方法采用PCA算法處理,添加新用戶時(shí)重新對(duì)新的建立的數(shù)據(jù)庫(kù)進(jìn)行訓(xùn)練得到訓(xùn)練數(shù)據(jù)。3.1.3 添加功能提示 為了使模

23、塊功能清晰表現(xiàn),便于用戶操作,添加功能提示信息引導(dǎo)。3.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)本軟件設(shè)計(jì)實(shí)現(xiàn)主要兩部分:靜態(tài)人臉數(shù)據(jù)庫(kù)測(cè)試驗(yàn)證部分和實(shí)時(shí)攝像頭中提取數(shù)據(jù)實(shí)際功能實(shí)現(xiàn)部分。第四章 系統(tǒng)詳細(xì)設(shè)計(jì) 此章節(jié)對(duì)人臉識(shí)別門(mén)禁系統(tǒng)實(shí)現(xiàn)功能實(shí)現(xiàn)進(jìn)行詳細(xì)分析和設(shè)計(jì)。4.1 OpenCV主要函數(shù)介紹 1) cvLoadImage 從文件中讀取圖像 IplImage* cvLoadImage(const char* filename,int flags=CV_LOAD_IMAGE_COLOR ); 函數(shù)cvLoadImage從指定文件讀入圖像,返回讀入圖像的指針。 其中filename是要被讀入的文件的文件名;fla

24、gs指定讀入圖像的顏色和深度。 2)cvSaveImage 保存圖像到文件 int cvSaveImage( const char* filename, const CvArr* image ); 函數(shù)cvSaveImage保存圖像到指定文件。其中filename保存文件名。image要保存的圖像。 圖像格式的的選擇依賴于filename的擴(kuò)展名,只有8位單通道或者3通道(通道順序?yàn)?#39;BGR' )可以使用這個(gè)函數(shù)保存。3)cvQueryFrame從攝像頭或者文件中抓取并返回一幀 IplImage* cvQueryFrame( CvCapture* capture );函數(shù)cvQ

25、ueryFrame從攝像頭或者文件中抓取一幀,然后解壓并返回這一幀。這個(gè)函數(shù)僅僅是函數(shù)cvGrabFrame和函數(shù)cvRetrieveFrame在一起調(diào)用的組合。返回的圖像不可以被用戶釋放或者修改。其中capture視頻獲取結(jié)構(gòu)。4)cvCaptureFromCAM 初始化攝像頭CvCapture* cvCaptureFromCAM( int index );函數(shù)cvCaptureFromCAM給從攝像頭的視頻流分配和初始化CvCapture結(jié)構(gòu)。其中index要使用的攝像頭索引。如果只有一個(gè)攝像頭或者用哪個(gè)攝像頭也無(wú)所謂,那使用參數(shù)-1應(yīng)該便可以。5)cvHaarDetectObjects

26、用來(lái)檢測(cè)圖像中的人臉區(qū)域CVAPI(CvSeq*) cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemStorage* storage, double scale_factor CV_DEFAULT(1.1), int min_neighbors CV_DEFAULT(3), int flags CV_DEFAULT(0), CvSize min_size CV_DEFAULT(cvSize(0,0), CvSize max_size CV_DEFAULT(cvSize(0,0);用于

27、快速檢測(cè)人臉區(qū)域 ,便于提取得到人臉數(shù)據(jù)。其中image 為被檢圖像,cascade為 haar分類器級(jí)聯(lián)的內(nèi)部標(biāo)識(shí)形式,storage 為用來(lái)存儲(chǔ)檢測(cè)到的一序列候選目標(biāo)矩形框的內(nèi)存區(qū)域,scale_factor 在前后兩次相繼的掃描中,搜索窗口的比例系數(shù),例如1.1指將搜索窗口依次擴(kuò)大10%,min_neighbors 為構(gòu)成檢測(cè)目標(biāo)的相鄰矩形的最小個(gè)數(shù)(缺省1),flags 為操作方式,min_size 為檢測(cè)窗口的最小尺寸。缺省的情況下被設(shè)為分類器訓(xùn)練時(shí)采用的樣本尺寸(人臉檢測(cè)中缺省大小是20×20)。6)cvRectangle 繪制矩形 CVAPI(void) cvRecta

28、ngle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0);繪制出檢測(cè)到人臉區(qū)域并顯示,便于使用者觀看是否檢測(cè)出人臉,。其中img 為圖像,pt1 - 矩形的一個(gè)頂點(diǎn),pt2 - 矩形對(duì)角線上的另一個(gè)頂點(diǎn),color - 線條顏色 (RGB) 或亮度(灰度圖像 )(grayscale image),thickness - 組成矩形的線條的粗細(xì)程度,取負(fù)值時(shí)(如 CV_FIL

29、LED)函數(shù)繪制填充了色彩的矩形,line_type - 線條的類型。見(jiàn)cvLine的描述,shift - 坐標(biāo)點(diǎn)的小數(shù)點(diǎn)位數(shù)。7)cvResize 重置圖像大小CVAPI(void) cvResize( const CvArr* src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_LINEAR );重置圖像大小,使圖像歸一到同樣大小。interpolation 插值方式:選擇用線性插值(CV_INTER_LINEAR)和區(qū)域插值(CV_INTER_AREA)。8)cvOpenFileStorage 打開(kāi)存在或創(chuàng)建新的文件CVAPI(

30、CvFileStorage*) cvOpenFileStorage( const char* filename, CvMemStorage* memstorage, int flags, const char* encoding CV_DEFAULT(NULL) );把訓(xùn)練數(shù)據(jù)保存至xml文件,通過(guò)此函數(shù)打開(kāi)文件便于進(jìn)行讀寫(xiě)。flag有10種,這里用到其中讀和寫(xiě)二種:CV_STORAGE_READ (打開(kāi)文件讀數(shù)據(jù))和 CV_STORAGE_WRITE(打開(kāi)文件寫(xiě)數(shù)據(jù))。文件打開(kāi)后 有寫(xiě)操作和讀操作函數(shù):cvWrite();cvWriteInt();cvReadByName();cvReadI

31、ntByName()。9)cvCalcEigenObjects 計(jì)算引入矩陣的eigen vector(特征向量)、eigen value(特征根)、image average(影像平均值) 。 CVAPI(void) cvCalcEigenObjects( int nObjects, void* input, void* output,int ioFlags, int ioBufSize, void* userData, CvTermCriteria* calcLimit, IplImage* avg,float* eigVals );OpenCV 已經(jīng)實(shí)現(xiàn)PCA關(guān)鍵算法之一,計(jì)算出傳入圖像

32、陣列的特征值、特征向量和平均值。其中nObjects為樣本個(gè)數(shù),input 為輸入的影響矩陣,output 為特征矩陣,calcLimit為回調(diào)結(jié)束條件,avg 為平均值,eigVals 特征根。10)cvEigenDecomposite 透過(guò)eigen vector和原始影像集來(lái)解析每張圖片降維后對(duì)應(yīng)的系數(shù)coefficients。CVAPI(void) cvEigenDecomposite( IplImage* obj, int nEigObjs, void* eigInput, int ioFlags, void* userData, IplImage* avg, float* coef

33、fs );OpenCV 已經(jīng)實(shí)現(xiàn)PCA關(guān)鍵算法之一,對(duì)輸入圖像投影到子空間,計(jì)算投影各維度系數(shù),以此表示圖像。其中obj為輸入目標(biāo)圖像,nEigObjs為選取的特征維數(shù),eigInput為向量組成的變換矩陣,數(shù)據(jù)結(jié)構(gòu)屬于IplImage隊(duì)列,或者根據(jù)ioFlag參數(shù)值變化的回調(diào)函數(shù),avg為平均值,coeffs 為輸入圖像對(duì)應(yīng)的投影。11)cvConvertScale 使用線性變換轉(zhuǎn)換數(shù)組,得到可以保存顯示的圖像CVAPI(void) cvConvertScale( const CvArr* src,CvArr* dst, double scale CV_DEFAULT(1), double

34、shift CV_DEFAULT(0) );OpenCV要保存顯示圖像,圖像數(shù)據(jù)必須是uchar格式,因此對(duì)于非uchar數(shù)據(jù)需要轉(zhuǎn)換。其中src 為輸入數(shù)組,dst 為輸出數(shù)組 ,scale 為比例因子,shift 為該加數(shù)被加到輸入數(shù)組元素按比例縮放后得到的元素上,采用公式dst(I)=src(I)*scale + (shift,shift,.) 進(jìn)行轉(zhuǎn)換。4.2 關(guān)鍵功能部分函數(shù)設(shè)計(jì)實(shí)現(xiàn) 攝像頭操作:要實(shí)現(xiàn)系統(tǒng)功能,首要先從攝像頭中讀取數(shù)據(jù),為此,需要保證攝像頭開(kāi)啟,為保證獲取畫(huà)面統(tǒng)一便于管理,通過(guò)cvSetCaptureProperty()函數(shù)設(shè)置攝像頭分辨率為常用值(320*240)

35、,讀取攝像頭數(shù)據(jù),返回 IplImage圖像數(shù)據(jù),該部分需要實(shí)現(xiàn)的是打開(kāi)攝像頭、設(shè)置攝像頭分辨率屬性、讀取攝像頭圖像,還有使用完后釋放攝像頭資源操作。軟件啟動(dòng)后若選擇不從文件中讀取信息,自動(dòng)啟動(dòng)攝像頭獲取圖片。按“ESC”鍵退出系統(tǒng)時(shí)自動(dòng)回收資源,關(guān)閉攝像頭,釋放攝像頭資源。人臉檢測(cè)功能: 要實(shí)現(xiàn)人臉識(shí)別,首要先檢測(cè)出人臉。實(shí)現(xiàn)該功能,接收攝像頭中獲取的圖像數(shù)據(jù),進(jìn)行灰度化等操作,利用Haar特征,使用強(qiáng)級(jí)聯(lián)分類器,搜索檢測(cè)人臉區(qū)域,提取出可能的最大臉,為防止誤檢,進(jìn)一步在提取出的區(qū)域再次對(duì)人眼進(jìn)行檢測(cè),過(guò)濾掉檢測(cè)不到人眼的區(qū)域,從而有效地降低了人臉區(qū)域誤檢率,獲取真正需要的人臉區(qū)域。人臉區(qū)域

36、獲取后,進(jìn)一步提取出人臉圖像,為了訓(xùn)練需要,還須對(duì)提取的圖像進(jìn)行大小歸一化,使得得到的圖像大小統(tǒng)一,為了進(jìn)一步提高后續(xù)識(shí)別效率,對(duì)圖像進(jìn)行直方圖均衡化,最后得到所需圖像用于訓(xùn)練和識(shí)別。圖像特征訓(xùn)練提?。豪弥鞒煞址治龇ǎ≒CA)算法對(duì)收集到的用戶圖像進(jìn)行降維訓(xùn)練,提取人臉特征值。主成分分析法實(shí)現(xiàn)主要分為幾步完成: 1、去均值 2、計(jì)算協(xié)方差矩陣及其特征值和特征向量 3、計(jì)算協(xié)方差矩陣的特征值大于閾值的個(gè)數(shù) 4、降序排列特征值 5、去掉較小的特征值 6、去掉較大的特征值(可有可無(wú)) 7、合并選擇的特征值 8、選擇相應(yīng)的特征值和特征向量 9、計(jì)算白化矩陣 10、提取主分量。讀取人臉訓(xùn)練集,利用PC

37、A算法得到特征人臉和平均人臉,在此基礎(chǔ)上把每張訓(xùn)練人臉投影到特征臉空間中得到投影數(shù)據(jù)作為每幅人臉的特征臉。滿足系統(tǒng)要求,可能需要能夠識(shí)別多人身份,因此需要能夠添加用戶。系統(tǒng)啟動(dòng)后,識(shí)別過(guò)程中,設(shè)置按下n鍵,進(jìn)入添加用戶模式,輸入用戶名開(kāi)始自動(dòng)采集用戶臉部圖像,開(kāi)始訓(xùn)練提取特征數(shù)據(jù)。訓(xùn)練圖像保存: PCA算法過(guò)程中會(huì)計(jì)算出人臉的平均臉信息,和特征臉信息,但得到的這些信息是無(wú)法直接顯示到屏幕上的,想要看到這些圖像,就需要把其加以轉(zhuǎn)換,得到可以直接顯示的格式。在這一階段,計(jì)算出其最大值和最小值,對(duì)于超出數(shù)值范圍和非數(shù)值的值進(jìn)行過(guò)濾修改,然后利用cvConvertScale函數(shù)將float類型的值轉(zhuǎn)化

38、為需要的uchar類型,然后調(diào)用cvshowImage進(jìn)行保存。訓(xùn)練數(shù)據(jù)保存與加載:對(duì)于利用PCA得到的訓(xùn)練數(shù)據(jù)要在識(shí)別時(shí)使用,所以首先需要保存起來(lái),在識(shí)別時(shí)讀取并當(dāng)前數(shù)據(jù)匹配。這個(gè)階段主要涉及到文件的操作,包括文件的打開(kāi)、關(guān)閉,寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)。身份識(shí)別驗(yàn)證功能: 整個(gè)系統(tǒng)中最關(guān)鍵重要的就是身份識(shí)別功能,之前實(shí)現(xiàn)人臉檢測(cè)提取出當(dāng)前用戶的臉部信息,PCA數(shù)據(jù)訓(xùn)練得到平均人臉和人臉子空間等數(shù)據(jù)提供了基礎(chǔ),在此基礎(chǔ)上,將當(dāng)前用戶臉部圖像投影到人臉子空間中,然后找出與投影臉歐式距離最近的訓(xùn)練人臉,計(jì)算距離與可信相似度,并與設(shè)置的閥值比較,當(dāng)大于閥值時(shí)可以認(rèn)為確認(rèn)身份成功。當(dāng)閥值設(shè)置過(guò)大時(shí)會(huì)使識(shí)別很困難

39、,效率降低;而若閥值設(shè)置過(guò)小,容易把人臉識(shí)別錯(cuò)誤,使得系統(tǒng)實(shí)用性降低,因此,選擇一個(gè)合適的閥值非常重要,而閥值的選取有沒(méi)有一個(gè)科學(xué)的準(zhǔn)確依據(jù),因此使得確定合適閥值比較困難。第五章 系統(tǒng)運(yùn)行測(cè)試 一個(gè)軟件系統(tǒng)的功能實(shí)現(xiàn),首先要設(shè)計(jì)好功能流程布局,然后根據(jù)軟件系統(tǒng)的要求編寫(xiě)代碼,然后就是調(diào)試程序,最后完善總結(jié)。 其中最重要的也最關(guān)鍵的就是中間這兩部分。編寫(xiě)代碼按部就班,照著流程走,一步步完善,最難的部分其實(shí)就是調(diào)試了,軟件編寫(xiě)過(guò)程中, 尤其是比較大的軟件系統(tǒng)中,一次性編寫(xiě)無(wú)誤,不需調(diào)試是不可能的。在此次畢業(yè)設(shè)計(jì)中印象最深的就是調(diào)試了。在調(diào)試過(guò)程中曾遇到了不少的問(wèn)題,不過(guò)經(jīng)過(guò)查資料,不斷分析可能的情

40、況,一點(diǎn)點(diǎn)找到出問(wèn)題的地方,進(jìn)而找到解決方法。整個(gè)系統(tǒng)開(kāi)發(fā)調(diào)試測(cè)試結(jié)果如下:5.1 人臉識(shí)別系統(tǒng)模塊測(cè)試 表1: 攝像頭操作功能操作步驟操作描述期望結(jié)果實(shí)際結(jié)果測(cè) 試狀 態(tài)1啟動(dòng),進(jìn)入視頻識(shí)別模式攝像頭被打開(kāi),窗口顯示畫(huà)面攝像頭被打開(kāi),視頻顯示到窗口界面中通過(guò)2ESC系統(tǒng)退出攝像頭被關(guān)閉攝像頭被關(guān)閉通過(guò)結(jié)論:攝像頭操作功能運(yùn)行正確。 表2: 基于人臉數(shù)據(jù)庫(kù)文件識(shí)別操作功能操作步驟操作描述期望結(jié)果實(shí)際結(jié)果測(cè) 試狀 態(tài)1輸入“train”進(jìn)入測(cè)試訓(xùn)練模式從人臉數(shù)據(jù)庫(kù)中讀取人臉提取特征,保存平均臉,特征臉,和投影臉等信息根據(jù)文件中提供的文件路徑讀取圖像訓(xùn)練,得到并保存了平均臉,特征臉,和投影臉等信息

41、通過(guò)2輸入“test”進(jìn)入測(cè)試識(shí)別模式讀取測(cè)試人臉圖像,進(jìn)行投影識(shí)別,并計(jì)算相似置信值,輸出結(jié)果根據(jù)文件中提供的路徑讀取測(cè)試人臉圖像,進(jìn)行投影識(shí)別,并計(jì)算相似置信值,輸出了結(jié)果通過(guò)結(jié)論:基于人臉數(shù)據(jù)庫(kù)文件識(shí)別操作功能運(yùn)行正確。 表3: 基于攝像頭人臉識(shí)別部分操作功能操作步驟操作描述期望結(jié)果實(shí)際結(jié)果測(cè) 試狀 態(tài)1進(jìn)入視頻識(shí)別模式檢測(cè)并標(biāo)出攝像頭捕獲畫(huà)面中的人臉區(qū)域,識(shí)別用戶身份,輸出識(shí)別出的身份及置信度可以檢測(cè)并標(biāo)出攝像頭捕獲畫(huà)面中的人臉區(qū)域,識(shí)別用戶身份,輸出識(shí)別出的身份及置信度通過(guò)2按f鍵,調(diào)整修改閥值在線調(diào)整修改閥值,控制識(shí)別結(jié)果閥值得到修改,識(shí)別結(jié)果同時(shí)得到控制通過(guò)3ESC系統(tǒng)退出窗口關(guān)

42、閉,系統(tǒng)退出窗口關(guān)閉,系統(tǒng)退出通過(guò)結(jié)論:基于攝像頭人臉識(shí)別部分操作功能運(yùn)行正確。 表4: 其它操作部分功能操作步驟操作描述期望結(jié)果實(shí)際結(jié)果測(cè) 試狀 態(tài)1保存圖像訓(xùn)練過(guò)程自動(dòng)保存平均臉和特征臉圖像平均臉和特征臉圖像得到保存通過(guò)2按n鍵 ,添加用戶輸入用戶名,采集用戶臉部信息,重新在線訓(xùn)練數(shù)據(jù)并保存輸入用戶名后,采集了用戶臉部信息,并重新在線訓(xùn)練數(shù)據(jù)和保存所需數(shù)據(jù)通過(guò)4按e鍵,重置數(shù)據(jù)清除訓(xùn)練數(shù)據(jù),便于重新設(shè)置數(shù)據(jù)清除了以前訓(xùn)練的數(shù)據(jù) 通過(guò) 結(jié)論:測(cè)試運(yùn)行正確。5.2 運(yùn)行效果圖1、基于人臉數(shù)據(jù)庫(kù)文件識(shí)別操作功能 按y鍵進(jìn)入人臉圖像庫(kù)識(shí)別模式,在此模式下有train和test兩種操作: A):tr

43、ain 操作,讀取文件進(jìn)行訓(xùn)練,得到訓(xùn)練數(shù)據(jù),并顯示平均臉和特征臉圖像。測(cè)試通過(guò),結(jié)果如下圖: 圖5-1:讀取圖片集訓(xùn)練數(shù)據(jù) 圖5-2:顯示平均人臉圖像圖5-3:顯示特征臉圖像,此為部分截圖 B):test操作,讀取測(cè)試人臉集,識(shí)別身份,計(jì)算置信度。測(cè)試通過(guò)。結(jié)果如下圖5-4。 圖5-4 讀取測(cè)試人臉集,顯示識(shí)別信息2、 基于人臉數(shù)據(jù)庫(kù)文件識(shí)別操作功能 按n鍵進(jìn)入攝像頭識(shí)別模式,顯示操作功能鍵介紹,自動(dòng)打開(kāi)攝像頭,如圖5-5圖5-5 攝像頭識(shí)別模式 在此模式下,n鍵添加用戶重新在線訓(xùn)練數(shù)據(jù),測(cè)試通過(guò),結(jié)果如圖5-6 圖5-6 添加用戶重訓(xùn)練 圖5-7 人臉身份識(shí)別f鍵,修改調(diào)整閥值,輸入新的閥

44、值,開(kāi)始重新識(shí)別,測(cè)試通過(guò),結(jié)果如圖5-8和圖5-9。 圖5-8 重新設(shè)置新閥值 圖5-9 新閥值下身份識(shí)別結(jié)果 5.3 測(cè)試效率測(cè)評(píng) 對(duì)于系統(tǒng)可靠性測(cè)試,測(cè)試其算法效率,采用從人臉圖像數(shù)據(jù)庫(kù)一個(gè)子集中讀取數(shù)據(jù)并從另一個(gè)子集中身份識(shí)別,結(jié)果評(píng)定可以看出對(duì)同樣的測(cè)試數(shù)據(jù),每個(gè)人選5張圖片進(jìn)行訓(xùn)練時(shí),雖訓(xùn)練集的擴(kuò)大,測(cè)試結(jié)果正確率越高,還可以看出對(duì)于已訓(xùn)練的人測(cè)試時(shí)識(shí)別率是比較高的,達(dá)70%以上。通過(guò)增加每個(gè)人的人臉圖片數(shù),每人選10張圖片時(shí),測(cè)試效率進(jìn)一步提高。為了提高效率,在 攝像頭識(shí)別過(guò)程中,添加用戶時(shí),每個(gè)人采集20張圖片進(jìn)行訓(xùn)練,并設(shè)置閥值,進(jìn)一步過(guò)濾可能識(shí)別錯(cuò)誤的結(jié)果。使得識(shí)別準(zhǔn)確性得

45、到較大提高,但同時(shí)影響識(shí)別速度,造成識(shí)別速度有所減慢,如果人臉正面至于攝像頭前,在1到2秒可以識(shí)別,還在可接受范圍內(nèi)。圖5-10 4個(gè)人的每人5張臉訓(xùn)練,測(cè)試結(jié)果圖5-11 6個(gè)人的每人5張臉訓(xùn)練,測(cè)試結(jié)果圖5-12 8個(gè)人的每人5張臉訓(xùn)練,測(cè)試結(jié)果圖5-13 10個(gè)人的每人5張臉訓(xùn)練,測(cè)試結(jié)果圖5-14 6個(gè)人的每人10張臉訓(xùn)練,測(cè)試結(jié)果第六章 小結(jié)在這個(gè)學(xué)期的畢業(yè)設(shè)計(jì)中,學(xué)到了很多。學(xué)會(huì)了利用網(wǎng)絡(luò)、書(shū)籍詢問(wèn)等各種方法查找獲取所需的信息,深刻體會(huì)到了課堂所學(xué)知識(shí)的不足,明白了學(xué)習(xí)是沒(méi)有止境的,自己的接觸面可得以再次擴(kuò)寬,學(xué)到了很多新知識(shí),并將這些知識(shí)應(yīng)用到實(shí)際項(xiàng)目工作中來(lái),理論和實(shí)踐相結(jié)合,

46、學(xué)以致用。在整個(gè)畢業(yè)設(shè)計(jì)期間也曾遇到不少問(wèn)題,不過(guò)在老師指導(dǎo)下和查找資料還是完成了工作,同時(shí)也學(xué)到了很多的新知識(shí)。在此人臉識(shí)別系統(tǒng)設(shè)計(jì)完成過(guò)程中,不僅熟練了學(xué)到的知識(shí),而且學(xué)到了很多新知識(shí),接觸到了opencv計(jì)算機(jī)視覺(jué)這個(gè)相對(duì)全新的領(lǐng)域,更重要的是學(xué)會(huì)和強(qiáng)化了解決問(wèn)題的能力,起初通過(guò)查找資料自己思考解決一部分問(wèn)題,發(fā)現(xiàn)一些問(wèn)題還是解決不了,然后學(xué)會(huì)了問(wèn)老師,問(wèn)同學(xué),然后再思考測(cè)試驗(yàn)證,問(wèn)題一個(gè)個(gè)解決。通過(guò)此,明白了做事不能僅僅靠自己,雖然有時(shí)自己一個(gè)人單打也可以解決問(wèn)題,但可能會(huì)浪費(fèi)很多時(shí)間,相對(duì)效率會(huì)低很多,有些時(shí)間是完全沒(méi)有必要浪費(fèi)的,學(xué)會(huì)與人合作,提高自己團(tuán)隊(duì)意識(shí)和團(tuán)隊(duì)協(xié)作能力,這個(gè)社

47、會(huì)如今沒(méi)有團(tuán)隊(duì)意識(shí),只知一味單干是沒(méi)有出路的;當(dāng)然,也不能完全依賴他人,這樣自己是得不到提高,一樣會(huì)被社會(huì)淘汰的。 致謝 在畢業(yè)設(shè)計(jì)這個(gè)過(guò)程中,遇到了很多困難,最大的困難就是新技術(shù)的學(xué)習(xí)和運(yùn)用。在學(xué)習(xí)opencv和PCA算法時(shí)候,通過(guò)網(wǎng)上查找相關(guān)文獻(xiàn)資料,論壇中尋找具體解析、去圖書(shū)館查閱資料,還有就是向他人求助,最終熟悉了它的使用,順利地完成了畢設(shè)設(shè)計(jì)的開(kāi)發(fā)。在此,我對(duì)幫助過(guò)我的同學(xué)表示深深的感謝。 我非常感謝我的指導(dǎo)老師陸筱霞,還有另一位對(duì)我影響幫助很大的老師王璐,感覺(jué)他們對(duì)我的教導(dǎo)指導(dǎo)和幫助。王老師帶著我接觸了程序設(shè)計(jì)競(jìng)賽,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì),并抽時(shí)間給我們講算法,奠定了算法基礎(chǔ)。陸老

48、師在畢業(yè)設(shè)計(jì)期間,嚴(yán)格要求我們,及時(shí)提出在項(xiàng)目開(kāi)發(fā)中的不足和問(wèn)題,使我少走了很多彎路,保證項(xiàng)目按時(shí)完成。參考文獻(xiàn):【1】 田印中, 董志學(xué), 黃建偉, 基于PCA 的人臉識(shí)別算法研究及實(shí)現(xiàn). 2010.03.【2】李華勝, 楊樺,袁保宗. 人臉識(shí)別系統(tǒng)中的特征提取. 2001,06.【3】 張翠平, 蘇光大.人臉識(shí)別技術(shù)綜述. 2000, 05.【4】 M.A. Turk and A.P. Pentland, “運(yùn)用本征臉的人臉識(shí)別”, IEEE Conf. on Computer Vision【5】何東風(fēng),凌捷人臉識(shí)別技術(shù)綜述J微機(jī)發(fā)展,2003 【6】謝永林 PCA算法及其在人臉識(shí)別中的應(yīng)

49、用 2009 第6期【7】劉艷麗,趙躍龍人臉識(shí)別技術(shù)研究進(jìn)展 J計(jì)算機(jī)工程,2005【8】何國(guó)輝 甘俊英 PCA類內(nèi)平均臉?lè)ㄔ谌四樧R(shí)別中的應(yīng)用研究 2006 第3期【9】尹飛 馮大政 計(jì)算機(jī)技術(shù)與發(fā)展 基于PCA算法的人臉識(shí)別 2008 第10期附 錄附錄A:主要源程序攝像頭人臉識(shí)別實(shí)現(xiàn)void recognizeFromCam(void)int i;CvMat * trainPersonNumMat; / the person numbers during trainingfloat * projectedTestFace;double timeFaceRecognizeStart;doub

50、le tallyFaceRecognizeTime;CvHaarClassifierCascade* faceCascade;CvHaarClassifierCascade* eyeCascade;char cstr256;BOOL saveNextFaces = FALSE;char newPersonName256;int newPersonFaces;trainPersonNumMat = 0; / the person numbers during trainingprojectedTestFace = 0;saveNextFaces = FALSE;newPersonFaces =

51、0;printf("Recognizing person in the camera .n");/ Load the previously saved training dataif( loadTrainingData( &trainPersonNumMat ) ) faceWidth = pAvgTrainImg->width;faceHeight = pAvgTrainImg->height;else printf("Couldn't load the training data,please first hit 'n

52、9;to add the person.n");/ Project the test images onto the PCA subspaceprojectedTestFace = (float *)cvAlloc( nEigens*sizeof(float) );/ Create a window for the user to see the camera image./cvNamedWindow("FaceReconize", CV_WINDOW_AUTOSIZE);/ Make sure there is a "data" folder

53、, for storing the new person.mkdir("data");/ Load the HaarCascade classifier for face detection.faceCascade = (CvHaarClassifierCascade*)cvLoad(faceCascadeFilename, 0, 0, 0 );if( !faceCascade ) printf("ERROR in recognizeFromCam(): Could not load Haar cascade Face detection classifier i

54、n '%s'.n", faceCascadeFilename);exit(1);eyeCascade=(CvHaarClassifierCascade*)cvLoad(eyeCascadeFilename, 0, 0, 0 );if( !eyeCascade ) printf("ERROR in recognizeFromCam(): Could not load Haar cascade eyes detection classifier in '%s'.n", eyeCascadeFilename);exit(1);timeFaceRecognizeStart = (double)cvGetTickCount();/ Record the timing.wh

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論