曉查 發自 凹非寺
量子位 報道 | 公衆號 QbitAI
連手機都開始用上120幀的顯示屏,但是網上大部分的視頻居然還是30幀。
視頻的幀率已經遠遠趕不上人民群衆的需求了,所以有不少人都在研究如何把普通視頻變成高幀率視頻。
去年,英偉達開源了Super SloMo,從普通的視頻“腦補”出高幀率的畫面,從30fps插幀到240fps,即使放慢8倍也不會感到卡頓。
更重要的是,英偉達的Super SloMo只用在了真實拍攝的視頻上,而這項研究卻可以擴展到常見的任何類型視頻:電影、定格動畫、動漫卡通等等。
羽毛的擺動是不是變得更流暢自然了?
可以想象,如果未來把DAIN用于動漫的制作,只要用低幀的動畫就可以生成絲滑的效果,或許能大大減少插畫師的工作。
DAIN的代碼已經開源,甚至研究人員還打包了一份Windows安裝程序,即使沒有任何AI基礎的用戶也可以直接拿來用。
安裝
Windows系統的用戶有現成的exe文件安裝(地址見文末),不過現在仍處于Alpha階段,軟件可能存在一定的不穩定性。
其他平台的用戶安裝起來也不複雜。
首先確保你的PyTorch版本不低于1.0.0,將項目克隆到本地:
git clone https://github.com/baowenbo/DAIN.git
安裝PyTorch的各個擴展包:
cd DAINcd my_package./build.sh
還要安裝英偉達預測光流網絡PWCNet的軟件包:
cd ../PWCNet/correlation_package_pytorch1_0./build.sh
由于作者已經提供了預訓練模型,我們不必再花費大量精力去訓練。創建目錄model_weights,並且將預訓練模型的權重下載到相應的文件夾中:
cd model_weightswget http://vllab1.ucmerced.edu/~wenbobao/DAIN/best.pth
運行命令以下命令,就可以開始給視頻插幀啦!
CUDA_VISIBLE_DEVICES=0 python demo_MiddleBury_slowmotion.py —netName DAIN_slowmotion —time_step 0.25
—time_step之後的參數就是視頻的放慢倍數,0.25代表視頻幀率擴展爲原來的4倍。如果要生成8x和10x慢動作,參數就改成0.125和0.1,依此類推。
深度加光流,圖像更清晰
之前已經有很多給視頻插幀的算法,DAIN和它們有什麽不同呢?
DAIN的全稱是Depth-Aware Video Frame Interpolation,即深度感知視頻幀插值。
視頻幀插值的目的是在原始幀之間合成不存在的幀。但是由于大的物體運動或遮擋,插幀的質量通常會比較低。
上圖是DAIN的體系架構:給定兩個時刻的輸入幀,先估計光流和深度圖,然後使用建議的深度感知流投影層生成中間流。
然後,模型基于光流和局部插值內核對輸入幀、深度圖和上下文特征進行扭曲,合成輸出幀。
這種模型緊湊、高效且完全可微分。定量和定性的結果表明,DAIN在各種數據集上均優于最新的幀插值方法。
作者
這篇文章的第一作者Bao Wenbo,是上海交通大學電子信息與電氣工程學院的博士生。