?

基于非對稱卷積-壓縮激發-次代殘差網絡的人臉關鍵點檢測

2021-09-18 06:22王賀兵張春梅
計算機應用 2021年9期
關鍵詞:級聯網絡結構關鍵點

王賀兵,張春梅

(北方民族大學計算機科學與工程學院,銀川 750021)

(*通信作者電子郵箱chunmei66@hotmail.com)

0 引言

人臉關鍵點檢測作為計算機視覺主要研究方向之一[1],其應用場景包括人臉表情識別[2]、人臉追蹤[3]、身份驗證[4]等。雖然被廣泛地研究,但是存在多尺度人臉、復雜表情、光照、姿態和遮擋等情況,獲取高精度人臉關鍵點仍是一個具有挑戰性的問題。

人臉關鍵點檢測是一項檢測人臉面部關鍵點位置的視覺任務[5],即在一張給定的人臉圖像坐標系中,定位出人臉面部關鍵區域的坐標,例如眼睛、嘴角、臉部輪廓等。本文是對人臉左眼、右眼、鼻尖、左嘴角和右嘴角五點進行定位。

人臉關鍵點檢測算法從建模方法上劃分大體可以分為三類:

1)基于形狀優化建模?;顒有螤钅P停ˋctive Shape Model,ASM)[6]將人臉關鍵點坐標構建成形狀向量,人臉對齊計算出平均形狀向量然后進行主成分分析(Principal Component Analysis,PCA)降維得到形狀模型,為每一個關鍵點提取局部特征,以局部特征作為約束條件迭代匹配直至收斂?;顒油庥^模型(Active Appearance Model,AAM)[7]是由ASM 活動形狀模型改進而來,算法在構建形狀模型的基礎上還構建了紋理模型,將形狀模型與紋理模型融合再PCA 降維形成AAM 模型。ASM 與AAM 的泛化能力較差,對差異性較大的人臉準確率會下降,同時這種近似窮舉搜索的方式在一定程度上也影響了計算效率。

2)基于級聯回歸建模:級聯回歸算法一般需要訓練一系列回歸器,通過級聯回歸器逐步將初始形狀回歸到關鍵點真實位置,每一步回歸器的計算都依賴于先前回歸器的輸出。級聯姿態回歸(Cascaded Pose Regression,CPR)[8]把由數據集形狀向量計算出的平均人臉作為輸入,提取姿態索引特征送入回歸器,將回歸偏移量加上當前階段形狀向量作為下一階段形狀向量,遞歸至收斂。CPR 很依賴回歸函數和人工特征的選擇,其有效程度會直接影響人臉關鍵點定位的精度。

3)基于深度學習建模。神經網絡具有近似擬合任意函數的能力,因此被廣泛地應用在各個領域中,并取得了相當矚目的成果。級聯深度卷積神經網絡(Deep Convolutional Neural Network,DCNN)算法[9]首次將卷積神經網絡(Convolutional Neural Network,CNN)[10]應用到人臉關鍵點檢測任務中,同時結合了級聯回歸的思想,采用多階段級聯CNN 回歸策略,在人臉五點檢測上取得了相當高的精度。級聯DCNN 算法精心設計了三個階段:第一階段以整張人臉和裁剪后的左右眼鼻尖、鼻尖左右嘴角作為輸入,分別用來預測人臉五點、左右眼和鼻尖、鼻尖和左右嘴角的坐標,然后對預測的結果取平均值作為第一階段的輸出;第二階段以第一階段輸出的結果為中心對原圖像進行分割,將含有左右眼、鼻尖、左右嘴角的分割結果作為輸入,每兩個CNN 預測一個人臉器官的坐標偏差,取平均后作為該器官在第二階段的輸出;第三階段在第二階段的輸出結果上對原圖像進行裁剪預處理后作為輸入,同樣每兩個CNN 預測一個人臉器官的坐標偏差,取平均后作為該器官在第三階段的輸出,算法流程如圖1 所示。整個算法以第一階段預測結果為基礎,經第二、三階段結果矯正后,作為整個算法最終的輸出。精心設計的級聯DCNN 算法雖然取得了很高的精度,但是算法使用了三個階段來對人臉關鍵點坐標進行回歸計算,相鄰階段間還需要繁瑣的圖像預處理,整個算法流程相當地復雜。

圖1 級聯DCNN算法流程Fig.1 Flowchart of cascade DCNN algorithm

為解決級聯算法在人臉五點檢測上不僅需要多階段回歸還需要在相鄰階段間進行圖像預處理的問題,本文在次代殘差網絡(Next Residual Network,ResNeXt)[11]基礎上,添加非對稱卷積(Asymmetric Convolution,AC)[12]結構,強化網絡空間學習能力提升對翻轉、旋轉圖像的魯棒性,添加壓縮激發結構(Squeeze Excitation,SE)[13],提高特征映射的通道相關性,構建出非對稱卷積-壓縮激發ResNeX(tAsymmetric Convolution-Squeeze Excitation ResNeXt,AC-SE-ResNeXt)網絡,只使用單階段一個AC-SE-ResNeXt 網絡便可以完成人臉五點關鍵點檢測任務。

本文的主要工作如下:1)在ResNeXt 網絡結構的基礎上添加AC結構和SE結構,強化網絡空間學習和通道學習;2)為了能精確擬合復雜環境下人臉,將AC-SE-ResNeXt 網絡模型加深到101 層,在單階段只使用一個網絡情況下,不僅達到了級聯策略的精度還降低了檢測失敗率,提高了算法魯棒性。

1 相關網絡結構

1.1 ResNeXt塊結構

在訓練網絡時,隨著網絡深度增加,輸出結果會逐漸增至飽和后迅速退化,He等[14]為解決深度網絡中存在的網絡退化問題,提出殘差網絡(Residual Network,ResNet),在ResNet 中核心部分是殘差單元,使得網絡可以進行殘差學習和恒等映射,同時由于恒等映射ResNet 在一定程度上也能緩解梯度消失的問題。

ResNeXt 保留了ResNet 的恒等映射部分,將殘差學習由單路徑卷積擴展成多路徑分組卷積,多路徑分組卷積遵循分割、轉換、合并范式,輸入數據會被分別送入到數量為分支基數(Cardinality)的多路徑中,各路徑獨立進行卷積計算,計算結果以通道為基準進行連接,ResNeXt塊如圖2所示。

圖2 ResNeXt塊結構Fig.2 Structure of ResNeXt block

1.2 非對稱卷積模塊

非對稱卷積結構在非對稱卷積網絡(Asymmetric Convolution Network,ACNet)中最先被使用,利用CNN 卷積核中權重與權重空間位置的關系強化普通卷積層,添加水平方向和豎直方向卷積運算提升模型對翻轉和旋轉圖像的魯棒性。文獻[10]通過剪枝實驗證明,在卷積核中不同空間位置的權重其重要性也不同,中間骨架的權重最為重要,因此在訓練網絡時,可以將單路徑n×n卷積拆分成n×n、n× 1 和1×n三路卷積,在測試時將三路卷積權重線性相加重新合并成n×n,通過骨架權重合并的方式強化卷積層所提取的空間特征,同時還保持原測試網絡結構不變,非對稱卷積模塊如圖3所示。

圖3 非對稱卷積模塊示意圖Fig.3 Schematic diagram of asymmetric convolution module

1.3 壓縮激發模塊

壓縮激發網絡(Squeeze-and-Excitation Network,SENet)從特征通道相關性的角度出發構建網絡模型,通過強化特征映射中重要通道的特征,減弱不重要通道的特征來增強卷積層所提取特征的指向性。SENet 的核心是壓縮激發結構,此結構共分為兩個過程:壓縮與激發。對高寬通道數分別為H×W×C的輸入,首先進行全局平均池化(Global Average Pooling,GAP),輸出為1× 1×C的數據,該過程稱為壓縮;然后對1× 1×C的輸入進行兩級全連接(Full Connection,FC),該過程稱為激發;最后把激活函數Sigmoid的輸出1× 1×C作為一個縮放尺度乘到原輸入H×W×C的C個通道上,作為下一級的輸入,壓縮激發模塊的結構如圖4所示。

圖4 壓縮激發模塊結構Fig.4 Structure of squeeze-and-excitation module

2 AC?SE?ResNeXt人臉關鍵點檢測算法

2.1 AC-SE-ResNeXt塊結構

本文算法是在自行設計的網絡結構AC-SE-ResNeXt 基礎上對人臉五個關鍵點:左眼(Left Eye center,LE)、右眼(Right Eye center,RE)、鼻尖(Nose tip,N)、左嘴角(Left Mouth corner,LM)和右嘴角(Right Mouth corner,RM)進行檢測。AC-SE-ResNeXt 網絡結構的核心組成部分是AC-SE-ResNeXt塊,如圖5所示。

圖5 AC-SE-ResNeXt塊Fig.5 AC-SE-ResNeXt block

輸入數據為矩陣X(b,h,w,c),其中:b表示一次送入網絡中樣本的數量即批量;h和w、c分別表示輸入矩陣的高、寬和通道數。數據進入AC-SE-ResNeXt 塊后會先進行批量歸一化(Batch Normalization,BN)[15]操作,以消除網絡在訓練過程中由于參數更新導致每一層輸入數據分布不穩定所帶來的學習速度下降和梯度消失的問題。在單通道上批量歸一化可形式化表示為:

其中:n表示通道且0 ≤n≤c-1;參數ε是一個很小的常數,保證分母大于0;兩個可學習的超參數γ和β分別表示拉伸量和偏移量。經BN 操作輸出的數據會由整流線性單元(Rectified Linear Unit,ReLU)作非線性映射,由此之后數據將分別流向恒等映射和殘差學習兩條分支。恒等映射分支會檢查輸入數據與輸出數據的通道匹配度,若不匹配則采用1× 1卷積擴充通道使之匹配,1× 1卷積運算具體可表示為:

其中:m表示一次送入網絡中樣本的數量且0 ≤m≤b-1。圖5 中恒等映射分支卷積操作CONV 1× 1× 64 × 256 表示卷積核的尺寸為1× 1,輸入通道數為64,輸出通道數為256。

為了使殘差學習分支可以提取出更豐富的特征,在ResNeXt 的分割、轉換、合并范式基礎上替換普通卷積為AC結構,以提高卷積層的空間信息提取能力和對翻轉、旋轉圖像的魯棒性,同時添加SE 結構,在網絡訓練過程中為特征映射的不同通道學習一個權重系數,強化重要通道特征,弱化不重要通道特征,結合通道相關性增強特征映射的表征。殘差學習分支的1× 1 卷積通過學習特征映射通道相關性將輸入數據各個通道映射到新的特征空間中,卷積結果會被送入并行的多路徑中,每條路徑采用相同的拓撲結構但訓練參數相互獨立,給層間結構更多可以根據數據自動調節的空間,提高特征提取能力。其中基于硬件性能的考慮,本文使用了8 條并行路徑。在每條路徑層間連接的轉換部分借鑒了非對稱卷積思想,將單路徑3× 3 卷積拆分成3× 1、1× 3 和3× 3 三路并行卷積,不同尺寸卷積核的卷積運算聚焦不同的空間信息,把提取到的多尺度特征進行線性相加融合,強化卷積核骨架部分提取的特征,使得映射結果包含更豐富的空間信息。融合后的數據經過ReLU 函數作非線性映射,各個分支的輸出結果以通道為基準進行連接合并,上述過程可表示為:

其中:X為輸入矩陣;CONVn×n(?)表示卷積核尺寸為n×n的卷積運算;BN(?)為批量歸一化運算;C(?)表示以輸入矩陣通道為基準的連接運算。

數據矩陣流動到SE 結構會分為兩條分支:一條分支上的數據會原樣向下傳遞。另一條分支會對數據矩陣先進行GAP運算,即:

其中:n表示通道且0 ≤n≤c-1?;谕ǖ赖恼w信息來對原始數據矩陣進行降維,每一個矩陣切片的均值代表該通道初始權重。然后連接神經元個數為的FC 層,其中c表示輸入數據的通道數目,r為一個超參數,本文使用的數值為16。經激活函數ReLU 運算后再連接神經元個數為c的FC層,以保證跟原始數據通道匹配,最后sigmoid 函數將結果限制到范圍[0,1]內。把通過訓練集學習出的權重系數乘到原始數據對應通道上,使得不同通道的特征指向性更強。

2.2 算法網絡結構

AC-SE-ResNeXt 將整張人臉圖像作為網絡的輸入,輸出網絡回歸的人臉關鍵點坐標。一張人臉圖像X∈Rq×1,其中q為圖像像素個數,Y∈R2p×1表示輸出的p個關鍵點(p=5)坐標。整個人臉關鍵點檢測任務就是去學習一個人臉圖像輸入矩陣到人臉器官坐標輸出的映射函數f:X→Y,其中函數f需滿足關系:

其中:向量Yt表示真實人臉器官坐標。從數學角度來看,人臉關鍵點回歸任務其實是一個逼近問題,在給定的訓練樣本中去學習一個映射函數,用深度神經網絡來求解回歸問題,那么映射函數的形式便是神經網絡的結構。神經網絡具有近似擬合任意函數的能力,通過加深網絡和改進網絡結構,可以使網絡的擬合能力更強,近似精度更高。

人臉圖像具有紋理結構性的特點,即一般雙眼在鼻子上方,嘴巴在鼻子下方,器官間的相對位置固定。網絡在學習人臉關鍵點與對應坐標的映射關系時,需要將人臉器官間相互約束的結構性信息隱含其中,顯式地學習像素點到坐標的回歸關系,同時還需要隱式地學習圖像全局上下文信息,結合這兩方面的信息輸出預測結果。為了使網絡提取出更豐富的特征,從空間學習和通道學習兩個方面加強網絡特征提取能力,同時為了保證預測結果的精度,將整個網絡加深到101 層,AC-SE-ResNeXt 網絡結構概覽如圖6 所示。人臉邊界框由先驗知識人臉檢測器得到,依據邊界框坐標將裁剪后的人臉圖像送入網絡中。網絡結構詳細信息如表1所示。

表1 AC-SE-ResNeXt網絡詳細信息Tab.1 AC-SE-ResNeXt network details

圖6 AC-SE-ResNeXt網絡結構概覽圖Fig.6 Overview of AC-SE-ResNeXt network structure

3 實驗與結果分析

平均誤差率和失敗率被廣泛地應用于人臉關鍵點檢測算法中[16-19],誤差率和失敗率可以評價整個算法的準確性和可靠性。平均誤差率定義為:

其中:(x,y)和(x′,y′)分別表示關鍵點的真實坐標和網絡預測的坐標;歸一化參數w可以是人臉檢測器檢測出的人臉框邊長,也可以是人臉雙目間距離。平均誤差率超過給定的閾值則被認為檢測失敗。為了與其他算法作比對,本文使用人臉雙目距離作為歸一化參數,失敗率閾值設置為10%。

3.1 實驗數據

數據集分為三個部分:訓練集、驗證集和測試集。其中,訓練集和驗證集是由級聯DCNN 算法所使用的13 466 張人臉圖像數據增強(旋轉、平移)而來,增強后的數據共26 932 張,訓練集與驗證集分別使用了21 632 張和5 300 張。測試集使用的是公共數據集BioID[20]和LFPW[21],BioID 數據集中的人臉圖像是在實驗室條件下采集得到,LFPW 數據集則是從網絡上搜集的人臉圖像。對得到的公共數據集首先要進行數據清理,剔除掉數據集中因格式損壞、人臉邊界框偏差過大而無法使用的人臉圖像,經處理后的BioID 數據集和LFPW 數據集分別為1 471 張、662 張。同時,BioID 數據集中的人臉圖像為單通道灰度圖像,為了保持網絡輸入通道一致性,將BioID 數據集單通道的人臉圖像擴充為三通道。

3.2 實驗細節與縱向對比

本文所提AC-SE-ResNeXt 人臉關鍵點檢測算法的訓練和測試均是基于開源深度學習框架,其中網絡訓練過程中所使用的損失函數為:

網絡權重采用Xavier[22]初始化方法,學習率設置為0.01,同時網絡在訓練過程中會依據提前設置的計劃表動態調整學習率,在經過120、240 和300 次迭代時,會分別使學習率減小為原來的1/10,最終學習率為0.000 01,整個算法的迭代次數為450。訓練過程中使用L2正則減少過擬合,其中正則化參數設置為0.000 1。使用Adam[23]優化器對損失函數即式(10)進行優化,訓練批量的大小BatchSize設置為676。

縱向對比實驗發現會造成結果產生明顯性差異的參數是網絡深度,實驗初期選用深度為50 層,其他參數設置基本相同的網絡結構,實驗結果精度上不如101 層網絡,具體對比如表2~3所示。

表2 在LFPW測試集上50層網絡與101層網絡的平均誤差率 單位:%Tab.2 Mean error rate of 50-layer network and 101-layer network on LFPW test set unit:%

表3 在BioID測試集上50層網絡與101層網絡的平均誤差率 單位:%Tab.3 Mean error rate of 50-layer network and 101-layer network on BioID test set unit:%

3.3 實驗結果分析

為了驗證本文算法在人臉關鍵點檢測上的有效性,除了與級聯DCNN 算法[9]進行比較外,同時與已有的人臉五點關鍵點檢測算法和商業軟件進行比較。統計對比各個算法在LFPW、BioID 測試集上平均誤差率和失敗率如表4~7 所示。本文算法在測試集LFPW 上右眼平均誤差率低于級聯DCNN算法,左眼、鼻尖、左嘴角和右嘴角平均誤差率略高于級聯DCNN 算法,明顯優于其他算法;各個關鍵點失敗率均低于其他算法,所有算法的綜合平均誤差率如表6~7所示,其中本文算法綜合平均誤差率為2.3%,級聯DCNN 算法綜合平均誤差率為2.19%。在測試集BioID上鼻尖、右嘴角平均誤差率低于級聯DCNN 算法,左眼、右眼和左嘴角略高于級聯DCNN 算法,較其他算法有明顯的優勢;左右眼失敗率略高于級聯DCNN 算法,剩余關鍵點失敗率均低于其他算法,其中本文算法綜合平均誤差率為1.99%,級聯DCNN 算法綜合平均誤差率為2.02%。本文算法在平均誤差率上與級聯DCNN 算法相差不大,相較于其他算法優勢明顯;在失敗率上相較于其他算法有所提升,說明本文算法在關鍵點檢測過程中魯棒性更強,可靠性上更有優勢。

表4 不同算法在LFPW測試集上的平均誤差率 單位:%Tab.4 Mean error rates of different algorithms on LFPW test set unit:%

表5 不同算法在BioID測試集上的平均誤差率 單位:%Tab.5 Mean error rates of different algorithms on BioID test set unit:%

表6 不同算法在LFPW測試集上的失敗率與綜合平均誤差率 單位:%Tab.6 Failure rates and comprehensive average error rates of different algorithms on LFPW test set unit:%

圖7 為在驗證集、LFPW 和BioID 測試集上人臉關鍵點檢測結果示例,在不同光照、姿態、表情、面部遮擋等多種環境下,本文算法均能較為準確地定位到人臉左眼、右眼、鼻尖、左嘴角和右嘴角關鍵點的位置。

圖7 在驗證集、LFPW和BioID測試集上的人臉關鍵點檢測結果示例Fig.7 Examples of facial landmark detection results on validation set,LFPW and BioID test sets

4 結語

為解決級聯卷積神經網絡策略在人臉關鍵點檢測中不僅需要多階段回歸還需要在相鄰階段間進行圖像預處理的問題,本文基于ResNeXt 網絡結構,結合ACNet、SENet 的思想,提出了基于AC-SE-ResNeXt 網絡的人臉關鍵點檢測算法。實驗結果表明,在網絡結構上增加非對稱卷積模塊、壓縮激發模塊,強化網絡所提取的空間特征和特征通道相關性,增加網絡深度,可以有效地提高人臉關鍵點檢測精度,增強算法魯棒性,將級聯策略下多階段人臉關鍵點回歸模型簡化為端到端的單階段單網絡回歸模型。

表7 不同算法在BioID測試集上的失敗率與綜合平均誤差率 單位:%Tab.7 Failure rates and comprehensive average error rates of different algorithms on BioID test set unit:%

本文所設計的AC-SE-ResNeXt 網絡模型雖說可以達到與級聯卷積神經網絡策略相似的精度,但是整個網絡深度也達到了101 層。如何對網絡結構進行壓縮以及嘗試使用回歸熱力圖進行訓練和檢測是接下來的研究方向。

猜你喜歡
級聯網絡結構關鍵點
鈾濃縮廠級聯系統核安全分析
實現級聯形狀回歸方法對視線追蹤
論建筑工程管理關鍵點
多供取料的Q模型級聯的數學描述
肉兔育肥抓好七個關鍵點
基于AutoML的保護區物種識別①
利用定義法破解關鍵點
帶通信配網故障指示器故障監測方法及安裝分析
機械能守恒定律應用的關鍵點
非常規突發事件跨組織合作網絡結構演化機理研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合