心中無碼:這是一個能自動腦補漫畫空缺部分的AI項目

選自Github,機器之心編譯,參與:思源、路雪。python

圖像修復在應用上很是吸引人,一般設計師須要使用 Photoshop 根據圖像周圍修復空缺部分。這一過程很是耗時和細緻,所以很早就有研究嘗試使用機器學習模型自動化這一過程。這篇文章介紹了 DeepCreamPy 項目,它能夠自動修復漫畫圖像中的空缺部分和馬賽克。該項目主要基於幾個月前 Nvidia 提出使用部分卷積修復圖像不規則空缺的研究。
git

本文將簡要介紹這項研究與 DeepCreamPy 實現項目,讀者可下載項目代碼或預構建的二進制文件,並嘗試修復漫畫圖像或馬賽克。這一個項目能夠直接使用 CPU 進行推斷,Windows 用戶甚至都不須要安裝環境均可以直接運行預構建的文件修復圖像。github

項目地址:github.com/deeppomf/De…面試

圖像修復任務可用於多種應用。好比用於圖像編輯:移除不須要的圖像內容,用合理的圖像內容填補移除後的空缺。以前的深度學習方法都聚焦在圖像中心的矩形區域,每每依賴昂貴的後處理。而 DeepCreamPy 項目基於的方法提出一種圖像修復的新模型,可在不規則的空缺模式上魯棒地生成有意義的預測(圖 1),預測結果與圖像其他部分完美契合,無需進行額外的後處理或混合操做(blending operation)。網絡

圖 1:原始圖像和使用本研究提出的基於部分卷積的網絡進行修復的對應修復結果。

近期不使用深度學習技術的圖像修復方法均使用圖像剩餘部分的統計信息來填補空缺。當前最優方法之一 PatchMatch [3] 迭代地搜索最適合的圖像塊來填補空缺。儘管該方法生成的結果一般較爲流暢,但它受限於可用的圖像統計信息,且不具有視覺語義學的概念。例如,在圖 2(b)中,PatchMatch 可以使用來自周圍陰影和牆體的圖像快流暢地填補畫做的空缺部分,可是語義感知方法利用的是來自畫做自己的圖像塊。架構

深度神經網絡以端到端的方式學習語義優先(semantic prior)和有意義的隱藏表徵,這已經用於近期的圖像修復工做。這些網絡對圖像採用卷積濾波器,用固定值替代缺失的內容。結果,這些方法依賴於初始空缺的值,初始空缺的值一般表現爲空缺區域缺少紋理和明顯的顏色對比或空缺周圍的人工邊緣響應。圖 2(e)和 2(f)展現了使用具有不一樣空缺值初始化的典型卷積層的 U-Net 架構的例子(二者的訓練和測試使用一樣的初始化方案)。機器學習


圖 2:不一樣圖像修復方法的效果。

不少近期方法的另外一個曲線是隻關注矩形空缺部分,一般位於圖像中心。本文介紹的研究發現這些缺陷可能致使對矩形空缺部分的過擬合,最終限制這些模型的應用可用性。Pathak 和 Yang 等人假設一個 128×128 圖像的中心處有一個 64 × 64 的正方形空缺部分,而 Iizuka 等人進一步移除了這一中心空缺假設,可以處理不規則形狀的空缺部分,可是沒法在大量具有不規則 mask 的圖像([8] 中有 51 個測試圖像)上執行定量分析。爲了解決實踐中更常見的不規則 mask 問題,DeepCreamPy 項目使用的方法收集了具有不一樣大小的不規則 mask 的大量圖像,並分析了 mask 大小的影響,以及 mask 與圖像邊界的關聯。工具

爲了恰當處理不規則 mask,Nvidia 的這項研究提出了部分卷積層(Partial Convolutional Layer),包括 mask 和從新標準化卷積操做以及後續的 mask 更新(mask-update)。mask 和從新標準化卷積操做的概念在 [9] 中指圖像分割任務的分割感知卷積(segmentation-aware convolution),但它們不對輸入 mask 進行修改。該研究使用部分卷積,即給出一個二元 mask,卷積結果僅依賴於每一層的非空缺區域。該研究的主要擴展是自動 mask 更新步,其移除任意 mask,部分卷積可以在 unmasked 值上運行。給出足夠多層的連續更新,即便最大的 mask 空缺也能最終被消除,只在特徵圖中留下有效響應(valid response)。部分卷積層最終使得該模型不用理會佔位符空缺值。學習

DeepCreamPy 圖像修復項目測試

最近 deeppomf 開源了 Image Inpainting for Irregular Holes Using Partial Convolutions 的修復實現,它主要使用深度全卷積網絡修復漫畫圖像。DeepCreamPy 能將遮擋的漫畫圖像重構爲可信的畫像,而且與一般的圖像修復不同,它使用的是不規則的 Mask。

用戶須要事先使用綠色指定被遮住的區域,這一過程能夠用簡單的圖畫工具或 Photoshop 等。以下展現了加上綠色 Mask 的「損壞圖像」和經過 DeepCreamPy 重構的圖像。

其實之前也開源過不少優秀的圖像修復項目,例如 JiahuiYu 等研究者完成的 DeepFillv1 和 DeepFillv2,不過 DeepFillv2 一直沒有放出代碼來。機器之心也嘗試過 DeepFillv1,不過它的效果在給定的測試圖像上很是好,而在咱們提供的圖像上效果通常。

圖3:第一行爲 deepfillV1 項目展現的效果,第二行爲重構效果。

按照 DeepCreamPy 的項目所述,這個 GitHub 項目的重點是能夠修復任意尺寸的漫畫圖像和任意形狀的 mask,一樣也能修復漫畫中的馬賽克,不過這一部分仍是不太穩定。此外,項目做者表示他正在作可視化界面,說不定過一段時間就能使用可視化界面試試漫畫圖像修復的威力。

目前項目做者已經發布了預構建的二進制文件,Windows 系統只須要下載該文件就能夠直接運行。固然其它系統一樣能夠根據該項目運行預訓練模型,或者直接從新訓練該模型。

若是讀者使用預訓練模型或者從新訓練,該項目要求咱們的計算環境包含如下幾個工具:

  • Python 3.6

  • TensorFlow 1.10

  • Keras 2.2.4

  • Pillow

  • h5py

重要的是,僅運行推斷過程修復圖像並不須要 GPU 的支持,並且也已經在 Ubuntu 16.04 和 Windows 64 位系統獲得測試。這個項目使用的 TF 1.10 版是在 Python 3.6 中完成編譯的,所以它並不與 Python 2 或 3.7 兼容。想要試一試的讀者能夠運行如下代碼安裝項目所須要的庫:

$ pip install -r requirements.txt

DeepCreamPy 使用方法

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. 修復馬賽克空缺部分

和修復條形空缺同樣,執行一樣的着色步驟,將着色後圖像放入 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


論文連接:arxiv.org/pdf/1804.07…

摘要:基於深度學習的現有圖像修復方法利用標準卷積網絡修復受損圖像,使用以有效像素以及 mask 區域中的替代值(一般爲平均值)爲條件的卷積核響應。這種作法一般會致使圖片出現色差和模糊等問題。後處理一般被用於減小此類問題,但價格昂貴且存在失敗的風險。咱們提出使用部分卷積網絡,其中卷積被掩蔽並從新歸一化爲僅以有效像素爲條件。咱們還包含了一種機制,可自動爲下一層生成更新的 mask 做爲前向傳遞的一部分。對於不規則 mask,咱們的模型優於其它方法。咱們經過與其它方法進行定性、定量對比對咱們的方法進行了驗證。

相關文章
相關標籤/搜索