當前位置:
首頁 > 新聞 > 下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

選自arxiv

作者:欒福軍等

機器之心編譯

參與:李澤南、微胖


康奈爾大學與 Adobe 的研究者們最近發布了一項通過卷積神經網路進行照片風格遷移的研究。隨後,該技術在 Torch 中的實現也已出爐。讀者可以點擊「閱讀原文」下載論文。

論文地址:https://arxiv.org/abs/1703.07511

項目地址:https://github.com/luanfujun/deep-photo-styletransfer

圖像風格遷移的研究在人工智慧領域層出不窮,作為圖像處理軟體的龍頭,Adobe 的努力非常引人注目。最近,康奈爾大學與 Adobe 的研究者們發布了一項通過卷積神經網路進行圖片風格遷移的研究。在本研究的論文中,作者宣稱解決了神經網路風格遷移中參考圖像風格化導致輸出圖像「畸變」的問題,新的模型在各種圖片內容的測試中表現良好,同時忠實地再現了參考圖片中風格遷移的效果。它或許可以成為下一代 Photoshop 的功能之一。

論文:Deep Photo Style Transfer

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

摘要:

本論文介紹了一種實現照片風格遷移的深度學習方法,這種方法可以處理很多不同種類的照片內容,同時還能如實遷移參考風格。近期,我們研究了美術風格遷移,通過研究神經網路的不同層級將風格從圖片內容中分離出來,本論文就是建立在這一研究基礎上。過去的辦法並不適合圖像現實主義風格的遷移,即使輸入和參考圖片都是照片,但仍然會輸出畸變(distortions)的結果。我們的貢獻在於將輸入到輸入的變換限制為空間內的精確色彩變化,並將此約束表示為可以反向傳播的自定義 CNN 層。我們的實驗表明,這一辦法成功地抑制了圖片在各種不同場景下(包括一天的各個時間段,各種天氣,季節以及藝術風格編輯)的風格扭曲,照片現實主義(photorealistic)風格遷移的效果也令人滿意。

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

圖 1:(a)是參考風格,(b)是輸出的圖像,我們希望輸出的效果能仍然和輸入一樣,屬於照片風格,不過風格是參照圖片的風格。Neural Style 演算法(C)雖然可以成功遷移顏色,不過輸出效果會有些扭曲,看起來更像是畫作,這並是不照片風格遷移想要的結果。對比之下,我們的結果(d)不僅可以成功遷移作為參照的風格圖片,還可以維持輸出的照片現實主義風格。右邊(e)就是上面不同效果的集合對比。

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

圖 2:在研究中,開發者向不同的模型輸入圖片(a),參考圖片(e),對風格遷移效果進行了比較。相比 CNNMRF 等其他研究得出的結果,新模型(d)可以防止扭曲並正確地匹配紋理。

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

圖 7:通過手動分割,可以讓系統完成多種任務,如:為香水瓶(a)加入火焰效果(c),切換不同蘋果(d,e)之間的紋理顏色。

下一代PS工具:Adobe照片級圖像風格轉換的Torch實現

圖 8:用戶反饋意見顯示康奈爾大學和 Adobe 的新研究實現了目前最好的效果

結論

在本論文中,研究者通過自定義卷積神經網路層中的拉普拉斯摳圖矩陣(Matting Laplacian)來限制輸入到輸出的變化,從而改善了風格轉換中色彩變化的效果。而語義分割的引入帶來了更多效果絕佳的風格遷移。在各種各樣的場景中,包括不同時間,天氣,季節和藝術風格,都能獲得令人滿意且逼真風格的轉換。在未來,研究者們將繼續探索神經網路自動語義匹配的方法,以消除目前圖像分割演算法的局限性。

安裝

本研究的代碼基於Torch,並在Ubuntu 14.04 LTS的系統中進行了測試。

系統需求

  • Torch (帶有matio-ffi 和 loadcaffe)

  • Matlab

CUDA 後端:

  • CUDA

  • cudnn

下載 VGG-19:

sh models/download_models.sh

編譯 cuda_utils.cu (請在makefile中調整 PREFIX 和 NVCC_PREFIX ):

make clean && make

使用

直接使用

想使用已有數據直接生成結果 (在 examples/中) 請在Matlab中直接運行:

run("gen_laplacian/gen_laplacian.m")

隨後在Python中:

python gen_all.py

輸出的結果會在 examples/final_results/中。

基礎使用

1.給定輸入圖像和具有語義分割蒙版的風格圖像,將其分別放入 examples/ 。它們會以如下格式被自動命名:examples/input/in.png, examples/style/tar.pngexamples/segmentation/in.png, examples/segmentation/tar.png;

2.在Matlab中使用 gen_laplacian/gen_laplacian.mi來計算消光拉普拉斯矩陣,則輸出矩陣的文件命名格式為: gen_laplacian/Input_Laplacian_3x3_1e-7_CSR.mat;

3.運行以下代碼以獲得分段的中間結果:

th neuralstyle_seg.lua -content_image -style_image