Action Recognition 經典論文瀏覽


0. 前言

  • 本文基本上就是2019年之前的論文。
  • 行爲識別模型主要分爲三類(好像一般大家都這麼分,但我感覺不是特別合理……)
    • 3D卷積
      • 傳統圖像網絡的輸入是 (batch_size, h, w, 3),而視頻數據相對於圖像數據多了時間緯度,所以一般行爲識別網絡的輸入是 (batch_size, t, h, w, 3)
      • 因爲多了一維,就將普通2D卷積用3D卷積來替代,所以所謂的3D卷積就是指同時對 spatial-temporal 緯度進行卷積操作。
      • 優點:相對來說,能夠較好的提取時間維度的特徵(也就是提取不同幀的數據)。
      • 缺點:3D卷積的參數數量龐大、訓練/預測時消耗的計算資源較多。
    • 2D卷積
      • 上面說了3D卷積存在消耗計算資源多的問題。
      • 如果能用2D卷積來提取時間特徵,那麼就既能夠滿足行爲識別模型訓練的需求,也能滿足降低行爲識別模型計算資源消耗的目標。
    • 雙流法(感覺雙流法與2D/3D卷積並不衝突)
      • 雙流法指的是模型的輸入包括了RGB幀也包括光流數據,其實中間提取光流特徵的網絡與提取RGB幀信息的網絡是類似的……
      • 感覺雙流法與2D/3D卷積並不衝突,提取光流/RGB流特徵就用的是3D/2D網絡。
  • 論文分類與簡介
    • 雙流法:就是引入了雙流,以及探索雙流融合方式。因爲用不上所以不列了。
    • 3D卷積
      • C3D:3D版VGG。
      • I3D:提出Kinetics-400數據集,基於InceptionV1的3D卷積網絡。。
      • R(2+1)D:使用tx1x1+1xdxd卷積替代txdxd卷積,使用ResNet作爲Backbone。
      • SlowFast:同一個模型中有多個分支(slow分支與fast分支,分別對應不同的幀率),每個分支都是I3D模型。
    • 2D卷積
      • TSN:將視頻分爲N個部分、分別提取其中一幀作爲模型輸入,對每一幀分別使用2D CNN提取特徵,融合(如avg)後使用分類網絡判斷行爲類別。
      • TSM:在TSN的基礎上,對中間部分特徵圖(shape爲NxTxHxWxC)的 T 維度上進行shift操作。
    • 其他:
      • ECO:先2D提取特徵再3D融合,提出了一種online video提取幀的新方法。
      • Non-local:類似於attention,增加“感受野”

1. 雙流法

1.2. 雙流法第一篇

  • 2014年6月
  • arxiv: Two-Stream Convolutional Networks for Action Recognition in Videos論文解讀,Github
  • 要解決什麼問題?
    • 引入深度學習後,雙流法處理行爲識別的開山之作。
    • 如何通過卷積神經網絡同時獲取時間(光流)、位置信息(普通食品)。
  • 用了什麼方法解決?
    • 引入了光流(Optical flow),用於表示時間信息。
    • 對於RGB/光流都是通過2D卷積提取特徵。
    • 最後融合也比較直接。
    • image_1dtl5fd7658ia618221v431h6d9.png-338.4kB
  • 效果如何?
    • 當時在兩個小數據集上達到SOTA。
  • 還存在什麼問題?
    • 早期論文了,也沒啥花頭。
    • 光流需要實現處理得到,總體結構應該不是end-to-end的。
    • 從後一篇論文看,融合方式太過直接,有上升空間。
  • 其他:光流相關內容需要進一步理解。

1.2. 雙流法+新特徵融合方式

  • 2016年4月,題外話,看着像實驗報告,不像論文
  • arxiv: Convolutional Two-Stream Network Fusion for Video Action Recognition論文解讀論文解讀2,Github
  • 要解決什麼問題?
    • 之前的雙流模型,特徵融合過於簡單,希望找到更好的融合方式。
  • 用了什麼方法解決?
    • 就是各種實驗,找到合適的方式……
    • 下圖是幾處可以特徵融合的位置。
      • image_1dtl6aoj01u2016361qkd1hng18glm.png-181.3kB
    • 下圖是幾種特徵融合的方式
      • image_1dtl6bips1dp71b4am0t1ufd144013.png-168kB
    • 下圖是論文使用的特徵融合模型結構,主要就是利用了3D卷積和3D池化進行特徵融合,融合位置如上上圖。
      • image_1dtl6cikt1k7l9hfute2djfnh1g.png-259.1kB
  • 效果如何?
    • 在某幾個數據集上達到SOTA。
  • 還存在什麼問題?
    • 還是感覺之前的模型過於簡單了……

2. 3D卷積

2.1. C3D

  • 2014年12月
  • arxiv: Learning Spatiotemporal Features with 3D Convolutional Networks,論文解讀,Github
  • 要解決什麼問題?
    • 利用3D卷積來處理視頻數據。
  • 用了什麼方法解決?
    • 利用3D卷積(即C3D)來提出視頻的特徵。
    • 將特徵利用線性迴歸來分類,就能得到很好的效果。
  • 效果如何?
    • 這個應該是3D卷積第一次用來做行爲識別吧,當時效果比較驚豔。
  • 還存在什麼問題?
    • 早期模型了,現在看沒啥花頭,感覺就是用3D卷積謝了一遍VGG
  • 看了源碼後發現,一切思想都很樸素:
    • 輸入圖像的尺寸與圖像分類一樣,是固定的,比如 batch_size * clip_len * img_height * img_width * 3。這個圖像序列的獲取是有一定講究的,對於一個視頻要至少獲取 clip_len 幀圖像,一般都是間隔着獲取。
    • 由於輸入尺寸是固定的,所以得到的最終特徵圖尺寸也是固定的,可以reshape到一個固定的向量。
    • 通過這個向量直接通過全連接層即可獲得結果。

2.2. I3D + Kinetics

  • 2017年5月
  • arxiv: Quo Vadis, Action Recognition A New Model and the Kinetics Dataset論文解讀mmaction有實現
  • 要解決什麼問題?
    • 當時的行爲識別數據集都太小。
    • 2D卷積無法提取時間特徵。
  • 用了什麼方法解決?
    • 提出Kinetics數據集。
    • 分析當時行爲識別模型的結構,提出自己的結構。
      • (a) CONV+LSTM:融合單幀特徵的一種方法就是LSTM。
      • (b) 普通3D卷積:比較直接,僅利用了RGB圖像,而沒有利用光流。
      • © 普通雙流:對RGB和光流都利用2D卷積,然後再進行特徵融合。
      • (d) 作者提出的一種新結構:對於每一幀都利用2D卷積,然後最終將每一幀的信息融合,再利用3D卷積。
      • (e) I3D結構:對RGB與光流分別進行3D卷積,然後再融合結果。
      • image_1dtldbhsi1ot15td1e7m1h1n134437.png-105.2kB
    • I3D模型本身使用的是InceptionV1的結構,而不是ResNet
      • image_1ec4v50sl1pjo9sib141mir1g9t9.png-168.4kB
  • 效果如何?
    • 在HMDB-51與UCF-101中,I3D都達到了SOTA。
    • 大數據集,有點訓練不動。
  • 還存在什麼問題?
    • 3D卷積都比較費時間、參數多,而且空間特徵提取的並不太好。
    • 現在所謂的I3D模型好像都是基於ResNet的,跟I3D論文這裏的好像沒太多關係。

2.3. R(2+1)D

  • 17年11月
  • arxiv: A Closer Look at Spatiotemporal Convolutions for Action Recognition論文解讀,Github
  • 要解決什麼問題?
    • 使用3D卷積網絡實現行爲識別模型(I3D)雖然在當時達到了SOTA,但相比於iDT等非深度學習方法, 準確率提升的不多。
    • 當時的3D卷積都比較直白。
  • 用了什麼方法解決?
    • 探索了一些3D卷積結構,或者替代3D卷積的結構。
      • image_1ec4vhqa682n1ck9de317781qjpm.png-107.5kB
    • 所謂的(2+1)D其實就是用 tx1x1 卷積 + 1xdxd卷積替代普通的 txdxd 卷積。
      • image_1ec507c44cbb10gv1dqn1usr1trn13.png-69.2kB
    • R3D結構,估計R(2+1)D結構也與這個類似
      • image_1ec5098dh10kprji1h791dnd1p3f1g.png-96.5kB
  • 效果如何?
    • 當時在同等算力下,(2+1)D的效果最好。
  • 還存在什麼問題?
    • 早起模型啦,模型總體結構還是比較樸素的。
    • 但(2+1)D這個結構在現在還是比較常見的。

2.4. SlowFast

  • arxiv: SlowFast Networks for Video Recognition譯文論文解讀Github
  • 要解決什麼問題?
    • intuition:圖像在x,y兩個維度上是均勻的,但在視頻x,y,t中並非如此,且慢動作比快動作更可能發生。
    • 從上面的思路可以看出,那要如何同時處理時間維度和空間維度和空間維度的信息呢。
    • 雙流法的一個缺陷:沒有考慮不同速率的關係。
  • 用了什麼方法解決?
    • 提出了SlowFastNet,分爲兩個分支,即Slow分支和Fast分支。
      • Slow分支:幀率較慢,用於獲取語義信息(semantic information),猜測就是空間信息,計算量大。
      • Fast分支:幀率較快,用於獲取去時間信息,計算量小,大約是總體計算量的20%。
      • image_1dtslhvou3k0skh1p2b1edtji9.png-155.5kB
  • 效果如何?
    • 發表時認爲在四個數據集 kinetics400/600, Charades, AVA上都達到SOTA。
    • 其實該論文精讀不如TSM,但這篇論文的“故事”更好理解。
  • 還存在什麼問題?
    • 卡多,牛逼,野獸派。

3. 2D 卷積

3.1. TSN

  • 2016年8月
  • arxiv: Temporal Segment Networks: Towards Good Practices for Deep Action Recognition,論文解讀,mmaction有實現
  • 要解決什麼問題?
    • 當時的模型都對短視頻比較友好,對長視頻不太行。
  • 用了什麼方法解決?
    • 提出了TSN結構,主要包括了Segments和Snippets兩個概念。
      • 首先將整段視頻分爲若干個Segments,再將每個segments中分爲若干snippets,將這些snippets作爲輸入。
      • 從下圖中可以看出,就是利用了多個雙流結構,然後融合結果。
      • image_1dtlbtird1ibk1jpqp661agnusq1t.png-242.8kB
    • 對於模型的輸入,做了多種試驗。
      • image_1dtlc0pgh1lhg15ad1djgst01pqu2a.png-206.7kB
  • 效果如何?
    • 當時在兩個小數據集上達到了SOTA。
  • 還存在什麼問題?
    • 顯然,雙流模型不是end-to-end的。

3.2. TSM

  • 2018.11
  • arxiv: TSM: Temporal Shift Module for Efficient Video Understanding,論文解讀,Github
  • 要解決什麼問題?
    • 視頻行爲識別需要考慮 temporal modeling。
    • 2D卷積雖然需要的操作量少但無法直接考慮 temporal modeling,3D卷積雖然能夠考慮temporal modeling但參數量、計算量大。
  • 用了什麼方法解決?
    • 提出了TSM結構,即利用了2D卷積的參數、操作量少,又兼顧了3D卷積的temporal modeling。
    • TSM的結構如下圖。
      • (b) 是離線模式,即在預測當前幀的信息時,會利用到未來的幀。
      • © 是在線模式,即預測當前幀的時候,不會利用到未來的幀。
      • image_1dtigaajk1tn11ooqes5bt113ce9.png-187.1kB
    • 具體TSM的結構,利用了(b)形式,即殘差形式。
      • image_1dtigatpcdtb6qtfq718g89q6m.png-72.1kB
    • image_1dtigb2h6hlo6h21o3udu2fov13.png-94.8kB
  • 效果如何?
    • 查資料的時候看到不少,說這個網絡效果好,但感覺有點奇怪
      • image_1dtigbt581ii41pk7tgk1ejhqbn1g.png-91.5kB
    • 下面這個圖霸氣,縱座標是精度,橫座標是計算量,圓圈大小是參數數量,可以看到TSM是啥都好……
      • image_1dtigc4jsvi46ht5njld27fc1t.png-135.9kB
  • 還存在什麼問題?
    • 只知道效果好,但總感覺有點怪(我看得少,沒看出來)

4. 其他

4.2. ECO

  • 18年4月
  • arxiv: ECO: Efficient Convolutional Network for Online Video Understanding
  • 論文解讀論文解讀2Github(caffe)Github(PyTorch)
  • 要解決什麼問題?
    • 當時常見的模型不會同時考慮幾秒內不同幀的關係。
    • 當時常見的模型(主要指的是雙流法)的視頻預處理較慢,阻礙了實時視頻理解。
  • 用了什麼方法解決?
    • 提出了一種新結構,可融合處理視頻不同時間點的幀信息。總體流程是:
      • 第一步,將視頻微分N段,每一段中隨機選取一幀內容,共N幀信息。
      • 第二步,對N幀內容分別進行2D卷積進行特徵提取(weight sharing),將結果concat後獲取4D特徵。
      • 第三步,將4D特徵作爲輸入,進行3D卷積。
      • image_1dtsak0mq3h01vvu1fbkpi4u59.png-270.8kB
    • 結構類型分爲兩種,即ECO Lite和ECO Full
      • image_1dtsaqrfciqui1q1ud7ige1qlim.png-92kB
    • 提出了一種實時視頻分類的方法,這種方法模型結構並沒有變化,有變化的只是獲取視頻幀的過程。
      • image_1dtsat2s615lo14j7etppu5118j23.png-254.2kB
      • image_1dtsauvsf1el3gqcb3f111l17rd2j.png-214.8kB
  • 效果如何?
    • 準確率與當時的SOTA差不多(略差一點),但速度快了10-80倍。
  • 還存在什麼問題?
    • 感覺這些網絡都是以224*224的圖像作爲輸入,會不會對一些距離鏡頭較遠的動作檢測效果不佳?

4.3. Non-local

  • 17年11月

  • arxiv: Non-local Neural Networks論文解讀(強烈推薦),Github

  • 要解決什麼問題?

    • 主要提出了local/non local兩類操作的定義。
      • local 操作
        • 每次只能處理一個鄰域內的數據(process one local neightborhood at a time)
        • 普通的CNN/RNN都屬於local操作
        • 主要缺陷有:計算效率低(computationally inefficient),優化較爲困難(cause optimization difficulties),使得multihop dependency modeling(數據需要前後依賴的情況)更困難。
      • non local 操作:
        • 主要優勢:能夠獲取long-range dependencies,效率高且需要的層數少,輸入與輸出的尺寸相同(可較爲方便地嵌入模塊)。
  • 用了什麼方法解決?

    • 定義了 non local 操作:
      • image_1e62s28e114a1qq71ihf1unb14879.png-14.8kB
      • 參考下論文解讀中的描述,很清楚了:
        • 上面的公式中,輸入是x,輸出是y,i和j分別代表輸入的某個空間位置,x_i是一個向量,維數跟x的channel數一樣。f是一個計算任意兩點相似關係的函數,輸出的是標量。g是一個映射函數,將一個點映射成一個向量,可以看成是計算一個點的特徵,比如最簡單的1*1卷積。
        • 也就是說,爲了計算輸出層的一個點,需要將輸入的每個點都考慮一遍,而且考慮的方式很像attention:輸出的某個點在原圖上的attention,而mask則是相似性給出。
        • 參看下圖:image_1e62sbms01bce1ljm1o70ode1il1m.png-146.9kB
    • 具體實現方式參考下圖:
      • Softmax分支代表的是mask。
      • 另外一路代表的就是transformed image。
      • image_1e62vavd3k5b17jaqhb130epd613.png-178.6kB
  • 效果如何?

    • 在當時,進將non-local作爲一個trick添加到行爲識別網絡中就能達到SOTA的效果。
  • 還存在什麼問題?

    • 這玩意是個即插即用的小模塊,能提點,但性能就……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章