(1.江蘇海事職業(yè)技術(shù)學(xué)院信息工程系,江蘇 南京 211170;
2.南京理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210094)
動態(tài)人臉識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
(1.江蘇海事職業(yè)技術(shù)學(xué)院信息工程系,江蘇 南京 211170;
2.南京理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210094)
介紹了動態(tài)人臉圖像的識別問題,包括模塊結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)的實(shí)現(xiàn)等方面.首先,設(shè)計(jì)了圖像采集模塊,通過攝像頭在VC++環(huán)境下實(shí)現(xiàn)動態(tài)圖像的采集、捕捉、存儲等功能.其次,對人臉檢測與識別的實(shí)現(xiàn)過程和算法進(jìn)行了詳細(xì)的闡述.設(shè)計(jì)出的動態(tài)人臉識別系統(tǒng)時間復(fù)雜度比較低,占用較少的系統(tǒng)空間資源,實(shí)驗(yàn)結(jié)果具有很高的準(zhǔn)確率.
人臉識別;動態(tài)圖形;人臉錄入;特征提取
人臉識別技術(shù)近年來得到廣泛關(guān)注,是屬于人體生物認(rèn)證技術(shù)的一種[1],它是通過計(jì)算機(jī)技術(shù)來識別信息,為人類提供商業(yè)和法律服務(wù).當(dāng)前人臉識別方法有很多,如Fisher線性判別(Fisher Linear Discriminant,F(xiàn)LD)[2]、主 成分分析方法(Principal Component Analysis,PCA)、獨(dú)立成分分 析 (Independent Component Correlation Algorithm,ICA)等[3].這些傳統(tǒng)的特征提取和識別方法具有識別準(zhǔn)確率高、性能穩(wěn)定等優(yōu)點(diǎn),但是也有一些缺點(diǎn),諸如容易受到光照強(qiáng)弱、人臉姿態(tài)和表情等因素影響識別準(zhǔn)確率[4].
本系統(tǒng)的人臉檢測算法主要是差分圖的方法,并加以改進(jìn),改進(jìn)后的算法有著計(jì)算速度快、準(zhǔn)確率高等優(yōu)點(diǎn),并采用C/S架構(gòu)設(shè)計(jì),前臺主要包括圖像輸入、人臉檢測、特征提取和人臉識別模塊,這些模塊都是采用VC++6.0來實(shí)現(xiàn)的.后臺數(shù)據(jù)庫采用的是Access,里面共有三張表MANINFO、FACEINFO、EIGENFACES.人臉圖像、身份信息和特征值等一切數(shù)據(jù)都保存在這個數(shù)據(jù)庫中.以下主要從模塊結(jié)構(gòu)、系統(tǒng)結(jié)構(gòu)和系統(tǒng)的實(shí)現(xiàn)三個方面來介紹本系統(tǒng).
人臉識別系統(tǒng)主要包括兩大模塊:人臉錄入模塊和人臉識別模塊.人臉錄入模塊的功能是把檢測到的人臉圖像錄入到數(shù)據(jù)庫,在錄入的同時,還要讓系統(tǒng)管理員手工的輸入人臉的身份信息,如:姓名、年齡、地址等,在識別過程中,當(dāng)這張人臉被識別出來時,這些信息就會顯示出來.人臉識別就是對待識別的人臉圖像進(jìn)行特征提取并進(jìn)行識別,識別完畢后顯示識別結(jié)果.本課題實(shí)現(xiàn)的系統(tǒng)也包括了這兩個模塊,而且為了使系統(tǒng)更加具有模塊性,操作起來更加方便,在開發(fā)和設(shè)計(jì)系統(tǒng)時,就把人臉識別模塊分解成兩個模塊,一個是特征提取模塊,它主要做的就是對人臉圖像進(jìn)行特征提取,并把這些新特征值保存到數(shù)據(jù)庫中;另一個被分解出來的模塊是也叫人臉識別模塊,這個模塊主要是做狹義的人臉識別工作,即:識別圖像中的人臉,并顯示人臉的身份信息.
如圖1所示,這個系統(tǒng)還包括圖像輸入模塊和人臉檢測模塊.
圖1 系統(tǒng)的模塊圖Fig.1 System modules design
圖像輸入模塊就是對捕捉圖像的外設(shè)作實(shí)時數(shù)據(jù)檢測,當(dāng)檢測到有圖像的時候,就把檢測到的圖像傳入緩沖區(qū),并通知人臉檢測模塊,讓它對圖像進(jìn)行人臉檢測.人臉檢測模塊就是對緩沖區(qū)中的圖像進(jìn)行人臉檢測計(jì)算,來判斷這幅圖像中是否有人臉,如果有人臉就定位出人臉在圖像上區(qū)域的坐標(biāo).
這個系統(tǒng)的系統(tǒng)結(jié)構(gòu)如圖2所示.圖像輸入是系統(tǒng)啟動后最先被調(diào)用的模塊.因?yàn)檫@個系統(tǒng)處理的原圖像是基于USB口攝像頭的動態(tài)圖像——實(shí)時連續(xù)的多幀圖像,所以系統(tǒng)在圖像輸入部分使用了一個線程,這個線程的專職是檢測USB口上是否有圖像傳來,如果檢測到有,首先把圖像顯示在界面上,然后再喚起人臉檢測函數(shù)對圖像進(jìn)行檢測.當(dāng)人臉檢測函數(shù)檢測到人臉并定位出人臉在圖像上的坐標(biāo)時,就根據(jù)系統(tǒng)當(dāng)時的狀態(tài),來選擇下一步驟,如果系統(tǒng)在人臉錄入狀態(tài),就喚起人臉錄入函數(shù),如果系統(tǒng)在識別狀態(tài),喚起人臉識別函數(shù).在人臉錄入函數(shù)被執(zhí)行時,檢測到的人臉從圖像中被分割出來,連同手工輸入的身份信息都通過ODBC保存到數(shù)據(jù)庫中.當(dāng)人臉識別函數(shù)被啟動時,該函數(shù)就會通過特定的方法對待識別的人臉進(jìn)行特征提取,并與數(shù)據(jù)庫中人臉特征進(jìn)行匹配,找出匹配最好的一組,并顯示在界面上.特征提取是單獨(dú)的一塊,它和別的部分沒有太大的聯(lián)系,它計(jì)算的數(shù)據(jù)是從數(shù)據(jù)庫中提取,計(jì)算的結(jié)果也保存在數(shù)據(jù)庫中.
圖2 系統(tǒng)結(jié)構(gòu)圖Fig.2 System architecture design
攝像頭輸入的圖像被設(shè)置為30幀/幅,也就是說,從得到原始圖像到識別出人臉要在1/30 s中進(jìn)行完畢,這對于現(xiàn)在的計(jì)算機(jī)硬件資源和計(jì)算速度來說,是可以的,但是對日常生活來說是沒有必要的[5],因?yàn)椋趧討B(tài)圖像中,有人臉的圖像也只是它記錄著人臉在攝像頭前某一時刻的位置信息,如果人臉在攝像頭面前只是一閃而過,那么就沒有必要對它進(jìn)行識別.所以,系統(tǒng)在喚醒人臉識別或人臉錄入模塊之前,先對當(dāng)前連續(xù)多幀(系統(tǒng)設(shè)置為10)圖像進(jìn)行比較,如果在這些幀的圖像中都有人臉,而且人臉區(qū)域是否相對穩(wěn)定的,就啟動后面的步驟,否則,同樣什么也不做,返回系統(tǒng).
3.1 人臉檢測
系統(tǒng)無論在什么狀態(tài),都是以檢測人臉為前提,也就是說,檢測人臉是系統(tǒng)計(jì)算的前提,只有檢測到圖像上的人臉,系統(tǒng)才進(jìn)行以后的人臉錄入和識別工作.
3.1.1 差分圖像 攝像頭捕捉到的圖像是動態(tài)圖像,也就是每秒中連續(xù)的向計(jì)算機(jī)輸入k幀圖像(本系統(tǒng)k=30).連續(xù)的圖像記錄著圖像上物體的動態(tài)信息.這些信息可以使用圖像間的減法運(yùn)算來得到[6].在本系統(tǒng)中,如果在系統(tǒng)開始運(yùn)行的時候保存一張背景圖像,然后再用要預(yù)處理的圖像與背景圖像相減,就可以得到這幅圖像的信息.這個過程如圖3所示.
圖3 差分計(jì)算結(jié)果顯示Fig.3 The differential results show
圖3(a)是圖像的背景圖像,圖3(b)是圖像的差分圖像.從圖3(b)中,可以看出,人臉信息得到很好的保存,當(dāng)然,還不可以拿它直接去做存儲或識別,它還要經(jīng)過二值化、平滑、膨脹等算法環(huán)節(jié).
3.1.2 圖像的二值化、平滑、垂直投影和確定邊界 經(jīng)過上面的計(jì)算,得到的差分圖像256級,它的紅色顏色范圍還是從0到255,為了計(jì)算,必須給予二值化.
圖4(a)是一幅差分圖像二值化的結(jié)果,但是由于物體的反光和光線的變化,在二值化處理后,圖像上有很多的噪音點(diǎn),這些噪音點(diǎn)有的是孤立分布,有的是幾個聚集在一起,圍成一個面積不大的區(qū)域,它們共同的特點(diǎn)就是面積小、個數(shù)小.為此,本系統(tǒng)使用了一種區(qū)別與傳統(tǒng)方法的平滑方法,這種方法效果較好,實(shí)現(xiàn)也很方便.
這種方法的步驟是:從左到右逐行掃描,在每一列中找到連續(xù)的紅色象素點(diǎn),判斷它們的高度,高度小于一定權(quán)直的(系統(tǒng)取的是圖像高度的1/10)就應(yīng)為它是噪音點(diǎn)集合,從圖像上去除,否則保留.然后再從上到下,使用同樣的做法處理.圖4(b)就是一幅圖像經(jīng)過這種方法平滑的后的結(jié)果.
圖像經(jīng)過平滑后,還要對圖像的做一次垂直的投影.垂直投影的的算法步驟也比較簡單.從左到右從上到下掃描每一列,在每一列中找到第一個紅色象素點(diǎn),然后把這個找到的紅色象素點(diǎn)以下的所有象素點(diǎn)都置為紅色.圖4(c)是就是一幅圖像在經(jīng)過差分、二值化、平滑和垂直投影后得到的圖像結(jié)果.
當(dāng)圖像經(jīng)過垂直投影后,就可以很好的定位出圖像上人臉的區(qū)域.首先,以圖像的列為橫坐標(biāo),以每列中的紅色象素點(diǎn)的個數(shù)為縱坐標(biāo)作一條曲線,這條曲線的最大值對應(yīng)著人臉的中心位置,然后在這個最大值的兩側(cè)找到斜率絕對值最大的曲線點(diǎn),這兩個曲線上的點(diǎn)的橫坐標(biāo)是要找的人臉左右兩側(cè),人臉的左右邊界坐標(biāo)找到了,然后再找人臉上下邊界,再以圖像的行為縱坐標(biāo),以每一行中紅色象素點(diǎn)的個數(shù)為橫坐標(biāo),作一條曲線,這條曲線如圖4(d)所示.
圖4 處理后的結(jié)果和坐標(biāo)顯示Fig.4 Processed results and coordinates display
3.2 特征提取
特征提取的方法使用了數(shù)學(xué)里的降維思想.在判斷和分析特征向量的時候,將判斷N個特征向量減少為只要判斷T個模最大的(N>>T)特征向量.這種方法很有效果,系統(tǒng)的特征提取步驟分為7步:
(1)計(jì)算數(shù)據(jù)庫中全部人臉的平均臉.它的計(jì)算公式(1):
這里σ平均臉,M是圖像的個數(shù),F(xiàn)i是第i幅圖像,圖5(a)是系統(tǒng)求出的平均臉.
(2)把Fi(N×T 的矩陣)描述成一個1×NT的向量.
(5)計(jì)算ATA矩陣的特征向量,選擇其中模最大的K(K=7)個.
(6)計(jì)算AAT矩陣的K個特征向量,使用式(4):
其中,ui為AAT的向量,vi為五計(jì)算出來的K個特征值.圖5(b)~(h)是本系統(tǒng)的特征值(特征臉).
(7)求的數(shù)據(jù)庫中每幅圖像的K個特征值,并單位化.
圖5 得到的平均臉和特征臉Fig.5 Obtained average faces and features of the face
最后,求得圖像的特征值為double類型,每個圖像共K(系統(tǒng)中K=7)個特征值.
3.3 人臉識別
人臉識別的步驟可以分為以下4步:
(1)用待識別的人臉圖像減去數(shù)據(jù)庫中的平均臉,見公式(6).Qx=Fx-σ,其中Fx是待識別的人臉圖像,Qx為結(jié)果.
(2)計(jì)算待識別的圖像的特征值,如公式(7)所示.
(3)對eigen Vali進(jìn)行單位化.
(4)找到數(shù)據(jù)庫中,與eigen Val距離最小的一組特征值.這個特征值對應(yīng)的人臉,就認(rèn)為和待識別的人臉是同一個人,并顯示信息.
該人臉識別系統(tǒng)在VC6.0開發(fā)環(huán)境下進(jìn)行開發(fā),所開發(fā)的系統(tǒng)具有如下優(yōu)點(diǎn):(1)系統(tǒng)具有很強(qiáng)的魯棒性,能識別各類人群,即使在運(yùn)動中也有較準(zhǔn)確的識別性能.(2)即使戴眼鏡或者眼鏡反光,系統(tǒng)識別仍然具有很高的準(zhǔn)確率.(3)算法具有一定的抗臉側(cè)向的能力和抗臉傾斜識別能力(在人臉旋轉(zhuǎn)范圍-10°~10°內(nèi)).實(shí)踐證明,該方法具有較高的識別精度.設(shè)計(jì)的算法可行有效,有較強(qiáng)的應(yīng)用價值.
[1]莊哲民,張阿妞,李芬蘭.基于優(yōu)化的LDA算法人臉識別研究[J].電子與信息學(xué)報,2007,29(9):2047-2049.
[2]熊曉龍,鐘滿.概率統(tǒng)計(jì)應(yīng)用于手寫模式識別系統(tǒng)[J].武漢工程大學(xué)學(xué)報,2010,32(1):107-110.
[3]Li Zhifeng,Tang Xiaoou,et al.Nonparametric Discriminant Analysis for Face Recognition[J].Pattern Analysis Machine Intelligence,2009,31(4):755-761.
[4]陳伏兵,陳秀宏,張生亮,等.基于模塊2DPCA的人臉識別方法[J].中國圖像圖形學(xué)報,2006,11(4):580-585.
[5]楊帆,劉暢.基于D-S證據(jù)理論的多傳感器目標(biāo)識別應(yīng)用[J].武漢工程大學(xué)學(xué)報,2009,31(1):73-75.
[6]王偉,張明.基于對稱線性判別分析算法的人臉識別[J].計(jì)算機(jī)應(yīng)用,2009,29(12):3353-3356.
Design and implementation of dynamic faces recognition system
XIA Ping-ping1,LV Tai-zhi2
(1.Department of Information Engineering,Jiangsu Maritime Institute,Nanjing 211170,China;
2.College of Computer Science,Nanjing University of Science and Technology,Nanjing 210094,China)
In this paper,how to recognize motive human face images is described,including module design,system architecture design and system implementation and so on.First,the image acquisition modules are designed in this paper,and implemented the dynamic image acquisition,capture,storage and other functions by the camera in VC++ environment.Secondly,the implementation process of faces detection and recognition and the algorithms are described in detail.Dynamic face recognition system design complexity is relatively low,taking up less system space resources and the experimental results are of high accuracy.
Face recognition;dynamic graphics;face input;feature extraction
鄒禮平
TP391.41
A
10.3969/j.issn.1674-2869.2011.10.025
16742869(2011)10010704
20110919
江蘇省教育廳高??蒲谐晒a(chǎn)業(yè)化推進(jìn)項(xiàng)目資助(2011-28)
夏平平(1975),男,安徽馬鞍山人,高級工程師,碩士.研究方向:計(jì)算機(jī)應(yīng)用.