英偉達(dá)最近發(fā)布的圖像合成 “黑魔法”GauGAN 效果令人驚嘆,現(xiàn)在,相關(guān)代碼和預(yù)訓(xùn)練模型終于公開了。
還記得英偉達(dá)在GTC2019披露的令人驚嘆的圖像生成器GauGAN嗎??jī)H憑幾根線條,草圖秒變風(fēng)景照,自動(dòng)生成照片級(jí)逼真圖像的技術(shù)堪比神筆馬良。
圖中,左邊是人類操作員畫的,右邊是AI直接“簡(jiǎn)單加上幾筆細(xì)節(jié)”后生成的。在普通人看來(lái),右邊的圖像幾乎毫無(wú)破綻,看不出這并非一張風(fēng)光照片,而是AI生成的虛擬海灘。
從圖中我們可以看出,GauGAN并不是像Photoshop里貼一個(gè)圖層那樣,簡(jiǎn)單的把圖形貼上去,而是根據(jù)相鄰兩個(gè)圖層之間的對(duì)應(yīng)關(guān)系對(duì)邊緣進(jìn)行調(diào)整。比如石頭在水里的倒影應(yīng)該是什么樣的、被瀑布沖刷的山石應(yīng)該是怎樣的狀態(tài)、近處的山和遠(yuǎn)處的山之間的層次應(yīng)該如何表現(xiàn)…
相關(guān)閱讀:英偉達(dá)再出黑魔法GauGAN:憑借幾根線條,草圖秒變風(fēng)景照
GauGAN背后的技術(shù)來(lái)自來(lái)自英偉達(dá)和MIT的研究團(tuán)隊(duì)。這個(gè)團(tuán)隊(duì),包括來(lái)自英偉達(dá)的Ting-ChunWang、劉明宇(Ming-YuLiu),TaesungPark(當(dāng)時(shí)在英偉達(dá)實(shí)習(xí)),以及來(lái)自MIT的朱俊彥(Jun-YanZhu)。
論文地址:https://arxiv.org/pdf/1903.07291.pdf
他們提出一種名為“空間自適應(yīng)歸一化”(SPADE)的語(yǔ)義圖像合成技術(shù),論文已經(jīng)被CVPR2019接收,并入選oralpaper。
近日,SPADE的代碼終于發(fā)布,包括預(yù)訓(xùn)練模型等,有興趣的同學(xué)趕緊來(lái)試試復(fù)現(xiàn)吧。
SPADE:空間自適應(yīng)歸一化
GauGAN是基于名為“空間自適應(yīng)歸一化”(spatially-adaptivenormalization,SPADE)技術(shù)實(shí)現(xiàn)的。該方法通過(guò)一個(gè)簡(jiǎn)單但有效的層,在給定輸入語(yǔ)義布局的情況下合成照片級(jí)真實(shí)的圖像。
以前的方法直接將語(yǔ)義布局作為輸入提供給網(wǎng)絡(luò),然后通過(guò)卷積、歸一化和非線性層進(jìn)行處理。我們證明了以前的方法不是最優(yōu)的,因?yàn)闅w一化層往往會(huì)消除語(yǔ)義信息。
為了解決這個(gè)問(wèn)題,我們建議使用輸入布局,通過(guò)空間自適應(yīng)的、學(xué)習(xí)的變換來(lái)調(diào)整歸一化層中的激活。
在幾個(gè)具有挑戰(zhàn)性的數(shù)據(jù)集上的實(shí)驗(yàn)表明,與現(xiàn)有方法相比,SPADE在視覺保真度和與輸入布局的對(duì)齊方面具有優(yōu)勢(shì)。最后,我們的模型允許用戶輕松地控制合成結(jié)果的樣式和內(nèi)容,以及創(chuàng)建多模態(tài)的結(jié)果。
方法簡(jiǎn)述
在許多常見的歸一化技術(shù)中,如BatchNormalization(Ioffeetal.,2015),在實(shí)際歸一化步驟之后會(huì)應(yīng)用到學(xué)習(xí)的affinelayers(如在PyTorch和TensorFlow)中。
在SPADE中,affinelayers是從語(yǔ)義分割映射中學(xué)習(xí)的。這類似于條件歸一化(DeVriesetal.,2017和Dumoulinetal.,2016),除了學(xué)習(xí)的affineparameters,還需要空間自適應(yīng),這意味著我們將對(duì)每個(gè)語(yǔ)義標(biāo)簽使用不同的縮放和偏差。
使用這種簡(jiǎn)單的方法,語(yǔ)義信號(hào)可以作用于所有層的輸出,而不受可能丟失這些信息的歸一化過(guò)程的影響。此外,由于語(yǔ)義信息是通過(guò)SPADE層提供的,所以可以使用隨機(jī)的潛在向量作為網(wǎng)絡(luò)的輸入,從而實(shí)現(xiàn)操縱所生成的圖像的樣式。
與現(xiàn)有方法的比較
SPADE在COCO-Stuff數(shù)據(jù)集上的性能優(yōu)于現(xiàn)有方法。因?yàn)榫哂懈嗟膱?chǎng)景和標(biāo)簽,COCO-Stuff數(shù)據(jù)集比Cityscapes數(shù)據(jù)集更具挑戰(zhàn)性。上面的圖片比較了GRN、pix2pixhd以及SPADE的效果。
應(yīng)用到 Flickr 圖片
由于SPADE適用于不同的標(biāo)簽,因此可以使用現(xiàn)有的語(yǔ)義分割網(wǎng)絡(luò)對(duì)其進(jìn)行訓(xùn)練,學(xué)習(xí)從語(yǔ)義映射到照片的反向映射。上面這些圖片是由SPADE對(duì)從Flickr上抓取的40k張圖片進(jìn)行訓(xùn)練生成的。
代碼開源
安裝
克隆這個(gè) repo
git clonehttps://github.com/NVlabs/SPADE.gitcd SPADE/
這段代碼需要PyTorch1.0和python3+。請(qǐng)通過(guò)以下方式安裝依賴項(xiàng)
pip install -r requirements.txt
代碼還需要同步的 Synchronized-BatchNorm-PyTorch rep.
cd models/networks/ git clonehttps://github.com/vacancy/Synchronized-BatchNorm-PyTorchcpSynchronized-BatchNorm-PyTorch/sync_batchnorm.-rfcd ../../
為了重現(xiàn)論文中報(bào)告的結(jié)果,你需要一臺(tái)有8個(gè)V100GPU的NVIDIADGX1機(jī)器。
數(shù)據(jù)集準(zhǔn)備
對(duì)于COCO-Stuff、Cityscapes或ADE20K,必須預(yù)先下載數(shù)據(jù)集。請(qǐng)?jiān)谙嚓P(guān)網(wǎng)頁(yè)下載。
準(zhǔn)備COCO-Stuff數(shù)據(jù)集。圖像、標(biāo)簽和實(shí)例映射應(yīng)該與數(shù)據(jù)集/coco_stuff/中的目錄結(jié)構(gòu)相同。特別地,我們使用了一個(gè)實(shí)例映射,它結(jié)合了“thingsinstancemap”和“stufflabelmap”的邊界。我們使用了一個(gè)簡(jiǎn)單的腳本數(shù)據(jù)集/coco_generate_instance_map.py。請(qǐng)使用pipinstallpycocotools安裝pycocotools,并參考腳本生成實(shí)例映射。
準(zhǔn)備ADE20K數(shù)據(jù)集。解壓數(shù)據(jù)集后,將jpg圖像文件ADEChallengeData2016/images/和png標(biāo)簽文件ADEChallengeData2016/annotatoins/放在同一個(gè)目錄中。
使用預(yù)訓(xùn)練模型生成圖像
數(shù)據(jù)集準(zhǔn)備好后,就可以使用預(yù)訓(xùn)練模型生成圖像。
1、從 Google Drive Folder 下載預(yù)訓(xùn)練模型的 tar,保存在 'checkpoint /‘中,然后運(yùn)行
cd checkpoints tar xvf checkpoints.tar.gz cd ../
2、使用預(yù)訓(xùn)練模型生成圖像
python test.py --name [type]_pretrained --dataset_mode [dataset] --dataroot [path_to_dataset]
3、輸出圖像默認(rèn)存儲(chǔ)在./results/[type]_pretrained/。
訓(xùn)練新模型
可以使用以下命令訓(xùn)練新模型。
1、準(zhǔn)備數(shù)據(jù)集
要在論文中的數(shù)據(jù)集上訓(xùn)練,可以下載數(shù)據(jù)集并使用--dataset_mode選項(xiàng),該選項(xiàng)將選擇加載BaseDataset上的哪個(gè)子類。對(duì)于自定義數(shù)據(jù)集,最簡(jiǎn)單的方法是使用./data/custom_dataset。通過(guò)指定選項(xiàng)--dataset_modecustom,以及--label_dir[path_to_labels]--image_dir[path_to_images]。你還需要指定更多選項(xiàng),例如--label_nc(數(shù)據(jù)集中標(biāo)簽類的數(shù)目),--contain_dontcare_label(指定是否有一個(gè)未知的標(biāo)簽),或者--no_instance(表示地圖數(shù)據(jù)集沒有實(shí)例)。
2、訓(xùn)練
# To train on the Facades or COCO dataset, for example.python train.py --name [experiment_name] --dataset_mode facades --dataroot [path_to_facades_dataset]python train.py --name [experiment_name] --dataset_mode coco --dataroot [path_to_coco_dataset]# To train on your own custom datasetpython train.py --name [experiment_name] --dataset_mode custom --label_dir [path_to_labels] -- image_dir [path_to_images] --label_nc [num_labels]
你還可以指定許多選項(xiàng),請(qǐng)使用 python train.py --help.
測(cè)試
測(cè)試與測(cè)試預(yù)訓(xùn)練模型相似
python test.py --name [name_of_experiment] --dataset_mode [dataset_mode] --dataroot [path_to_dataset]
-
代碼
+關(guān)注
關(guān)注
30文章
4823瀏覽量
68964 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1209瀏覽量
24803 -
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3842瀏覽量
91865
原文標(biāo)題:草圖秒變風(fēng)景照,英偉達(dá)神筆馬良GaoGAN終于開源了
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論