只給AI兩張圖片,就能得到高幀率動態視訊?
輸入的兩張圖像,重疊后是這樣的:
而算出來的視訊,是醬嬸的:
不錯,這又是視訊插幀算法的功勞,
極限操作玩得6,讓老電影變絲滑的常規手法,這個名叫RIFE的AI算法同樣信手拈來。
右邊這支經典探戈,看上去是不是比左邊絲滑多了?
不僅是老電影,飛行表演的精彩瞬間,也能一口氣從每秒24幀提升到每秒96幀,
這項新研究,來自曠視和北大。不僅能讓老影像資料追上人民群眾對高幀率的需求,支持2X/4X/8X高質量插值,它還有一個最大的特點:快,
量子位在Colab上用T4跑了一遍Demo,一個時長53秒的720p 25fps視訊,插值到100fps僅用了2分19秒。
該項目現已開源,并且有官方Demo、第三方Windows應用可以試玩。
看過了RIFE的表現,網友們不由驚嘆,這是要超越那只經常在各種修復視訊里出現的插幀AI DAIN,引領一波新潮流的節奏啊?
一時之間,RIFE在Reddit上的熱度飆升到了2.8k。
那么,這樣的效果究竟是怎么實現的呢?
從雙向估計,到一步預測中間幀
視訊插幀,通常是用光流預測算法來預測中間幀,并插入兩幀之間。光流,就像光的流動一樣,是一種通過顏色來表示圖像中目標移動方向的方式,
△稀疏光流與稠密光流
傳統光流預測算法,通常根據前后兩幀視訊來預測中間的某一幀長啥樣。
將預測完成的圖像插進去后,視訊看起來就會變得更絲滑。
以DAIN的算法為例,如果要預測t時刻的幀,就需要t時刻的前后兩幀視訊,通過光流預測算法來實現,
△DAIN的算法圖
但是這一類的算法會產生一個缺點:在預測過程中,如果用前后兩幀圖像產生雙向光流,用線性組合來估計中間流,預測出來的結果,在運動邊界區域就會出現偽影,
這樣的偽影,使得重建中間幀圖像的效果不盡人意,
那么,如果換一種思路,直接先預測中間流呢?
相比于利用前一幀和后一幀進行兩次估計,這里的IFNET (a Specialized and Efficient Intermediate Flow Network)算法,將直接采用線性運動假設,對中間幀進行一次估計。
效果也顯而易見,相比于利用前后兩幀的雙向估計所產生的光流,利用IFNET估計出的光流效果非常清晰,而且幾乎沒有偽影。
利用這種方式重建圖像,不僅光流邊緣看得清楚,而且速度也更快。
論文提到,RIFE是首個基于光流的實時視訊插幀方案,
由于中間幀預測,直接假設了前后兩幀的變換是線性的,相當于每幀預測中直接少了一次估計。
那么,這個模型,究竟將插幀算法提升到了怎么樣的水平?
運行速度遠超其他方法
前文已經提到,RIFE最亮眼的一點是快,
研究人員在UCF101、Vimeo90K、Middlebury OTHER set和HD benchmarks等基準上,將RIFE與英偉達的SoftSplat、上交大的DAIN等「前輩」進行了對比。
用來測試運行時間的是一個640 x 480的視訊,使用的GPU型號是NVIDIA TITAN X(Pascal),
從結果可以看出,在性能相當的情況下,RIFE基礎模型的運行速度超過了所有對比方法,
而模型的大版本RIFE-Large,在性能超越SOTA方法SoftSplat的情況下,運行速度快出了30%。
另外,研究人員基于Vimeo90K測試集,提供了可視化的對比結果。
可以看到綠框部分,SepConv-L1和DAIN產生了偽影,而CAIN鏟子部分則出現了缺失,相對而言,RIFE生成的結果更為可靠。
安裝包和colab都有,試玩無憂
效果這么美麗的模型,應該怎么使用?
目前作者們已經給出了預訓練模型的幾種用法,從GitHub項目中可以直接下載網盤版的壓縮包。
無論是用作者提供的demo、還是用你自己想要進行插幀的樣本,都可以上手試玩,
當然,模型也有colab版本,可以直接在云服務器上玩模型,
而且,已經有玩家做出了Windows版的軟體,可以直接下載下來使用。界面看起來還挺簡潔:
模型RIFE的出現,已經讓一些游戲愛好者狂熱了起來:
你們能想象嗎,就算是已經吃灰很久的PS2,也可以達到4k游戲的水平效果了!利用這種算法,3步就能搞定!
不過,也有網友表示了對這種算法的擔憂,
雖然這種算法速度快、性能高,但實際上存在一個問題:
這種算法,本質上無法聯想到丟失的幀間資訊,所以無法用在安防視訊上,
對于這些方面的應用,未來還需要進一步考慮。