丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

本文作者: AI研習(xí)社-譯站 2018-04-25 14:20
導(dǎo)語(yǔ):2014年 Ian Goodfellow 提出了生成對(duì)抗網(wǎng)絡(luò)(GAN),這篇文章主要介紹在Keras中搭建GAN實(shí)現(xiàn)圖像去模糊。

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題GAN with Keras: Application to Image Deblurring,作者為Rapha?l Meudec。

翻譯 | 廖穎  陳俊雅  整理 | 凡江

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

2014年 Ian Goodfellow 提出了生成對(duì)抗網(wǎng)絡(luò)(GAN)。這篇文章主要介紹在Keras搭建GAN實(shí)現(xiàn)圖像去模糊。所有的Keras代碼可點(diǎn)擊這里。

可點(diǎn)擊查看原始出版文章Pytorch實(shí)現(xiàn)

快速回憶生成對(duì)抗網(wǎng)絡(luò)

GAN中兩個(gè)網(wǎng)絡(luò)的訓(xùn)練相互競(jìng)爭(zhēng)。生成器( generator) 合成具有說(shuō)服力的假輸入來(lái)誤導(dǎo)判別器(discriminator ),而判別器則是來(lái)識(shí)別這個(gè)輸入是真的還是假的。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練過(guò)程—?來(lái)源

訓(xùn)練過(guò)程主要有三步

  • 根據(jù)噪聲,生成器合成假的輸入

  • 用真的輸入和假的輸入共同訓(xùn)練判別器

  • 訓(xùn)練整個(gè)模型:整個(gè)模型中判別器與生成器連接

注意:在第三步中,判別器的權(quán)重是固定的

將這兩個(gè)網(wǎng)絡(luò)連接起來(lái)是由于生成器的輸出沒(méi)有可用的反饋。我們唯一的準(zhǔn)則就是看判別器是否接受生成器的合成的例子。

這些只是對(duì)生成對(duì)抗網(wǎng)絡(luò)的一個(gè)簡(jiǎn)單回顧,如果還是不夠明白的話(huà),可以參考完整介紹。

數(shù)據(jù)

Ian Goodfellow首次使用GAN模型是生成MNIST數(shù)據(jù)。 而本篇文章是使用生成對(duì)抗網(wǎng)絡(luò)進(jìn)行圖像去模糊。因此生成器的輸入不是噪聲,而是模糊圖像。

數(shù)據(jù)集來(lái)自GOPRO數(shù)據(jù),你可以下載精簡(jiǎn)版數(shù)據(jù)集(9GB),也可以下載完整版數(shù)據(jù)集(35GB)。其中包含了來(lái)自不同街道視角的人造模糊圖像,根據(jù)不同的場(chǎng)景將數(shù)據(jù)集分在各個(gè)子文件夾中。

我們先把圖像分到 A (模糊)和 B (清晰)兩個(gè)文件夾。這個(gè) A&B 結(jié)構(gòu)對(duì)應(yīng)于原始文章pix2pix 。我創(chuàng)建了一個(gè) 自定義腳本來(lái)執(zhí)行這個(gè)任務(wù)。 看看 README 后嘗試一下吧。

模型

訓(xùn)練過(guò)程還是一樣,首先來(lái)看一下神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

生成器

生成器要生成清晰圖像,網(wǎng)絡(luò)是基于ResNet blocks的,它可以記錄對(duì)原始模糊圖像操作的過(guò)程。原文還使用了基于UNet的版本,但我目前還沒(méi)有實(shí)現(xiàn)。這兩種結(jié)構(gòu)都可以很好地進(jìn)行圖像去模糊。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

DeblurGAN 生成器網(wǎng)絡(luò)?結(jié)構(gòu) —? 來(lái)源

核心是采用9 個(gè)ResNet blocks對(duì)原始圖像進(jìn)行上采樣。來(lái)看一下Keras上的實(shí)現(xiàn)!

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

ResNet 層就是一個(gè)基本的卷積層,其中,輸入和輸出相加,形成最終輸出。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

生成器結(jié)構(gòu)的 Keras 實(shí)現(xiàn)

按照計(jì)劃,用9個(gè)ResNet blocks對(duì)輸入進(jìn)行上采樣。我們在輸入到輸出增加一個(gè)連接,然后除以2 來(lái)對(duì)輸出進(jìn)行歸一化。

這就是生成器了! 我們?cè)賮?lái)看看判別器的結(jié)構(gòu)吧。

判別器

判別器的目標(biāo)就是要確定一張輸入圖片是否為合成的。因此判別器的結(jié)構(gòu)采用卷積結(jié)構(gòu),而且是一個(gè)單值輸出。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

判別器結(jié)構(gòu)的 Keras 實(shí)現(xiàn)

最后一步就是建立完整的模型。這個(gè)GAN的一個(gè)特點(diǎn)就是輸入的是真實(shí)圖片而不是噪聲 。因此我們就有了一個(gè)對(duì)生成器輸出的直接反饋

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

接下來(lái)看看采用兩個(gè)損失如何充分利用這個(gè)特殊性。

訓(xùn)練

損失

我們提取生成器最后和整個(gè)模型最后的損失。

第一個(gè)是感知損失,根據(jù)生成器輸出直接可以計(jì)算得到。第一個(gè)損失保證 GAN 模型針對(duì)的是去模糊任務(wù)。它比較了VGG第一次卷積的輸出

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

第二個(gè)損失是對(duì)整個(gè)模型輸出計(jì)算的Wasserstein loss,計(jì)算了兩張圖像的平均差值。眾所周知,這種損失可以提高生成對(duì)抗網(wǎng)絡(luò)的收斂性。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

訓(xùn)練流程

第一步是加載數(shù)據(jù)并初始化模型。我們使用自定義函數(shù)加載數(shù)據(jù)集,然后對(duì)模型使用 Adam 優(yōu)化器。我們?cè)O(shè)置 Keras 可訓(xùn)練選項(xiàng)來(lái)防止判別器進(jìn)行訓(xùn)練。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

然后我們進(jìn)行epochs(一個(gè)完整的數(shù)據(jù)集通過(guò)了神經(jīng)網(wǎng)絡(luò)一次并且返回了一次的過(guò)程,稱(chēng)為一個(gè)epoch),并將整個(gè)數(shù)據(jù)集分批次(batches)。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

最后根據(jù)兩者的損失,可以相繼訓(xùn)練判別器和生成器。用生成器生成假的輸入,訓(xùn)練判別器區(qū)別真假輸入,并對(duì)整個(gè)模型進(jìn)行訓(xùn)練。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

你可以參考Github來(lái)查看完整的循環(huán)。

實(shí)驗(yàn)

我使用的是在AWS 實(shí)例(p2.xlarge)上配置深度學(xué)習(xí) AMI (version 3.0)進(jìn)行的 。對(duì)GOPRO 精簡(jiǎn)版數(shù)據(jù)集的訓(xùn)練時(shí)間大約有 5 個(gè)小時(shí)(50個(gè)epochs)。

圖像去模糊結(jié)果

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

從左到右:原始圖像,模糊圖像,GAN 輸出

上面的輸出結(jié)果都是我們用 Keras 進(jìn)行 Deblur GAN 的結(jié)果。即使是對(duì)高度模糊,網(wǎng)絡(luò)也可以減小模糊,產(chǎn)生一張具有更多信息的圖片,使得車(chē)燈更加匯聚,樹(shù)枝更加清晰。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

左圖: GOPRO 測(cè)試圖像,右圖:GAN 輸出結(jié)果

因?yàn)橐肓薞GG來(lái)計(jì)算損失,所以會(huì)產(chǎn)生圖像頂部出現(xiàn)感應(yīng)特征的局限。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

左圖: GOPRO 測(cè)試圖像,右圖:GAN 輸出結(jié)果

希望你們可以喜歡這篇關(guān)于生成對(duì)抗網(wǎng)絡(luò)用于圖像去模糊的文章。 你可以評(píng)論,關(guān)注我或者聯(lián)系我

如果你對(duì)機(jī)器視覺(jué)感興趣,我們還寫(xiě)過(guò)一篇用Keras實(shí)現(xiàn)基于內(nèi)容的圖像復(fù)原 。下面是生成對(duì)抗網(wǎng)絡(luò)資源的列表。

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

左圖: GOPRO 測(cè)試圖像,右圖:GAN 輸出結(jié)果

生成對(duì)抗網(wǎng)絡(luò)資源

NIPS 2016: Generative Adversarial Networks by Ian Goodfellow

ICCV 2017: Tutorials on GAN

GAN Implementations with Keras by Eric Linder-Noren

A List of Generative Adversarial Networks Resources by deeplearning4j

Really-awesome-gan by Holger Caesar

博客原址 https://blog.sicara.com/keras-generative-adversarial-networks-image-deblurring-45e3ab6977b5


更多文章,關(guān)注雷鋒網(wǎng)  雷鋒網(wǎng)雷鋒網(wǎng)

添加雷鋒字幕組微信號(hào)(leiphonefansub)為好友

備注「我要加入」,To be an  AI  Volunteer !

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)


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

用Keras搭建GAN:圖像去模糊中的應(yīng)用(附代碼)

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

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)