一個模型可以實現(xiàn)多個圖像修改任務(wù)!本文作者結(jié)合自注意力GAN、逐漸增大的訓(xùn)練方式等技術(shù),實現(xiàn)了驚艷的舊照片著色效果。
圖像著色、圖像增強、恢復(fù)舊圖像等是計算機視覺領(lǐng)域的熱點問題,不過,用一個模型很好地實現(xiàn)多個任務(wù)的研究不多。
近日,GitHub用戶Janson Antic發(fā)布了一個名為DeOldify的項目,這是一個給舊照片著色和修復(fù)的神器。
地址:https://github.com/jantic/DeOldify
讓我們先看看效果:
Maria Anderson as the Fairy Fleur de farine and Lyubov Rabtsova as her page in the ballet “Sleeping Beauty” at the Imperial Theater, St. Petersburg, Russia, 1890.
Woman relaxing in her livingroom (1920, Sweden)
Medical Students pose with a cadaver around 1890
Whirling Horse, 1898
Interior of Miller and Shoemaker Soda Fountain, 1899
Paris in the 1880s
Edinburgh from the sky in the 1920s
(更多結(jié)果圖像請點擊文末鏈接查看)
技術(shù)細(xì)節(jié)
這是一個基于深度學(xué)習(xí)的模型。具體來說,我結(jié)合了以下方法:
Self-Attention生成對抗網(wǎng)絡(luò)(https://arxiv.org/abs/1805.08318)。除了generator是一個預(yù)訓(xùn)練的Unet之外,我只做了一點修改,使它具有光譜規(guī)范化(spectral normalization)和自注意力(self attention)。一開始我努力想實現(xiàn)一個Wasserstein GAN版本,但沒成功,轉(zhuǎn)向這個版本之后就一切都好了。我喜歡Wasserstein GAN的理論,但它在實踐中并不成功,因此我喜歡上了Self-Attention GANs。
訓(xùn)練結(jié)構(gòu)的靈感來自Progressive Growing of GANs(https://arxiv.org/abs/1710.10196)。但不是完全一樣,差別主要是我的版本層數(shù)保持不變——只是逐步改變輸入的大小并調(diào)整學(xué)習(xí)率以確保尺寸的轉(zhuǎn)換成功。最終結(jié)果基本一致——訓(xùn)練速度更快、更穩(wěn)定,并且能更好地泛化。
Two Time-Scale Update Rule(https://arxiv.org/abs/1706.08500)。 這也非常簡單, 就是一對一的generator/critic迭代和更高的critic學(xué)習(xí)率。
Generator Loss包括兩部分:一部分是基于VGG16的基本Perceptual Loss(或Feature Loss),基本上只是使生成模型偏差以復(fù)制輸入圖像。第二部分是critic的loss score。對于curious來說,Perceptual Loss本身不足以產(chǎn)生良好的結(jié)果。它往往只是鼓勵一堆棕色/綠色/藍(lán)色 ,基本上這只是在測試中作弊,神經(jīng)網(wǎng)絡(luò)很擅長做這些!這里需要意識到的關(guān)鍵問題是,GAN實際上正在學(xué)習(xí)損失函數(shù),這對于我們在機器學(xué)習(xí)中所追求的理想來說真正邁出了一大步。當(dāng)然,當(dāng)你把以前人工編碼的東西交給機器學(xué)習(xí),通常能得到更好的結(jié)果。這個項目就是這樣。
這個模型的驚艷之處在于,它對各種各樣的圖像修改都很有用,而且應(yīng)該能做得很好。上面舉例的是著色模型的結(jié)果,但這只是pipeline的一個部分,用同樣的模型可以開發(fā)更多任務(wù)。
我用這個模型開發(fā)的下一個任務(wù)是修復(fù)舊圖像,使它們看起來更好,所以我的下一個項目是“defade”模型。我已經(jīng)做了最初的努力,在我寫這篇文章時已經(jīng)處于模型訓(xùn)練的早期階段。基本上,它只是訓(xùn)練相同的模型來重建圖像,使用夸張的對比度/亮度調(diào)整來增強圖像,作為褪色照片和使用舊/壞設(shè)備拍攝的照片的模擬。我已經(jīng)看到了一些有希望的結(jié)果:
如何啟動這個項目
以上就是這個項目的要點——我希望用GAN讓老照片看起來更好,更重要的是,讓項目有用。
這個項目是用Fast.AI library建的。不幸的是,用的是舊版本,我還沒有升級到新版本。 因此,先決條件是:
舊版本的Fast.AI library:https://github.com/jantic/fastai
Fast.AI已有的dependencies:已有方便的requirements.txt和environment.yml
Pytorch 0.4.1(需要spectral_norm,因此需要最新的穩(wěn)定版本)。
Jupyter Lab
Tensorboard(即安裝Tensorflow)和TensorboardX(https://github.com/lanpa/tensorboardX)。 需要注意的是,默認(rèn)情況下, progress images將每200次迭代寫入Tensorboard,因此可以持續(xù)方便地查看模型正在執(zhí)行的操作。
BEEFY顯卡。我的是GeForce 1080TI(11GB),真希望有比11 GB更大的內(nèi)存。Unet和Critic都非常大,但越大效果越好。
對于想要立即開始轉(zhuǎn)換自己的圖像的人:......好吧,你需要等我先上傳預(yù)先訓(xùn)練好的權(quán)重。 一旦可用,就可以在可視化筆記本中引用它們。我將使用ColorizationVisualization.ipynb。你只需要用我上傳的生成器(colorizer)的權(quán)重文件替換colorizer_path = IMAGENET.parent /('bwc_rc_gen_192.h5')
假設(shè)你在內(nèi)存足夠大的GPU(例如11 GB GeForce 1080Ti)上運行這個程序,我將保持大小約為500px。如果內(nèi)存小于11GB,你可以將圖像縮小,或嘗試在CPU上運行。
-
圖像
+關(guān)注
關(guān)注
2文章
1080瀏覽量
40382 -
計算機視覺
+關(guān)注
關(guān)注
8文章
1695瀏覽量
45905
原文標(biāo)題:舊照片著色修復(fù)神器!自注意力GAN效果驚艷
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論