python简笔画大全_只用C++和Python,让你的简笔画实时动起来!
原標(biāo)題:只用C++和Python,讓你的簡筆畫實(shí)時動起來!
大數(shù)據(jù)文摘出品
作者:劉俊寰
讓蒙娜麗莎笑起來對AI來說已經(jīng)不是什么新鮮事了。
試想,如果在畫紙上創(chuàng)作的圖像能夠?qū)崟r地生成動畫,達(dá)芬奇可能會嚇個半死。
沒錯,文摘菌今天要給大家介紹的,就是捷克技術(shù)大學(xué)和Snap研究小組合作開發(fā)的一種全新的樣式轉(zhuǎn)換技術(shù),在論文“使用基于少量補(bǔ)丁的培訓(xùn)進(jìn)行交互式視頻樣式化”中,他們提出,該技術(shù)將夠 將某種繪畫風(fēng)格的靜態(tài)圖像實(shí)時格轉(zhuǎn)換為動態(tài)動畫。
效果嘛還是自己看了才知道:
據(jù)了解,研究小組利用了 深度學(xué)習(xí),在將手寫樣式轉(zhuǎn)換為圖像或視頻的過程中, 僅僅對樣式進(jìn)行轉(zhuǎn)換,內(nèi)容原型的創(chuàng)作風(fēng)格絲毫不會受到影響。
同時,與此前的轉(zhuǎn)換方法相比而言,這項(xiàng)技術(shù) 無需借助龐大的數(shù)據(jù)集,甚至無需進(jìn)行預(yù)訓(xùn)練,對關(guān)鍵幀進(jìn)行的樣式設(shè)置就是訓(xùn)練網(wǎng)絡(luò)的唯一數(shù)據(jù)來源。
20萬參數(shù)設(shè)置,每秒17幀進(jìn)行風(fēng)格轉(zhuǎn)換
整個實(shí)驗(yàn)中,研究人員主要利用的編程語言是 C++和Python。
對于選定的評估序列中的幀,研究人員計(jì)算了它們的樣式化,在有48個Nvidia Tesla V100 GPU環(huán)境下模擬3天后就完成了。
整個實(shí)驗(yàn)總共 抽查了大約200,000個不同設(shè)置的超參數(shù)(hyperparameters),并在以下區(qū)間內(nèi)進(jìn)行了對比實(shí)驗(yàn),Wp∈(12,188),Nb∈(5,1000),Nr∈(1,40),α∈(0.0002,0.0032),最終發(fā)現(xiàn) 最佳的補(bǔ)丁大小(optimal patch size)為Wp=36。
下圖比較了不同超參數(shù)設(shè)置的視覺質(zhì)量,其中超參數(shù)優(yōu)化一個很有趣的結(jié)果是,在左邊的圖像中,一個批次的補(bǔ)丁Nb=40相對較少,這與選擇的基于補(bǔ)丁的訓(xùn)練方案相互作用。雖然常見的策略是盡可能擴(kuò)大Nb,以利用GPU能力,但在案例中,增加Nb實(shí)際上卻只會適得其反,因?yàn)樗鼘⒂?xùn)練方案變成了全幀方案,往往會使網(wǎng)絡(luò)在關(guān)鍵幀上過度擬合。
中間的圖像即是最佳補(bǔ)丁大小Wp=36,較小的補(bǔ)丁可能無法提供足夠的上下文,較大的補(bǔ)丁可能會使網(wǎng)絡(luò)對目標(biāo)對象的變形,從而使得網(wǎng)絡(luò)對目標(biāo)對象的變形引起的外觀變化的抵抗力較差。
但在右圖中,令人驚訝的是,ResNet區(qū)塊數(shù)Nr對質(zhì)量沒有明顯影響,盡管有一個微妙的鞍點(diǎn)(saddle point),對學(xué)習(xí)率參數(shù)α進(jìn)行實(shí)驗(yàn)也能發(fā)現(xiàn)類似的效果。
在將所有的超參數(shù)優(yōu)化后,研究人員發(fā)現(xiàn),對于有效像素10%、分辨率640×640的視頻序列,可以 以每秒17幀的速度進(jìn)行風(fēng)格轉(zhuǎn)換。
研究人員利用了一組分辨率從350×350到960×540的視頻序列對系統(tǒng)進(jìn)行了評估,這些視頻包含不同的視覺內(nèi)容,如人臉、人體等,以及不同的藝術(shù)風(fēng)格,如油畫、粉筆畫等。
對于相對簡單的序列而言,僅使用一個關(guān)鍵幀就可以進(jìn)行樣式轉(zhuǎn)換,更復(fù)雜的序列則需要使用多個關(guān)鍵幀。在訓(xùn)練前,研究人員利用雙側(cè)時間濾波器(bilateral temporal filter)對目標(biāo)序列進(jìn)行了預(yù)濾波,當(dāng)序列包含有不明確內(nèi)容時,計(jì)算一個輔助輸入層利用到了隨機(jī)有色的高斯混合,以跟蹤目標(biāo)序列中的運(yùn)動。
在訓(xùn)練階段,研究人員從所有關(guān)鍵幀k中隨機(jī)抽取掩碼Mk內(nèi)的補(bǔ)丁,將它們分批反饋給網(wǎng)絡(luò)來計(jì)算丟失和反向傳播錯誤,隨后在Nvidia RTX 2080 GPU上進(jìn)行訓(xùn)練和推理。訓(xùn)練時間與輸入補(bǔ)丁數(shù)量成正比,例如,對于包含掩碼內(nèi)所有像素的512×512關(guān)鍵幀,訓(xùn)練時間為5分鐘。訓(xùn)練完成后,整個序列可以以大約每秒17幀的速度進(jìn)行風(fēng)格轉(zhuǎn)換。
實(shí)時樣式轉(zhuǎn)換如何煉成?
相關(guān)樣式轉(zhuǎn)換的技術(shù)早在2016年就有人想到了,當(dāng)時,在一篇名為“使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像樣式轉(zhuǎn)換”的論文中,研究人員提出了一種 結(jié)合了VGG與CNN的轉(zhuǎn)換技術(shù),能夠做到把內(nèi)容與樣式有效區(qū)分的同時,保留內(nèi)容轉(zhuǎn)換樣式。
在這之后,出現(xiàn)了一些將該項(xiàng)技術(shù)推廣到電影或視頻領(lǐng)域的應(yīng)用,其中 找到分離圖像內(nèi)容和樣式的損失函數(shù)是關(guān)鍵。
2019年,有研究人員提出了一種機(jī)制更改視頻的一個關(guān)鍵幀,并將其傳輸?shù)搅硪粋€序列(整個視頻)中的方法,這種基于補(bǔ)丁的輸出能夠得到高質(zhì)量的結(jié)果輸出。
不過,這些轉(zhuǎn)換技術(shù)仍然只能針對連續(xù)視頻進(jìn)行樣式轉(zhuǎn)換,也就是說,它們不支持 隨機(jī)訪問、并行處理和實(shí)時交互,而這些正是能夠?qū)崟r轉(zhuǎn)換圖像的技術(shù)核心。
為了實(shí)現(xiàn)實(shí)時樣式轉(zhuǎn)換,研究人員在進(jìn)行系統(tǒng)設(shè)計(jì)時對之前的研究進(jìn)行了一定程度的參考,比如在設(shè)計(jì)濾波器時,他們采用了一種基于U-net的圖像到圖像轉(zhuǎn)換框架,這種自定義網(wǎng)絡(luò)架構(gòu)能夠保留原始風(fēng)格范例的重要高頻細(xì)節(jié)。
但是在訓(xùn)練過程中,他們發(fā)現(xiàn)系統(tǒng)產(chǎn)生的結(jié)果質(zhì)量無法達(dá)到標(biāo)準(zhǔn),這是因?yàn)樵季W(wǎng)絡(luò)是基于FaceStyle算法產(chǎn)生的大量風(fēng)格樣本數(shù)據(jù)集訓(xùn)練,這導(dǎo)致該方法在很多場景下不可使用。同時,原始方法沒有考慮到時間的連貫性,生成的序列也包含了明顯的時間閃爍。
為此,研究人員改變了網(wǎng)絡(luò)的訓(xùn)練方式,并提出了一個優(yōu)化問題,允許對網(wǎng)絡(luò)的結(jié)構(gòu)和超參數(shù)進(jìn)行微調(diào),以獲得與當(dāng)前最先進(jìn)的風(fēng)格化質(zhì)量相媲美的風(fēng)格化質(zhì)量,這樣的話,即使只有少量的訓(xùn)練樣本也可實(shí)現(xiàn)目的,而且訓(xùn)練時間較短。
當(dāng)然,除了濾波器設(shè)計(jì)之外,要實(shí)現(xiàn)實(shí)時樣式的轉(zhuǎn)換,研究團(tuán)隊(duì)還做出了不少創(chuàng)新,文摘菌在這里就不過多劇透了,想要了解更多細(xì)節(jié)的小伙伴們快去原文挖寶吧~
論文鏈接:
https://ondrejtexler.github.io/res/Texler20-SIG_patch-based_training_main.pdf
提供300分鐘視頻講解,教學(xué)大綱、課件、教案、習(xí)題答案、程序源碼等配套資源。
掃碼,優(yōu)惠購書
凡是在京東購書的用戶,可以將訂單信息和評價發(fā)到itbook8@163.com,將會獲取超值大禮包(包括案例源碼,超多的視頻教程,數(shù)據(jù)集等資源)返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的python简笔画大全_只用C++和Python,让你的简笔画实时动起来!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 托福写作字数要求
- 下一篇: s3cmd 安装使用指南