【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)
2019獨角獸企業重金招聘Python工程師標準>>>
圖像到圖像轉化的任務是將一個給定圖像的特定方面改變到另一個方面,例如,將一個人的面部表情從微笑到皺眉改變(見圖1)。自從生成對抗網絡(GANs)的引入,這個任務經歷了很大的發展,從改變發色,改變邊緣圖以重建照片,到改變風景圖像的季節等。
圖1. 通過從RaFD數據集學習轉移知識,從而應用到CelebA圖像轉化的多域的圖像到圖像轉化結果。第一列和第六列顯示輸入圖像,其余列是產生的StarGAN圖像。注意,圖像是由一個單一模型網絡生成的,面部表情標簽如生氣、高興、恐懼是從RaFD學習的,而不是來自CelebA。
給定來自兩個不同域的訓練數據,這些模型學習如何將圖像從一個域轉換到另一個域。文章中將術語表示為圖像中固有的特征,如頭發顏色、性別或年齡,屬性值作為屬性的特定值,例如黑色/金色/棕色的頭發顏色,或性別的男性/女性等。我們進一步將具有一系列相同屬性值的圖像設為一個域。例如,女性形象代表一個域,而男性代表另一個域。
幾個圖像數據集帶有許多標記屬性。例如,在CelebA數據集包含40個標簽的面部特征,如頭發的顏色、性別、年齡;RaFD數據集有8個表示面部表情的標簽,如“快樂”,“憤怒”和“悲傷”。我們可以根據這些屬性設置執行更有趣的任務,即多域圖像到圖像的轉換,我們根據多個域的屬性來改變圖像。圖1中,前5列展示了一個CelebA圖像可以根據任何四個域進行轉化,“金發”、“性別”、“年齡”、“蒼白的皮膚”。我們可以進一步延伸到從不同的數據集進行多個域的訓練,如共同訓練的CelebA和RaFD圖像來改變CelebA圖像的面部表情,通過訓練RaFD數據提取特征來作用于CelebA圖像,如在圖1的最右邊的列。
然而,現有的模型在多域圖像轉換任務中效率低下。這些模型的低效率是因為在學習K域的時候,需要訓練K(K?1)個生成器。圖2說明了如何在四個不同的域之間轉換圖像的時候,訓練十二個不同的生成器的網絡。即使它們可以從所有域圖像學習全局特征,如形狀特征學習,這種模型也是無效的,因為每個生成器不能充分利用整個訓練數據,只能從K學習的兩個領域。未能充分利用訓練數據很可能會限制生成圖像的質量。此外,它們不能聯合訓練來自不同域的數據集,因為每個數據集只有部分標記,本文在3.2章進一步討論。
圖2. 我們的StarGAN模型與其他跨域模型的比較。(a)為處理多個域,應該在每一對域都建立跨域模型。(b)StarGAN用單個發生器學習多域之間的映射。該圖表示連接多個域的拓撲圖。
我有幾張阿里云幸運券分享給你,用券購買或者升級阿里云相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。
為解決這些問題我們提出了StarGAN,它是生成對抗網絡,能夠學習多個域之間的映射。如圖2(b)所示,文章中提出的模型接受多個域的訓練數據,并且只使用一個生成器學習所有可用域之間的映射。這個想法是非常簡單的。其模型不是學習固定的圖像轉化(例如,從黑發到金發),而是輸入圖像和域信息,學習如何靈活地將輸入圖像轉換到相應的域中。文章中使用一個標簽(二進制或one hot向量)代表域信息。在訓練過程中,隨機生成目標域標簽并訓練模型,以便靈活地將輸入圖像轉換到目標域。通過這樣做,可以控制域標簽并在測試階段將圖像轉換成任何所需的域。
本文還引入了一種簡單而有效的方法,通過將掩碼向量添加到域標簽,使不同數據集的域之間進行聯合訓練。文章中所提出的方法使模型可以忽略未知的標簽,并專注于有標簽的特定數據集。在這種方式下,此模型對任務能獲得良好的效果,如利用從RaFD數據集學到的特征來在CelebA圖像中合成表情,如圖1的最右邊的列。據本文中提及,這篇工作是第一個成功地完成跨不同數據集的多域圖像轉化。
總的來說,本文的貢獻如下:
原則上,文中提出的模型可以應用于任何其他類型的域之間的轉換問題,例如,風格轉換(style transfer),這是未來的工作方向之一。
轉載于:https://my.oschina.net/u/3611008/blog/1582188
總結
以上是生活随笔為你收集整理的【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts实现柱状图分页展示
- 下一篇: postman接口测试系列:接口参数化和