《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 去噪、去水印、超分辨率,這款不用學習的神經(jīng)網(wǎng)絡無所不能

去噪、去水印、超分辨率,這款不用學習的神經(jīng)網(wǎng)絡無所不能

2019-01-29

不同的神經(jīng)網(wǎng)絡可以實現(xiàn)給圖像去噪、去水印、消除馬賽克等等功能,但我們能否讓一個模型完成上述所有事?事實證明 AI 確實有這樣的能力。來自 Skoltech、Yandex 和牛津大學的學者們提出了一種可以滿足所有大膽想法的神經(jīng)網(wǎng)絡。

微信圖片_20190129214720.jpg


事情是這樣的:研究人員們讓一個深度卷積網(wǎng)絡去學習復制被破壞的圖像(例如加入噪點的圖像),隨后竟發(fā)現(xiàn)這個網(wǎng)絡可以自行先學會如何重建圖像。該研究的論文《Deep Image Prior》已被收錄在 CVPR 2018 大會,而 GitHub 則已有 3800 個 star。


Deep Image Prior 的重要特點是,網(wǎng)絡由始至終僅使用了輸入的,被破壞過的圖像做為訓練,沒有經(jīng)歷過大多數(shù)神經(jīng)網(wǎng)絡所需要的學習過程即可完成任務。它沒有「看過」任何其它圖像,也沒有看過未受破壞的正常圖像,但最終恢復的效果依然很好。這說明自然圖像的局部規(guī)律和自相似性確實很強。


在 GitHub 項目中,作者如下展示了 5 種常見圖像重構的效果。他們表示單個卷積網(wǎng)絡可以完成缺失圖像的修復、痕跡的移除、圖像去噪、超分辨率和去除水印等,可以說該模型在理解圖像先驗信息下顯得無所不能。當然作者表示這個項目的超參數(shù)和架構都是可以調(diào)整的,它們遠沒有達到最優(yōu),所以感興趣的讀者快試試吧。

微信圖片_20190129214753.jpg


項目地址:https://github.com/DmitryUlyanov/deep-image-prior


其實上圖中的每一項任務都有很多研究,它們假設模型能從大型真實圖像數(shù)據(jù)集中學習到圖像的先驗信息,即像素怎樣才能組合成一張「正常」的圖像,這樣學習到通用圖像信息的模型就能用來修補圖像或生成高分辨率圖像了。但是這種觀點正確嗎?該項目的研究論文表示否定,它們只在損壞的「非正?!箞D像上訓練同樣能學習到圖像的「先驗」,注意這種「訓練」僅表示模型在單張損壞圖像上反復迭代。

微信圖片_20190129214819.jpg

網(wǎng)友使用 AKB-48 照片進行超分辨率的嘗試。


與傳統(tǒng)觀點相反,該項目的研究論文表示未經(jīng)任何「學習過程」的卷積圖像生成器架構可以捕捉到大量圖像數(shù)據(jù),尤其是解決不同圖像修復問題的圖像數(shù)據(jù)。在卷積網(wǎng)絡對損壞圖像反復迭代時,它能自動利用圖像的全局統(tǒng)計信息重構丟失的部分。


研究者使用未經(jīng)訓練的卷積網(wǎng)絡來解決幾種此類問題。研究者未在大量示例圖像數(shù)據(jù)上訓練卷積網(wǎng)絡,而是直接將生成器網(wǎng)絡應用于單個退化圖像,即有損壞的自然圖像。在此方法中,網(wǎng)絡權重作為修復圖像的參數(shù)。權重經(jīng)過隨機初始化和擬合,以在提供特定退化圖像和任務相關模型時能夠最大化似然度。


本研究展示了,這個非常簡單的方法在標準圖像處理問題(如去噪、圖像修復和超分辨率)中極具競爭力。除了標準圖像修復任務外,該技術還可用于理解深度神經(jīng)網(wǎng)絡激活函數(shù)中的信息。


論文:Deep Image Prior

微信圖片_20190129214834.jpg


論文地址:https://sites.skoltech.ru/app/data/uploads/sites/25/2018/04/deep_image_prior.pdf


摘要:深度卷積網(wǎng)絡已經(jīng)成為圖像生成和修復的常用工具。通常,其優(yōu)秀性能要歸功于從大量示例圖像中學習逼真圖像先驗的能力。而這篇論文反其道而行之,展示了一種生成器網(wǎng)絡架構,它可以在學習之前先捕捉大量低級圖像數(shù)據(jù)。本論文展示了隨機初始化神經(jīng)網(wǎng)絡可在標準逆問題(如去噪、超分辨率和圖像修復)中作為手工先驗知識(handcrafted prior)使用,且性能優(yōu)越。此外,同樣的先驗知識還可用于反轉深度神經(jīng)表征以作出判斷,并基于 flash-no flash 輸入對來修復圖像。


該方法應用廣泛,且強調(diào)了標準生成器網(wǎng)絡架構捕捉的歸納偏置(inductive bias)。它還彌補了圖像修復兩大流行方法之間的距離:使用深度卷積網(wǎng)絡的基于學習的方法、基于手工圖像先驗知識(如自相似性)的無學習方法。


項目使用


該項目為不同的任務提供了對應的實現(xiàn)文檔,例如 inpainting.ipynb 展示了如何做圖像修復與去水印、super-resolution.ipynb 展示了如何做圖像超分辨率。如下展示了項目的環(huán)境配置與安裝,注意其主要使用了 PyTorch 0.4,所以已經(jīng)更新到 1.0 的讀者可以借助 conda 或其它工具配置一個新環(huán)境。


安裝


在執(zhí)行代碼之前,你需要安裝下列庫:


python = 3.6

pytorch = 0.4

numpy

scipy

matplotlib

scikit-image

jupyter


以上庫均可通過 conda (anaconda) 安裝,如:


conda install jupyter


Docker 鏡像


你也可以使用具備全部依賴項的 Docker 鏡像完成環(huán)境的配置,并連接到 Jupyter Notebook。你需要確保安裝了 docker 和 nvidia-docker,然后運行以下命令:


nvidia-docker build -t deep-image-prior .


然后,啟動容器,如下所示:


nvidia-docker run --rm -it --ipc=host -p 8888:8888 deep-image-prior


你會得到一個 URL,使用它可連接至 Jupyter notebook。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。