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



高端VR設(shè)備起量,英偉達稱今年1500萬,明年翻倍
英偉達DPU的過“芯”之處
英偉達的黑魔法:GauGAN

英偉達新開源的工具它利用生成對抗網(wǎng)絡(luò),隨便幾個線條就能生成栩栩如生的圖像
英偉達GauGAN開放測試,人人當(dāng)畫家!
英偉達研究團隊的公布的“AI神筆”嗎?
電子領(lǐng)域的黑魔法:復(fù)數(shù)RF混頻器的揭秘

評論