【前一陣子英偉達的StyleGAN可謂是火了一把,近日又出大招了!以往圖像到圖像轉換需要大量的圖像做訓練樣本,但是在英偉達的這項工作中,僅需小樣本就可以做到圖像到圖像的轉換(代碼已開源)!
小樣本,大成就!
當我們看到一隻站着的老虎時,我們很容易想像出來它躺着的樣子。
這是因為我們根據其它動物平躺的姿勢就是可以做聯想。
然而,對於機器來說就沒有這麼簡單了。在現存的非監督圖像到圖像轉換模型需要大量的訓練圖像。
不僅如此,一個模型能夠轉換圖像的另一個前提是圖像中的對象必須在訓練集中存在。
近期,英偉達、康納爾大學和阿爾託大學聯合發表了一篇文章——小樣本(few-shot)非監督圖像到圖像轉換。
論文地址:
https://arxiv.org/pdf/1905.01723.pdf
簡單來說,就是輸入一隻金毛,在訓練過程當中,即便第一次看到一種新動物,也能讓它像金毛那樣吐舌頭、閉嘴巴、歪頭。
若是輸入一張炒麵的圖,該模型也可以讓其它食物變成炒麵。
這項工作還提供了在線測試,新智元小編們便拿自家的貓主子「西瓜」和「多比」做了一下測試:
輸入「西瓜」得到的結果
輸入「多比」得到的結果
在線測試連接如下,讀者們快快玩起來吧:
https://nvlabs.github.io/FUNIT/petswap.html
該項目的代碼也已開源,地址如下:
https://github.com/NVlabs/FUNITFUNIT
2階段圖像轉換,非常有趣!
我們提出的FUNIT框架旨在通過利用在測試時可用的幾個目標類圖像,將源類的圖像映射到目標類的類似圖像。
為了訓練FUNIT,我們使用來自一組對象類(例如各種動物物種的圖像)中的圖像,稱為源類(source classes)。我們不假設任何兩個類之間存在配對的圖像(即,不同物種的任何兩個動物都不會是完全相同的姿勢)。
我們使用源類里的圖像來訓練一個multi-class無監督圖像到圖像轉換模型。
在測試過程中,我們從一個稱為目標類(target class)的新對象類中提供少量幾張圖像。模型必須利用少量的目標圖像來將源類里的任何圖像轉換為目標類里的類似圖像。
訓練。訓練集由各種對象類(源類)的圖像組成。我們訓練了一個模型在這些源對象類之間轉換圖像。
部署。我們向訓練模型顯示極少量目標類里的圖像,這就足以將源類的圖像轉換為目標類的類似圖像了,即使模型在訓練期間從未見過目標類的任何圖像。
需要注意的是,FUNIT生成器有兩個輸入:1)一個內容圖像;2)一組目標類圖像。它的目的是生成與目標類圖像相似的輸入圖像的轉換。
我們的框架由一個有條件的圖像發生器G和一個多任務對抗性鑒別器D組成。
與現有無監督image-to-image translation框架中有條件的圖像生成器不同,它們是將一張圖像作為輸入,而我們的生成器G需要同時將一張內容圖像x和一組K類圖像{y1, …, yK}作為輸入,生成輸出圖像x¯,公式如下:
實驗結果:姿態和種類一起轉換,超越基準模型
主要結果
如表1所示,FUNIT框架在Animal Faces和North American Birds兩個數據集的所有性能指標都優於用於小樣本無監督圖像到圖像轉換任務的基線模型。
FUNIT在Animal Faces數據集的1-shot和5-shot設置上分別達到82.36和96.05 的Top-5 測試精度,以及在North American Birds數據集上分別達到60.19和75.75的Top-5 測試精度。
這些指標都明顯優於相應的基準模型。
在圖2中,我們對FUNIT-5計算的few-shot translation的結果進行了可視化。
從上到下分別是來自動物面孔、鳥、花和食物數據集的結果。每個示例隨機展示了2張目標類中的圖像,輸入內容圖像x,以及轉換後的輸出圖像x¯。
結果表明,模型能夠成功地將源類的圖像轉換為新的類中的相似圖像。對象在輸入內容圖像x和相應輸出圖像x¯中的姿態基本保持不變。輸出圖像也非常逼真,類似於目標類中的圖像。
圖3提供FUNIT與基線模型的結果比較。可以看到,FUNIT生成了高質量的圖像轉換輸出。
圖3:小樣本圖像到圖像轉換效果的比較。
從左到右的列分別是輸入內容圖像x,兩個輸入目標類圖像y1,y2,來自不公平的StarGAN基線的轉換結果,來自公平的StarGAN基線的轉換結果,以及來自FUNIT框架的結果。
參考鏈接:
https://arxiv.org/pdf/1905.01723.pdf
https://nvlabs.github.io/FUNIT/petswap.html
https://github.com/NVlabs/FUNIT
本文轉自公眾號 新智元,原文地址
Comments