1. 程式人生 > >基於深度學習的影象修復—心中無碼

基於深度學習的影象修復—心中無碼

一、前言

影象修復在應用上非常吸引人,通常設計師需要使用 Photoshop 根據影象周圍修復空缺部分。這一過程非常耗時和細緻,因此很早就有研究嘗試使用機器學習模型自動化這一過程。
這篇文章介紹了 DeepCreamPy 專案,它可以自動修復漫畫影象中的空缺部分和馬賽克。該專案使用部分卷積修復影象不規則空缺的研究。
專案Github:https://github.com/deeppomf/DeepCreamPy
影象修復任務可用影象編輯:移除不需要的影象內容,用合理的影象內容填補移除後的空缺。之前的深度學習方法都聚焦在影象中心的矩形區域,往往依賴昂貴的後處理。而 DeepCreamPy 專案基於的方法提出一種影象修復的新模型,可在不規則的空缺模式上魯棒地生成有意義的預測(如下圖 ),預測結果與影象其餘部分完美契合,無需進行額外的後處理或混合操作(blending operation)。
在這裡插入圖片描述


近期不使用深度學習技術的影象修復方法均使用影象剩餘部分的統計資訊來填補空缺。

  • PatchMatch [3] 迭代地搜尋最適合的影象塊來填補空缺。
  • 深度神經網路以端到端的方式學習語義優先(semantic prior)和有意義的隱藏表徵
    在這裡插入圖片描述
    預構建模型下載地址:https://github.com/deeppomf/DeepCreamPy/releases

預訓練模型地址:https://drive.google.com/open?id=1byrmn6wp0r27lSXcT9MC4j-RQ2R04P1Z

二、DeepCreamPy 使用方法

2.1. 修復條形空缺

對於你想修復的每個影象,使用影象編輯軟體(如 Photoshop 或 GIMP)將你想修復的區域的顏色塗成綠色 (0,255,0)。強烈推薦使用鉛筆工具,不要用刷子。如果你沒用鉛筆,那麼確保你所使用的工具關閉了抗鋸齒(ANTI-ALIASING)功能。

作者自己使用的是 wand selection 工具(關閉了抗鋸齒功能)來選擇空缺區域。然後稍微擴充套件選中區域,並在選中區域上使用綠色 (0,255,0) 的油漆桶工具。

要在 Photoshop 中擴充套件選中區域,可以執行該操作:Selection > Modify > Expand 或 Contract。要在 GIMP 中擴充套件選中區域,可執行該操作:Select > Grow。將這些影象儲存為 PNG 格式,並儲存到 decensor_input 資料夾中。

  • A. 使用二進位制編譯檔案(Windows)
    雙擊 decensor 檔案來修復影象。
  • B. 從頭開始執行
    執行以下行進行影象修復:
    $ python
    decensor.py

    修復後圖像將儲存至 decensor_output 資料夾。每張影象的修復需要幾分鐘。
2.2. 修復馬賽克空缺部分

和修復條形空缺一樣,執行同樣的著色步驟,將著色後圖像放入 decensor_input 資料夾。此外,將原始、未著色影象放入 decensor_input_original 資料夾,並確保每個原始影象和著色後版本名稱一樣。

例如,如果原始影象名是 mermaid.jpg,你將其放入 decensor_input_original 資料夾;著色後的影象命名為 mermaid.png,放入 decensor_input 資料夾。

  • A. 使用 binary
    雙擊 decensor_mosaic 檔案修復影象。
  • B. 從頭開始執行
    執行以下行進行影象修復:
    $ python decensor.py --is_mosaic=True
    修復後圖像將儲存至 decensor_output 資料夾。每張影象的修復需要幾分鐘。

疑難解答
如果你的 decensor 輸出如下,則修復區域未能正確著色。
以下是一些好的和壞的著色影象示例。

論文:Image Inpainting for Irregular Holes Using Partial Convolutions
論文連結:https://arxiv.org/pdf/1804.07723.pdf