一個模型可以實現多個圖像修改任務!本文作者結合自注意力GAN、逐漸增大的訓練方式等技術,實現了驚艷的舊照片著色效果。
圖像著色、圖像增強、恢復舊圖像等是計算機視覺領域的熱點問題,不過,用一個模型很好地實現多個任務的研究不多。
近日,GitHub用戶Janson Antic發布了一個名為DeOldify的項目,這是一個給舊照片著色和修復的神器。
地址: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
(更多結果圖像請點擊文末鏈接查看)
技術細節
這是一個基于深度學習的模型。具體來說,我結合了以下方法:
Self-Attention生成對抗網絡(https://arxiv.org/abs/1805.08318)。除了generator是一個預訓練的Unet之外,我只做了一點修改,使它具有光譜規范化(spectral normalization)和自注意力(self attention)。一開始我努力想實現一個Wasserstein GAN版本,但沒成功,轉向這個版本之后就一切都好了。我喜歡Wasserstein GAN的理論,但它在實踐中并不成功,因此我喜歡上了Self-Attention GANs。
訓練結構的靈感來自Progressive Growing of GANs(https://arxiv.org/abs/1710.10196)。但不是完全一樣,差別主要是我的版本層數保持不變——只是逐步改變輸入的大小并調整學習率以確保尺寸的轉換成功。最終結果基本一致——訓練速度更快、更穩定,并且能更好地泛化。
Two Time-Scale Update Rule(https://arxiv.org/abs/1706.08500)。 這也非常簡單, 就是一對一的generator/critic迭代和更高的critic學習率。
Generator Loss包括兩部分:一部分是基于VGG16的基本Perceptual Loss(或Feature Loss),基本上只是使生成模型偏差以復制輸入圖像。第二部分是critic的loss score。對于curious來說,Perceptual Loss本身不足以產生良好的結果。它往往只是鼓勵一堆棕色/綠色/藍色 ,基本上這只是在測試中作弊,神經網絡很擅長做這些!這里需要意識到的關鍵問題是,GAN實際上正在學習損失函數,這對于我們在機器學習中所追求的理想來說真正邁出了一大步。當然,當你把以前人工編碼的東西交給機器學習,通常能得到更好的結果。這個項目就是這樣。
這個模型的驚艷之處在于,它對各種各樣的圖像修改都很有用,而且應該能做得很好。上面舉例的是著色模型的結果,但這只是pipeline的一個部分,用同樣的模型可以開發更多任務。
我用這個模型開發的下一個任務是修復舊圖像,使它們看起來更好,所以我的下一個項目是“defade”模型。我已經做了最初的努力,在我寫這篇文章時已經處于模型訓練的早期階段。基本上,它只是訓練相同的模型來重建圖像,使用夸張的對比度/亮度調整來增強圖像,作為褪色照片和使用舊/壞設備拍攝的照片的模擬。我已經看到了一些有希望的結果:
如何啟動這個項目
以上就是這個項目的要點——我希望用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,因此需要最新的穩定版本)。
Jupyter Lab
Tensorboard(即安裝Tensorflow)和TensorboardX(https://github.com/lanpa/tensorboardX)。 需要注意的是,默認情況下, progress images將每200次迭代寫入Tensorboard,因此可以持續方便地查看模型正在執行的操作。
BEEFY顯卡。我的是GeForce 1080TI(11GB),真希望有比11 GB更大的內存。Unet和Critic都非常大,但越大效果越好。
對于想要立即開始轉換自己的圖像的人:......好吧,你需要等我先上傳預先訓練好的權重。 一旦可用,就可以在可視化筆記本中引用它們。我將使用ColorizationVisualization.ipynb。你只需要用我上傳的生成器(colorizer)的權重文件替換colorizer_path = IMAGENET.parent /('bwc_rc_gen_192.h5')
假設你在內存足夠大的GPU(例如11 GB GeForce 1080Ti)上運行這個程序,我將保持大小約為500px。如果內存小于11GB,你可以將圖像縮小,或嘗試在CPU上運行。
-
圖像
+關注
關注
2文章
1083瀏覽量
40449 -
計算機視覺
+關注
關注
8文章
1698瀏覽量
45980
原文標題:舊照片著色修復神器!自注意力GAN效果驚艷
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論