視頻、圖片一鍵卡通化的開源工具!
點擊上方藍色“程序猿DD”,選擇“設為星標”
回復“資源”獲取獨家整理的學習資料!

作者 | 小柴不餓
前段時間,有人根據(jù)一篇字節(jié)跳動聯(lián)名的 AI 論文,做了個可將視頻、圖片一鍵卡通化的 Web 端應用 Cartoonize。
Cartoonize
Cartoonize 現(xiàn)在已經開源,使用非常簡單,只要上傳需要轉換的圖片、視頻即可。Cartoonize 轉換可以很好地還原原圖細節(jié),下面是人像、風景、食物等實景的轉化圖。?

?
Cartoonize 還支持10秒以內的視頻轉換,上一段《復仇者聯(lián)盟》視頻轉化效果。

(官網轉換視頻截圖,實際視頻效果可進官網查看)
據(jù)其官網介紹,Cartoonize 適合四種場景的轉換:快速制作動畫,卡通和游戲的原型;由于它通常可柔化面部特征和信息,因此可用于生成最小單位的藝術做品;無需使用動作捕捉,游戲可以很容易地導入短視頻;可以為圖形設計師或動畫師做建模助手。
對可轉換圖片視頻的大小格式,Cartoonize 做了一定限制,目前只支持轉換10秒及以內的視頻,視頻文件最大為30 MB,支持的格式包括 mp4、webm、avi、mkv。支持的圖像文件格式為 jpeg、png,不支持 GIG/TIFF 圖像。
算法:
Cartoonize 使用?Algorithmia 的 Serveless AI Layer 產品對視頻進行推理。
測試環(huán)境:
python 3.7
tensorflow?2.1.0
tf_slim 1.1.0
Cuda?version?10.1
操作系統(tǒng):Linux(Ubuntu 18.04)
安裝:
使用 Docker:
運行 Cartoonize 最簡單方法是使用 Dockerfile:
cd?到根目錄并構建映像
docker build -t cartoonize .注意:config.yaml在構建圖像之前,請設置適當?shù)闹怠?/span>
2. 通過暴露適當?shù)亩丝趤磉\行容器
docker run -p 8080:8080 cartoonize使用 virtualenv
使用
virtualenv并激活虛擬環(huán)境
virtualenv -p python3 cartoonize
source cartoonize/bin/activate2. 安裝 python 依賴項
pip install -r requirements.txt3. 運行網絡應用。config.yaml在運行應用程序之前,請確保在文件中設置適當?shù)闹怠?/span>
python app.py項目官網:https://cartoonize-lkqov62dia-de.a.run.app/cartoonize
White-box-Cartoonization:白盒圖像卡通化模型
如果想了解更多影像資料卡通化的訓練模型和過程,可以查看 Cartoonize 背后的技術論文和項目。事實上,Cartoonize 是 ?White-box-Cartoonization?的一個 Demo webapp。Cartoonize 核心技術來自 CVPR 2020的投稿論文《Learning to Cartoonize Using White-box Cartoon Representations》,該論文作者系字節(jié)跳動、東京大學、Style2Paints Research 人員。

該論文提出了一種基于 GAN 的白盒可控的圖像卡通化模型。
論文指出,各種卡通風格和用處需要基于特定任務或者先驗知識才能開發(fā)可用的算法。例如有些卡通畫更關注全局色調,線條清晰度在次;有些強調稀疏和干凈的色塊,對主題強調少。然而這些變量因素給黑盒模型帶來了不小的挑戰(zhàn),如當面對藝術家不同的需求時,簡單地更改訓練數(shù)據(jù)集就于事無補了。使用黑盒模型直接擬合訓練數(shù)據(jù)會降低其通用性和風格化質量,在一些情況下導致較差效果。

通常來說,黑盒模型通常有很高的準確性,但是其內部工作難以理解和改動,并且它們不能估計每個特征對模型預測的重要性,也不容易理解不同特征之間如何相互作用。而白盒模型則可以更為自由地修改模型中的某些算法,使之更加靈活地適應不同需求場景。
論文作者指出,為了解決黑盒模型的一些問題,他們對人們的繪畫行為和不同風格的卡通形象進行了大量的觀察,并咨詢了幾位卡通藝術家,建議將圖像分解為幾種卡通表征方式:提取一個帶權重的低頻內容,表示圖片的輪廓表征;針對輸入圖像,提取分割圖,在每個分割區(qū)域使用一個自適應的色彩算法生成結構表征;保持繪畫細節(jié)和邊緣的紋理表征。
The separately extracted cartoon representations enable the cartooniaztion problem to be optimized end-to-end within a Generative Neural Networks (GAN) framework,making it scalable and controllable for practical use casesand easy to meet diversified artistic demands with taskspecific fine-tuning.
單獨提取的卡通表征形式使卡通化問題可以在生成神經網絡(GAN)框架內進行端到端的優(yōu)化,在實際使用場景中,使其可擴展和可控,易于滿足不同的技術需求,也可以根據(jù)需求進行微調。
基于該論文的 White-box-Cartoonization 現(xiàn)在已經部分開源。
安裝使用:
先決條件:
培訓代碼:Linux 或 Windows
NVIDIA GPU + CUDA CuDNN 性能
推斷代碼:Linux,Windows 和 MacOS
安裝:
假設已經安裝了 NVIDIA GPU 和 CUDA CuDNN
安裝 tensorflow-gpu,已經測試過 1.12.0 和 1.13.0rc0
安裝 scikit-image == 0.14.5,其他版本可能會帶來問題
預訓練模型推論:
將測試圖像存儲在/test_code/test_images 中
運行/test_code/cartoonize.py
結果將保存在/test_code/cartoonized_images 中
訓練:
將訓練數(shù)據(jù)放在/dataset 中的相應文件夾中
運行 pretrain.py,結果將保存在/pretrain 文件夾中
運行 train.py,結果將保存在/train_cartoon 文件夾中
從生產環(huán)境中清除代碼,并且未經測試
可能會有一些小問題,但應該很容易解決
可以在以下網址找到預訓練的 VGG_19模型:https://drive.google.com/file/d/1j0jDENjdwxCDb36meP6-u5xDBzmKBOjJ/view
數(shù)據(jù)集:
由于版權問題,無法提供用于訓練的卡通圖像,但是這些訓練數(shù)據(jù)集很容易準備
風景圖來自新海誠,宮崎駿和細田守拍攝的電影
將影片剪輯成幀,并隨機裁剪調整為256x256
人像圖像來自京都動畫和 PA Works
使用此倉庫(https://github.com/nagadomi/lbpcascade_animeface)檢測面部區(qū)域
手動清理數(shù)據(jù)將大大提高兩個數(shù)據(jù)集的質量
相關鏈接
cartoonize 的詳細介紹:https://www.oschina.net/p/cartoonize
cartoonize 的下載地址:https://github.com/experience-ml/cartoonize
往期推薦
???????



