只用C++和Python,让你的简笔画实时动起来!
讓蒙娜麗莎笑起來對AI來說已經不是什么新鮮事了。
試想,如果在畫紙上創作的圖像能夠實時地生成動畫,達芬奇可能會嚇個半死。
沒錯,文摘菌今天要給大家介紹的,就是捷克技術大學和Snap研究小組合作開發的一種全新的樣式轉換技術,在論文“使用基于少量補丁的培訓進行交互式視頻樣式化”中,他們提出,該技術將夠將某種繪畫風格的靜態圖像實時格轉換為動態動畫。
效果嘛還是自己看了才知道:
據了解,研究小組利用了深度學習,在將手寫樣式轉換為圖像或視頻的過程中,僅僅對樣式進行轉換,內容原型的創作風格絲毫不會受到影響。
同時,與此前的轉換方法相比而言,這項技術無需借助龐大的數據集,甚至無需進行預訓練,對關鍵幀進行的樣式設置就是訓練網絡的唯一數據來源。
20萬參數設置,每秒17幀進行風格轉換
整個實驗中,研究人員主要利用的編程語言是C++和Python。
對于選定的評估序列中的幀,研究人員計算了它們的樣式化,在有48個Nvidia Tesla V100 GPU環境下模擬3天后就完成了。
整個實驗總共抽查了大約200,000個不同設置的超參數(hyperparameters),并在以下區間內進行了對比實驗,Wp∈(12,188),Nb∈(5,1000),Nr∈(1,40),α∈(0.0002,0.0032),最終發現最佳的補丁大小(optimal patch size)為Wp=36。
下圖比較了不同超參數設置的視覺質量,其中超參數優化一個很有趣的結果是,在左邊的圖像中,一個批次的補丁Nb=40相對較少,這與選擇的基于補丁的訓練方案相互作用。雖然常見的策略是盡可能擴大Nb,以利用GPU能力,但在案例中,增加Nb實際上卻只會適得其反,因為它將訓練方案變成了全幀方案,往往會使網絡在關鍵幀上過度擬合。
中間的圖像即是最佳補丁大小Wp=36,較小的補丁可能無法提供足夠的上下文,較大的補丁可能會使網絡對目標對象的變形,從而使得網絡對目標對象的變形引起的外觀變化的抵抗力較差。
但在右圖中,令人驚訝的是,ResNet區塊數Nr對質量沒有明顯影響,盡管有一個微妙的鞍點(saddle point),對學習率參數α進行實驗也能發現類似的效果。
在將所有的超參數優化后,研究人員發現,對于有效像素10%、分辨率640×640的視頻序列,可以以每秒17幀的速度進行風格轉換。
研究人員利用了一組分辨率從350×350到960×540的視頻序列對系統進行了評估,這些視頻包含不同的視覺內容,如人臉、人體等,以及不同的藝術風格,如油畫、粉筆畫等。
對于相對簡單的序列而言,僅使用一個關鍵幀就可以進行樣式轉換,更復雜的序列則需要使用多個關鍵幀。在訓練前,研究人員利用雙側時間濾波器(bilateral temporal filter)對目標序列進行了預濾波,當序列包含有不明確內容時,計算一個輔助輸入層利用到了隨機有色的高斯混合,以跟蹤目標序列中的運動。
在訓練階段,研究人員從所有關鍵幀k中隨機抽取掩碼Mk內的補丁,將它們分批反饋給網絡來計算丟失和反向傳播錯誤,隨后在Nvidia RTX 2080 GPU上進行訓練和推理。訓練時間與輸入補丁數量成正比,例如,對于包含掩碼內所有像素的512×512關鍵幀,訓練時間為5分鐘。訓練完成后,整個序列可以以大約每秒17幀的速度進行風格轉換。
實時樣式轉換如何煉成?
相關樣式轉換的技術早在2016年就有人想到了,當時,在一篇名為“使用卷積神經網絡進行圖像樣式轉換”的論文中,研究人員提出了一種結合了VGG與CNN的轉換技術,能夠做到把內容與樣式有效區分的同時,保留內容轉換樣式。
在這之后,出現了一些將該項技術推廣到電影或視頻領域的應用,其中找到分離圖像內容和樣式的損失函數是關鍵。
2019年,有研究人員提出了一種機制更改視頻的一個關鍵幀,并將其傳輸到另一個序列(整個視頻)中的方法,這種基于補丁的輸出能夠得到高質量的結果輸出。
不過,這些轉換技術仍然只能針對連續視頻進行樣式轉換,也就是說,它們不支持隨機訪問、并行處理和實時交互,而這些正是能夠實時轉換圖像的技術核心。
為了實現實時樣式轉換,研究人員在進行系統設計時對之前的研究進行了一定程度的參考,比如在設計濾波器時,他們采用了一種基于U-net的圖像到圖像轉換框架,這種自定義網絡架構能夠保留原始風格范例的重要高頻細節。
但是在訓練過程中,他們發現系統產生的結果質量無法達到標準,這是因為原始網絡是基于FaceStyle算法產生的大量風格樣本數據集訓練,這導致該方法在很多場景下不可使用。同時,原始方法沒有考慮到時間的連貫性,生成的序列也包含了明顯的時間閃爍。
為此,研究人員改變了網絡的訓練方式,并提出了一個優化問題,允許對網絡的結構和超參數進行微調,以獲得與當前最先進的風格化質量相媲美的風格化質量,這樣的話,即使只有少量的訓練樣本也可實現目的,而且訓練時間較短。
當然,除了濾波器設計之外,要實現實時樣式的轉換,研究團隊還做出了不少創新,文摘菌在這里就不過多劇透了,想要了解更多細節的小伙伴們快去原文挖寶吧~
總結
以上是生活随笔為你收集整理的只用C++和Python,让你的简笔画实时动起来!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《趁早》原版歌词 《趁早》谁唱的?
- 下一篇: 素炒花菜怎么做好吃啊?