GAN生成對抗網絡合集(八):GeneGAN - 子屬性分離重組 - 解決對象變形問題

GeneGAN 源文:GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data
GeneGAN 源代碼:https://github.com/Prinsphield/GeneGAN

-----------------------------------------------------------------------------------------------------------------------------------------

1 GeneGAN大體思路

在這裏插入圖片描述

       GeneGAN 正是由於生成圖像與真實圖像的數據分佈一致,從而實現生成屬性交換後的圖像。對於屬性交換兩類圖像xAU 和xB0,公共子屬性A和B爲相同分佈的元素,需要轉換的是私有子屬性u和0GeneGAN 的兩類生成圖像數據分佈爲PgA0 和PgBu,分別由兩個GAN 模塊負責,一個負責真實分佈PrB0 與生成數據分佈PgA0,可以看出,由於公共子屬性的數據分佈相同,擬生成的數據分佈PrA0 與對應的真實分佈PgB0 是一致的;同理,另一個GAN 負責的真實分佈PrAu與生成分佈PgBu也是一致的。因此,GeneGAN能夠依靠GAN實現遷移圖像的數據生成。

2 源文精析

2.1 Abstract

       對象變形:將圖像中的對象替換爲另一圖像中的對象。例如,它可以執行這樣的任務,“將A圖中的眼鏡準確地戴在B圖中的人的鼻子上”。使用範例圖像可以更精確地指定所需的修改,並改進條件圖像生成的多樣性。然而,以前的方法依賴於特徵空間操作,需要成對的數據和外觀模型來訓練或從背景中分離對象。在這項工作中,我們提出一個模型,可以從兩個未配對的圖像作爲學習對象進行變形:一組包含“目標”(眼鏡,笑容)的圖像,另一組沒有,輕微的約束爲兩個學習對象是大約位於同一個地方。例如,訓練數據可以是一組有眼鏡的人臉圖像,另一組是沒有眼鏡的圖像,這兩組圖像都通過人臉地標進行空間對齊。儘管0/1標籤很弱,我們的模型可以學習一個“眼鏡”子空間,它包含不同類型眼鏡的多個代表。因此,我們可以對生成的圖像進行細粒度控制,例如通過交換“眼鏡”子空間中的投影組件來交換兩個圖像中的眼鏡,從而創建佩戴眼鏡的人的新圖像
       總的來說,我們的確定性生成模型通過對抗性訓練從弱標記數據中學習解糾纏屬性子空間。在CelebA和Multi-PIE數據集上的實驗驗證了該模型在真實世界數據上的有效性,在生成特定眼鏡、微笑、髮型和照明條件等圖像方面。代碼可以在網上找到。

2.2 Introduction

       對象變形是一種條件圖像生成方法,首先將圖像分解爲對象部分和背景部分。然後修改對象以滿足特定的條件,背景保持不變。對象變形在圖像編輯[2,5,18,23,27,28]和圖像合成[4,13,24]中都有應用。根據任務的不同,對象可以是像眼鏡這樣的具體實例,也可以是像面部表情這樣的更抽象的概念。生成的圖像將回答諸如“如果她的眼鏡戴在我鼻子上怎麼樣?”或者“如果我像她那樣微笑呢?”
       在深度神經網絡提取特徵的線性特徵空間猜想[1]下,我們可以通過對特徵向量的線性操作來實現對象的刪除和移植等複雜的對象變形任務。修改後的特徵向量生成的圖像仍然可以是自然的,並且具有可忽略的人工影響。事實上,之前的工作[19,23]已經表明,在圖像中做一個笑臉,就像在特徵空間中加入一個向量一樣簡單:

在這裏插入圖片描述

目標檢測提取特徵和定位,然後gan來生成特徵:比如人騎馬的cycle缺陷照片

       其中爲圖像到特徵的映射,變換向量vsmiling可計算爲笑臉特徵聚類中心與非笑臉特徵聚類中心的差。
       然而,有很多風格和水平的微笑。例如,一些種類的微笑不暴露牙齒,和一些更表現在眼睛而不是嘴。因此由單個變換向量代表微笑將嚴重限制了微笑在生成圖像的多樣性。爲了解決這種多樣性問題,視覺Analogy-Making[20]方法提出使用一對指定參考圖像變換向量,例如兩個圖片是同一個人,一張微笑,另一張不笑。雖然這種方法增加了多樣性,這種配對數據很難獲得。
       另一種對象變形方法是最近提出的循環損失GAN方法,它利用雙學習[8,11,26,29]來映射源圖像(非笑臉)和目標圖像(笑臉)。然而,對偶學習依賴於映射的可逆性來實現循環損耗。當源域和目標域的固有維數不同時,如源域沒有對象而目標域有對象,則不能應用循環損失。更多的討論將留給第2.4節。

在這裏插入圖片描述
       在這項工作中,我們提出一個模型,從一個單一的圖像可以產生一個對象特徵向量(以下簡稱“對象特徵”或“對象向量”)。將對象特徵移植到其他圖像中,生成具有相似對象的新圖像。該模型由兩部分組成:一是將圖像分解爲背景特徵部分和目標特徵部分的編碼器,二是將背景特徵和目標特徵結合起來產生圖像的解碼器。該模型的典型使用模式:對象刪除和對象移植,這都是通過一些解碼器和編碼器的連接來完成的。解碼器和編碼器的所有實例分別共享參數
       此外,解碼器中的目標特徵構成一個向量空間:不存在的目標被映射到原點,範數與目標的強度成正比(比如微笑的程度),線性組合產生其他可行的目標特徵。雖然前人的工作[19,23]也觀察到一維屬性向量也具有這些性質,但由於對象特徵多樣性的增加,我們能夠提取出更高維的屬性子空間。對髮型、眼鏡等面部屬性的實驗驗證了這些屬性子空間的豐富性。我們在一個專有的深度學習框架中進行實驗,Tensorflow實現可以在https://github.com/Prinsphield/GeneGAN上找到。

2.3 Method

       在這一節中,我們正式概述了我們的方法,並提出了學習背景和對象解糾纏表示的問題。
       訓練數據由兩個集合構成:具有屬性的圖像集合爲{xi Au}N i=1,與之相對的集合爲{xiB0}Mi =1,其中u和0分別表示對象的存在/不存在。這兩組圖像不需要配對。將訓練數據分成兩組是對所有訓練數據進行有效的0/1標記

2.3.1 Model

       我們的模型是由一個編碼器映射一個圖像到兩個補碼,和一個解碼器是編碼器的逆。碼的劃分是未知的,必須從0/1標記中學習。爲了實現目標特徵與背景特徵的分離,我們希望滿足以下約束條件:
       1. 沒有任何對象的圖像應該與集合{xiB0}Mi =1沒有區別。
       2. 具有對象的圖像應該與集合{xi Au}N i=1沒有區別。
       在這裏,xAu表示一個圖像,它將被解碼爲A和u。當從上下文中看清楚時,我們有時會將圖像xAu簡單地稱爲Au。這種“無法區分”的約束可以通過引入對抗性判別器來實施[6,7],它將無法區分解釋爲“不存在可以給兩個集合分配不同分數的判別器”。
       這激發了我們爲我們的模型引入如圖所示的訓練圖,即GeneGAN。在訓練過程中,Au、A0、Bu、B0四個子圖像分別由Au和B0兩個父圖像的補碼組合而成,具體如下:然後解碼器將創建四個合法的子組合:Au、A0、Bu、B0。
       在4個子代中,Au和B0的2個重組是完全重組,A0和Bu是新的雜交品種。通過使用一個判別器要求Au和Bu無法區別,我們可以從A和u中重建Au,我們可以執行所有對象的信息編碼在u。同樣,如果A0和B0無法區別,我們可以確保A不包含任何信息對象。總的來說,我們可以實現目標信息與背景信息的分離
       此外,重構損失可以讓u和v包含關於對象的完整信息。納入重構損失也穩定了判別器的訓練[11,26,29]。

2.3.2 屬性漂移問題與平行四邊形約束

       通過實驗,我們有時會觀察到一個“屬性漂移”的問題:雖然Au和Bu之間仍然存在一一對應關係,但是Au和Bu之間的物體外觀可能是不同的。圖4給出了一個說明性的例子,Au是一個戴着黑色鏡片太陽鏡的人,B0是一個不戴眼鏡的人。只要Bu的眼鏡和Au的眼鏡仍然是一一對應的,那麼Bu就有可能成爲第二個戴任何眼鏡的人。

這個是訓練時匹配的那一組眼鏡人是各式各樣的眼鏡都有,所以測試時纔會出現這種情況

       在圖像域對象是大約一致的情況下,我們建議以下平行四邊形約束,而不是應用一個額外的分類器去執行將Au和Bu的目標風格相同化:Au和B0的圖片像素值的總和,應該差不多等於A0和Bu的總和。在上面的例子中,一個太陽眼鏡在移植時,保持爲一個太陽眼鏡,而不是突變成另一個眼鏡
       注意,考慮循環損失的GAN的平行四邊形損失是沒有意義的,因爲兩個原始圖像的變換是完全相互獨立的。在這種情況下,增加平行四邊形損失只會增加模型的過擬合水平。

2.3.3 loss函數

       給出xAu和xB0兩幅圖像,可以將GeneGAN訓練的數據流總結爲以下方程:

在這裏插入圖片描述
       我們將B0編碼的“∊”強制爲0,以保證A0不包含B0的任何信息,且B0對象部分包含的任何信息都可以安全丟棄的約束
       生成器接收四種類型的損失:(1)標準G損失 A0/Bu,它衡量生成的圖像有多逼真;(2)重構損失 Au’/B0’,它衡量的是經過一系列編碼和解碼後,原始輸入的重構效果如何。(3)歸零損失,反映了目標特徵與背景特徵的分離程度;(4)(可選地)平行四邊形損失,在圖像像素值上強制了子元素與父元素之間的約束。我們忽略了損失的權重,將細節留給在線實現。P0和P≠0分別表示有目標物和無目標物圖像的分佈

在這裏插入圖片描述

       歸零損失將背景信息推送到B部分。事實上,編碼器的對象輸出將不包含背景信息,因爲“∊”被迫爲零。
       重構損失將有多種用途。首先,與Au和B0相關的重構損耗將確保解碼器和編碼器是互爲倒數的。此外,A被強制包含背景信息,以允許解碼器從A和u重構Au。
       判別器爲標準D損失

在這裏插入圖片描述
       判別器的損失將保證重新組合的性能符合要求。
       當我們通過損失來實施約束時,約束只近似地存在,並且在對象和特徵部件之間存在潛在的信息泄漏。我們將其作爲未來的工作來探索更強有力的約束實施。
       優化器是tf.train.RMSPropOptimizer.

2.3.4 替代堆疊GeneGAN

       具有循環損失的GAN方法在進行目標去除和重建時存在欠定問題。例如,在圖2(a)中,雖然將笑臉和非笑臉定義得很好,但是很難確定從非笑臉映射到笑臉時應該有多少笑容。

細粒度

       但是,也可以添加cross-links以允許信息通信。事實上,我們還試驗了一個更接近GAN方法的循環損耗訓練圖,如圖2所示。這與圖3的區別在於,只有雜交品種是作爲父映像的子映像創建的。孩子們將被重新組合產生孫子,理想情況下,孫子和他們的祖父母有相同的特徵。重構損失可以用來加強這種不變性,就像在循環損失GAN方法中所做的一樣。
       然而,我們發現這種“雙置換”訓練圖在實驗中表現較差。我們觀察到,隨着孫子輩經歷更多的非線性轉換,重建損失將顯著增加。我們推測,重建損失越大,與對抗性損失的競爭越激烈,訓練的不穩定性越高,生成的圖像質量越差。

這段的意思就是雖然這樣好,但不能一直這樣換下去,穩定性會變差,生成圖像質量變差;就像是Faster R-CNN檢測只能兩步化,再多檢測效果也不咋樣了。

2.4 experiments

       在本節中,我們執行真實數據集的實驗來驗證我們的方法的有效性。訓練中,我們使用5e-5的學習速率和0動量,在RMSProp[22]學習規則。在本節中使用的神經網絡模型都配備BN層[10]來加速收斂。編碼器有三個conV層附帶非線性Leaky ReLU[16]。解碼器有三個conV層附帶fractional stride[21]。

2.4.1 數據集

CelebA[14]數據集是一個大型的人臉屬性數據集,包括10177個身份的202599張人臉圖像,每個圖像具有40個屬性註釋和5個地標位置。地標位置可以用來在空間上對齊這些面。
Multi-PIE數據集[17]包含來自337名受試者的754,200多張圖像,在15個視點和19種照明條件下拍攝。

2.4.2 屬性交換

       由於GeneGAN只使用了圖像的弱0/1標籤,並且沒有關於重組版本的訓練數據,所以我們在本小節中不會區分訓練數據和實驗數據
       一個對象可以通過傳入“∊”到解碼器來移除。類似地,可以通過替換解碼器的輸入來替換對象。由於我們的模型可以將對象部分與背景部分分開,所以圖1(b)中所示的交叉使用模式也可以用來交換屬性。

在這裏插入圖片描述
       在下面圖的每一行中,圖像的對象部分被行中第一個圖像的對象覆蓋。特別有趣的是圖5(a)。可以看出,髮型與最上面一行的源圖像非常接近。事實上,頭髮的方向與源圖像是一致的。

在這裏插入圖片描述

2.4.3 Unseen Images的一般化處理及與GAN的循環損失比較

       圖7比較了GeneGAN和DiscoGAN。雖然DiscoGAN也可以重建出高質量的圖像,但重建圖像中的物體與原始圖像並不完全相關。相比之下,GeneGAN進行了一致的重建。

在這裏插入圖片描述
       圖8給出了一個在CelebA數據集上訓練的GeneGAN模型在更寬泛的面部數據集上的測試結果,該數據集包含了在更少約束環境下的面部圖像。可以看出,GeneGAN模型對不可見數據的推廣效果很好。

在這裏插入圖片描述

2.4.4 屬性子空間內插

       圖9給出了屬性子空間中目標特徵的插值。注意背景(人類身份)是近似相同的,而對象(髮型)是內插的。

在這裏插入圖片描述

2.5 Related Work

2.6 Conclusion

       這篇論文提出了一種確定性條件生成模型GeneGAN,該模型能在背景不變的情況下對圖像中的物體進行變形處理。該模型通過訓練數據的弱監督0/1標記,將目標特徵從特徵空間的其他因素中分離出來。因此,我們的模型可以從一幅圖像中提取出目標特徵向量,並將其移植到另一幅圖像中
       因此,可以對生成的圖像進行細粒度控制,比如“將A的眼鏡放到B的鼻子上”。這些物體可能很抽象,很難描述,比如髮型和照明條件。我們的訓練方法是對稱的,允許利用循環重建損失,提高了訓練的穩定性。
       模型的建立還產生了一個屬性子空間,該子空間包含多個向量,這些向量代表不同的對象。向量可以縮放、倒排和插值來處理生成圖像中的對象
       在未來的工作中,研究更多的親本之間更復雜的雜交模式是否會進一步提高訓練的穩定性、質量和生成圖像的多樣性,將是一件有趣的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章