張亮亮,張明艷,程凡永,周 鵬
(安徽工程大學(xué)安徽省電氣傳動與控制重點實驗室,安徽蕪湖 241000)
人臉部年齡的準確預(yù)測具有很高的利用價值,在智能推薦、電子商務(wù)廣告推送、圖像信息檢索與圖像理解[1]等人機交互任務(wù)中具有廣闊的應(yīng)用前景。目前使用較廣泛的年齡預(yù)測系統(tǒng)由特征提取和年齡預(yù)測兩個部分組成。前者涉及到人體測量學(xué)模型[2]、柔性模型[3]及流形學(xué)習(xí)模型[4]等。人體測量學(xué)模型在對人臉器官信息測量的基礎(chǔ)上結(jié)合數(shù)學(xué)建模方法,可有效描述輪廓變化和年齡增長之間的關(guān)系。柔性模型關(guān)鍵是將人臉部形狀和灰度或紋理相聯(lián)系,并進行相應(yīng)的訓(xùn)練獲取人臉的特征信息,進而獲得相應(yīng)的人臉模型。流形學(xué)習(xí)模型通過使用流形嵌入技術(shù)對不同年齡的人臉圖像進行訓(xùn)練學(xué)習(xí),進而獲取到相應(yīng)的年齡變化趨勢,該算法的優(yōu)勢在于不需要大量的個體樣本,甚至在某些特殊情況下單個個體僅需要一個樣本即可。年齡預(yù)測部分主要包括回歸模型[5]和分類模型[6]?;貧w模型依據(jù)人類年齡值的連續(xù)特點,使用相應(yīng)的回歸函數(shù)實現(xiàn)對年齡值的擬合計算,進而能夠有效實現(xiàn)對年齡的預(yù)測。文獻[5]用二次回歸函數(shù)表示臉部圖像的年齡變化規(guī)律,該方法在局部年齡段可取得較好的預(yù)測結(jié)果,但對于該年齡段之外的臉部圖像年齡預(yù)測效果欠佳。分類模型在對年齡進行預(yù)測時,通常是按照提前劃分好的年齡段實現(xiàn)對年齡的準確預(yù)測,并且最終計算出的預(yù)測結(jié)果也不是與真實年齡值相似的值,而是一個一定大小的預(yù)測范圍。文獻[6]借助EM 算法在低維2DLDA+LDA 空間中構(gòu)建了11 種高斯模型,由此能夠?qū)Ω鞫文挲g區(qū)間進行明確劃分。
上述方法都難以有效提取人臉的復(fù)雜特征并挖掘出人臉的年齡變化規(guī)律。針對這兩個方面的問題,本文結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RNN)的優(yōu)點對臉部圖像進行分割,并得到臉部圖像的左眼、右眼、鼻子和嘴巴四個部分的局部圖像,再通過Inception V4 模型[7]提取人臉面部圖像多尺度局部特征,并將這四個部分的局部特征使用串聯(lián)的方式得到融合特征。通過將不同年齡的融合特征輸入雙向長短期記憶(Long Short-Time Memory,LSTM)[8]中學(xué)習(xí)不同年齡的特征關(guān)聯(lián)性,以實現(xiàn)對不同年齡的準確預(yù)測。
卷積神經(jīng)網(wǎng)絡(luò)[9]是一種深度學(xué)習(xí)模型,利用該模型可快速有效地提取圖像特征。目前卷積神經(jīng)網(wǎng)絡(luò)已廣泛應(yīng)用于圖像識別和分析等領(lǐng)域。如圖1 所示,CNN 的層級結(jié)構(gòu)有以下5 層構(gòu)成:第1層是輸入層(Input Layer),該層的主要作用是預(yù)處理原始圖像;第2 層是卷積層(Convolution Layer),該層可完成卷積運算;第3 層是池化層(Pooling Layer),該層可實現(xiàn)對圖像的壓縮處理;第4 層是全連接層(Fully Connected Layer),該層可實現(xiàn)特征轉(zhuǎn)換處理;第5 層是輸出層(Output Layer),該層的作用是將分類結(jié)果輸出。卷積運算的過程如式(1)所示:
其中,l為卷積層數(shù),為第l層的第j個特征圖,Mj為感受野,K為卷積核,b為偏置,∫為激勵函數(shù)。
圖1 CNN 結(jié)構(gòu)Fig.1 Structure of CNN
當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)較深時,傳統(tǒng)的CNN 模型提取的特征主要為抽象特征,缺少人臉的多尺度信息,而年齡預(yù)測不僅需要人臉的抽象特征,而且還需要注重細節(jié)特征。因此,直接使用傳統(tǒng)的CNN 模型對年齡進行預(yù)測的效果欠佳。
針對傳統(tǒng)CNN 模型對年齡預(yù)測效果較差的問題,本文將Inception V4用于特征提取中。Inception V4是Google 在以Inception 網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)成的前三代分類器的基礎(chǔ)上,經(jīng)過升級得到的第四代卷積神經(jīng)網(wǎng)絡(luò)分類器。該網(wǎng)絡(luò)分類器的結(jié)構(gòu)如圖2 所示。Inception V4 網(wǎng)絡(luò)對于構(gòu)成Inception 塊的每個深度網(wǎng)絡(luò)網(wǎng)格大小都進行設(shè)計和統(tǒng)一,并通過在每一層中引入多尺度卷積核來實現(xiàn)多尺度特征的提取,且在圖像分類中取得較高的分類準確率。
圖2 Inception V4 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of Inception V4
本文用Inception V4提取臉部子區(qū)域圖像的特征。當(dāng)臉部圖像經(jīng)過預(yù)處理輸入Inception 網(wǎng)絡(luò)后,該模塊會對同一輸入映射上的多個不同變換進行5×5 和3×3的卷積變換以及最大池化,并將相應(yīng)的結(jié)果都傳送到輸出上,其過程如圖3 所示。即該模塊對每個神經(jīng)網(wǎng)絡(luò)層都會進行并行計算,且該模型的下一層會對獲取的特征信息進行判斷以及如何有效利用。
圖3 Inception 模塊工作機理Fig.3 Working mechanism of Inception module
上述運算在充分保留信息密度的同時,也會引起計算量激增。為了降低計算量,Inception V4 借助于1×1 卷積對輸入張量進行特征降維和融合,例如圖4 中的Inception-A 塊,利用1×1 卷積和多通道的優(yōu)勢,能夠有效提取空間信息,并且能夠?qū)⑻崛〉降目臻g信息壓縮到更低維度。通過以上運算操作,不僅可充分保留臉部圖像的信息密度,而且可更有效地提高神經(jīng)網(wǎng)絡(luò)的表征能力。由Inception V4 得到不同年齡的融合特征后,雙向LSTM 將對這些不同年齡的多尺度融合特征進行關(guān)聯(lián)性分析,以完成年齡預(yù)測。
不同個體的人臉老化過程具有個性化和動態(tài)性的雙重特點。因此,假如將年齡預(yù)測作為一種分類問題,即能夠?qū)⒉煌挲g當(dāng)作彼此相互獨立問題來處理,但是這樣的做法忽略了不同年齡之間的相關(guān)性,將會導(dǎo)致各個年齡區(qū)間的主要信息被遺漏。假設(shè)將預(yù)測年齡看作是回歸分析中的主要問題,并由此展開一系列的具體操作,雖然能夠?qū)Σ煌挲g的相關(guān)性加以考慮,但是處理過程卻將人臉年齡的變化作為一個恒速變化對待,而實際上青年人的人臉變化速度相較于中老年人更快[10]。
針對以上問題,本文將Inception V4 與雙向LSTM 聯(lián)合用于年齡預(yù)測領(lǐng)域,實現(xiàn)了多尺度特征提取和特征關(guān)聯(lián)性分析的結(jié)合,充分挖掘臉部特征變化規(guī)律以降低年齡預(yù)測誤差。本文所提算法先預(yù)處理原始臉部圖像,進而可以得到人臉局部圖像,然后利用Inception V4 模型對臉部局部特征進行分類提取,再將不同局部特征相串聯(lián)進而得到融合特征,繼而將不同年齡的融合特征輸入至雙向LSTM 中,以學(xué)習(xí)不同年齡特征間的相關(guān)性,從而完成年齡預(yù)測。本文所提年齡預(yù)測框架流程如圖5所示。
圖5 年齡預(yù)測流程Fig.5 Procedure of age prediction
卷積神經(jīng)網(wǎng)絡(luò)在特征提取方面表現(xiàn)較佳且應(yīng)用廣泛。然而,通過卷積神經(jīng)網(wǎng)絡(luò)提取的特征通常是靜態(tài)特征,特征之間缺少相關(guān)性,但現(xiàn)實世界中很多元素之間都是相互聯(lián)系的,人臉年齡特征則是如此。因此,在年齡估計階段需挖掘出不同年齡臉部特征的相關(guān)性以及變化規(guī)律。
針對以上問題,本文將雙向LSTM 應(yīng)用于算法的年齡預(yù)測階段。LSTM 可對時序數(shù)據(jù)進行合理的處理,并且確保每次輸入中的重要信息都可以得到保留,從理論上來講可以將輸入的所有核心信息都包括在內(nèi),繼而通過對所有輸入信息進行綜合考慮來預(yù)測輸出。但是這里所包含的所有輸入信息僅對預(yù)測內(nèi)容前面的內(nèi)容進行考慮,即只對上下文中的“上文”信息進行有效考慮,但是卻忽略了“下文”信息,則該過程有可能導(dǎo)致重要信息丟失的問題。雙向LSTM 正是基于這種思想,不僅從前往后保留預(yù)測年齡前面的重要信息,而且從后往前保留預(yù)測年齡后面的重要信息,即對各個年齡特征進行關(guān)聯(lián)性分析。年齡預(yù)測框架如圖6 所示。其中,圖片1、圖片2 和圖片3 表示同一人物不同年齡時刻的圖片,將這些人臉圖像經(jīng)過預(yù)處理后,按年齡順序依次輸入Inception V4 中提取臉部圖像多尺度特征,并得到特征向量x0、x1、x2。然后依次將特征向量輸入到雙向LSTM 中,分別用前向和后向LSTM 來學(xué)習(xí)過去和未來包含的隱藏年齡變化信息,以獲得臉部圖像的老化模式。在雙向LSTM 的最后一層中添加一個全連接層,由全連接層和Softmax 激勵函數(shù)輸出預(yù)測的年齡分布,進而完成年齡預(yù)測。
圖6 年齡預(yù)測模型框架Fig.6 Framework of age prediction model
FG-NET[11-12]數(shù)據(jù)集包含固定約束框架下的1 002 幅彩色和灰度臉部圖像,它是由82 個人的人臉圖像組成的,平均每人有12 幅圖像,這些人的年齡為0~69 歲。FG-NET 中的樣本圖像如圖7 所示。
圖7 FG-NET 數(shù)據(jù)集示例Fig.7 Examples of FG-NET dataset
受到數(shù)據(jù)采集總量的影響,F(xiàn)G-NET 借助于留一交叉驗證方法來合理劃分各類訓(xùn)練集和相應(yīng)的測試集,該方法的主要操作方式是在所有人中任意選擇其中一人,并將其影像作為測試集,而其他所有圖像均用作訓(xùn)練集,最終的預(yù)測誤差取平均值。
MORPH[13-14]數(shù)據(jù)集是由北卡羅來納大學(xué)研究人員收集到的真實數(shù)據(jù),共包括Album 1 和Album 2這2 個部分。對論文的具體引用情況進行分析可知,Album2 數(shù)據(jù)集是現(xiàn)階段應(yīng)用較為普遍且較為常見的數(shù)據(jù)集之一,與預(yù)測年齡相關(guān)的多數(shù)理論資料都在該數(shù)據(jù)集中展開了實際測評。Album2 也是一個跨時間的數(shù)據(jù)集,其收錄了同一個人在不同年齡段的圖片。該數(shù)據(jù)集分為商業(yè)和學(xué)術(shù)版本,學(xué)術(shù)版本包括了13 000 個人的55 134 張圖片,照片收集時間跨度為2003 年—2007 年,人物年齡為16 歲~77 歲,且平均年齡為33 歲。MORPH 數(shù)據(jù)集中的示例圖像如圖8 所示。
圖8 MORPH 數(shù)據(jù)集示例Fig.8 Examples of MORPH dataset
本文使用TensorFlow[15]平臺進行實驗驗證,TensorFlow 是Google 官方對外公開的一款機器學(xué)習(xí)框架,由于該框架具有較強的靈活性和可移植性,因此利用該框架可使得計算模型輕易地部署到分布式集群、單主機以及移動設(shè)備上。
評價算法的優(yōu)劣不能缺少一個客觀公正的指標(biāo),針對年齡預(yù)測算法優(yōu)劣的評價存在多種指標(biāo)。而目前針對年齡預(yù)測評價,使用較多的指標(biāo)之一是平均絕對誤差(Mean Absolute Error,MAE)[16]。
MAE 是全部預(yù)測值和實際值進行綜合比對后而得出的平均誤差,其相應(yīng)的數(shù)學(xué)定義可表示為:
其中,S表示測試圖像的數(shù)量,xi表示第i幅圖像的真實值,表示第i幅圖像的預(yù)測值。該指標(biāo)計算結(jié)果越小,則表明算法的性能越佳。
為了從不同角度驗證本文算法在年齡預(yù)測中的適用性和優(yōu)越性,本文利用TensorFlow平臺在FG-NET和MORPH 數(shù)據(jù)集中完成相關(guān)算法的驗證。在FGNET 數(shù)據(jù)集上與文獻[17-19]算法進行對比,結(jié)果如表1 所示。從表1 可知,本文算法在FG-NET 數(shù)據(jù)集上對年齡預(yù)測的MAE 均低于其他3 種方法。與本文算法相比,文獻[17]提出的LARR 算法是一種流形學(xué)習(xí)方法,該算法主要利用支持向量回歸的方法對年齡進行預(yù)測,而由對比實驗結(jié)果可知,使用卷積神經(jīng)網(wǎng)絡(luò)提取年齡特征對年齡預(yù)測更加有效。文獻[18]將年齡預(yù)測問題轉(zhuǎn)換為相應(yīng)的特征優(yōu)化問題,在確保圖像局部流形結(jié)構(gòu)不變化的同時也保留了人臉老化圖像的序數(shù)信息,而從對比實驗結(jié)果來看,通過使用雙向LSTM 學(xué)習(xí)人臉年齡變化的方式,能夠更好地利用不同年齡間的相關(guān)性信息,在對年齡進行預(yù)測時,則能夠獲得更佳性能。文獻[19]提出一種新的修正對比損失函數(shù),通過模擬單個樣本之間的成對序數(shù)關(guān)系來增強算法的魯棒性,而實驗結(jié)果表明使用Inception V4 能夠更好地提取人臉面部圖像的細微特征,從而保留多尺度信息,且結(jié)合雙向LSTM 能夠取得更佳的預(yù)測準確率。
表1 4 種算法在FG-NET 數(shù)據(jù)集上的MAE 對比Table 1 MAE comparison of four algorithms on FG-NET database
實驗將本文算法和文獻[20-22]算法在MORPH數(shù)據(jù)集上進行對比,結(jié)果如表2 所示。從表2 可以看出,在MORPH 數(shù)據(jù)上,本文算法相比其他3 種算法對年齡的預(yù)測效果更好。文獻[20]將多尺度分析策略從傳統(tǒng)方法引入到CNN 中,實現(xiàn)了多尺度面部年齡特征分析,該算法對人臉進行區(qū)域劃分,雖然提取了人臉的多尺度特征,但是不同年齡臉部特征的相關(guān)性和變化規(guī)律未能充分利用,對比實驗結(jié)果表明使用雙向LSTM 可更好地利用不同年齡之間的相關(guān)性信息,提高預(yù)測準確率。文獻[21]將傳統(tǒng)的年齡回歸問題轉(zhuǎn)化為一系列二分類的子問題,但是人臉年齡變化是動態(tài)過程,不同年齡之間的相關(guān)性信息對于年齡預(yù)測也是十分重要的,由對比實驗結(jié)果可知,使用雙向LSTM 學(xué)習(xí)人臉老化模式的年齡預(yù)測方法,在預(yù)測準確率上更有優(yōu)勢。文獻[22]使用輕量化的模型用于單一圖像的年齡估計,可移植性高,但對于特征提取,輕量化模型難以提取人臉多尺度特征,通過對比實驗可知,使用Inception V4 提取人臉年齡特征,能夠更好地保留人臉多尺度信息,并提高年齡預(yù)測準確率。
表2 4 種算法在MORPH 數(shù)據(jù)集上的MAE 對比Table 2 MAE comparison of four algorithms on MORPH database
由以上對比實驗可知,在FG-NET 和MORPH 數(shù)據(jù)集中,采用本文算法對年齡進行預(yù)測的MAE 均小于其他3 種算法,取得最優(yōu)年齡預(yù)測準確率。這說明與其他算法相比,本文算法綜合了卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)的優(yōu)點,不僅實現(xiàn)了多尺度特征提取,而且充分利用了臉部年齡特征變化的相關(guān)性,并降低了年齡預(yù)測的誤差。
針對人臉年齡預(yù)測問題,本文提出一種基于深度學(xué)習(xí)的臉部年齡預(yù)測算法。該算法將臉部圖像分為四部分人臉局部圖像,使用Inception V4 分別提取多尺度局部特征,將特征以串聯(lián)的方式相融合并輸入雙向LSTM 中,以學(xué)習(xí)年齡變化的相關(guān)性,從而完成臉部年齡的準確預(yù)測。實驗結(jié)果表明,與其他算法相比,本文算法在利用多尺度卷積神經(jīng)網(wǎng)絡(luò)提取臉部年齡特征后,利用臉部年齡特征變化與時間的相關(guān)性,可大幅降低年齡預(yù)測誤差。下一步將把實驗測試擴展到工業(yè)細分揀、人的身份識別等更多實際應(yīng)用中,以更好地驗證本文算法的普適性。