機器之心專欄
作者:牛力(上海交通大學仿腦計算與機器智能研究中心)
少樣本圖像生成是很有挑戰性的任務,可用的方法也很少。近日,上海交大和 Versa-AI 的研究人員合作發表論文,提出了先融合後填充(fusing-and-filling)的思想,以便更合理地融合條件圖片並完善生成圖片的細節信息。目前,這篇論文已被 ACM MM2020 會議接收。
少樣本圖像生成(few-shot image generation)任務是指用已知類別(seen category)的大量圖片訓練出一個生成模型,然後給定某個未知類別(unseen category)的少量圖片,即可為該未知類別生成大量真實且多樣的圖片。少樣本圖像生成屬於圖像數據增廣的範疇,可用來輔助很多下遊任務,如少樣本圖像分類等。
在少樣本任務系列中,相比少樣本分類(few-shot classification)、少樣本物體檢測(few-shot object detection)、少樣本語義分割(few-shot semantic segmentation)等任務,少樣本圖像生成任務受到的關注較少,可做的空間較大。
雖然在少樣本分類方法中,有一類方法是用數據增廣的方式提升分類性能,但大多數方法都是做少樣本特徵生成(few-shot feature generation),即生成圖像特徵,或者少樣本偽圖像生成,即生成一些看起來不真實但仍然可以提升分類性能的圖像。
而本文關注的少樣本圖像生成任務和上述任務不同,它致力於生成真實且多樣的圖片。因此,少樣本圖像生成任務比少樣本特徵生成和少樣本偽圖像生成更具有挑戰性。
現有的少樣本圖像生成方法很少,可以大致歸納為三類:
基於優化的方法(optimization-based):這類方法和少樣本分類中基於優化的方法類似,只不過它把同樣的策略從分類模型轉移到了生成模型。比如,FIGR [1] 把 Reptile 應用到生成模型,DAWSON [2] 把 MAML 應用到生成模型。
基於變換的方法(transformation-based):輸入單張圖片,對這張圖片進行變換,得到另一張屬於同一類別的圖片。比如 DAGAN [3] 輸入單張圖片和一個隨機向量,對輸入圖片進行微調得到新的同類圖片。
基於融合的方法(fusion-based):輸入多張圖片,對這些圖片進行信息融合,得到新的屬於同一類別的圖片,該圖片包含輸入的多張圖片的信息。比如 GMN [4] 把 VAE 和 Matching Network 相結合。我們實驗室之前的一項工作 MatchingGAN [5] 把 GAN 和 Matching Network 相結合,另外一項工作 F2GAN [6] 提出了融合填充的思想。
我們整理了少樣本圖像生成方法的論文和代碼,參見:https://github.com/bcmi/Awesome-Few-Shot-Image-Generation。
本文重點介紹我們實驗室被 ACM MM2020 接收的論文《F2GAN: Fusing-and-Filling GAN for Few-shot Image Generation》,代碼將在整理後公布。
論文連結:https://arxiv.org/abs/2008.01999
核心思想
下圖展示了這篇論文的核心思想。
把三張屬於同一類別的圖片 x1, x2, x3,也叫做條件圖片(conditional image),按照一定比例(比如 [0.2, 0.3, 0.5])進行融合,得到一張新的圖片(比如 0.2 x1+0.3 x2+0.5 x3)。
一般做法是在潛在空間(latent space)做線性插值(linear interpolation),但本文提出了先融合後填充(fusing-and-filling)的思想,以便更合理地融合條件圖片並完善生成圖片的細節信息。因此該方法叫做 Fusing-and-filling GAN (F2GAN)。
F2GAN 方法簡介
F2GAN 方法的具體網絡結構參見下圖左:對條件圖片基於編碼器得到的深層特徵做線性插值,也就是融合(fusing);然後在解碼器生成過程中,利用基於全局注意力機制的融合模塊(non-local attentional fusion module, 具體結構參見下圖右),對於解碼器每層輸出特徵圖的每一個空間位置,從所有條件圖片的所有空間位置借取相關信息,再和解碼器輸出的特徵圖融合,得到新的特徵圖,並送入解碼器的下一層,相當於在上採樣過程中利用條件圖片的相關淺層特徵填充(filling)圖像細節。
根據這種先填充後融合(fusing-and-filling)的思想,得到的圖片按照一定比例融合了條件圖片的深層語義信息,並且從條件圖片獲取相關的淺層特徵來完善圖片細節信息。具體的網絡結構和技術細節參見原論文。
實驗
研究者在五個數據集(Omniglot、EMNIST、VGGFace、Flowers、Animals Faces)上做實驗,包括字符數據集和真實圖片數據集,並和之前的少樣本圖像生成方法做比較。
下圖匯總了 F2GAN 方法和之前方法在五個數據集上的生成結果。左邊三列是作為輸入的三張條件圖片,右邊是各個方法基於三張條件圖片的生成結果。從下圖中可以觀察得到,不管是字符數據集還是真實圖片數據集,基於三張條件圖片,F2GAN 方法都能生成合理且多樣的同類別圖片。
這是因為該研究按照一定比例融合了多張條件圖片。為了驗證按比例融合的平滑性,研究者基於兩張條件圖片,用漸變的融合比例,得到基於 x1 和 x2 按不同比例融合的結果,如下圖所示。上面一行是 MatchingGAN 的對比結果,下面一行是 F2GAN 方法的結果,從中可以看出基於 F2GAN 方法生成的圖片過渡更加平滑自然。
該研究還對基於全局注意力機制的融合模塊(non-local attentional fusion module)進行可視化分析,如下圖所示:
左邊一列圖片是基於右邊三列條件圖片生成的結果。這項研究針對生成圖片的某一空間位置(比如紅色小方塊),獲取它從條件圖片借取信息的空間位置(比如紅色箭頭覆蓋的高亮區域)。用下面一行的圖片舉例,狗的額頭是從 x1 借信息,臉頰是從 x2 借信息,舌頭是從 x3 借信息,融合得到左邊第一列的圖片。
討論
這篇論文還討論了少樣本圖像生成和少樣本圖像翻譯(few-shot image translation)的區別和聯繫。
少樣本圖像翻譯對圖片進行跨類別遷移,藉助已知類別的大量圖片,給定某個未知類別的少量圖片,即可把已知類別的大量圖片遷移到該未知類別。但是這種做法在測試生成階段需要藉助大量已知類別圖片,做法不是很簡潔,並且生成圖片在類別相關特徵的多樣性方面不足。而且,如果解耦效果不夠理想,生成圖片可能會帶有已知類別的類別相關特徵。
相比較而言,少樣本圖像生成在測試生成階段不需要藉助已知類別圖片。另外,生成圖片在類別相關特徵的多樣性方面較好,且不會引入其他類別的類別相關信息。
少樣本圖像生成是非常有挑戰性的任務,但受到的關注不是很多。目前,基於優化的方法在真實圖片上生成的效果欠佳,尚未發揮出其優勢。基於變換的方法生成的圖片多樣性不足,但是提升空間很大。基於融合的方法生成的圖片通常和某一張條件圖片比較接近,缺乏幾何形變。
近年來,少樣本生成方法在簡單的真實資料庫(Flowers、Animals Faces、NABirds)上已經取得了很大的進展,但是在複雜的真實資料庫(如 MiniImageNet)上依然無法生成真實的圖片。歡迎大家關注少樣本生成任務。
參考文獻
[1] Louis Clouatre and Marc Demers. 2019. FIGR: Few-shot image generation with reptile. arXiv preprint arXiv:1901.02199 (2019).
[2] Weixin Liang, Zixuan Liu, and Can Liu. 2020. DAWSON: A domain adaptive few shot generation framework. arXiv preprint arXiv:2001.00576 (2020).
[3] Antreas Antoniou, Amos Storkey, and Harrison Edwards. 2017. Data augmentation generative adversarial networks. arXiv preprint arXiv:1711.04340 (2017).
[4] Sergey Bartunov and Dmitry Vetrov. 2018. Few-shot generative modelling with generative matching networks. In AISTATS.
[5] Yan Hong, Li Niu, Jianfu Zhang, and Liqing Zhang. 2020. MatchingGAN: Matching-based few-shot image generation. In ICME.
[6] Yan Hong, Li Niu, Jianfu Zhang, Weijie Zhao, Chen Fu, Liqing Zhang. 2020. F2GAN: Fusing-and-Filling GAN for Few-shot Image Generation. In ACM MM.