視頻理解論文雜讀

圖片到視頻肯定是科研發展的方向,可惜需要的資源太多,主要關注動作識別方向

未完成,主要給自己看

[201905-arxiv] Unsupervised Learning from Video with Deep Neural Embeddings

Self-supervised Learning for Video Correspondence Flow

[2019-arxiv]DistInit: Learning Video Representations without a Single Labeled Video

[2018-IJCAI] Watching a small portion could be as good as watching all: Towards efficient video classification

[201811-arxiv] AdaFrame: Adaptive Frame Selection for Fast Video Recognition

[201809-arxiv-競賽報告]Non-local NetVLAD Encoding for Video Classification

Evolving Space-Time Neural Architectures for Videos

Long-Term Feature Banks for Detailed Video Understanding

 

[2018-AAAI]Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action [paper](有GCN,有代碼,重點學習)

[2019-arxiv]DistInit: Learning Video Representations without a Single Labeled Video

第一眼看到題目以爲是做視頻分類的時候不用label,看了論文才知道理解錯了。很簡單的思路

 

[201905-arxiv] Unsupervised Learning from Video with Deep Neural Embeddings

 

[201906-arxiv]FASTER Recurrent Networks for Video Classification [paper]

FASTER for Feature Aggregation for Spatio-TEmporal Redundancy, by focusing on the temporal aggregation stage.

出發點非常清新,解決的問題也比較重要. 我一直不太喜歡之前或者現在主流的採樣方案,非常不智能,如下圖a部分。作者採用的思路有點類似於視頻的PI幀的味道,一些clip用大網絡,其餘用小網絡,各個clip用rnn連接。不過感覺這種設計也只能有實力的實驗室才能做的出來,這種架構放在我這裏顯存肯定爆了。

RNN部分主要採用conv替換FC,這個思路在很多前作中已經採用了

 

 [2019-CVPR]Learning Spatio-Temporal Representation with Local and Global Diffusion[paper]

下圖是框架圖

下圖是LGD網絡圖

bilinear kernel,看過又忘了,在caption裏面也有用到

其實更好奇的是爲什麼2d的增長比3d要低。因爲按照TSN的取法,各幀的關係基本是沒有提取的,通過global的path可以得到這個信息,感覺帶來的效用會更大些,而C3D如果學的比較好的話,GAP帶來的提升應該要小些。 從所以從這點看,現在的C3D有比較大的改進空間。另外一個猜測是TSN的取法對於名詞部分已經做的比較好了,動詞部分受限於採樣的問題,就算有LGD帶來的提升也有限。

 

[201904-arixv] Local Aggregation for Unsupervised Learning of Visual Embeddings[paper]

這個主要是圖片級別的非監督學習,但是上面那篇關於視頻的跟這篇強相關,所以也就放在這了。另外這塊很少看,因此主要記錄作者的思路,也有可能理解上有偏差。無監督深度學習由於沒有標註用來訓練,所以爲了訓練網絡,得找個訓練目標。作者提出了一種叫Local Aggregation的方法讓相似數據的embeeding特徵靠近,而讓差別比較大的數據特徵互相離得比較遠,以圖片分類爲例,就是讓同類別的圖片特徵距離較小,不同類別的距離交大,類似於聚類的標準。

具體的做法是數據通過cnn處理後會得到一個feature vector f,f經過歸一化後會在一個超球體內。對於一個特定的fi,可以找到兩個集合,一個集合叫B,這個可以通過對兩兩特徵做點積,角度最小的top k個點; 另外一個集合是C,這個可以通過kmeans對所有的f進行聚類,那麼fi的集合C就是跟f1聚到一類的所有feature. 那訓練的目標就是,如果某個feature是屬於fi 集合B的點,那麼我希望它也屬於fi的集合C。

記錄的只是一個非常淺的大意,論文裏還對這個loss做了一些解釋,還有計算上用memory bank等做了一些優化

 

[201905-arxiv]Design Light-Weight 3D Convolutional Networks for Video Recognition: Temporal Residual, Fully Separable Block, and Fast Algorithm[paper]

友情吐個槽,圖畫得好暈。

1 Temporal Residual 是個創新點,但是作者的解釋(the gradient between adjacent image frames indicates the motions of the objects)沒有任何東西支持。因爲現在對weight的理解都很差,更不要說梯度了,要支持作者的解釋,建議作者至少畫出 Temporal Residual讓讀者直觀感受下

2 Fully Separable Block 把C3D分解下,這一塊其實仁者見仁,智者見智,有很多分解的方法。不過個人的一點友好小建議是,因爲有很多論文都說了flops不能等價於速度,作者可以把速度信息報告出來,最近我就發現在pytorch裏面普通的kernel(3,1,1)的C3D要比其對應得depthwise的要快,之前不能想象。

3 Fast Algorithm,這個對於我是新知識,一直沒有關注底層怎麼對卷積進行加速,有機會得看參考文獻,暫時還沒看明白,Fast Fourier Transform,Fast FIR,WinoA

 

[2019-CVPR] TACNet: Transition-Aware Context Network for Spatio-Temporal Action Detection[paper]

跟普通的trimmed video 分類不一樣,action detection有點類似於物體檢測,用在視頻中定位出動作的位置,這裏的位置包括二維和時間軸的位置。 由於目前這類論文看的比較少,按照作者講的記錄下。在物體檢測裏一般有着框不是很準的情況,在action detection裏面也存在類似的情況,之前已經有工作統計了35-40%的錯誤來自於時間維度上的不準確。所以該工作主要的着力點主要解決時間軸上的精度。作者引入了一個transitional state,也就是過渡狀態,如下圖

當然數據庫不會提供這樣的標註,那作者就用了一個簡潔的方案動態的產生這樣的標註,後面會提到。

作者認爲本文的主要兩個創新點分別是temporal context detector 和transition-aware classifier。第一個主要去解決視頻理解的永恆話題,怎麼高效地利用視頻時間軸上的context,第二個就是去解決上面提到的引入了一個transitional state後的分類問題, 總體的框架如下, 從外行上去看整個框架還是過度複雜,論文只報告了高超的acuuracy,但沒有報告背後的速度,訓練代價等等

接下來簡要介紹這兩個模塊

1 temporal context detector

SSD + two-stream + conv_lstm,這些模塊都不是自創的,個人覺得比較incremental

2 transition-aware classifier

主要來看看這個模塊,最簡單的方法是用兩個head,一個head就是做普通的動作分類,一個是做是否是過渡狀態,但如果是這樣設計的話兩個分支有些互斥關係,如果這個是某一動作,那麼就不會是過渡狀態,反之亦然,作者的解釋是有耦合,我沒怎麼理解。所以作者用了信號處理常用的方式去做

we design a common and differential scheme to train our network, In particular, the proposed transition-aware classifier still outputs c+ and c-, but the difference is that we use c+ +c- to predict action category

(upper branch in Figure 3) and c+ - c- to predict action state

 

[201904-arxiv] Video Classification with Channel-Separated Convolutional Networks[paper]

很多工作都想把C3D分解成低flops的卷積組合。 作者引入了一個新的指標channel interaction,並用實驗證明了這個指標的重要性。根據於此,作者提出了一個新的residual的變體,見下圖b

 

[2019-CVPR-oral]Learning Video Representations from Correspondence Proposals [paper]

這個工作其實我個人的理解還是在non-local體系下,最大的不同之處在於non-local的embedding方式是根據當前點跟其他所有點的相似性得到一個similarity map然後進行embedding, 這個工作是把其他所有點改進成了K個點(利用feature的相似性得到topk的點)。其他的東西我覺得都不是重點。

 

[201904-arxiv]GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond [paper][code]

作者發現了在non-local network裏面得到的attention map跟query的點沒有太大關係,因此決定做成一個跟query點獨立的一個attention map. 個人比較好奇的是因爲在分割領域有個OCNet,也是主要利用non-local的思路,但是從這篇文章放出的幾幅圖來看利用non-local是可以學出比較合理的跟query點相關的attention map,當然它有像素級的標註,可以更好做些. 不管怎麼樣,更合理的一種思路應該是怎麼改進non-local network讓他能學習到這種query點相關的attention map

 

[201904-arxiv]SCSampler: Sampling Salient Clips from Video for Efficient Action Recognition [paper]

視頻裏面的採樣個人覺得是非常重要的。之前像k400這樣只有10秒左右的視頻,大部分的工作在測試的時候都是用兩三百張圖ensemble得到的(用clip的方式其實類似),非常低效。這個工作沒有像之前的採用RL在訓練的時候去考慮採樣的問題,而是在測試的時候去做採樣,具體點就是在已經訓練好一個分類模型的情況下,再訓練一個採樣模型,挑選一些合適的幀或者clip讓分類器去做ensemble.

這裏面作者考慮了三個選擇:

1) 再次訓練一個輕量級的分類模型,如果某個clip的分類置信度高,那麼就是一個顯著的clip.作者沒有選這個,因爲認爲這個跟已經訓練的分類模型有些獨立

2) 利用已經訓練的分類模型對每一個clip設置0或1僞標籤代表其顯著性,0或1還是看它的分類置信度,然後利用這個標籤再去訓練一個輕量級模型去學習這個顯著性

3) 利用rank loss學習這個採樣模型。

採樣模型得訓練的相對高效,論文裏參考的是Compressed Video Action Recognition

作者還同時採用了語音信號,最後視覺信號用的是第二種學習方式,語音信號用的第三種

 

[2019-CVPR] Selective Kernel Networks [paper][code]

這個工作其實沒有在video裏做實驗,不過是跟attention相關,也就放在這了,這篇論文的思路很簡單,就是加了多個kernel size的卷積,然後做個soft attention.Table 7的對比實驗也比較讓人信服

 

[2019-CVPR]Collaborative Spatio-temporal Feature Learning for Video Action Recognition [paper]

看論文的圖2就比較清楚了,個人覺得沒什麼物理意義,不過我的品位一直不好

 

[2019-CVPR]Efficient Video Classification Using Fewer Frames[paper]

沒有意想不到的東西

[2019-CVPR]COIN: A Large-scale Dataset for Comprehensive Instructional Video Analysis[paper]

新數據庫,教程類視頻

 

[2019-AAAI] StNet: Local and Global Spatial-Temporal Modeling for Action Recognition [paper]

取樣方式參考TSN,把視頻分成T個segments,不同之處在於每個segment取連續的N幀

Local:將數據轉成batch*T*3N*H*W,然後網絡的第一個卷積按照I3D的方式擴展下。這是一種比較取巧的方式了,但是個人覺得這個3N內部的聯繫比T上的應該更重要些

Global:利用C3D結合C2D的形式

另外在最後分類的時候設計了一個網絡

 

[2018-NIPS]Trajectory Convolution for Action Recognition [paper]

之前的工作會把3D卷積分解成空間上的2D卷積和時間軸上的1D卷積。在時間軸上做卷積的時候一個潛在的假設是,不同幀的特徵圖在同一個空間位置(x,y)的語義是一樣的。這是不合理的,因爲有些關鍵的物體或物體部件會運動。所以作者引入了deformable convolution network構造了所謂的軌跡網絡。有點意思的是作者又把dfn裏的offsets給提出了構造了另類的two-stream架構。下圖是框架圖,看起來有些費勁

 

[201809-arxiv] OCNet: Object Context Network for Scene Parsing [paper]

這篇文章的核心思路是用non-local那一套做分割,初略地看了下好像沒什麼特別大的變化。不過有點意思的是把位置信息也給加進來了,個人之前認爲完全放棄位置信息是non-local的一個顯然缺點。後面就是配合了分割的兩個主流模型PSP和deep lab的ASPP做了實驗。

 

[201812-arxiv]D3D: Distilled 3D Networks for Video Action Recognition[paper]

思路很簡單,就是希望以RGB輸入作爲D3D的特徵輸出與two stream裏以flow作爲輸入的輸出去match,具體採用的應該是L2 loss

論文猜測了爲什麼不直接用預測flow的loss去直接訓練網絡,一個原因可能是flow的loss可能會被背景像素的loss給dominate,直接去預測可能不太好訓練,而利用flow作爲輸入的網絡輸出來監督可能更好。

 

[201812-arxiv]SlowFast Networks for Video Recognition[paper]

估計是CVPR19年的投稿吧。16年有幸聽過凌海濱老師在公司的講座,那時候對於他們用在slam的一個快慢結合的模塊印象特別深,可惜悟性不高,沒有學習到精髓

 

[2018-NIPS] A2-Nets: Double Attention Networks[paper]

這篇論文個人很難理解作者對於圖1的解釋,但是如果按照non-local 或者compact non-local去理解,就會比較通順。

按照non-local的思路,作者的計算順序是(C1*THW)*(THW*C2) * (C2*THW)。當我們把後面的先乘,那麼就會發現跟non-local基本一樣的。只是作者採用了跟compact non-local一樣的計算順序以減少計算量。另外不同的地方是作者對(THW*C2)和(C2*THW)都做了softmax,以符合attention的假設。

不理解的地方還是作者對圖1的解釋,作者把(C1*THW)*(THW*C2)作爲一種全局描述子,但是自己能理解的是C1和C2之間的相關性。有待繼續理解

 

[2018-NIPS] Compact Generalized Non-local Network [paper] [code]

這個工作把non-local推廣到了c維度,這樣做主要是可以建模不同通道之間任意位置上的關係,但是問題也比較嚴重,由於模型中c一般都比較大,計算量大大增加,所以作者主要採用了兩種思路。第一種比較簡單,就是c分成g組,複雜度一下子降低g倍。另外,在計算(CTHW*1)*(1*CTHW)*(CTHW*1)時,如果按照正常的計算順序是O(CTHW*CTHW)+O(CTHW*CTHW),但是如果先計算後兩項,複雜度是O(CTHW)+O (CTHW). 另外如果是RBF的核,利用泰勒展開擬合。

 

[2018-NIPS] Gather-Excite: Exploiting Feature Context in Convolutional Neural Networks [paper][code]

看模型比論文容易理解, 跟SE同一個作者,思路也是一脈相承

 

[2018-CVPR] Squeeze-and-Excitation Networks [paper][code]

這篇論文雖然不是主要做video的,但是有些論文跟這個有些關係,因此也放進來了。主要是要在channel上做attention,每一個channel都會學習一個標量去scale原始的特徵,這個值跟這個通道上h*w的特徵有關,可以看成一種比較簡單的gather-exite形式。 只在channel上做了attention,並且global pooling這個操作建模的想象力不太夠。另外有個很大的疑問就是在resnet中 global pooling是放在bn之後的,bn會把feature均值置到0,那麼global pooling還有很大的意義嗎,當然還有個scale的bias在裏面。

 

[2018-CVPR] MiCT: Mixed 3D/2D Convolutional Tube for Human Action Recognition [paper]

 

[2018-CVPR] A Closer Look at Spatiotemporal Convolutions for Action Recognition [paper]

經驗: 底層捕捉temporal或者運動信息,高層捕捉空間信息

這個經驗有點反直覺,另外跟其他一些論文的做法也有矛盾的地方

論文本質上好像跟P3D沒啥區別,但是效果要比P3D好很多,原因在哪?(還未理解)

 

[2018-CVPR]Compressed Video Action Recognition [paper]

利用PI幀做動作識別

1 知識點 I幀是關鍵幀,P幀是類似於補償幀或變化幀,還有零個或多個b幀(雙向變化幀),最後還有個殘差幀

I-frames are regular images and compressed as such. P-frames reference the previous frames and encode only the ‘change’.

2 由於P幀有可能依賴於P幀,所以作者把變化全部累加起來,讓P幀只依賴於I幀

3 最後訓練一個模型

問題:如果一個視頻有多個I幀,那麼怎麼處理?

 

[2018-arxiv] Temporal Shift Module for Efficient Video Understanding [paper][code]

韓老師怎麼進軍視頻領域了, 這篇文章簡單有趣

 

[2018-ECCV] ECO: Efficient Convolutional Network for Online Video Understanding [paper][code]

這麼直觀的想法爲什麼到18年才被人發現,可能我錯過了一些細節。不過這裏N也是固定的,固定的N感覺還是有些遺憾的

 

[2018-CVPR] Non-local Neural Networks [paper][code]

 其實我對該論文的做法是抱保留態度的,雖然他的出發點我是十分贊同的。該工作主要是想利用空間和時間上全局的信息來輔助視頻或圖片上的理解任務,這個是很合理的出發點,所以像作者提到之前的global mean什麼的方法(雖然我沒看),或者是分割裏面比較新的論文Context Encoding for Semantic Segmentation加個全局分類損失,我都非常理解。但是作者採用是這麼一個策略,以圖片爲例,如果是傳統的方法,對於一個特徵圖,每個像素點的值都是卷積堆疊的結果,獲取的信息跟感受野有關,因此稱之爲local也是合理的。作者想爲每個點增加全局信息,採用的其實就是一個有權重的累加,計算的公式跟全局的卷積有點小類似,如下面的公式,x是特徵圖,i,j等就是座標,f是相似性的函數,g是一個轉化,比如1*1的卷積,學術上稱之爲embedding,

權重是兩個特徵值的相似性。兩個點的特徵越相似,那麼權重越大,如下面的公式。但是這樣就完全拋棄空間或時間的關係,這是很不合理的,如果兩個像素點的特徵相似但是隔的很遠,他們的關係會有那麼強麼?

 

接下來作者就把這個公式完美地用一個新的cnn building block實現了出來。首先需要定義上面的g和h. g論文裏就用1*1的卷積了,f是一個embeded guassian,如下圖,不難理解

最後就成了這樣,θ和φ就是f裏面的embedding,特徵用512維表示,減少計算,下圖最左邊的矩陣乘法就是上面公式3的右上部分,softmax把公式3的指數跟歸一化包辦了,還是比較優美的。

 

[201712-arxiv] On the Integration of Optical Flow and Action Recognition [paper]

這篇論文做了幾組對照試驗來探索到底是什麼原因使得光流能提高動作識別的性能。前兩組試驗還挺有意思的,shuffle flow性能降的不是特別多(是不是由於現在的數據庫時間很短,flow都類似),shuffle image性能降的特別多

 

[2017-ICCV] Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks [paper][code]

P3D

 

[2017-CVPR ] Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset  [paper][code]

I3D

 

[2016-ECCV] Temporal segment networks for action recognition in videos[paper]

看文章都不理解Consensus到底是個什麼函數也是醉了,平均還是什麼

 

[2014-NIPS]Two-Stream Convolutional Networks for Action Recognition in Videos[paper]

two-stream

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章