畢業(yè)設(shè)計(jì)-人臉識(shí)別系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)-人臉識(shí)別系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)-人臉識(shí)別系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)-人臉識(shí)別系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)-人臉識(shí)別系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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ōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第一章 前言第一節(jié) 課題背景一 課題的來(lái)源隨著安全入口控制和金融貿(mào)易方面應(yīng)用需要的快速增長(zhǎng),生物統(tǒng)計(jì)識(shí)別技術(shù)得到了新的重視。目前,微電子和視覺(jué)系統(tǒng)方面取得的新進(jìn)展,使該領(lǐng)域中高性能自動(dòng)識(shí)別技術(shù)的實(shí)現(xiàn)代價(jià)降低到了可以接受的程度。而人臉識(shí)別是所有的生物識(shí)別方法中應(yīng)用最廣泛的技術(shù)之一,人臉識(shí)別技術(shù)是一項(xiàng)近年來(lái)興起的,但不大為人所知的新技術(shù)。人們更多的是在電影中看到這種技術(shù)的神奇應(yīng)用:警察將偷拍到的嫌疑犯的臉部照片,輸入到電腦中,與警方數(shù)據(jù)庫(kù)中的資料進(jìn)行比對(duì),并找出該嫌犯的詳細(xì)

2、資料和犯罪記錄。這并非虛構(gòu)的情節(jié)。在國(guó)外,人臉識(shí)別技術(shù)早已被大量使用在國(guó)家重要部門以及軍警等安防部門。在國(guó)內(nèi),對(duì)于人臉識(shí)別技術(shù)的研究始于上世紀(jì)90年代,目前主要應(yīng)用在公安、金 融、網(wǎng)絡(luò)安全、物業(yè)管理以及考勤等領(lǐng)域。二 人臉識(shí)別技術(shù)的研究意義 1、富有挑戰(zhàn)性的課題人臉識(shí)別是機(jī)器視覺(jué)和模式識(shí)別領(lǐng)域最富有挑戰(zhàn)性的課題之一,同時(shí)也具有較為廣泛的應(yīng)用意義。人臉識(shí)別技術(shù)是一個(gè)非常活躍的研究領(lǐng)域,它覆蓋了數(shù)字圖像處理、模式識(shí)別、計(jì)算機(jī)視覺(jué)、神經(jīng)網(wǎng)絡(luò)、心理學(xué)、生理學(xué)、數(shù)學(xué)等諸多學(xué)科的內(nèi)容。如今,雖然在這方面的研究已取得了一些可喜的成果,但是FRT在實(shí)用應(yīng)用中仍面臨著很嚴(yán)峻的問(wèn)題,因?yàn)槿四樜骞俚姆植际欠浅O嗨频?/p>

3、,而且人臉本身又是一個(gè)柔性物體,表情、姿態(tài)或發(fā)型、化妝的千變?nèi)f化都給正確識(shí)別帶來(lái)了相當(dāng)大的麻煩。如何能正確識(shí)別大量的人并滿足實(shí)時(shí)性要求是迫切需要解決的問(wèn)題。2、面部關(guān)鍵特征定位及人臉2D形狀檢測(cè)技術(shù)在人臉檢測(cè)的基礎(chǔ)上,面部關(guān)鍵特征檢測(cè)試圖檢測(cè)人臉上的主要的面部特征點(diǎn)的位置和眼睛和嘴巴等主要器官的形狀信息?;叶确e分投影曲線分析、模板匹配、可變形模板、Hough變換、Snake算子、基于Gabor小波變換的彈性圖匹配技術(shù)、主動(dòng)性狀模型和主動(dòng)外觀模型是常用的方法。 可變形模板的主要思想是根據(jù)待檢測(cè)人臉特征的先驗(yàn)的形狀信息,定義一個(gè)參數(shù)描述的形狀模型,該模型的參數(shù)反映了對(duì)應(yīng)特征形狀的可變部分,如位置、

4、大小、角度等,它們最終通過(guò)模型與圖像的邊緣、峰、谷和灰度分布特性的動(dòng)態(tài)地交互適應(yīng)來(lái)得以修正。由于模板變形利用了特征區(qū)域的全局信息,因此可以較好地檢測(cè)出相應(yīng)的特征形狀。由于可變形模板要采用優(yōu)化算法在參數(shù)空間內(nèi)進(jìn)行能量函數(shù)極小化,因此算法的主要缺點(diǎn)在于兩點(diǎn):一、對(duì)參數(shù)初值的依賴程度高,很容易陷入局部最小;二、計(jì)算時(shí)間長(zhǎng)。針對(duì)這兩方面的問(wèn)題,我們采用了一種由粗到細(xì)的檢測(cè)算法:首先利用人臉器官構(gòu)造的先驗(yàn)知識(shí)、面部圖像灰度分布的峰谷和頻率特性粗略檢測(cè)出眼睛、鼻子、嘴、下巴的大致區(qū)域和一些關(guān)鍵的特征點(diǎn);然后在此基礎(chǔ)上,給出了較好的模板的初始參數(shù),從而可以大幅提高算法的速度和精度。眼睛是面部最重要的特征,它

5、們的精確定位是識(shí)別的關(guān)鍵。基于區(qū)域增長(zhǎng)的眼睛定位技術(shù),該技術(shù)在人臉檢測(cè)的基礎(chǔ)上,充分利用了眼睛是面部區(qū)域內(nèi)臉部中心的左上方和右上方的灰度谷區(qū)這一特性,可以精確快速的定位兩個(gè)眼睛瞳孔中心位置。該算法采用了基于區(qū)域增長(zhǎng)的搜索策略,在人臉定位算法給出的大致人臉框架中,估計(jì)鼻子的初始位置,然后定義兩個(gè)初始搜索矩形,分別向左右兩眼所處的大致位置生長(zhǎng)。該算法根據(jù)人眼灰度明顯低于面部灰度的特點(diǎn),利用搜索矩形找到眼部的邊緣,最后定位到瞳孔的中心。實(shí)驗(yàn)表明,本算法對(duì)于人臉大小、姿態(tài)和光照的變化,都有較強(qiáng)的適應(yīng)能力,但在眼部陰影較重的情況下,會(huì)出現(xiàn)定位不準(zhǔn)。佩戴黑框眼鏡,也會(huì)影響本算法的定位結(jié)果。3、面部感知系統(tǒng)

6、的重要內(nèi)容 基于視覺(jué)通道信息的面部感知系統(tǒng),包括人臉檢測(cè)和跟蹤、面部特征定位、面部識(shí)別、人臉歸類(年齡、種族、性別等的判別)、表情識(shí)別、唇讀等分系統(tǒng),如圖1-1所式,可以看出,繼人臉檢測(cè)和跟追之后,面部特征定位通常是面部感知的一個(gè)必備環(huán)節(jié),是后續(xù)工作的基礎(chǔ),具有重要的意義。盡管人臉識(shí)別不能說(shuō)是其他面部感知模塊的必備功能,但是, 可以肯定的是,利用已知的身份信息,結(jié)合特定人的先驗(yàn)知識(shí),可以提高表情分析、唇讀和語(yǔ)音識(shí)別、手勢(shì)識(shí)別乃至手寫體識(shí)別的可靠性。而計(jì)算機(jī)對(duì)使用者身份確認(rèn)的最直接的應(yīng)用就是基于特定使用者的環(huán)境設(shè)置:如使用者的個(gè)性化工作環(huán)境,信息的共享和隱私保護(hù)等等。視頻輸入人臉檢測(cè)和跟蹤面部特

7、征定位人臉識(shí)別表情分析性別判斷種族判斷年齡判別唇 讀身份信息情感狀態(tài)性別信息種族信息年齡信息唇形類別 圖1-1面部感知系統(tǒng)結(jié)構(gòu)圖第二節(jié) 人臉識(shí)別的國(guó)內(nèi)外發(fā)展概況現(xiàn)在人臉識(shí)別技術(shù)已經(jīng)應(yīng)用在許多領(lǐng)域中,并起到了舉足輕重的作用,人臉識(shí)別研究開(kāi)始于1966年P(guān)RI的Bledsoe的工作,經(jīng)過(guò)三十多年的發(fā)展,人臉識(shí)別技術(shù)取得了長(zhǎng)足的進(jìn)步, 現(xiàn)在就目前國(guó)內(nèi)外的發(fā)展情況來(lái)進(jìn)行展述。一 國(guó)外的發(fā)展概況1見(jiàn)諸文獻(xiàn)的機(jī)器自動(dòng)人臉識(shí)別研究開(kāi)始于1966年P(guān)RI的Bledsoe的工作,1990年日本研制的人像識(shí)別機(jī),可在1秒鐘內(nèi)中從3500人中識(shí)別到你要找的人。1993年,美國(guó)國(guó)防部高級(jí)研究項(xiàng)目署 (Advanced

8、 Research Projects Agency)和美國(guó)陸軍研究實(shí)驗(yàn)室(Army Research Laboratory)成立了Feret(Face Recognition Technology) 項(xiàng)目組,建立了feret 人臉數(shù)據(jù)庫(kù),用于評(píng)價(jià)人臉識(shí)別算法的性能。美國(guó)陸軍實(shí)驗(yàn)室也是利用vc+開(kāi)發(fā),通過(guò)軟件實(shí)現(xiàn)的,并且FAR為49%。在美國(guó)的進(jìn)行的公開(kāi)測(cè)試中,F(xiàn)AR,為53%。美國(guó)國(guó)防部高級(jí)研究項(xiàng)目署,利用半自動(dòng)和全自動(dòng)算法。這種算法需要人工或自動(dòng)指出圖像中人的兩眼的中心坐標(biāo),然后進(jìn)行識(shí)別。在機(jī)場(chǎng)開(kāi)展的測(cè)試中,系統(tǒng)發(fā)出的錯(cuò)誤警報(bào)太多,國(guó)外的一些高校(卡內(nèi)基梅隆大學(xué)(Carnegie Mello

9、n University)為首,麻省理工大學(xué)(Massachusetts Institute of Technology )等,英國(guó)的雷丁大學(xué)(University of Reading)和公司(Visionics 公司Facelt 人臉識(shí)別系統(tǒng)、Viiage 的FaceFINDER 身份驗(yàn)證系統(tǒng)、Lau Tech 公司Hunter系統(tǒng)、德國(guó)的BioID 系統(tǒng)等)的工程研究工作也主要放在公安、刑事方面,在考試驗(yàn)證系統(tǒng)的實(shí)現(xiàn)方面深入研究并不多。二 國(guó)內(nèi)的發(fā)展概況 2人臉識(shí)別系統(tǒng)現(xiàn)在在大多數(shù)領(lǐng)域中起到舉足輕重的作用,尤其是用在機(jī)關(guān)單位的安全和考勤、網(wǎng)絡(luò)安全、銀行、海關(guān)邊檢、物業(yè)管理、軍隊(duì)安全、智能

10、身份證、智能門禁、司機(jī)駕照驗(yàn)證、計(jì)算機(jī)登錄系統(tǒng)。我國(guó)在這方面也取得了較好的成就,國(guó)家863項(xiàng)目“面像檢測(cè)與識(shí)別核心技術(shù)”通過(guò)成果鑒定并初步應(yīng)用,就標(biāo)志著我國(guó)在人臉識(shí)別這一當(dāng)今熱點(diǎn)科研領(lǐng)域掌握了一定的核心技術(shù)。北京科瑞奇技術(shù)開(kāi)發(fā)股份有限公司在2002年開(kāi)發(fā)了一種人臉鑒別系統(tǒng),對(duì)人臉圖像進(jìn)行處理,消除了照相機(jī)的影響,再對(duì)圖像進(jìn)行特征提取和識(shí)別。這對(duì)于人臉鑒別特別有價(jià)值,因?yàn)槿四樿b別通常使用正面照,要鑒別的人臉圖像是不同時(shí)期拍攝的,使用的照相機(jī)不一樣。系統(tǒng)可以接受時(shí)間間隔較長(zhǎng)的照片,并能達(dá)到較高的識(shí)別率,在計(jì)算機(jī)中庫(kù)藏2300人的正面照片,每人一張照片,使用相距1-7年、差別比較大的照片去查詢,首選

11、率可以達(dá)到50%,前20張輸出照片中包含有與輸入照片為同一人的照片的概率可達(dá)70% 。2005年1月18日,由清華大學(xué)電子系人臉識(shí)別課題組負(fù)責(zé)人蘇光大教授主持承擔(dān)的國(guó)家十五攻關(guān)項(xiàng)目人臉識(shí)別系統(tǒng)通過(guò)了由公安部主持的專家鑒定。鑒定委員會(huì)認(rèn)為,該項(xiàng)技術(shù)處于國(guó)內(nèi)領(lǐng)先水平和國(guó)際先進(jìn)水平。本論文主要對(duì)該人臉識(shí)別系統(tǒng)進(jìn)行模塊劃分,并介紹各模塊的功能,重點(diǎn)介紹圖像預(yù)處理模塊,對(duì)其內(nèi)的子模塊的功能和算法進(jìn)行詳細(xì)講述,主要介紹光線補(bǔ)償、圖像灰度化、高斯平滑、均衡直方圖、圖像對(duì)比度增強(qiáng),圖像預(yù)處理模塊在整個(gè)系統(tǒng)中起著極其關(guān)鍵的作用,圖像處理的好壞直接影響著后面的定位和識(shí)別工作。第二章 系統(tǒng)的需求分析與方案選擇人臉識(shí)

12、別系統(tǒng)現(xiàn)在應(yīng)用于許多領(lǐng)域中,但是人臉識(shí)別技術(shù)也是一項(xiàng)近年來(lái)興起的,且不大為人所知的新技術(shù)。在我國(guó)以及其他國(guó)家都有大量的學(xué)者正在研究之中,不斷的更新人臉識(shí)別技術(shù),以便系統(tǒng)的識(shí)別準(zhǔn)確率達(dá)到新的高度。第一節(jié) 可行性分析在開(kāi)發(fā)該人臉識(shí)別軟件之前,我們查詢了前人所寫過(guò)的諸多論文以及源程序,在開(kāi)發(fā)之時(shí),結(jié)合了資料中的算法并揉進(jìn)了自己的一些思想,使程序可以對(duì)人臉圖片進(jìn)行簡(jiǎn)易識(shí)別。一 技術(shù)可行性 圖像的處理方法很多,我們可以根據(jù)需要,有選擇地使用各種方法。在確定臉部區(qū)域上,通常使用的方法有膚色提取。膚色提取,則對(duì)臉部區(qū)域的獲取則比較準(zhǔn)確,成功率達(dá)到95%以上,并且速度快,減少很多工作。圖像的亮度變化,由于圖像

13、的亮度在不同環(huán)境的當(dāng)中,必然受到不同光線的影響,圖像就變得太暗或太亮,我們就要對(duì)它的亮度進(jìn)行調(diào)整,主要采取的措施是對(duì)圖像進(jìn)行光線補(bǔ)償。高斯平滑:在圖像的采集過(guò)程中,由于各種因素的影響,圖像中往往會(huì)出現(xiàn)一些不規(guī)則的隨機(jī)噪聲,如數(shù)據(jù)在傳輸、存儲(chǔ)時(shí)發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會(huì)影響圖像的質(zhì)量,因此需要將圖片進(jìn)行平滑操作以此來(lái)消除噪聲。灰度變換:進(jìn)行灰度處理,我們要保證圖像信息盡可能少的丟失。同樣在進(jìn)行灰度變換前,我們也要對(duì)圖像的信息進(jìn)行統(tǒng)計(jì),找出一個(gè)比較合理的灰度值,才能進(jìn)行灰度變換?;叶染猓夯叶茸儞Q后,就要進(jìn)行灰度均衡,可以根據(jù)灰度分布來(lái)進(jìn)行灰度均衡。對(duì)比度增強(qiáng):將所要處理的區(qū)域和周圍圖像區(qū)域

14、進(jìn)一步拉開(kāi)他們的對(duì)比度,使它們更加明顯,主要通過(guò)像素的聚集來(lái)實(shí)現(xiàn)。二 操作可行性該人臉識(shí)別軟件需要如下的運(yùn)行環(huán)境:CPU:500M及以上;內(nèi)存:64 M及以上。安裝有Windows 98、Windows Me、Windows 2000、Windows NT等操作系統(tǒng)中的其中一種。另還裝有攝像頭可進(jìn)行隨機(jī)拍照和識(shí)別。因此,從操作可行性來(lái)看,只要系統(tǒng)用戶的硬件軟件設(shè)備滿足以上條件,即可用該人臉識(shí)別軟件進(jìn)行人臉的識(shí)別。第二節(jié) 需求分析一 應(yīng)用程序的功能需求分析 該軟件最主要的功能就是要能識(shí)別出人臉,首先該系統(tǒng)需要對(duì)通過(guò)攝像頭拍照而獲取到的原始的人臉圖片進(jìn)行一系列處理才可進(jìn)行下一步的工作,該處理過(guò)程也

15、稱圖像預(yù)處理。預(yù)處理這個(gè)模塊在整個(gè)人臉識(shí)別系統(tǒng)的開(kāi)發(fā)過(guò)程中占有很重要的地位,只有預(yù)處理模塊做的好,才可能很好的完成后面的人臉定位和特征提取這兩大關(guān)鍵模塊。因此本設(shè)計(jì)中所要完成的主要功能如下所述:圖像獲取功能:該模塊主要是從攝像頭拍照后進(jìn)行獲取圖片,也可以從圖片庫(kù)中獲取,獲取后的圖片可以在軟件的界面中顯示出來(lái)以便進(jìn)行識(shí)別。圖像預(yù)處理功能:該模塊主要包括圖像光線補(bǔ)償、圖像變成灰色、高斯平滑、均衡直方圖、實(shí)現(xiàn)圖像對(duì)比度增強(qiáng)、二值化變換等。人臉定位功能:該模塊主要是將處理后的人臉圖片進(jìn)行定位,將眼睛、鼻子、嘴巴標(biāo)記出來(lái),以便進(jìn)行特征提取。特征提取功能:該模塊是在定位后的人臉圖片中將眼睛、鼻子、嘴巴的特

16、征值提取出來(lái)。識(shí)別功能:該模塊是將從圖片中提取的特征值和后臺(tái)數(shù)據(jù)庫(kù)中的值進(jìn)行比較來(lái)完成識(shí)別功能。二 開(kāi)發(fā)環(huán)境需求分析1、硬件環(huán)境(1)硬件配置原則具有可靠性,可用性和安全性,具有完善的技術(shù)支持。能夠滿足個(gè)人學(xué)習(xí)和設(shè)計(jì)需要。(2)運(yùn)行本軟件所需的硬件資源CPU: 800M及以上;內(nèi)存: 128M及以上2、軟件環(huán)境(1)系統(tǒng)軟件配置原則 能夠滿足該軟件的可靠性,可用性和安全性的要求(2)系統(tǒng)軟件配置方案 配置有持續(xù)工作能力、高穩(wěn)定性、高度可集成的開(kāi)放式標(biāo)準(zhǔn)的操作系統(tǒng),如Windows2000,Windows NT,UNIX,Linux等。 配備符合ANSI/ISO標(biāo)準(zhǔn)的高級(jí)程序設(shè)計(jì)語(yǔ)言處理軟件。如

17、:Visual C+ 6.0。 熟悉C+高級(jí)程序設(shè)計(jì)語(yǔ)言。3、 運(yùn)行環(huán)境需求分析(1)、硬件環(huán)境CPU:500M及以上;內(nèi)存:64 M及以上。(2)、軟件環(huán)境可以運(yùn)行在微軟公司近年來(lái)所出的各種操作系統(tǒng)。如Windows 98、Windows Me、Windows 2000、Windows NT等。第三節(jié) 預(yù)處理方案選擇一 設(shè)計(jì)方案原則的選擇本應(yīng)用程序的設(shè)計(jì)方案原則如下:1、采用較為先進(jìn)的技術(shù)力量,保證應(yīng)用程序在技術(shù)上具備一定的優(yōu)勢(shì)。2、采用成熟的技術(shù),保證應(yīng)用程序的安全性和可靠性。3、應(yīng)用程序便于擴(kuò)展和維護(hù),易于技術(shù)的更新。4、應(yīng)用程序充分利用現(xiàn)有的資源,盡量減少不必要的再投資。5、編寫的代碼

18、必須嚴(yán)謹(jǐn)易讀,代碼的解釋必須清楚明白,為應(yīng)用程序的再開(kāi)發(fā)提供應(yīng)盡的責(zé)任。二 圖像文件格式選擇在設(shè)計(jì)的過(guò)程中,為了定位和特征提取的方便,我們采用的是24位位圖。三 開(kāi)發(fā)工具選擇本次設(shè)計(jì)所用的開(kāi)發(fā)工具是Microsoft Visual C+ 6.0。 Visual C+ 6.0是Microsoft公司推出的一種可視化編程工具。它支持多平臺(tái)和交叉平臺(tái)的開(kāi)發(fā),將各種編程工具如編輯器、連接器、調(diào)試器等巧妙的結(jié)合在一起,構(gòu)成一個(gè)完美的可視化開(kāi)發(fā)環(huán)境。用戶無(wú)需通過(guò)繁雜的編程操作,即可完成Windows下應(yīng)用程序的編輯、編譯、測(cè)試和細(xì)化等工作。四 算法選擇分析本文主要研究的對(duì)象是圖像預(yù)處理模塊,該模塊分為光線

19、補(bǔ)償、圖像灰度化、高斯平滑、圖像對(duì)比度增強(qiáng)、均衡直方圖,每個(gè)小模塊的實(shí)現(xiàn)都有許多相應(yīng)的算法。下面將本系統(tǒng)采用的算法進(jìn)行介紹:光線補(bǔ)償 :由于光線原因,所照的圖像可能會(huì)存在光線不平衡的情況而造成色彩偏差,為了抵消這種整個(gè)圖像中存在的色彩偏差,本系統(tǒng)采用的解決方法是:將整個(gè)圖像中的所有像素的亮度從高到低進(jìn)行排列,取前5%的像素,然后線性放大,使這些像素的平均亮度達(dá)到255。實(shí)際上就是調(diào)整圖片像素的RGB值。圖像灰度化:圖像灰度化是將圖像變成灰色,本系統(tǒng)中采用以下步驟來(lái)實(shí)現(xiàn)圖像的灰度化:彩色轉(zhuǎn)換成灰度、灰度比例變換、灰度線性變換、灰度線性截?cái)?、灰度取反。高斯平滑:在圖像的采集過(guò)程中,由于各種因素的影

20、響,圖像中往往會(huì)出現(xiàn)一些不規(guī)則的隨機(jī)噪聲,如數(shù)據(jù)在傳輸、存儲(chǔ)時(shí)發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會(huì)影響圖像的質(zhì)量,因此需要將圖片進(jìn)行平滑操作以此來(lái)消除噪聲。但是如果平滑不當(dāng),就會(huì)使圖像本身的細(xì)節(jié)如邊界輪廓、線條等變的模糊不清,為了既平滑掉噪聲有盡量保持圖像細(xì)節(jié),本系統(tǒng)采用高斯平滑。均衡直方圖:使用該模塊的目的是通過(guò)點(diǎn)運(yùn)算使輸入轉(zhuǎn)換為在每一灰度級(jí)上都有相同的像素點(diǎn)數(shù)的輸出圖像。它的實(shí)現(xiàn)主要是利用灰度均衡的轉(zhuǎn)換式DB = f (DA)= H(u)du 。(式1)圖像對(duì)比度增強(qiáng):為了將圖像的特征一步一步顯現(xiàn)出來(lái),需要進(jìn)行圖像的對(duì)比度增強(qiáng),它主要通過(guò)對(duì)圖像的灰度值進(jìn)行統(tǒng)計(jì),對(duì)于小于Low則認(rèn)為是有關(guān)的信息

21、,則將它作為黑色處理,對(duì)于處于High以上的則認(rèn)為是一些無(wú)關(guān)的信息,將它們?nèi)サ?,而處于兩者之間的,則進(jìn)行對(duì)比度增強(qiáng),將他們?cè)诳偟幕叶戎道锩娴谋壤鳛樾碌南袼匦畔⒈4嫫饋?lái)。第三章 系統(tǒng)的概要設(shè)計(jì) 本章主要介紹系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)的流程以及系統(tǒng)各模塊的功能及相關(guān)原理。應(yīng)用程序的總體結(jié)構(gòu)設(shè)計(jì)流程圖如圖31所示:圖31總體結(jié)構(gòu)設(shè)計(jì)流程圖用 戶從“文件”菜單中選擇“打開(kāi)”選項(xiàng)在彈出的“打開(kāi)”對(duì)話框中選擇要打開(kāi)的位圖,點(diǎn)擊“確定”,應(yīng)用程序顯示所要打開(kāi)的位圖識(shí)別獲取臉部區(qū)域獲取特征參數(shù)人臉定位圖象預(yù)處理顯示識(shí)別結(jié)果圖像預(yù)處理的層次圖如圖3-2所示: 圖3-2 預(yù)處理的層次圖預(yù)處理光線補(bǔ)償圖像灰度化高斯平滑均衡直

22、方圖圖像對(duì)比度增強(qiáng)二值化第一節(jié) 各模塊功能概述以上是該系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)圖以及圖像預(yù)處理模塊的層次圖。下面介紹系統(tǒng)中的各模塊的功能及算法:圖像獲取模塊該模塊主要是從攝像頭拍照后進(jìn)行獲取圖片,也可以從圖片庫(kù)中獲取,獲取后的圖片可以在軟件的界面中顯示出來(lái)以便進(jìn)行識(shí)別。人臉區(qū)域獲取 該系統(tǒng)中圖像里人臉區(qū)域的獲取,主要是根據(jù)膚色來(lái)進(jìn)行獲取,通過(guò)膚色非線形分段色彩變換來(lái)實(shí)現(xiàn)。這一非線性分段色彩變換得到的膚色模型屬于色彩空間中的聚類模型,這一類膚色模型的建立首先要選取一種合適的色彩空間。圖像預(yù)處理模塊圖像預(yù)處理就是對(duì)獲取得來(lái)的圖像進(jìn)行適當(dāng)?shù)奶幚?,使它具有的特征能夠在圖像中明顯的表現(xiàn)出來(lái)。該模塊中的子模塊有

23、如下5個(gè),下面對(duì)它們進(jìn)行概述: 光線補(bǔ)償3因?yàn)橄到y(tǒng)得到的圖片可能會(huì)存在光線不平衡的情況,這會(huì)影響我們對(duì)特征的提取,同時(shí)系統(tǒng)中要用到Y(jié)crCB色彩空間,所以有必要對(duì)圖像進(jìn)行光線補(bǔ)償。盡可能將它的特征在圖像中表現(xiàn)出來(lái)。YcrCB是一種色彩空間,它用于視頻系統(tǒng)中,在該色彩空間中,Y分量表示像素的亮度,Cr表示紅色分量,Cb表示藍(lán)色分量,通常把Cr和Cb稱為色度。YcrCB色彩空間是以演播室質(zhì)量標(biāo)準(zhǔn)為目標(biāo)的CC601編碼方案中采用的彩色表示模型?;叶茸兓?圖像灰度化的過(guò)程就是把彩色圖像轉(zhuǎn)換為黑白色圖像的過(guò)程,它也是為了將圖像的信息更加具體、簡(jiǎn)單的表現(xiàn)出來(lái),但是,這樣做也將會(huì)丟失圖像信息。因此,盡可能在

24、轉(zhuǎn)化的過(guò)程中用簡(jiǎn)單的方式表現(xiàn)圖像復(fù)雜的信息。高斯平滑處理5高斯平滑將對(duì)圖像進(jìn)行平滑處理,在圖像采集過(guò)程中,由于各種因素的影響,圖像往往會(huì)出現(xiàn)一些不規(guī)則的噪聲,入圖像在傳輸、存儲(chǔ)等都有可能產(chǎn)生數(shù)據(jù)的丟失。從而影響圖像的質(zhì)量。處理噪聲的過(guò)程稱為平滑。平滑可以降低圖像的視覺(jué)噪聲,同時(shí)出去圖像中的高頻部分后,那些本來(lái)不明顯的低頻成分更容易識(shí)別。平滑可以通過(guò)卷積來(lái)實(shí)現(xiàn)。經(jīng)過(guò)卷積平滑后的水平投影后,二值化提供了較好的圖像效果。對(duì)比度增強(qiáng)6對(duì)比度增強(qiáng),就是對(duì)圖像的進(jìn)一步處理,將對(duì)比度再一次拉開(kāi)。它針對(duì)原始圖像的每一個(gè)像素直接對(duì)其灰度進(jìn)行處理的,其處理過(guò)程主要是通過(guò)增強(qiáng)函數(shù)對(duì)像素的灰度級(jí)進(jìn)行運(yùn)算并將運(yùn)算結(jié)果作

25、為該像素的新灰度值來(lái)實(shí)現(xiàn)的。通過(guò)改變選用的增強(qiáng)函數(shù)的解析表達(dá)式就可以得到不同的處理效果。二值化7二值化的目的是將采集獲得的多層次灰度圖像處理成二值圖像,以便于分析理解和識(shí)別并減少計(jì)算量。二值化就是通過(guò)一些算法,通過(guò)一個(gè)閾值改變圖像中的像素顏色,令整幅圖像畫面內(nèi)僅有黑白二值,該圖像一般由黑色區(qū)域和白色區(qū)域組成,可以用一個(gè)比特表示一個(gè)像素,“1”表示黑色,“0”表示白色,當(dāng)然也可以倒過(guò)來(lái)表示,這種圖像稱之為二值圖像。這便有利于我們對(duì)特征的提取。該設(shè)計(jì)中采用組內(nèi)方差和組外方差來(lái)實(shí)現(xiàn)二值化。直方圖均衡8直方圖均衡化的目的是使一輸入圖像轉(zhuǎn)換為在每一灰度級(jí)上都有相同的象素點(diǎn)數(shù),它的處理的中心思想是把原始圖

26、像的灰度直方圖從比較集中的某個(gè)灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布,它的研究思路是:通過(guò)直方圖變換式來(lái)進(jìn)行直方圖的均衡處理,直方圖變換式是但是直方圖均衡化存在著兩個(gè)缺點(diǎn): 1)變換后圖像的灰度級(jí)減少,某些細(xì)節(jié)消失; 2)某些圖像,如直方圖有高峰,經(jīng)處理后對(duì)比度不自然的過(guò)分增強(qiáng)。人臉定位模塊人臉定位是將典型的臉部特征(如眼睛,鼻尖,嘴唇等等)標(biāo)記出來(lái),在本系統(tǒng)中,定位的特征是眼睛,鼻尖和嘴巴三個(gè)。由于眼睛具有對(duì)稱性,因此可以很快就能標(biāo)記出來(lái),而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛標(biāo)記好,鼻子和嘴巴也能相應(yīng)的標(biāo)記出來(lái)。特征提取模塊特征提取按以下4個(gè)步驟進(jìn)行:(1)、提取兩只眼睛的距離

27、(2)、眼睛的傾角度(3)、眼睛、嘴巴的重心(4)、用一個(gè)矩形標(biāo)出每一個(gè)特征在特征提取完之后將會(huì)得到相應(yīng)的特征值以便存入后臺(tái)數(shù)據(jù)庫(kù)。 識(shí)別模塊該模塊通過(guò)與庫(kù)存中的特征向量進(jìn)行比較,找出與特征最相近的參數(shù),再對(duì)該參數(shù)進(jìn)一步分析。如果分析在我們所確認(rèn)的范圍內(nèi),我們就認(rèn)為該人就是我們所要找的。然后從庫(kù)存中提取出該人相關(guān)的信息,并顯示出來(lái)。如果庫(kù)存中沒(méi)有,則給出提示是否對(duì)存庫(kù)作為樣本。第四章 系統(tǒng)的詳細(xì)設(shè)計(jì)本章主要對(duì)圖像處理這一模塊進(jìn)行詳細(xì)介紹,對(duì)其子模塊所用到的算法及具體實(shí)現(xiàn)進(jìn)行詳細(xì)講述。第一節(jié) 系統(tǒng)的運(yùn)行流程圖圖6-1 系統(tǒng)的運(yùn)行流程圖1、啟動(dòng)本系統(tǒng),進(jìn)入人臉識(shí)別系統(tǒng)界面。2、點(diǎn)擊攝像鍵,然后進(jìn)行

28、拍照,并將圖像顯示并保存。1、對(duì)圖片進(jìn)行光線補(bǔ)償、將圖片變成灰色、實(shí)現(xiàn)圖片對(duì)比度增強(qiáng),二值化變換等一系列預(yù)處理。2、將處理好的人臉圖片進(jìn)行定位,標(biāo)出眼睛、鼻尖和嘴巴。3、對(duì)定位好的人臉圖片進(jìn)行特征提取操作。1、識(shí)別出圖片上的人。2、結(jié)束退出輸出輸入 第二節(jié) 圖像處理詳細(xì)設(shè)計(jì)一 位圖詳細(xì)設(shè)計(jì)1 設(shè)備無(wú)關(guān)位圖(DIB)VC+沒(méi)有提供使用十分方便的DIB繪制方法,只好自己去創(chuàng)建一個(gè)實(shí)用的DIB類了。本系統(tǒng)中建立了一個(gè)專門的類DIB來(lái)處理設(shè)備無(wú)關(guān)位圖,表41列出了對(duì)位圖的操作函數(shù)。函 數(shù)功 能ClearMemory()釋放內(nèi)存CopyHandle()拷貝內(nèi)存塊LoadDIB()加載位圖信息ReadDI

29、BFile()讀取位圖文件信息LightingCompensate()進(jìn)行光線補(bǔ)償PixelOffset()修正像素值PaintDIBTrue()繪制DIB對(duì)象GetColorNumber()獲取顏色總數(shù)GetHeight()獲取DIB高度GetWidth()獲取DIB寬度GetSize()獲取圖像數(shù)據(jù)緩沖區(qū)中的字節(jié)數(shù)GetBitCount()獲取顏色位數(shù)GetBiBitCount()獲取字節(jié)數(shù) 表61 Dib類的部分功能二 圖像點(diǎn)處理詳細(xì)設(shè)計(jì)圖像點(diǎn)運(yùn)算是一種既簡(jiǎn)單又重要的技術(shù),它能讓用戶改變圖像數(shù)據(jù)占據(jù)的灰度范圍,一幅輸入圖像經(jīng)過(guò)點(diǎn)運(yùn)算后將產(chǎn)生一幅新的輸出圖像,由輸入像素點(diǎn)的灰度值決定相應(yīng)的

30、輸出像素點(diǎn)的灰度值,點(diǎn)運(yùn)算與局部運(yùn)算的差別在于:后者每個(gè)輸出像素的灰度值由對(duì)應(yīng)輸入像素的一個(gè)領(lǐng)域內(nèi)幾個(gè)像素的灰度值決定。所以,點(diǎn)運(yùn)算不可以改變圖像內(nèi)的空間關(guān)系。點(diǎn)運(yùn)算可以按照預(yù)定的方式改變一幅圖的灰度直方圖。除了灰度級(jí)的改變是根據(jù)某種特定的灰度變換函數(shù)進(jìn)行之外,點(diǎn)運(yùn)算可以看作是“從像素到像素”的復(fù)制操作。如果輸入圖像為A(x,y),輸出圖像為B(x,y),則點(diǎn)運(yùn)算可表示為: B(x,y) = fA(x,y) (式2)其中函數(shù)f(D)被稱為灰度變換(Gray Scale Transformation ,GST)函數(shù),它描述了輸入灰度值和輸出灰度值之間的轉(zhuǎn)換關(guān)系,一旦灰度變換函數(shù)確定,該點(diǎn)運(yùn)算就完

31、全被確定下來(lái)了。點(diǎn)運(yùn)算有時(shí)又稱為對(duì)比度增強(qiáng)、對(duì)比度拉伸或灰度變換,它是圖像數(shù)字化軟件和圖像顯示軟件的重要組成部分。下面將對(duì)本設(shè)計(jì)解決各圖像點(diǎn)處理模塊運(yùn)用進(jìn)行到的理論和編程實(shí)現(xiàn)進(jìn)行詳細(xì)講述。1、光線補(bǔ)償(1)算法思想:光線補(bǔ)償?shù)南敕ǖ奶岢鲋饕强紤]到膚色等色彩信息經(jīng)常受到光源顏色、圖像采集設(shè)備的色彩偏差等因素的影響,而在整體上偏離本質(zhì)色彩而向某一方向移動(dòng),即我們通常所說(shuō)的色彩偏冷、偏暖、照片偏黃、便藍(lán)等等。這種現(xiàn)象在藝術(shù)照片中更為常見(jiàn)。所以Anil K.Jain等提出,為了抵消這種整個(gè)圖像中存在著的色彩偏差,我們將整個(gè)圖像中所有像素亮度(是經(jīng)過(guò)了非線形r-校正后的亮度)從高到低進(jìn)行排列,取前5%

32、的像素,如果這些像素的數(shù)目足夠多(例如,大于100),我們就將它們的亮度作為“參考白”(Reference White),也即將它們的色彩的R、G、B分量值都調(diào)整為255。整幅圖像的其他像素點(diǎn)的色彩值也都按這一調(diào)整尺度進(jìn)行交換。 (2) 具體實(shí)現(xiàn)光線補(bǔ)償功能: 明白了光線補(bǔ)償這功能的算法及思想,就可以編碼實(shí)現(xiàn)其功能了,實(shí)現(xiàn)過(guò)程如下:、 編輯菜單IDR_MAINFRAM,先在其中添加一菜單項(xiàng),將其命名為“預(yù)處理”,并在其屬性欄中將其設(shè)為“彈出”菜單,點(diǎn)擊預(yù)處理該菜單項(xiàng)將會(huì)彈出一個(gè)新的子菜單,此時(shí)把該子菜單命名為“光線補(bǔ)償”,并把其ID設(shè)為ID_READY_LIGHTINGCONPENSATE,對(duì)

33、應(yīng)文件FaceDetectViewCpp中的函數(shù)ReadyLightingconpensate()實(shí)現(xiàn),并在void CFaceDetectView: OnReadyLightingconpensate()中添加如下代碼:hDIBTemp = gDib.CopyHandle(hDIB);gDib.LightingCompensate(hDIB);GlobalUnlock(hDIB);Invalidate();光線補(bǔ)償功能實(shí)質(zhì)上是用上段代碼中的LightingCompensate()函數(shù)來(lái)進(jìn)行實(shí)現(xiàn)。函數(shù)LightingCompensate()是類DIB的一個(gè)成員函數(shù)。其核心代碼如下所述:/下面的

34、循環(huán)對(duì)圖像進(jìn)行光線補(bǔ)償for(i =0;iheight;i+)for(int j=0;jPixelOffset(i,j,wBytesPerLine); /得到藍(lán)色分量*(lpData+lOffset) = colorb;/綠色分量colorb = *(lpData+lOffset+1);colorb *=co;if(colorb 255)colorb = 255;*(lpData+lOffset+1) = colorb;/紅色分量colorb = *(lpData+lOffset+2);colorb *=co;if(colorb 255)colorb = 255;*(lpData+lOffse

35、t+2) = colorb; 光線補(bǔ)償?shù)男Ч麍D如下所示 : 圖 4-1 原圖 圖4-2 光線補(bǔ)償效果圖2、 圖像灰度化(1)算法思想 彩色轉(zhuǎn)換成灰度 將彩色圖像轉(zhuǎn)化為灰階圖像常采用如下的經(jīng)驗(yàn)式: gray0.39R0.50G0.11B(式3)其中,gray為灰度值,R、G、B分別為紅色、綠色和藍(lán)色分量值。 灰度比例變換灰度比例變換是把原像素的灰度乘以一個(gè)縮放因子,并最后截至0,255。 灰度線性變換當(dāng)圖像由于成像時(shí)曝光不足或曝光過(guò)度,會(huì)產(chǎn)生對(duì)比度不足的弊病,從而使圖像中的細(xì)節(jié)分辨不清。將圖像灰度進(jìn)行線性擴(kuò)展,常能顯著地改善圖像的外觀?;叶染€性變換的計(jì)算式為: g = (式4)f,其他式中,f是

36、原像素的灰度,g為變換后的灰度。該變換把屬于a,b的灰度級(jí)變換至灰度區(qū)間c,d,而沒(méi)有在a,b區(qū)間的原像素灰度將保持不變。這里a,b,c,d,f,g均為0,255之間的整數(shù)值。可見(jiàn),a被映射為c,b被映射為d。 灰度線性截?cái)?灰度線性截?cái)嗟乃枷胧牵喝绻袼氐幕叶刃∮赼,則該像素的灰度等于c;如果原像素的灰度大于b,則該像素的灰度等于d。(2)具體實(shí)現(xiàn)灰度化功能在明白了灰度化的原理之后,就可進(jìn)行編碼來(lái)實(shí)現(xiàn)該功能。 編輯菜單IDR_MAINFRAM,先在其中添加一菜單項(xiàng),將其命名為”圖像灰度化”,并將其ID號(hào)設(shè)為ID_READY_SCALE, 對(duì)應(yīng)文件FaceDetectViewCpp中的函數(shù)R

37、eadyLightingconpensate()實(shí)現(xiàn). 現(xiàn)該模塊的核心代碼如下:獲取藍(lán)色分量 ColorB=*(lpData + lOffset); 獲取綠色分量 ColorG=*(lpData + lOffset+1); 獲取紅色分量 ColorR=*(lpData + lOffset+2); 計(jì)算灰度值 gray = (ColorG*50+ColorR*39+ColorB*11)/100;顯示灰度圖像 *(lpData + lOffset)=gray ; *(lpData + lOffset+1)=gray ; *(lpData + lOffset+2)=gray ;其中l(wèi)pData是圖片

38、數(shù)據(jù)區(qū),lOffset是圖片像素的偏移,gray 是圖像的灰度值 圖像灰度化效果圖:圖 4-3 圖像灰度化效果圖3、高斯平滑(1) 算法思想 在介紹高斯平滑前,先介紹模板操作。模板操作是數(shù)字圖像處理中經(jīng)常用到的一種運(yùn)算方法,圖像的平滑、銳化以及細(xì)化、邊緣檢測(cè)都要用到模板操作。例如:有一種常見(jiàn)的平滑算法是將原圖中一個(gè)像素的灰度值和它周圍鄰近八個(gè)像素的灰度值相加,然后求得的平均值(除以9)作為新圖中該像素的灰度值,用如下方法來(lái)表示該操作: 1 1 11/9 1 1 1 1 1 1 上式類似于矩陣,我們通常稱之為模板。中間的黑點(diǎn)表示該元素中心元素,即該個(gè)元素是要進(jìn)行處理的元素。如果模板是:1 1 1

39、1/9 1 1 11 1 1則該操作應(yīng)該描述為:將原圖中一個(gè)像素的灰度值和它右下鄰近的8個(gè)像素的灰度值相加,然后將求得的平均值9(除以9)作為新圖中該像素的灰度值。如果模板為 2 , 1則表示將自身灰度值的2倍加下邊的元素灰度值作為新值,而 2 則表示將自身 1灰度值加上邊元素灰度值的2倍作為新灰度值。通常模板不允許移出邊界,所以處理后的圖像會(huì)比原圖小,例如:當(dāng)模板是 1 0 原圖灰度值矩陣是 1 1 1 1 1 0 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 時(shí),經(jīng)過(guò)模板操作后的圖像為 5 5 5 5 - 8 8 8 8 - 11 11 11 11 - - - - - -

40、 “-”表示邊界上無(wú)法進(jìn)行模板操作的點(diǎn),一般的做法是復(fù)制原圖的灰度值,不再進(jìn)行任何其他的處理。模板操作實(shí)現(xiàn)了一種領(lǐng)域運(yùn)算,即某個(gè)像素點(diǎn)的結(jié)果不僅和本像素灰度有關(guān),而且和其領(lǐng)域點(diǎn)的值有關(guān)。下面對(duì)平滑的用途和解決方法進(jìn)行詳細(xì)介紹。在圖像的采集過(guò)程中,由于各種因素的影響,圖像中往往會(huì)出現(xiàn)一些不規(guī)則的隨機(jī)噪聲,如數(shù)據(jù)在傳輸、存儲(chǔ)時(shí)發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會(huì)影響圖像的質(zhì)量。處理噪聲點(diǎn)的過(guò)程稱之為平滑,平滑可以降低圖像的視覺(jué)噪聲,同時(shí)除去圖像中的高頻部分后,那些本來(lái)不明顯的低頻成分更容易識(shí)別。而噪聲點(diǎn)一般是孤立的點(diǎn),噪聲點(diǎn)的像素灰度與它們的近鄰像素有顯著的區(qū)別,即灰度變化總在這附近有突變高頻。平滑可

41、用卷積來(lái)實(shí)現(xiàn),平滑的頻率截止點(diǎn)由卷積核的大小及卷積系數(shù)決定。用于平滑濾波的卷積核叫做低通過(guò)濾波器,低通過(guò)濾波器具有如下的特征:1卷積核的行、列數(shù)為奇數(shù),通常為33的矩陣;2卷積系數(shù)以中心點(diǎn)為中心對(duì)稱分布;3所有的卷積系數(shù)都為正數(shù);4距離中心較遠(yuǎn)的卷積系數(shù)的值較小或保持不變;5卷積后的結(jié)果不改變圖像的亮度。經(jīng)過(guò)卷積平滑后給隨后的水平投影、二值化提供了較好的圖像效果。水平投影的曲線顯得比較平滑,二值化后的圖像孤立點(diǎn)比較少。以下是幾個(gè)常用的卷積核:1/9 1/9 1/9 1/10 1/10 1/10 1/16 2/16 1/161/9 1/9 1/9 1/10 1/5 1/10 2/16 4/16

42、2/161/9 1/9 1/9 1/10 1/10 1/10 1/16 2/16 1/16L P1 LP2 LP3通常的處理是:將中心點(diǎn)周圍八個(gè)點(diǎn)的像素值乘于各自矩陣相應(yīng)的系數(shù)后相加得到一個(gè)值,然后將這個(gè)值乘上中心點(diǎn)的系數(shù),中心點(diǎn)的像素值賦為得到的最后值。一般來(lái)說(shuō),不同的噪聲有各自針對(duì)性的卷積算法。本文使用的卷積算法是高斯卷積核,亦即上面卷積核的LP3。高斯卷積是通過(guò)采樣2維高斯函數(shù)得到的。高斯平滑算法的優(yōu)點(diǎn)是平滑后圖像的失真少,算法更具備通用性,能去除不同的噪聲干擾。需要注意的是:在平滑處理時(shí),圖像邊界點(diǎn)無(wú)法處理,因此循環(huán)范圍應(yīng)設(shè)定在圖像邊界內(nèi)。(2) 具體實(shí)現(xiàn)高斯平滑功能知道高斯平滑原理之

43、后,可進(jìn)行編碼將其實(shí)現(xiàn): 編輯菜單IDR_MAINFRAM,在菜單“預(yù)處理”中添加一子菜單項(xiàng),命名為“高斯平滑”并將其ID設(shè)為ID_READY_Template。 在類CFaceDetectView中添加“高斯平滑”菜單項(xiàng)的事件處理程序,其代碼如下: /進(jìn)行模板操作 Template(tem ,3,3, xishu); Invalidate(TRUE); 其中tem是模板參數(shù),xishu是模板系數(shù);Template()函數(shù)是實(shí)現(xiàn)高斯平滑的主要函數(shù),其核心代碼是: for(m=i-(tem_h-1)/2);m=i+(tem_h-1)/2);m+) for(n=j-(tem_w-1)/2);n=j

44、+(tem_w-1)/2);n+) 注: 將以點(diǎn)(i,j)為中心,與模板大小相同的范圍內(nèi)的象素與模板對(duì)用位置的系數(shù)進(jìn)行相乘并線形疊加 sum+=Graymn* tem(m-i+(tem_h-1)/2)*tem_w+n-j+(tem_w-1)/2); 將結(jié)果乘上總的模板系數(shù) sum=(int)sum*xishu; 計(jì)算絕對(duì)值 sum = fabs(sum); 如果小于0,強(qiáng)制賦值為0 if(sum255) sum=255; HeightTemplateij = sum; 高斯平滑效果圖:見(jiàn)下圖 4-4 圖4-4 高斯平滑效果圖4、灰度均衡(1)算法思想灰度均衡也稱直方圖均衡,目的是通過(guò)點(diǎn)運(yùn)算使輸

45、入轉(zhuǎn)換為在每一灰度級(jí)上都有相同的像素點(diǎn)數(shù)的輸出圖像(即輸出的直方圖是平的)。這對(duì)于在進(jìn)行圖像比較或分割之前將圖像轉(zhuǎn)化為一級(jí)的格式是十分有效的。按照?qǐng)D像的概率密度函數(shù)(PDF,歸一化帶單位面積的直方圖)的定義:P(x) = * H(x)(式5)其中H(x)為直方圖,A0為圖像的面積,設(shè)轉(zhuǎn)換前圖像的概率密度函數(shù)為Pr(r),轉(zhuǎn)換后圖像的概率密度函數(shù)為Ps(S),轉(zhuǎn)換函數(shù)為s = f(r),由概率論知識(shí),我們可以得到:Ps(S) = Pr(r)* (式6)這樣,如果想使轉(zhuǎn)換后圖像的概率密度函數(shù)為1(即直方圖是平的)則必須滿足:Pr(r)= (式45)等式兩邊積分,得: S = f(r)= 0 rP2

46、(u)du =0 r H(u)du (式7)該轉(zhuǎn)換式被稱為圖像的累積分布函數(shù)上面的式是被歸一化后推導(dǎo)的對(duì)于沒(méi)有歸一化的情況,只要求以最大的灰度值(DMax,對(duì)于灰度圖就是255)即可,灰度均衡的轉(zhuǎn)換式為:DB = f (DA)= H(u)du (式1)對(duì)于離散圖像轉(zhuǎn)換式為:DB = f(DA)= (式8) 式中Hi為第i級(jí)灰度的像素個(gè)數(shù)。(2)編程實(shí)現(xiàn)在灰度均衡操作同樣不需要改變DIB的調(diào)色板和文件夾,只要把指向DIB像素起始位置的指針和DIB高度、寬度信息傳遞給子函數(shù)就可以完成灰度均衡變換工作,其核心代碼如下: *(lpData + lOffset)=state ; /顯示灰度均衡*(lpD

47、ata + lOffset+1)=state ;*(lpData + lOffset+2)=state ;(3)效果圖 圖 4-5 灰度均衡效果圖5、圖像對(duì)比度增強(qiáng)算法思想:在對(duì)圖像均衡直方圖處理以后,便可對(duì)圖像進(jìn)行對(duì)比度增強(qiáng),進(jìn)一步拉開(kāi)對(duì)比度。它通過(guò)對(duì)圖像的灰度值進(jìn)行統(tǒng)計(jì),對(duì)于比最小設(shè)定值小的則認(rèn)為是有關(guān)的信息,則將它作為黑色處理,比最大設(shè)定值大的則認(rèn)為是一些無(wú)關(guān)的信息,將它們?nèi)サ?,而處于兩者之間的,則進(jìn)行對(duì)比度增強(qiáng),將他們?cè)诳偟幕叶戎道锩娴谋壤鳛樾碌南袼匦畔⒈4嫫饋?lái)。這個(gè)工作的主要目的是將圖像的特征一步一步顯現(xiàn)出來(lái)。(2) 編碼實(shí)現(xiàn): 編輯菜單IDR_MAINFRAM,在菜單“預(yù)處理”中

48、添加一子菜單項(xiàng),命名為“實(shí)現(xiàn)圖像對(duì)比度增強(qiáng)”,并將其ID設(shè)為ID_READY_ContrastEnhance。 類CFaceDetectView中添加“實(shí)現(xiàn)圖像對(duì)比度增強(qiáng)”菜單項(xiàng)的事件處理程序,其代碼如下;lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);獲取圖像灰度增強(qiáng)函數(shù)int state=IncreaseContrast(ZFTkk1, 100); 顯示灰度增強(qiáng)后的圖像*(lpData + lOffset ) = state ; *(lpData + lOffset+1) = state ;*(lpData + lOffset+2) = s

49、tate ;其中IncreaseContras()函數(shù)是實(shí)現(xiàn)圖像對(duì)比度增強(qiáng)的關(guān)鍵函數(shù),該根據(jù)參數(shù)n來(lái)調(diào)節(jié)對(duì)比度,n越大,對(duì)比越強(qiáng)烈,其核心是:如果數(shù)據(jù)很小,設(shè)置為0if(pByte=Low)return 0;獲得中間數(shù)據(jù),并進(jìn)行對(duì)比增強(qiáng)處理else if (LowpByte)&(pByteHigh)return int(pByte-Low)/Grad);如果數(shù)據(jù)很大,設(shè)置為255elsereturn 255;效果圖圖4-6 對(duì)比度增強(qiáng)效果圖第三節(jié) 編程時(shí)的問(wèn)題解決1、光線補(bǔ)償 由于要改變每一個(gè)像素的亮度,開(kāi)始,我通過(guò)對(duì)數(shù)幅圖像使用一個(gè)固定的值進(jìn)行測(cè)試,得到的效果都滿理想,但是當(dāng)對(duì)更多的圖像處理

50、時(shí),該固定值就出現(xiàn)了明顯的不足,最后不得不采用全局統(tǒng)計(jì)的方法,才能得到比較理想的效果。 2、高斯平滑 高斯平滑用于消除圖片噪音,為了實(shí)現(xiàn)此功能,我們使用了模板操作,因此模板參數(shù)的選擇是最重要的。高斯平滑效果的好壞取決與模板參數(shù)。在編程的時(shí)候,試探性的進(jìn)行參數(shù)的選擇,然后進(jìn)行比較,看那組參數(shù)可以達(dá)到最好的效果。模板參數(shù)是 原先采用了 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 形式,但是,得到的效果卻是令人失望。 后來(lái)又用了 1/10 1/10 1/10 1/10 1/5 1/10 1/10 1/10 1/10 形式,但是,結(jié)果仍然是未能達(dá)到預(yù)期的效果。 直到最后采用

51、的 1/16 2/16 1/16 2/16 4/16 2/16 1/16 2/16 1/16 形式,才得到了比較合理的效果。3、 均衡直方圖 開(kāi)始時(shí),圖像的會(huì)度一直都處于很散的狀態(tài),而且圖像的特征不明顯,原本想經(jīng)過(guò)高斯平滑后進(jìn)行灰度變換,但是并未能成功。經(jīng)過(guò)了一翻苦戰(zhàn),最終找到均衡直方圖的辦法,經(jīng)過(guò)多次嘗試,效果一直處于比較理想的狀態(tài)。 第五章 結(jié)構(gòu)設(shè)計(jì)在本系統(tǒng)中,起至關(guān)重要的類列舉如下,并將它們的成員函數(shù)及其成員函數(shù)的功能和參數(shù)都一一簡(jiǎn)述:1、CFaceDetectView :該類是在編程的過(guò)程中自動(dòng)生成的。菜單項(xiàng)中的事件處理程序都是在該類對(duì)應(yīng)的CFaceDetectView.h文件和CFa

52、ceDetectView.cpp文件中聲明和實(shí)現(xiàn)的。表71列出了該類所封裝的成員函數(shù)及其功能: 表71 類 CfaceDetectView的成員函 數(shù)功 能IncreaseContrast ()增強(qiáng)圖像對(duì)比度FixeEyes ()眼睛定位FixeNose()鼻子定位FixeMouth ()嘴巴定位GetEyesParameter ()獲取眼睛參數(shù)GetPartParameter()獲取臉部特征GetmouthParameter ()獲取嘴巴參數(shù)Centerofgravity()獲取眼、鼻子、嘴巴的重心AverageDeviation ()獲取平均值的標(biāo)準(zhǔn)偏差Template()對(duì)圖像進(jìn)行模板操

53、作DrawCrossX ()畫十字標(biāo)記 各成員函數(shù)解析函數(shù)名稱 : IncreaseContrast參數(shù) : int pByte - 圖像的灰度值 int n - 用于調(diào)節(jié)對(duì)比度的參數(shù)返回值 : int - 新的灰度值說(shuō)明 : 該函數(shù)通過(guò)修圖像的灰度值來(lái)增強(qiáng)圖像的對(duì)比度函數(shù)名稱 : FixeEyes參數(shù) : 無(wú)返回值 : bool說(shuō)明 : 該函數(shù)判斷圖片中是否有人臉,并對(duì)人臉圖片進(jìn)行眼睛定位函數(shù)名稱 : FixeNose參數(shù) : 無(wú)返回值 : void 說(shuō)明 : 該函數(shù)是在眼睛定位之后的前提下進(jìn)行鼻子的定位函數(shù)名稱 : Fixeouth參數(shù) : 無(wú)返回值 : void 說(shuō)明 : 該函數(shù)是在眼睛

54、和鼻子都定位之后的前提下再進(jìn)行嘴巴的定位函數(shù)名稱 : GetEyesParameter參數(shù) : 無(wú)返回值 : void 說(shuō)明 : 該函數(shù)分別獲取了眼睛、鼻子、嘴巴的重心之后,再根據(jù)兩眼間的角度、鼻眼鼻所形成的角、鼻嘴鼻所形成的角、兩個(gè)眼睛中心距與臉寬的比例來(lái)獲取眼睛參數(shù)。函數(shù)名稱 : GetPartParameter參數(shù) : 無(wú)返回值 : void 說(shuō)明 : 該函數(shù)的功能是用于獲取整個(gè)臉部的特征函數(shù)名稱 : Centerofgravity參數(shù) : 無(wú)返回值 : void 說(shuō)明 : 該函數(shù)的功能是找出眼睛、鼻子、嘴巴的重心并用十字將它們標(biāo)記出來(lái)函數(shù)名稱 : AverageDeviation參數(shù)

55、: double NewData - 新獲取的數(shù)據(jù) double OldData - 以前的數(shù)據(jù)返回值 : double -平均值的標(biāo)準(zhǔn)偏差說(shuō)明 : 該函數(shù)用于計(jì)算平均值的標(biāo)準(zhǔn)偏差函數(shù)名稱 : Template參數(shù) : double * tem - 指向模板的指針 HDIB hDIB - 圖像的句柄 int tem_w - 模板的寬度 int tem_h - 模板的高度 double xishu - 模板的系數(shù) 返回值 : 無(wú)說(shuō)明 : 該函數(shù)對(duì)圖像進(jìn)行模板操作,但為了方便起見(jiàn),模板的高度和寬度都是用奇數(shù)。函數(shù)名稱 : DrawCrossX參數(shù) : int x int y 返回值 : 無(wú)說(shuō)明 :

56、 該函數(shù)對(duì)已經(jīng)做好預(yù)處理的人臉圖像中的特征(眼睛、鼻子、嘴巴)用十字標(biāo)記出來(lái)類ClikelyHood ,表7-2列出了該類所封裝的成員函數(shù)及其功能 表7-2 類ClikelyHood的成員函 數(shù)功 能CalLikeHood ()計(jì)算相似度CalBinary ()二值化圖像filter()實(shí)現(xiàn)濾波功能CalParameter ()訓(xùn)練參數(shù)各成員函數(shù)解析函數(shù)名稱 : CalLikeHood參數(shù) : 無(wú) 返回值 : 無(wú)說(shuō)明 : 該函數(shù)用于計(jì)算相似度函數(shù)名稱 : CalBinary參數(shù) : 無(wú) 返回值 : bool說(shuō)明 : 該函數(shù)用于將圖像二值化函數(shù)名稱 : filter參數(shù) : double* so

57、urce 返回值 : bool 說(shuō)明 : 該函數(shù)的功能是實(shí)現(xiàn)中值濾波函數(shù)名稱 : CalParameter參數(shù) : DirectPath Bmp文件路徑返回值 : bool 說(shuō)明 : 該函數(shù)的功能是對(duì)參數(shù)進(jìn)行訓(xùn)練3 類CFaceDetectDoc 表7-3 類CFaceDetectDoc的成員函 數(shù)功 能CopyBitMap ()拷貝位圖MakeBitMap ()生成新的位圖DrawCross ()畫十字形標(biāo)記Likehood ()計(jì)算相似度各成員函數(shù)解析函數(shù)名稱 : CopyBitMap參數(shù) : dest 目標(biāo)位圖指針 Source 源位圖指針 返回值 : bool說(shuō)明 : 該函數(shù)的功能是拷

58、貝位圖函數(shù)名稱 : MakeBitMap參數(shù) : 無(wú) 返回值 : 無(wú)說(shuō)明 : 該函數(shù)的功能是生成一個(gè)新的位圖函數(shù)名稱 : DrawCross參數(shù) : pDCCDC指針 point要畫的點(diǎn)的坐標(biāo) crColor標(biāo)記得顏色 返回值 : 無(wú)說(shuō)明 : 該函數(shù)用于畫十字形標(biāo)記函數(shù)名稱 : Likehood參數(shù) : int m_WndWidth 圖片高度 int m_WndHeight 圖片寬度 返回值 : 無(wú)說(shuō)明 : 該函數(shù)用于計(jì)算相似度4、類DIB 函 數(shù)功 能CopyHandle()拷貝內(nèi)存塊ReadDIBFile()讀取位圖文件信息LightingCompensate()進(jìn)行光線補(bǔ)償PixelOf

59、fset()修正像素值GetHeight()獲取DIB高度GetBiBitCount()獲取字節(jié)數(shù)表7-4 類Dib的成員各成員函數(shù)解析函數(shù)名稱 : CopyHandle參數(shù) : HANDLE hSrc 要拷貝的內(nèi)存區(qū)域 返回值 : HANDLE 拷貝后的新內(nèi)存區(qū)域說(shuō)明 : 該函數(shù)拷貝指定的內(nèi)存區(qū)域,返回復(fù)制后的新內(nèi)存區(qū)域,出錯(cuò)時(shí)返回NULL函數(shù)名稱 : ReadDIBFile 參數(shù) : HANDLE hFile 要讀取的文件hFile 返回值 : HDIB 成功返回DIB的句柄,否則返回NULL說(shuō)明 : 該函數(shù)拷貝指定的內(nèi)存區(qū)域,返回復(fù)制后的新內(nèi)存區(qū)域,出錯(cuò)時(shí)返回NULL函數(shù)名稱 : Pix

60、elOffset參數(shù) : int i,j WORD wBytePerLine 圖像每行的字節(jié)數(shù) 返回值 : long 圖像像素?cái)?shù)據(jù)的偏移說(shuō)明 : 該函數(shù)計(jì)算圖像像素?cái)?shù)據(jù)的偏移函數(shù)名稱 : GetHeight參數(shù) : 無(wú) 返回值 : long 圖片高度說(shuō)明 : 該函數(shù)返回圖像的高度函數(shù)名稱 : GetBitBitCount參數(shù) : 無(wú) 返回值 : int 圖片字節(jié)數(shù)說(shuō)明 : 該函數(shù)返回圖片字節(jié)數(shù)第六章 測(cè)試測(cè)試是為了找出程序的錯(cuò)誤。正如測(cè)試的規(guī)則所確定的一樣:測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程;好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;成功的測(cè)試是發(fā)現(xiàn)了迄今為止尚未發(fā)現(xiàn)的

溫馨提示

  • 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)論