趙宇
摘 要:人臉識(shí)別是模式識(shí)別和機(jī)器視覺(jué)領(lǐng)域非常重要的一個(gè)課題,具有重要的理論價(jià)值和廣泛的應(yīng)用場(chǎng)景。采用人臉識(shí)別演繹模式識(shí)別和機(jī)器視覺(jué)中一些重要的概念和算法,能夠使學(xué)生理論聯(lián)系實(shí)際,培養(yǎng)利用理論知識(shí)解決實(shí)際工程問(wèn)題的能力。利用 Matlab GUI 組件,設(shè)計(jì)實(shí)現(xiàn)了能夠與用戶(hù)交互人臉識(shí)別教學(xué)平臺(tái),其中包括圖像讀寫(xiě),預(yù)處理,特征提取和特征匹配等模塊,較好的展示了人臉識(shí)別的主要步驟,使學(xué)生直觀的掌握人臉識(shí)別的相關(guān)概念、理論和算法。
關(guān)鍵詞:人臉識(shí)別;Matlab;GUI
一、緒論
1.1 ?研究背景
在進(jìn)行人工智能的研究中,人們一直想做的事情就是讓機(jī)器具有像人類(lèi)一樣的思考能力,以及識(shí)別事物、處理事物的能力,因此從解剖學(xué)、心理學(xué)、行為感知學(xué)等各個(gè)角度來(lái)探求人類(lèi)的思維機(jī)制、以及感知事物、處理事物的機(jī)制,并努力將這些機(jī)制用于實(shí)踐,如各種智能機(jī)器人的研制。人臉圖像的機(jī)器識(shí)別研究就是在這種背景下興起的,因?yàn)槿藗儼l(fā)現(xiàn)許多對(duì)于人類(lèi)而言可以輕易做到的事情,而讓機(jī)器來(lái)實(shí)現(xiàn)卻很難,如人臉圖像的識(shí)別,語(yǔ)音識(shí)別,自然語(yǔ)言理解等。如果能夠開(kāi)發(fā)出具有像人類(lèi)一樣的機(jī)器識(shí)別機(jī)制,就能夠逐步地了解人類(lèi)是如何存儲(chǔ)信息,并進(jìn)行處理的,從而最終了解人類(lèi)的思維機(jī)制。
同時(shí),進(jìn)行人臉圖像識(shí)別研究也具有很大的使用價(jià)依。如同人的指紋一樣,人臉也具有唯一性,也可用來(lái)鑒別一個(gè)人的身份?,F(xiàn)在己有實(shí)用的計(jì)算機(jī)自動(dòng)指紋識(shí)別系統(tǒng)面世,并在安檢等部門(mén)得到應(yīng)用,但還沒(méi)有通用成熟的人臉自動(dòng)識(shí)別系統(tǒng)出現(xiàn)。人臉圖像的自動(dòng)識(shí)別系統(tǒng)較之指紋識(shí)別系統(tǒng)、DNA鑒定等更具方便性,因?yàn)樗臃奖?,可以不接觸目標(biāo)就進(jìn)行識(shí)別,從而開(kāi)發(fā)研究的實(shí)際意義更大。并且與指紋圖像不同的是,人臉圖像受很多因素的干擾:人臉表情的多樣性;以及外在的成像過(guò)程中的光照,圖像尺寸,旋轉(zhuǎn),姿勢(shì)變化等。使得同一個(gè)人,在不同的環(huán)境下拍攝所得到的人臉圖像不同,有時(shí)更會(huì)有很大的差別,給識(shí)別帶來(lái)很大難度。因此在各種干擾條件下實(shí)現(xiàn)人臉圖像的識(shí)別,也就更具有挑戰(zhàn)性。
國(guó)外對(duì)于人臉圖像識(shí)別的研究較早,現(xiàn)己有實(shí)用系統(tǒng)面世,只是對(duì)于成像條件要求較苛刻,應(yīng)用范圍也就較窄,國(guó)內(nèi)也有許多科研機(jī)構(gòu)從事這方而的研究,并己取得許多成果。
1.2 ?人臉圖像識(shí)別的應(yīng)用前景
人臉圖像識(shí)別除了具有重大的理論價(jià)值以及極富挑戰(zhàn)性外,還其有許多潛在的應(yīng)用前景,利用人臉圖像來(lái)進(jìn)行身份驗(yàn)證,可以不與目標(biāo)相接觸就取得樣本圖像,而其它的身份驗(yàn)證手段,如指紋、眼睛虹膜等必須通過(guò)與目標(biāo)接觸或相當(dāng)接近來(lái)取得樣木,在某些場(chǎng)合,這些識(shí)別手段就會(huì)有不便之處。
1.3 ?識(shí)別系統(tǒng)的構(gòu)成
人類(lèi)似乎具有“與生俱來(lái)”的人臉識(shí)別能力,賦予計(jì)算機(jī)同樣的能力是人類(lèi)的夢(mèng)想之一,這就是所謂的“人臉識(shí)別”系統(tǒng)。假設(shè)我們把照相機(jī)、攝像頭、掃描儀等看作計(jì)算機(jī)的“眼睛”,數(shù)字圖像可以看作計(jì)算機(jī)觀察到的“影像”,那么AFR賦予計(jì)算機(jī)根據(jù)其所“看到”的人臉圖片來(lái)判斷人物身份的能力。
1.3.1 ?人臉圖像的獲取
一般來(lái)說(shuō),圖像的獲取都是通過(guò)攝像頭攝取,但攝取的圖像可以是真人,也可以是人臉的圖片或者為了相對(duì)簡(jiǎn)單,可以不考慮通過(guò)攝像頭來(lái)攝取頭像,而是直接給定要識(shí)別的圖像。
1.3.2 ?人臉的檢測(cè)
人臉檢測(cè)的任務(wù)是判斷靜態(tài)圖像中是否存在人臉。若存在人臉,給出其在圖像中的坐標(biāo)位置、人臉區(qū)域大小等信息。而人臉跟蹤則需要進(jìn)一步輸出所檢測(cè)到的人臉位置、大小等狀態(tài)隨時(shí)間的連續(xù)變化情況。
1.3.3 ?特征提取
通過(guò)人臉特征點(diǎn)的檢測(cè)與標(biāo)定可以確定人臉圖像中顯著特征點(diǎn)的位置(如眼睛、眉毛、鼻子、嘴巴等器官),同時(shí)還可以得到這些器官及其面部輪廓的形狀信息的描述。
根據(jù)人臉特征點(diǎn)檢測(cè)與標(biāo)定的結(jié)果,通過(guò)某些運(yùn)算得到人臉特征的描述(這些特征包括:全局特征和局部特征,顯式特征和統(tǒng)計(jì)特征等)。
二、圖像處理的Matlab實(shí)現(xiàn)
圖像是人類(lèi)獲取信息、表達(dá)信息和傳遞信息的重要手段。利用計(jì)算機(jī)對(duì)圖像進(jìn)行去除噪聲、增強(qiáng)、復(fù)原、分割、提取特征等的理論、方法和技術(shù)稱(chēng)為數(shù)字圖像處理。數(shù)字圖像處理技術(shù)已經(jīng)成為信息科學(xué)、計(jì)算機(jī)科學(xué)、工程科學(xué)、地球科學(xué)等諸多方面的學(xué)者研究圖像的有效工具。數(shù)字圖像處理主要包括圖像變換、圖像增強(qiáng)、圖像編碼、圖像復(fù)原、圖像重建、圖像識(shí)別以及圖像理解等內(nèi)容。
2.1 ?圖像處理的基本操作
讀取和顯示圖像可以通過(guò)imread()和imshow()來(lái)實(shí)現(xiàn);圖像的輸出用imwrite()函數(shù)就可以很方便的把圖像輸出到硬盤(pán)上;另外還可以用imcrop()、imrisize()、imrotate()等來(lái)實(shí)現(xiàn)圖像的裁剪、縮放和旋轉(zhuǎn)等功能。
2.2 ?圖像類(lèi)型的轉(zhuǎn)換
Matlab支持多種圖像類(lèi)型,但在某些圖像操作中,對(duì)圖像的類(lèi)型有要求,所以要涉及到對(duì)圖像類(lèi)型進(jìn)行轉(zhuǎn)換。Matlab圖像處理工具箱為我們提供了不同圖像類(lèi)型相互轉(zhuǎn)換的大量函數(shù),如mat2gray()函數(shù)可以將矩陣轉(zhuǎn)換為灰度圖像,rgb2gray()轉(zhuǎn)換RGB圖像或顏色映像表為灰度圖像。在類(lèi)型轉(zhuǎn)換的時(shí)候,我們還經(jīng)常遇到數(shù)據(jù)類(lèi)型不匹配的情況,針對(duì)這種情況,Matlab工具箱中,也給我們提供了各種數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換函數(shù),如double()就是把數(shù)據(jù)轉(zhuǎn)換為雙精度類(lèi)型的函數(shù)。
2.3 ?圖像增強(qiáng)
圖像增強(qiáng)的目的是為了改善圖像的視覺(jué)效果,提高圖像的清晰度和工藝的適應(yīng)性,以及便于人與計(jì)算機(jī)的分析和處理,以滿(mǎn)足圖像復(fù)制或再現(xiàn)的要求。圖像增強(qiáng)的方法分為空域法和頻域法兩大類(lèi),空域法主要是對(duì)圖像中的各個(gè)像素點(diǎn)進(jìn)行操作;而頻域法是在圖像的某個(gè)變換域內(nèi)對(duì)整個(gè)圖像進(jìn)行操作,并修改變換后的系數(shù),如傅立葉變換、DCT變換等的系數(shù),然后再進(jìn)行反變換,便可得到處理后的圖像。
2.4 ?邊緣檢測(cè)
數(shù)字圖像的邊緣檢測(cè)是圖像分割、目標(biāo)區(qū)域識(shí)別、區(qū)域形狀提取等圖像分析領(lǐng)域十分重要的基礎(chǔ),也是圖像識(shí)別中提取圖像特征的一個(gè)重要屬性。邊緣檢測(cè)算子可以檢查每個(gè)像素的鄰域并對(duì)灰度變化率進(jìn)行量化,也包括對(duì)方向的確定,其中大多數(shù)是基于方向?qū)?shù)掩模求卷積的方法。常用的有Sobel算子,Prewitt算子,Roberts算子,Log算子等。Matlab工具箱中提供的edge()函數(shù)可以進(jìn)行邊緣檢測(cè),在其參數(shù)里面,可以根據(jù)需要選擇合適的算子及其參數(shù)。
(作者單位:河北大學(xué) 生命科學(xué)學(xué)院)