日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CycleGAN 各种变变变

發(fā)布時間:2025/3/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CycleGAN 各种变变变 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載自

簡單介紹了一下GAN和DCGAN的原理。以及如何使用Tensorflow做一個簡單的生成圖片的demo。

  • Ian Goodfellow對GAN一系列工作總結(jié)的ppt,確實精彩,推薦:獨家 | GAN之父NIPS 2016演講現(xiàn)場直擊:全方位解讀生成對抗網(wǎng)絡(luò)的原理及未來(附PPT)
  • GAN論文匯總,包含code:zhangqianhui/AdversarialNetsPapers

CycleGAN是在今年三月底放在arxiv(地址:https://arxiv.org/abs/1703.10593)的一篇文章,文章名為Learning to Discover Cross-Domain Relations with Generative Adversarial Networks,同一時期還有兩篇非常類似的DualGAN(地址:https://arxiv.org/abs/1704.02510)和DiscoGAN(地址:https://arxiv.org/abs/1703.05192),簡單來說,它們的功能就是:自動將某一類圖片轉(zhuǎn)換成另外一類圖片。

作者在論文中也舉了一些例子,比如將普通的馬和斑馬進行互相轉(zhuǎn)換,將蘋果和橘子進行互相轉(zhuǎn)換:

把照片轉(zhuǎn)換成油畫風(fēng)格:

將油畫中的場景還原成現(xiàn)實中的照片:

由于CycleGAN這個框架具有較強的通用性,因此一經(jīng)發(fā)表就吸引了大量注意,很快,腦洞大開的網(wǎng)友想出了各種各樣神奇的應(yīng)用。

比如將貓變成狗:

讓圖片中的人露出笑容:

國外網(wǎng)友Jack Clark還搜集了巴比倫、耶路撒冷以及倫敦的古代地圖,利用CycleGAN將它們還原成了真實衛(wèi)星圖像:

?

?

還有人使用CycleGAN將人臉轉(zhuǎn)換成娃娃:

?

將男人變成女人:

?

把你自己變成一個“肌肉文身猛男”也是可以的:

?

如果說這些應(yīng)用多少可以理解,那么下面的應(yīng)用就有點“匪夷所思”了:你可以想象將人和拉面做轉(zhuǎn)換嗎?日本網(wǎng)友加藤卓哉(Takuya Kato)就訓(xùn)練了這樣一個模型,它可以從拉面中生成人像,此外將人臉變成拉面的圖片。鑒于生成的結(jié)果比較鬼畜,如果有興趣的可以點擊這個鏈接(地址:https://junyanz.github.io/CycleGAN/images/faces_and_ramens.jpg)觀看生成結(jié)果。

此外,知乎上的?@達聞西?還用CycleGAN訓(xùn)練了可以脫掉女優(yōu)衣服的模型(可以參考提高駕駛技術(shù):用GAN去除(愛情)動作片中的馬賽克和衣服),其腦洞之大,實在是讓人驚嘆了一番。但是技術(shù)水平還很厲害,下一篇博客把其中的技術(shù)扒過來。

?

今天這篇文章主要分成三個部分:

  • CycleGAN的原理解析

  • CycleGAN與原始的GAN、DCGAN、pix2pix模型的對比

  • 如何在TensorFlow中用CycleGAN訓(xùn)練模型

CycleGAN的原理

我們之前已經(jīng)說過,CycleGAN的原理可以概述為:將一類圖片轉(zhuǎn)換成另一類圖片。也就是說,現(xiàn)在有兩個樣本空間,X和Y,我們希望把X空間中的樣本轉(zhuǎn)換成Y空間中的樣本。

因此,實際的目標(biāo)就是學(xué)習(xí)從X到Y(jié)的映射。我們設(shè)這個映射為F。它就對應(yīng)著GAN中的生成器,F可以將X中的圖片x轉(zhuǎn)換為Y中的圖片F(xiàn)(x)。對于生成的圖片,我們還需要GAN中的判別器來判別它是否為真實圖片,由此構(gòu)成對抗生成網(wǎng)絡(luò)。設(shè)這個判別器為??。這樣的話,根據(jù)這里的生成器和判別器,我們就可以構(gòu)造一個GAN損失,表達式為:

這個損失實際上和原始的GAN損失是一模一樣的,如果這一步不是很理解的可以參考一篇專欄:GAN學(xué)習(xí)指南:從原理入門到制作生成Demo

但單純的使用這一個損失是無法進行訓(xùn)練的。原因在于,映射F完全可以將所有x都映射為Y空間中的同一張圖片,使損失無效化。對此,作者又提出了所謂的“循環(huán)一致性損失”(cycle consistency loss)。

我們再假設(shè)一個映射G,它可以將Y空間中的圖片y轉(zhuǎn)換為X中的圖片G(y)。CycleGAN同時學(xué)習(xí)F和G兩個映射,并要求??,以及???。也就是說,將X的圖片轉(zhuǎn)換到Y(jié)空間后,應(yīng)該還可以轉(zhuǎn)換回來。這樣就杜絕模型把所有X的圖片都轉(zhuǎn)換為Y空間中的同一張圖片了。根據(jù)??和??,循環(huán)一致性損失就定義為:

同時,我們?yōu)镚也引入一個判別器??,由此可以同樣定義一個GAN的損失??,最終的損失就由三部分組成:

CycleGAN與DCGAN的對比

為了進一步搞清楚CycleGAN的原理,我們可以拿它和其他幾個GAN模型,如DCGAN、pix2pix模型進行對比。

先來看下DCGAN,它的整體框架和最原始的那篇GAN是一模一樣的,在這個框架下,輸入是一個噪聲z,輸出是一張圖片(如下圖),因此,我們實際只能隨機生成圖片,沒有辦法控制輸出圖片的樣子,更不用說像CycleGAN一樣做圖片變換了。

CycleGAN與pix2pix模型的對比

pix2pix也可以做圖像變換,它和CycleGAN的區(qū)別在于,pix2pix模型必須要求成對數(shù)據(jù)(paired data),而CycleGAN利用非成對數(shù)據(jù)也能進行訓(xùn)練(unpaired data)。

?

比如,我們希望訓(xùn)練一個將白天的照片轉(zhuǎn)換為夜晚的模型。如果使用pix2pix模型,那么我們必須在搜集大量地點在白天和夜晚的兩張對應(yīng)圖片,而使用CycleGAN只需同時搜集白天的圖片和夜晚的圖片,不必滿足對應(yīng)關(guān)系。因此CycleGAN的用途要比pix2pix更廣泛,利用CycleGAN就可以做出更多有趣的應(yīng)用。

在TensorFlow中實驗CycleGAN

最后來講一講如何在TensorFlow中實驗CycleGAN,打開全球最大的同性交友網(wǎng)站Github,我們可以發(fā)現(xiàn)CycleGAN在TensorFlow中已經(jīng)有很多輪子了,我使用的代碼是:vanhuyz/CycleGAN-TensorFlow(地址:https://github.com/vanhuyz/CycleGAN-TensorFlow)。

利用這個代碼,我訓(xùn)練了一個從男性和女性圖片互換的模型,比如將男人轉(zhuǎn)換成女人(左側(cè)為原圖,右側(cè)為模型自動生成的圖片):

?

還可以將女性轉(zhuǎn)換成男性:

?

為了訓(xùn)練這么一個模型,我們需要分別準(zhǔn)備好男性的圖片和女性的圖片。在實踐中,我使用了CelebA數(shù)據(jù)集,分別取出其中男性和女性的圖片并統(tǒng)一縮放到256x256的大小,然后存入兩個文件夾中:

?

如果你對這個實驗有興趣,可以直接在地址https://pan.baidu.com/s/1i5qY3yt下載到我使用的數(shù)據(jù)集。當(dāng)然,也可以使用自己的數(shù)據(jù),只需要將它們存為jpg格式并統(tǒng)一縮放到256x256的大小就可以了。接下來的步驟為:

1. 下載項目代碼

git clone https://github.com/vanhuyz/CycleGAN-TensorFlow.git

2. 將圖片轉(zhuǎn)換成tfrecords格式

這個項目中提供了一個build_data腳本,用于將圖片轉(zhuǎn)換成tfrecords形式。假設(shè)我們的圖片存放在~/datasets/man2woman/a_resized/和 ~/datasets/man2woman/b_resized目錄下,對應(yīng)的命令就是:

python build_data.py \
? ?--X_input_dir ~/datasets/man2woman/a_resized/ \
? ?--Y_input_dir ~/datasets/man2woman/b_resized/ \
? ?--X_output_file ~/datasets/man2woman/man.tfrecords \
? ?--Y_output_file ~/datasets/man2woman/woman.tfrecords

3. 訓(xùn)練

訓(xùn)練的命令為:

python train.py \
? ?--X ~/datasets/man2woman/man.tfrecords \
? ?--Y ~/datasets/man2woman/woman.tfrecords \
? ?--image_size 256

訓(xùn)練的過程比較漫長,此時可以打開TensorBoard來觀察訓(xùn)練情況(運行這個命令時需要將“20170715-1622”改成機器中對應(yīng)的文件夾,下同):

tensorboard --logdir checkpoints/20170715-1622

4. 導(dǎo)出模型并執(zhí)行單張圖片

導(dǎo)出模型的方法為:

python export_graph.py \
? ?--checkpoint_dir checkpoints/20170715-1622 \
? ?--XtoY_model man2woman.pb \
? ?--YtoX_model woman2man.pb ?\
? ?--image_size 256

對單張圖片進行轉(zhuǎn)換(將data/test.jpg替換為對應(yīng)的輸入圖片地址):

python inference.py \
--model pretrained/man2woman.pb ?\
--input data/test.jpg ?\
--output data/output.jpg \
--image_size 256

總結(jié)

有已經(jīng)訓(xùn)練好噠model,調(diào)用后發(fā)現(xiàn)效果很不好。

總結(jié)

以上是生活随笔為你收集整理的CycleGAN 各种变变变的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人一级 | 亚洲欧美日韩精品久久亚洲区 | 自拍偷拍日韩 | 国产污视频网站 | 久久国产精品系列 | 亚洲啪av永久无码精品放毛片 | 日韩一区二区三区久久 | 国产99久久 | 午夜日韩在线观看 | 在线看免费 | 九九九国产| 日本不卡视频在线播放 | 男人的天堂2018 | 这里只有精品免费视频 | 91麻豆精品国产91久久久久久 | 99re6在线观看 | 天天综合网在线 | 黄色在线免费 | 欧美一区二区公司 | 亚洲av无码专区在线电影 | 久久偷拍免费视频 | 99综合视频 | 日韩欧美一区二区在线观看 | 69福利网| 国产激情片 | 97人妻精品一区二区 | 日本黄色高清视频 | 99色网| 日韩免费av一区二区 | 日韩在线一二三 | 精品无码一区二区三区在线 | 麻豆短视频在线观看 | 久久精品无码av | 香蕉视频官网 | 91碰在线视频| 午夜精品无码一区二区三区 | 欧美激情一区二区 | 天天操天天干天天干 | 免费看a| 久久久久无码精品国产 | 久久综合亚洲 | 手机免费在线观看av | 久久久久久久 | 亚洲欧美日本在线 | 色视频免费在线观看 | 亚洲h视频| 久久久无码精品亚洲无少妇 | 无码人妻av一区二区三区波多野 | 中文字幕一区二区三区四区欧美 | 国产伊人久久 | 琪琪色18 | 永久免费看黄 | 高跟肉丝丝袜呻吟啪啪网站av | 久久夜色精品国产欧美乱 | 色哟哟在线免费观看 | 国产青草 | 欧美成人视 | 亚洲影视一区二区三区 | av在线小说| 亚洲区一区二区三区 | 毛片免| 亚洲18在线看污www麻豆 | 久久成人综合网 | 爱啪啪影视 | 欧美另类亚洲 | 一级片在线观看视频 | 白丝美女喷水 | 想要xx在线观看 | 日韩一级在线 | 激情午夜天 | 粉嫩av网址 | 国产精品久久久久久久久毛片 | 欧美大片免费高清观看 | 欧美日韩欧美 | 日本在线国产 | av福利片 | 黄色片aaaa| 亚洲系列在线观看 | 黄色片网站在线播放 | 免费亚洲一区 | 精品国产91久久久久久久妲己 | 中文字幕在线观看视频网站 | 高潮一区二区三区 | 久久五月婷 | 美女隐私免费网站 | 国产乱码精品一区二区三 | 久久在线 | 最新欧美大片 | 99re国产| 国产免费无遮挡吸奶头视频 | av日韩av| 日本熟女一区二区 | 中文字幕乱码无码人妻系列蜜桃 | 欧美一级日韩 | 免费看黄网址 | 性喷潮久久久久久久久 | 夜夜嗨av | 亚洲精品乱码久久久久久按摩观 | 午夜激情视频在线观看 |