1、前言
你們好,我是 Jack 。python
週一,看到 arXiv 新發了一篇很是有趣的論文:「Stylized Neural Painting」。git
看着頗有意思,文章就先寫出來了,這簡直就是爲藝術而生的算法,看下效果:github
你沒看錯,算法根據咱們提供的圖片,自動一筆一劃的創做油畫!面試
圖像風格遷移算法,一直都有人研究,但以前的效果多少差點意思,而這個剛剛發表的「Stylized Neural Painting」效果有了不錯的提高。算法
準備好的你畫筆和鍵盤,今天繼續手把手教學。canvas
算法原理、環境搭建、效果實現,一條龍服務,盡在下文!微信
2、Stylized Neural Painting
論文提出了一種圖片轉畫做的算法,生成的畫做效果逼真,風格可控。網絡
與以往圖片風格遷移算法不一樣,算法是根據提供的圖片推導做畫的每個筆劃,作到了「一筆一劃」的做畫效果。app
設計了新的神經網絡渲染器,模擬矢量渲染器的行爲,將筆畫預測做爲參數搜索過程,以最大限度提升輸入和渲染輸出之間的類似性。
用柵格化網絡和陰影網絡的雙通道神經網絡渲染器實現顏色和形狀的解耦,該方法生成的圖像不管在總體外觀仍是局部紋理上都具備較高的保真度。
右下角小圖是原圖,大圖是算法轉換的油畫做品。
除了油畫風格,還有水彩筆、記號筆的畫風:
還有顏色或紋理的風格遷移:
更詳細的內容,能夠直接看 paper:
論文地址:https://arxiv.org/abs/2011.08114
3、效果測試
Github 項目地址:https://github.com/jiupinjia/stylized-neural-painting
第一步:搭建測試環境。
根據 Requirements.txt 安裝依賴庫便可,很簡單。
沒有什麼特殊的庫。
第二步:下載訓練好的模型權重文件,一共有四個模型,我直接打包好了。
我將程序和權重文件都進行了打包,嫌麻煩,能夠下載直接使用。
下載地址(提取碼:jack):
https://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 分鐘,最終效果:
5、絮叨
圖解深度學習等技術教程,還在寫,讓我好好梳理一番,敬請期待!
我是 Jack ,咱們下期見。
原文地址:https://mp.weixin.qq.com/s/BnuNQYk4AXbyQpZFwu02qg
文章持續更新,能夠微信公衆號搜索【JackCui-AI】第一時間閱讀,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已經收錄,有大廠面試完整考點,歡迎Star。