劉英芳,王 松,2,馬亞彤
(1.蘭州交通大學 電子與信息工程學院,蘭州 730070;2.甘肅省人工智能與圖形圖像處理工程研究中心,蘭州 730070)
隨著人臉識別技術在人機交互[1]、視頻監控[2-3]、圖像檢索[4-5]等場景的廣泛應用,人臉屬性分類(Face Attribute Classification,FAC)成為了計算機視覺方向研究的熱點問題之一,屬性分類的準確性和實時性備受關注。然而,姿態、光照等因素的不確定性給人臉屬性分類帶來較大困難。傳統人臉屬性識別方法通過人工標注特征,容易受到環境影響且識別過程耗時長,識別準確性又依賴于特征標注的有效性,識別效果不理想。在這種情況下,現有方法多數利用深度學習技術的端到端識別特點,開展基于深度學習的人臉屬性識別。
基于深度學習[6-8]的人臉屬性識別方法避免了人工提取特征的不完備性,相較于傳統方法表現更加出色,在當今研究中占據主導地位。RUDD 等[9]使用多任務方法同時學習多個屬性標簽,提出混合目標優化網絡(MOON)以處理數據集中多標簽不平衡問題,使用最小均方損失得到多個預測分數,減少回歸誤差。MAO 等[10]設計深度多任務多標簽網絡(DMM-CNN),通過多任務學習方法提升屬性識別性能,從主觀和客觀角度將屬性劃分為兩組,設計兩種網絡分別提取特征。ZHENG 等[11]提出雙向階梯注意力網絡(BLAN)得到層次表示,設計殘差雙重注意力模塊連接局部和全局屬性的層次特征。姚樹婧等[12]提出FD-SDGCN 網絡結構,通過特征解耦模塊,獲得不同屬性的對應特征,然后聯合不同屬性間關系的動態圖和靜態圖以更好地識別人臉屬性。HAND 等[13]認為屬性之間存在聯系,通過構建多任務網絡(MCNN-AUX),達到屬性之間的信息共享。HUANG 等[14]通過一種貪婪神經網絡結構搜索(GNAS)方法自動生成有效的網絡,克服了人工設計網絡在應用中的不靈活問題。ZHUANG 等[15]提出一種新的級聯卷積神經網絡多任務學習方法(MCFA),用于同時預測多個人臉屬性,利用3 個級聯的子網絡,對多個任務進行由粗到精的聯合訓練,實現端到端優化。SAVCHENKO[16]研究基于輕量級卷積神經網絡的多任務學習框架,提出基于MobileNet、EfficientNet 和RexNet 架構的模型,用 于無裁剪情況下的面部屬性分類和人臉識別。LIU等[17]提出一種自適應多層感知注意力網絡(AMPNet),利用不同的細粒度特征提取面部全局、局部和顯著特征,學習面部關鍵信息且對遮擋和姿態具有魯棒性,提高了潛在面部多樣性信息學習的有效性。
綜上所述,現有的基于深度學習的人臉屬性識別方法基本采用多任務學習框架,通過屬性分組反映不同屬性間的關系,但屬性分組策略多數根據屬性位置信息,人為地劃分為不同的屬性組而未深入考慮屬性相關程度的強弱。此外,在提取特征的過程中,多數網絡模型忽略了層間語義信息的作用,導致特征提取不充分,識別準確度不高。針對以上問題,本文提出結合多尺度特征融合和任務分組的人臉屬性識別模型(Slim-FAC),實現對人臉屬性的有效識別,主要工作包括:1)在Slim-CNN 網絡的基礎上,通過兩個特征融合模塊融合不同層之間的語義信息;2)通過中心核對齊和譜聚類(Centered Kernel Alignment-Spectral Clustering,CKA-SC)分組策略進行屬性分組,將相關性強的屬性劃分在同一個分支,有利于在識別每種屬性時能夠利用相關屬性的特征信息;3)引入ECA 注意力機制,提高特征利用率,加強對目標區域的關注;4)考慮任務權重對于模型性能的影響,通過不確定性加權(Uncertainty Weighting,UW)方法來平衡不同任務之間的損失值,自動調整任務的相對權重,達到優化模型的目的。
Slim-CNN[18]是一個輕量級網絡模型,通過輕量化模塊(Slim Module)構造深度神經網絡,在降低模型參數量的同時保證模型性能良好。Slim-CNN 網絡結構如圖1 所示(彩色效果見《計算機工程》官網HTML版),使用輕量化模塊作為深度神經網絡構建塊,4 個輕量化模塊堆疊在一起,構成網絡特征提取部分。

圖1 Slim-CNN 網絡結構Fig.1 Slim-CNN network structure
Slim Module 和可分離的壓縮擴展(Separable Squeeze-Expand,SSE)模塊(SSE Block)結構如圖2所示(彩色效果見《計算機工程》官網HTML 版)。Slim Module 由2 個可分離的SSE Block 以及1 個深度可分離卷積構成,第1 個SSE Block 上存在跳躍連接,第2 個SSE Block 的輸入為第1 個SSE Block 的輸入和輸出之和。SSE Block 由2 個1×1 逐點卷積和1 個3×3 深度可分離卷積組成多層排列結構。第1 層為擠壓層,特征維度低于特征表示的前一層。第2 層為擴展層,由1×1 逐點卷積和3×3 深度可分離卷積形成串聯結構,增加輸出通道的數量。
經典的神經網絡對于設備性能要求高且計算量大,輕量化網絡提高了計算效率,降低了對設備的要求?,F有的一系列輕量化的神經網絡在特征提取過程中通過卷積操作獲得圖像的單尺度特征,會出現圖像特征提取能力弱的問題。多數人臉屬性識別模型在需要識別多個人臉屬性的情況下未充分考慮屬性之間相關性的強弱。本文在Slim-CNN 的基礎上,建立一種結合特征融合和任務分組的人臉屬性識別模型,整體框架如圖3 所示(彩色效果見《計算機工程》官網HTML 版)。該模型主要分為兩個部分:

圖3 結合特征融合和任務分組的人臉屬性識別模型整體框架Fig.3 Overall framework of face attribute recognition model combining feature fusion and task grouping
1)參數共享部分。在Slim-CNN 的基礎上,通過兩個特征融合模塊,克服原有網絡特征提取不充分,識別準確度不高的問題。通過參數共享的形式達到信息共享的目的,提升屬性識別準確率的同時減少了模型參數量。
2)分支部分。通過CKA-SC 分組策略將40 個屬性劃分為6 組,克服了依據位置信息劃分屬性組對屬性相關性考慮不充分的問題。在分支部分,通過ECA 注意力機制增強有用信息的利用。使用二元交叉熵損失函數,每個分支部分得到一個損失值,通過不確定性加權方法自動調整每組任務損失之間的相對權重,以提高模型性能。
在使用卷積神經網絡提取特征過程中,淺層提取的特征分辨率高且包含更多細節信息,但是包含的噪聲多且語義性不強;深層提取的特征噪聲更少,但缺乏細節信息,分辨率低。將不同層的特征融合可以更好地表示特征。相關研究[19]表明,神經網絡的中層特征在人臉屬性識別中表現出極為重要的作用,受此啟發,通過兩個特征融合結構實現不同尺度特征的有效利用,以此提高人臉屬性識別的性能。
1)融合模塊1
當人臉圖像目標特征不明顯時,出現特征提取困難的問題,影響人臉屬性識別的準確率,而且隨著神經網絡層數的加深,語義信息逐漸豐富,提取的特征圖逐漸變小,分辨率逐漸降低,融合模塊1 通過融合特征金字塔網絡(Feature Pyramid Network,FPN)[20]連接淺層特征和深層特征,構建不同尺寸的特征金字塔結構,更充分地利用特征信息。
特征金字塔融合結構如圖4 所示(彩色效果見《計算機工程》官網HTML 版),左側為Slim-CNN,通過自下而上的方式提取語義信息。C1、C2、C3、C4、C5分別對應Slim-CNN 特征提取過程中5 個階段的特征輸出,選擇C3、C4、C5這3 個階段的信息進行特征融合。在提取人臉圖像的高層語義特征后,通過自上而下的方式,將經過上采樣后的深層語義特征和淺層的細節信息相融合。將C5通過1×1 卷積減少通道數得到特征圖M5,通過上采樣操作后與淺層特征元素相加得到融合特征。M4特征信息包括M5的特征信息和對應的橫向連接信息。M3特征信息包括M4的特征信息和對應的橫向連接信息。特征融合過程表示如下:

圖4 特征金字塔融合結構Fig.4 Feature pyramid fusion structure
其中:f1×1(?)為1×1 的卷積;fup(?)為上采樣操作;⊕為對應元素相加的融合操作。
最后通過3×3 卷積操作消除上采樣的混疊效應[21],得到最終P3、P4、P5層的特征。
通過金字塔結構聯合不同尺度的特征,將淺層和深層信息進行融合,獲得更準確的特征圖。
2)融合模塊2
隨著網絡深度的增加,在特征提取過程中,網絡中間層提取特征的信息逐漸減少,使得每個任務的特征表示能力降低。通過融合模塊2 將Slim-CNN中stage 4 和stage 5 的特征再次融合。在融合模塊中,將stage 4 的特征通過池化操作來匹配stage 5 特征圖的長和寬。使用通道連接操作進行通道疊加。在串聯后,采用1×1 卷積進行降維,減少融合特征圖的通道數,最后得到stage 4 和stage 5 兩個階段的特征融合表示。
在原始的Slim-CNN 網絡的基礎上,通過兩個特征融合模塊,融合了不同感受野下的人臉屬性的特征信息,聯合淺層得到的高分辨率低級特征和深層得到的低分辨率高級語義特征,有效改善原始人臉圖像中存在的人臉特征信息丟失問題,提升了對人臉特征信息的利用率,克服了現有人臉屬性識別模型中存在的特征提取不充分問題。
在識別人臉屬性時,識別效果受環境復雜度以及光照等因素的影響。為了提高復雜背景下的人臉屬性的識別準確性,通過注意力機制減少無用信息,將識別的重點區域放在人臉部分,有助于從人臉圖像的復雜背景中獲取目標區域。
ECA[22]是一種輕量化的通道注意力模塊,在增加少量計算量的情況下,提高模型的分類準確率,通過一維卷積實現不降維的局部跨信道交互策略,增強有效特征權重。ECA 結構如圖5 所示(彩色效果見《計算機工程》官網HTML 版)。

圖5 ECA 結構Fig.5 ECA structure
輸入大小為F?RC×H×W的特征圖,首先通過全局平均池化操作得到1×1×C的全局描述特征,然后通過卷積核大小為k的一維卷積操作獲得局部的跨通道交互信息,其次通過Sigmoid 函數得到通道權重占比,反映通道的重要性,最后輸入的特征圖與權重進行相乘,獲得通道注意力特征。
ECA 根據輸入特征通道數C自適應地選擇卷積核尺度k,如式(2)所示,無需手動調優,提高了學習性能和效率。
其中:|*|odd為最近鄰奇數;γ=2;b=1。
在ECA 中考慮相鄰通道信息的交互,權重表示如下:
其中:σ為Sigmoid 激活函數;yi為第i個通道;wi為通道yi的權重;Ωki為yi的k個相鄰通道集合。使用卷積核大小為k的一維卷積實現通道注意力模塊,權重的計算公式表示如下:
其中:C1Dk為卷積核大小為k的一維卷積操作;y表示通道。
人臉的屬性之間有不同程度的相關性,相關屬性之間的特征相互輔助,以提高屬性的識別準確度。多數現有研究基于位置對屬性進行手動分組,屬性的相關性考慮不充分,本文進一步考慮屬性之間的相關性。屬性之間相關性的強弱由CKA[23]計算得到并以矩陣形式表示。CKA 是一種核度量方法[24],基于核對齊的概念計算兩個核矩陣(核函數)之間的相關性。
設需要比較的兩層網絡中的神經元的個數分別為p、p,樣本個數為n,得到的表征矩陣,基于點積的相關性表示如下:
根據HSIC[25]的表達式,將X、Y中的列通過核函數對應 到K、L上,使 得Ki,j=k(xi,xj)、Li,j=l(yi,yj),得到HSIC 的經驗估計值:
以單屬性模型不同層的CKA 平均值作為兩個任務的相關程度表示,得到矩陣A以表示單任務之間的相關性:
其中:m、n分別為第m個屬性(任務)、第n個屬性(任務);Tm,i、Tn,i分別表示m、n兩個單屬性模型中的第i層;s表示模型層數,以單屬性模型中對應層相關性的平均值作為兩個屬性的相關性系數。使用CKA 計算不同模型層與層之間相關性的優點在于通過對核矩陣的中心化處理有效解決了因原點遠離映射樣本而導致的核信息表達能力降低問題。
由于以客觀衡量單屬性之間的相關性為基礎,需要得到屬性分組,因此本文提出CKA-SC 分組策略。CKA 用來衡量神經網絡中層與層之間表示的相關性,以CKA 計算結果作為相關性指數,再利用譜聚類[26]得到屬性分組結果。譜聚類以圖論為基礎,通過圖的最優劃分解決分組問題。利用CKA 度量CelebA 數據集中40 種屬性之間的相關性,將每個需要識別的屬性抽象為圖的頂點,由CKA 計算得到的屬性之間的相關程度的平均值作為不同頂點(屬性)之間連接邊的權重(相關性)。將圖通過譜聚類算法劃分得到若干子圖。在劃分之后的子圖內部相關性要盡可能大,子圖之間的相關性要盡可能小。根據劃分結果,將同一子圖內的屬性識別任務放在模型的同一個分支中,共享相同的特征提取模塊,提高模型性能。
通過分組策略將CelebA 數據集的40 種屬性劃分成6 組,組內屬性信息互補,反映了屬性識別受屬性關系的影響,分組結果如表1 所示。

表1 屬性分組結果Table 1 Results of the attribute grouping
人臉屬性識別是一個多標簽分類問題。使用二分類交叉熵損失(Binary Cross Entropy Loss,BCELoss)作為每個任務中的損失函數。將每個組視為一個獨立的任務,第i個任務Ltask,i定義如下:
其 中:yn,i、xn,i分別表示第i個任務的第n個屬性的標簽和預測結果。
使用不確定性加權[27]平衡6 組任務之間的損失函數的權重,不確定性加權使用同方差不確定性平衡任務損失,最終的損失函數表示如下:
其中:σi是噪聲參數,可通過反向傳播進行更新為每個任務損失函數的權重;logaσi是正則項,控制噪聲參數不會增加太多。
實驗環境為:Windows 10 操作系 統,Intel?CoreTMi7-10875H CPU@2.3 GHz,顯卡NVIDIA Geforce RTX 2060,采用PyCharm 2020.1 x64 作為開發環境。
為了驗證Slim-FAC 的有效性,在CelebA 數據集[28]上進行實驗評估和分析。CelebA 數據集包括202 599 張人臉圖像,用40 種人臉屬性進行標注。數據分為訓練集(162 770 張圖像)、驗證集(19 867 張圖像)和測試集(19 962 張圖像)。
實驗以開源的深度學習框架PyTorch 為基礎實現,學習率設置為0.001,批處理大小為128,訓練總輪次為50?,F有模型多數以人臉屬性識別準確率作為評價指標,本文也采用相同的指標評價Slim-FAC,并取10 次實驗結果的平均值作為最終結果。
為了分析人臉屬性劃分組數對模型性能的影響,將屬性分別劃分為5、6、7、8 組進行實驗,實驗結果如表2 所示。由表2 可以看出,將屬性劃分為6 組時模型識別效果最好,最終將40 種屬性劃分成6 組。

表2 不同屬性組數的實驗結果Table 2 Experimental results of different number of attribute groups
將文獻[13]分組策略應用于Slim-FAC,結果如表3 所示,分析可得在模型相同的情況下,CKA-SC分組策略優于文獻[13]分組策略,證實了CKA-SC分組策略的有效性。

表3 不同分組策略的實驗結果Table 3 Experimental results of different grouping strategies %
為了直觀反映Slim-FAC 中的特征融合、CKA-SC分組策略、ECA 注意力機制與不確定性加權等對模型性能的影響,通過消融實驗進行證明,在原Slim-CNN 上依次添加不同模塊進行訓練和測試,以人臉屬性識別準確率作為評價指標,驗證Slim-FAC的有效性,并給出了不同模型在CelebA 數據集上所需的訓練時間,如表4 所示,其中√表示具有該模塊。

表4 不同模型的訓練時間對比Table 4 Comparison of training time for different models 單位:h
消融實驗結果如圖6 所示(彩色效果見《計算機工程》官網HTML 版),由圖6 可以得出:

圖6 CelebA 數據集上的消融實驗結果對比Fig.6 Comparison of the results of ablation experiments on the CelebA dataset
1)在CelebA 數據集 上,Slim-FAC 及其變 體(Variant 1、Variant 2、Variant 3、Variant 4)對于人臉屬性的識別效果總體優于Baseline,其中Slim-FAC 的準確率最高,說明了特征融合、ECA 注意力機制、CKA-SC 分組策略以及不確定性加權等都可使模型性能提升,Slim-FAC 更能有效學習人臉屬性間的關系表示,提高相關屬性的識別準確率。
2)分析Variant 1 及Variant 2 的實驗結果可得,通過兩個特征融合模塊將不同尺度的特征聯合用于人臉屬性識別,模型性能有所提升,驗證了不同尺度特征對于人臉屬性識別的有效性;分析Variant 3 的實驗結果可得,通過任務分組將相關性強的任務劃分到同一個組,通過相關信息的共享進一步提高了屬性識別的準確率;分析Variant 4 的實驗結果可得,通過ECA 注意力機制減少了無用信息,從人臉圖像的復雜背景能更準確地獲取目標區域;分析Slim-FAC的實驗結果可得,通過不確定性加權動態調整任務權重,能獲得更高的平均分類準確率,說明了使用不確定性加權方案的有效性。
為了評估Slim-FAC 的性能,分別比較不同模型的人臉屬性識別準確率以及模型參數量,對比結果如表5 所示,最優指標值用加粗字體表示。由表5 可以得 出:Slim-FAC 以輕量 化Slim-CNN 為 基礎網絡,對整體框架進行改進,在盡可能獲得較高的人臉屬性識別準確率的前提下,使模型參數量減少。

表5 不同模型在CelebA 數據集上的實驗結果Table 5 Experimental results of different methods on the CelebA dataset %
1)人臉屬性識別準確率。Slim-FAC 的平均準確率達到91.72%,分類誤差為8.28%,相較于MOON[9]、MCNN-AUX[13]、GNAS[14]以 及DMM-CNN[10]平均識別準確率提高了0.78、0.43、0.09、0.02 個百分點,分類誤差分別降低了8.61、4.94、1.08、0.24 個百分點。Slim-FAC 在CelebA 數據集 的Bald、Big Lips、Black Hair 等多種屬性上取得了最高的識別準確率。
2)模型參數量。Slim-FAC 參數量 為1.32×106,分別為MOON、GNAS 以及DMM-CNN 參數量的1.10%、17.08%以及0.37%,參數量遠小于上述3 個模型,可以部署在存儲資源受限的硬件設備上。
可見,Slim-FAC 在參數量顯著降低的情況下保證了對人臉不同屬性的較高識別準確率,證明了Slim-FAC 的有效性。
通過跨數據集的方法驗證Slim-FAC 的泛化性,將在CelebA 數據上訓練好的Slim-FAC 在LFWA 數據集[28]上進行實驗,并與MCFA[15]、DMM-CNN[10]和LNets+ANet[28]模型進行對比,實驗結果如表6 所示。由表6 可以看出,在未做任何微調的情況下通過跨數據集的方法,Slim-FAC 在LFWA 數據集上的平均識別準確率達到84.04%,相較其他模型,性能表現更好,驗證了Slim-FAC 具備一定的泛化能力。

表6 LFWA 數據集上的實驗結果Table 6 Experimental results on the LFWA dataset %
為了提高人臉屬性識別性能,針對現有人臉屬性識別模型中存在特征提取不足且未充分考慮不同屬性之間相關性的問題,在Slim-CNN 的基礎上,建立一種基于多尺度特征融合和任務分組的Slim-FAC 模型。通過兩個特征模塊融合了不同尺度的特征信息,有效改善了特征提取過程中存在的特征信息丟失問題,提高了人臉屬性識別準確率。利用CKA-SC 分組策略,更加充分地度量了不同屬性相關性的強弱。同時,引入ECA 注意力機制減少無用信息,使得人臉屬性識別效果更好。采用不確定性加權方法動態調整每組任務損失之間的相對權重,提升了模型性能。在CelebA 數據集上的實驗結果表明,Slim-FAC具有較高的人臉屬性識別準確率,平均識別準確率達到91.72%,且模型參數量僅為1.32×106,滿足實際應用需求。但由于當前數據集中標簽存在噪聲,因此下一步將對噪聲標簽進行預處理,構建噪聲模型以及通過推理步驟對噪聲標簽進行校正,在訓練過程中減少噪聲標簽對模型訓練過程的影響,進一步提高人臉屬性的識別準確率。