視頻、圖片一鍵卡通化的開源工具!
點(diǎn)擊上方藍(lán)色“程序猿DD”,選擇“設(shè)為星標(biāo)”
回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

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

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

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

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

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



