「論文筆記」用於在線視頻理解的高效卷積網路
在保證分類效果的前提下,提高網路的運行速度是當前一個很重要的研究課題。
AI 科技評論按:本文為上海交通大學林天威為 AI 科技評論撰寫的獨家稿件,未經AI科技評論許可不得轉載。
視頻理解演算法有很多的應用場景,包括視頻推薦、監控分析、人機交互等等。在這些真實的應用場景中,通常對演算法的實時性有很高的要求。現有的行為識別方法還未能在分類的準確性和運行速度都達到比較好的效果(雙流類的方法效果較好,但光流等步驟使得速度很受限;3D 網路類的方法目前的精度和速度也都還不夠理想)。所以在保證分類效果的前提下,提高網路的運行速度是當前一個很重要的研究課題。
針對這個問題,這篇論文筆記主要介紹近期放到 arXiv 上(應該是 ECCV-2018 的投稿文章),來自弗萊堡大學 Thomas Brox 教授實驗室的一篇文章「 ECO: Efficient Convolutional Network for Online Video Understanding 」 [1],演算法的代碼預期開源在 mzolfaghari/ECO-efficient-video-understanding 。ECO 網路僅採用 RGB 圖像輸入,其基本思路為:對視頻均勻採樣得到 N 幀圖像,對這些圖像使用共享的 2D CNN 網路獲得一個 2D feature map,再堆疊這些 feature map,用一個 3D CNN 網路得到最後的分類結果。在獲得了相近的性能的前提下,ECO 網路比 SOTA 方法要快 10-80 倍。需要注意的是,雖然這篇文章的標題是 online video understanding,但其主要還是在設計一個足夠快且好的 action recognition 方法(足夠快且好所以就可以用於 online 場景啦)。下面開始介紹文章內容,如有不足煩請指正。
Motivation
這篇文章在 introduction 部分主要提出了兩點 motivation:
使用單幀的圖像,在很多情況下已經可以獲得一個不錯的初始分類結果了,而相鄰幀間的很多信息都是冗餘的。因此,ECO 中在一個時序鄰域內僅使用單幀圖像。
為了獲得長時程的圖像幀間的上下文關係,僅僅使用簡單的分數融合(aggregation) 是不足夠的。因此,ECO 中對較遠幀之間採取對 feature map 進行 3D 卷積的方式進行 end-2-end 的融合。
相關工作
可以看出,ECO 的 motivation 還是非常簡單直接的,在此基礎上設計出來網路也不複雜。那麼ECO和之前的行為識別方法有什麼區別呢,作者在相關工作一節進行了討論。
大部分 2stream 類方法和所有 3D 卷積類型方法 都是在學習短時程的時序信息,即輸入一個連續的 video clip,輸出一個分類結果。在 video-level 上,通常是對 video 中選取多個 clip 分別得到分類結果,再進行平均得到最後的分類結果,這樣會帶來較大的計算開銷。
一些方法(比如去年 deepmind 的 i3d [2] ) 選擇增大輸入 clip 的時序長度來獲得更長時程的信息,但這樣一方面會帶來計算開銷的提高,另外一方面則還是不能處理較長的視頻。
一些方法[3][4]採用編碼方法來獲得 video-level 的表示,但作者表示這樣忽略了幀間的信息。
與 ECO 最相似的是目前被廣泛使用的 TSN [5]網路:
ECO 和 TSN 的相似點:兩者都是從 video 中均勻採樣固定數量的視頻幀,從而來覆蓋長時程的時序結構。兩者都是end-to-end訓練的。
ECO 和 TSN 的不同點:TSN 中直接用 late-fusion 的方式對每個 segment 的結果做融合,而 ECO 中則是進行了 feature map 層面的融合(文中除了 3D 卷積,也採用了 2D 卷積)。此外 ECO 的速度要遠快於 TSN。
模型結構
網路結構
ECO 網路的基本結構如上圖所示,S1-SN 是從視頻中採樣得到的 N 個 RGB 的 segment。
對於每個 segment,採用共享的 2D 卷積子網路來得到 96 個 28*28 大小的 feature map,堆疊後得到一個 N*28*28*96 大小的特徵 volume。此處使用的是 BN-Inception 網路中的第一部分(到 inception-3c 層前)。
對於得到的特徵 volume,採用一個 3D 子網路進行處理,直接輸出對應動作類別數目的一維向量。此處採用了 3D-Resnet18 [6]中的部分層。
如上的兩部分,就構建了這篇文章中構建的第一種網路結果 ECO-Lite。除了用 3D 卷積進行融合,還可以同時使用2D卷積,如下圖所示,即為 ECO-Full 網路結構。此處多的一個 2D 網路分支採用的是 BN-Inception 網路中 inception-4a 到最後一個 pooling 層間的部分,最後再採用average-pooling得到video-level的表示,與3D net的結果 concat 後再得到最後的action分類結果。
採樣策略
介紹完網路結構後,再回過頭來介紹一下視頻幀的採樣方法。在 ECO 中,作者先將一個視頻等分為 N 份,再在每份中隨機選取一幀作為輸入。作者認為這樣的隨機採樣策略可以在訓練中引入更多的多樣性,並提高泛化能力。
測試
在 TSN 或是 ARTNet 等方法中,測試時通常都會對每段視頻進行多次的 cropping 採樣以及水平翻轉等數據增強,從而增強測試的效果。這使得計算的效率較低,從而難以用於實時場景。
與之相反,ECO 中對於一個視頻,只需要計算一次前向就可以獲得很好的效果,而不需要進行任何額外的融合或是增強,在效率上面有更好的保證。
在線視頻理解
在介紹完網路結構後,作者介紹了在線視頻理解這一問題以及將 ECO 應用在這個問題上的方法。在一般情況(offline)下,我們是獲得了一整段視頻後再做分析處理的。而在 online 情況下,視頻是以視頻流的形式呈現的,即我們只能獲得當前時刻過去的視頻。對於這個場景,一般的做法是將當前時刻之前的 N 幀作為一個窗口,輸入網路來判斷結果。作者認為這樣主要有兩個缺陷:一是這樣會造成長程語義的缺失,二則是可能造成較長的 delay。
因此,作者基於 ECO 提出了以下的 online 處理框架。這個框架中主要維護了兩個圖像組,分別是存放較舊圖像的工作記憶組和存放新的未處理圖像的新收圖像組。每次預測時,從兩組視頻中各採樣一半來更新工作記憶組,並將其作為網路的輸入得到當前的預測結果,將當前的預測結果和平均預測結果進行平均後得到最終的輸出。這個框架在工作記憶組和平均輸出兩個層面保存了較長時程的信息,但同時依舊是以當前的圖像為主。可以說是設計的很精巧的一個框架了。
下圖則可視化的展現了這個過程。
實驗內容
ECO 在實驗中的表現也非常出色,下面選取一些實驗內容進行介紹。
基準數據集比較
首先是在行為分類的兩個常用數據集上進行比較,此處限定了只使用 RGB 圖像。可以看出 ECO 在用 Kinetics 預訓練的前提下,獲得了最好的效果。此外在 Kinetics 和 Something-Something 數據集上,ECO 也獲得了很好的效果。
速度-精度比較
ECO 的一個主要賣點就是速度快,上表就展示了 ECO 和其他方法的速度/精度性能比較(基於單卡 Tesla P100)。ECO 的右下標表示的是 ECO 的輸入幀數 N。可以看出,在獲得相近精度的前提下,ECO 的速度要遠遠快於現有方法。需要注意的是,此處作者使用的是 VPS,即每秒處理的視頻數量。很多方法為了獲得 video-level 的結果,對於每個視頻需要進行多次 inference,而 ECO 只需要進行一次。下圖則可視化地展示了速度-精度的效果,ECO 的優勢還是很大的。
在線視頻理解
在線視頻分類問題通常以 early action recognition 的形式來評估。如上圖所示,橫軸顯示的是可以看到的視頻的前百分之幾,縱軸則是對應的精度。基於上圖的在 J-HMDB 數據集上的實驗,可以看出 ECO 在精度上有明顯的優勢,並且只需要很小一部分視頻就可以達到不錯的精度。
視頻描述生成
為了展現 ECO 可以被廣泛應用於視頻理解領域,作者還用 ECO 提取的特徵在 video captioning 任務上做了實驗(在 MSVD 數據集上)。將 SOTA 方法(即表中的 SCN)的特徵換為 ECO,立馬獲得了非常顯著的效果提升,這也表明了 ECO 的有效性。
論文小結
下面寫一些自己的看法。寫了這麼多,其實 ECO 的核心點其實就是兩塊:一是與 TSN 方法類似的視頻幀採樣方法,二是用 3D 卷積來做融合,這點實際上在幾年前的一篇 two-stream 網路文章[7]中就採用過(不過[7]中是用於 video clip 內的融合)。所以這篇工作可以說是 直觀的 motivation + 簡單有效的框架設計 相結合的一篇精彩的工作。優秀的效果同時也離不開沒有寫出來的大量網路設計方面的工作(從網路結構看,參數量和計算量應該都比較小,不是很深的網路)。文章的寫作和繪圖等方面也蠻值得自己學習。
ECO 在速度/精度上的良好性能(並且只需要 RGB 圖像)應該會使得它之後獲得廣泛的應用,就像之前的 TSN 和 C3D 一樣。期待作者能儘快開源了。
參考文獻:
[1] Zolfaghari M, Singh K, Brox T. ECO: Efficient Convolutional Network for Online Video Understanding[J]. arXiv preprint arXiv:1804.09066, 2018.
[2] Carreira J, Zisserman A. Quo vadis, action recognition? a new model and the kinetics dataset[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2017: 4724-4733.
[3] Xu Z, Yang Y, Hauptmann A G. A discriminative CNN video representation for event detection[C]//Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference on. IEEE, 2015: 1798-1807.
[4] Qiu Z, Yao T, Mei T. Deep quantization: Encoding convolutional activations with deep generative model[C]//CVPR. 2017, 1(3): 4.
[5] Wang L, Xiong Y, Wang Z, et al. Temporal Segment Networks for Action Recognition in Videos[J]. arXiv preprint arXiv:1705.02953, 2017.
[6] Tran D, Ray J, Shou Z, et al. Convnet architecture search for spatiotemporal feature learning[J]. arXiv preprint arXiv:1708.05038, 2017.
[7] Feichtenhofer C, Pinz A, Zisserman A P. Convolutional two-stream network fusion for video action recognition[J]. 2016.
對了,我們招人了,了解一下?
BAT資深演算法工程師獨家研發課程
最貼近生活與工作的好玩實操項目
班級管理助學搭配專業的助教答疑
學以致用拿offer,學完即推薦就業
※比TensorFlow雲快46倍!IBM用Snap ML和Tesla V100秀肌肉
※優必選悉尼AI研究院AAAI 2018頂會論文一覽
TAG:AI科技評論 |