前言:想要寫出一篇引人入勝的文章?我們特意為您整理了人臉識別與活體檢測在嵌入式上優化范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對嵌入式設備在人臉識別系統存在的人臉較小樣本下識別率低、活體檢測困難問題做出來算法優化。采用了基于透視變化原理改進了PCA人臉識別算法,豐富人臉樣本圖像,提高識別率;設計了一種新型共享且密集的深度可分離通道卷積,大大降低了卷積計算量的同時并精度損失較小,使得能應用于嵌入式設備上。最后,經過測試,優化后的算法速度好,識別率高,安全可靠,有良好的應用前景。
關鍵詞:嵌入式系統;人臉識別;活體檢測;卷積神經網絡
0引言
作為生物識別技術的一種,人臉識別技術有著先天性、唯一性、不易被復制性等優點。相較于其他傳統的生物識別技術,如指紋識別[1],虹膜識別[2]等,人臉識別技術存在著成本低、友好、可靠、非接觸等優勢,目前已經成為應用最普遍的生物識別技術。特別是新冠肺炎期間,人臉識別系統發揮至關重要的作用。傳統的人臉識別系統常搭載于PC機上并且需要建立服務器,這樣成本較高,而且使用的時候會受網絡的限制,并且PC機為載體存在著體積大,便攜性差,在特定的場合下不適合使用等缺點。嵌入式設備具有成本低、功耗低、體積小、便攜性好等優點。隨著嵌入式技術的不斷發展與國家的大力扶持,嵌入式應用已經不斷出現在我們生活當中。因此要將人臉識別系統運用到嵌入式設備上[3,4]。人臉識別算法運算量大,占用內存高[5,6],嵌入式設備的計算能力不足,內存受限,這樣會使得系統的時效性、可靠性、準確性大大降低,而且傳統的嵌入式人臉識別系統缺少了人臉活體檢測部分,這會使得假臉也能通過,存在嚴重的安全隱患[7]。因此本文針對這些缺陷給出了算法優化:1)在人臉識別環節中,設計了一種人臉圖像增強方法來提升人臉識別算法對非正臉的識別率。2)在人臉活體檢測環節中,提出了一種新型卷積核來對卷積神經網絡進行加速。3)提升了人臉識別和人臉活體檢測在嵌入式設備上的效率,準確性和速度。4)提出一種方案,使得嵌入式設備上能實現完全離線的綜合人臉識別與人臉檢測的系統。
1系統總體設計
嵌入式人臉識別系統的主要框架如圖1所示,主體主要由主控部分、顯示器部分、攝像頭部分這三部分組成。系統初始化之后,攝像頭對捕獲的視頻流截取一幀圖像進行人臉檢測,在檢測到人臉之后進行人臉識別,如果人臉識別通過,系統會繼續進行人臉活體檢測,判斷是否是真臉。硬件系統主要包括了主控模塊、攝像頭模塊、顯示器模塊和電源模塊。主控模塊負責調用攝像頭模塊來獲取圖像數據信息,并對圖像進行人臉檢測、對檢測到的人臉進行人臉識別和對識別成功的人臉進行活體檢測。主控模塊這里選用的是樹莓派型號3piB,攝像頭選用的是分辨率為1280×70,采集速率為30fps的羅技C270i攝像頭。顯示器模塊是系統的數據輸出端,負責展示系統信息和識別結果。軟件模塊主要包括主程序的設計、人臉檢測程序設計、人臉是識別程序設計和人臉活體檢測數據設計。
2基于PCA人臉識別算法優化
基于PCA的人臉識別算法是通過人臉數據集矩陣找到一個映射空間,再將人臉圖像投影到該空間中,得到一組降維的向量。識別時,待識別人臉通過特征臉空間得到一個降維的向量,再通過度向量方法得到待識別人臉與數據庫中每個人臉的舉例,然后根據閾值進行判斷。PCA人臉識別算法由計算特征臉空間階段和人臉識別階段兩階段組成。基于PCA的人臉識別算法需要將M×N的圖像按列展開待MN×1的列向量,這樣會損失圖片的空間結構,使得在非正臉的情況(如仰頭、低頭、轉頭等)下識別率明顯下降。通常為提升算法的識別率會要求錄入者拍攝多角度的人臉照片,但是這樣對人臉錄入的體驗十分不好,另外在某些情況下只能獲取單一人臉(如基于身份證人臉)。因此本系統利用透視變化來增強人臉圖像,有效得提升非正人臉的識別率。
2.1透視變化
透視變化是指利用透視中心、像點、目標點三點共線的條件,按照定律旋轉定律使透視面繞透視軸旋轉某一角度,破壞原有的投影光線束,仍能保持透視面上投影幾何圖形不變的變換[8]。透視變化就是講畸變圖像中的每個像素點投射到無畸變圖像中的每一個像素點的過程,通用的透視變化公式為:由式(2)可以推導,只要得到四對畸變圖像與正視圖像相對應的坐標對就可以解出透視變換參數,從而求得透視變換矩陣,再將原始圖像中的每個像素點代入式(2)中,則可以得到透視變換后的圖像。
2.2基于透視變化的人臉增強法
本文利用透視變換模擬人向左抬頭、向右抬頭、仰頭和低頭的圖像,它們與原圖像的四個角(依次為左上、右上、右下、左下)的對應坐標分別為:(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。當圖像大小為112×92時,取s為8,原始人臉和經過透視變換的人臉如圖3所示。由圖3可以看出,透視變換后的圖像與原始圖像相比有一些變化,類似于頭部旋轉、頭部向上和頭部向下圖像。因此,可以通過視圖轉換來變換一個圖像以創建四個豐富面部圖像樣本的面部圖像。
3人臉活體檢測算法優化
卷積神經網絡有很強的圖像理解和判斷能力,在人臉活體檢測上有較好的成效,能有效鑒別真假臉。但是卷積神經網絡的計算量十分大,在資源受限的嵌入式設備上應用困難。這里提出一種新型卷積神經網絡-共享且密集的深度可分離通道卷積SDChannelNets。
3.1共享且密集的深度可分離通道卷積
標準卷積層中,輸入為Df×Df×m的特征圖,輸出為為Dg×Dg×n的特征圖。其中Df為輸入特征圖的寬度和高度,Dg為輸出特征圖的寬度和高度,m和n分別為輸入和輸出的通道數。一個卷積層的參數量取決于卷積核的參數量,而卷積核的參數量又與m×n的大小密切相關。共享且密集的通道卷積層的輸入輸出特征圖與標準卷積層的輸入輸出特征圖相同,但是卷積核只有一個長卷積核。輸入特征圖每次只與長卷積核的一部分進行卷積操作,這部分是參數共享的,用這操作來代替標準卷積層的相互獨立的卷積核的卷積操作。深度可分離卷積將標準卷積分解為用來過濾每一通道的特征的深度卷積和將這些特征融合的1×1卷積。在MobileNets中,1×1卷積的參數量占模型總的參數量的75%,于是這里將1×1卷積替換成1×1共享且密集的通道卷積。1×1卷積存在的參數量:1·1·m·n(4)1×1卷積存在的參數量(S為通道方向的步長):1·1·(m+(n-1)·S)(5)用這種方法壓縮了m×n項,大大減少了參數量。3.2SDChannelNets本文用共享且密集的深度分離通道卷積構建SDChannelNets。這里遵循MobileNetV2的基礎架構。本文去掉了MobileNetV2的瓶頸塊中的第一個1×1卷積,將深度卷積的深度系數設置為6或1,最后將瓶頸塊中的第二個1×1卷積替換為1×1共享且密集的通道卷積。SDChannelNet中的SDC瓶頸塊由上述修改構成。并且去掉了MobileNetV2中輸出通道數為1280的卷積層,MobileNetV2密集連接層的參數量占總參數量的24.3%。最后還去掉了第一個卷積層的激活函數,因為在少量基礎的特征通過非線性激活函數激活時產生損失大量基礎特征導致可用特性少量。SDChannelNets網絡結構表所示。本文使用keras深度學習框架對SDChannels步長為192的模型進行搭建,采用隨機梯下降訓練,權重衰減10-4,Nesterov動量為0.9,同時訓練使用64批量和100次的迭代次數。設置0.1的初始學習率。在迭代60%和80%將學習率除以10。在除了第一層的每個卷積層后加入BN層和Dropout層一直過擬合。最后在ROSE-Youtu人臉活體檢測數據集上與其他算法[9,10]進行測試,實驗結果如表2所示。
4實際系統測試與分析
4.1基于人臉增強的PCA人臉識別算法測試
實際測試時,讓實驗室的是十位同學擔任人臉測試來源,每位同學錄入三張照片在合法人臉文件夾里,根據之前的結果,將人臉增強的畸變s設置為8。每位同學在攝像頭前測試10次,共100次。實驗結果如表3所示。在數量級下的情況下識別有11%的明顯提高。
4.2基于SDChannelNets-192活體檢測算法測試
活體檢測部分每個同學在攝像頭前測試10次,作為真實人臉樣本,總共100個正樣本。然后每個同學的照片A4打印測試10次,共100個負樣本。這里與MobileNetsV2算法進行比較。對比實驗結果,本文提出的SDChannelNet-S192算法平均耗時減少了3326ms,錯誤接受率降低了百分之一,錯誤拒絕率提升了百分之零點八。
5結語
經過本文上述算法優化,使得嵌入式設備在人臉識別系統存在的人臉較小樣本下識別率低、活體檢測困難這二個缺陷得到了顯著改善。本文提出了一種新型的基于透視變換的人臉識別算法,并且提出一種新型卷積神經網絡-共享且密集的深度可分離通道卷積SDChannelNets,做出了人臉識別和人臉活體檢測在嵌入式設備上的優化,并經過測試,具有速度好,識別率高,安全可靠,有良好的應用前景。
作者:金千航 秦會斌 張建楠 單位:杭州電子科技大學電子信息學院CAE研究所