快來試試用 Python 將你的照片轉化為“速寫”

Photo-Sketching 一個能將照片的輪廓識別出來并將其轉化為“速寫”型圖像的開源模塊。
比如,這只小狗:

經(jīng)過模型的轉化,會變成卡通版的小狗:

當然,也不是什么照片都處理的好,比如這個風景畫就不行:

搖身一變,成了抽象風格:

非常秀,這很人工智能。
這個模塊的使用也相對簡單,下面給大家?guī)先矫娴慕坛蹋?/p>
1.虛擬環(huán)境及依賴安裝
這個項目推薦大家直接用Anaconda進行環(huán)境的構建和開發(fā):Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,因為作者提供了一個 environment.yml 文件,你只需要輸入以下命令,就能一鍵安裝環(huán)境和依賴:
conda env create -f environment.yml
此外,推薦大家用VSCode編輯器來編寫像這樣的小型Python項目:Python 編程的最好搭檔—VSCode 詳細指南。
2.下載預訓練模型
作者已經(jīng)訓練好了一些識別模型方便大家使用,可以在下列地址找到:
https://drive.google.com/file/d/1TQf-LyS8rRDDapdcTnEgWzYJllPgiXdj/view
作者使用的是谷歌硬盤,如果你無法科學上網(wǎng),可以使用我提供的完整源代碼+預訓練模型,在 Python實用寶典 公眾號后臺回復:sketch 即可獲取。
下載完成后解壓文件,將 latest_net_D.pth 和 latest_net_G.pth 放置到 Checkpoints 文件夾下:

3.運行預訓練模型
接下來,我們需要修改使用預訓練模型的啟動腳本,這些腳本都放在 PhotoSketch\scripts 下,我們需要使用的是 test_pretrained.cmd 或者 test_pretrained.sh 這兩個腳本。
如果你是 windows 系統(tǒng),請修改 test_pretrained.cmd 腳本,重點是dataDir、results_dir、checkpoints_dir:

dataDir 指向到 PhotoSketch 所在的文件夾目錄,如果你是跟我一樣這么配的,results_dir 只需要配成 %dataDir%\PhotoSketch\Results\ 即可,checkpoints_dir 則為 %dataDir%\PhotoSketch\Checkpoints\ 。
如果你是macOS或者Linux,則修改 test_pretrained.sh 文件,修改方法與上面windows 的一樣,只不過 反斜杠 "\" 要換成 斜桿 "/" 。
修改完腳本后,打開命令行/終端,輸入以下命令,就會將你 PhotoSketch\examples 目錄下的文件轉化為“速寫”。
windows:
scripts\test_pretrained.cmd
Linux/MacOS:
./scripts/test_pretrained.sh
轉化結果可以在 PhotoSketch\Results 中看到,如下兩圖所示。
待轉化目錄:

轉化后:

可以看到效果其實不是非常好,由于是作者預訓練的模型,所以效果不好也正常,如果大家需要的話,可以自己針對性地拿一些圖像訓練模型,并針對性地做識別,這樣做效果才是最好的。
你需要訓練或測試自己的模型也非常簡單:
在倉庫的根目錄中,運行
scripts/train.sh可以訓練模型在倉庫的根目錄中,運行
scripts/test.sh可以測試val集或測試集
當然訓練過程肯定沒這么簡單,你會遇到不少問題,但是我相信大部分都是存放圖片的目錄結構上的問題,大家如果有興趣可以動手試試。
我們的文章到此就結束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關注Python實用寶典。
有任何問題,可以在公眾號后臺回復:加群,回答相應紅字驗證信息,進入互助群詢問。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!
點擊下方閱讀原文可獲得更好的閱讀體驗
Python實用寶典 (pythondict.com)
不只是一個寶典
歡迎關注公眾號:Python實用寶典
