成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
    此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
    人工智能開發(fā)者 正文
    發(fā)私信給汪思穎
    發(fā)送

    0

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    本文作者: 汪思穎 2017-09-01 18:16
    導(dǎo)語:除了能將男人變成女人,還有各種鬼畜變換

    雷鋒網(wǎng) AI科技評(píng)論按:本文作者何之源,原文載于知乎專欄AI Insight,雷鋒網(wǎng)獲其授權(quán)發(fā)布。

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

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解將油畫中的場(chǎng)景還原成現(xiàn)實(shí)中的照片:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    比如將貓變成狗:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    讓圖片中的人露出笑容:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    將男人變成女人:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    此外,知乎上的 @達(dá)聞西 還用CycleGAN訓(xùn)練了可以脫掉女優(yōu)衣服的模型(可以參考提高駕駛技術(shù):用GAN去除(愛情)動(dòng)作片中的馬賽克和衣服),其腦洞之大,實(shí)在是讓人驚嘆了一番。

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    今天這篇文章主要分成三個(gè)部分:

    • CycleGAN的原理解析

    • CycleGAN與原始的GAN、DCGAN、pix2pix模型的對(duì)比

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

    CycleGAN的原理

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

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

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

    我們?cè)偌僭O(shè)一個(gè)映射G,它可以將Y空間中的圖片y轉(zhuǎn)換為X中的圖片G(y)。CycleGAN同時(shí)學(xué)習(xí)F和G兩個(gè)映射,并要求 可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解 ,以及 可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解  。也就是說,將X的圖片轉(zhuǎn)換到Y(jié)空間后,應(yīng)該還可以轉(zhuǎn)換回來。這樣就杜絕模型把所有X的圖片都轉(zhuǎn)換為Y空間中的同一張圖片了。根據(jù) 可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解 ,循環(huán)一致性損失就定義為:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    同時(shí),我們?yōu)镚也引入一個(gè)判別器 可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解 ,由此可以同樣定義一個(gè)GAN的損失 可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解 ,最終的損失就由三部分組成:

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    CycleGAN與DCGAN的對(duì)比

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

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    CycleGAN與pix2pix模型的對(duì)比

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    在TensorFlow中實(shí)驗(yàn)CycleGAN

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

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

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

    1. 下載項(xiàng)目代碼

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

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

    這個(gè)項(xiàng)目中提供了一個(gè)build_data腳本,用于將圖片轉(zhuǎn)換成tfrecords形式。假設(shè)我們的圖片存放在~/datasets/man2woman/a_resized/和 ~/datasets/man2woman/b_resized目錄下,對(duì)應(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)練的過程比較漫長(zhǎng),此時(shí)可以打開TensorBoard來觀察訓(xùn)練情況(運(yùn)行這個(gè)命令時(shí)需要將“20170715-1622”改成機(jī)器中對(duì)應(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

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

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

    總結(jié)

    因?yàn)镃ycleGAN只需要兩類圖片就可以訓(xùn)練出一個(gè)模型,所以它的應(yīng)用十分廣泛,個(gè)人感覺是近期最好玩的一個(gè)深度學(xué)習(xí)模型。這篇文章介紹了CycleGAN的一些有趣的應(yīng)用、Cycle的原理以及和其他模型的對(duì)比,最后加了一個(gè)TensorFlow中的CycleGAN小實(shí)驗(yàn),希望大家喜歡~

    雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

    可能是近期最好玩的深度學(xué)習(xí)模型:CycleGAN的原理與實(shí)驗(yàn)詳解

    分享:
    相關(guān)文章

    編輯

    關(guān)注AI學(xué)術(shù),例如論文
    當(dāng)月熱門文章
    最新文章
    請(qǐng)?zhí)顚懮暾?qǐng)人資料
    姓名
    電話
    郵箱
    微信號(hào)
    作品鏈接
    個(gè)人簡(jiǎn)介
    為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
    您的郵箱還未驗(yàn)證,完成可獲20積分喲!
    請(qǐng)驗(yàn)證您的郵箱
    立即驗(yàn)證
    完善賬號(hào)信息
    您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說