鞠怡軒,張建海,茅曉陽,許佳奕*
(1.杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江 杭州 310018;2.日本山梨大學(xué)工學(xué)部,山梨 甲府 1955-245)
人臉屬性編輯的目標(biāo)是指修改面部圖像的單個(gè)或多個(gè)屬性,進(jìn)而生成具有目標(biāo)屬性的新人臉.由于其定向修改屬性的特性,人臉屬性編輯在人機(jī)交互和娛樂社交領(lǐng)域具有廣泛應(yīng)用,衍生出了人臉妝造編輯和人臉表情編輯等產(chǎn)品.人臉妝造編輯通過更改人臉的妝容,實(shí)現(xiàn)人像美顏,可以應(yīng)用于直播與社交領(lǐng)域,具有巨大的市場(chǎng)潛力.人臉表情編輯不僅用于數(shù)字娛樂行業(yè),通過仿真人臉的不同表情帶來趣味性,還可以用于去除人臉的表情,輔助提升人臉識(shí)別算法的精度.在異質(zhì)人臉合成領(lǐng)域,根據(jù)用戶描述生成罪犯的肖像,對(duì)人臉進(jìn)行年齡編輯以預(yù)測(cè)走失兒童長(zhǎng)大后的長(zhǎng)相等研究方向,在公共安全方面具有極大的應(yīng)用.因此研究人臉屬性編輯,實(shí)現(xiàn)人臉的可控生成具有重要的經(jīng)濟(jì)和社會(huì)價(jià)值.
傳統(tǒng)人臉屬性編輯算法通常是先找到人臉圖像中的關(guān)鍵點(diǎn),然后利用人臉關(guān)鍵點(diǎn)通過手工調(diào)整或者網(wǎng)格變形等方式編輯人臉.這種方式不僅耗時(shí)而且有時(shí)會(huì)出現(xiàn)人臉扭曲等問題.隨著深度學(xué)習(xí)的發(fā)展,人臉屬性編輯通常基于深度生成模型實(shí)現(xiàn).早期的人臉圖像生成研究通常使用變分自動(dòng)編碼器(VAE)[1],而現(xiàn)有屬性可控的人臉圖像生成研究主要是基于生成對(duì)抗網(wǎng)絡(luò)(GAN)[2]架構(gòu),以解決VAE只能生成較模糊人臉的問題.可控人臉生成技術(shù)根據(jù)其添加控制條件方式的不同,大致上可以分為以下3類:1) 在生成器的輸入層加入條件[3-4],生成碼由隨機(jī)噪聲和條件兩部分組成,通過改變條件向量實(shí)現(xiàn)屬性控制.其中條件生成GAN(cGAN)[3]和互信息最大化GAN(InfoGAN)[4]是兩種比較典型的模型.其中,cGAN模型引入控制向量至生成器和判別器,生成碼與控制向量合并成新的向量作為生成器的輸入.由于判別器存在控制條件,在訓(xùn)練的時(shí)候真實(shí)數(shù)據(jù)與條件一起作為過往經(jīng)驗(yàn)由判別器學(xué)習(xí).如果生成器生成的數(shù)據(jù)不夠逼真或者生成的圖像與所給條件不符,則判別器可以根據(jù)過往經(jīng)驗(yàn)進(jìn)行判別.因此,為了能夠瞞過判別器,生成器在訓(xùn)練時(shí)會(huì)根據(jù)送入的條件調(diào)整其輸出.雖然使用cGAN模型在一定程度上實(shí)現(xiàn)了控制生成,但是由于在生成器中額外添加了條件,會(huì)出現(xiàn)訓(xùn)練困難和模式崩潰的問題.InfoGAN將生成碼劃分為噪聲信號(hào)和控制向量,讓生成器通過互信息學(xué)習(xí)的方法控制向量與噪聲信號(hào)之間的映射,進(jìn)而控制生成結(jié)果.雖然使用InfoGAN模型能夠?qū)ι扇四樳M(jìn)行一定程度的控制,但是在模型訓(xùn)練結(jié)束前無法確定控制的內(nèi)容,控制結(jié)果存在隨機(jī)性.2) 基于風(fēng)格遷移[5-9]的思想,從一幅模板圖像中獲取條件信息,將獲取的條件信息與待修改圖像進(jìn)行融合,生成具有指定信息的新圖像.比較經(jīng)典的方法有循環(huán)GAN(CycleGAN)[5]和星形GAN(StarGAN)[6].CycleGAN模型引入一個(gè)生成器將風(fēng)格轉(zhuǎn)換后的圖像再次轉(zhuǎn)換為原風(fēng)格,并指出在訓(xùn)練好的模型中兩者應(yīng)該相同.這種基于場(chǎng)景切換的思想,能夠用于更改面部的關(guān)鍵部位.為了應(yīng)對(duì)多風(fēng)格遷移問題,StarGAN在生成器中引入風(fēng)格標(biāo)簽,所有的風(fēng)格轉(zhuǎn)換都使用同一個(gè)生成器,有效地避免了多風(fēng)格轉(zhuǎn)換導(dǎo)致生成器過多的問題.本文作者將人臉屬性的遷移理解為多模態(tài)圖像的轉(zhuǎn)換,使用屬性分類損失和循環(huán)一致性損失較好地平衡了生成圖像身份一致性與屬性遷移的問題.基于風(fēng)格遷移方式的算法,以一幅人臉圖像作為模板,然后將該模板的風(fēng)格信息復(fù)制到新生成的樣本中.3) 通過分析生成器中生成碼構(gòu)成的隱空間的具體含義,解構(gòu)生成器的隱空間,找出具有目標(biāo)屬性且滿足控制條件的生成碼[10-18].InterFaceGAN(interpreting the disentangled face representation learned by GAN)[10]提出,存在一個(gè)線性超平面可以將生成器的隱空間劃分為兩部分,一邊的生成圖像具有指定屬性,另一邊生成圖像不具有指定屬性,并且生成碼距分割平面越遠(yuǎn),圖像具有屬性的程度就越強(qiáng)烈.基于這種特性,存在一個(gè)垂直于分割平面的法向量,使得生成碼沿著法向量移動(dòng)時(shí)會(huì)越過線性超平面,導(dǎo)致屬性發(fā)生改變,進(jìn)而實(shí)現(xiàn)修改指定屬性的目的.然而InterFaceGAN首先需要借助分類器或者以人工標(biāo)記的方式計(jì)算生成碼對(duì)應(yīng)的屬性得分,再通過支持向量機(jī)(SVM)求解分割平面,從而計(jì)算出法向量的值.該算法無法實(shí)現(xiàn)端對(duì)端的訓(xùn)練.IcGAN(Ihvertible conditional GAN)[13]模型引入兩個(gè)編碼網(wǎng)絡(luò),解構(gòu)出給定圖片對(duì)應(yīng)的隨機(jī)噪聲和條件,然后將隨機(jī)噪聲和修改后的條件向量送入cGAN重新生成屬性編輯后的效果圖.由于IcGAN 是建立在解構(gòu)cGAN的基礎(chǔ)之上,其條件的控制受限于cGAN,不能很好地進(jìn)行定量的屬性修改.
與常見的方法不同,本文研究的并不是將一張人臉的屬性整體性地遷移到另外一張人臉,也不是一次性對(duì)人臉的多個(gè)屬性進(jìn)行有或沒有的定性改變.為了有效地避免目前條件式GAN模型訓(xùn)練的困難,本文針對(duì)屬性風(fēng)格遷移的方法需要模板圖像問題,通過分析已有生成器的隱空間,解析出控制單個(gè)屬性變化的控制向量,再對(duì)多個(gè)向量進(jìn)行融合指導(dǎo)生成碼的修改,從而實(shí)現(xiàn)人臉多屬性的解糾纏與細(xì)粒度編輯的算法.
基于GAN的人臉圖像生成模型,其主要思想是以隨機(jī)噪聲作為生成碼,輸入生成器中,生成人臉圖像.對(duì)人臉圖像進(jìn)行屬性編輯,本質(zhì)上是對(duì)生成碼的修改.基于這種思想,為了達(dá)到分離單一屬性并提供定量修改的目的,本文提出了一種求解法向量來修改生成碼,從而實(shí)現(xiàn)人臉屬性編輯的方法.人臉屬性編輯流程如圖1所示(以眼鏡屬性為例).假設(shè)一張佩戴眼鏡的人臉經(jīng)反求解后獲得的生成碼為z.首先由用戶指定待修改的屬性,使用本文算法訓(xùn)練出法向量以解構(gòu)出控制眼鏡屬性變化的部分;然后設(shè)置屬性對(duì)應(yīng)的修改系數(shù)并使用式(1)對(duì)生成碼進(jìn)行負(fù)向移動(dòng)以控制屬性修改的程度;最后將修改后的生成碼輸入生成器重新生成,得到一張去除眼鏡屬性的人臉.
圖1 人臉屬性編輯算法的流程圖Fig.1 Architecture of face attribute editing algorithm
基于InterFaceGAN[10]的思想,用一個(gè)線性平面將生成器的隱空間分割成是否包含指定屬性的兩部分P1和P2,當(dāng)生成碼z沿著垂直于分割平面的法向量移動(dòng)時(shí)能夠最快地越過分割平面,并改變指定屬性(圖2).本文使用式(1)對(duì)生成碼進(jìn)行單一屬性修改.
圖2 生成碼的編輯Fig.2 Editing of latent code
zedit=z+αn.
(1)
其中:z是生成碼;zedit是修改后的生成碼;n是法向量,即控制向量;α是移動(dòng)系數(shù).具體來說,通過選擇不同屬性所對(duì)應(yīng)的法向量即可實(shí)現(xiàn)對(duì)不同屬性的編輯,通過選擇不同的α可以控制屬性修改的程度,若α大于0表示添加屬性,若α小于0表示刪除屬性.
對(duì)于單位向量n1和n2,越垂直于分割平面,則越接近于法向量,生成碼沿此正方向移動(dòng)時(shí),越過分割平面的可能性就越大,屬性就越有可能發(fā)生改變.生成碼沿此負(fù)方向移動(dòng)時(shí),距離分割平面就越遠(yuǎn),圖片不具有指定屬性的可能性就越大.所以生成碼z沿n1正向移動(dòng)時(shí)添加指定屬性的可能性比沿n2正向移動(dòng)時(shí)的大,生成碼z沿n1負(fù)向移動(dòng)時(shí)消除指定屬性的可能性比沿n2負(fù)向移動(dòng)時(shí)的大.
基于以上思想,本文設(shè)計(jì)了損失函數(shù)V(n)以衡量一個(gè)向量與分割平面法向量的距離:
V(n)=E[log(C(G(z-n)))+
log(1-C(G(z+n)))].
(2)
其中:E[x]為期望函數(shù);G是生成器;C是分類器,用于預(yù)測(cè)圖片具有指定屬性的概率.當(dāng)n為理想中的法向量時(shí),C(G(z-n))取得最小值,C(G(z+n))取得最大值,損失函數(shù)整體取得最小值.即V(n)最小時(shí),可以找到移動(dòng)生成碼前后改變屬性程度最大的n*,即為法向量的近似解.
基于損失函數(shù)最小化求解法向量的思想,本文設(shè)計(jì)了一個(gè)訓(xùn)練屬性的理想法向量的框架(圖3).主要計(jì)算步驟如下所示.
圖3 求解法向量的過程Fig.3 Process for solving normal vector
輸入:n作為初始化的零向量.
步驟1 選取一個(gè)隨機(jī)噪聲作為生成碼z.
步驟2 分別沿著n的正負(fù)方向移動(dòng)z,生成z-n和z+n一對(duì)生成碼.
步驟3 將z-n和z+n作為生成器G的輸入,產(chǎn)生兩張修改后的圖片.
步驟4 將修改后的圖片送入分類器C進(jìn)行分類,得到對(duì)應(yīng)的a和b兩個(gè)分類結(jié)果.
步驟5 計(jì)算損失值,優(yōu)化迭代n.
步驟6 回到步驟1,直至對(duì)任意的z,z-n不具有眼鏡屬性,z+n具有眼鏡屬性.
輸出:控制眼鏡屬性變化的理想法向量的近似解n*.
本文通過法向量修改生成碼的方式,可以添加原本不存在的屬性,或者抑制某些不需要的屬性.在步驟2中,使用式(1)對(duì)z進(jìn)行修改,可以分別沿著法向量正負(fù)方向移動(dòng),進(jìn)行添加或抑制兩個(gè)操作,以約束優(yōu)化后的n更符合預(yù)期.在步驟4中,預(yù)期的分類結(jié)果是a不包含眼鏡屬性,b包含眼鏡屬性,在步驟5中以此作為兩個(gè)分類結(jié)果的標(biāo)簽值,采用例如交叉熵等損失函數(shù)計(jì)算出分類誤差.通過最小化該分類誤差,實(shí)現(xiàn)調(diào)整n值向理想法向量逼近.當(dāng)損失值小于一定閾值后,終止訓(xùn)練,輸出優(yōu)化后的n*.
當(dāng)n訓(xùn)練的足夠接近于理想法向量之后,在實(shí)驗(yàn)的多數(shù)情況下,生成碼沿著n正向移動(dòng)時(shí)能夠較好地生成一張具有眼鏡屬性的人臉,沿著n負(fù)向移動(dòng)時(shí)能夠較好地生成一張不具有眼鏡屬性的人臉.
1.2.1 生成器結(jié)構(gòu)
本文使用的生成器為基于風(fēng)格的GAN(StyleGAN)[19]中預(yù)訓(xùn)練的生成器.該生成器經(jīng)由FFHQ數(shù)據(jù)集訓(xùn)練而成,可輸出分辨率為1 024的高質(zhì)量人臉.StyleGAN的生成器有兩種輸入方式:一種是在未經(jīng)解構(gòu)的z域,使用512維的隨機(jī)噪聲向量作為生成器的輸入;另一種是經(jīng)過多層全連接解構(gòu)的域(即w+域),使用18×512維的張量作為生成器的輸入.因?yàn)榻?jīng)過解構(gòu)的生成碼修改起來更加純凈,一定程度上避免了使用法向量修改時(shí),帶來其他無關(guān)屬性的改動(dòng),本文選擇w+域作為生成器的輸入.
由于本文算法修改前后的生成碼屬于生成器的原始隱空間,所以生成器的質(zhì)量決定了修改前后圖片的質(zhì)量.為了保證生成圖片的質(zhì)量,還可以嘗試使用其他[20-22]能夠穩(wěn)定生成高質(zhì)量、高分辨率圖片的生成器.
1.2.2 分類器結(jié)構(gòu)
為了對(duì)n的優(yōu)化產(chǎn)生正確的指導(dǎo),在訓(xùn)練過程中,通過精確的分類器衡量生成碼移動(dòng)后是否正確改變指定屬性,分類器在訓(xùn)練過程中為n的優(yōu)化提供了指導(dǎo)作用.
本文使用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搭建用于判別人臉指定屬性是否存在的二分類模型,其結(jié)構(gòu)如圖4所示.網(wǎng)絡(luò)的輸入是一張1 024分辨率的彩色圖像,可以直接串聯(lián)在生成器后面進(jìn)行判別.每次卷積時(shí)采用0填充,保持卷積后特征圖大小不變,再經(jīng)過一次最大池化以降低特征圖的大小.在彩色圖像經(jīng)過5次的卷積池化操作后,縮小為32分辨率的特征圖.經(jīng)過一次自適應(yīng)平均池化后,將特征圖拉伸為向量,送入后續(xù)的幾層全連接層.最終網(wǎng)絡(luò)經(jīng)過softmax層輸出人臉指定屬性的二分類結(jié)果.
圖4 人臉屬性的分類網(wǎng)絡(luò)Fig.4 Face attribute classification network
本文在分辨率為1 024的CelebA-HQ數(shù)據(jù)集(共計(jì)3萬張圖片)上進(jìn)行訓(xùn)練以驗(yàn)證本文算法的有效性.其中訓(xùn)練集和驗(yàn)證集以8∶2的比例劃分.CelebA-HQ的屬性分布有40個(gè),由于部分屬性不容易辨識(shí),本文挑選出特征容易辨識(shí)的4種常見屬性:性別、笑容、眼鏡、年齡進(jìn)行試驗(yàn).
本文以性別(男性為正方向)、笑容、眼鏡及年齡(年輕為正方向)4種屬性為例,設(shè)計(jì)如下實(shí)驗(yàn):
1) 法向量訓(xùn)練的實(shí)驗(yàn),評(píng)估屬性對(duì)應(yīng)法向量的訓(xùn)練效果;
2) 單屬性與多屬性修改的實(shí)驗(yàn),檢驗(yàn)法向量用于人臉單屬性和多屬性編輯的效果;
3) 移動(dòng)系數(shù)α與屬性修改程度的實(shí)驗(yàn),分析移動(dòng)系數(shù)α屬性對(duì)修改程度的影響;
4) 人臉屬性編輯對(duì)圖像質(zhì)量的影響實(shí)驗(yàn),評(píng)估人臉編輯對(duì)原始生成器生成質(zhì)量的影響;
5) 真實(shí)人臉修改的實(shí)驗(yàn),將本文算法拓展用于真實(shí)人臉的屬性編輯.
為了計(jì)算4個(gè)屬性各自對(duì)應(yīng)的法向量,首先在基于StyleGAN框架預(yù)訓(xùn)練的生成器的基礎(chǔ)上,訓(xùn)練與各個(gè)屬性相對(duì)應(yīng)的分類器.本文算法與InterFaceGAN算法在4種屬性上的二分類訓(xùn)練結(jié)果如表1所示.本文算法在各屬性上的分類準(zhǔn)確率達(dá)到82%以上,其中,眼鏡屬于硬屬性,易于分類,準(zhǔn)確率比較高;年齡屬于軟屬性,分類難度較大,準(zhǔn)確率較低.InterFaceGAN在各屬性上的分類準(zhǔn)確率達(dá)到75%以上.相比較而言,本文算法的分類效果更好,能夠更好地輔助法向量的訓(xùn)練.
表1 4種人臉屬性的分類準(zhǔn)確率Tab.1 Classification accuracy of 4 kinds of face attributes
在生成器和分類器預(yù)訓(xùn)練完畢后再對(duì)法向量的值進(jìn)行訓(xùn)練,損失函數(shù)的變化如圖5所示.在訓(xùn)練的開始階段,生成碼沿著n正負(fù)方向移動(dòng)后,不能夠很好地產(chǎn)生或消除指定屬性,損失值偏高;在經(jīng)過一定次數(shù)的迭代之后,n逐漸近似于n*,使得大部分生成碼在往正方向移動(dòng)時(shí),產(chǎn)生或者加深了指定屬性的特征,在生成碼往負(fù)方向移動(dòng)時(shí),消除或者減弱了相關(guān)特征;最終分類器的分類損失降低后穩(wěn)定在一定閾值之內(nèi).
圖5 4種屬性法向量的損失曲線Fig.5 Loss curve of 4 kinds of attributenormal vectors
為了觀察訓(xùn)練時(shí)法向量逐步向理想法向量逼近的過程,本文以男性、笑容、眼鏡、年齡為例,抽取了迭代次數(shù)為50,200,1 600的法向量對(duì)人臉進(jìn)行修改,實(shí)驗(yàn)結(jié)果如圖6所示.在迭代次數(shù)為50時(shí),法向量已經(jīng)能夠初步修改指定屬性,但是修改效果不足,而且還會(huì)引入比較多的噪聲,例如在修改眼鏡屬性時(shí),此時(shí)法向量沒有完成修改反而還改變了性別等無關(guān)屬性.在迭代次數(shù)為200時(shí),眼鏡屬性的特征還需要繼續(xù)加強(qiáng),但法向量已經(jīng)初步具備較穩(wěn)定的修改效果.在迭代次數(shù)為1 600時(shí),性別和年齡屬性改變了人物膚質(zhì),笑容和眼鏡屬性強(qiáng)化了特征,使其整體看起來更加滿足要求,此時(shí)法向量基本接近理想法向量.
圖6 不同訓(xùn)練迭代次數(shù)法向量對(duì)應(yīng)的人臉編輯效果Fig.6 Results of face editing with normal vectors under different training iterations
為了驗(yàn)證本文算法在單屬性修改的效果,本文選取了100個(gè)隨機(jī)噪聲作為生成碼,觀察了4種屬性的法向量使用式(1)修改生成碼后的效果.從整體上來看,法向量能夠很好地控制人臉指定屬性的從無到有、慢慢加深的過程,生成的結(jié)果也比較自然.
其部分結(jié)果如圖7所示.在往男性方向移動(dòng)的過程中,頭發(fā)逐漸變短,面部皮膚逐漸粗糙,整體看起來更加的男性化,往女性方向移動(dòng)的過程中頭發(fā)變長(zhǎng),面部逐漸細(xì)膩有光澤,整體看起來更加的女性化.相應(yīng)地,嘴巴張開及露出牙齒的程度越大,就認(rèn)為笑的越厲害.眼鏡的鏡框越大,鏡片顏色越深,眼鏡屬性在圖像中的顯著性越強(qiáng).發(fā)量越多、臉色越稚嫩,就越顯得年輕.使用本文算法進(jìn)行單屬性修改帶來的變化符合人類日常生活經(jīng)驗(yàn),比較自然.這種修改方法能夠針對(duì)于特定的屬性進(jìn)行修改,在一定程度上避免其他無關(guān)聯(lián)屬性的改動(dòng).在屬性修改前后,人物面部的整體輪廓及大量細(xì)節(jié)沒有發(fā)生太大的變化,整體上看都是針對(duì)同一個(gè)人的不同屬性的表達(dá).
在(1)和(2)兩組圖中,最中間虛線部分為原圖,(a)、(b)、(c)、(d)分別對(duì)應(yīng)男性、笑容、眼鏡、年齡法向量在原圖上由負(fù)方向到正方向逐漸修改的過程.圖7 單屬性修改效果Fig.7 Results of single attribute modification
基于單屬性修改的思想,通過使用多個(gè)單屬性法向量對(duì)生成碼修改,可以實(shí)現(xiàn)多屬性修改的效果.多屬性修改公式為
zedit=z+α1n1+α2n2+…+αnnn.
(3)
為了驗(yàn)證本文算法多屬性修改的有效性,使用式(3)對(duì)生成碼的性別、笑容及眼鏡3種屬性進(jìn)行修改,其結(jié)果如圖8所示.圖中每一行相當(dāng)于一次獨(dú)立的單屬性修改,如第1,2,3行分別只在眼鏡、性別和笑容上變化.z對(duì)應(yīng)的原圖是一張帶眼鏡、女性、大笑表情的人臉.沿眼鏡法向量的負(fù)方向移動(dòng),成功摘除了眼鏡,接著使用類似的操作,對(duì)原圖額外修改了性別和笑容屬性,最終得到一張不帶眼鏡、男性、表情中性的人臉.從整體上看,這種融合多個(gè)單屬性法向量為一個(gè)混合法向量的方式,能夠很好地控制人臉指定屬性的編輯.
為了觀察移動(dòng)系數(shù)α對(duì)屬性修改程度的影響,本文在使用法向量對(duì)人臉屬性進(jìn)行編輯時(shí),設(shè)定不同的α對(duì)同一張人臉圖像進(jìn)行修改.通過調(diào)整α的值,可以實(shí)現(xiàn)對(duì)屬性的定量修改.當(dāng)α取值在-1到1之間時(shí),大多數(shù)情況下可以實(shí)現(xiàn)指定屬性的添加或刪除.通過增加移動(dòng)系數(shù),可以進(jìn)一步增大修改的幅度.如圖9所示,當(dāng)移動(dòng)系數(shù)α取值從0達(dá)到1時(shí),根據(jù)修改后的生成碼生成的圖像開始出現(xiàn)男性的特征.在移動(dòng)系數(shù)α取值達(dá)到2時(shí),修改后的人臉中男性的特征更加明顯,出現(xiàn)了胡子,且隨著移動(dòng)系數(shù)的增加大胡子越濃密.
n1,n2,n3分別代表眼鏡、性別、笑容的法向量.圖8 多屬性修改效果Fig.8 Results of multi-attributes modification
圖9 不同移動(dòng)系數(shù)下性別修改的結(jié)果Fig.9 Results of gender modification under different displacement factor
然而,由于不同屬性對(duì)應(yīng)的法向量并非正交,相互間存在一定的干擾,當(dāng)移動(dòng)系數(shù)太大時(shí),在部分情況下可能會(huì)放大這些干擾,帶來較明顯的噪聲和色差缺陷.如圖10所示,本文在不同移動(dòng)系數(shù)下對(duì)指定屬性進(jìn)行了添加.觀察實(shí)驗(yàn)發(fā)現(xiàn),各屬性在移動(dòng)系數(shù)為1時(shí),具有較明顯的屬性添加效果,且修改后圖像的質(zhì)量良好.其中眼鏡和笑容較好地實(shí)現(xiàn)了屬性的解糾纏.而對(duì)于年齡與性別屬性,當(dāng)移動(dòng)系數(shù)取值較大(為3時(shí)),雖然各屬性得到了較大強(qiáng)化,但同時(shí)引入了較大的噪聲和色差問題.本文算法出現(xiàn)色差的原因可能是由于在訓(xùn)練法向量的過程中,模型將膚色的改變與性別、年齡屬性的改變相關(guān)聯(lián).例如男性與女性,小孩與老人在皮膚的顏色與細(xì)膩程度等方面存在一定的差距.后續(xù)將嘗試通過擴(kuò)充數(shù)據(jù)集和改進(jìn)算法進(jìn)行改善.
圖10 移動(dòng)系數(shù)對(duì)圖像質(zhì)量的影響Fig.10 Influence of displacement factor on image quality
為了衡量使用法向量修改人臉前后圖像質(zhì)量的變化,本文采用衡量真實(shí)圖像與生成圖像之間距離的FID(Fréchet inception distance)[23]指標(biāo)D進(jìn)行評(píng)估.本文選擇生成器預(yù)訓(xùn)練時(shí)使用的FFHQ數(shù)據(jù)集作為真實(shí)數(shù)據(jù)集,使用法向量對(duì)生成器隨機(jī)生成的5 000 張樣本人臉進(jìn)行移動(dòng)系數(shù)為1的正負(fù)屬性修改(修改后的圖像添加或刪除了指定的屬性),構(gòu)造了由1萬張修改后的人臉圖像構(gòu)成的生成數(shù)據(jù)集.本文計(jì)算FID的代碼由Github上的開源項(xiàng)目提供(https:∥github.com/bioinf-jku/TTUR).
本文算法中使用了預(yù)訓(xùn)練的生成器,生成器的優(yōu)劣直接影響人臉圖像的生成質(zhì)量.本文設(shè)計(jì)質(zhì)量因子Q用于評(píng)估人臉屬性編輯對(duì)圖像質(zhì)量的影響.Q的計(jì)算如式(4)所示:
(4)
其中,Dbefore是生成器生成的圖像所計(jì)算的FID,Dafter是使用法向量修改后的圖像所計(jì)算的FID.Q的值越大代表生成質(zhì)量越高,通常情況下Q為小于1的值,表示Dafter大于Dbefore,說明屬性修改造成了圖像的質(zhì)量損失.
如圖11所示,本文算法各屬性對(duì)應(yīng)的質(zhì)量因子在0.94以上,其中眼鏡屬性基本保持原有生成質(zhì)量(由于計(jì)算誤差,Q的值略微大于1).實(shí)驗(yàn)結(jié)果表明本文算法在多數(shù)情況下使用法向量進(jìn)行屬性修改僅會(huì)造成輕微的質(zhì)量損失;除了年齡屬性外,其他屬性的質(zhì)量因子均優(yōu)于InterFaceGAN算法.
圖11 人臉屬性編輯對(duì)圖像質(zhì)量的影響Fig.11 Influence of face attribute editing on image quality
圖12展示了本文算法與InterFaceGAN算法對(duì)同一人臉分別進(jìn)行笑容、眼鏡、性別、年齡等屬性修改后的結(jié)果.本文算法與InterFaceGAN算法均取得了較好的修改效果,整體修改效果相當(dāng).從笑容屬性的修改效果可以看出:InterFaceGAN算法著重于控制嘴巴的閉合程度,本文算法能夠?qū)ψ彀?面部肌肉,眼睛進(jìn)行一個(gè)整體的調(diào)整,相比較而言本文算法修改結(jié)果更加自然.
圖12 本文算法與InterFaceGAN算法的效果對(duì)比Fig.12 Comparison results of our algorithm and InterFaceGAN
目前用于虛擬人臉的屬性編輯是以隨機(jī)噪聲作為生成碼進(jìn)行修改,可以通過將真實(shí)人臉圖片投影至生成器隱空間,實(shí)現(xiàn)本文算法拓展至真實(shí)人臉屬性編輯.如圖13所示,本文通過使用優(yōu)化生成碼的算法[24],嘗試將其論文數(shù)據(jù)集中奧巴馬的肖像,投影至本文所使用生成器的隱空間中.在獲得對(duì)應(yīng)的生成碼之后,本文嘗試使用多屬性修改的方法,對(duì)映射后的圖像進(jìn)行了修改.
z為投影到生成器隱空間的生成碼;n1,n2,n3分別代表性別、笑容、眼鏡屬性對(duì)應(yīng)的法向量.圖13 真實(shí)人臉屬性編輯效果Fig.13 Editing effect of real face image
本文提出了一種端對(duì)端的基于屬性法向量修改的算法來解決人臉屬性分解與定量編輯的問題.本文算法無需借助模板圖像,可以通過調(diào)整控制法向量的方式達(dá)到定量調(diào)整人臉屬性的目的,具有友好的操作性和良好的實(shí)際推廣價(jià)值.
本文算法有如下創(chuàng)新之處:
1) 提出一種端對(duì)端的屬性控制法向量的計(jì)算方法,無需從參考人臉中遷移特征、條件等信息,支持直接通過法向量修改生成碼達(dá)到修改人臉屬性的目的;
2) 提供定量的屬性編輯功能,不僅可以指定修改單個(gè)或者混合屬性,還可以定量的控制每個(gè)屬性改變的程度;
3) 無需依賴于GAN的生成器架構(gòu),本文算法能夠適用于常見無條件式生成器,可實(shí)現(xiàn)無條件式生成器向有條件式生成器的轉(zhuǎn)換.
為了使人臉屬性修改更加純凈,圖像質(zhì)量更加優(yōu)越,在未來的工作中,將考慮在法向量的訓(xùn)練過程中添加更多限制.為了將所有法向量的求解納入統(tǒng)一框架,考慮把多個(gè)二分類器整合成一個(gè)多分類器,實(shí)現(xiàn)同時(shí)訓(xùn)練多個(gè)法向量的目標(biāo).