CVPR2021| TimeSformer-視頻理解的時空注意模型


前言:

transformer在視頻理解方向的應用主要有如下幾種實現方式:Joint Space-Time Attention,Sparse Local Global Attention 和Axial Attention。這幾種方式的共同點是采用ViT中的方式將圖像進行分塊,而它們之間的區別在於如何用self attention來處理這些塊。

在本文提出了一種新的處理方式--Divided Space-Time Attention,在大規模行為分類數據集上,通過對以上幾種方式與Divided Space-Time Attention的評估,作者發現使用Divided attention的方式是用於處理這些塊的最好設計。

TimeSformer在幾個主流的行為識別benchmarks上實現了SOTA結果,包括在Kinetics-400和Kinetics-600上取得最高准確度。此外,TimeSformer對比與其它模型訓練速度更快,且有更高的測試效率。

 

論文:Is Space-Time Attention All You Need for Video Understanding?

代碼:https://github.com/lucidrains/TimeSformer-pytorch

代碼尚未完全開源,但模型已經放出來了。代碼比較簡單。

 

論文思路

視頻理解與NLP有很多的相似的地方。首先,視頻和語句都具有序列性;而且,一個字只能與語句中其它字聯系才能理解,在視頻行為中一個片段也需要與視頻的上下文相關聯。於是,我們期望NLP中這種long-range self-attention模型可以在視頻模型中也有很高的表現。

在視頻領域,2D或3D卷積是用來提取時空特征的主流操作,但卷積操作比較明顯的一個問題是感受野是有限的,若要獲得全局感受野,需要堆疊很多層卷積層,它們的信息傳播路徑比較長。而self-attention這種操作可以很輕松地獲得全局感受野,捕獲局部和長范圍的依賴關系。

卷積操作的另一個問題是受到內存的限制,特別是視頻領域,往往需要在高分辨率和長范圍幀之間權衡。而最近幾年一些研究者的工作指出Transformer可以比CNN獲得更快的訓練和推理,因此在同樣計算量預算下,transformer可以使用更大學習容量。

標准的self-attention需要計算所有tokens相互之間的相似性,這樣的做法就是計算量比較大,因此需要考慮如何利用self-attention來處理圖像塊。論文比較了這方面的幾種處理方式,提出Divided attention的方式具有最好的表現。

在本文將主要介紹這幾種方式。

 

一些細節

圖片

這幾種方式的通用部分是將視頻幀分成大小為PxP的塊,每一幀可以分成N=HW/(P*P)塊。

它們的區別就是以什么樣的方式來選擇哪些塊放一起進行self-attention。

Space Attention是只對同一幀的所有塊放一起進行self-attention。這種方式明顯沒有考慮不同幀之間的時序信息。

Joint Space-Time Attention是將圖像的所有塊都進行self-attention,這種方式最明顯的問題是計算量太大。

Sparse Local Global Attention分為兩步,選擇局部區域的塊進行self-attention提取局部信息,按一定的步長選擇塊進行self-attention提取全局信息,這種方式具有一定的稀疏性,特點就是計算量減少。

Axial Attention是分為三步,先對不同幀同位置的塊進行time attention,再按橫向和縱向分別選擇同一幀中同一橫和同一豎的塊進行space attention。

本文提出的Divided Space-Time Attention分為兩步,先對不同幀同位置的塊進行time attention,再將同一幀中所有塊進行space attention。

具體的示意圖如下。

 

圖片

實驗結論

圖片

 

這幾種方式的參數量和准確度的對比。

 

本文來源於公眾號CV技術指南的論文分享系列,更多內容請掃描文末二維碼關注公眾號。

最近把公眾號(CV技術指南)所有的技術總結打包成了一個pdf,在公眾號中回復關鍵字“技術總結”可獲取。

圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM