為藝術而生的驚艷演算法
一、前言
大家好,我是 Jack 。
周一,看到 arXiv 新發了一篇非常有趣的論文:「Stylized Neural Painting」。
看著很有意思,文章就先寫出來了,這簡直就是為藝術而生的演算法,看下效果:

你沒看錯,演算法根據我們提供的圖片,自動一筆一划的創作油畫!
影像風格遷移演算法,一直都有人研究,但之前的效果多少差點意思,而這個剛剛發表的「Stylized Neural Painting」效果有了不錯的提升。
準備好的你畫筆和鍵盤,今天繼續手把手教學。
演算法原理、環境搭建、效果實現,一條龍服務,盡在下文!
二、Stylized Neural Painting
論文提出了一種圖片轉畫作的演算法,生成的畫作效果逼真,風格可控。
與以往圖片風格遷移演算法不同,演算法是根據提供的圖片推導作畫的每一個筆劃,做到了「一筆一划」的作畫效果。
設計了新的神經網路渲染器,模擬矢量渲染器的行為,將筆畫預測作為參數搜索過程,以最大限度提高輸入和渲染輸出之間的相似性。
用柵格化網路和陰影網路的雙通道神經網路渲染器實現顏色和形狀的解耦,該方法生成的影像無論在整體外觀還是局部紋理上都具有較高的保真度。
右下角小圖是原圖,大圖是演算法轉換的油畫作品。
除了油畫風格,還有水彩筆、記號筆的畫風:

還有顏色或紋理的風格遷移:

更詳細的內容,可以直接看 paper:
論文地址://arxiv.org/abs/2011.08114
三、效果測試
Github 項目地址://github.com/jiupinjia/stylized-neural-painting
第一步:搭建測試環境。
根據 Requirements.txt 安裝依賴庫即可,很簡單。

沒有什麼特殊的庫。
第二步:下載訓練好的模型權重文件,一共有四個模型,我直接打包好了。
我將程式和權重文件都進行了打包,嫌麻煩,可以下載直接使用。
下載地址(提取碼:jack):
//pan.baidu.com/s/1i9OsVHmdIHZG2x3Sch2gBA
第三步:在工程目錄,運行程式。
python demo_prog.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --max_divide 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush
img_path:要輸入的圖片。
canvas_color:可以理解為畫板的背景顏色。
max_m_strokes 和 max_divide:控制筆劃的大小,畫作最後的細緻程度。
renderer:畫作風格,可選參數有watercolor、markerpen、oilpaintbrush、rectangle。
renderer_checkpoint_dir:權重文件路徑。
最終的生成效果會根據筆劃,由少到多,保存在 output 文件夾里。
運行效果:

運行在 RTX 2060 super 上,花費大約 5 分鐘,最終效果:

四、絮叨
圖解深度學習等技術教程,還在寫,讓我好好梳理一番,敬請期待!
我是 Jack ,我們下期見。
原文地址://mp.weixin.qq.com/s/BnuNQYk4AXbyQpZFwu02qg
文章持續更新,可以微信公眾號搜索【JackCui-AI】第一時間閱讀,本文 GitHub PythonPark">//github.com/Jack-Cherish/PythonPark 已經收錄,有大廠面試完整考點,歡迎Star。


