謝子瓊 周璟瑜 林凡強
摘要:現(xiàn)有的基于BP神經(jīng)網(wǎng)絡(luò)或LBP人臉識別算法過于復(fù)雜,因而有實現(xiàn)困難、對硬件平臺要求高等的問題,該文從圖像處理的角度出發(fā),提出了對24位彩圖進(jìn)行人臉識別的算法,主要用到的圖像處理技術(shù)有光線補償、高斯平滑、相似度計算和二值化。在進(jìn)行光線補償?shù)耐瑫r采用高斯平滑來消除圖像的噪聲,采用二值化對局部區(qū)域取閾值方法,通過垂直直方圖與水平直方圖標(biāo)記人臉區(qū)域,根據(jù)眼睛的對稱性判斷人臉,從而進(jìn)行定位、提取特征值和識別等操作。經(jīng)測試,基于圖像處理的人臉識別可以達(dá)到較好的效果。
關(guān)鍵詞:圖像處理,光線補償,高斯平滑,相似度計算,人臉識別
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)03-0207-02
當(dāng)代社會下個人隱私的信息安全急于得到有效的保護(hù),人們期望一種更加安全、更加方便的保護(hù)措施。諸如鑰匙和密碼等傳統(tǒng)的措施存在很大的漏洞,因而越來越多的人意識到這樣的保護(hù)方法并不是非常安全。這些年來,人臉識別技術(shù)的研究一直在持續(xù)中的進(jìn)步,這項技術(shù)正在由實驗室邁向?qū)嶋H生活,并且在門禁考勤和視頻監(jiān)控等通關(guān)系統(tǒng)中發(fā)揮著作用。相比于語音識別、虹膜識別等其他生物識別技術(shù),人臉識別的好處是不易被仿造、不需皮膚碰觸,以及采集設(shè)備低廉。但是基于BP神經(jīng)網(wǎng)絡(luò)或PCA 技術(shù)的人臉識別系統(tǒng)由于算法復(fù)雜,導(dǎo)致成本貴、體積大、功耗高,這些缺點使這項技術(shù)的應(yīng)用平臺受到了極大的限制。
所以我們考慮從圖像處理角度入手,從攝像頭中獲取人臉圖像然后進(jìn)行處理,以便提高定位和識別的準(zhǔn)確率。本系統(tǒng)的圖像預(yù)處理模塊扮演著重要的角色,圖像處理的手段直接影響定位和識別。
1 人臉識別技術(shù)及相關(guān)算法
首先我們要知道什么是人臉識別。總體上看人臉識別的功能應(yīng)分為兩類:人臉檢測以及人臉識別。人臉檢測是指檢測一幅靜態(tài)圖像或者視頻一幀,從中判斷是否包含人臉,確定包含則計算人臉的位置和大小;人臉識別是指識別或判斷檢測出的對象。目前這兩部分技術(shù)的算法都有各自的優(yōu)缺點,可大致分為下面幾個方法: 1)人臉檢測方面,主要是基于 Adaboost算法人臉檢測算法,基于支持向量機(SVM)人臉檢測算法以及基于神經(jīng)網(wǎng)絡(luò)的人臉檢測算法;2)對人臉特征進(jìn)行判斷與提取的主要方法是基于人臉幾何特征的特征提取方法,以及基于主成分特征(PCA)特征提取方法,還有2D和3D形變模型方法等;3)線性降維方法有PCA和LDA(Linear Discriminate Analysis) 等。針對人臉識別,國內(nèi)外的專家學(xué)者們已進(jìn)行了長久的探索,但在實際應(yīng)用過程中算法深受應(yīng)用環(huán)境的影響,因此可以廣泛通用的人臉識別算法并不存在。
2 常用圖像處理技術(shù)
常用的圖像處理方法有光線補償、高斯平滑、相似度計算和邊緣檢測法等,可以利用這些圖像處理的算法實現(xiàn)人臉識別。
1)光線補償:不同光線的會影響攝像頭采集到的圖像,我們只需要對亮度進(jìn)行適度調(diào)整,這就是對圖像進(jìn)行光線補償。
2)高斯平滑:由于在保存圖像時不能完整的保存圖像的全部內(nèi)容,存儲時會導(dǎo)致數(shù)據(jù)的缺失,為了解決這個問題,我們通過高斯平滑來消除噪聲,保證了圖像的完整性。
3)相似度計算:圖像相似度主要對于兩幅圖像進(jìn)行評估,看他們的是不是有某些地方相似。比如有圖像A和圖像B,分別計算兩幅圖像的直方圖,然后計算兩個直方圖的歸一化相關(guān)系數(shù)(巴氏距離,直方圖相交距離)等。根據(jù)數(shù)學(xué)上計算向量之間的差異來估計圖像相似程度,這就是圖像的均衡直方圖,其能夠很好地歸一化。那么兩幅分辨率不同的圖像可以直接通過計算直方圖來計算相似度很方便,計算量也是比較小的。
4)二值化:圖像的二值化就是將像素點的灰度值根據(jù)闕值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑和白的視覺效果。
5)邊緣檢測:目的是標(biāo)識數(shù)字圖像中亮度變化明顯的點。通過顯著變化反映圖像中的圖形變化。
3 圖像處理在人臉識別算法中的應(yīng)用
根據(jù)人的器官構(gòu)造出來的生物面部特征、再根據(jù)面部特征灰度分布的峰谷和頻率特性粗略估計出面部特征中最為明顯的特征,比如眼睛、鼻子、嘴巴,通過這些明顯的面部特征,將人臉大致的位置得以確定。以此為基礎(chǔ)給出初始參數(shù),從而大幅提高算法的速度和精度。然后將處理后的圖片進(jìn)行人臉定位,首先把明顯的面部特征如眼睛、鼻子、嘴巴標(biāo)記出來,以便進(jìn)行跟其他圖片作對比。最后將從圖片中提取不同的特征值和后臺數(shù)據(jù)庫中的值一一作比較,知道得到識別結(jié)果。
1)光線補償 :將整個圖像中的所有像素的亮度從高到低進(jìn)行排列,取前5%的像素,然后線性放大,使這些像素的平均亮度達(dá)到255。實際上就是調(diào)整圖片像素的RGB值。
2)圖像灰度化:圖像灰度化將有顏色的圖片經(jīng)過彩色轉(zhuǎn)換成灰度、灰度比例變換、灰度線性變換、灰度線性截斷、灰度取反一系列算法后變成灰色。
3)高斯平滑:由于不規(guī)則的隨機噪聲會影響圖像的質(zhì)量,因此將圖像進(jìn)行高斯平滑來消除噪聲。
4)相似度計算:相似度計算是一種維度剝削,計算集合間的相似程度,簡單說就是把圖像切割分區(qū)。然后通過圖像的直方圖表示圖片的曝光程度,垂直直方圖從上到下代表圖片從上到下的黑白程度,水平直方圖類似。
5)二值化:是將采集的圖像首先進(jìn)行多層次灰度圖像處理后變成二值圖像,再通過將圖像上的像素點的灰度值根據(jù)闕值設(shè)置為0或255,將整個圖像呈現(xiàn)出明顯的黑和白的視覺效果。
4 系統(tǒng)總體設(shè)計
應(yīng)用程序的總體結(jié)構(gòu)設(shè)計流程圖如圖1所示:
圖1 系統(tǒng)設(shè)計圖
人臉定位是將典型的臉部特征(眼睛,鼻尖,嘴等)標(biāo)記出來,眼睛是面部特征中最為明顯的一個特征,其具有對稱性,鼻子是在兩只眼睛正中間的下方,而嘴巴又在鼻子下面,所以我們只需要把眼睛標(biāo)記好,鼻子和嘴巴也就比較好標(biāo)記了。
5 軟件結(jié)構(gòu)設(shè)計
CFaceDetectView :該類是在編程的過程中自動生成的。菜單項中的事件處理程序都是在該類對應(yīng)的CFaceDetectView.h文件和CFaceDetectView.cpp文件中聲明和實現(xiàn)的。
光線補償功能實質(zhì)上是用上段代碼中的LightingCompensate()函數(shù)來進(jìn)行實現(xiàn)。函數(shù)LightingCompensate()是類DIB的一個成員函數(shù)。
編輯菜單IDR_MAINFRAM,先在其中添加一菜單項,將其命名為”圖像灰度化”,并將其ID號設(shè)為ID_READY_SCALE, 對應(yīng)文件FaceDetectView.Cpp中的函數(shù)ReadyLightingconpensate()實現(xiàn)。其中l(wèi)pData是圖片數(shù)據(jù)區(qū),loffset是圖片像素的偏移,gray 是圖像的灰度值。
6 測試
用幾張24位的彩圖逐一測試,看處理后可否達(dá)達(dá)到效果,對圖像做光線補償,檢測所測圖片的亮度是否變強。首先對圖像做高斯平滑,檢測高斯平滑得到的效果和預(yù)期的效果差別是不是很大,檢測含有人臉的圖片看人臉面部特征顯現(xiàn)的是否明顯,如果差距太大我們則選用其他的模板參數(shù),再進(jìn)行檢測,直到效果理想。
達(dá)到測試要求之后,再將圖片通過光線補償、圖像灰度化、高斯平滑等的算法,先對圖片整體的像素點的亮度進(jìn)行調(diào)整,再將圖片轉(zhuǎn)化為灰色照片,最后消除噪聲提高圖像質(zhì)量,以便更明顯地把人的面部特征顯現(xiàn)出來
7 總結(jié)
在人臉識別中,眼睛是人面部特征中最為關(guān)鍵的部分,首先通過眼睛的定位,判斷是否是存在人臉,所以眼睛的定位是人臉識別的關(guān)鍵。利用現(xiàn)有的區(qū)域增長的眼睛定位技術(shù),根據(jù)眼睛在面部特征的關(guān)鍵性進(jìn)行人臉定位,首先由于眼睛在人臉上是對稱的,所以我們利用眼睛在面部上的這一特點,利用不同的灰度谷區(qū)來確定兩只眼睛的位置,確定人臉的大致框架,再利用區(qū)域增長的搜索策略,在通過人臉眼睛定位出來的人臉框架中尋找鼻子的位置,因為鼻子就在兩只眼睛的正下方,所以比較好定位,然后再定義兩個初始搜索矩形,分別向左右兩眼所處的大致位置生長。經(jīng)過多次試驗證明,本算法無論對臉大臉小,還是對光照的變化,都有較強的分辨識別能力,但是缺點是在光線很暗的情況下,導(dǎo)致眼睛和面部出現(xiàn)的灰度差不是很大的情況下,會出現(xiàn)定位不準(zhǔn),照片上的人臉太過于側(cè)面也會不準(zhǔn)確。
參考文獻(xiàn):
[1] 劉平英,蔡程飛.基于PLC的電子時鐘設(shè)計與制作[J].中國科技信息,2014(14).
[2] 萬軍華,瑞通.基于VHDL的多功能數(shù)字鬧鐘設(shè)計[J].湖南理工學(xué)院學(xué)報,2011(24).
[3] 尤曉明.基于ZigBee的智能家居系統(tǒng)的研究[D].西安: 西安電子科技大學(xué),2014.
[4] 王智飛.低分辨率人臉識別算法研究[D]. 北京:北京交通大學(xué),2013.
[5] 陳江峰.線性圖嵌入算法及其應(yīng)用[D]. 北京:北京交通大學(xué),2012.
[6] 安高云.復(fù)雜條件人臉識別中若干關(guān)鍵問題的研究[D].北京:北京交通大學(xué),2009.
[7] 山世光.人臉識別中若干關(guān)鍵問題的研究[D]. 北京:中國科學(xué)院研究生院,2004.
[8] 嚴(yán)云洋,郭志波,陳伏兵,等.融合多尺度多特征的人臉識別方法[J].南京理工大學(xué)學(xué)報:自然科學(xué)版,2009(1).
[9] 方蔚濤,馬鵬,成正斌,等.二維投影非負(fù)矩陣分解算法及其在人臉識別中的應(yīng)用[J].自動化學(xué)報,2012(9).
[10] 胡正平,宋淑芬.基于類別相關(guān)近鄰子空間的最大似然稀疏表示魯棒圖像識別算法[J].自動化學(xué)報,2012(9).
[11] 耿艷香,孫云山,謝靖鵬,等.混沌蟻群算法在圖像邊緣檢測中的應(yīng)用[J].計算機工程與應(yīng)用,2015(12).
[12] 黃飛,譚守標(biāo).基于改進(jìn)主動表觀模型算法的人臉特征定位[J].計算機工程與應(yīng)用,2014(5).
[13] 祝秀萍,吳學(xué)毅,劉文峰.人臉識別綜述與展望[J].計算機與信息技術(shù),2008(4),
[14] 李耀東,崔霞,肖柏華, 等.自動人臉識別技術(shù)綜述[J].計算機科學(xué),2002(12).
[15] 蔡體健,樊曉平,劉遵雄.基于稀疏表示的高噪聲人臉識別及算法優(yōu)化[J].計算機應(yīng)用,2012(8).