羅洪偉,劉 波,姚 虎,王建博,袁華清,劉桂華
(1.深圳市朗馳欣創(chuàng)科技股份有限公司,廣東 深圳 518000;2.天津大學(xué)電氣自動(dòng)化與信息工程學(xué)院,河北 天津 300072;3.西南科技大學(xué)信息工程學(xué)院,四川 綿陽 621010)
基于人臉圖像的性別識(shí)別和年齡估計(jì)技術(shù)在輔助人口統(tǒng)計(jì)、社會(huì)學(xué)研究、醫(yī)學(xué)等眾多領(lǐng)域有著廣泛的應(yīng)用,具有極其重要的研究意義和價(jià)值[1]。傳統(tǒng)的性別識(shí)別方法和年齡估計(jì)主要通過手工提取面部特征來實(shí)現(xiàn),性別識(shí)別主要通過人臉圖像的幾何結(jié)構(gòu)[2]或外觀紋路[3]作為識(shí)別依據(jù);年齡估計(jì)則主要通過對(duì)人臉圖像表觀進(jìn)行建模來實(shí)現(xiàn),建??煞譃橹鲃?dòng)表觀模型[4]和主動(dòng)形狀模型[5]。中期人們將機(jī)器學(xué)習(xí)技術(shù)和手工特征相結(jié)合[6,7],使得算法具有更好的魯棒性。
由于缺乏足夠精度與效率,在人臉圖像上進(jìn)行性別、年齡等生物學(xué)特征提取并沒有獲得顯著的應(yīng)用型發(fā)展。深度學(xué)習(xí)的崛起使人臉屬性分析技術(shù)精確穩(wěn)健地走向應(yīng)用化成為可能[8]。卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)作為深度學(xué)習(xí)領(lǐng)域最具有代表性的算法之一,被學(xué)者們廣泛運(yùn)用于人臉圖像屬性分析任務(wù)[9~12]。隨著殘差網(wǎng)絡(luò)的提出,CNN進(jìn)入了網(wǎng)絡(luò)層不斷加深、性能不斷優(yōu)化的輝煌時(shí)代,但同時(shí)也帶來了計(jì)算量大,難以滿足實(shí)際應(yīng)用的問題,因此,涌現(xiàn)出了大量輕量級(jí)CNN 立志于達(dá)到精度與速度的相對(duì)平衡[13,14]。其中,以EfficientNet-B0 為基線模型的擴(kuò)展而成的EfficientNet 系列模型在效率和準(zhǔn)確性上戰(zhàn)勝了當(dāng)時(shí)所有的CNN模型。
本文通過對(duì)EfficientNet-B0 基線模型進(jìn)行改進(jìn),將其應(yīng)用于基于人臉圖像的性別識(shí)別和年齡估計(jì)任務(wù),在保證網(wǎng)絡(luò)輕量化的同時(shí),進(jìn)一步提升了算法的魯棒性和檢測(cè)效率。
EfficientNet-B0為谷歌大腦團(tuán)隊(duì)通過強(qiáng)化學(xué)習(xí)算法生成的基線模型。如圖1 所示,該網(wǎng)絡(luò)主要由移動(dòng)倒置瓶頸卷積(mobile inverted bottleneck convolution,MBConv)模塊堆疊而成,共有16個(gè),另有卷積(Conv)層2個(gè),還包括1個(gè)全局平均池化層和最后的分類層。
圖1 EfficientNet-B0 網(wǎng)絡(luò)結(jié)構(gòu)
該模型與同階段常用CNN模型在ImageNet上識(shí)別效果對(duì)比如表1 所示。可知相比傳統(tǒng)網(wǎng)絡(luò),EfficientNet 系列網(wǎng)絡(luò)在準(zhǔn)確率和內(nèi)存占用上均有較大提升,可視為深度學(xué)習(xí)領(lǐng)域劃時(shí)代的里程碑。
表1 EfficientNet系列模型性能對(duì)比
相比其他輕量級(jí)CNN 算法,EfficientNet-B0 在模型內(nèi)存、檢測(cè)速度、識(shí)別準(zhǔn)確率都有大幅優(yōu)勢(shì),只需近1/3 的內(nèi)存占用量卻達(dá)到了幾乎同樣的識(shí)別準(zhǔn)確率,證明Efficient-Net-B0可作為一種優(yōu)秀的輕量級(jí)卷積特征提取網(wǎng)絡(luò)。
基于人臉圖像進(jìn)行性別識(shí)別和年齡段估計(jì)任務(wù)的本質(zhì)為圖像分類和識(shí)別問題,選擇性能優(yōu)良的基準(zhǔn)算法可以提高系統(tǒng)運(yùn)行的速度與準(zhǔn)確度,減少漏檢和誤檢。本文選取輕量化CNN EfficientNet-B0 算法為特征提取框架,構(gòu)建人臉圖像性別識(shí)別與年齡分類模型系統(tǒng)。
多任務(wù)學(xué)習(xí)(multi-task learning,MTL)是指2 個(gè)或2 個(gè)以上的任務(wù)共同學(xué)習(xí)且聯(lián)合訓(xùn)練的過程,旨在通過各任務(wù)間的信息共享提升每個(gè)任務(wù)的性能和泛化能力?,F(xiàn)有的大多只能處理單一任務(wù)的CNN,當(dāng)面對(duì)多屬性分析問題時(shí),常常需要多個(gè)深度模型的協(xié)同作用,嚴(yán)重增加系統(tǒng)的復(fù)雜度與額外時(shí)間開銷的方法,相比之下多任務(wù)學(xué)習(xí)無疑具有更低的學(xué)習(xí)成本和魯棒性。
在多任務(wù)學(xué)習(xí)中,有2種參數(shù)共享方式,分別為硬參數(shù)共享和軟參數(shù)共享。軟參數(shù)共享適用于任務(wù)間的相關(guān)性不高的情況,硬參數(shù)要求任務(wù)間具有強(qiáng)相關(guān)。硬參數(shù)共享通過在所有任務(wù)底層共享淺層卷積特征層,各任務(wù)頂層參數(shù)獨(dú)立的方式實(shí)現(xiàn)多任務(wù)學(xué)習(xí),其優(yōu)點(diǎn)在于當(dāng)學(xué)習(xí)的任務(wù)越多,原始任務(wù)過擬合可能性越小。
本文將性別識(shí)別和年齡段估計(jì)問題視為目標(biāo)分類問題,并且二者采用的數(shù)據(jù)集相同,任務(wù)間具有強(qiáng)相關(guān)性:年齡和性別的淺層特征一致,輸入數(shù)據(jù)一致,均為64 ×64 對(duì)齊后的灰度圖像,因此,選擇硬參數(shù)共享的方式,基于EfficientNet-B0網(wǎng)絡(luò)構(gòu)建多任務(wù)學(xué)習(xí)CNN模型,實(shí)現(xiàn)多任務(wù)學(xué)習(xí),提高學(xué)習(xí)效率和魯棒性。
將EfficientNet-B0網(wǎng)絡(luò)分為Front(前)和Back(后)兩部分,EfficientNet Front作為人臉圖像淺層卷積特征提取,其輸出結(jié)果被性別識(shí)別通道和年齡識(shí)別通道所共享。EfficientNet Back作為年齡識(shí)別通道深層卷積特征提取,網(wǎng)絡(luò)結(jié)構(gòu)示意如圖2所示。
圖2 基于多任務(wù)學(xué)習(xí)的年齡與性別識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)
模型輸入通過EfficientNet Front特征提取網(wǎng)絡(luò)提取年齡和性別識(shí)別任務(wù)中的共同特征,該部分首先經(jīng)過一個(gè)標(biāo)準(zhǔn)的3 ×3 Conv塊后,進(jìn)入到6 個(gè)串聯(lián)的MBConvBlock中,實(shí)現(xiàn)多維通道內(nèi)的信息融合和深層特征提取。后續(xù)網(wǎng)絡(luò)針對(duì)性別識(shí)別和年齡段估計(jì)兩種任務(wù)間的特殊性而作了不同區(qū)分。
根據(jù)前人研究,性別識(shí)別任務(wù)往往不需要過深的CNN就能達(dá)到比較優(yōu)秀的識(shí)別率,相反,當(dāng)網(wǎng)絡(luò)層不斷加深,其性能反而降低。因此,在經(jīng)歷過共享淺層卷積層后,性別通道只需簡單的經(jīng)過一個(gè)3 ×3 的Conv 塊以實(shí)現(xiàn)信息的提取,就能直接通過全局平均池化降到一維,為實(shí)現(xiàn)SoftMax的激活做準(zhǔn)備。
年齡段識(shí)別任務(wù)往往相比性別識(shí)別要復(fù)雜的多,這在網(wǎng)絡(luò)設(shè)計(jì)上也有體現(xiàn)。除了共有的淺層特征提取外,年齡通道還需6個(gè)串聯(lián)的MBConv 模塊,以實(shí)現(xiàn)更加豐富的語義理解和深層卷積特征提取。其中,1 ×1 Conv通過極少的參數(shù)量實(shí)現(xiàn)了對(duì)不同通道信息的加權(quán)以融合多種特征。最后同樣使用全局平均池化層替代FC層以實(shí)現(xiàn)模型運(yùn)算量的下降,后續(xù)處理考慮年齡序數(shù)問題,也不同于性別識(shí)別通道,具體實(shí)現(xiàn)可參考下文。
由于年齡網(wǎng)絡(luò)通道的輸出結(jié)果為序數(shù),并不適用于交叉熵?fù)p失。為了直接利用經(jīng)過充分研究的分類算法,本文將有序回歸轉(zhuǎn)換為一系列二元分類子問題。
具體來講,對(duì)k=Cls分類的序數(shù)回歸問題轉(zhuǎn)換為k-1個(gè)簡單的二元分類子問題。每個(gè)子問題rk∈{r1,r2,…,rk-1}內(nèi)部,通過一個(gè)二元分類器來預(yù)測(cè)樣本的yi值是否大于rk
式中為第k類預(yù)測(cè)值,rk為第k類子任務(wù)所屬標(biāo)簽(如r1代表1)。則真實(shí)年齡預(yù)測(cè)值Predict_Age 為每個(gè)二分類子問題預(yù)測(cè)結(jié)果之和
式中fk(x)為第k個(gè)子任務(wù)的輸出值。
由于每個(gè)子問題內(nèi)部是相互獨(dú)立的二分類問題,因此內(nèi)部可使用交叉熵?fù)p失進(jìn)行計(jì)算,則N張輸入圖像的年齡損失為
式中 1{·}如內(nèi)部為真,輸出1,否則為0;oi為第i張圖像的年齡輸出值;yi為第i張圖像的年齡真實(shí)值(對(duì)于每個(gè)子任務(wù)yi∈{0,1});wi為第i張圖像的權(quán)重;W為網(wǎng)絡(luò)模型參數(shù)。
對(duì)于年齡識(shí)別而言,其損失函數(shù)為二分類的交叉熵?fù)p失如式(4)所示
考慮年齡和性別兩種任務(wù)訓(xùn)練難度不同,所以需要增加額外參數(shù)去平衡其訓(xùn)練參數(shù),經(jīng)測(cè)試,在lossAge占用70%的訓(xùn)練權(quán)重時(shí),兩種任務(wù)能達(dá)到相對(duì)均衡的識(shí)別準(zhǔn)確率與訓(xùn)練效果。綜上,該多任務(wù)學(xué)習(xí)的總損失如式(5)所示
本文選擇最貼近現(xiàn)實(shí)環(huán)境且樣本量豐富的Adience作為性別識(shí)別和年齡段估計(jì)算法的數(shù)據(jù)集。相比于其他數(shù)據(jù)集,該數(shù)據(jù)集更加貼合現(xiàn)實(shí)意義,獲取于智能手機(jī)和其他智能設(shè)備并且未經(jīng)任何人工處理。數(shù)據(jù)集中共采集了2 284個(gè)人物的26 580張照片,每張照片都標(biāo)有性別和分為0~2,4~6,8~13,15~20,25~32,38~43,48~53,60~100 等8類的年齡段。
數(shù)據(jù)集部分樣例在圖像采集時(shí)不可避免地存在光線太明或太暗、模糊以及各種噪聲等問題,如果在訓(xùn)練之前能夠把某些復(fù)雜的噪聲處理掉,將會(huì)大大提高訓(xùn)練模型的準(zhǔn)確率,同時(shí)由于數(shù)據(jù)集背景復(fù)雜,在訓(xùn)練過程中會(huì)增加過多無用參數(shù)和計(jì)算量,因此在圖像特征提取前,需要進(jìn)行預(yù)處理。本文采取灰度圖轉(zhuǎn)換、Haar 人臉檢測(cè)和對(duì)齊、圖像標(biāo)準(zhǔn)化和利用仿射變換(affine transformation)進(jìn)行數(shù)據(jù)增強(qiáng)等步驟以提升后續(xù)網(wǎng)絡(luò)的訓(xùn)練效果。其中,灰度圖的轉(zhuǎn)換原理如心理學(xué)式(6)
其本質(zhì)是將人眼對(duì)于彩色的感知轉(zhuǎn)換為對(duì)亮度的感知。為了節(jié)省計(jì)算時(shí)間,考慮將浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù),通過移位實(shí)現(xiàn)對(duì)公式的優(yōu)化
實(shí)驗(yàn)的深度神經(jīng)網(wǎng)絡(luò)搭建在Pytorch深度學(xué)習(xí)框架上,運(yùn)用Python語言編程實(shí)現(xiàn),操作系統(tǒng)為Ubuntu 16.04TLS,顯卡為NVIDIA TITAN XP,并同時(shí)安裝了CUDA11.1 以支持GPU的使用。
對(duì)于人臉檢測(cè),測(cè)試了LFFD、Centerface、Ultraface三種輕量級(jí)人臉檢測(cè)算法在WIDER FACE 數(shù)據(jù)集上的性能。Ultraface檢測(cè)測(cè)試圖片僅耗時(shí)17 ms,不僅低于OpenCV 的1 821 ms,也優(yōu)于LFFD(164 ms)、Centerface(322 ms)等先進(jìn)算法。結(jié)合表2可知,Centerface網(wǎng)絡(luò)在準(zhǔn)確度指標(biāo)上表現(xiàn)最好,漏檢率在日常使用中小于10%,LFFD其次,而Ultraface漏檢率為30%左右,雖然高于其他算法,但也滿足了一般情況下的使用需求。由于本文更加看重算法的檢測(cè)速率的原則,可以看到只有Ultraface達(dá)到了實(shí)時(shí)標(biāo)準(zhǔn)(FPS >25),而Ultraface在復(fù)雜背景下對(duì)小目標(biāo)的輕微漏檢現(xiàn)象也減輕了后續(xù)人臉屬性信息提取網(wǎng)絡(luò)的工作量,因此,本文選擇Ultraface作為最終的人臉檢測(cè)算法,基于檢測(cè)到的人臉圖像進(jìn)行表情識(shí)別與年齡估計(jì),使系統(tǒng)實(shí)時(shí)性運(yùn)行成為了可能。
表2 多種人臉檢測(cè)框架準(zhǔn)確率對(duì)比%
模型訓(xùn)練開始時(shí),將原始EfficientNet 算法權(quán)重設(shè)為初始權(quán)重,新加模塊初始權(quán)重為0~1 的隨機(jī)數(shù),以減少訓(xùn)練時(shí)間成本并加快模型收斂速度。采用批量隨機(jī)梯度下降算法優(yōu)化損失函數(shù),學(xué)習(xí)率設(shè)為0. 001,權(quán)重衰減值設(shè)為0.000 5,批量大小設(shè)為32,動(dòng)量系數(shù)設(shè)為0. 9,共迭代60次。
模型改進(jìn)前后在訓(xùn)練集損失值變化如圖3所示,其中,虛線為模型改進(jìn)前,實(shí)線為模型改進(jìn)后,可知,模型在約30次迭代后收斂,改進(jìn)后模型明顯包圍改進(jìn)前,證明改進(jìn)后模型的優(yōu)越性。
圖3 模型改進(jìn)前后訓(xùn)練集損失值對(duì)比
實(shí)驗(yàn)采用各類別均值平均精度(mean average precision,mAP)和F1分?jǐn)?shù)作為模型檢測(cè)精度的評(píng)價(jià)標(biāo)準(zhǔn)[15],二者可表示為
式中 Presion為查準(zhǔn)率,Recall為召回率,N為所有類別樣本數(shù),N(c)為C類別樣本數(shù),APc為C類別準(zhǔn)確度。使用模型內(nèi)存、平均檢測(cè)幀耗時(shí)作為檢測(cè)速度的評(píng)價(jià)標(biāo)準(zhǔn)。
測(cè)試集樣本共2 521 張圖像,其中,嬰幼兒占了5%左右,男性與女性占了剩余95 %,男性數(shù)量比女性數(shù)量多20%。由于Adience數(shù)據(jù)集本身并不是均勻分布的原因,隨機(jī)選取的測(cè)試集也在各年齡段上的分布不同,年齡段(25~32歲)中的樣本數(shù)量占了整個(gè)測(cè)試集的32.4%,年齡大于48周歲的樣本占10%,年齡段(0~2 歲)的同樣占了5%,其余年齡段平分剩余的53%左右。
表3給出了該測(cè)試集在查準(zhǔn)率、召回率、F1 三大評(píng)價(jià)指標(biāo)體系下的性別分類的詳細(xì)數(shù)值??芍鄬?duì)來說,算法對(duì)嬰幼兒預(yù)測(cè)效果最好,其次是女性。男性預(yù)測(cè)情況低于前兩種,但召回率卻是最高的,由此可知算法在男性類別中錯(cuò)檢問題比漏檢問題更加嚴(yán)重。
表3 性別任務(wù)中各指標(biāo)體系下算法性能%
表4則是算法在各年齡段上的性能體現(xiàn)。整體表現(xiàn)情況稍微不如算法在性別任務(wù)中的表現(xiàn),這也符合固有認(rèn)知。算法在年齡段(48~53 歲)漏檢率和錯(cuò)檢率都高于其他年齡段,本文推測(cè)其原因是該年齡段特征更加偏向相近年齡段,造成算法識(shí)別混淆。該原因也導(dǎo)致了年齡段(15 ~20歲)和年齡段(38~43 歲)的識(shí)別效果較低于其他年齡段??傮w來講,算法在低齡年齡段中識(shí)別成功率高達(dá)92%,在其他年齡段識(shí)別效果與各類別類外間距成正比。
表4 年齡任務(wù)中各指標(biāo)體系下算法性能%
針對(duì)測(cè)試數(shù)據(jù)集分別使用EfficientNet-B0 模型與改進(jìn)后模型進(jìn)行對(duì)比,結(jié)果如表5所示。由該表可得,本文所設(shè)計(jì)的基于多任務(wù)學(xué)習(xí)的性別識(shí)別與年齡段估計(jì)網(wǎng)絡(luò)相比其他傳統(tǒng)算法具有一定的性能優(yōu)勢(shì)。
表5 模型改進(jìn)前后測(cè)試集性能對(duì)比(性別/年齡)
首先在平均準(zhǔn)確率上提高了7.95%,對(duì)于性別任務(wù),算法準(zhǔn)確率達(dá)92%,優(yōu)于當(dāng)前最優(yōu)網(wǎng)絡(luò)EfficientNet-B0 的86.5%,提高了5.5%;對(duì)于年齡段識(shí)別任務(wù),算法準(zhǔn)確率達(dá)87.4%,比當(dāng)前最優(yōu)網(wǎng)絡(luò)高10.4%。其次憑借多任務(wù)學(xué)習(xí)的性能優(yōu)勢(shì),在模型內(nèi)存和檢測(cè)速度上也遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)算法,改進(jìn)算法由人臉圖像預(yù)測(cè)性別和年齡段任務(wù)在TX2平均檢測(cè)幀耗時(shí)只需2 s,比以檢測(cè)效率為優(yōu)勢(shì)的Efficient-Net節(jié)省了51.7%的時(shí)間,同樣在該指標(biāo)上遠(yuǎn)遠(yuǎn)領(lǐng)先于傳統(tǒng)機(jī)器學(xué)習(xí)算法和殘差網(wǎng)絡(luò),分別為它們的34. 6 %和29.4%,算法模型內(nèi)存占用只占EfficientNet的54.68%,為實(shí)現(xiàn)嵌入式端實(shí)時(shí)的性別和年齡檢測(cè)奠定了堅(jiān)實(shí)基礎(chǔ)。
就本文改進(jìn)算法的優(yōu)缺點(diǎn)而言,召回率明顯低于查準(zhǔn)率,對(duì)實(shí)際應(yīng)用產(chǎn)生的影響是漏檢現(xiàn)象高于錯(cuò)檢。
圖4 給出了算法在自建數(shù)據(jù)集上的識(shí)別效果,可知性別與年齡段基本識(shí)別正確,與人眼觀測(cè)結(jié)果相當(dāng),這證明了算法可運(yùn)用于日常生活和輔助智能檢測(cè)領(lǐng)域。
圖4 算法識(shí)別效果樣例
本文以研究性別識(shí)別與年齡段估計(jì)算法為中心,利用性別識(shí)別和年齡估計(jì)任務(wù)的共通性,提出了一種共享淺層卷積特征的多任務(wù)學(xué)習(xí)網(wǎng)絡(luò),網(wǎng)絡(luò)以裁剪后的EfficientNet-B0為卷積特征提取層,并將年齡判別中的序數(shù)回歸問題轉(zhuǎn)換為多個(gè)二分類子問題以優(yōu)化損失函數(shù),改進(jìn)后的網(wǎng)絡(luò)在實(shí)現(xiàn)協(xié)同訓(xùn)練減少運(yùn)算開銷的同時(shí),識(shí)別準(zhǔn)確率提高了7.95%。