謝志峰 閆淑萁 張文領
1(上海大學上海電影學院 上海 200072) 2(上海大學上海電影特效工程技術研究中心 上海 200072)
圖像翻譯(Image-to-Image Translation)的任務是將源圖像域轉換為目標圖像域,是圖像處理中的一種重點研究方向。人臉屬性遷移作為圖像翻譯中的一種,其目的是把同種屬性下,不同屬性值的人臉圖像域進行轉換,比如性別轉換、發色變化和人臉老化。它廣泛應用在數字娛樂社交領域,并對增強數據集、輔助人臉識別具有重要意義。之前,人臉屬性遷移主要是利用配對數據集進行回歸分析。近些年,生成對抗網絡(Generative Adversarial Networks)[1]的出現推動了圖像合成[2-3]和圖像翻譯[4-6]的發展。這種生成器和判別器相互博弈學習真實數據分布的網絡框架也成為人臉屬性遷移任務的主流模型。
Isola等[7]提出有監督的圖像翻譯方法pix2pix,其模型以U-net[8]為生成網絡,新穎的PatchGAN為判別網絡,通過配對數據集訓練完成翻譯任務。但是對于人臉屬性遷移任務來說,這種有監督學習模型所需配對的人臉屬性數據集難以得到。Zhu等[9]基于對偶學習和循環一致性損失提出了一種無監督學習的圖像遷移模型CycleGAN,可以在未配對數據集上實現人臉屬性遷移,但是其生成圖像模糊。Liu等[10]提出UNIT模型,利用編碼器提取源域和目標域共享的潛在向量,并讓對應的解碼器學習潛在向量與各個域的映射完成屬性轉移,但是存在棋盤狀多余紋理。Zhang等[11]提出了基于視覺注意力機制的可解釋生成對抗性網絡SAT,可以在圖像到圖像轉換中減少屬性無關區域改變。
針對生成圖像存在偽影、屬性無關區域改變等問題,本文提出基于視覺注意力機制的生成對抗網絡,主要貢獻如下:
1) 為了減小屬性無關區域的變化,生成網絡引入視覺注意力機制,構建視覺注意力子網絡和圖像翻譯子網絡。非零的注意力值所在的區域視為屬性相關區域,剩下的部分為屬性無關區域。
2) 在判別器網絡中采用多尺度PatchGAN網絡結構判斷圖像的真假,豐富轉移圖像的細節,并提高圖像質量和視覺效果。
3) 為了保持人臉身份信息,減少偽影噪聲,添加循環一致性損失函數和注意力圖像損失函數。
Mirza等[12]提出條件生成對抗網絡(CGAN),通過輸入人臉的屬性標簽作為條件,生成器能隨機生成帶有相應屬性的人臉圖像。Perarnau等[13]在條件生成對抗網絡[12]的基礎上引入自編碼器,提出用于圖像編輯的可逆條件生成對抗網絡(IcGAN)。人臉圖像通過兩個獨立的編碼器訓練分別得到內容特征向量C和屬性特征向量A。重新對特征向量組合,放入生成對抗網絡中可以生成同一張臉不同屬性的圖像。Choi等[14]提出了新穎的StarGAN模型,通過改變輸出標簽即可完成不同域之間的屬性遷移。Bao等[15]提出了CVAE-GAN模型,在生成對抗網絡中加入了輔助分類器作為判別器的補充共同約束生成器,保持人臉的內容信息,穩定屬性遷移結果。Xiao等[16]基于特征解纏繞理論提出了實例級人臉屬性轉移網絡ELEGANT,原圖像和目標圖像在潛層空間進行特征交換,經過圖像解碼完成屬性遷移。Pumarola等[17]提出了人臉表情轉移模型GANimation,其以視覺注意力機制為原理,將生成網絡分為色彩轉移網絡和注意力生成網絡。
Arjovsky等[18]提出了WGAN模型,利用wassertein距離衡量生成數據分布與真實數據分布之間的距離。它解決了判別網絡和生成網絡能力平衡問題,使生成圖像的視覺質量有所提高,生成結果多樣性更豐富。Gulrajani等[19]為了解決WGAN中lipschitz連續性限制性問題,進一步改善了梯度穩定性提出了基于梯度懲罰的WGAN-GP模型。Mao等[20]認為最小二乘法可以將生成圖像的分布盡可能的接近目標,并利用最小二乘距離度量構建一個更加穩定而且收斂更快的、生成質量高的對抗網絡LSGAN。
為減小屬性無關區域的變化,本文提出基于視覺注意力機制的人臉屬性遷移網絡,并采用CycleGAN形式的循環結構解決了未配對數據集帶來的訓練不穩定問題。獨立的生成器GX、GY和獨立判別器DX1、DX2、DY1、DY2共同組成了兩組GAN網絡架構,分別進行特定屬性方向的遷移。生成器將圖像源域遷移為目標域完成特征映射,判別器本質上是一個二分類網絡,判別輸出圖像的真假。
本文的生成器是基于文獻[11]提出的卷積神經網絡架構,注意力子網絡和圖像翻譯子網絡除最后一層外,共享其余的網絡參數,具體結構如圖1所示。本文工作以Smiling屬性遷移為例,無表情人臉圖像和Smile圖像分別設為圖像域X和Y。生成器GX負責將源域X轉移到目標域Y,即GX(X)→Y,生成器GY負責將源域Y轉移到目標域X,即GY(Y)→X。

圖1 本文模型的生成器結構
生成器GX的編碼部分使用了3塊卷積-正則-激活的網絡模塊,其中卷積和為3×3,Batch Normalization作為正則項加速模型收斂。為了使高維特征更好地映射到潛層向量空間,中間層采用4塊殘差網絡塊[21]。由于上采樣會失去原始數據的信息,相比轉置卷積,在解碼部分采用了卷積+PixelShuffle的方法減少生成圖像的棋盤狀多余紋理。在解碼的最后一層,本文工作分別采用Sigmoid激活和Tanh激活得到注意力圖像Mx和轉移RGB圖像Rx。最后通過式(1)將原圖像Ix、注意力圖像和轉移RGB圖像融合,得到最終的人臉屬性遷移圖像Ig。
Ig=Rx+Ix×(1-Mx)
(1)
判別器作為生成器的博弈對手,不僅要約束和引導生成器生成低頻的全局信息,也要讓生成圖像的高頻細節部分更為豐富。本文引用PatchGAN結構[7],并采用多尺度判別器在不同的圖像分辨率上判別圖像的真假,網絡結果如圖2所示。

圖2 人臉屬性遷移的多尺度判別器
判別器網絡將輸入圖像當作馬爾可夫隨機場,每塊區域之間的像素保持獨立,可以避免極端輸出,而且多尺度的網絡結構可以提取更多的局部細節信息。本文使用256×256和128×128兩個尺寸送入判別器進行判別。它將輸入圖像劃分為N×N大小的Patch區域,分別對每個Patch區域進行真假判別,最后輸出一個二維矩陣,其中每個元素各代表一個Patch區域的平均估計[22]。
GAN模型的訓練是生成器G和判別器D之間不斷對抗博弈、優化網絡參數的過程。與普通GAN模型的對抗損失不同,本文工作用最小二乘損失函數代替原來的交叉熵損失函數,使特征空間中的決策邊界也能最小化,進一步提高生成圖像的質量。以生成器GX和對應判別器DY1、DY2為例,對抗損失函數如式(2)和式(3)所示。
LGAN(G)=(DY1(GX(x))-1)2+
λ1×(DY2(Gx(x))-1)2
(2)
LGAN(D)=(DY1(y)-1)2+λ2×(DY2(y)-1)2+
(DY1(GX(x)))2+λ2×(DY2(GX(x)))2
(3)
式中:x代表原圖像;y代表送入判別器的真圖像;LGAN(G)為生成器損失;LGAN(D)為多尺度判別器損失;在訓練中,設置參數λ1=λ2=0.5。
未配對的人臉圖像翻譯中,在指定屬性遷移的過程中既要保持人臉的基礎結構也要保留人臉的身份信息。本文引入了無監督圖像翻譯模型CycleGAN的循環一致性損失作為約束。生成器GX(x)生成的結果y′經過另一生成器GY(y′)得到的重構圖像應該與x保持一致。即任意圖像經過GX得到轉移后的圖像,再經過GY會返回到原始圖像。循環一致性損失Lcyc為:
(4)
在模型訓練中,本文工作并沒有給視覺注意力一個監督,而是讓它在不斷地學習中獲取。這樣,注意力圖像很容易飽和到1,導致生成器沒有效果。本文采用L2正則化約束注意力圖像Mx的生成,損失函數Latt為:
(5)
本文采用公開的人臉數據集CelebA作為本文工作的人臉屬性遷移模型的訓練集和測試集。該數據集有202 599幅包含40種屬性標簽的名人圖片。首先,根據圖像的人臉關鍵點定位對CelebA數據集進行適當的旋轉和裁剪,將原始的圖像處理為五點對齊的人臉圖像,大小為256×256。這種人臉對齊的預處理可以加快生成網絡學習圖像的數據分布。其次,利用屬性標簽將數據集中的圖像分成正樣本組標簽為1和負樣本組標簽為0。正樣本組和負樣本組就是本文要進行屬性遷移任務的源域和目標域。
所有實驗采用處理器為Xeon E5-2620,內存為64 GB的NVIDIA TITAN XP顯卡,64位Ubuntu操作系統,Python 3.6+PyTorch 0.4的訓練框架。設置優化器為Adam,學習率為0.000 1,Batchsize為8,迭代次數為40。實驗分別訓練了表情轉移、男女變化、人臉老化模型,部分結果如圖3和圖4所示。

(a) 輸入圖像

(a) 輸入圖像
由于無監督學習生成的圖像缺乏真實圖像作為評價輔助,本文采用了WD分數[23],即Wasserstein距離作為評價方法。WD分數是計算生成圖像的數據分布與真實圖像的數據分布之間的差距:
(6)
式中:n是測試集真實圖像xr的樣本數;m是測試集生成圖像xg的樣本數;Pr,Pg分別是xr,xg的數據分布;d(·)代表樣本間的距離。
人臉屬性遷移其實質是一種圖像翻譯任務,本文選用CycleGAN[9]、UNIT[10]和STGAN[24]三種圖像翻譯模型,分別在年齡和表情屬性遷移上進行實驗對比。
從圖5的人臉老化實驗結果可以看出:CycleGAN模型得到的轉移結果較差,僅僅在原圖上加了一些噪聲沒有實現老化的效果;UNIT模型實現了發色的老化,但面部細節的老化不明顯,且生成圖像模糊;STGAN模型會生成一點面部皺紋,但整體并沒有老化感覺;本文方法不僅實現了發色、胡須老化的效果,還生成了眼袋、皺紋這些臉部老化的細節,且生成圖像清晰。

(a) 原圖像
圖6展示了表情屬性轉移的結果:CycleGAN模型生成的圖像表情與原圖相似,沒有實現微笑到不笑的表情遷移;UNIT模型的結果雖然表情部分實現了遷移,但是整體臉部存在模糊黑影,色調有違和感;STGAN模型生成的圖像存在大量棋盤狀紋理,圖像模糊;本文方法可以不改變無關屬性區域,很好地完成表情遷移任務。

(a) 原圖像
本文分別對實驗對比中的兩個屬性遷移任務進行FID分數評估。將每個模型生成的人臉老化圖像與真實老年人臉圖像以及每個模型生成的不笑圖像和真實的不笑人臉圖像進行整理,得到8個評估數據集。通過計算真實數據分布和生成數據分布的Wasserstein距離得到WD分數。結果如表1所示,WD分數越小,生成數據更接近真實數據,屬性轉移的效果越好。

表1 人臉屬性遷移結果的WD分數
本文提出一種基于視覺注意力機制的生成對抗網絡人臉屬性遷移算法。針對現有算法的屬性無關區域改變問題,生成器引入視覺注意力輸出4通道圖像:RGB圖像和注意力圖像,通過融合完成屬性遷移任務。為了提高生成圖像的質量,豐富人臉細節信息,判別器采用多尺度的PatchGAN網絡。訓練過程中,為穩定輸入人臉的身份信息,專注屬性相關區域的遷移,加入循環一致性約束和注意力圖像約束。實驗對比表明本文算法相比于CycleGAN、UNIT和STGAN,能夠降低屬性無關區域的改變,提高人臉屬性遷移的質量。但是GAN模型訓練不穩定,依賴大型數據集訓練,這都是現有模型存在的問題,需要今后去解決。