公務(wù)員期刊網(wǎng) 論文中心 正文

人臉識別與活體檢測在嵌入式上優(yōu)化

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了人臉識別與活體檢測在嵌入式上優(yōu)化范文,希望能給你帶來靈感和參考,敬請閱讀。

人臉識別與活體檢測在嵌入式上優(yōu)化

摘要:針對嵌入式設(shè)備在人臉識別系統(tǒng)存在的人臉較小樣本下識別率低、活體檢測困難問題做出來算法優(yōu)化。采用了基于透視變化原理改進(jìn)了PCA人臉識別算法,豐富人臉樣本圖像,提高識別率;設(shè)計了一種新型共享且密集的深度可分離通道卷積,大大降低了卷積計算量的同時并精度損失較小,使得能應(yīng)用于嵌入式設(shè)備上。最后,經(jīng)過測試,優(yōu)化后的算法速度好,識別率高,安全可靠,有良好的應(yīng)用前景。

關(guān)鍵詞:嵌入式系統(tǒng);人臉識別;活體檢測;卷積神經(jīng)網(wǎng)絡(luò)

0引言

作為生物識別技術(shù)的一種,人臉識別技術(shù)有著先天性、唯一性、不易被復(fù)制性等優(yōu)點(diǎn)。相較于其他傳統(tǒng)的生物識別技術(shù),如指紋識別[1],虹膜識別[2]等,人臉識別技術(shù)存在著成本低、友好、可靠、非接觸等優(yōu)勢,目前已經(jīng)成為應(yīng)用最普遍的生物識別技術(shù)。特別是新冠肺炎期間,人臉識別系統(tǒng)發(fā)揮至關(guān)重要的作用。傳統(tǒng)的人臉識別系統(tǒng)常搭載于PC機(jī)上并且需要建立服務(wù)器,這樣成本較高,而且使用的時候會受網(wǎng)絡(luò)的限制,并且PC機(jī)為載體存在著體積大,便攜性差,在特定的場合下不適合使用等缺點(diǎn)。嵌入式設(shè)備具有成本低、功耗低、體積小、便攜性好等優(yōu)點(diǎn)。隨著嵌入式技術(shù)的不斷發(fā)展與國家的大力扶持,嵌入式應(yīng)用已經(jīng)不斷出現(xiàn)在我們生活當(dāng)中。因此要將人臉識別系統(tǒng)運(yùn)用到嵌入式設(shè)備上[3,4]。人臉識別算法運(yùn)算量大,占用內(nèi)存高[5,6],嵌入式設(shè)備的計算能力不足,內(nèi)存受限,這樣會使得系統(tǒng)的時效性、可靠性、準(zhǔn)確性大大降低,而且傳統(tǒng)的嵌入式人臉識別系統(tǒng)缺少了人臉活體檢測部分,這會使得假臉也能通過,存在嚴(yán)重的安全隱患[7]。因此本文針對這些缺陷給出了算法優(yōu)化:1)在人臉識別環(huán)節(jié)中,設(shè)計了一種人臉圖像增強(qiáng)方法來提升人臉識別算法對非正臉的識別率。2)在人臉活體檢測環(huán)節(jié)中,提出了一種新型卷積核來對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行加速。3)提升了人臉識別和人臉活體檢測在嵌入式設(shè)備上的效率,準(zhǔn)確性和速度。4)提出一種方案,使得嵌入式設(shè)備上能實(shí)現(xiàn)完全離線的綜合人臉識別與人臉檢測的系統(tǒng)。

1系統(tǒng)總體設(shè)計

嵌入式人臉識別系統(tǒng)的主要框架如圖1所示,主體主要由主控部分、顯示器部分、攝像頭部分這三部分組成。系統(tǒng)初始化之后,攝像頭對捕獲的視頻流截取一幀圖像進(jìn)行人臉檢測,在檢測到人臉之后進(jìn)行人臉識別,如果人臉識別通過,系統(tǒng)會繼續(xù)進(jìn)行人臉活體檢測,判斷是否是真臉。硬件系統(tǒng)主要包括了主控模塊、攝像頭模塊、顯示器模塊和電源模塊。主控模塊負(fù)責(zé)調(diào)用攝像頭模塊來獲取圖像數(shù)據(jù)信息,并對圖像進(jìn)行人臉檢測、對檢測到的人臉進(jìn)行人臉識別和對識別成功的人臉進(jìn)行活體檢測。主控模塊這里選用的是樹莓派型號3piB,攝像頭選用的是分辨率為1280×70,采集速率為30fps的羅技C270i攝像頭。顯示器模塊是系統(tǒng)的數(shù)據(jù)輸出端,負(fù)責(zé)展示系統(tǒng)信息和識別結(jié)果。軟件模塊主要包括主程序的設(shè)計、人臉檢測程序設(shè)計、人臉是識別程序設(shè)計和人臉活體檢測數(shù)據(jù)設(shè)計。

2基于PCA人臉識別算法優(yōu)化

基于PCA的人臉識別算法是通過人臉數(shù)據(jù)集矩陣找到一個映射空間,再將人臉圖像投影到該空間中,得到一組降維的向量。識別時,待識別人臉通過特征臉空間得到一個降維的向量,再通過度向量方法得到待識別人臉與數(shù)據(jù)庫中每個人臉的舉例,然后根據(jù)閾值進(jìn)行判斷。PCA人臉識別算法由計算特征臉空間階段和人臉識別階段兩階段組成?;赑CA的人臉識別算法需要將M×N的圖像按列展開待MN×1的列向量,這樣會損失圖片的空間結(jié)構(gòu),使得在非正臉的情況(如仰頭、低頭、轉(zhuǎn)頭等)下識別率明顯下降。通常為提升算法的識別率會要求錄入者拍攝多角度的人臉照片,但是這樣對人臉錄入的體驗十分不好,另外在某些情況下只能獲取單一人臉(如基于身份證人臉)。因此本系統(tǒng)利用透視變化來增強(qiáng)人臉圖像,有效得提升非正人臉的識別率。

2.1透視變化

透視變化是指利用透視中心、像點(diǎn)、目標(biāo)點(diǎn)三點(diǎn)共線的條件,按照定律旋轉(zhuǎn)定律使透視面繞透視軸旋轉(zhuǎn)某一角度,破壞原有的投影光線束,仍能保持透視面上投影幾何圖形不變的變換[8]。透視變化就是講畸變圖像中的每個像素點(diǎn)投射到無畸變圖像中的每一個像素點(diǎn)的過程,通用的透視變化公式為:由式(2)可以推導(dǎo),只要得到四對畸變圖像與正視圖像相對應(yīng)的坐標(biāo)對就可以解出透視變換參數(shù),從而求得透視變換矩陣,再將原始圖像中的每個像素點(diǎn)代入式(2)中,則可以得到透視變換后的圖像。

2.2基于透視變化的人臉增強(qiáng)法

本文利用透視變換模擬人向左抬頭、向右抬頭、仰頭和低頭的圖像,它們與原圖像的四個角(依次為左上、右上、右下、左下)的對應(yīng)坐標(biāo)分別為:(0,0)→(0,0),(w,0)→(w,s),(w,h)→(w,h-s),(0,h)→(0,h)(0,0)→(0,s),(w,0)→(w,0),(w,h)→(w,h),(0,h)→(0,h-s)(0,0)→(0,0),(w,0)→(w,0),(w,h)→(w-s,h),(s,h)→(0,h)(0,0)→(s,0),(w,0)→(w-s,0),(w,h)→(w,h),(0,h)→(0,h)(3)其中,h和w為原圖像的高和寬,s表示畸變程度且s∈N。當(dāng)圖像大小為112×92時,取s為8,原始人臉和經(jīng)過透視變換的人臉如圖3所示。由圖3可以看出,透視變換后的圖像與原始圖像相比有一些變化,類似于頭部旋轉(zhuǎn)、頭部向上和頭部向下圖像。因此,可以通過視圖轉(zhuǎn)換來變換一個圖像以創(chuàng)建四個豐富面部圖像樣本的面部圖像。

3人臉活體檢測算法優(yōu)化

卷積神經(jīng)網(wǎng)絡(luò)有很強(qiáng)的圖像理解和判斷能力,在人臉活體檢測上有較好的成效,能有效鑒別真假臉。但是卷積神經(jīng)網(wǎng)絡(luò)的計算量十分大,在資源受限的嵌入式設(shè)備上應(yīng)用困難。這里提出一種新型卷積神經(jīng)網(wǎng)絡(luò)-共享且密集的深度可分離通道卷積SDChannelNets。

3.1共享且密集的深度可分離通道卷積

標(biāo)準(zhǔn)卷積層中,輸入為Df×Df×m的特征圖,輸出為為Dg×Dg×n的特征圖。其中Df為輸入特征圖的寬度和高度,Dg為輸出特征圖的寬度和高度,m和n分別為輸入和輸出的通道數(shù)。一個卷積層的參數(shù)量取決于卷積核的參數(shù)量,而卷積核的參數(shù)量又與m×n的大小密切相關(guān)。共享且密集的通道卷積層的輸入輸出特征圖與標(biāo)準(zhǔn)卷積層的輸入輸出特征圖相同,但是卷積核只有一個長卷積核。輸入特征圖每次只與長卷積核的一部分進(jìn)行卷積操作,這部分是參數(shù)共享的,用這操作來代替標(biāo)準(zhǔn)卷積層的相互獨(dú)立的卷積核的卷積操作。深度可分離卷積將標(biāo)準(zhǔn)卷積分解為用來過濾每一通道的特征的深度卷積和將這些特征融合的1×1卷積。在MobileNets中,1×1卷積的參數(shù)量占模型總的參數(shù)量的75%,于是這里將1×1卷積替換成1×1共享且密集的通道卷積。1×1卷積存在的參數(shù)量:1·1·m·n(4)1×1卷積存在的參數(shù)量(S為通道方向的步長):1·1·(m+(n-1)·S)(5)用這種方法壓縮了m×n項,大大減少了參數(shù)量。3.2SDChannelNets本文用共享且密集的深度分離通道卷積構(gòu)建SDChannelNets。這里遵循MobileNetV2的基礎(chǔ)架構(gòu)。本文去掉了MobileNetV2的瓶頸塊中的第一個1×1卷積,將深度卷積的深度系數(shù)設(shè)置為6或1,最后將瓶頸塊中的第二個1×1卷積替換為1×1共享且密集的通道卷積。SDChannelNet中的SDC瓶頸塊由上述修改構(gòu)成。并且去掉了MobileNetV2中輸出通道數(shù)為1280的卷積層,MobileNetV2密集連接層的參數(shù)量占總參數(shù)量的24.3%。最后還去掉了第一個卷積層的激活函數(shù),因為在少量基礎(chǔ)的特征通過非線性激活函數(shù)激活時產(chǎn)生損失大量基礎(chǔ)特征導(dǎo)致可用特性少量。SDChannelNets網(wǎng)絡(luò)結(jié)構(gòu)表所示。本文使用keras深度學(xué)習(xí)框架對SDChannels步長為192的模型進(jìn)行搭建,采用隨機(jī)梯下降訓(xùn)練,權(quán)重衰減10-4,Nesterov動量為0.9,同時訓(xùn)練使用64批量和100次的迭代次數(shù)。設(shè)置0.1的初始學(xué)習(xí)率。在迭代60%和80%將學(xué)習(xí)率除以10。在除了第一層的每個卷積層后加入BN層和Dropout層一直過擬合。最后在ROSE-Youtu人臉活體檢測數(shù)據(jù)集上與其他算法[9,10]進(jìn)行測試,實(shí)驗結(jié)果如表2所示。

4實(shí)際系統(tǒng)測試與分析

4.1基于人臉增強(qiáng)的PCA人臉識別算法測試

實(shí)際測試時,讓實(shí)驗室的是十位同學(xué)擔(dān)任人臉測試來源,每位同學(xué)錄入三張照片在合法人臉文件夾里,根據(jù)之前的結(jié)果,將人臉增強(qiáng)的畸變s設(shè)置為8。每位同學(xué)在攝像頭前測試10次,共100次。實(shí)驗結(jié)果如表3所示。在數(shù)量級下的情況下識別有11%的明顯提高。

4.2基于SDChannelNets-192活體檢測算法測試

活體檢測部分每個同學(xué)在攝像頭前測試10次,作為真實(shí)人臉樣本,總共100個正樣本。然后每個同學(xué)的照片A4打印測試10次,共100個負(fù)樣本。這里與MobileNetsV2算法進(jìn)行比較。對比實(shí)驗結(jié)果,本文提出的SDChannelNet-S192算法平均耗時減少了3326ms,錯誤接受率降低了百分之一,錯誤拒絕率提升了百分之零點(diǎn)八。

5結(jié)語

經(jīng)過本文上述算法優(yōu)化,使得嵌入式設(shè)備在人臉識別系統(tǒng)存在的人臉較小樣本下識別率低、活體檢測困難這二個缺陷得到了顯著改善。本文提出了一種新型的基于透視變換的人臉識別算法,并且提出一種新型卷積神經(jīng)網(wǎng)絡(luò)-共享且密集的深度可分離通道卷積SDChannelNets,做出了人臉識別和人臉活體檢測在嵌入式設(shè)備上的優(yōu)化,并經(jīng)過測試,具有速度好,識別率高,安全可靠,有良好的應(yīng)用前景。

作者:金千航 秦會斌 張建楠 單位:杭州電子科技大學(xué)電子信息學(xué)院CAE研究所