向成豪,鄭秀娟,莊嘉良,張 暢
(四川大學 電氣工程學院,四川 成都 610065)
體重指數(body mass index,BMI)是一種根據個人身高與體重之間的比率描述體重狀況的方法。它將個體分類為體重不足、正常、超重或肥胖。BMI 的定義常用體重(kg)除以身高(m)的平方來表示,通常認為體型適當的個體比異常肥胖的個體更具吸引力并且看起來更健康[1,2]。
近年來,研究者發現人們從面部圖像感知的體重與他們的實際體重指數呈正相關[3],在心理學和知覺研究中,手動標記面部特征并評估這些面部特征與BMI 的關聯[4,5]。Wen L等人[6]提出通過機器視覺和統計技術從正面人臉圖像中自動估計BMI。Pascali M A等人[7]基于深度傳感器構建3D 幾何人臉重建系統,并定義了3D 人臉特征。結果證明了人臉的立體信息能有效地應用于BMI 估計中。
基于深度卷積神經網絡(deep convolutional neural network,DCNN)[8,9]的深度學習方法也開始應用于從面部圖像計算BMI。Kocabey E 等人[10]證明通過VGG 網絡從人臉圖像中提取的深層特征與實際BMI值密切相關。Jiang M等人[11]證明了基于深度模型的方法比基于幾何模型的方法具有更好的性能。Siddiqui H等人[12]和Jiang M 等人[13]進一步優化了基于深層CNN提取面部特征的方法。
然而,雖然3D幾何人臉重建具有更好的性能,但由于復雜的建模過程和計算消耗,使其很難大規模應用[7]。其余研究采用的圖像數據則都是2D正臉圖像,并未充分利用人臉的3D立體信息[12,13]。因此,如果能從2D人臉圖像中恢復部分3D信息并用于BMI 估計,則能在大范圍的應用基礎上提高估計的性能。
本文基于上述假設,利用開源框架Mediapipe[14]計算人臉3D關鍵點,然后基于關鍵點劃分人臉網格,每個網格的灰度值表示該區域的深度信息,以此來生成包含人臉立體信息的2D人臉深度圖(在下文中統稱為Mesh 圖)。然后,進一步提取每個樣本的方向梯度直方圖(histogram of oriented gradient,HOG)并可視化,通過局部梯度或邊緣的方向來描述人臉的外觀和形狀。最后,本文提出一個新的網絡框架融合Mesh圖和HOG,進行二次特征提取并估計BMI。公開數據集上的對比實驗證明了本文方法。
本文使用基于K-means 的方法對齊人臉[15]。將人臉圖像處理成224 ×224,利用Mediapipe 框架提取3D 關鍵點。其中每個點的x和y 坐標為圖像中該點在2D 平面的像素坐標,z坐標則為到頭部質心的參考平面的深度。通過該框架獲取468 個3D 人臉關鍵點,然后結合Canonical 人臉模型將整個人臉區域劃分為902 個三角形網格區域。每個三角形網格區域3 個頂點均為468 個關鍵點之一,每個三角形灰度值為3 個頂點z 坐標的均值,然后放縮至0 ~255之間。如式(1)所示
式中 zi,zj,zk為3 個頂點的z 軸坐標;zmax和zmin為468 個頂點的最大和最小z 軸坐標;H 為灰度值。根據每個區域灰度值重新繪制人臉,如圖1所示。

圖1 關鍵點和Mesh圖展示,Mesh圖各個三角形區域的灰度值代表其深度
由圖1可知,經過處理的Mesh圖雖然能表示人臉各個區域的深度,但由于每個區域均是由人工定義,由3D 關鍵點劃分,丟失了每個樣本獨特的外觀特征。因此,本文利用HOG[16]提取獲得的人臉圖像外觀特征。該方法統計圖像局部區域梯度方向信息和計算局部區域HOG來構成特征。圖2展示了部分圖片可視化后的結果。

圖2 HOG可視化
得到人臉Mesh 圖和HOG 后,本文使用DCNN 進行二次特征提取。骨干網絡的選取實驗見下節,網絡結構如圖3所示。針對Mesh圖,使用VGGNet-19 特征提取器并添加BN層減小過擬合,加速收斂。針對HOG,使用ResNet-18的特征提取器。整個特征提取網絡的參數均在ImageNet上預訓練并遷移到BMI估計中。之后將2個子網絡的輸出進行通道上的混合,混合方式如式(2)所示

圖3 特征提取與融合網絡結構
式中 α為通過VGGNet-19 提取的卷積特征圖,β 為通過ResNet-18提取的卷積特征圖,?為哈達瑪積。最終形成512 ×7 ×7維度的特征圖I作為下一步的輸入。
BMI估計模塊如圖4所示,首先對輸入的特征圖I進行全局平均池化(Global AvgPooling),如式(3)所示

圖4 BMI估計器網絡結構
在本文中,N設置為7。
之后對輸出展平(Flatten)以放入第一個全連接層中,該層包含512個神經元,輸出通道為256,并使用一維批歸一化、ReLU非線性激活函數和丟棄法提高泛化性能,減少過擬合。最后使用包含256個神經元的全連接層估計BMI值。
本文在公開的VIP數據集[17]和Reddit 數據集[18]上進行了實驗。VIP數據集于2017 年從社交媒體中獲得,該數據集包括513名女性和513 名男性,樣本BMI 值分布范圍為16~56,78例體重不足(BMI <18.5),697 例正常(18.5 <BMI <25),204 例超重(25 <BMI <30),47 例肥胖(30 <BMI)。Reddit數據集于2019年從社交媒體上收集,總共包含982名受試者,其中600 名男性,382 名女性。所有樣本的BMI值分布范圍為12~56,7 例體重不足(BMI <18.5),241例正常(18.5 <BMI <25),283例超重(25 <BMI <30),451例肥胖(30 <BMI)。
由于所使用數據集在4 類中極度不平衡。體重不足,超重和肥胖類別樣本數量太少。相反,正常類別樣本數量要大得多。因此,對數據集實施數據增強以解決這種不平衡問題,包括隨機裁剪、隨機翻轉和隨機旋轉。此外利用過采樣的方法控制訓練集每個批次的每個類別都具有相同數量的樣本。隨機使用80%的樣本進行訓練,20%的樣本進行驗證,但保證每類樣本都會出現在驗證集中。
整個網絡使用32 GB NVIDIA V100 顯卡,在Pytorch-1.40上訓練。平滑L1loss作為損失函數,如式(4)所示
式中 zi通過式(5)計算
使用的梯度下降算法為Adam(adaptive moment estimation)算法,初始學習率baselr設置為1 ×10-4,初始動量分別為β1=0.9和β2=0.999。每個最小的訓練批次包含40 個樣本,學習率的衰減原則如式(6)所示
式中 γ設置為0.8,iter為迭代的步數。
首先,本文選擇了在圖像識別、定位和人臉檢測等方面常見幾個網絡。它們分別是 VGGNet-19、ResNet-18、DenseNet-101和ResNeXt-121。以MAE 作為評價指標,在VIP數據集上進行實驗,各個骨干網絡的性能如圖5 所示,用類似混淆矩陣的形式進行結果呈現,其中橫坐標Mesh表示輸入為Mesh圖的骨干網絡選擇,縱坐標HOG 表示輸入為HOG的骨干網絡選擇。

圖5 骨干網絡選取實驗結果
從圖5 中可以得到,當2 個骨干網絡均選擇相同的DCNN框架時,對角線上MAE的值依次遞增,考慮到從VGG到ResNeXt,網絡的深度、層數和參數量依次增加,出現過擬合的情況,泛化性能下降,所以MAE逐漸增大。此外,對角線上的MAE均大于同行或者同列上的值,此種情況說明當針對不同輸入使用相同的骨干網絡時,出現特征冗余的情況,導致BMI的估計誤差增大。由圖5 可得,當人臉Mesh圖采用VGGNet-19 作為骨干網絡,HOG 采用ResNet-18 作為骨干網絡時,本文方法能取得最佳性能。
為了證明本文提出的Mesh圖和HOG的聯合使用以及特征融合的有效性。本文進一步在VIP數據集上進行了消融實驗,結果如表1和圖6所示。

表1 單輸入和聯合輸入方法的消融實驗

圖6 不同輸入基于誤差的箱型圖
如表1 所示,整體上,Mesh-HOG 融合方法在MAE、RMSE和MAPE上均優于只有Mesh圖或者HOG的單輸入方法。由圖6可見,從HOG到Mesh-HOG,誤差箱型圖的極大值、75%分位數、中位數以及25%分位數依次遞減,均證明了結合人臉各個區域相對頭部質心的深度特征和人臉外觀的融合特征能夠有效降低BMI估計的誤差。此外,單輸入Mesh圖方法的性能優于單輸入HOG 方法,一定程度上反映了相對于人臉的2D外觀,人臉的立體信息更適合作為BMI估計的特征。
同時,BMI 正常類別的3 項指標(MAE、RMSE 和MAPE)最小,體重不足和超重類別的3項指標其次,而肥胖類別的3項指標最大。這是因為數據集的BMI 分布不均,某個類別的訓練圖像較少會導致相應類別的性能較差。此外,由于樸素的過采樣方法的缺點,該模型在體重不足和肥胖的類別過擬合。但由于肥胖類別里BMI的分布最廣,為30~56的區間,其他三類的BMI分布區間遠小于肥胖類別分布區間,最終導致肥胖類別擬合性能最低,估計誤差最大。
考慮到Mesh-HOG融合輸入方法的模型復雜度和參數量均高于單輸入方法,為評估計算量的差異,橫向對比在VIP數據集上,訓練集每完成1 次訓練所需時間和估計單張圖像所需時間。其中,訓練集使用800 張圖像,對整個訓練集累計訓練20次并計算每次的平均訓練時長。對200張圖像進行預測,并計算單張圖像的評價預測時長。具體結果如表2 所示。由表2 可知,融合方法的訓練時長和預測時長更久。但考慮在實際應用中,當訓練完成后,針對單張圖像的預測時間差距不超過20 ms左右,作為被測試者則完全感受不到這種差異。因此,時間上的微小犧牲換取估計性能的提升顯然更有意義。

表2 單輸入和聯合輸入方法的計算時長比較
本文進一步將提出的方法在VIP數據集上與已有的最新研究方法進行比較:1)LDL-CPNN 和LDL-IIS 由Wen Y等人[19]提出,使用Centerloss 模型提取特征并進行估計。2)ResNet-50由Dantcheva A等人[17]提出,是基于50層Res-Net體系結構的回歸方法。3)LD-PLS和LD-CCA由Jiang M等人[13]提出,是基于標簽分布的BMI估計學習方法。比較結果如表3 所示。由表3 可見,無論是整體的還是區分性別的實驗結果,本文方法均較已有研究方法取得了較大的性能提升,所得BMI估計的MAE最小。

表3 基于VIP數據集不同方法MAE比較
此外,本文還在Reddit 數據集上進行了對比實驗。Haritosh A等人[18]使用XceptionNet,VGG-Face和ResNet等多個模型提取特征并計算BMI。如表4 所示,本文方法相比已有研究算法,所得BMI估計的MAE最小。

表4 基于Reddit數據集不同方法MAE比較
考慮人臉各個區域深度大小對BMI估計的影響,通過人臉3D關鍵點結合人臉模型手動定義Mesh 圖,并在BMI估計中使用HOG特征,搭建了一個基于DCNN的框架進行特征融合,通過融合后的深度和外觀特征進行BMI回歸,實驗結果證明融合的特征能進一步降低BMI估計的誤差。