當前位置:
首頁 > 科技 > LR-GAN如何生成圖像?這裡有篇Pytorch教程

LR-GAN如何生成圖像?這裡有篇Pytorch教程

GIF/1.7M

原文來源:GitHub

「機器人圈」編譯:嗯~阿童木呀

本文主要是介紹2017年國際學習表徵會議(ICLR 2017)的論文《LR-GAN:分層遞歸生成對抗網路進行圖像生成》在pytorch上的實現。該論文由弗吉尼亞理工大學、FAIR(臉書AI實驗室)、喬治亞理工學院合著。該文的第一作者Jianwei Yang近日在GitHub上發文,說明該論文如何用Pytorch實現。

在論文中,我們提出,鑒於圖像本身帶有結構和內容,可採用LR-GAN(分層遞歸生成對抗網路)以遞歸的方式逐層生成圖像。如下圖所示,LR-GAN首先生成背景圖像,然後生成具有外觀、姿態和形狀的前景。之後,LR-GAN將以一種與情境相關的方式將前景置於相應的背景之上,從而生成一個完整的自然圖像。整個模型都是無監督的,並且採用梯度下降的方法,以端到端的方式進行訓練。

通過這種方式,LR-GAN便可以明顯減少背景和前景之間的混合。而無論是定性或定量的比較,都表明,相較於基準DCGAN模型,LR-GAN可以產生更好、更清晰的圖像。

免責聲明

這是基於Pytorch的LR-GAN代碼。它是以Pytorch DCGAN為基礎進行開發的。我們的原始代碼是在第一作者實習期間基於Torch實現的。本文所呈現的所有結果都是基於Torch代碼獲得的,由於版許可權制不能將其發布。此項目旨在重現論文中所得到的結果。

引文

如果你發現此代碼對你有所幫助,想要了解更多,請引用以下文章:

@article, author=, journal=, year= }

實驗基礎

1.PyTorch,請使用正確的命令安裝PyTorch,同時確保你也安裝了torchvision。

2. STNM(Spatial transformer network with mask,具有掩碼的空間變換神經網路)。我們已在此項目中提供了這個模塊。但是如果你想對此做些改變,請參考此項目。

訓練LR-GAN

?準備

將此項目置於你自己的機器上,並確保Pytorch已成功安裝。然後,你需要創建一個保存訓練集的數據集文件夾;一個保存生成結果的圖像文件夾,以及一個保存模型(生成器和鑒別器)的模型文件夾:

$ mkdir datasets $ mkdir images $ mkdir models

接下來,你就可以嘗試在數據集上訓練LR-GAN模型:1)MNIST-ONE; 2)MNIST-TWO; 3)CUB-200; 4)CIFAR-10。樣本圖像如下所示:

在數據集文件夾中,分別為所有這些數據集創建子文件夾:

$ mkdir datasets/mnist-one $ mkdir datasets/mnist-two $ mkdir datasets/cub200 $ mkdir datasets/cifar10

?訓練

我們的模型是分別在MNIST-ONE、MNIST-TWO、CIFAR-10和CUB-200四個數據集上進行訓練的。接下來我們將分別介紹在不同數據集上進行訓練的操作和結果。

1.MNIST-ONE,我們首先在MNIST-ONE上進行實驗,可以從這裡下載。將其解壓縮到datasets / mnist-one文件夾中,然後運行以下命令:

$ python train.py --dataset mnist-one --dataroot datasets/mnist-one --ntimestep 2 --imageSize 32 --maxobjscale 1.2 --niter 50 --session 1

其中,ntimestep指定遞歸層的數量,例如,2表示一個背景層和一個前景層;imageSize是指訓練圖像的比例尺寸;maxobjscale是指最大目標(前景)比例,值越大,目標尺寸越小;session指定了訓練會話;niter指定訓練時期的數量。以下是在訓練周期為50,使用訓練模型的隨機生成結果:

生成背景圖像

前景圖像

前景掩碼

最終圖像

2.CUB200,我們在64x64的CUB200上運行。這是處理過的數據集。同樣,將其下載並解壓縮到datasets / cub200。然後,運行以下命令:

$ python train.py --dataset cub200 --dataroot datasets/cub200 --ntimestep 2 --imageSize 64 --ndf 128 --ngf 128 --maxobjscale 1.2 --niter 200 --session 1

基於上述指令,我們獲得了與論文中所提及的相同的模型。以下是隨機生成的圖像:

由此我們可以看到,此中布局類似於MNIST-ONE。正如我們所看到的那樣,生成器產生鳥形掩碼,從而使最終的圖像更為清晰。

3.CIFAR-10,CIFAR-10可以使用pytorch dataloader自動下載。我們生成只需要使用兩個時間步長。為了訓練模型,需要運行:

$ python train.py --dataset cifar10 --dataroot datasets/cifar10 --ntimestep 2 --imageSize 32 --maxobjscale 1.2 --niter 100 --session 1

以下是一些隨機採樣的生成結果:

生成背景圖像

前景圖像

前景掩碼

最終的圖像

從上面幾幅圖片中,我們可以清楚地發現一些生成的馬形,鳥形和船形掩碼圖像,同時,最終生成的圖像也更為清晰。

4.MNIST-TWO,圖像為64x64,且包含兩位數字。我們使用以下命令訓練模型:

$ python train.py --dataset mnist-two --dataroot datasets/mnist-two --ntimestep 3 --imageSize 64 --maxobjscale 2 --niter 50 --session 1

可以看到,整體布局與我們論文中的布局是一樣的。

5.LFW,我們訓練的是64x64的圖像,圖像資源可以從這裡下載。同樣,我們需要將其解壓縮到文件夾datasets / lfw。我們使用以下命令訓練模型:

$ python train.py --dataset lfw --dataroot datasets/lfw --ntimestep 2 --imageSize 64 --maxobjscale 1.3 --niter 100 --session 1

以下是生成結果:

真實的圖像

生成背景圖像

生成前景圖像

掩碼圖像

最終圖像

測試LR-GAN

訓練結束後,檢查點將保存到models 中。你可以再附加兩個選項(netG和evaluate)到用於訓練模型的命令中。以cifar10為例,其代碼將如下所示:

$ python train.py --dataset cifar10 --dataroot datasets/cifar10 --ntimestep 2 --imageSize 32 --maxobjscale 1.2 --niter 100 --session 1 --netG models/cifar10_netG_s_1_epoch_100.pth --evaluate True

然後,你將在images文件夾中獲得模型的會話為1、周期為100的生成結果。

有關此實驗的更多理論信息,可點擊鏈接查看完整論文。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器人圈 的精彩文章:

實時風格遷移原來這麼酷!用PyTorch分分鐘搞定
Salesforce AI最新研究,如何情境化詞向量進行翻譯
如何使用深度神經網路進行圖像分類?其中用到的技術哪些?
對抗樣本到底會不會對無人駕駛目標檢測產生干擾?又有人質疑了!
AI變革傳統行業,為何人工智慧需要找到應用場景?

TAG:機器人圈 |

您可能感興趣

theBallroom Presents丨CLERGERIE x Lucia Liu - 把花園種在鞋底
LUMMA Design操刀Range Rover Velar CLR GT套件亮相
TensorFlow王位不保?ICLR投稿論文PyTorch出鏡率快要反超了
西山徹也發力了!adidas Originals x DESCENDANT發布聯名RIVALRY鞋款搶錢了?
NOWRE x coolrain LABO 聯名玩偶,來了!
OG降臨!adidas Originals再版Rivalry Hi!
來勢洶洶PyTorch!ICLR論文提及頻率直追TensorFlow
Brand News丨Viennois jewelry,Chinese jewelry design brand NO.22
Brand News丨Viennois jewelry,Chinese jewelry design brand NO.21
Verizon 將把 Tumblr 賣給 WordPress 母公司 Automattic
Art Deco年代的Bakelite jewelry?
青花瓷限定!罕見的 adidas Originals RIVALRY 即將登場
Lalique推出新季Fine Jewelry作品——Cygnes
固執的孤獨感/YOUNGIVE Jewelry
clrinject:向CLR Runtimes和AppDomain中注入代碼的工具
來勢洶洶PyTorch!ICLR論文提及頻率直追TensorFlow(附對比)
印花Rivalry High?!eric emanuel x adidas Originals還有後手!
另一種選擇 小眾Woolrich Wool Patrol Down 經典 Parka 鵝絨大衣
UNDERCOVER聯名還沒發售,Supreme x Hellraiser 2018合作款式就已曝光了!
theBallroomStyle丨除了歌聲,Diva們還在拼什麼