版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、攀枝花學院本科畢業(yè)設計(論文)基于OPENCV的人臉檢測與識別系統(tǒng)學生姓名:學生學號:院(系):數(shù)學與計算機學院年級專業(yè):09級信息與計算機科學指導教師:陳堯碩士助教二零一三年六月攀枝花學院本科畢業(yè)設計(論文)摘要 I摘要近幾年來計算機網(wǎng)絡傳輸、監(jiān)控及視頻分析在社會上不斷的興起,數(shù)字信息已經(jīng)超越了模擬信息其主要原因在于數(shù)字信息更易于存儲和分析,因此,在視頻監(jiān)控領域采用計算機對視頻信息進行采集、壓縮、分析、存儲得到了很多人的青睞。基于OPENCV的人臉檢測與識別系統(tǒng)在計算機模式計算和模式識別等方面具有極其重要的作用。在基于人臉識別,圖像壓縮,視頻監(jiān)控,運動物體檢測等方面有著更重要的應用價值。近年
2、來計算機視覺技術在視覺領域中取得了飛速的發(fā)展,并在其他領域中得到了廣泛的應用。本論文以OPENCV庫為基礎,采用QT作為圖形界面開發(fā),具有人臉采集,圖片訓練,數(shù)據(jù)庫管理及人臉識別等功能。該系統(tǒng)能夠進行長時間的運行并測試穩(wěn)定,在程序中提供了統(tǒng)一的接口以并進行二次開發(fā)。關鍵詞:人臉檢測,人臉識別,級聯(lián)分類檢測器攀枝花學院本科畢業(yè)設計(論文)ABSTRACT IIABSTRACTInrecentyears,computernetworktransmission,monitoring,andvideoanalysisshowedthatthecontinuousriseinthesocial,digi
3、talinformationhasgonebeyondthemainreasonisthatanaloginformationiseasiertostoredigitalinformationandanalysis,therefore,inthefieldofvideosurveillancevideoinformationbycomputeracquisition,compression,analysis,storagegetalotofpeopleofallages.Opencvbasedonfacedetectionandrecognitionsysteminthecomputermod
4、elandpatternrecognition,andsohasanextremelyimportantrole.Basedonfacerecognition,imagecompression,videosurveillance,detectionofmovingobjectsandsohasamoreimportantapplicationvalue.Inrecentyears,inthevisualfieldofcomputervisiontechnologyhasmaderapiddevelopment,andinotherareashasbeenwidelyused.Thisthesi
5、sisbasedopencvlibrary,usingqtasagraphicalinterfacedevelopmentwithhumanfacecapture,imagetraining,databasemanagement,andfacerecognitionandotherfunctions.Thesystemiscapableofstablelongrunandtesttheprograminordertoprovideaunifiedinterfaceandsecondarydevelopment.Keywords:Facedetection,facerecognition,cas
6、cadeclassificationdetect攀枝花學院本科畢業(yè)設計(論文)1緒論 目錄TOC o 1-5 h z HYPERLINK l bookmark2 摘要IABSTRACTII HYPERLINK l bookmark6 緒論1 HYPERLINK l bookmark8 1.1課題提出的背景1 HYPERLINK l bookmark10 1.2人臉識別技術的研究意義2 HYPERLINK l bookmark12 1.3課題研究方法2 HYPERLINK l bookmark14 1.3.1人臉檢測的原理21.3.2人臉識別的原理2 HYPERLINK l bookmark16
7、 1.4人臉識別的國內(nèi)外發(fā)展概況2 HYPERLINK l bookmark18 1.4.1國內(nèi)發(fā)展概況2 HYPERLINK l bookmark20 1.4.2國外發(fā)展概況3 HYPERLINK l bookmark22 系統(tǒng)的需求分析與方案選擇4 HYPERLINK l bookmark24 2.1可行性分析4 HYPERLINK l bookmark26 2.1.1技術可行性4 HYPERLINK l bookmark28 2.1.2操作可行性4 HYPERLINK l bookmark30 2.2需求分析5 HYPERLINK l bookmark32 2.2.1應用程序的功能需求分
8、析5 HYPERLINK l bookmark34 2.2.2開發(fā)環(huán)境需求分析5 HYPERLINK l bookmark38 研究方案及技術路線7 HYPERLINK l bookmark40 3.1人臉檢測方案7 HYPERLINK l bookmark46 3.2人臉識別方案8 HYPERLINK l bookmark48 3.3使用技術9 HYPERLINK l bookmark50 3.3.1子空間法9 HYPERLINK l bookmark52 3.3.2meanshift算法103.4信息查詢與維護流程圖10 HYPERLINK l bookmark54 系統(tǒng)的概要設計12 H
9、YPERLINK l bookmark56 4.1應用程序的總體結構設計流程圖12 HYPERLINK l bookmark58 4.2圖像預處理的層次圖13 HYPERLINK l bookmark60 4.3各模塊功能概述13 HYPERLINK l bookmark62 4.3.1圖像獲取模塊134.3.2人臉區(qū)域獲取134.3.3圖像預處理模塊13 HYPERLINK l bookmark66 4.3.4人臉定位模塊15 HYPERLINK l bookmark68 4.3.5特征提取模塊15 HYPERLINK l bookmark70 4.3.6識別模塊15 HYPERLINK l
10、 bookmark72 4.3.7數(shù)據(jù)庫存儲模塊16 HYPERLINK l bookmark86 4.3.8人臉采集注意事項19 HYPERLINK l bookmark88 系統(tǒng)的詳細設計20 HYPERLINK l bookmark90 5.1系統(tǒng)的運行流程圖205.2圖像處理詳細設計205.2.1人臉識別詳細設計205.2.2圖像點處理詳細設計265.2.3光線補償265.2.4具體實現(xiàn)光線補償功能27 HYPERLINK l bookmark98 5.3圖像灰度化28 HYPERLINK l bookmark100 5.3.1圖像灰度化的算法思想28 HYPERLINK l book
11、mark104 5.3.2圖像灰度化的編程實現(xiàn)28 HYPERLINK l bookmark120 5.4高斯平滑29 HYPERLINK l bookmark122 5.4.1算法思想295.4.2具體實現(xiàn)高斯平滑功能30 HYPERLINK l bookmark134 5.5灰度均衡31 HYPERLINK l bookmark136 5.5.1算法思想315.5.2編程實現(xiàn)32 HYPERLINK l bookmark150 5.6圖像對比度增強325.6.1算法思想325.6.2編程實現(xiàn)32 HYPERLINK l bookmark156 5.7編程時遇到的問題及解決方法33 HYPE
12、RLINK l bookmark158 5.7.1光線補償法33 HYPERLINK l bookmark160 5.7.2高斯平滑法33 HYPERLINK l bookmark162 5.7.3均衡直方圖33 HYPERLINK l bookmark164 系統(tǒng)調(diào)試34 HYPERLINK l bookmark166 6.1測試原則34 HYPERLINK l bookmark168 6.2測試方案34 HYPERLINK l bookmark170 6.3測試文檔35 HYPERLINK l bookmark172 7結束語37 HYPERLINK l bookmark174 7.1應用
13、程序的特點37 HYPERLINK l bookmark176 7.2心得體會37參考文獻39 HYPERLINK l bookmark178 致謝41攀枝花學院本科畢業(yè)設計(論文)1緒論 1緒論人臉檢測與識別是計算機視覺與模式識別領域中重要的研究方向,人臉識別在圖像處理與視頻檢索、視頻監(jiān)控、視頻顯示等方面占據(jù)著重要的位置。本文提出了基于32位彩色圖像對人臉進行識別的方法,介紹的主要內(nèi)容是圖像處理,重點分析基于OPENCV人臉檢測與識別的原理及方法,采用基于OPENCV的級聯(lián)分類檢測器,能夠根據(jù)視頻圖像提取人臉特征進行訓練。目前,高性能的微電子和視覺處理系統(tǒng)已經(jīng)運用在各個領域中,特別是基于視覺
14、處理系統(tǒng)中的人臉識別系統(tǒng)已經(jīng)走在了科學前沿。在生物識別技術中人臉識別是運用最為廣泛的技術,對圖像進行處理主要用到,光線補償技術、高斯平滑技術和二值化技術等。對圖像先進行補光處理,處理過后的圖片通過定位眼睛、鼻子、嘴唇來確定臉部區(qū)域,最后根據(jù)人臉固有的眼睛對稱性來確定是否是一個人臉,再使用高斯平滑,用來消除圖像的噪聲,最后進行二值化處理,采用局部閾值來進行二值化,接下來就對圖片中的人臉進行定位,特征提取和識別操作。經(jīng)過驗證,圖像通過預處理對以后的識別率有很大的影響,可以提高人臉檢測和識別的準確率。在其他國家,人臉識別技術已經(jīng)運用在智能家居、智能機器人、以及軍事安防和其他安全部門。在國內(nèi),我們對人
15、臉識別技術的研究始于20世紀90年代,主要用在公共安全領域、智能家居、金融管理、物業(yè)管理、以及網(wǎng)絡安全和考勤等方面。課題提出的背景隨著數(shù)字信號和模擬信號處理理論和計算機的發(fā)展,通過CMOS攝像頭獲取的模擬信號轉(zhuǎn)化為數(shù)字信號,然后使用計算機實現(xiàn)對視覺信息的處理,這就提出了一個新的理念“怎樣通過計算機來進行生物的識別”,隨著科學技術的不斷創(chuàng)新及發(fā)展,這個理念被實現(xiàn)了,生物特征識別技術中人臉的自動識別占有重要的地位,人臉識別技術與其他生物識別方法相比,人臉識別具有算法簡單、設計更直接、友好和方便等特點,因而人臉自動識別問題的研究不僅具有重要的應用價值,而且具有重要的理論意義。人臉識別主要用在公共安全
16、領域、智能家居、金融管理、物業(yè)管理、以及網(wǎng)絡安全和考勤等方面。由于數(shù)字信息比模擬信息更易于存儲和處理,因此,在視頻監(jiān)控領域采用計算機對視頻信息進行采集、存儲、分析得到許多人的青睞1?;贠PENCV的人臉檢測和識別在計算機模式識別與視覺領域中占有重要的地位,人臉檢測和識別利用分析比較人臉特征來進行身份鑒定的生物技術,通過級聯(lián)分類檢測器來進行人臉圖片的訓練,然后從攝像頭上采集圖片在庫中進行比對,如果比對結果在預設的閥值之內(nèi),則表示識別成功。人臉識別技術的研究意義怎樣使計算機能夠像人一樣能夠分析各種視覺信息,使用一種編制的方式來計算獲得的視覺數(shù)據(jù)。使機器智能化,通過機器來模擬人類所擁有的能力,像人
17、類一樣通過眼睛來觀察和獲得視覺信息,并使用大腦來處理視覺所獲得的信息。近年來各個領域使用了計算機視覺技術來解決該問題,該技術在視覺模式中具有重要的應用價值。人臉識別技術采用了視頻數(shù)據(jù)的采集,為采集的數(shù)據(jù)分配PCA空間,將視頻數(shù)據(jù)進行格式的轉(zhuǎn)換,將數(shù)據(jù)庫中存儲的視頻數(shù)據(jù)進行訓練,最后得到一個32位的浮動圖,該技術具有操作更簡單、直接等優(yōu)點。人臉檢測與識別在生物體特征識別技術中具有重要的應用價值。視頻跟蹤識別技術除了在智能視頻監(jiān)控系統(tǒng)中具有非常重要的應用外,在視頻會議、人機交互、門禁控制、家庭娛樂以及信息安全等場合也有著重要的應用2。課題研究方法人臉檢測的原理采集的圖片進行人臉檢測通過以下步驟,先
18、對需要檢測的目標進行特征的提取,利用這些特征數(shù)據(jù)建立目標檢測模型,然后將需要識別的圖像與目標模型進行匹配,如果匹配成功則使用矩形來進行標記。人臉識別的原理人臉識別技術股由于受到一些光線,環(huán)境的影響會造成識別的精度不高,現(xiàn)在大多數(shù)都集中研究在正面人臉圖像的識別上,但由于人臉面部表情、拍照角度或拍照光照等條件的變化下,得到的人臉照片中的特征不同,因此使用數(shù)據(jù)庫中存儲的樣本的有限個角度拍攝的照片,去識別任意角度的照片,使識別范圍得到很大的限制。為了解決以上出現(xiàn)的問題,現(xiàn)在人們提出了使用幾何特征識別法來進行人臉的識別,選取的特征點必須具有代表性,能代表一個人的面部特征,唯一標識該個體,選取眼角點、鼻翼
19、點、嘴角點等標識眼、耳、口、鼻及臉部輪廓的特征點。人臉識別的國內(nèi)外發(fā)展概況在許多領域中已經(jīng)使用到了人臉檢測與識別技術,人臉識別技術在世上起到了舉足輕重的作用,英國的布萊索在1996年開始了對人臉識別技術的研究,經(jīng)過三十多年的發(fā)展,人臉識別技術已經(jīng)得到了高速的發(fā)展,且取得了巨大的成功。國內(nèi)發(fā)展概況在我國對人臉識別技術的研究始于20世紀80年代,國內(nèi)主要有清華大學,攀枝花學院本科畢業(yè)設計(論文)1緒論 #北京理工大學,和自動化所的研究人員從事人臉檢測與識別的研究,國內(nèi)主要從以下三個方面進行研究:基于幾何特征的人臉正面自動識別方法?;诖鷶?shù)特征的人臉正面自動識別方法。基于連接機制的人臉正面自動識別方
20、法。近年來,隨著計算機硬件性能的不斷發(fā)展,基于圖像傳感器的視屏監(jiān)控系統(tǒng)獲得了迅猛的發(fā)展,各種面向復雜的應用背景的視頻監(jiān)控系統(tǒng)也隨之大量涌現(xiàn),隨著信息技術的不斷發(fā)展,視頻監(jiān)控系統(tǒng)在商業(yè)、國防安全和軍事應用領域中的需求將日益增加。由于視頻監(jiān)控系統(tǒng)具有如此大的應用背景,它引起了許多國家的高度重視,一些國家投入了大量資金和科研人員進行了廣泛的研究3。國外發(fā)展概況國外很多人從事對人臉檢測與識別問題的研究,主要有著名的MIT,CMU,歐洲,日本等國家,隨著人臉檢測的深入發(fā)展研究,國際上發(fā)表的有關論文數(shù)量也在大幅度的增加,國外主要從以下幾個方面進行研究:模板匹配示例學習神經(jīng)網(wǎng)絡基于隱馬爾可夫模型的方法基于A
21、daBoost的人臉識別算法基于彩色信息的方法基于形狀分析的方法攀枝花學院本科畢業(yè)設計(論文)2系統(tǒng)的需求分析與方案選擇攀枝花學院本科畢業(yè)設計(論文)2系統(tǒng)的需求分析與方案選擇 2系統(tǒng)的需求分析與方案選擇基于OPENCV的人臉識別系統(tǒng)應用非常廣泛,人臉識別技術現(xiàn)已經(jīng)日趨成熟,且現(xiàn)在都具有高可靠性,高識別率等特點,在我國及其他一些國家的專家學者正處于研究階段,該技術在不斷的改進與更新,以便使系統(tǒng)的識別率達到新的_.高度。可行性分析現(xiàn)在一些科研人員已研發(fā)了一套算法,很精確的能夠在一定的環(huán)境下進行人臉的識別,還存在一些科研愛好者來研究人臉識別算法,使得現(xiàn)在基于OPENCV的人臉識別技術已經(jīng)發(fā)展的非常
22、迅速,我在原有的算法基礎上進行了改進,融合了自己的一些方法以提高了檢測精度。技術可行性在對視頻圖像的處理方法有很多,我根據(jù)系統(tǒng)的需要,有選擇地使用了一些算法。在對視頻圖像臉部進行標記及采集,使用的方法有膚色識別,我主要使用的特征采集及轉(zhuǎn)換技術來進行人臉的識別,識別率率可以達到90%,縮短了識別的時間,并且該識別算法簡單易懂。光線補償技術:因為在不同的環(huán)境中,光線對圖像會產(chǎn)生干擾,圖像就會變得或明或暗,我們就要對其進行調(diào)整,所以采用光線補償來處理圖像的亮度變化。高斯平滑技術:在視頻圖像的采集過程中,由于外界條件的干擾,則采集的圖片中會出現(xiàn)一些噪音,這就會使圖像在進行轉(zhuǎn)化、識別時發(fā)生的數(shù)據(jù)的遺失和
23、損壞等,這些會對以后圖片的訓練產(chǎn)生干擾,所以將圖片進行平滑處理來消除噪聲的干擾。灰度變換技術:進行灰度轉(zhuǎn)換時,我們要保證圖像信息保持不變。我們在使用灰度轉(zhuǎn)換時,先對圖像數(shù)據(jù)進行統(tǒng)計,經(jīng)過比較后得出一個合適的灰度值,然后對圖像進行灰度變換?;叶染饧夹g:經(jīng)過灰度轉(zhuǎn)換后,就要進行灰度均衡化操作,最后通過灰度分布來對圖像進行灰度均衡。對比度增強技術:通過對某個圖片的點進行定位,然后將其周圍的像素值進行統(tǒng)計,再通過聚集技術將相鄰的像素值拉開,使他們之間的差距拉大。操作可行性基于OPENCV的人臉識別技術運行在以下環(huán)境中:CPU:500M以上;內(nèi)存:64M以上。安裝有Linuxfedora、Linuxu
24、buntu、Linxucore等操作系統(tǒng)中的其中一種。另還裝有攝像頭進行圖片采集和識別,該系統(tǒng)主要使用的為CMOS攝像頭,也可使用USB攝像頭來進行圖像的采集。因此,從操作可行性來看,只要系統(tǒng)用戶的硬件軟件設備滿足如上的要求,就可以使用該系統(tǒng)進行人臉的識別。需求分析應用程序的功能需求分析通過這個系統(tǒng)先通過CMOS攝像頭對人臉進行采集,然后對人臉進行檢測,將采集到的人臉圖片進行訓練得到一個模型,最后使用當前的圖像與該模型進行比對,這個過程稱之為預處理。預處理這個模塊在整個人臉識別系統(tǒng)的開發(fā)過程中占有很重要的地位,只有預處理模塊做的好,才可能很好的完成后面的人臉定位和特征提取這兩大關鍵模塊4。本系
25、統(tǒng)的主要具備如下功能:(1)圖像獲取功能:圖片的獲取主要是通過從CMOS或者USB攝像頭來獲取圖像,從CMOS攝像頭獲取的為模擬信號,必須要通過YUV轉(zhuǎn)換得到數(shù)字信號,得到的圖片保存在數(shù)據(jù)庫中。圖像預處理功能:該模塊主要包括圖像光線補償、圖像變成灰色、高斯平滑、均衡直方圖、實現(xiàn)圖像對比度增強、二值化變換等8。人臉定位功能:從攝像頭獲取的圖片經(jīng)過前期的預處理后,將通過檢測器來標記眼睛、鼻子、嘴唇來確定人臉區(qū)域,并對該圖片的特征進行提取。特征提取功能:對人臉檢測通過后將對人臉進行特征的提取,因為每個人的臉型不一樣,而且兩眼之間的距離等因素,可以確定每個人的不同特征。識別功能:從攝像頭獲取的圖片進過
26、處理后,將提取的特征值與預先訓練好的目標模型進行比對,來對當前的圖片進行識別。開發(fā)環(huán)境需求分析硬件環(huán)境(1)硬件配置原則硬件的配置需要該硬件具有可靠性、穩(wěn)定性、安全性等特點,在軟件支持的環(huán)境下,能實時的運行程序。(2)運行本軟件所需的硬件資源CPU:800M及以上;內(nèi)存容量:內(nèi)存達128M以上。軟件環(huán)境識別系統(tǒng)的軟件運行規(guī)則能夠在指定的運行環(huán)境下,滿足該軟件的耦合性,易擴性和規(guī)范性。系統(tǒng)軟件的配置方案軟件的配置需要有高度集成性,高穩(wěn)定性,能夠運行在嵌入式的平臺下,女口Windows2000,WindowsNT,UNIX,Linux等。配置需要滿足ISO的標準,并且能夠保持系統(tǒng)的兼容性。如:Qt
27、designero熟悉C+/C等編程語言。運行環(huán)境需求分析系統(tǒng)運行的硬件環(huán)境CPU:500M以上;內(nèi)存容量:64M以上。系統(tǒng)運行的軟件環(huán)境該系統(tǒng)可以使用在以下操作系統(tǒng)中。如Linux3.0.5內(nèi)核、Linuxubuntu系統(tǒng)、Linuxferdor系統(tǒng)等。攀枝花學院本科畢業(yè)設計(論文)3研究方案及技術路線攀枝花學院本科畢業(yè)設計(論文)3研究方案及技術路線 3研究方案及技術路線3.1人臉檢測方案在生物特征識別技術中人臉檢測不同于其他的計算機視覺識別技術,人臉檢測通過將視覺信號轉(zhuǎn)換為機器能夠識別的數(shù)字信號,從而使用計算機來進行判斷處理。計算機通過攝像頭看到的東西要簡單的多,簡單來說,就是一堆由數(shù)字
28、組成的矩陣,這些數(shù)字表明了物體發(fā)出的光的強弱,攝像頭的光敏元件將光信號轉(zhuǎn)化成數(shù)字信號,將其量化為矩陣護計算機如何能夠從訓練出來的數(shù)據(jù)庫中比對出這是一個人臉,這是一個比較困難的事情,但是計算機可以通過對顏色數(shù)據(jù)的判斷來進行處理。彩色圖片中的像素是由許多色彩通道組成的,所有的彩色圖片由RGB三通道組成,分別代表有紅色通道,綠色通道和藍色通道,灰度圖都是由RGB組成,如果某個點由6位組成,該像素的通道值為2人6=64。那么該像素的總和通道值為3*6=18位,則該圖片由18位色彩值組成的。對18位的圖片進行轉(zhuǎn)換是很復雜的事情,我們就需要先對圖片進行前期的轉(zhuǎn)換,即是將彩色圖片轉(zhuǎn)換為灰度圖片,通過這樣的轉(zhuǎn)
29、換后可以減低數(shù)據(jù)量。先將圖片轉(zhuǎn)化為灰度圖,然后將這個灰度圖的對比度增高,這樣可以使得圖片本來暗的地方更暗,亮的地方更亮一些。這樣處理以后,圖片就更容易被算法設別出來了。I.J;ducIcaLuresEiHCin2】門J.末尾AA增加削除關的圖4.5數(shù)據(jù)庫人員信息采集界面人員信息的部門更改將采集的人員信息需要指定一個特定的部門來管理這個人員。圖4.6增加新的部門信息(3)人員信息的更改管理人員可以登錄進入系統(tǒng)后對庫內(nèi)存在的人員信息進行更新。電子郵杵:孫旭采集時間:15Feb2013增加劃除關聞-圖4.7更改人員信息管理人員可以查看當前庫內(nèi)的人員信息管理者通過登錄系統(tǒng)后,可以查看庫內(nèi)人員的所有信息
30、。圖4.8查看人員信息4.3.8人臉米集注意事項人臉距攝像頭距離80-120公分,可適當前后移動調(diào)整位置頭發(fā)不遮眼眉;不戴墨鏡;不帶口罩;不做鬼臉;不閉眼。進行人臉的采集時,平視前方,并且輕微抬頭與低頭,稍微左右轉(zhuǎn)頭。錯誤的米集方法:圖4.3人臉錯誤的姿勢正確的采集方式:平視前方抬頭)正視屏幕正視攝像頭輕微左轉(zhuǎn)輕微右轉(zhuǎn)圖4.4人臉正確的姿勢攀枝花學院本科畢業(yè)設計(論文)5系統(tǒng)的詳細設計 系統(tǒng)的詳細設計本章主要對視頻圖像采集及處理這一模塊進行詳細說明,對其子模塊所用到的函數(shù)和實現(xiàn)方式進行詳細描述。系統(tǒng)的運行流程圖圖5.1系統(tǒng)的運行流程圖圖像處理詳細設計5.2.1人臉識別詳細設計人臉識別的流程為,
31、從攝像頭采集圖片后對圖片進行灰度化處理。分配PCA存儲空間,再使用級聯(lián)分類檢測器對圖片進行特征提取訓練。提取出采集的人臉圖片的特征,保存數(shù)據(jù)到flash中為facedata.xml文件。使用的主要函數(shù)為:表5.1識別流程函數(shù)集函數(shù)功能learn()程序訓練入口recognize。從攝像頭采集一幀圖片recFromFrame(IplImage*facelmage)將圖片進行灰度化處理average(vectorvdoublepersonConfi)計算該圖片的平均值unloadTrainingdata()釋放內(nèi)存空間storeEigenfaceImages()保存為矢量圖doPCA()分配PCA
32、空間storeTrainingData()儲存圖片數(shù)據(jù)loadTrainingData(CvMat*pTrainPersonNumMat)下載圖片數(shù)據(jù)findNearestNeighbor(float*projectedTestFace)找出臨近的相似度loadFaceImgArray(constchar*filename)下載位圖數(shù)據(jù)(1)得到一個32位的浮動圖像IplImage*convertFloatImageToUcharImage(constIplImage*srcImg)IplImage*dstImg=0;if(srcImg)&(srcImg-width0&srcImg-heigh
33、t0)doubleminVal,maxVal;cvMinMaxLoc(srcImg,&minVal,&maxVal);if(cvIsNaN(minVal)|minVal1e30)maxVal=1e30;if(maxVal-minVal=0.0f)maxVal=minVal+0.001;dstImg=cvCreateImage(cvSize(srcImg-width,srcImg-height),8,1);cvConvertScale(srcImg,dstImg,255.0/(maxVal-minVal),-minVal*255.0/(maxVal-minVal);returndstImg;保存
34、源圖片的所有特征向量voidFaceRec:storeEigenfaceImages()if(nEigens0)intCOLUMNS=8;/PnCols=min(nEigens,COLUMNS);intnRows=1+(nEigens/COLUMNS);/Pw=eigenVectArr0-width;inth=eigenVectArr0-height;CvSizesize;size=cvSize(nCols*w,nRows*h);IplImage*bigImg=cvCreateImage(size,IPL_DEPTH_8U,1);for(inti=
35、0;inEigens;i+)IplImage*byteImg=convertFloatImageToUcharImage(eigenVectArri);intx=w*(i%COLUMNS);inty=h*(i/COLUMNS);CvRectROI=cvRect(x,y,w,h);cvSetImageROI(bigImg,ROI);cvCopyImage(byteImg,bigImg);cvResetImageROI(bigImg);cvReleaseImage(&byteImg);cvSaveImage(out_eigenfaces.bmp,bigImg);cvReleaseImage(&bi
36、gImg);下載需要訓練的數(shù)據(jù),并將訓練好的數(shù)據(jù)保存到xml文件中voidFaceRec:learn()inti,offset;char*szFileTrain;szFileTrain=40.txt;/訓練數(shù)據(jù)的路徑nTrainFaces=loadFaceImgArray(szFileTrain);fprintf(stderr,Got%dtrainingimages.n,nTrainFaces);攀枝花學院本科畢業(yè)設計(論文)5系統(tǒng)的詳細設計攀枝花學院本科畢業(yè)設計(論文)5系統(tǒng)的詳細設計 if(nTrainFacesstep/sizeof(float);for(i=0;idata.fl+i*o
37、ffset);storeTrainingData();/將訓練好的數(shù)據(jù)保存到xml文件中if(SAVE_EIGENFACE_IMAGES)storeEigenfaceImages();/保存這些訓練圖片為一張位圖從攝像頭中獲取一幀圖片intFaceRec:recFromFrame(IplImage*faceImage)constchar*answer;QFileInfofacedata(facedata.xml);if(facedata.exists()&trainPersonNumMat=0&projectedTestFace=0)loadTrainingData(&trainPersonN
38、umMat);projectedTestFace=(float*)cvAlloc(nEigens*sizeof(float);cvEigenDecomposite(faceImage,nEigens,eigenVectArr,0,0,pAvgTrainImg,projectedTestFace);intiNearest,nearest;iNearest=findNearestNeighbor(projectedTestFace);if(10=iNearest)/fprintf(stderr,thisisten!n);return10;elsenearest=trainPersonNumMat-
39、data.iiNearest;returnnearest;(5)從facedata.xml下載訓練好的數(shù)據(jù)intFaceRec:loadTrainingData(CvMat*pTrainPersonNumMat)CvFileStorage*fileStorage;inti;fileStorage=cvOpenFileStorage(facedata.xml,0,CV_STORAGE_READ);if(!fileStorage)fprintf(stderr,Cantopenfacedata.xmln);return0;personNames.clear();nPersons=cvReadIntB
40、yName(fileStorage,0,nPersons,0);if(nPersons=0)printf(Nopeoplefoundinthetrainingdatabasefacedata.xml.n);return0;for(i=0;inPersons;i+)stringsPersonName;charvarname200;sprintf(varname,personName_%d,(i+1);sPersonName=cvReadStringByName(fileStorage,0,varname);personNames.push_back(sPersonName);nEigens=cv
41、ReadIntByName(fileStorage,0,nEigens,0);nTrainFaces=cvReadIntByName(fileStorage,0,nTrainFaces,0);*pTrainPersonNumMat=(CvMat*)cvReadByName(fileStorage,0,trainPersonNumMat,0);eigenValMat=(CvMat*)cvReadByName(fileStorage,0,eigenValMat,0);projectedTrainFaceMat=(CvMat*)cvReadByName(fileStorage,0,projected
42、TrainFaceMat,0);pAvgTrainImg=(IplImage*)cvReadByName(fileStorage,0,avgTrainImg,0);eigenVectArr=(IplImage*)cvAlloc(nTrainFaces*sizeof(IplImage*);for(i=0;iwidth;faceImgSize.height=faceImgArr0-height;eigenVectArr=(IplImage*)cvAlloc(sizeof(IplImage*)*nEigens);for(i=0;idata.fl);cvNormalize(eigenValMat,ei
43、genValMat,1,0,CV_L1,0);圖像點處理詳細設計在圖像的處理中點運算是一個非常重要的技術,點運算允許用戶改變圖像數(shù)據(jù)所占用的灰度范圍,從攝像頭采集到的圖像經(jīng)過點運算后可以得到一副新的圖像,根據(jù)輸入圖像像素點的灰度值可以決定輸出圖像像素點的灰度值,然而,點操作不能改變視頻圖像內(nèi)的空間結構20。通過用戶自己設定的方式使用點運算來改變一副圖片的灰度值,灰度值的改變可以根據(jù)某種灰度變換函數(shù)來進行變換。點運算的基本原理是“從原來的像素到新的像素”的拷貝操作。如果輸入圖像為K(x,y),輸出圖像為Z(x,y),則點運算可表示為:Z(x,y)=fK(x,y)式(5.1)其中函數(shù)f(D)為灰度
44、轉(zhuǎn)換函數(shù),該函數(shù)反應了輸入灰度值與輸出灰度值的聯(lián)系。當f(D)確定下來后則該點運算也就被定下來了。點運算有時又稱為對比度增強、對比度拉伸或灰度變換,它是圖像數(shù)字化軟件和圖像顯示軟件的重要組成部分21。光線補償從攝像頭對圖像進行采集的過程中,采集的圖片會受到設備的干擾及環(huán)境因素的影響,從而會使圖像的色彩向某個固定的方向移動,比如說圖像的色彩偏黃、變藍、變黑等。為了抵消這種整個圖像中存在著的色彩偏差,使用檢測圖像中亮度在前5%的像素(參考白),按一定公式計算出調(diào)整值,則對圖像的RGB三個分量進行線性調(diào)整,如果整張圖片較暗,前5%平均灰度值會比255較小,調(diào)整值較大,把整個圖片的顏色調(diào)亮。整幅圖像的
45、其他像素點的色彩值也都按這一調(diào)整尺度進行交換,通過這種技術可以更好的進行圖像的處理和后期的識別22。具體實現(xiàn)光線補償功能通過上面的講解知道了光線補償這功能的算法與設計思想,下面通過編程來實現(xiàn)其算法,具體過程如下:在QT下通過增加菜單欄,在其頂部添加一子目錄,將命名為“預處理”,并在其下方的屬性欄中命名為“彈出”菜單,右擊預處理則該選項會自動生成一個子菜單項,屬性名為“光線補償”,并在右下面的屬性中把ID號設置為ID_READY_LIGHTERGTHNSATE,對應文件FaceDetect.Cpp中的函數(shù)recognize。實現(xiàn),并在recFromFrame(IplImage*facelmage
46、)中添加如下代碼:hDIBTempp=gDib.CopyHandle(hDIB);gDib.LightingComper(hDIB);GlobalUnlock(hDIB);Invalidate();光線補償通過函數(shù)實現(xiàn),通過對圖像的RGB進行轉(zhuǎn)換而使圖片的光線變亮或變暗。函數(shù)LightingComper()是類facerecognize的一個目標函數(shù)。其核心代碼如下所述:/下面通過該算法來實現(xiàn)光線補償技術for(i=0;iheight;i+)for(intj=0;jPixelOffset(i,j,wBytesPerLine);/得到藍色分量*(lpData+lOffset)=colorb;/綠
47、色分量colorb=*(lpData+lOffset+1);colorb*=co;if(colorb255)colorb=255;*(lpData+lOffset+1)=colorb;colorb=*(lpData+lOffset+2);colorb*=co;if(colorb255)colorb=255;*(lpData+lOffset+2)=colorb;圖像灰度化圖像灰度化的算法思想(1)將彩色圖片轉(zhuǎn)換成灰度圖像彩色圖像通過式(5.2)轉(zhuǎn)化成灰度圖像:blue=0.39XR+0.50XG+0.11XB式(5.2)該公式中,blue為灰度值,R、B、G分別代表紅色分量值、藍色分量值、綠色分
48、量值。灰度比例的變換灰度比例變換的實質(zhì)是把圖片原像素的灰度值乘以一個預設的值,使得最后獲得的值在0,255這個范圍之內(nèi)。灰度線性的變換由于受到光線的影響,會造成圖像在成像時曝光不足,從而使圖像在顯示的時候顏色差異太大,這就會使圖像的結構模糊不清。所以將圖像灰度進行線性變換,就能夠改變圖片的內(nèi)部結構。灰度線性變換的公式為:f,其他(dc)(f-a)b-ab-a+c,fga,b式(5.3)式5.3中,f是原圖片像素的灰度值,g為變換后的灰度值。該變換把屬于a,b的灰度級變換至灰度區(qū)間c,d,而沒有在a,b區(qū)間的原像素灰度將保持不變。這里a,b,c,d,f,g均為0,255之間的整數(shù)值。可見,a被映
49、射為c,b被映射為d。(4)灰度線性截斷在對灰度線性進行判斷前,需要預設一個特定的值a,如果f的值小于這個a值,則將該像素的灰度等級經(jīng)過運算從新設為c,如f大于這個a值,則該像素的灰度等級進過運算設為do圖像灰度化的編程實現(xiàn)具體實現(xiàn)灰度化功能獲取藍色分量ColorB=*(lpData+lOffset);獲取綠色分量ColorG=*(lpData+lOffset+1);獲取紅色分量ColorR=*(lpData+lOffset+2);計算灰度值gray=(ColorG*50+ColorR*39+ColorB*11)/100;顯示灰度圖像*(lpData+lOffset)=gray;*(lpDat
50、a+lOffset+1)=gray;*(lpData+lOffset+2)=gray;其中l(wèi)pData是圖片數(shù)據(jù)區(qū)域,1Offset是像素的偏移,gray是圖像變化前的灰度值。高斯平滑算法思想引進高斯平滑,首先介紹模板操作。經(jīng)常被用來作為模板操作的算法有:數(shù)字圖像處理算法,圖像平滑處理技術,圖像銳化和細化,一擊圖像的邊緣檢測操作。例如:平滑算法是將原始圖像像素的灰度值和其相鄰的8個像素的灰度值進行求和,然后為新的圖像的像素的灰度值。1111/9111式(5.4)111111J在圖像采集過程中,由于各種因素對圖像的影響,往往會產(chǎn)生一些不規(guī)則的隨機噪聲,比如在數(shù)據(jù)傳輸,儲存時發(fā)生的數(shù)據(jù)丟失和損壞等
51、,這將影響圖像質(zhì)量。通過平滑化處理圖片可以降低噪音得到除噪圖片,同時除去除圖像的高頻部分,因為原始低頻部門很容易被識別。噪聲在整個圖片數(shù)據(jù)分布中是一些孤立的點,噪聲點像素的灰度值與其相鄰像素值有明顯的差異,灰度變化總在這附近的高頻突變點。用于平滑卷積核被稱為一個低通濾波器,低通濾波器具有以下特點:1行的卷積核的列數(shù)的數(shù)量,通常是3X3的矩陣;2個卷積系數(shù)的中心點對稱分布中心;3個卷積系數(shù)是為正;4是遠離中心的卷積系數(shù)的值較小或保持不變;卷積的結果不改變圖像的亮度。隨后的水平投影卷積平滑,提供了更好的圖像二值化。水平投影的曲線是平滑的,二值化圖像的孤立點較少23。以下是幾個常用的卷積核:1/91
52、/91/91/101/101/101/162/161/161/91/91/91/101/51/102/164/162/161/91/91/91/101/101/101/162/161/16LP1LP2LP3通常的處理方法:周圍8個點的中心點的像素值乘以各自的矩陣相應的系數(shù)后相加后得到一個值,將這個值與中心點的系數(shù)相乘得到的新值作為中心點的系數(shù)。一般來說,不同的噪聲具有不同的卷積算法。本系統(tǒng)才用的是一個高斯卷積核卷積算法,這是上述的卷積核LP3。高斯卷積得到的是經(jīng)過抽樣的二維高斯函數(shù)。高斯平滑算法的優(yōu)點是平滑后圖像的失真少,能夠去除噪聲的干擾24。具體實現(xiàn)高斯平滑功能上面講解了高斯平滑原理,下面
53、可進行編碼將其實現(xiàn):編輯菜單IDR_MAINFRAM,在菜單“預處理”中添加一子菜單項,命名為“高斯平滑”并將其ID設為ID_READY_Mteplate。在類CFaceDetectView中添加“高斯平滑菜單項的事件處理程序,其代碼如下:/進行模板操作Mteplate(temp,3,3,maxs);Invalidate(TRUE);其中temp是模板參數(shù),maxs是模板系數(shù);Mteplate()函數(shù)實現(xiàn)高斯平滑的主要函數(shù),其核心代碼是:for(m=i-(temp_h-1)/2);m=i+(temp_h-1)/2);m+)for(n=j-(temp_w-1)/2);n=j+(temp_w-1)
54、/2);n+)smin+=Graymn*temp(m-i+(temp_h-1)/2)*temp_w+n-j+(temp_w-1)/2);/將maxs乘上預設的值smin=(int)smin*maxs;/并計算絕對值smin=fabs(smin);/計算其絕對值/如果小于0,強制賦值為0攀枝花學院本科畢業(yè)設計(論文)5系統(tǒng)的詳細設計 if(smin255)smin=255;Heightij=smin;5.5灰度均衡5.5.1算法思想灰度均衡也稱直方圖均衡,為了使圖片在每一個灰度級上有相同的像素點數(shù)的輸出,就必須使用點運算輸入轉(zhuǎn)換,這樣轉(zhuǎn)換的結果是使圖像進行灰度化,這對于在進行圖像比較或分割之前將
55、圖像轉(zhuǎn)化為一級的格式是十分有效的。按照圖像的概率密度函數(shù)(PDF,歸一化帶單位面積的直方圖)的定義:P(x)=匕。*H(x)式(5.5)其中H(X)為直方圖,A0為圖像的面積,設轉(zhuǎn)換前圖像的概率密度函數(shù)為Pr(r),轉(zhuǎn)換后圖像的概率密度函數(shù)為Ps(S),轉(zhuǎn)換函數(shù)為s=f(r),由概率論知識,我們可以得到:Ps(S)=Pr(r)*這樣,轉(zhuǎn)換后我們需要使概率密度函數(shù)變?yōu)?:Pr(r)=等式兩邊積分,得:S=f(r)=0P2(U)du=1A00H(u)du式(5.6)式(5.7)式(5.8)該轉(zhuǎn)換式被稱為圖像的累積分布函數(shù)上面的式是通過使用歸一化來判斷沒有經(jīng)過歸一化的情況,只要求以最大的灰度值即可,
56、灰度均衡的轉(zhuǎn)換式為:DB=f(DA)=DMaxAoH(u)du對于離散圖像轉(zhuǎn)換式為:式(5.9)DB=f(DA)=DMax.AoAhi=0式(5.10)式中Hi為第i級灰度的像素個數(shù)。攀枝花學院本科畢業(yè)設計(論文)5系統(tǒng)的詳細設計 編程實現(xiàn)在對圖像進行灰度均衡操作時,不需要改變DIB的調(diào)色板位置和文件夾的打開方式,但是需要把DIB像素起始位置的指針和DIB高度、寬度等信息傳遞給需要調(diào)用的子函數(shù)就可以完成灰度均衡轉(zhuǎn)換工作,其核心代碼如下:*(lpData+lOffset)=state;/顯示灰度均衡*(lpData+lOffset+1)=state;*(lpData+lOffset+2)=sta
57、te;5.6圖像對比度增強算法思想均衡直方圖的圖像處理也可以增強圖像的對比度,并進一步拉大對比度。通過對圖像灰度值的統(tǒng)計,小于最小設定值被認為是相關的信息,它被當作一個黑色來處理,如果大于的最大設定值,則認為這是無用的信息并被刪除,若處在兩者之間,且對比度增強,將他們在總的灰度值里面的比例作為新的像素信息保存起來。編程實現(xiàn)在QT界面的頂端的編輯菜單IDR_MAINFRAM,在菜單“預處理”中添加一個子菜單項,命名為“圖像對比度增強功能”,并將其ID值設置為ID_READY_ContrastEnhance.CFaceDetectView中添加程序。其代碼如下:lOffset=gDib.Pixel
58、Offset(i,j,gwBytesPerLine);獲取圖像灰度增強函數(shù)intstate=IncreaseContrast(ZFTkk1,100);顯示灰度增強后的圖像*(lpData+lOffset)=state;*(lpData+lOffset+1)=state;*(lpData+lOffset+2)=state;其中IncreaseContras()函數(shù)是實現(xiàn)圖像對比度增強的關鍵函數(shù),該根據(jù)參數(shù)n來調(diào)節(jié)對比度,n越大,對比越強烈,其核心是:如果數(shù)據(jù)很小,設置為0if(pByte=Low)return0;獲得中間數(shù)據(jù),并進行對比增強處理elseif(LowpByte)&(pByteHig
59、h)returnint(pByte-Low)/Grad);如果數(shù)據(jù)很大,設置為255Elsereturn255;5.7編程時遇到的問題及解決方法光線補償法因為需要改變每一個像素的亮度值,起初,我通過對視頻圖像使用一個預設的值進行驗證,得到的效果比較不錯,但是當對多個圖片進行處理時,該預設值則與理想的效果相差太大,最終只有采用離散概率的方法,最后得到了預期的效果。高斯平滑法高斯平滑技術主要用于消除圖片的噪音,該技術使用了模板來進行操作,因此模板參數(shù)的選擇是很重要的。高斯平滑得到的效果圖的好壞取決與模板的參數(shù)選擇。在編程設計的時候,進行參數(shù)的預設,然后進行比較,得出那組參數(shù)可以達到比較好的效果。預
60、設的模板參數(shù)為:第一組數(shù)據(jù)1/91/91/91/91/91/91/91/91/9得到的效果不理想。第二組數(shù)據(jù)1/101/101/101/101/51/101/101/101/10得到的效果沒有達到預期的目的。第三組數(shù)據(jù)1/162/161/162/164/162/161/162/161/16達到了比較理想的效果。均衡直方圖開始時,圖像的灰度回一直都處于很零散的狀態(tài),并且圖像的特征模糊,原來采用高斯平滑技術對圖像進行處理,然后進行灰度轉(zhuǎn)換,但圖像效果沒有達到預期所想。最終采用均衡直方圖的方法,使圖像處理的效果處于比較理想的狀態(tài)。攀枝花學院本科畢業(yè)設計(論文)6系統(tǒng)調(diào)試攀枝花學院本科畢業(yè)設計(論文)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告營銷合同范本
- 車輛押借款合同
- 網(wǎng)簽版建筑工程合同模板
- 知識產(chǎn)權(TPR)保護框架協(xié)議
- 2024年有關藏品的協(xié)議書范本
- 大學生靈活就業(yè)協(xié)議書范本
- 工業(yè)用途商品購買合同
- 房地產(chǎn)租賃合同范本合輯
- 技術服務合作協(xié)議書范本
- 2024年貨架采購合同
- 河南省鄭州市第四初級中學2024-2025學年八年級上學期期中考試物理試卷
- JJF 2159-2024零氣發(fā)生器校準規(guī)范
- 期中檢測卷(試題)-2024-2025學年統(tǒng)編版二年級語文上冊
- 中職英語高二期中考試試卷(含答案)
- 2024年安徽國資國企研究院限公司公開招聘工作人員4名高頻難、易錯點500題模擬試題附帶答案詳解
- 中學校園商店招標公告
- 山東省青島市六年級數(shù)學上學期期中考試真題重組卷
- 2024中國遠洋海運集團校園招聘995人高頻難、易錯點500題模擬試題附帶答案詳解
- 真空鍍膜合作協(xié)議合同范本
- 北京市東城區(qū)2023-2024學年九年級上學期期末語文試題(含答案)
- 2024年港澳臺華僑生入學考試物理試卷試題真題(含答案詳解)
評論
0/150
提交評論