?阿里巴巴洪佳鵬:生成對抗網(wǎng)絡(luò)和隱層屬性交換的人臉屬性遷移 - 學(xué)習(xí)筆記

學(xué)習(xí)資料來源

讀芯術(shù) -【學(xué)術(shù)報(bào)告】?阿里巴巴洪佳鵬:生成對抗網(wǎng)絡(luò)和隱層屬性交換的人臉屬性遷移

學(xué)術(shù)報(bào)告PPT

[感謝讀芯君,感謝供稿人:張繼]


是在這里看到的喲,感謝感謝

學(xué)習(xí)筆記

1. GAN(生成對抗網(wǎng)絡(luò))介紹

生成體現(xiàn)在生成器從無到有,
對抗體現(xiàn)在生成器和判別器的目標(biāo)
可以從目標(biāo)函數(shù)看出,判別器的任務(wù)就是判別真假樣本,生成器的任務(wù)就是要騙過它,使得生成的樣本判定成一個真的樣本。
生成器生成樣本,經(jīng)過判別器的判別以后反饋給它的信息是生成的還不夠好,也會引導(dǎo)繼續(xù)生成更好的樣本。


GAN

2. 圖像翻譯(圖像->圖像)

概念

(1)圖像域:具有某種屬性的圖象集合

  • 所有戴眼鏡的人可以看成一個圖像域,因?yàn)槎加幸惶紫嗤膶傩裕褪茄坨R。

(2)屬性相對的圖像域:同一個屬性的不同取值形成的不同圖像域

  • 戴眼鏡 vs 不戴眼鏡

(3)圖像ID

  • 對于特定屬性來說,一張圖像的ID是指它在該屬性的不同圖像域中的圖像所共有的部分

(4)配對樣本/費(fèi)配對樣本

  • 配對樣本:一個人戴眼鏡和同一個人不戴眼鏡的樣本
  • 非配對樣本:一個人戴眼鏡和其他人不戴眼鏡的樣本

(5)人臉圖像編輯

  • 添加或者移除一種或多種人臉屬性

3. 常見的翻譯算法

(1)判別器去判斷圖像是否落在圖像域內(nèi)(最常見做法)
  • CycleGAN、UNIT、DTN、StarGAN、DNA-GAN、ELEGANT

  • 非匹配樣本可訓(xùn)練

  • CycleGAN
    有兩個互為逆映射的生成器分別負(fù)責(zé)兩個圖像域互轉(zhuǎn),兩個判別器分別判別圖像是否分別來自兩個圖像域。這里判別器的任務(wù)有兩個,一個是判別圖像域是不是對的,就是有/沒有屬性,以及圖像質(zhì)量是不是跟真實(shí)樣本匹配。


    CycleGAN
  • UNIT
    把生成器拆成編碼器和解碼器,編碼器分別對兩個域的圖像做編碼,可以共享高層,這樣使得兩個圖像域的編碼落在同一個空間里面,解碼的時候輸入給特定的解碼器,A圖像域解碼器生成的是A圖像域,B圖像域解碼器生成的是B圖像域,然后判別器判斷圖像域是否是對的。


    UNIT
  • StarGAN
    CycleGAN的拓展,可以針對多個圖像域,也有多個屬性,比如眼鏡、劉海和微笑各種屬性,生成器提供的不只是一張圖,可以把想要轉(zhuǎn)過去的屬性告訴它,就是可以同時指定多個屬性修改,生成器也只修改指定的屬性。多屬性修改的算法很多都是采用條件判別器的做法,StarGAN則采用的是AcGAN的做法,通過判別器接收一張圖,除了判斷真假以外,還要把這個圖像域的信息預(yù)測出來。


    StarGAN
(2)判別器去判斷翻譯結(jié)果的匹配度
  • pix2pix
  • 需要配對樣本(supervised learning)
  • 判別器主要任務(wù):圖像域的正確性,圖片質(zhì)量,圖像匹配程度


    pix2pix
(3)判別器在hidden layer對抗
  • FaderNets
  • 通過對抗分離屬性與圖像ID
  • 缺點(diǎn):訓(xùn)練難度大
  • 判別器主要任務(wù)
    判別器要從圖像的編碼當(dāng)中預(yù)測出圖像域的信息,對編碼器來說則不能讓判別器得逞,要將屬性的信息從圖像編碼中剝離出去。也就是說它需要使得判別器的預(yù)測是相反的。


    FaderNets

4.報(bào)告作者的主要工作

(1)DNA-GAN

  • 交換隱形編碼
    *編碼器分別編碼各個屬性,然后交換兩張圖特定屬性的編碼就可以交換屬性,因?yàn)槭峭ㄟ^跟范例圖交換屬性,因此可以引入多樣性。前面介紹的其他圖像翻譯方法都很難引入多樣性,針對屬性的建模就是1和0,也就是有和沒有,沒辦法確定加上什么類型的眼鏡或者劉海,而我們這里是可以控制的。

  • 如何分別編碼?
    首先需要指定編碼的順序,要求前面一部分是編碼眼鏡,后面一部分是編碼劉海,還有一部分是編碼和兩個屬性無關(guān)的圖像ID??紤]第一個屬性的時候只用第一個屬性的圖片,上面帶加號的代表有這個屬性,減號代表沒有這個屬性??紤]第一個屬性的時候只用第一個屬性的圖片,考慮第二個屬性的時候只用第二個屬性的圖片,這樣就可以和屬性編碼掛上鉤。然后會做一個交叉重組,會有四個結(jié)果:兩種是和原來的一樣,另外兩個結(jié)果就是換了特定的部分,比如換了第一個屬性,然后解碼出來四張圖,兩張是和原圖一樣的,兩張是新的圖,就是只換了第一個屬性。


    DNA-GAN

(2)ELEGANT

  • 繼承自隱層做差。

  • 無需湮滅/零化操作

  • 無需建模圖像ID
    隱層直接做差的話可能不太好學(xué),因?yàn)閮蓮埖玫絻蓮埿聢D所需要的殘差圖,它們的編碼在隱層做差意義下,只差了一個符號,這是有點(diǎn)難學(xué)的。ELEGANT則會自己去學(xué)習(xí)做差的操作,簡單的做法就是把兩個編碼拼起來,要求從前面的編碼轉(zhuǎn)化到后面的編碼,這也可以看成是一種做差的做法,解碼器自己去學(xué)做差。這樣做也沒有平凡解的問題,不需要建模圖像ID。


    ELEGANT
  • Batch Normalization 有問題
    *訓(xùn)練結(jié)果正常,測試沒效果
    BN回破壞圖像色彩、亮度、對比度等信息(U_net可解決)
    涉及到兩批來自不同域的圖,BN不收斂導(dǎo)致歸一化失效

    • 替代方案:l2 normalization

5. 實(shí)驗(yàn)

實(shí)驗(yàn)效果圖 + 劉海
實(shí)驗(yàn)效果圖 + 微笑
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容