發(fā)布時間:2019-11-23所屬分類:計算機(jī)職稱論文瀏覽:1次
摘 要: 摘要:研究直接系統(tǒng)編程實現(xiàn)人臉識別、基于組件技術(shù)的人臉識別和基于云計算的人臉識別三種算法.直接系統(tǒng)編程算法可實現(xiàn)基于膚色的人臉檢測;基于組件方式應(yīng)用OpenCV庫可實現(xiàn)人臉的檢測和特征比較;云計算方式可實現(xiàn)人臉識別、情感計算等功能.研究人員可根據(jù)設(shè)
摘要:研究直接系統(tǒng)編程實現(xiàn)人臉識別、基于組件技術(shù)的人臉識別和基于云計算的人臉識別三種算法.直接系統(tǒng)編程算法可實現(xiàn)基于膚色的人臉檢測;基于組件方式應(yīng)用OpenCV庫可實現(xiàn)人臉的檢測和特征比較;云計算方式可實現(xiàn)人臉識別、情感計算等功能.研究人員可根據(jù)設(shè)計要求選擇算法,滿足識別系統(tǒng)的需求.
關(guān)鍵詞:Android;組件技術(shù);云計算;人臉識別;方法對比
人臉識別是應(yīng)用圖像處理技術(shù)分析人臉圖像,提取人臉有效特征信息,確認(rèn)身份的一門技術(shù).該技術(shù)涉及數(shù)字圖像處理、機(jī)器視覺、模式匹配、認(rèn)知科學(xué)和情感科學(xué)等諸多學(xué)科,與身份識別以及人機(jī)交互技術(shù)研究領(lǐng)域有著密切聯(lián)系.[1]根據(jù)人臉表征,人臉識別方法可以分為三類:第一類,基于幾何特征的識別方法[2],該方法在抽取人臉圖像顯著特征的相對位置及其參數(shù)的基礎(chǔ)上進(jìn)行識別,算法存儲量小,對光照不敏感,對圖像的質(zhì)量要求很高,圖像中的特征點必須很精確,否則無法識別其中的人臉,所以該算法多用于其他識別方式的輔助識別.第二類,基于統(tǒng)計特征的識別方法[3],該方法利用統(tǒng)計原理,從多張人臉圖像中提取出人臉共有的一些規(guī)律,利用這些規(guī)律進(jìn)行人臉識別.這種方法直觀簡單,物理意義明確,提取到的特征值不受類別數(shù)影響,但人臉圖像易受外界光照、表情等因素影響,導(dǎo)致識別的精確度下降.[4]第三類,基于連接機(jī)制的識別方法,該方法包含神經(jīng)網(wǎng)絡(luò)方法和彈性圖匹配方法.[5]目前神經(jīng)網(wǎng)絡(luò)方法得到研究人員普遍關(guān)注,因為神經(jīng)網(wǎng)絡(luò)法較其他方式有其特殊的優(yōu)勢,避免了繁雜的人工提取特征工作,通過機(jī)器學(xué)習(xí)能夠獲得人臉識別規(guī)律和一些隱性表達(dá)的特征.缺點是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練耗時較多,收斂緩慢,容易陷入局部最小.[6]本文討論在Android平臺上高效實現(xiàn)人臉識別功能,使研究人員可以根據(jù)項目的要求,選擇不同的實現(xiàn)算法,使人臉識別技術(shù)更加適合移動平臺對人臉識別的要求.
1Android平臺實現(xiàn)人臉識別的方法
1.1直接系統(tǒng)編程實現(xiàn)人臉識別
直接系統(tǒng)編程實現(xiàn)人臉識別是在Android開發(fā)環(huán)境下,不借助第三方控件,直接通過編程實現(xiàn)人臉識別的算法.這樣生成的應(yīng)用程序不需要安裝第三方運行庫,能夠運行在任何Android平臺下,運行速度快.缺點是開發(fā)周期長,工作量大.以Android平臺上基于膚色檢測法的人臉識別為例,說明應(yīng)用直接系統(tǒng)編程實現(xiàn)人臉識別算法的過程.
基于膚色檢測法的人臉識別算法,通過識別人臉部位的顏色并加以處理,實現(xiàn)人臉位置的分割.光照是影響膚色檢測結(jié)果的最大因素,在膚色檢測前必須進(jìn)行光補(bǔ)償處理.本文應(yīng)用參考白光補(bǔ)償算法來消除光照影響,提高檢測率.
基于膚色檢測人臉識別方式的實現(xiàn)基于YCgCr色彩空間的顏色分割算法,將光補(bǔ)償處理后的圖片從RGB空間轉(zhuǎn)換到Y(jié)CgCr空間,轉(zhuǎn)換公式為:
人臉圖像進(jìn)行灰度化處理后,人臉的傾斜度會影響模板匹配,因此要在模板匹配前對人臉傾斜度進(jìn)行計算,準(zhǔn)確定位人臉區(qū)域.人臉傾斜角度的計算公式為:
利用公式(2)得到的傾斜度,將圖像調(diào)整為正面端正圖像.對調(diào)整后的端正圖像進(jìn)行圖像置灰的均衡化,其指數(shù)變換式為:
直方圖均衡化過程中使用的參數(shù)分別為a,b,c;f(x,y)為灰度變換前的圖像;g(x,y)為灰度變換后的圖像.均衡化處理后的圖像需要進(jìn)行腐蝕與膨脹操作,消除類膚色的噪聲干擾,進(jìn)而實現(xiàn)更準(zhǔn)確的人臉檢測.得到的檢測效果如圖1所示.
直接系統(tǒng)編程實現(xiàn)人臉識別方式工作量大,所有功能都需要編程實現(xiàn),對設(shè)備的依賴性小,能夠安裝到任何Android設(shè)備,適合于商用軟件的開發(fā).
1.2基于組件技術(shù)的人臉識別
基于組件技術(shù)的人臉識別是在Android平臺上結(jié)合第三方組件,利用第三方組件提供的豐富視覺處理算法,實現(xiàn)人臉檢測和識別功能.這種方式實現(xiàn)簡單,識別的準(zhǔn)確度依賴于第三方組件提供的功能.缺點是必須安裝第三方組件,運行速度較慢,內(nèi)存占有量較大.以Android平臺結(jié)合OpenCV實現(xiàn)人臉識別為例,說明基于組件技術(shù)實現(xiàn)人臉識別的過程.
首先在工程中導(dǎo)入OpenCV運行庫,加載OpenCV中自帶的Haar人臉檢測器,然后調(diào)用手機(jī)內(nèi)置攝像頭,獲取一幀靜態(tài)圖片或者動態(tài)視頻流,導(dǎo)入Mat(基本圖像容器)中.再從回調(diào)的Mat中檢測到符合人臉特征的數(shù)據(jù),截取人臉部分,使用cvtColor方法進(jìn)行人臉置灰,通過人臉的灰度化提高識別的準(zhǔn)確度.其次,將置灰后的人臉圖片進(jìn)行equalizeHist(直方圖均衡化)處理,提取并保存Mat容器中的人臉特征值.最后,調(diào)用多尺度檢測函數(shù)detectMultiScale實現(xiàn)人臉檢測功能.調(diào)用OpenCV實現(xiàn)人臉檢測后,需要使用Ja-vaCV對Mat容器中存儲的特征值進(jìn)行對比,得到人臉的相似度,實現(xiàn)人臉識別功能.開發(fā)的應(yīng)用程序在客戶的Android平臺上發(fā)布時,客戶機(jī)需要安裝OpenCVmanger才能使用設(shè)計好的人臉識別程序.應(yīng)用第三方組件OpenCV設(shè)計人臉識別應(yīng)用程序的結(jié)果和流程如圖2所示.
基于組件的人臉識別方法由于使用第三方組件提供的算法,因此工作量較小.該方式依賴第三方組件提供的算法,開發(fā)周期短,應(yīng)用靈活,適合算法研究和一般應(yīng)用.
1.3基于云計算的人臉識別
基于云計算的人臉識別使用遠(yuǎn)端服務(wù)器提供的圖像處理算法,實現(xiàn)人臉識別功能.由于這些算法技術(shù)成熟、功能完善,所以識別準(zhǔn)確率高,性能穩(wěn)定,操作簡單.缺點是使用時必須通過互聯(lián)網(wǎng)接入云服務(wù)器,大多需要付費使用,算法不開源.[9]以騰訊云提供的人臉識別體驗版為例說明基于云計算的人臉識別過程.Android用戶聯(lián)網(wǎng)進(jìn)入ht-tps://cloud.tencent.com/act/event/ci_demo.ht-ml,上傳本地拍攝的照片,云計算系統(tǒng)將用戶傳送的本地人臉圖像送至服務(wù)器,進(jìn)行人臉識別.該云算法基于高維LBP,PCA,LDA聯(lián)合貝葉斯和深度神經(jīng)網(wǎng)絡(luò)等全面算法,使得人臉識別準(zhǔn)確度更高.從圖3的檢測結(jié)果可以看到,除了人臉檢測,還能實現(xiàn)情感計算、生理年齡測定等功能.
基于云計算的人臉識別系統(tǒng)可使用在門禁系統(tǒng)、攝像監(jiān)視系統(tǒng)等安防場景,也可以使用于學(xué)生考勤系統(tǒng),通過人臉識別進(jìn)行出席點名記錄等.
2直接系統(tǒng)編程、基于組件技術(shù)和基于云計算的人臉檢測方式對比
直接系統(tǒng)編程、基于組件技術(shù)和基于云計算的人臉檢測結(jié)果對比見表1.直接系統(tǒng)編程通過顏色分割算法實現(xiàn)人臉區(qū)域膚色檢測,相比其他方式,工作量仍然很大,如果實現(xiàn)完善的人臉識別功能,需要大量工作要做.該方式適合技術(shù)力量強(qiáng)大的公司做原創(chuàng)性開發(fā),程序運行時占用內(nèi)存空間很小,不依賴第三方技術(shù)支持,具有很強(qiáng)的獨立性,可以應(yīng)用于任何場合.基于組件技術(shù)的人臉識別是應(yīng)用第三方組件提供的圖像處理方法定位和識別圖像中的人臉,依賴組件提供的功能,編程代碼量較少,占用內(nèi)存較大,可以在Andorid平臺快速實現(xiàn)人臉檢測,適合算法驗證、科研、教學(xué)和一般應(yīng)用.基于云計算的人臉識別依賴于高科技公司提供的云端服務(wù),結(jié)果精確,幾乎不占用內(nèi)存.但云服務(wù)模式的人臉識別并不開源,無法獲取源碼學(xué)習(xí)研究.
期刊推薦:《電子設(shè)計工程》Electronic Design Engineering(半月刊),創(chuàng)刊于1993年,原名《國外電子元器件》,主要介紹具有較高學(xué)術(shù)水平的、電子領(lǐng)域相關(guān)的理論、技術(shù)、方法的專業(yè)性技術(shù)期刊。目前,共設(shè)有:計算機(jī)技術(shù)應(yīng)用、網(wǎng)絡(luò)與通信工程、測控與儀器儀表、圖像與多媒體技術(shù)、開發(fā)與應(yīng)用、數(shù)字處理技術(shù)、嵌入式技術(shù)、消費類電子、汽車電子、集成電路應(yīng)用、新特器件應(yīng)用、電源技術(shù)與應(yīng)用、信息安全、工業(yè)自動化、電力電子等欄目。有投稿需求的作者,可以直接與期刊天空在線編輯聯(lián)系。
3、總結(jié)
探討了Android平臺實現(xiàn)人臉識別的三種方式,實現(xiàn)了基于膚色檢測的人臉檢測和基于OpenCV的人臉檢測和識別.直接編程方法若想實現(xiàn)完善的人臉識別,需要專業(yè)開發(fā)人員花費大量時間編程實現(xiàn),需反復(fù)調(diào)試才能完善人臉識別功能;應(yīng)用第三方組件方法借助第三方組件中已提供的人臉檢測、分割、灰度化等接口,只需直接調(diào)用組件內(nèi)的函數(shù)即可完成人臉識別功能;云計算方法提供的人臉識別算法應(yīng)用了先進(jìn)的機(jī)器學(xué)習(xí)技術(shù),因此功能強(qiáng)大,可滿足任何人臉識別的要求,在打擊犯罪、考勤、加密等領(lǐng)域得到廣泛應(yīng)用,但需要聯(lián)網(wǎng)和付費使用.研究人員可根據(jù)人臉識別的目的和要求,選擇具體的實現(xiàn)方式.