曹萍萍 劉升
摘 要:? 研究直接系統(tǒng)編程實(shí)現(xiàn)人臉識(shí)別、基于組件技術(shù)的人臉識(shí)別和基于云計(jì)算的人臉識(shí)別三種算法.直接系統(tǒng)編程算法可實(shí)現(xiàn)基于膚色的人臉檢測(cè);基于組件方式應(yīng)用OpenCV庫可實(shí)現(xiàn)人臉的檢測(cè)和特征比較;云計(jì)算方式可實(shí)現(xiàn)人臉識(shí)別、情感計(jì)算等功能.研究人員可根據(jù)設(shè)計(jì)要求選擇算法,滿足識(shí)別系統(tǒng)的需求.
關(guān)鍵詞: ?Android; 組件技術(shù); 云計(jì)算; 人臉識(shí)別; 方法對(duì)比
[中圖分類號(hào)] TP391.4?? [文獻(xiàn)標(biāo)志碼]A
Research on Face Recognition Methods under Android Platform
CAO Ping-ping, LIU Sheng
(College of Computer Science and Technology Huaibei Normal University, Huaibei 235000, China)
Abstract: Three kinds of face recognition algorithms, including direct system programming, component based technology and cloud computing, were discussed. The direct system programming algorithm can realize face detection based on skin color, and the OpenCV Library used for component mode can realize face detection and feature comparison, and cloud computing can realize face recognition and emotional computing. Researchers can select algorithms according to the design requirements to meet the requirements of the identification system.
Key words: Android; component technology; cloud computing; face recognition; method comparison
人臉識(shí)別是應(yīng)用圖像處理技術(shù)分析人臉圖像,提取人臉有效特征信息,確認(rèn)身份的一門技術(shù).該技術(shù)涉及數(shù)字圖像處理、機(jī)器視覺、模式匹配、認(rèn)知科學(xué)和情感科學(xué)等諸多學(xué)科,與身份識(shí)別以及人機(jī)交互技術(shù)研究領(lǐng)域有著密切聯(lián)系.[1]根據(jù)人臉表征,人臉識(shí)別方法可以分為三類:第一類,基于幾何特征的識(shí)別方法[2],該方法在抽取人臉圖像顯著特征的相對(duì)位置及其參數(shù)的基礎(chǔ)上進(jìn)行識(shí)別,算法存儲(chǔ)量小,對(duì)光照不敏感,對(duì)圖像的質(zhì)量要求很高,圖像中的特征點(diǎn)必須很精確,否則無法識(shí)別其中的人臉,所以該算法多用于其他識(shí)別方式的輔助識(shí)別.第二類,基于統(tǒng)計(jì)特征的識(shí)別方法[3],該方法利用統(tǒng)計(jì)原理,從多張人臉圖像中提取出人臉共有的一些規(guī)律,利用這些規(guī)律進(jìn)行人臉識(shí)別.這種方法直觀簡(jiǎn)單,物理意義明確,提取到的特征值不受類別數(shù)影響,但人臉圖像易受外界光照、表情等因素影響,導(dǎo)致識(shí)別的精確度下降.[4]第三類,基于連接機(jī)制的識(shí)別方法,該方法包含神經(jīng)網(wǎng)絡(luò)方法和彈性圖匹配方法.[5]目前神經(jīng)網(wǎng)絡(luò)方法得到研究人員普遍關(guān)注,因?yàn)樯窠?jīng)網(wǎng)絡(luò)法較其他方式有其特殊的優(yōu)勢(shì),避免了繁雜的人工提取特征工作,通過機(jī)器學(xué)習(xí)能夠獲得人臉識(shí)別規(guī)律和一些隱性表達(dá)的特征.缺點(diǎn)是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練耗時(shí)較多,收斂緩慢,容易陷入局部最小.[6]本文討論在Android平臺(tái)上高效實(shí)現(xiàn)人臉識(shí)別功能,使研究人員可以根據(jù)項(xiàng)目的要求,選擇不同的實(shí)現(xiàn)算法,使人臉識(shí)別技術(shù)更加適合移動(dòng)平臺(tái)對(duì)人臉識(shí)別的要求.
1 Android平臺(tái)實(shí)現(xiàn)人臉識(shí)別的方法
1.1 直接系統(tǒng)編程實(shí)現(xiàn)人臉識(shí)別
直接系統(tǒng)編程實(shí)現(xiàn)人臉識(shí)別是在Android開發(fā)環(huán)境下,不借助第三方控件,直接通過編程實(shí)現(xiàn)人臉識(shí)別的算法.這樣生成的應(yīng)用程序不需要安裝第三方運(yùn)行庫,能夠運(yùn)行在任何Android平臺(tái)下,運(yùn)行速度快.缺點(diǎn)是開發(fā)周期長(zhǎng),工作量大.以Android平臺(tái)上基于膚色檢測(cè)法的人臉識(shí)別為例,說明應(yīng)用直接系統(tǒng)編程實(shí)現(xiàn)人臉識(shí)別算法的過程.
基于膚色檢測(cè)法的人臉識(shí)別算法,通過識(shí)別人臉部位的顏色并加以處理,實(shí)現(xiàn)人臉位置的分割.光照是影響膚色檢測(cè)結(jié)果的最大因素,在膚色檢測(cè)前必須進(jìn)行光補(bǔ)償處理.本文應(yīng)用參考白光補(bǔ)償算法來消除光照影響,提高檢測(cè)率.
基于膚色檢測(cè)人臉識(shí)別方式的實(shí)現(xiàn)基于YCgCr色彩空間的顏色分割算法,將光補(bǔ)償處理后的圖片從RGB空間轉(zhuǎn)換到Y(jié)CgCr空間,轉(zhuǎn)換公式為:
YCgCr?? =?? 16128128?? +?? 65.481 128.533 24.966-81.085 112 -30.951112 -93.768 -18.214? .? RGB? .(1)
人臉圖像進(jìn)行灰度化處理后,人臉的傾斜度會(huì)影響模板匹配,因此要在模板匹配前對(duì)人臉傾斜度進(jìn)行計(jì)算,準(zhǔn)確定位人臉區(qū)域.人臉傾斜角度的計(jì)算公式為:
利用公式(2)得到的傾斜度,將圖像調(diào)整為正面端正圖像.對(duì)調(diào)整后的端正圖像進(jìn)行圖像置灰的均衡化,其指數(shù)變換式為:
g x,y =bef x,y -a .? (3)
直方圖均衡化過程中使用的參數(shù)分別為a,b,c;f( x,y)為灰度變換前的圖像; g(x,y) 為灰度變換后的圖像.均衡化處理后的圖像需要進(jìn)行腐蝕
與膨脹操作,消除類膚色的噪聲干擾,進(jìn)而實(shí)現(xiàn)更準(zhǔn)確的人臉檢測(cè).得到的檢測(cè)效果如圖1所示.
直接系統(tǒng)編程實(shí)現(xiàn)人臉識(shí)別方式工作量大,所有功能都需要編程實(shí)現(xiàn),對(duì)設(shè)備的依賴性小,能夠安裝到任何Android設(shè)備,適合于商用軟件的開發(fā).
1.2 ?基于組件技術(shù)的人臉識(shí)別
基于組件技術(shù)的人臉識(shí)別是在Android平臺(tái)上結(jié)合第三方組件,利用第三方組件提供的豐富視覺處理算法,實(shí)現(xiàn)人臉檢測(cè)和識(shí)別功能.這種方式實(shí)現(xiàn)簡(jiǎn)單,識(shí)別的準(zhǔn)確度依賴于第三方組件提供的功能.缺點(diǎn)是必須安裝第三方組件,運(yùn)行速度較慢,內(nèi)存占有量較大.以Android平臺(tái)結(jié)合OpenCV實(shí)現(xiàn)人臉識(shí)別為例,說明基于組件技術(shù)實(shí)現(xiàn)人臉識(shí)別的過程.
首先在工程中導(dǎo)入OpenCV運(yùn)行庫,加載OpenCV中自帶的Haar人臉檢測(cè)器,然后調(diào)用手機(jī)內(nèi)置攝像頭,獲取一幀靜態(tài)圖片或者動(dòng)態(tài)視頻流,導(dǎo)入Mat(基本圖像容器)中.再?gòu)幕卣{(diào)的Mat中檢測(cè)到符合人臉特征的數(shù)據(jù),截取人臉部分,使用cvtColor方法進(jìn)行人臉置灰,通過人臉的灰度化提高識(shí)別的準(zhǔn)確度.其次,將置灰后的人臉圖片進(jìn)行equalizeHist(直方圖均衡化)處理,提取并保存Mat容器中的人臉特征值.最后,調(diào)用多尺度檢測(cè)函數(shù)detectMultiScale實(shí)現(xiàn)人臉檢測(cè)功能.調(diào)用OpenCV實(shí)現(xiàn)人臉檢測(cè)后,需要使用JavaCV對(duì)Mat容器中存儲(chǔ)的特征值進(jìn)行對(duì)比,得到人臉的相似度,實(shí)現(xiàn)人臉識(shí)別功能.開發(fā)的應(yīng)用程序在客戶的Android平臺(tái)上發(fā)布時(shí),客戶機(jī)需要安裝OpenCV manger才能使用設(shè)計(jì)好的人臉識(shí)別程序.應(yīng)用第三方組件OpenCV設(shè)計(jì)人臉識(shí)別應(yīng)用程序的結(jié)果和流程如圖2所示.
基于組件的人臉識(shí)別方法由于使用第三方組件提供的算法,因此工作量較小.該方式依賴第三方組件提供的算法,開發(fā)周期短,應(yīng)用靈活,適合算法研究和一般應(yīng)用.
1.3 基于云計(jì)算的人臉識(shí)別
基于云計(jì)算的人臉識(shí)別使用遠(yuǎn)端服務(wù)器提供的圖像處理算法,實(shí)現(xiàn)人臉識(shí)別功能.由于這些算法技術(shù)成熟、功能完善,所以識(shí)別準(zhǔn)確率高,性能穩(wěn)定,操作簡(jiǎn)單.缺點(diǎn)是使用時(shí)必須通過互聯(lián)網(wǎng)接入云服務(wù)器,大多需要付費(fèi)使用,算法不開源.[9]以騰訊云提供的人臉識(shí)別體驗(yàn)版為例說明基于云計(jì)算的人臉識(shí)別過程. Android用戶聯(lián)網(wǎng)進(jìn)入https://cloud.tencent.com/act/event/ci_demo.html,上傳本地拍攝的照片,云計(jì)算系統(tǒng)將用戶傳送的本地人臉圖像送至服務(wù)器,進(jìn)行人臉識(shí)別.該云算法基于高維LBP,PCA,LDA 聯(lián)合貝葉斯和深度神經(jīng)網(wǎng)絡(luò)等全面算法,使得人臉識(shí)別準(zhǔn)確度更高.從圖3的檢測(cè)結(jié)果可以看到,除了人臉檢測(cè),還能實(shí)現(xiàn)情感計(jì)算、生理年齡測(cè)定等功能.
基于云計(jì)算的人臉識(shí)別系統(tǒng)可使用在門禁系統(tǒng)、攝像監(jiān)視系統(tǒng)等安防場(chǎng)景,也可以使用于學(xué)生考勤系統(tǒng),通過人臉識(shí)別進(jìn)行出席點(diǎn)名記錄等.
2 直接系統(tǒng)編程、基于組件技術(shù)和基于云計(jì)算的人臉檢測(cè)方式對(duì)比
直接系統(tǒng)編程、基于組件技術(shù)和基于云計(jì)算的人臉檢測(cè)結(jié)果對(duì)比見表1.直接系統(tǒng)編程通過顏色分割算法實(shí)現(xiàn)人臉區(qū)域膚色檢測(cè),相比其他方式,工作量仍然很大,如果實(shí)現(xiàn)完善的人臉識(shí)別功能,需要大量工作要做.該方式適合技術(shù)力量強(qiáng)大的公司做原創(chuàng)性開發(fā),程序運(yùn)行時(shí)占用內(nèi)存空間很小,不依賴第三方技術(shù)支持,具有很強(qiáng)的獨(dú)立性,可以應(yīng)用于任何場(chǎng)合.基于組件技術(shù)的人臉識(shí)別是應(yīng)用第三方組件提供的圖像處理方法定位和識(shí)別圖像中的人臉,依賴組件提供的功能,編程代碼量較少,占用內(nèi)存較大,可以在Andorid平臺(tái)
快速實(shí)現(xiàn)人臉檢測(cè),適合算法驗(yàn)證、科研、教學(xué)和一般應(yīng)用.基于云計(jì)算的人臉識(shí)別依賴于高科技公司提供的云端服務(wù),結(jié)果精確,幾乎不占用內(nèi)存.但云服務(wù)模式的人臉識(shí)別并不開源,無法獲取源碼學(xué)習(xí)研究.
3 總結(jié)
探討了Android平臺(tái)實(shí)現(xiàn)人臉識(shí)別的三種方式,實(shí)現(xiàn)了基于膚色檢測(cè)的人臉檢測(cè)和基于OpenCV的人臉檢測(cè)和識(shí)別.直接編程方法若想實(shí)現(xiàn)完善的人臉識(shí)別,需要專業(yè)開發(fā)人員花費(fèi)大量時(shí)間編程實(shí)現(xiàn),需反復(fù)調(diào)試才能完善人臉識(shí)別功能;應(yīng)用第三方組件方法借助第三方組件中已提供的人臉檢測(cè)、分割、灰度化等接口,只需直接調(diào)用組件內(nèi)的函數(shù)即可完成人臉識(shí)別功能;云計(jì)算方法提供的人臉識(shí)別算法應(yīng)用了先進(jìn)的機(jī)器學(xué)習(xí)技術(shù),因此功能強(qiáng)大,可滿足任何人臉識(shí)別的要求,在打擊犯罪、考勤、加密等領(lǐng)域得到廣泛應(yīng)用,但需要聯(lián)網(wǎng)和付費(fèi)使用.研究人員可根據(jù)人臉識(shí)別的目的和要求,選擇具體的實(shí)現(xiàn)方式.
參考文獻(xiàn)
[1] 劉永信,李琳莉,巴雅日?qǐng)D.人臉識(shí)別方法綜述[J].內(nèi)蒙古大學(xué)學(xué)報(bào):自然科學(xué)版,2009,40(4):493-498.
[2] 張淑軍,王高峰,石峰.基于AAM提取幾何特征的人臉識(shí)別算法[J].系統(tǒng)仿真學(xué)報(bào),2013,25(10):2374-2380 .
[3] 劉黨輝,沈蘭蓀, Kin-Man Lam.人臉識(shí)別研究進(jìn)展[J]. 電路與系統(tǒng)學(xué)報(bào), 2004, 9(1):85-94.
[4] Phillips P J, Moon H, Rizvi S, et al. The FERET evaluation methodology for face-recognition algorithms[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000, 22(10):1090-1104.
[5] 李敬德,康維新.基于信息熵和BP神經(jīng)網(wǎng)絡(luò)的信號(hào)奇異點(diǎn)智能檢測(cè)[J].牡丹江師范學(xué)院學(xué)報(bào):自然科學(xué)版,2017(4):1-5.
[6] 周杰,盧春雨,張長(zhǎng)水,等.人臉自動(dòng)識(shí)別方法綜述[J].電子學(xué)報(bào),2000,28(4):102-106.