王冰冰,麥成源,莊杰穎,潘家輝,梁 艷
(華南師范大學 軟件學院,佛山 528225)
“顏值”是用來衡量外貌美丑狀態的一個流行詞匯,體現了人們對外貌的重視.在追求高顏值的今天,如何快速、客觀評價一個人的顏值是值得研究的課題.隨著計算機視覺的發展,人臉識別技術和深度學習算法逐漸普及,眾多研究者嘗試采用人工智能的方法對人臉顏值進行自動評估.人臉顏值評估系統可為人臉顏值提供客觀的評價,具有一定的理論研究價值.此外,人臉顏值評估系統可應用于美妝產品、圖片美化、社交網絡等場景,具有極大的市場應用價值.
近年來,隨著互聯網技術的不斷發展,為了滿足人們對美貌的追求,許多人臉顏值評估系統應運而生.國內推出了多款操作簡便的顏值打分器APP,僅需上傳圖片即可預測出用戶的顏值分數,但評估準確率較低,對于美丑的判定與大眾審美存在較大的偏差.PrettyScale是國外推出的一款專業在線顏值點評系統,主要根據黃金比例的美學原理對用戶的顏值進行評估,但該系統操作較為復雜,需要用戶手動調整面部、眼睛、鼻子、嘴巴等各部分的位置.
早期的人臉顏值評估研究主要采用傳統的機器學習方法,比如,管業鵬等人[1]根據黃金比例的標準和人臉面部的1/3 比例,提出了一種基于圖像的非監督人臉顏值評估方法.李立琛[2]采用梯度方向直方圖、幾何特征、顏色直方圖、尺度不變特征轉換和Gist 空間包絡特征及其融合特征對人臉圖像進行顏值評估,平均準確率達63%.毛慧蕓等人[3]提出17 維特征提取方法,并結合C4.5 決策樹學習方法,對510 幅中國女性人臉圖像進行顏值評估,分為4 個評價等級,準確率達到71.6%.華南理工大學的謝多瑞[4]設計了一款顏值達芬奇系統,主要采用基于幾何特征與基于表觀特征兩種傳統的機器學習方法進行顏值評估,同時結合了角度矯正和群眾打分等功能,使得系統的測評結果更加合理.
傳統的機器學習方法需要手工提取特征,泛化性能較弱,難以應對復雜的情況.因此,近年來較多學者采用基于深度學習的解決方案.相較于傳統機器學習方法,深度學習通過對各層網絡逐層的學習,更容易發現顏值評估的規律,具有廣闊的應用空間.2015年,Xie 等人[5]公開了一個用于人臉顏值評估的數據集,并設計3 個不同網絡層次的卷積神經網絡(convolutional neural networks,CNN)模型進行測試,實驗結果表明,采用CNN 模型的分類效果遠高于傳統機器學習方法.甘俊英等人[6]則在此基礎上進行了改進,通過減少網絡層數和減小圖像的尺寸以提高模型的實時性,并通過微調數據的方法進一步提高預測的準確性.Zhai 等人[7]提出了一種繼承不同尺度特征的顏值評估方法BeautyNet,在LSFBD 數據集[8]上進行實驗,準確率達67.48%.與傳統機器學習方法相比,基于深度學習的方法在評估準確率上有所提高,但訓練更為復雜的深度學習模型,需要大量的數據.
為了實現人臉顏值的智能評估,本文研發了一款基于深度學習的顏值評估系統,利用圖像的方向梯度直方圖(histogram of oriented gradient,HOG)特征[9]進行人臉檢測,采用FaceNet 預訓練模型進行人臉特征值的提取,提出基于Softmax 分類層和ReLU 回歸層的雙層決策模型,并綜合考慮人臉局部特征進行人臉顏值評估,不僅提高了顏值評估的準確率,還具有較高的實時性,滿足實際應用的需求.
本文設計了一款基于深度學習的人臉顏值評估系統,框架圖如圖1所示,結合雙層決策模型和綜合局部特征量化值,實現人臉顏值的實時評估,一定程度上避免了人工干預等主觀性較強的評價.系統主要分為四個模塊:人臉檢測模塊、人臉特征提取模塊、人臉顏值評估模塊、局部特征值量化模塊.整體設計的思路如下:用戶通過拍照或者本地相冊輸入需要評估的人臉圖片,利用基于HOG 特征的人臉檢測器進行人臉檢測,然后利用FaceNet 預訓練模型提取人臉特征向量,并將其作為雙層決策模型的輸入,采用雙層決策模型進行訓練,最終將人臉局部特征進行量化,并結合量化后的特征值得到顏值評估得分結果.

圖1 人臉顏值評估系統框架圖
用戶通過拍照或選擇照片的方式將圖片上傳至本系統,系統將會調用Dlib中的基于HOG 特征[10]的分類器對獲取到的照片進行人臉檢測.人臉檢測的流程如下:首先讀取包含人臉矩形框閾值、滑動窗口大小和掃描濾波器參數的文件;其次選擇尺度參數,利用滑動窗口對圖像的不同尺度進行活動掃描,并計算出每個窗口的HOG 特征;再根據文件中給出的濾波器參數計算每個窗口的響應值,對圖像進行初步的判斷,若檢測的結果為人臉,則對其進行標記.經過一輪活動掃描后,圖像的每個尺度會出現多次標記的情況.針對較高重疊率的人臉,我們在圖像掃描完成后,利用非極大值抑制(non maximum suppression,NMS)方法[11],根據重疊率的閾值和計算得到的濾波響應值來消除重疊多余且響應值低的人臉,從而得到最終的人臉檢測區域.人臉檢測的流程圖如圖2所示.

圖2 人臉檢測流程圖
FaceNet 預訓練模型能夠有效提取圖片中具有復雜特征或難以直接量化的特征,并且提取的全局特征向量不受圖片幾何隨機變換的影響,給接下來的雙層決策模型帶來較好的效果.FaceNet 框架圖如圖3所示.其中,FaceNet 主體模型采用一個由3 個帶有殘差連接的Inception 模塊和1 個Inception v4 模塊組成極深度網絡Inception ResNet-v2.Batch為輸入的人臉圖像樣本的批尺寸;L2為特征歸一化;Embeddings 則是經過極深度網絡和特征歸一化后生成的特征向量;Triplet Loss 代表的是三元損失函數,即通過學習使得類別內部的樣本距離小于不同類別樣本的距離.

圖3 FaceNet 預訓練模型流程圖
三元損失函數的定義如下:

其中,xai、xmi、xni分別為第i個樣本的正面人臉圖(錨點)、與樣本同類的人臉圖(正樣本)以及與樣本不同類的人臉圖(負樣本),F(xai)、F(xmi)、F(xni)為3 幅人臉圖像對應的特征,N為樣本個數,ω是為平衡收斂性與精確度設置的超參數.在訓練過程中,我們參考文獻[12]將 ω 設置為0.2.
人臉顏值評估模塊的目的是對人臉圖像進行顏值測評.若直接利用分類模型進行等級的分類,雖然可以得到較高的準確率,但評估的結果相對變得模糊,難以合理地區分每個人的顏值評估結果.另一方面,若直接根據原始數據集中的連續性分數作為標簽,訓練一個回歸型的模型,則會因為數據分布不均,導致均方根誤差(root mean square error,RMSE)、均方誤差(mean square error,MSE)等相關指標較大,評估的結果準確性不高.
因此,本文將FaceNet 模型中提取的人臉特征作為人臉顏值評估模塊的輸入,并將數據集分成“較低”“一般”“較高”3 種等級,分別訓練3 種回歸模型:較低顏值回歸模型、一般顏值回歸模型和較高顏值回歸模型.此外,采用ReLU 激活函數增加回歸模型的非線性表達能力,通過梯度下降法對參數進行優化.
在人臉顏值評估模塊的具體實現中,我們結合分類模型和回歸模型,采用基于Softmax 分類層和ReLU回歸層的雙層決策模型評估人臉顏值.首先,將FaceNet預訓練模型提取的人臉特征向量作為雙層決策模型的輸入,通過雙層決策模型中的Softmax 分類層預測該人臉特征所處的顏值等級,然后通過對應等級的回歸模型(較低顏值回歸模型、一般顏值回歸模型和較高顏值回歸模型),得到連續的人臉顏值評估數值,最后將該數值轉換成百分制,即可獲得百分制形式表示的顏值評估結果.具體流程如圖4所示.

圖4 雙層決策模型流程圖
考慮到單一評價會影響評估的客觀性,本文根據文獻[13]提出的東方人臉顏值測評標準,引入了5 個主要局部特征值,分別為:下顎角度、眉心至鼻下/鼻下至下頜、人臉長寬比例、微笑角度、唇厚度比(下/上).傳統審美觀將人臉圓潤對稱視為美的標準,臉型不應過分尖瘦,同時,人臉長寬比應符合黃金比例,因此,我們通過分析數據集“較高”等級的人臉局部特征,并結合傳統審美觀點,最終確定了5 個局部特征的標準參考值:下顎角度為120°,眉心至鼻下與鼻下至下頜的比例為1:1,人臉長寬比例為1:0.618,微笑角度為小于180°,下唇與上唇厚度比值大于1.具體每個局部特征的標準參考值如表1所示.

表1 標準局部特征值表
根據人臉圖像各個局部特征值與對應的標準參考值之間的差異性,我們設置了相應的加分規則,如表2所示.規則設置的原則是:當局部特征值與標準參考值越接近,說明該特征越接近傳統的大眾審美,因此可以獲得加分,反之,不得分.比如,下顎角度越接近120°,加分越多,當與標準參考值的差值超過30°,即臉型太寬或太尖,則不加分.

表2 局部量化特征加分規則表
我們基于Windows 系統和Ubuntu 虛擬機搭建了系統的開發環境,主要通過PyCharm 開發工具、Android Studio 開發工具、MySQL 數據庫組成,如圖5所示.系統的功能主要有人臉檢測、基于FaceNet 模型的特征提取、顏值評估3 大模塊構成.在業務層中,采用基于Softmax 分類層和ReLU 回歸層的雙層決策模型、MySQL 數據庫,同時使用第三方資源Dlib和OpenCV開源計算機視覺庫.

圖5 系統架構圖
3.2.1 數據集收集及均衡化
(1)數據集的來源與收集
本文采用SCUT-FBP5500 數據集[5],其中包含5 500張正面人臉圖像,年齡分布在15–60 歲.人臉圖像包括了2 000 名亞洲女性、2 000 名亞洲男性、750 名高加索男性和750 名高加索女性.本系統主要針對亞洲人臉顏值進行評估,因此我們選取了數據集中4 000張亞洲人臉圖像用于模型訓練和算法測試.每張圖像分別由60 個18–27 歲的評分員進行評分,共5 個等級,并將評分的均值作為數據集每張圖片的標簽.SCUTFBP5500 數據集的部分原始數據如圖6所示.

圖6 數據集的部分原始數據
(2)數據集的擴充與處理
我們發現SCUT-FBP5500 數據集在評分兩端(接近1 分和5 分)的數據較少,而在中間分數段的數據居多.雖然該數據集符合正常的人臉顏值分布,但數據集的分布不均將會影響模型的訓練效果,因此需要進一步收集數據并對數據集進行擴充與處理.
本文參考了英國IM 雜志亞洲最時尚面孔名單,擴充數據集,使高分數據增多,并去除掉質量較差的圖片,增強后的數據集共4 794 張,然后將其按7:3的比例劃分為訓練集和測試集進行訓練.增強的部分原始數據如圖7所示.

圖7 數據集增強后的部分原始數據
由于在實際生活中,存在于評分兩端分數段的數據較少,為使數據集分布均勻,我們調整分數段,合并相關分類,將5 個等級劃分為3 個等級:設定1–2 分數區間為類別“較低”,3 分數區間為類別“一般”,4–5 分數區間為類別“較高”.
3.2.2 模型訓練過程和主要參數設置
本研究對基準的分類層模型進行結構上的改進,同時利用數據增強提高模型評估的性能.訓練過程主要分為4 步.
(1)利用基于HOG 特征的人臉檢測器檢測人臉區域,截取數據集圖像中人臉的感興趣區域(region of interest,ROI),從而避免了模型參數的冗余.
(2)將訓練集輸入到FaceNet 預訓練模型中后,初步提取人臉的圖像特征,得到人臉特征集.
(3)在雙層決策模型訓練中,首先利用人臉特征集對3 分類的Softmax 分類器進行訓練,然后將人臉特征集的5 個等級劃分為3 個等級,分別訓練對應等級的回歸模型.
(4)最后利用測試集計算雙層決策模型的準確率.在雙層決策模型測試中,將測試集輸入到FaceNet 預訓練模型以提取人臉特征值,然后通過Softmax 分類層預測出等級,并選擇對應的回歸模型進行顏值的評估.本文將雙層決策模型最后的輸出值進行四舍五入處理,綜合原始的標簽得到最終的準確率.Softmax 分類器訓練過程準確率如圖8所示,當總迭代次數達到300 次時,訓練集準確率趨于收斂.

圖8 雙層決策模型中的分類層訓練集準確率
主要參數設置如下:
(1)學習率為0.001;
(2)總迭代次數為300 次;
(3)一次訓練所選取的樣本數(batch size)為32.
3.2.3 實驗結果與分析
(1)數據集處理結果與分析
為了確定數據增強的方法,解決數據集分布不均的問題,我們對以下3 種數據增強方法進行對比:
① 變換增強處理:對評分兩端的圖片進行隨機圖像變換與增強;
② DCGAN 模型[14]處理:采用DCGAN 模型對評分兩端的圖片訓練,生成類似圖片.
③ 人工處理:人工擴充數據集,使高分數據增多,并去除掉質量較差的圖片.
我們基于不同的數據集處理方法,運用本文所提出的FaceNet+雙層決策模型+局部特征量化值進行訓練,結果如表3所示.

表3 基于不同數據集處理方法的模型訓練結果
從表3可以看到,采用DCGAN 模型處理和人工處理的方法對原始數據進行增強,均可以提高評估的準確率.但是,采用DCGAN 模型訓練生成圖片的時間成本代價較高,總訓練時間為6.20 小時,而且生成圖片的質量不高.與另外兩種數據增強方法相比,采用人工處理的方法不僅總訓練時間最短,而且準確率最高,達78.58%,因此本文最終確定采用人工處理方法進行數據增強.
(2)顏值評估方法比較與分析
為了驗證本文方法的有效性,我們把本文方法與FaceNet+Softmax、FaceNet+雙層決策模型方法的性能進行比較,實驗結果如表4所示.采用正確率為性能評價指標,其計算公式如下:

表4 不同顏值評估方法結果對比 (%)

其中,ACC為正確率,Ntrue為正確分類的圖片數量,Npredict為總預測的人臉圖片數量.
與另外兩種顏值評估方法相比,本文方法經數據擴充后,利用FaceNet+雙層決策模型+局部特征量化值進行人臉顏值評估,正確率比采用FaceNet+Softmax和FaceNet+雙層決策模型的方法分別提高了5.54%和3.07%,證明了雙層決策模型與局部特征量化值的結合能有效地提高分類性能,最終提高系統的整體性能.
(3)系統響應時間分析
我們對系統的響應時間進行了測試,輸入20 張人臉圖片進行顏值評估,共花費59.6 s,平均每張圖片的評估速度為2.98 s.處理單張圖片的最長時間為3.23 s,最短時間為2.16 s,其變化幅度也是在用戶可接受的范圍之內,因此,本文提出的方法能夠滿足用戶實際應用需求.
本文將人工智能技術應用于美妝領域,研發了一款基于深度學習的人臉顏值評估系統,可實時對用戶的妝容進行評估,提高用戶的美妝技能和質量.該系統利用FaceNet 預訓練模型進行人臉特征提取,結合雙層決策模型和人臉局部特征量化值進行人臉顏值評估.在經過數據增強后的SCUT-FBP5500 數據集進行實驗,本系統獲得78.58%的準確率,人臉圖片的平均評估時間為2.98 s,能滿足實際應用的需求.但影響人臉顏值的因素諸多,如膚色、發型、情感狀態等.如何進一步提取綜合性更強的特征,實現更貼近大眾審美標準的人臉顏值評估系統,是我們未來要繼續研究的問題.