国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

圖像翻譯——pix2pix模型

smartlion / 1626人閱讀

摘要:但圖像翻譯的意思是圖像與圖像之間以不同形式的轉(zhuǎn)換。判別網(wǎng)絡(luò)用損失函數(shù)和重建的圖像很模糊,也就是說和并不能很好的恢復(fù)圖像的高頻部分圖像中的邊緣等,但能較好地恢復(fù)圖像的低頻部分圖像中的色塊。高頻分量主要是對(duì)圖像邊緣和輪廓的度量。

1.介紹

圖像處理、計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺中的許多問題都可以被視為將輸入圖像“翻譯”成相應(yīng)的輸出圖像。 “翻譯”常用于語(yǔ)言之間的翻譯,比如中文和英文的之間的翻譯。但圖像翻譯的意思是圖像與圖像之間以不同形式的轉(zhuǎn)換。比如:一個(gè)圖像場(chǎng)景可以以RGB圖像、梯度場(chǎng)、邊緣映射、語(yǔ)義標(biāo)簽映射等形式呈現(xiàn),其效果如下圖。

傳統(tǒng)圖像轉(zhuǎn)換過程中都是針對(duì)具體問題采用特定算法去解決;而這些過程的本質(zhì)都是根據(jù)像素點(diǎn)(輸入信息)對(duì)像素點(diǎn)做出預(yù)測(cè)(predict from pixels to pixels),Pix2pix的目標(biāo)就是建立一個(gè)通用的架構(gòu)去解決以上所有的圖像翻譯問題,使得我們不必要為每個(gè)功能都重新設(shè)計(jì)一個(gè)損失函數(shù)。

2. 核心思想 2.1 圖像建模的結(jié)構(gòu)化損失

圖像到圖像的翻譯問題通常是根據(jù)像素分類或回歸來解決的。這些公式將輸出空間視為“非結(jié)構(gòu)化”,即在給定輸入圖像的情況下,每個(gè)輸出像素被視為與所有其他像素有條件地獨(dú)立。而cGANs( conditional-GAN)的不同之處在于學(xué)習(xí)結(jié)構(gòu)化損失,并且理論上可以懲罰輸出和目標(biāo)之間的任何可能結(jié)構(gòu)。

2.2 cGAN

在此之前,許多研究者使用 GAN 在修復(fù)、未來狀態(tài)預(yù)測(cè)、用戶約束引導(dǎo)的圖像處理、風(fēng)格遷移和超分辨率方面取得了令人矚目的成果,但每種方法都是針對(duì)特定應(yīng)用而定制的。Pix2pix框架不同之處在于沒有特定應(yīng)用。它在生成器和判別器的幾種架構(gòu)選擇中也與先前的工作不同。對(duì)于生成器,我們使用基于“U-Net”的架構(gòu);對(duì)于鑒別器,我們使用卷積“PatchGAN”分類器,其僅在image patches(圖片小塊)的尺度上懲罰結(jié)構(gòu)。

Pix2pix 是借鑒了 cGAN 的思想。cGAN 在輸入 G 網(wǎng)絡(luò)的時(shí)候不光會(huì)輸入噪音,還會(huì)輸入一個(gè)條件(condition),G 網(wǎng)絡(luò)生成的 fake images 會(huì)受到具體的 condition 的影響。那么如果把一副圖像作為 condition,則生成的 fake images ?就與這個(gè) condition images 有對(duì)應(yīng)關(guān)系,從而實(shí)現(xiàn)了一個(gè) Image-to-Image Translation ?的過程。Pixpix 原理圖如下:

Pix2pix 的網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,生成器 G 用到的是 U-Net 結(jié)構(gòu),輸入的輪廓圖x編碼再解碼成真實(shí)圖片,判別器 D 用到的是作者自己提出來的條件判別器 PatchGAN ,判別器 D 的作用是在輪廓圖?x的條件下,對(duì)于生成的圖片G(x)判斷為假,對(duì)于真實(shí)圖片判斷為真。

2.3 cGAN 與 Pix2pix 對(duì)比

2.4 損失函數(shù)

一般的 cGANs 的目標(biāo)函數(shù)如下:

$L_{cGAN}(G, D) =E_{x,y}[log D(x, y)]+E_{x,z}[log(1 ? D(x, G(x, z))]$

其中 G 試圖最小化目標(biāo)而 D 則試圖最大化目標(biāo),即:$ m G^? =arg; min_G; max_D ;L_{cGAN}(G, D)$

為了做對(duì)比,同時(shí)再去訓(xùn)練一個(gè)普通的 GAN ,即只讓 D 判斷是否為真實(shí)圖像。

$ m L_{cGAN}(G, D) = E_y[log D(y)]+ E_{x,z}[log(1 ? D(G(x, z))]$

對(duì)于圖像翻譯任務(wù)而言,G 的輸入和輸出之間其實(shí)共享了很多信息,比如圖像上色任務(wù)、輸入和輸出之間就共享了邊信息。因而為了保證輸入圖像和輸出圖像之間的相似度、還加入了 L1 Loss:

$ m L_{L1}(G) = E_{x,y,z}[||y ? G(x, z)||_1] $

生成的 fake images 與 真實(shí)的 real images 之間的 L1 距離,(imgB"?和imgB)保證了輸入和輸出圖像的相似度。

最終的損失函數(shù):

$ m G^? = arg;underset{G}{min};underset{D}{max}; L_{cGAN}(G, D) + λL_{L1}(G)$

3.網(wǎng)絡(luò)架構(gòu)(網(wǎng)絡(luò)體系結(jié)構(gòu))

生成器和判別器都使用模塊?convolution-BatchNorm-ReLu

3.1 生成網(wǎng)絡(luò)G

圖像到圖像翻譯問題的一個(gè)定義特征是它們將高分辨率輸入網(wǎng)格映射到高分辨率輸出網(wǎng)格。 另外,對(duì)于我們考慮的問題,輸入和輸出的表面外觀不同,但兩者應(yīng)該共享一些信息。 因此,輸入中的結(jié)構(gòu)與輸出中的結(jié)構(gòu)大致對(duì)齊。 我們圍繞這些考慮設(shè)計(jì)了生成器架構(gòu)。

U-Net 結(jié)構(gòu)基于 Encoder-Decoder 模型,而 Encoder 和 Decoder 是對(duì)稱結(jié)構(gòu)。 U-Net 的不同之處是將第 i 層和第 n-i 層連接起來,其中 n 是層的總數(shù),這種連接方式稱為跳過連接(skip connections)。第 i 層和第 n-i 層的圖像大小是一致的,可以認(rèn)為他們承載著類似的信息 。

3.2 判別網(wǎng)絡(luò) D

用損失函數(shù) L1 和 L2 重建的圖像很模糊,也就是說L1和L2并不能很好的恢復(fù)圖像的高頻部分(圖像中的邊緣等),但能較好地恢復(fù)圖像的低頻部分(圖像中的色塊)。

圖像的高低頻是對(duì)圖像各個(gè)位置之間強(qiáng)度變化的一種度量方法,低頻分量:主要對(duì)整副圖像的強(qiáng)度的綜合度量。高頻分量:主要是對(duì)圖像邊緣和輪廓的度量。如果一副圖像的各個(gè)位置的強(qiáng)度大小相等,則圖像只存在低頻分量,從圖像的頻譜圖上看,只有一個(gè)主峰,且位于頻率為零的位置。如果一副圖像的各個(gè)位置的強(qiáng)度變化劇烈,則圖像不僅存在低頻分量,同時(shí)也存在多種高頻分量,從圖像的頻譜上看,不僅有一個(gè)主峰,同時(shí)也存在多個(gè)旁峰。

為了能更好得對(duì)圖像的局部做判斷,Pix2pix 判別網(wǎng)絡(luò)采用 patchGAN 結(jié)構(gòu),也就是說把圖像等分成多個(gè)固定大小的 Patch,分別判斷每個(gè)Patch的真假,最后再取平均值作為 D 最后的輸出。這樣做的好處:

D ?的輸入變小,計(jì)算量小,訓(xùn)練速度快。

因?yàn)?G 本身是全卷積的,對(duì)圖像尺度沒有限制。而D如果是按照Patch去處理圖像,也對(duì)圖像大小沒有限制。就會(huì)讓整個(gè) Pix2pix 框架對(duì)圖像大小沒有限制,增大了框架的擴(kuò)展性。

論文中將 PatchGAN 看成另一種形式的紋理?yè)p失或樣式損失。在具體實(shí)驗(yàn)時(shí),采用不同尺寸的 patch,發(fā)現(xiàn) 70x70 的尺寸比較合適。

3.3 優(yōu)化和推理

訓(xùn)練使用的是標(biāo)準(zhǔn)的方法:交替訓(xùn)練 D 和 G;并使用了 minibatch SGD 和 Adam 優(yōu)化器。

在推理的時(shí)候,我們用訓(xùn)練階段相同的方式來運(yùn)行生成器。在測(cè)試階段使用 dropout 和 batch normalization,這里我們使用 test batch 的統(tǒng)計(jì)值而不是 train batch 的。

4.源碼解讀

該部分主要是解讀論文源碼:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix?。

文件 train:

通用的訓(xùn)練腳本,可以通過傳參指定訓(xùn)練不同的模型和不同的數(shù)據(jù)集。

--model: e.g.,pix2pix,cyclegan,colorization

--dataset_mode: e.g.,aligned,unaligned,single,colorization)

文件test:

通用的測(cè)試腳本,通過傳參來加載模型?-- checkpoints_dir,保存輸出的結(jié)果?--results_dir

4.1 文件夾data:

該目錄中的文件包含數(shù)據(jù)的加載和處理以及用戶可制作自己的數(shù)據(jù)集。下面詳細(xì)說明data下的文件:

__init__.py:?實(shí)現(xiàn)包和train、test腳本之間的接口。train.py 和 test.py 根據(jù)給定的 opt 選項(xiàng)調(diào)包來創(chuàng)建數(shù)據(jù)集?from data import create_datasetdataset = create_dataset(opt)

base_dataset.py:繼承了 torch 的 dataset 類和抽象基類,該文件還包括了一些常用的圖片轉(zhuǎn)換方法,方便后續(xù)子類使用。

image_folder.py:更改了官方pytorch的image folder的代碼,使得從當(dāng)前目錄和子目錄都能加載圖片。

template_dataset.py:為制作自己數(shù)據(jù)集提供了模板和參考,里面注釋一些細(xì)節(jié)信息。

aligned_dataset.py?和?unaligned_dataset.py:區(qū)別在于前者從同一個(gè)文件夾中加載的是一對(duì)圖片 {A,B} ,后者是從兩個(gè)不同的文件夾下分別加載 {A},{B} 。

single_dataset.py:只加載指定路徑下的一張圖片。

colorization_dataset.py:加載一張 RGB 圖片并轉(zhuǎn)化成(L,ab)對(duì)在 Lab 彩色空間,pix2pix用來繪制彩色模型。

4.2 文件夾models:

models 包含的模塊有:目標(biāo)函數(shù),優(yōu)化器,網(wǎng)絡(luò)架構(gòu)。下面詳細(xì)說明models下的文件:

__init__.py:?為了實(shí)現(xiàn)包和train、test腳本之間的接口。train.py?和?test.py?根據(jù)給定的 opt 選項(xiàng)調(diào)包來創(chuàng)建模型?from models import create_model?和?model = create_model(opt)

base_model.py:?繼承了抽象類,也包括一些其他常用的函數(shù):setuptestupdate_learning_ratesave_networksload_networks,在子類中會(huì)被使用。

template_model.py:?實(shí)現(xiàn)自己模型的一個(gè)模板,里面注釋了一些細(xì)節(jié)。

pix2pix_model.py:?實(shí)現(xiàn)了pix2pix 模型,模型訓(xùn)練數(shù)據(jù)集--dataset_mode aligned,默認(rèn)情況下--netG unet256 --netD basicdiscriminator (PatchGAN)。?--gan_mode vanillaGAN loss (標(biāo)準(zhǔn)交叉熵)。

colorization_model.py:繼承了pix2pix_model,模型所做的是:將黑白圖片映射為彩色圖片。-dataset_model colorization?dataset。默認(rèn)情況下,colorization?dataset會(huì)自動(dòng)設(shè)置--input_nc 1and--output_nc 2

cycle_gan_model.py:來實(shí)現(xiàn)cyclegan模型。--dataset_mode unaligneddataset,--netG resnet_9blocksResNet generator,--netD basicdiscriminator (PatchGAN introduced by pix2pix),a least-square GANsobjective(--gan_mode lsgan?)

networks.py:包含生成器和判別器的網(wǎng)絡(luò)架構(gòu),normalization layers,初始化方法,優(yōu)化器結(jié)構(gòu)(learning rate policy)GAN的目標(biāo)函數(shù)(vanilla,lsgan,wgangp)。

test_model.py:用來生成cyclegan的結(jié)果,該模型自動(dòng)設(shè)置--dataset_mode single

4.3 文件夾options:

包含訓(xùn)練模塊,測(cè)試模塊的設(shè)置TrainOptions和TestOptions都是?BaseOptions的子類。詳細(xì)說明options下的文件。

__init__.py:該文件起到讓python解釋器將options文件夾當(dāng)做包來處理。

base_options.py:除了training,test都用到的option,還有一些helper 方法:parsing,printing,saving options。

train_options.py:訓(xùn)練需要的options。

test_options.py:測(cè)試需要的options。

4.4 文件夾utils:

主要包含一些有用的工具,如數(shù)據(jù)的可視化。詳細(xì)說明utils下的文件:

__init__.py:該文件起到讓python解釋器將utils文件夾當(dāng)做包來處理。

get_data.py:用來下載數(shù)據(jù)集的腳本。

html.py:保存圖片寫成html。基于diminate中的DOM API。

image_pool.py:實(shí)現(xiàn)一個(gè)緩沖來存放之前生成的圖片。

visualizer.py:保存圖片,展示圖片。

utils.py:包含一些輔助函數(shù):tensor2numpy轉(zhuǎn)換,mkdir診斷網(wǎng)絡(luò)梯度等。

5. 總結(jié)與展望 5.1 pix2pix的優(yōu)缺點(diǎn)

Pix2pix模型是?x到y(tǒng)之間的一對(duì)一映射**。也就說,pix2pix就是對(duì)ground truth的重建:輸入輪廓圖→經(jīng)過Unet編碼解碼成對(duì)應(yīng)的向量→解碼成真實(shí)圖。這種一對(duì)一映射的應(yīng)用范圍十分有限,當(dāng)我們輸入的數(shù)據(jù)與訓(xùn)練集中的數(shù)據(jù)差距較大時(shí),生成的結(jié)果很可能就沒有意義,這就要求我們的數(shù)據(jù)集中要盡量涵蓋各種類型。

本文將Pix2Pix論文中的所有要點(diǎn)都表述了出來,主要包括:

cGAN,輸入為圖像而不是隨機(jī)向量

U-Net,使用skip-connection來共享更多的信息

Pair輸入到D來保證映射

Patch-D來降低計(jì)算量提升效果

L1損失函數(shù)的加入來保證輸入和輸出之間的一致性

5.2 總結(jié)

目前,您可以在 ?Mo?平臺(tái)的應(yīng)用中心中找到?pix2pixGAN,可以體驗(yàn)論文實(shí)驗(yàn)部分圖像建筑標(biāo)簽→照片( Architectural labels→photo),即將您繪制的建筑圖片草圖生成為你心目中的小屋?。您在學(xué)習(xí)的過程中,遇到困難或者發(fā)現(xiàn)我們的錯(cuò)誤,可以隨時(shí)聯(lián)系我們。

通過本文,您應(yīng)該初步了解Pix2pix模型的網(wǎng)絡(luò)結(jié)構(gòu)和實(shí)現(xiàn)原理,以及關(guān)鍵部分代碼的初步實(shí)現(xiàn)。如果您對(duì)深度學(xué)習(xí)tensorflow比較了解,可以參考tensorflow版實(shí)現(xiàn)Pix2pix;如果您對(duì)pytorch框架比較熟悉,可以參考pytorch實(shí)現(xiàn)Pix2pix;如果您想更深入的學(xué)習(xí)了解starGAN原理,可以參考論文。

6.參考:

1.論文:https://arxiv.org/pdf/1611.07004.pdf

2.Pix2pix官網(wǎng):https://phillipi.github.io/pix2pix/

3.代碼PyTorch版本:https://github.com/phillipi/pix2pix

4.代碼tensorflow版本:https://github.com/yenchenlin/pix2pix-tensorflow

5.代碼tensorflow版本:https://github.com/affinelayer/pix2pix-tensorflow

6.知乎:https://zhuanlan.zhihu.com/p/38411618

7.知乎:https://zhuanlan.zhihu.com/p/55059359

8.博客:https://blog.csdn.net/qq_16137569/article/details/79950092

9.博客:https://blog.csdn.net/infinita_LV/article/details/85679195

10.博客:https://blog.csdn.net/weixin_36474809/article/details/89004841

關(guān)于我們

Mo(網(wǎng)址:momodel.cn)是一個(gè)支持 Python 的人工智能在線建模平臺(tái),能幫助你快速開發(fā)、訓(xùn)練并部署模型。


Mo 人工智能俱樂部?是由網(wǎng)站的研發(fā)與產(chǎn)品設(shè)計(jì)團(tuán)隊(duì)發(fā)起、致力于降低人工智能開發(fā)與使用門檻的俱樂部。團(tuán)隊(duì)具備大數(shù)據(jù)處理分析、可視化與數(shù)據(jù)建模經(jīng)驗(yàn),已承擔(dān)多領(lǐng)域智能項(xiàng)目,具備從底層到前端的全線設(shè)計(jì)開發(fā)能力。主要研究方向?yàn)榇髷?shù)據(jù)管理分析與人工智能技術(shù),并以此來促進(jìn)數(shù)據(jù)驅(qū)動(dòng)的科學(xué)研究。

目前俱樂部每周六在杭州舉辦以機(jī)器學(xué)習(xí)為主題的線下技術(shù)沙龍活動(dòng),不定期進(jìn)行論文分享與學(xué)術(shù)交流。希望能匯聚來自各行各業(yè)對(duì)人工智能感興趣的朋友,不斷交流共同成長(zhǎng),推動(dòng)人工智能民主化、應(yīng)用普及化。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/20076.html

相關(guān)文章

  • 圖像翻譯——pix2pix模型

    摘要:但圖像翻譯的意思是圖像與圖像之間以不同形式的轉(zhuǎn)換。判別網(wǎng)絡(luò)用損失函數(shù)和重建的圖像很模糊,也就是說和并不能很好的恢復(fù)圖像的高頻部分圖像中的邊緣等,但能較好地恢復(fù)圖像的低頻部分圖像中的色塊。高頻分量主要是對(duì)圖像邊緣和輪廓的度量。 1.介紹 圖像處理、計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺中的許多問題都可以被視為將輸入圖像翻譯成相應(yīng)的輸出圖像。 翻譯常用于語(yǔ)言之間的翻譯,比如中文和英文的之間的翻譯。但圖像...

    Lowky 評(píng)論0 收藏0
  • 用GAN去除動(dòng)作片中的馬賽克和衣服

    摘要:這篇就介紹利用生成式對(duì)抗網(wǎng)絡(luò)的兩個(gè)基本駕駛技能去除愛情動(dòng)作片中的馬賽克給愛情動(dòng)作片中的女孩穿衣服生成式模型上一篇用生成二維樣本的小例子中已經(jīng)簡(jiǎn)單介紹了,這篇再簡(jiǎn)要回顧一下生成式模型,算是補(bǔ)全一個(gè)來龍去脈。 作為一名久經(jīng)片場(chǎng)的老司機(jī),早就想寫一些探討駕駛技術(shù)的文章。這篇就介紹利用生成式對(duì)抗網(wǎng)絡(luò)(GAN)的兩個(gè)基本駕駛技能:1) 去除(愛情)動(dòng)作片中的馬賽克2) 給(愛情)動(dòng)作片中的女孩穿(tu...

    DC_er 評(píng)論0 收藏0
  • 從Pix2Code到CycleGAN:2017年深度學(xué)習(xí)重大研究進(jìn)展全解讀

    摘要:文本谷歌神經(jīng)機(jī)器翻譯去年,谷歌宣布上線的新模型,并詳細(xì)介紹了所使用的網(wǎng)絡(luò)架構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)。目前唇讀的準(zhǔn)確度已經(jīng)超過了人類。在該技術(shù)的發(fā)展過程中,谷歌還給出了新的,它包含了大量的復(fù)雜案例。谷歌收集該數(shù)據(jù)集的目的是教神經(jīng)網(wǎng)絡(luò)畫畫。 1. 文本1.1 谷歌神經(jīng)機(jī)器翻譯去年,谷歌宣布上線 Google Translate 的新模型,并詳細(xì)介紹了所使用的網(wǎng)絡(luò)架構(gòu)——循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。關(guān)鍵結(jié)果:與...

    kuangcaibao 評(píng)論0 收藏0
  • GAN應(yīng)用情況調(diào)研

    摘要:在圖像上的應(yīng)用從目前的文獻(xiàn)來看,在圖像上的應(yīng)用主要是往圖像修改方向發(fā)展。涉及的圖像修改包括單圖像超分辨率交互式圖像生成圖像編輯圖像到圖像的翻譯等。單圖像超分辨率單圖像超分辨率任務(wù)就是給定單張低分辨率圖像,生成它的高分辨率圖像。 今天我們來聊一個(gè)輕松一些的話題——GAN的應(yīng)用。在此之前呢,先推薦大家去讀一下一篇新的文章LS-GAN(Loss-sensitive GAN)[1]。這個(gè)文章比WGA...

    tolerious 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<