不會編程也能做酷炫視頻風格遷移?這個工具沖上Reddit熱榜
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
這兩天,Reddit上一則關于視頻風格遷移的帖子火了,發布僅一天就沖上了機器學習社區的熱榜第一。
明艷、華麗的Demo引起了網友們驚嘆。
著名的恐怖片《閃靈》經過處理后,變得色彩明艷,有了漫畫風格:
而電影《低俗小說》,處理效果像極了天主教堂五彩繽紛的玻璃窗:
大家紛紛留言追問“是不是對CNN的層過濾器進行過修改”?
但樓主卻說「我不是程序員,也不清楚CNN是什么東西…….」
這就有點不可思議了,一個沒接觸過機器學習的小白,是怎么做到效果這么好的視頻風格遷移呢?
「一鍵式」視頻風格遷移工具
Reedit熱帖的樓主,是一位純藝術從業者,沒學過計算機和編程。
但是他卻卻借助一款「一鍵式」的傻瓜工具,輕松完成了視頻風格遷移。
這款工具名叫Deep Dream Generator。
熟悉圖像風格遷移的讀者可能對Deep Dream很熟悉,早在2015年谷歌就公布了這個軟件。
最早Deep Dream是為2014年ImageNet視覺識別挑戰賽而開發的,主要的目的也是識別圖像中的人臉和其他目標。
但是隨后有人發現,經過訓練的Deep Dream能夠反向運行,將給定圖片的像素特征整合到目標中。
隨后,Deep Dream開始在藝術創作圈流行,由它生成的風格遷移圖像頗具夢幻色彩,所以被叫做「Deep Dream」。
而制作這個工具的團隊將Deep Dream做成了簡單易上手,不需要任何計算機知識,能夠直接在網頁使用的版本。
使用很簡單,只需要上傳目標圖像和「風格」,一鍵點擊,就能生成。
生成的圖片效果完全由上傳的「風格」決定:
有了這工具,就算是既不懂藝術,也不懂編程的小白,也能批量生產藝術作品。
視頻風格遷移的兩種方法
盡管Deep Dream Generator官網上并沒有給出任何技術說明,但Deep Dream早已開源,并且風格遷移已經是深度神經網絡應用中輕車熟路的一個領域了。
一般常見的風格遷移遷移算法由兩種基本思路,一是優化法,第二種是在它之上優化而來的前饋法。
優化法
在這種方法中,其實并沒有使用真正意義上的神經網絡。
任務中并沒有訓練神經網絡來做任何事情。只是利用反向傳播的優勢來最小化兩個定義的損失值。
反向傳播到的張量是希望實現的圖像,從這里開始我們稱之為「復刻」。希望轉移其風格的藝術品,稱為風格圖像。而要將風格轉移到其中的圖片,稱為內容圖像。
「復刻」被初始化為隨機噪聲。然后與內容和風格圖像一起,通過一個預先訓練過的圖像分類網絡的幾個層。
算法使用各個中間層的輸出來計算兩種類型的損失:風格損失和內容損失。在風格上,「復刻」與風格圖像有多接近,在內容上就有有多接近。
△內容損失公式
然后通過直接改變「復刻」,將這些損失降到最低。
經過幾次迭代,「復刻」就能夠具備風格圖像的風格和內容圖像的內容。它是原始內容圖像的風格化版本。
前饋法
優化法的缺點是運算成本較高,處理時間也比較長。
那么有沒有好的方法能夠直接利用深度神經網絡的特性,減輕開發者的負擔呢?
前饋法的本質,是創建一個未經訓練的圖像轉換網絡,它的功能是將內容圖像轉換為對「復刻」的最佳猜測。
然后將圖像轉換網絡的輸出結果作為「復刻,與內容和風格圖像一起通過預訓練圖像分類網絡來計算內容和樣式損失。
最后,為了減少損失,需要將損失函數反向傳播到圖像轉換網絡的參數中,而不是直接到「復刻結果中。
任意風格遷移
雖然前饋法可以立即生成風格化的結果,但它只能對一個給定的風格圖像進行復刻。
是否可以訓練一個網絡可以接受任何風格圖像,并從這兩張圖像中產生一個風格化的結果呢?
換句話說,能不能做出一個真正任意的風格轉移網絡?
幾年前,有研究人員發現,圖像轉換網絡中的實例歸一化層是唯一重要的代表風格的層。
如果保持所有卷積參數不變,只學習新的實例正則化參數,就可以實現在一個網絡中表示完全不同的風格。
來自康奈爾大學的一個團隊首次將這個想法變成現實。他們的解決方案是使用自適應實例歸一化(Adaptive Instance Normalization),使用編碼器-解碼器架構從風格圖像中生成Instance Norm參數,取得了相當好的效果。
當然,以上介紹的這三種方法都要求一定的編程計算機基礎,但如果你只是想試玩Deep Dream Generator,可以直接點擊下方傳送門:
https://deepdreamgenerator.com/generator