潘俊霖
輕量化卷積神經網絡的人臉識別方法
潘俊霖
(廣西旅島高速公路服務區有限公司,廣西 南寧 530000)
由于計算資源的局限性,現有基于深度學習技術的人臉識別方法難以部署在嵌入式設備上。針對此問題,文章在現有算法的基礎上,提出了一種輕量化卷積神經網絡的人臉識別方法。該方法依據分層結構,將像素拼接成高維的人臉表示,通過在Wider Face數據集上進行網絡的訓練與評測。所提出的識別網絡模型大小約為2.5 MB,識別速率約為23 ms,能夠滿足計算資源有限的嵌入式硬件設備的需求,人臉識別方法同時考慮了嵌入式硬件設備以及卷積神經網絡的優缺點,為在各種場景下部署高精度低成本的人臉識別方法提供了一種思路。
人臉識別;深度學習;輕量化;卷積神經網絡;嵌入式設備
人臉識別技術[1]是一種用于識別生物語義特征的技術,也一直都是計算機視覺領域中的一個研究熱點,已在軍事、金融等諸多領域得到了廣泛的應用。人臉識別任務中傳統方法極其容易受到外界環境的影響,對于技術落地的應用與部署無疑是一種致命的挑戰。2012年深度學習技術的出現,改變了各類視覺任務的根據,將視覺任務的精度推上了一個新的臺階。卷積神經網絡[2,3]作為深度學習技術的代表之一,通過多層卷積單元來提取和轉換目標特征,以學習不同層次的表示實現視覺任務的抽象表征。
2014年,DeepFace[4]首次在無約束條件下在LFW基準[5]上實現了SOTA精度,并接近人類識別的性能。隨著VGGNet系列[6]、GoogleNet系列[7]、ResNet系列[8]等經典網絡的出現,卷積神經網絡的參數量以及計算成本越來越大,通常需要大量的GPU顯卡支撐,普通的CPU顯卡根本滿足不了網絡學習訓練的需求。EfficientNets[9]、Slim-CNN[10]等模型作為人臉識別任務的最新代表之一,從網絡結構的設計方面進行了一系列的探索。Deng 等[11]提出的加性角邊緣損失函數以及Wang 等[12]提出的大余弦損耗損失函數都以損失函數的優化作為研究,在人臉識別基準上的性能有所提升。這些大部分用于人臉識別任務的卷積神經網絡雖然在現有公開的數據集上獲得越來越高的精度,但其網絡的深度也越來越深、結構也越來越復雜。因此,在計算資源有限的嵌入式設備上進行基于卷積神經網絡的人臉識別方法的部署是當下無法完成的任務。為了解決算法部署的難題,卷積神經網絡的輕量化研究設計已經成為了目前計算機視覺領域中的一種新趨勢。
研究者發現,針對輕量且高效的卷積神經網絡在性能可接受的前提下,小模型比大模型具有參數少、容易分布式訓練、便于模型更新、利于部署等特點??偟膩碚f,輕量化的卷積神經網絡可以從四個方面進行深入考慮。一是對現有的較大模型通過網絡剪枝、量化等手段進行模型的壓縮,使較大模型向較小模型轉變;二是優化卷積層的設計,采用深度可分離卷積結構或者1×1卷積核;三是優化網絡的深度參考ResNet系列的經典網絡設計;四是組合優化超參數、網絡結構、優化器等學習訓練的基礎組件。SqueezeNet、MobileNet、ShuffleNet、Xception等網絡結構作為現有輕量化卷積神經網絡的代表,通過對網絡結構中的卷積過程進行優化,使得網絡以更少的參數量解決模型進行預測的速度問題?;诖耍疚脑谄胶饩W絡復雜度以及預測處理速度的前提下,根據人臉識別算法的特點提出了一種輕量化卷積神經網絡的人臉識別方法。該網絡結構主要的核心包括:ResNet網絡中的殘差連接、深度可分離卷積替換大部分標準卷積過程、由空洞卷積組成的并列處理單元、多層特征的聯合構造網絡輸出特征(MultiBox模塊)。最終,本文給出了幾種所提出網絡的變體網絡,分別從預測性能以及處理速度方面進行考慮,與實際的應用場景充分地相匹配。
基于嵌入式硬件設備的人臉識別算法通常被應用于以視頻流為主的任務,這就要求識別算法在計算資源有限的前提下具備能夠實時處理的條件,并且保證一定的識別精度。所提出的卷積神經網絡以識別方法適應于嵌入式硬件設備的處理效率為前提,研究設計出一種輕量化的網絡結構,實現對復雜場景下快速、有效的人臉識別。
平衡方法復雜性和性能準確性是設計基于嵌入式硬件設備的人臉識別方法的基礎,通過降低卷積神經網絡的復雜性就必然會犧牲識別性能的準確性,這也是由于輕量化網絡結構的泛化能力有限,無法更好地進行高維語義特征的表征。
一個卷積層的參數量由輸入通道、輸出通道以及卷積核的大小共同決定。從視覺感受野的大小考慮,通常兩個3×3大小的卷積核級聯與一個5×5大小的卷積核具有同樣大小的視覺感受野,并且具有差不多的性能,但兩個3×3大小的卷積核參數少于一個5×5大小的卷積核,而1×1大小卷積核則被用于整合不同通道的特征。假設輸入通道10,輸出通道是20,對于5×5標準卷積核,其參數量為10×5×5×20=5000,對于兩個3×3標準卷積核,其參數量為2×10×3×3×20=3600。對于應用于邊緣設備的網絡模型而言,在犧牲微弱性能效果的基礎上偏向于選擇參數量更少的卷積核,因此本文也不考慮采用5×5大小的卷積核進行網絡模型的構建。
實際上,為了進一步降低網絡的復雜性,大部分部署于智能邊緣設備的卷積神經網絡考慮以深度可分離卷積替換標準的卷積過程,而不是直接全部采用3×3大小的卷積核來進行構建。深度可分離卷積與標準卷積相比,參數數量和計算成本都得到大幅度的降低,一組深度可分離卷積由兩個部分組成:Depthwise Convolution(逐通道卷積)和Pointwise Convolution(逐點卷積)。逐通道卷積的每一個卷積核分別獨立負責一個通道的卷積計算,卷積核的數量與輸入特征的通道數保持一致,特征通道與逐通道卷積的每一個卷積核一一對應;逐點卷積可以等價為1×1大小的標準卷積核,一組逐點卷積核由輸入特征通道數和輸出特征通道數共同決定,一組逐點卷積核共有N個(輸出特征通道數)尺寸為1×1×M(輸入特征通道數)的三維卷積核。逐點卷積核的作用是將特征信息沿著深度方向進行線性加權組合,形成新的特征。以尺寸為3×3的逐通道卷積核為例,假設輸入通道10,輸出通道是20,深度可分離卷積的參數量為10×3×3+10×1×1×20=290,其中逐通道卷積的參數量為90,逐點卷積的參數量為200。而一組標準卷積的參數量為10×3×3×20=1800,是深度可分離卷積參數量的9倍。大量的研究證明,雖然一組深度可分離卷積的性能效果低于一組標準卷積的性能效果,但可以通過增加卷積核的組數來避免參數量過少帶來的影響,因此,深度可分離卷積是將卷積神經網絡部署在智能邊緣設備上的必要基礎,在此基礎上,本文提出了基于深度可分離卷積的網絡模型,以應用于人臉識別領域的工程項目。
圖1和圖2詳細地描述了本文所提出的網絡結構。通常對于越復雜的任務,需要網絡模型的泛化能力就越強,網絡模型的泛化能力在一定程度上取決于網絡的深度(即卷積層的層數)。隨著網絡模型卷積層層數的加深,網絡模型出現梯度爆炸、梯度彌散、甚至是網絡退化的可能性急劇上升,導致性能效果退化問題,從而無法獲得有效的網絡模型。而ResNet殘差網絡結構的出現,以跳躍連接的方式解決了加深網絡層數所帶來的嚴重后果。因此,本文所提出的網絡結構中大部分基礎模塊均參考了ResNet系列網絡的block殘差結構,即圖1中的DepthBlockA和DepthBlockB兩個基礎block模型。DepthBlockA與DepthBlockB的主干部分(除去跳躍連接分支ConvBlockA)由深度可分離卷積構成,輸入特征首先是經過一組逐通道卷積的卷積處理,然后分別經過BatchNorm2d模塊以及Relu激活函數,所得到的特征再依次經過一組逐點卷積的卷積處理、BatchNorm2d模塊以及Relu激活函數,最后得到經過主干部分處理的輸出特征。其中BatchNorm2d模塊的作用是對特征數據進行歸一化的處理,從而避免下一部分數據處理因數據過大等因素所造成過擬合的問題,一般將其放在卷積層之后;激活函數的作用則是為網絡模型引入非線性特性,從而解決一些線性網絡模型難以解決的問題(只有線性特的網絡模型一般很難有效表達特征數據),激活函數有Sigmoid函數、Tanh函數、ReLU函數、LeakyReLU函數等,而本文考慮采用普遍通用的ReLU函數。DepthBlockA與DepthBlockB的區別在于卷積過程中卷積核的滑動步長stride的不同,DepthBlockA的滑動步長設定為1,DepthBlockB的滑動步長設定為2。ConvBlockC表示標準的卷積過程,PANBlock以空洞卷積為基礎,實現多尺度上下文信息的捕獲??斩淳矸e由標準卷積演變而來,其作用是在不改變參數量的基礎上盡可能擴大感受野,感受野的大小由空洞率參數決定,空洞率越大其感受野就越大。多個不同空洞率的空洞卷積核進行疊加時,會得到多尺度的上下文特征信息,這對于很多視覺任務而言是一種提升性能效果的基本手段。因此,本文所提出網絡模型中的PANBlock模塊主要的作用也是為了實現多尺度上下文信息的捕獲,從而增強網絡模型的表達能力。P1、P2、P3、P4是主干網絡中幾個卷積層的特征輸出,分別經過MultiBox模塊的處理,對應得到loc(Match Boxes)、conf(類別置信度計算)以及landm(關鍵點檢測)。訓練過程中,采用SSD算法中所提出的損失函數(Multibox Loss)進行監督學習。

圖1 網絡結構

圖2 MultiBox模塊
圖2描述的P1、P2、P3、P4經過MultiBox模塊處理分別得到的loc、conf以及landm,通過簡單的拼接(Concat操作)得到最終的輸出,即Concat(loc1, loc2, loc3, loc4),Concat(conf1, conf2, conf3, conf4),Concat(landm1, landm2, landm3, landm4)。
數據集是訓練卷積神經網絡的重要基礎,現有許多算法取得SOTA的性能都離不開龐大圖像數據的支持,比如包含大約 7930萬張、分為 75000個類別的Tiny Images數據集[13],包含大約 1400萬張、分為10 萬個類別的ImageNet數據集[14]等。理論上,圖像數據越多,網絡模型經過學習訓練后的泛化能力就能越強。然而,最終網絡模型的泛化能力也跟網絡模型的大小有關,網絡模型越大,其潛在的泛化能力的上限就越高;網絡模型越小,其泛化能力就越局限,在Tiny Images、ImageNet這些種類很多的數據集上很難完成學習訓練,原因在于網絡模型很難同時泛化這些類別的共同特征,超出了其學習能力的范圍。預訓練模型的遷移訓練作為計算機視覺領域的一種常規手段,通過在大數據集上進行初步的預訓練,將網絡模型的泛化能力提升到一定的程度,然后再基于目標數據集進行最終的學習訓練。然而,由于嵌入式硬件設備的條件限制無法使用大網絡模型,小網絡模型又很難在大數據集上進行泛化,因此文中考慮直接基于Wider Face數據集[15]進行學習訓練以及模型的測試評估。Wider Face作為人臉識別任務里面一個數據量適中的數據集,大約有3.2萬張圖像,圖像的場景也比較復雜,包括在姿態、光照、遮擋、尺度等方面,同時該數據集還定義了3個級別的檢測難度:Easy(容易)、Medium (適中)和Hard (困難)。
文中所提出的卷積神經網絡模型基于Pytorch深度學習框架進行開發,所有學習訓練以及測試評估的實驗環境包括:Intel(R) Core(TM) i7-10700K CPU @3.80 GHz、顯存為8G的GeForce RTX3070顯卡。網絡模型學習訓練過程中涉及到主要的參數設置:帶momentum=0.9的SGD優化器,300輪次epoch迭代,學習率初始化為0.01,并按照epoch的迭代次數為[100, 200, 250]時階梯式下降0.1倍,weight decay=5e-4,批次大小batch size=64,訓練圖像大小按比例設定為300*300。需要注意的是,本文在測試階段僅基于CPU來完成性能的評估(不考慮GPU顯卡的加速特性)。
性能驗證是網絡模型進行后續部署應用的必要前提。表1描述了所提出網絡模型的各個模塊的貢獻,輸入圖像的大小設定長邊為640,短邊等比例縮放。Backbone表示主干網絡,如圖1左邊的部分,其中DepthBlockA以及DepthBlockB均去除了ConvBlockA模塊;Backbone-A表示將主干網絡Backbone中的第一個DepthBlockB模塊替換成ConvBlockA模塊;Backbone-B表示在Backbone-A的基礎上,將主干網絡中的PANBlock模塊替換成DepthBlockA模塊;Backbone-C表示DepthBlockA以及DepthBlockB均保留ConvBlockA模塊;Backbone-D表示在Backbone-C的基礎上,主干網絡中的第一個DepthBlockB模塊替換成ConvBlockA模塊與ConvBlockC模塊的并聯(輸入分別經過ConvBlockA與ConvBlockC,得到的輸出結果進行相加,其中stride=2)。
表2展示了長邊分別設定為480與320時的性能。可以看到,當隨著輸入圖像的大小逐漸變小時,各類模型的性能都呈現出不同幅度的下降。在實際應用過程中,可以根據實際的需要,選擇合適的圖像大小,在保證一定性能的前提下提高處理的速率。一些不同的復雜場景,人臉信息量從左到右、從上到下逐漸增加,當圖像被限定為一定大小時,圖像中單個人臉信息所占的像素非常有限,提高了識別的難度。而本文所提出的網絡模型,在識別難度較大的情況下,依舊能夠獲得較佳的性能,圖像中大部分的人臉依舊能夠準確地識別。

表1 不同模塊的貢獻(640*640)

表2 不同模塊的貢獻(480*480與320*320)
在邊緣設備上應用深度學習計算進行數據的處理是今后計算機視覺領域發展的新趨勢。對于一個實際環境中的應用系統,包含訓練階段和部署階段,而部署階段得以實施的前提是訓練階段取得較好的效果,能夠滿足項目的實際要求。在訓練階段,數據采集和處理是首要任務,分析數據特性,設計合適的卷積神經網絡架構并進行有效訓練,獲得魯棒性良好的網絡模型。在部署階段,考慮待部署邊緣設備的基本情況,采用合理的方法將訓練獲得的學習模型部署到設備段,并進行測試運行,保證系統的魯棒性。
在人臉識別應用領域,本文基于計算機視覺以及深度學習技術提出了一種面向與嵌入式硬件設備的輕量化人臉識別網絡模型,旨在解決因硬件設備資源有限而難于部署算法的問題,從而實現卷積神經網絡與嵌入式硬件設備的相結合,有效地促進人工智能的社會化。本文所提出的網絡模型在保證處理速率的同時,以較低的復雜度實現較佳的模型預測精度,達到了部署的基本要求。然而,本文的研究依舊存在著一定的不足,所提出網絡模型的參數依舊存在著一定的冗余。實際上,計算機視覺與生物視覺有著很大的關聯,計算機視覺的發展在一定程度上借鑒了生物視覺系統有效處理視覺信息的一些生理特性。人臉識別屬于計算機視覺任務中的較低級任務,計算量過大的網絡模型是不必要的,而生物視覺系統中一些淺層視覺層的生理特性是設計超輕量化網絡模型的重要參考,這將是人臉識別應用系統設計中下一步的研究方向,期望后續的研究能夠將模型的參數做進一步的壓縮,從而再次減小網絡模型的大小,在保證模型預測精度的同時,有效提升模型的處理速率。
[1] 王旬,汪淑賢,唐璐丹,等. 一種OpenCV 與云計算結合的人臉識別方法[J]. 大眾科技,2019,21(5): 14-15, 48.
[2] 盧宏濤,張秦川. 深度卷積神經網絡在計算機視覺中的應用研究綜述[J]. 數據采集與處理,2016,31(1): 17.
[3] Zeiler M, Fergus R. Visualizing and understanding convolutional neural networks[C]. European Conference on Computer Vision, 2013.
[4] Taigman Y, Yang M, Ranzato M A, et al. DeepFace: closing the gap to human-level performance in face verification[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2014.
[5] Huang G B, MRattar M, Berg T, et al. Labeled faces in the wild: a database for studying face recognition in unconstrained environments[J]. Month, 2008, 3: 321923.
[6] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[C]. International Conference on Learning Representations, 2015.
[7] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[J]. IEEE Computer Society, 2014.
[8] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]. Computer Vision and Pattern Recognition, 2016.
[9] Tan M, Le Q V. EfficientNet: rethinking model scaling for convolutional neural networks[J]. arXiv e-prints, 2019, 5: 11946.
[10] Wikanningrum A, RIachmad R F, Ogata K. Improving lightweight convolutional neural network for facial expression recognition via transfer learning[C]. 2019 International Conference on Computer Engineering, Network, and Intelligent Multimedia (CENIM), 2019.
[11] Deng J, Guo J, Zafeiriou S. ArcFace: additive angular margin loss for deep face recognition[J]. arXiv e-prints, 2018, 18: 7698.
[12] Wang H, Wang Y, Zhou Z, et al. CosFace: large margin cosine loss for deep face recognition[C]. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2018.
[13] Torralb A, Fergus R, Freeman W T. 80 million tiny images: a large data set for nonparametric object and scene recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 30(11): 1958-1970.
[14] Jia D, Wei D, Socher R, et al. ImageNet: a large-scale hierarchical image database[C]. 2009 IEEE Conference on Computer Vision and Pattern Recognition, 2009.
[15] Yang S, Luo P, Loy C C, et al. WIDER FACE: A Face Detection Benchmark[C]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
Face Recognition Method Based on Lightweight Convolutional Neural Network
Due to the limitation of computing resources, the existing face recognition methods based on deep learning technology are difficult to deploy on embedded devices. To solve this problem, based on the existing algorithms, this paper proposes a lightweight convolutional neural network face recognition method. According to the hierarchical structure, the pixels are spliced into a high-dimensional face representation, and the network is trained and evaluated on the Wider Face dataset. The size of the proposed recognition network model is about 2.5 MB and the recognition rate is about 23 ms, which can meet the needs of embedded hardware devices with limited computing resources. The face recognition method considers the advantages and disadvantages of embedded hardware devices and convolutional neural network, which provides an idea for deploying high-precision and low-cost face recognition methods in various scenes.
face recognition; deep learning; lightweight; convolutional neural network; embedded device
TP38
A
1008-1151(2022)06-0018-04
2022-02-26
潘俊霖(1991-),男,供職于廣西旅島高速公路服務區有限公司,研究方向為人工智能。