劉 程,譚曉陽,2
(1.南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016; 2.軟件新技術(shù)與產(chǎn)業(yè)化協(xié)同創(chuàng)新中心,江蘇 南京 210016)
隨著機(jī)器學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域,特別是人臉識(shí)別上的突破性進(jìn)展,人臉驗(yàn)證技術(shù)[1-3]的產(chǎn)業(yè)化越來越受到學(xué)術(shù)界和工業(yè)界的關(guān)注。目前市面上已經(jīng)有不少投入使用的人臉驗(yàn)證產(chǎn)品,如南京高鐵站采用的人臉驗(yàn)證檢票系統(tǒng)、支付寶的刷臉支付等。這些人臉驗(yàn)證系統(tǒng)[4]已經(jīng)達(dá)到了工業(yè)化應(yīng)用的標(biāo)準(zhǔn),但也存在一定的局限性。例如前者需要采購(gòu)特定的設(shè)備,并且設(shè)備體積過大不便于移動(dòng)。而后者受限于網(wǎng)絡(luò)傳輸?shù)乃俣群头€(wěn)定性,在需要不斷移動(dòng),并且無法保證網(wǎng)絡(luò)通暢的環(huán)境下無法滿足應(yīng)用需求。例如物流公司的貨運(yùn)系統(tǒng)需要在長(zhǎng)途運(yùn)輸過程中驗(yàn)證貨車司機(jī)的真實(shí)身份,由于貨車長(zhǎng)途跋涉不能保證網(wǎng)絡(luò)的通暢與穩(wěn)定,而且貨車駕駛艙空間較小無法安裝大型的人臉驗(yàn)證設(shè)備。
綜合考慮上述應(yīng)用需求,本文設(shè)計(jì)并實(shí)現(xiàn)一種部署于移動(dòng)端平臺(tái)的人臉驗(yàn)證系統(tǒng)。移動(dòng)端設(shè)備具有小巧便攜的特點(diǎn),并且隨著移動(dòng)端高性能計(jì)算芯片技術(shù)[5-6]的發(fā)展,如高通、聯(lián)發(fā)科等廠商生產(chǎn)的移動(dòng)設(shè)備芯片具有一定的多核并行計(jì)算能力,能夠滿足較低分辨率圖片的實(shí)時(shí)處理,以及谷歌官方提供了NDK編譯技術(shù)對(duì)于C語言在安卓平臺(tái)[7]的支持,使得在移動(dòng)端設(shè)備部署小型深度卷積神經(jīng)網(wǎng)絡(luò)模型成為了可能。
基于上述2點(diǎn),本文設(shè)計(jì)并實(shí)現(xiàn)一款完全基于安卓系統(tǒng)智能手機(jī)的人臉驗(yàn)證系統(tǒng)。該人臉驗(yàn)證系統(tǒng)在人臉檢測(cè)部分使用多層感知機(jī)[8]進(jìn)行人臉檢測(cè)和定位,在人臉特征點(diǎn)定位上使用級(jí)聯(lián)多個(gè)棧式自編碼網(wǎng)絡(luò)[9-10]來回歸人臉關(guān)鍵點(diǎn)坐標(biāo),并在人臉圖像特征提取中應(yīng)用深度卷積神經(jīng)網(wǎng)絡(luò)模型[11]來提取特征向量從而進(jìn)行比對(duì)。在編程實(shí)現(xiàn)方面,為了優(yōu)化算法運(yùn)行效率,采用了NDK技術(shù)[12]交叉編譯Java和C++代碼,并使用OpenCV[13]調(diào)用安卓手機(jī)自帶的圖形處理器(GPU)進(jìn)行并行加速運(yùn)算以提高系統(tǒng)運(yùn)行效率。實(shí)驗(yàn)表明,該系統(tǒng)在FERET數(shù)據(jù)庫[14]上進(jìn)行人臉驗(yàn)證達(dá)到了97.16%的準(zhǔn)確率;在運(yùn)行速度方面,可將進(jìn)行一次完整的人臉驗(yàn)證流程控制在4 s以內(nèi),能夠滿足工業(yè)化應(yīng)用的需求。
本文的人臉驗(yàn)證系統(tǒng)功能主要分為2部分:數(shù)據(jù)采集和人臉驗(yàn)證。
數(shù)據(jù)采集部分功能為:輸入用戶身份信息,采集用戶不同姿態(tài)下的正面人臉圖像,同時(shí)對(duì)采集的圖像進(jìn)行預(yù)處理和人臉特征向量提取,并將人臉特征向量與用戶身份信息一起存入數(shù)據(jù)庫中。該部分主要完成數(shù)據(jù)庫的建立與更新,是進(jìn)行人臉驗(yàn)證的基礎(chǔ)。在實(shí)際應(yīng)用中,可以由軟件管理員預(yù)先完成。
圖1 人臉驗(yàn)證主要流程
人臉驗(yàn)證部分的具體工作流程如圖1所示,主要包括以下幾個(gè)步驟:用戶身份信息輸入,該用戶預(yù)存儲(chǔ)的人臉圖像特征向量的獲取,用戶當(dāng)前攝像頭獲取的人臉圖像的預(yù)處理和人臉圖像特征向量提取,預(yù)存儲(chǔ)的人臉圖像特征向量和用戶當(dāng)前攝像頭獲取的人臉圖像的預(yù)處理和人臉圖像特征向量的相似度計(jì)算等。
一次完整的人臉驗(yàn)證過程為:1)獲取用戶身份信息如工號(hào)、姓名等,具體可以通過掃描身份證件或用戶手動(dòng)輸入;2)根據(jù)獲取的身份信息查找數(shù)據(jù)庫,返回代表該身份人的圖像特征向量組,同時(shí)打開攝像頭引導(dǎo)用戶進(jìn)行人臉圖像采集;3)進(jìn)行采集圖像的人臉檢測(cè),對(duì)于無法檢測(cè)人臉的圖像要求用戶重新采集;4)對(duì)于圖像進(jìn)行預(yù)處理,具體為灰度化處理、裁剪并進(jìn)行特征點(diǎn)定位,根據(jù)人臉圖像特征點(diǎn)進(jìn)行圖像的旋轉(zhuǎn)擺正;5)對(duì)于預(yù)處理后的圖像進(jìn)行特征向量提??;6)與數(shù)據(jù)庫中獲得的特征向量組進(jìn)行相似度比對(duì),返回驗(yàn)證結(jié)果。
人臉圖像處理是人臉驗(yàn)證系統(tǒng)的關(guān)鍵部分,通常分為人臉圖像檢測(cè)、人臉特征點(diǎn)定位和人臉特征向量提取比對(duì)3個(gè)部分。本章簡(jiǎn)要介紹本文的人臉驗(yàn)證系統(tǒng)的這3個(gè)部分的具體算法。
人臉檢測(cè)是指判斷一幅原始圖像中是否存在人臉部分,并返回人臉部分的位置坐標(biāo)和大小。作為人臉圖像處理的首要步驟,人臉檢測(cè)的結(jié)果直接決定了接下來的步驟能否順利進(jìn)行。本系統(tǒng)綜合考慮了人臉檢測(cè)的精度和速度需求,采用了基于級(jí)聯(lián)多個(gè)多層感知器[15-16]的漏斗型樹狀結(jié)構(gòu)分類器進(jìn)行人臉檢測(cè)和定位。
對(duì)于漏斗型的多層級(jí)聯(lián)結(jié)構(gòu),本文在最底層直接使用OpenCV自帶的人臉檢測(cè)器框出所有可能是人臉的部分圖像,并將其作為下一層的訓(xùn)練數(shù)據(jù)對(duì)多個(gè)訓(xùn)練感知器進(jìn)行分類,舍棄不是人臉的圖片,并將可能包含人臉的圖片繼續(xù)作為下一層的輸入,層層遞進(jìn),最終得到檢測(cè)出的人臉圖像。在實(shí)際實(shí)現(xiàn)中,采用三層的結(jié)構(gòu)以達(dá)到精度與運(yùn)行時(shí)間的平衡。其中單個(gè)感知器的輸入為上一層輸出的可能包含人臉的圖像,輸出為確定不包含人臉的部分圖像和可能包含人臉的部分圖像。
人臉特征點(diǎn)定位,即在人臉定位的基礎(chǔ)上定位人臉關(guān)鍵點(diǎn),如眼睛、鼻子、嘴巴等的坐標(biāo)。人臉特征點(diǎn)定位的目的是排除不同角度、姿態(tài)的人臉圖像對(duì)于人臉圖像分類的影響;同時(shí)利用定位的特征點(diǎn)進(jìn)行人臉圖像的擺正對(duì)齊,以提高特征提取的準(zhǔn)確性。本系統(tǒng)采用了一種由粗到精的棧式自編碼網(wǎng)絡(luò)[16]來回歸人臉中的眼睛、鼻子、2個(gè)嘴角共5個(gè)關(guān)鍵特征點(diǎn)的坐標(biāo)。
具體算法流程如下:
1)輸入人臉圖像的低分辨率版本,并估計(jì)人臉的大致輪廓S0。
2)提高輸入圖像的分辨率,抽取當(dāng)前人臉形狀S0各特征點(diǎn)位置的局部特征輸入下一級(jí)自編碼網(wǎng)絡(luò)優(yōu)化輪廓S1。
3)循環(huán)若干次步驟1~步驟2,最后返回回歸的特征點(diǎn)坐標(biāo)值。
圖2 人臉特征點(diǎn)回歸示意圖
人臉特征點(diǎn)定位示意如圖2所示,在實(shí)際算法實(shí)現(xiàn)中,為了提高算法的運(yùn)行效率和優(yōu)化計(jì)算,只回歸了人臉的雙眼、鼻子和2個(gè)嘴角共計(jì)5個(gè)點(diǎn)的坐標(biāo)。
本文通過計(jì)算2眼的坐標(biāo)點(diǎn)連線的中點(diǎn)作為原點(diǎn)建立二維坐標(biāo)系,并將圖片進(jìn)行旋轉(zhuǎn)變換,使其2眼坐標(biāo)點(diǎn)位于水平x軸方向上。以完成人臉的擺正。具體的操作過程如圖3所示。
圖3 人臉擺正示意圖
人臉特征向量提取是人臉驗(yàn)證系統(tǒng)的最關(guān)鍵部分,特性向量的表征好壞直接影響了人臉驗(yàn)證結(jié)果的準(zhǔn)確率。傳統(tǒng)的人臉圖像特征提取算法有基于局部二值模式(Local Binary Pattern)[18]算法、方向梯度直方圖(Histogram of Oriented Gradient)[19]算法等。隨著近年來深度學(xué)習(xí)的迅猛發(fā)展,特別是Krizhevsky[20]在Imagenet上的圖像分類挑戰(zhàn)中獲得了2012年的冠軍,并且遠(yuǎn)遠(yuǎn)領(lǐng)先于第二名的傳統(tǒng)方法。使用深度卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行特征提取成了現(xiàn)今較為流行的方式。
本系統(tǒng)采用了改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉圖像的特征提取。對(duì)于完成人臉特征點(diǎn)定位的人臉圖像,將其作為輸入在訓(xùn)練好的網(wǎng)絡(luò)模型中進(jìn)行前向傳播,將輸出層的2048個(gè)節(jié)點(diǎn)的數(shù)據(jù)作為代表該人臉圖像的特征向量進(jìn)行輸出(具體格式為d0,d1,d2,…,d2047)。在比對(duì)過程中,將其與數(shù)據(jù)庫中預(yù)先存儲(chǔ)的相同維數(shù)的特征向量計(jì)算歐氏距離,并根據(jù)具體情況設(shè)定閾值進(jìn)行判斷,當(dāng)結(jié)果小于閾值,便可判斷驗(yàn)證通過。
本文系統(tǒng)實(shí)現(xiàn)平臺(tái)為安卓6.0系統(tǒng),所用編程軟件為Android Studio2.2,并調(diào)用了OpenCV2.4.10進(jìn)行圖像處理。主要使用的編程語言為Java和C++。編程平臺(tái)為64位的Windows7系統(tǒng),測(cè)試平臺(tái)為Android Studio2.2自帶的Android虛擬機(jī)、一加2手機(jī)、魅族mx4手機(jī)。
用戶界面如圖4所示,具體分為信息錄入和人臉驗(yàn)證2個(gè)部分。
用戶身份信息的輸入,以用戶手動(dòng)輸入個(gè)人姓名(或工號(hào)等)的方式進(jìn)行,也可以掃描工作證的方式進(jìn)行。其中,信息錄入部分具體流程如下:
1)輸入用戶姓名。
2)調(diào)用攝像頭獲取用戶人臉圖像,并通過算法處理獲取特征向量。
3)查詢數(shù)據(jù)庫中是否存在該用戶,存在則將特征向量寫入該用戶部分并更新數(shù)據(jù)庫,若不存在,則新建該用戶信息并寫入特征向量。
4)返回結(jié)果。
人臉驗(yàn)證部分具體流程如下:
1)用戶輸入姓名。
2)系統(tǒng)查詢數(shù)據(jù)庫中是否存在該用戶,存在則返回存儲(chǔ)的用戶特征向量,若不存在則返回錯(cuò)誤信息。
3)調(diào)用攝像頭獲取用戶人臉圖像,將其與用戶信息一同傳入算法處理部分,進(jìn)行人臉相似度計(jì)算。
4)等待算法處理結(jié)果,并輸出最終驗(yàn)證結(jié)果。
由于Android Studio2.2支持使用Cmake方式編譯C++代碼進(jìn)行交互,因此在算法實(shí)現(xiàn)部分,使用C++語言進(jìn)行算法實(shí)現(xiàn)。使用C++語言相比于Java語言具有3大優(yōu)勢(shì):1)C++作為底層語言,本身運(yùn)行效率高于Java;2)使用C++可以調(diào)用Android系統(tǒng)手機(jī)的GPU進(jìn)行并行運(yùn)算以提高效率;3)目前大部分圖像處理算法都有C++實(shí)現(xiàn)版本,可以進(jìn)行方便的算法復(fù)用,提高編程效率。
圖4 系統(tǒng)界面
算法實(shí)現(xiàn)部分具體流程如下:
1)獲取驗(yàn)證人身份信息、攝像頭人臉圖像以及數(shù)據(jù)庫中的人臉特征向量。
2)將攝像頭人臉圖像進(jìn)行人臉檢測(cè),裁剪出人臉部分,若無人臉返回錯(cuò)誤信息。
3)將裁減后的人臉圖像進(jìn)行特征點(diǎn)定位,并根據(jù)特征點(diǎn)位置進(jìn)行人臉對(duì)齊。
4)將人臉對(duì)齊后的圖像傳入訓(xùn)練好的CNN模型[20],計(jì)算輸出人臉特征向量。
5)與數(shù)據(jù)庫中的人臉特征向量進(jìn)行相似度計(jì)算,返回結(jié)果。
在具體實(shí)現(xiàn)過程中,為了統(tǒng)一Java與C++部分圖像數(shù)據(jù)的格式,本文使用了OpenCV作為圖像表示的橋梁,并且以O(shè)penCV定義的MAT格式作為圖片處理的主要格式。
本系統(tǒng)通過綜合考慮實(shí)際應(yīng)用的數(shù)據(jù)量大小和運(yùn)行平臺(tái),采用SQLite作為數(shù)據(jù)庫平臺(tái)。SQLite是一種開源、跨平臺(tái)的輕量級(jí)數(shù)據(jù)庫,目前是Android系統(tǒng)下應(yīng)用最廣泛的一種數(shù)據(jù)庫,具有占用系統(tǒng)資源低、查詢速度快的特點(diǎn)。
為了提高數(shù)據(jù)操作效率,本文把人臉圖像數(shù)據(jù)用特征向量的形式存儲(chǔ),這樣可以大大減少圖像數(shù)據(jù)的存儲(chǔ)空間,同時(shí)可以極大提高系統(tǒng)讀取人臉數(shù)據(jù)的效率。具體存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)用其中同一用戶存儲(chǔ)多張人臉圖片的特征向量表示,代表該用戶不同姿態(tài),或者是否佩戴眼鏡等條件下的人臉表征。
根據(jù)本文的人臉驗(yàn)證系統(tǒng)的實(shí)際應(yīng)用需求。本系統(tǒng)的實(shí)驗(yàn)主要分為2個(gè)部分:1)驗(yàn)證系統(tǒng)的人臉識(shí)別準(zhǔn)確率;2)測(cè)試系統(tǒng)的可用性,具體包括準(zhǔn)確率、運(yùn)行時(shí)間、能耗、用戶體驗(yàn)等方面。
為了測(cè)試本系統(tǒng)人臉驗(yàn)證算法的準(zhǔn)確率,本文選用了FERET數(shù)據(jù)庫作為測(cè)試數(shù)據(jù)進(jìn)行驗(yàn)證。FERET數(shù)據(jù)庫是美國(guó)軍方提供的人臉識(shí)別數(shù)據(jù)庫,其中共有3880張人臉圖像,包含了1029個(gè)人不同表情的正面人臉圖像,是目前最權(quán)威的人臉數(shù)據(jù)庫之一。在具體實(shí)驗(yàn)過程中,對(duì)于數(shù)據(jù)庫中的每一張人臉圖像,本文隨機(jī)選取9張人臉圖像與其進(jìn)行兩兩驗(yàn)證并計(jì)算相似度,其中包含同一人在不同光照、不同姿態(tài)下的人臉圖像和不同人的人臉圖像。并對(duì)實(shí)驗(yàn)結(jié)果設(shè)定不同閾值進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。具體實(shí)驗(yàn)結(jié)果如表1所示。
表1 在FERET人臉數(shù)據(jù)庫上的實(shí)驗(yàn)結(jié)果(%)
閾值RRRFFRFF0.789.6710.331.0198.980.697.162.841.1998.810.598.721.273.1296.87
本文實(shí)驗(yàn)了3種閾值設(shè)定下的驗(yàn)證結(jié)果,包括將同一個(gè)人認(rèn)證為同一個(gè)人(RR)、將同一個(gè)人認(rèn)證為不同人(RF)、將不同人認(rèn)證為同一人(FR)、將不同人認(rèn)證為不同人(FF),分別計(jì)算其識(shí)別百分比。實(shí)驗(yàn)結(jié)果表明在選取閾值為0.6時(shí),RR和FF的比值分別達(dá)到了97.16%和98.81%,基本滿足了工業(yè)化應(yīng)用的需求。
為了測(cè)試該系統(tǒng)在實(shí)際使用中的準(zhǔn)確率和效率,將該系統(tǒng)以打包成apk的形式安裝在不同配置的安卓系統(tǒng)手機(jī)上,并通過調(diào)用手機(jī)攝像頭收集人臉圖像數(shù)據(jù)進(jìn)行驗(yàn)證實(shí)驗(yàn)。
在具體實(shí)驗(yàn)過程中,收集了216例共523張手機(jī)拍攝的照片。同時(shí)為了控制變量,首先對(duì)收集的圖像進(jìn)行人工裁剪和分類標(biāo)注身份,得到200對(duì)驗(yàn)證圖像。其中部分收集到的圖像如圖5所示,包括同一人在不同時(shí)間段處于同一位置的圖像,同一時(shí)間處于不同位置的圖像,以及不同人處于同一位置的圖像。然后將其拷貝至手機(jī)內(nèi)存中,更改調(diào)用攝像頭的代碼,接口為調(diào)用手機(jī)相冊(cè),進(jìn)行人臉驗(yàn)證。具體實(shí)驗(yàn)結(jié)果如表2所示,由于手頭設(shè)備有限,本文只測(cè)試了在Android Studio中的虛擬機(jī),以及手頭現(xiàn)有的2款安卓系統(tǒng)手機(jī)下的實(shí)驗(yàn)。
表2 在不同安卓系統(tǒng)手機(jī)上的實(shí)驗(yàn)結(jié)果
平臺(tái)準(zhǔn)確率/%平均時(shí)間/s虛擬機(jī)96.02.20一加手機(jī)296.52.33魅族mx496.03.46
圖5 部分實(shí)際采集到的圖片
在安卓虛擬機(jī)上,采用收集的同一批數(shù)據(jù)測(cè)試了幾種不同人臉驗(yàn)證API的驗(yàn)證結(jié)果。由于市面上能提供人臉驗(yàn)證APP都為上傳圖像至服務(wù)器端進(jìn)行識(shí)別驗(yàn)證并返回JSON格式的字段,所以運(yùn)行時(shí)間無法控制變量進(jìn)行對(duì)比,只統(tǒng)計(jì)了準(zhǔn)確率,具體如表3所示??梢钥吹綆卓顪?zhǔn)確率普遍比本文的要高,一方面是商用的人臉驗(yàn)證模型往往訓(xùn)練集都在百萬以上,以量取勝,另一方面,本文所設(shè)計(jì)的人臉驗(yàn)證系統(tǒng)為了能夠在手機(jī)端進(jìn)行圖像處理,簡(jiǎn)化了部分算法以提高處理速率,必然會(huì)帶來驗(yàn)證精度的損失。
表3 采用其他API的實(shí)驗(yàn)結(jié)果
Face++騰訊優(yōu)圖本系統(tǒng)準(zhǔn)確率/%99.59996.5
實(shí)際實(shí)驗(yàn)結(jié)果相較于FERET數(shù)據(jù)庫中的準(zhǔn)確率較低,經(jīng)分析是因?yàn)閷?shí)際收集的圖像與訓(xùn)練模型所采用的數(shù)據(jù)集存在較大的差異,其中訓(xùn)練模型使用的是各個(gè)年齡段的人臉圖像,而實(shí)際實(shí)驗(yàn)中采集的圖像多為工科大學(xué)的大學(xué)生和研究生,并且男性占了較大的比重。但也說明了該系統(tǒng)的遷移能力較強(qiáng)??偟膩碚f,實(shí)驗(yàn)結(jié)果表明,在實(shí)際應(yīng)用中,該系統(tǒng)能夠在保證較高的準(zhǔn)確率的情況下快速高效地完成人臉驗(yàn)證工作,同時(shí)能夠很好地應(yīng)對(duì)光照強(qiáng)度和不同姿態(tài)的影響。
本文設(shè)計(jì)并實(shí)現(xiàn)了一種離線部署于安卓系統(tǒng)平臺(tái)的人臉驗(yàn)證系統(tǒng)。該人臉驗(yàn)證系統(tǒng)使用深度學(xué)習(xí)的方法進(jìn)行特征向量的提取,在設(shè)計(jì)和實(shí)現(xiàn)過程中兼顧了準(zhǔn)確率和運(yùn)行效率。相比于國(guó)內(nèi)外同類型的研究,該系統(tǒng)首先將圖像的處理過程在移動(dòng)端完成,不依賴于網(wǎng)絡(luò)傳輸,整個(gè)設(shè)備也只有口袋大小,具有便攜性和穩(wěn)定性。缺點(diǎn)為耗時(shí)較長(zhǎng),為了算法的移植也犧牲了一定的準(zhǔn)確率。但是在需要便攜、移動(dòng)的環(huán)境下能夠很好地完成人臉驗(yàn)證的應(yīng)用需求。將該系統(tǒng)進(jìn)行工業(yè)化應(yīng)用必將創(chuàng)造良好的社會(huì)應(yīng)用價(jià)值。
[1] Ahonen T, Hadid A, Pietikainen M. Face description with local binary patterns: Application to face recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006,28(12):2037-2041.
[2] Cao Xudong, Wipf D, Wen Fang, et al. A practical transfer learning algorithm for face verification[C]// Proceedings of the IEEE International Conference on Computer Vision. 2013:3208-3215.
[3] Berg T, Belhumeur P N. Tom-vs-Pete classifiers and identity-preserving alignment for face verification[C]// Proceedings of the British Machine Vision Conference. 2012:129.1-129.11.
[4] Song Fengxi, Zhang D, Wang Jizhong, et al. A parameterized direct LDA and its application to face recognition[J]. Neurocomputing, 2007,71(1-3):191-196.
[5] Rodriguez C S, Fischer G. The Linux Kernel Primer: A Top-down Approach for x86 and PowerPC Architectures[M]. India: Pearson Education, 2006.
[6] Cheng Kwang-Ting, Wang Yi-Chu. Using mobile GPU for general-purpose computing-A case study of face recognition on smartphones[C]// 2011 International Symposium on VLSI Design, Automation and Test(VLSI-DAT). 2011:1-4.
[7] 韓超,梁泉. Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M]. 北京:電子工業(yè)出版社, 2010.
[8] Li Haoxiang, Lin Zhe, Shen Xiaohui, et al. A convolutional neural network cascade for face detection[C]// Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. 2015:5325-5334.
[9] Xiong Xuehan, De la Torre F. Supervised descent method and its applications to face alignment[C]// Proceedings of 2013 IEEE Conference on Computer Vision and Pattern Recognition(CVPR), 2013:532-539.
[10] Zhang Zhanpeng, Luo Ping, Chen C L, et al. Facial landmark detection by deep multi-task learning[C]// Proceedings of 2014 13th European Conference on Computer Vision. 2014:94-108.
[11] Sun Yi, Wang Xiaogang, Tang Xiaoou. Deep convolutional network cascade for facial point Detection[C]// Proceedings of the 2013 IEEE Conference on Computer Vision and Pattern Recognition. 2013:3476-3483.
[12] Zapata B C. Android Studio Application Development[M]. Packt Publishing, 2013.
[13] Stone J E, Gohara D, Shi G. OpenCL: A parallel programming standard for heterogeneous computing systems[J]. Computing in Science & Engineering, 2010,12(3):66-73.
[14] Phillips P J, Wechsler H, Huang J, et al. The FERET database and evaluation procedure for face-recognition algorithms[J]. Image and Vision Computing, 1998,16(5):295-306.
[15] Yan Shengye, Shan Shiguang, Chen Xilin, et al. Locally assembled binary (LAB) feature with feature-centric cascade for fast and accurate face detection [C]// 2008 IEEE Conference on Computer Vision and Pattern Recognition. 2008:1-7.
[16] Bay H, Tuytelaars T, Gool L V. SURF: Speeded up robust features[J]. Computer Vision & Image Understanding, 2006,110(3):404-417.
[17] Zhang Jie, Shan Shiguang, Kan Meina, et al. Coarse-to-fine auto-encoder networks (cfan) for real-time face alignment[C]// European Conference on Computer Vision. 2014:1-16.
[18] Zhang Baochang, Gao Yongsheng, Zhao Sanqiang, et al. Local derivative pattern versus local binary pattern: face recognition with high-order local pattern descriptor[J]. IEEE Transactions on Image Processing, 2010,19(2):533-544.
[19] Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]// 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. 2005,1:886-893.
[20] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]// Advances in Neural Information Processing Systems. 2012:1097-1105.