戴忠健, 顧曉煒
(北京理工大學 自動化學院,北京 100081)
人臉屬性編輯是指將一張任意人臉圖像作為輸入,生成具有其他期望屬性的人臉圖像. 人臉屬性編輯可以作為人臉識別數(shù)據(jù)增廣的有效方式,其生成的不同屬性的人臉圖像豐富了人臉類內(nèi)數(shù)據(jù),部分解決了自然環(huán)境下由于人臉可變性帶來的精度損失,提高識別模型泛化能力. 人臉屬性編輯屬于多域的圖像到圖像的翻譯任務,它可以預測年老的樣貌,生成各種屬性變換后的人臉,是一個有趣同時也充滿挑戰(zhàn)的任務.
一方面,由于無法在同一張人臉上收集具有不同屬性的人臉圖像標簽(一個人無法同時具有禿頭和劉海特征),研究人員采用無監(jiān)督的生成學習方法[1-2]完成人臉屬性編輯任務;另一方面,人臉包含各種不同屬性,每個屬性都需要一個合適的模型去編輯. 為了在單個模型中編輯多個人臉屬性,一些基于編碼解碼器結(jié)構(gòu)的方法被提出[3-6].
然而,人臉屬性復雜多樣,包含了如眼鏡、發(fā)色這樣的局部特征,以及男女、年齡等編輯范圍大的全局特征. 如何把屬性標簽信息融入編碼解碼器中將很大程度上決定整個模型的編輯效果. 為了提高編輯能力,CycleGAN[7]引入了cycle-consistent 編碼解碼器結(jié)構(gòu),AttGAN[3],Stargan[4]使用了跳躍連接的方法. 但是,直接將潛在表達與屬性標簽連接并解碼會降低人臉還原度,而添加跳躍連接會以損失屬性編輯能力為代價提高人臉重塑能力. 為了解決這個問題,STGAN[8]提出了選擇轉(zhuǎn)移單元STU,將潛在表達與屬性標簽連接作為初始狀態(tài),并向上采樣生成一系列狀態(tài)信息,使屬性標簽與編碼特征充分融合. 然而,選擇轉(zhuǎn)移單元將具有高維語意信息的編碼器特征作為初始狀態(tài),該狀態(tài)在進行上采樣生成不同尺寸的狀態(tài)時會丟失細節(jié)信息,造成屬性細節(jié)表述模糊,并且在重塑人臉時會產(chǎn)生隨機噪聲. 圖1展示了STGAN與本文方法的人臉還原結(jié)果與屬性編輯結(jié)果.
圖1 STGAN與本文方法的人臉編輯結(jié)果Fig.1 The editing results of STGAN and the proposed method
基于以上分析,本文提出了一種新的屬性信息傳遞方式U型傳遞,新的信息融合單元全局組織單元以及新的下采樣模式. 與之前網(wǎng)絡所采用的上采樣提取狀態(tài)不同,U型傳遞方式首先通過下采樣將屬性信息融入淺層編碼器特征并生成一系列反向狀態(tài),再利用全局組織單元把反向狀態(tài)、屬性標簽及編碼器特征進行融合,并上采樣生成不同尺寸的全局狀態(tài). 用U型傳遞方式獲得的全局狀態(tài)兼具細節(jié)與屬性信息,以此結(jié)合解碼器特征能夠同時提高人臉重塑能力與屬性編輯能力.
實驗結(jié)果證明,與其他人臉屬性編輯算法相比,本文所提出的全局組織網(wǎng)絡算法在人臉還原與屬性編輯性能上表現(xiàn)得更加優(yōu)秀.
在人臉屬性編輯網(wǎng)絡中[3-4,8],屬性信息是通過將解碼器特征與屬性標簽結(jié)合并上采樣進行傳遞的. 為了提高性能,STGAN[8]提出選擇轉(zhuǎn)移單元STU. STU引入GRU[9]中的狀態(tài)信息,利用重置門選擇提取前一層的狀態(tài)并通過更新門生成該層的新狀態(tài),生成的狀態(tài)特征將屬性信息從高維傳遞至低維. 但是,STU將具有高維語意信息的編碼器特征與屬性標簽結(jié)合作為初始狀態(tài),該狀態(tài)在進行上采樣時會丟失細節(jié)信息,造成屬性細節(jié)表述模糊并產(chǎn)生隨機噪聲.
為了解決這個問題,本文提出U型傳遞方式,模型結(jié)構(gòu)如圖2所示. 首先,將低維編碼器特征(尺寸64×64)與屬性標簽結(jié)合作為初始狀態(tài),利用STU生成從低維到高維的反向狀態(tài). 這個過程有效地將屬性標簽與編碼器特征融合,生成的反向狀態(tài)具有屬性信息且更加注重細節(jié). 從圖2中可以看到,STU生成的反向狀態(tài)會輸入到對應尺寸的全局組織單元GOU中. GOU是由GRU改進而來,其中增加了互補門,目的是融入反向狀態(tài)并生成全局狀態(tài). GOU將高維編碼器特征(尺寸4×4)與屬性標簽結(jié)合作為初始狀態(tài),在上采樣過程中融入了反向狀態(tài),有效地補足細節(jié)信息,抑制噪聲的產(chǎn)生,同時來自反向狀態(tài)與隱藏狀態(tài)兩種不同維度的屬性信息共同作用提高了模型屬性編輯的能力. 如圖2所示,模型的狀態(tài)流動方向通過STU從低維流向高維,再經(jīng)由GOU從高維流向低維,整個過程稱為U型傳遞.
圖2 網(wǎng)絡模型整體結(jié)構(gòu)Fig.2 The overall structure of the proposed network
為了解決STGAN在編輯人臉時出現(xiàn)屬性模糊及隨機噪聲的問題,本文提出全局組織單元GOU. GOU能夠以有效的方式融合反向狀態(tài)、隱藏狀態(tài)、編碼器特征與屬性標簽并以此生成全局狀態(tài). 其中,編碼器特征是輸入圖像經(jīng)過編碼器下采樣生成的潛在表達,反向狀態(tài)是指由STU生成的一系列從低維到高維的狀態(tài)信息,隱藏狀態(tài)是GOU模塊每一層更新后的狀態(tài),屬性標簽是指輸入圖像是否具有某種屬性的一維向量標簽. GOU通過重置門、互補門與更新門將上述信息結(jié)合生成全局狀態(tài),因此,全局狀態(tài)兼具屬性信息與細節(jié)特征,其與解碼器特征連接能夠同時提高人臉還原和屬性編輯能力. 圖3呈現(xiàn)了GOU的內(nèi)部結(jié)構(gòu).
圖3 全局組織單元詳細結(jié)構(gòu)Fig.3 The detailed architecture of GOU
在STU中反向狀態(tài)需由低維傳遞到高維. 為了匹配編碼特征尺寸,用步長卷積層下采樣
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
U型傳遞首先利用STU由低維到高維生成反向狀態(tài). 考慮人臉屬性復雜多變,低維編碼器特征由于感受野不足無法提供滿意的屬性信息. 因此反向狀態(tài)的作用會由于感受野的限制表現(xiàn)不佳. 為了更好地配合U型傳遞,本文重新設計了模型的編碼器部分,即信息自組模塊(IAB),如圖4所示.
圖4 信息自組模塊Fig.4 Information auto-organization block
為了更好地表達復雜的人臉屬性,IAB引入空洞卷積來增加感受野. 但是,僅僅使用空洞卷積會因為空洞間隙造成信息遺漏. 為了解決這個問題,IAB將上一層特征分別與空洞率2和4的空洞卷積提取的特征結(jié)合,通過信息疊加彌補空洞遺漏. 同時,IAB加入通道注意力機制SE模塊[10],幫助特征在通道上重新校準. 如圖5所示,由IAB提取的特征能夠獲得更大的感受野.
圖5 信息自組模塊提取的感受野組合Fig.5 The receptive fields extracted by information auto-organization block
本文所提算法包括兩個部分:判別器與生成器. 其中,生成器包含用來提取潛在表達的編碼器Genc,以及用來生成假人臉圖像的解碼器Gdec. 判別器由兩個分支組成:其中,Dcls用來限制生成圖像,令其只對期望屬性進行編輯,Gadv用來區(qū)分一張圖像是否來自真實分布. 除此以外,GOU部署在編碼器與解碼器之間.
如表1所示,編碼器Genc的前3層由IAB組成,后2層由尺寸為4、步長為2的普通卷積組成,解碼器Genc部署了5個與編碼器相同尺寸的反卷積層. 判別器Gadv由5個卷積層與2個全連接層組成.Dcls與Dadv共享5個卷積層,同時獨有額外的2個全連接層. 表1中,BN是文獻[11]的縮寫,IN是文獻[12]的縮寫,LN是文獻[13]的縮寫,Conv(64,4,2)表示卷積核尺寸4、步長2、通道數(shù)64的卷積操作.
表1 模型結(jié)構(gòu)Tab.1 The structure of the model
將輸入的人臉圖像表示為x,編碼器Genc把x抽象成編碼器特征Yenc,Yenc的表達式如下(大寫字母代指一系列輸出的組合)
Yenc=Genc(x)
(12)
GOU將隱藏狀態(tài)、反向狀態(tài)、編碼器特征以及屬性標簽組織成全局狀態(tài)與輸出
(Yt,Sgo)=Ggo(Yenc,Sin,S,att)
(13)
(14)
整個人臉屬性編輯過程可以定義為無監(jiān)督的編碼器與解碼器的學習過程. 編輯結(jié)果需要還原人臉并同時編輯期望屬性. 為了達到這個目的,本文采用了對抗損失,重塑損失以及屬性分類損失.
本文采用對抗損失訓練生成器和判別器. 與WGAN[14],WGAN-GP[15]相同,對抗損失表達式如下
(15)
(16)
本文采用重塑損失還原人臉,保留除編輯屬性以外的人臉細節(jié).重塑損失表達式如下
(17)
式中l(wèi)1用來抑制模糊.
本文采用屬性分類器來實現(xiàn)人臉屬性的編輯,屬性分類損失定義如下
LDcls=
(18)
LGcls=
(19)
(20)
整個判別器損失表達式如下
(21)
式中:λ1=100,λ2=10,λ3=1為超參數(shù)平衡上述損失.
本文使用Tensorflow[16]深度學習框架,由ADAM[17]優(yōu)化器(β1=0.5,β2=0.999)訓練而成,批量大小為16,學習率設置為0.000 2.
本文在CelebA[18]數(shù)據(jù)集上進行訓練與評價. 為了公平對比,本文所提算法在與人臉屬性編輯算法[3-4,8]相同的實驗環(huán)境下進行性能驗證. CelebA數(shù)據(jù)包含202 599張對齊人臉圖像,并分為訓練集、測試集與驗證集. CelebA數(shù)據(jù)中的圖像均被裁剪為178×218大小的人臉圖,且每張圖都分配了屬性標簽. 與以往算法[3-4,8]相同,本文選擇40個屬性中13個具有代表性的屬性,包括禿頭、劉海、黑發(fā)、紅發(fā)、棕發(fā)、濃眉、眼鏡、男性、嘴微張、胡子、無胡須、淺膚色以及年輕. 與人臉屬性編輯算法[4,8]相同,本文從兩個方面評估人臉屬性編輯性能. 一方面是屬性編輯成功率,其反映了算法能夠正確編輯期望屬性的性能;另一方面是圖像質(zhì)量,能夠驗證編輯結(jié)果的真實性. 為了更加直觀公平地對比,本文采用STGAN的方法來評估算法的屬性編輯性能. STGAN利用CelebA訓練集去訓練一個屬性分類器,該分類器在測試集的13個所選屬性中測試并獲得94.5%平均準確率. 本文將算法生成的編輯結(jié)果作為輸入,通過屬性分類器獲得屬性編輯成功率. 如表2所示,本文所提算法在大部分屬性中獲得了更高的編輯成功率. 值得注意的是,該算法的平均成功率比STGAN高出5%,這表明在屬性編輯方面,本文所提算法具有更好的泛化能力. 圖6展示了本文算法與其他對比算法的人臉屬性編輯結(jié)果.
圖6 人臉屬性編輯結(jié)果Fig.6 The results of facial attribute editing
表2 不同方法的屬性編輯成功率Tab.2 Attribute generation accuracy of different methods
對于圖像質(zhì)量的評價,表3給出了上述方法生成重塑圖像的PSNR/SSIM結(jié)果. 很明顯,本文所提算法比STGAN在PSNR指標上高出了5 dB.
本文提出U型傳遞方式,將低維編碼器特征(尺寸64×64)與屬性標簽結(jié)合作為初始狀態(tài),利用STU生成從低維到高維的反向狀態(tài). 這個過程有效的將屬性標簽與編碼器特征融合,生成的反向狀態(tài)具有屬性信息且更加注重細節(jié). 與此同時,本文設計GOU模塊,結(jié)合反向狀態(tài),隱藏狀態(tài)與編碼器特征,并生成全局狀態(tài). GOU將高維編碼器特征(尺寸4×4)與屬性標簽結(jié)合作為初始狀態(tài),在上采樣過程中融入了反向狀態(tài),有效補足細節(jié)信息,抑制噪聲的產(chǎn)生,同時來自反向狀態(tài)與隱藏狀態(tài)兩種不同維度的屬性信息共同作用提高了模型屬性編輯的能力. 此外,本文設計IAB下采樣豐富淺層特征感受野,提高網(wǎng)絡屬性編輯的泛化能力. 從表2與表3的實驗結(jié)果來看,本文所提方法能夠同時提高人臉還原度與屬性編輯性能.
表3 圖像質(zhì)量與平均編輯成功率Tab.3 Images quality and attribute generation average accuracy
為了進一步驗證本文方法的屬性編輯性能,本文從人臉識別的角度進行實驗驗證. 優(yōu)秀的人臉屬性編輯網(wǎng)絡能夠在還原人臉的基礎上編輯期望屬性. 因此,將其作為人臉識別數(shù)據(jù)增廣的方式可以有效增加類內(nèi)數(shù)據(jù). 不同于普通數(shù)據(jù)增廣,人臉屬性編輯可以改變?nèi)四樃鞣N屬性,換句話說,它能夠預測不同狀態(tài)不同時期下的人臉圖像,部分解決由于時間變化引起的自然環(huán)境下人臉可變性的問題,從而提高人臉識別網(wǎng)絡的泛化能力. 本文以MS-Celeb-1M[19]作為人臉識別的訓練集,并在LFW[20],CFP[21],AgeDB[22]測試集上進行測試驗證. MS-Celeb-1M提供了5.8 M張照片,其中包含了85 K個不同身份的人物. 為了驗證方便,本文在訓練集前2 000個人物下進行屬性增廣,并將Mobilefacenet[23]作為識別模型. 如表4所示,在經(jīng)過本文方法數(shù)據(jù)增廣后,Mobilefacenet在3個測試集上的識別準確率都得到了提高,這進一步驗證了本文所提方法優(yōu)越的人臉還原與屬性編輯能力.
表4 Mobilefacenet在不同數(shù)據(jù)下的識別準確率
為了探究IAB下采樣與GOU模塊對人臉屬性編輯的效果,本文對幾個網(wǎng)絡變體進行了相關(guān)實驗. 本文設計了6個不同網(wǎng)絡:ST-IAB1,ST-IAB2,ST-IAB3,GO-IAB0,GO-IAB1,GO-IAB2. 其中,ST表示采用STGAN[8]算法,IAB0是指編碼器下采樣均采用普通步長卷積,IAB1表示第一個下采樣使用IAB模塊,IAB2表示前兩個下采樣使用IAB模塊,GO表示使用GOU模塊,本文方法前3層編碼器下采樣采用IAB模塊. 為了公平對比,所有實驗均采取上述實驗標準.
從表5中可以看出,用IAB模塊作為編碼器下采樣可以有效豐富淺層特征的感受野,提高STGAN以及本文算法的人臉還原度與屬性編輯成功率. 當IAB模塊充當前3層編碼器下采樣時,STGAN的屬性編輯成功率提高了1.5%,本文所提算法的編輯成功率達到91.5%. GO-IAB0表示將STGAN中的STU模塊替換成GOU模塊,從表5可以很明顯地發(fā)現(xiàn),GOU在融入反向狀態(tài)后大幅提高了網(wǎng)絡的人臉還原度與屬性編輯成功率,這說明反向狀態(tài)有效補足細節(jié)信息,幫助網(wǎng)絡抑制噪聲的產(chǎn)生. 與此同時,在GOU模塊的基礎上使用IAB模塊能夠進一步提高網(wǎng)絡性能.
表5 不同網(wǎng)絡的人臉重塑質(zhì)量與屬性編輯成功率Tab.5 Reconstruction quality and attributes generation accuracy of different networks
根據(jù)對人臉屬性編輯網(wǎng)絡的研究,本文提出了全局組織網(wǎng)絡算法. 其中,U型傳遞改變傳統(tǒng)屬性信息的流動方式,生成的反向狀態(tài)為全局組織單元提供淺層編輯屬性與細節(jié)信息. 為了更好地配合全局組織單元,本文提出信息自組模塊,取代原有編碼器下采樣. 信息自組模塊通過結(jié)合普通卷積與空洞卷積有效增加了編碼特征的感受野,改善模型淺層屬性的提取能力. 最后,全局組織單元將編碼特征、反向狀態(tài)與全局狀態(tài)進行融合,消除隨機噪聲并精細屬性細節(jié)表達. 實驗證明,本文所提算法能夠同時提高人臉重塑與屬性編輯能力. 值得注意的是,通過本文方法對人臉數(shù)據(jù)進行數(shù)據(jù)增廣能夠有效提高人臉識別模型的泛化能力.