視頻深度學習:2018行爲識別指南

動作識別困難的原因:
1 巨大的計算成本:
一個簡單的卷積2D網絡用於101個類的分類只有~5M個參數,而相同的結構在膨脹爲3D結構時會產生~33M個參數。在UCF101上訓練3DConvNet需要3到4天,而在Sports-1M上訓練3DConvNet則需要2個月,這使得廣泛的架構搜索變得困難,而且可能過擬合

2 捕獲長上下文
動作識別涉及跨幀捕獲時空上下文。另外,所捕獲的空間信息必須補償照相機的運動。即使有強大的空間目標檢測也不夠,因爲運動信息也攜帶更精細的細節。有一個局部和全局的背景w.r.t.運動信息,需要捕捉以進行穩健的預測。例如,考慮圖2所示的視頻表示。一個強大的圖像分類器可以識別兩個視頻中的人體、水體,但是時間週期性動作的性質區分了自由泳和蛙泳

3 設計分類體系結構
設計能夠捕獲時空信息的體系結構有多種選擇,這些選擇非常重要,而且評估成本很高。例如,一些可能的策略可以是:
    一個用於捕獲時空信息的網絡 vs 分成空間和時間兩個單獨的網絡
    跨多個片段融合預測
    端到端訓練 vs 先特徵提取再分類

4 無通用基準
最受歡迎的基準數據集是UCF101和Sports1M,它們已經存在很長一段時間了。在Sports1M上尋找合理的架構可能非常昂貴。對於UCF101,雖然幀的數目與ImageNet相當,但是視頻之間的高空間相關性使得訓練中的實際多樣性要小得多。此外,鑑於兩個數據集的主題(sports)相似,將基準架構推廣到其他任務仍然是一個問題。最近通過引入Kinetics數據集解決了這個問題

這裏必須指出的是,從三維醫學圖像中檢測異常並不涉及這裏提到的所有挑戰。醫學圖像動作識別的主要區別如下:
    1 在醫學成像的情況下,時間背景可能沒有動作識別那麼重要。例如,在頭顱CT掃描中發現出血可能涉及的跨腦片時間範圍要小得多。顱內出血只能從單層切片上檢測出來。與此相反,從胸部CT掃描中發現肺結節需要捕捉時間背景,因爲結節以及支氣管和血管在二維掃描中都像圓形物體。只有當三維環境被捕獲時,結節纔可以被視爲球形物體,而不是像血管這樣的圓柱形物體
    2 在動作識別方面,大多數的研究思路都是以預先訓練好的二維CNNs作爲起點,以獲得更好的收斂性。如果是醫學圖像,這種預先訓練的網絡將是不可用的。

在深入學習出現之前,大多數用於動作識別的傳統CV算法變體可以分爲以下3個主要步驟:
    1 描述視頻區域的局部高維視覺特徵被密集地或稀疏地提取出來。
    2 提取的特徵被組合成一個固定大小的視頻級描述。該步驟的一個流行變體是在視頻級別對特徵進行編碼的視覺詞袋(使用分層或k-均值聚類導出)。
    3 一個分類器,如支持向量機或RF,被訓練在一袋視覺單詞上進行最終預測

在這些使用淺層手工特徵的算法中,使用密集採樣軌跡特徵的改進密集軌跡(iDT)是最先進的。同時,2013年,3D卷積被用於動作識別,但沒有太大幫助[7]。2014年之後不久,兩篇突破性的研究論文被髮表,它們構成了我們將在本文中討論的所有論文的主幹。兩者的主要區別在於結合時空信息的設計選擇。

方法1:單流網絡
在這項工作【2014年6月】中,作者-Karpathy等人。-探索使用二維預訓練卷積從連續幀融合時間信息的多種方法。
如圖3所示,在所有設置中,視頻的連續幀被呈現爲輸入。單幀使用單個架構,在最後階段將來自所有幀的信息進行融合。後期融合使用兩個共享參數的網絡,間隔15幀,最後合併預測。早期融合通過卷積超過10幀在第一層進行合併。慢融合包括多個階段的融合,是早期和晚期融合的平衡。對於最終預測,從整個視頻中抽取多個片段,並對其預測分數進行平均以進行最終預測。
儘管進行了大量的實驗,但作者發現,與最先進的手工製作的基於特徵的算法相比,結果要差得多。失敗有多種原因:
    1 學習到的時空特徵不能捕捉運動特徵
    2 由於數據集的多樣性較低,學習這些詳細的特性非常困難

方法2:雙流網絡
在Simmoyan和Zisserman【2014年6月】的這項開創性工作中,作者以Karpathy等人之前的工作的失敗爲基礎。考慮到深部結構學習運動特徵的韌性,作者以疊加光流矢量的形式顯式地模擬了深部結構的運動特徵。因此,該架構沒有單一的空間上下文網絡,而是有兩個獨立的網絡-一個用於空間上下文(預先訓練),一個用於運動上下文。空間網絡的輸入是視頻的一個幀。作者對時間網絡的輸入進行了實驗,發現連續10幀的雙向光流疊加效果最好。分別對兩個流進行訓練,並用支持向量機進行組合。最後的預測與前面的論文相同,即在採樣幀上進行平均。
雖然該方法通過顯式捕捉局部時間運動提高了單流方法的性能,但仍存在一些缺點:
    1 由於視頻級預測是通過對採樣片段的平均預測獲得的,因此在學習到的特徵中仍然缺少長距離的時間信息。
    2 由於訓練片段是從視頻中統一抽取的,因此存在僞標籤分配問題。這些片段中的每一個的ground truth被假定爲與視頻的ground truth相同,但如果動作在整個視頻中只是發生了很小的持續時間,則可能不是這樣。
    3 該方法包括預先計算光流矢量並將其分開存儲。另外,這兩個訓練是分開的,這意味着進行端到端的訓練仍然是一條漫長的道路。

以下的論文在某種程度上是上面兩篇論文(單流和雙流)的進化版:
    LRCN
    C3D
    Conv3D & Attention
    TwoStreamFusion
    TSN
    ActionVlad
    HiddenTwoStream
    I3D
    T3D

LRCN:Long-term Recurrent Convolutional Networks for Visual Recognition and Description
主要貢獻:
    1 在以前工作的基礎上,使用RNN而不是基於流的設計
    2 視頻編碼解碼器體系結構的擴展
    3 用於行爲識別的端到端可訓練架構
簡介:
在Ng等人[9]之前的工作中。作者們探索了在單獨訓練的特徵圖上使用LSTMs的想法,看看它是否能從片段中捕獲時間信息。遺憾的是,他們得出結論:卷積特徵的時間池化比經過訓練的特徵映射後的LSTM疊加更有效。在本文中,作者在卷積塊(編碼器)之後使用LSTM塊(譯碼器),但在整個體系結構中使用端到端的訓練。他們還比較了作爲輸入選擇的RGB和光流,發現基於兩種輸入的預測加權評分是最好的。
算法:
在訓練過程中,從視頻中抽取16個幀片段。該架構是端到端訓練,輸入爲RGB或16幀片段的光流。每個片段的最終預測是每個時間步預測的平均值。視頻級的最終預測是來自每個片段的預測的平均值。
我的評論:
儘管作者提出了端到端的培訓框架,但是仍然有一些缺點:
    1 錯誤的標籤分配,因爲視頻已分割成片段
    2 無法捕獲長久的時間信息
    3 使用光流意味着分別計算流特徵
瓦羅爾等人。在他們的工作中[10]試圖通過使用較低的視頻空間分辨率和較長的片段(60幀)來補償時間範圍不足的問題,這導致了明顯更好的性能。

Benchmarks (UCF101-split1):

Score Comment
82.92 Weighted score of flow and RGB inputs
71.1 Score with just RGB

C3D:Learning Spatiotemporal Features with 3D Convolutional Networks
主要貢獻:
    1 將三維卷積網絡重新用作特徵提取器
    2 廣泛搜索最佳三維卷積核和體系結構
    3 用反捲積層解釋模型決策
簡介:
這項工作是基於arpathy等人的工作。然而,他們沒有在幀之間使用二維卷積,而是在視頻上使用三維卷積。其想法是在Sports1M上訓練這些龐大的網絡,然後將它們(或具有不同時間深度的網絡集合)用作其他數據集的特徵提取器。他們的發現是一個簡單的線性分類器,比如支持向量機,在提取特徵集合的基礎上工作得比現有的算法更好。如果另外使用iDT等手工製作的特性,該模型的性能甚至更好。
這項工作的另一個有趣的部分是使用反捲積層來解釋這些決策。他們的發現是,網絡在最初的幾幀集中於空間外觀,並在隨後的幾幀中跟蹤運動。
算法:
在訓練過程中,每段視頻隨機抽取5個2秒的片段,他們的ground truth是整個視頻的ground truth。在測試時間內,隨機抽取10個片段,對其進行預測,取平均作爲最終預測。
我的評論:
長時間建模仍然是一個問題。此外,訓練如此龐大的網絡在計算上是一個問題——特別是對於醫學成像來說,來自自然圖像的預訓練並沒有多大幫助。
注:大約在同一時間,Sun等人[11]引入了因子化3D卷積網絡(FSTCN)的概念,在這裏,作者探索了將3D卷積分解爲空間2D卷積和時間1D卷積的思想。在2d卷積層之後放置的一維卷積被實現爲時間和通道維度上的二維卷積。因子化三維卷積(FSTCN)在UCF101上有不錯的結果。

Benchmarks (UCF101-split1):

Score Comment
82.3 C3D (1 net) + linear SVM
85.2 C3D (3 nets) + linear SVM
90.4 C3D (3 nets) + iDT + linear SVM

Conv3D & Attention:Describing Videos by Exploiting Temporal Structure
主要貢獻:
    1 一種新的捕獲局部時空信息的三維CNN-RNN編解碼器結構
    2 使用CNN-RNN編碼器-解碼器框架中的注意機制捕獲全局上下文
簡介:
雖然這項工作與動作識別沒有直接關係,但它在視頻表現方面是一項里程碑式的工作。本文采用三維CNN+LSTM作爲視頻描述任務的基本架構。在此基礎上,作者使用預先訓練的3D CNN來提高結果。
算法:
設置與LRCN中描述的編解碼器架構幾乎相同,但有兩個不同之處:
    1 與將特徵從3D CNN按原樣傳遞給LSTM不同,片段的3D CNN特徵映射與相同幀集的堆疊2D特徵映射相連,以豐富每個幀i的表示{v1,v2,…,vn}。注意:所使用的2D和3D CNN是預先訓練的,而不是像LRCN那樣端到端訓練的
    2 使用加權平均來組合時間特徵,而不是對所有幀的時間向量進行平均。每    的注意權值都是根據LSTM輸出來確定的。
我的評論:
這是2015年首次引入視頻表示注意機制的里程碑式工作之一。

TwoStreamFusion:Convolutional Two-Stream Network Fusion for Video Action Recognition
主要貢獻:
    1 通過更好的長時間段損失進行長時間段建模
    2 一種新穎的多層融合結構
簡介:
在這項工作中,作者使用了兩種新方法的基本雙流架構,並在不顯著增加參數規模的情況下證明了性能的提高。作者探討了兩個主要觀點的有效性:
    1 空間和時間流(如何和何時)的融合-對於區分梳頭和刷牙的任務-空間網可以捕捉視頻中的空間依賴性(是頭髮或牙齒),而時間網可以捕捉視頻中每個空間位置的週期運動。因此,將特定面部區域的空間特徵匹配到相應區域的時間特徵是非常重要的。爲了達到同樣的效果,網絡需要在早期進行融合,以便在相同像素位置的響應被對應地放置,而不是在末端融合(類似於在基本雙流架構中)。
    2 將跨時間幀的時間網絡輸出結合起來,以便對長時間依賴性進行建模。
雙流架構中的所有東西幾乎都是相似的,除了:
    1 如下圖所示,來自兩個流的conv_5層的輸出通過卷積和池化進行融合。在最後一層還有另一個融合。最後的融合輸出用於時空損失評估。
    2 對於時間的融合,時間網絡的輸出,跨時間疊加,通過卷積和池化融合,用於時間損失
我的評論:
作者建立了雙流融合方法的優勢,因爲它在沒有額外參數的情況下提升了性能,優於C3D。

Benchmarks (UCF101-split1):

Score Comment
92.5 TwoStreamfusion
94.2 TwoStreamfusion + iDT

TSN:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
主要貢獻:
    1 面向長時間段建模的有效解決方案
    2 將批量歸一化、dropout和預訓練確立爲好的做法
簡介:
在這項工作中,作者改進了雙流架構,以產生最先進的結果。與之前的論文有兩大不同:
他們建議在視頻中稀疏地採樣片段,以更好地模擬長時間段信號,而不是在整個視頻中隨機採樣。
爲了在視頻層面進行最終預測,作者探索了多種策略。最好的策略是:
    1 通過對片段平均,分別組合時間和空間流(以及其他輸入模式涉及的其他流)的分數
    2 使用加權平均法融合最終空間流和時間流分數,並對所有類別應用softmax。
這項工作的另一個重要部分是解決過度擬合(由於數據集規模較小)的問題,並演示如何使用當前流行的技術,如批量歸一化、dropout和預先訓練來解決這一問題。作者還評估了兩種替代光流的新輸入模式,即扭曲光流和RGB差分。
算法:
在訓練和預測過程中,視頻被分成K段,時間相等。此後,從K個片段中隨機抽取片段。其餘步驟仍然類似於兩流體系結構,並進行了如上所述的更改。
我的評論:
這項工作試圖解決行動識別的兩大挑戰-由於小規模數據而導致的過度擬合以及和長時間段建模,結果真的很強。然而,光流和相關輸入模式的預計算問題仍然是一個大問題。

Benchmarks (UCF101-split1):

Score Comment
94.0 TSN (input RGB + Flow )
94.2 TSN (input RGB + Flow + Warped flow)

ActionVLAD:ActionVLAD: Learning spatio-temporal aggregation for action classification
主要貢獻:
    1 特徵的可學習視頻級聚合
    2 基於視頻級聚合特徵的端到端可訓練模型來捕獲長期依賴性
簡介:
與使用maxpool或avgpool的普通聚合相比,本文作者最顯著的貢獻是使用了可學習特徵聚合(VLAD)。聚合技術類似於視覺詞彙袋。有多個學習的錨點(比如c1,…ck)爲基礎的詞彙表,表示k個典型動作(或子動作)相關的時空特徵。兩流體系結構中的每個流的輸出是根據k空間“動作詞”特徵編碼的-每個特徵是來自任何給定空間或時間位置的對應錨點的輸出的差異。
平均或最大池將點的整個分佈表示爲單個描述子,對於表示由多個子動作組成的整個視頻而言,該描述符可能是次優的。相比之下,所提出的視頻聚合通過將描述符空間分割成k個單元並在每個單元內進行池化,來表示具有多個子動作的描述子的整個分佈。
算法:
除了ActionVLAD層的使用之外,來自雙流架構的所有東西幾乎都是相似的。作者在conv層確定最佳策略後,實驗了多層放置ActionVLAD層和後期融合。
我的評論:
VLAD作爲一種有效的池化方式早就被證明了。在端到端可訓練的框架中對其進行擴展,使得該技術在2017年初的大多數動作識別任務中都非常強大和先進。

Benchmarks (UCF101-split1):

Score Comment
92.7 ActionVLAD
93.6 ActionVLAD + iDT

HiddenTwoStream:Hidden Two-Stream Convolutional Networks for Action Recognition
主要貢獻:
    1 利用獨立網絡實時生成光流輸入的新結構
簡介:
在雙流體系結構中使用光流使得必須在預先計算每個採樣幀的光流,從而對存儲和速度產生不利影響。本文提出了一種無監督的結構來產生一組幀的光流。
光流可以看作是一個圖像重建問題。給定一對相鄰的幀I1和I2作爲輸入,CNN生成一個流場V,然後利用預測的流場V和I2,利用逆逆向映射將I1重建爲I1',從而使I1與其重建之間的差異最小化。
算法:
在不影響精度的前提下,探索了多策略、多體系結構來產生最大fps、最小參數的光流。最終的體系結構與兩流體系結構相同,其變化如下所述:
    1 時間流現在在一般的時間流體系結構之上疊加了光流生成網(MotionNet)。時間流的輸入現在是後續幀,而不是經過預處理的光流;
    2 運動網的無監督訓練還有一個額外的多層次損失
作者還演示了使用基於TSN的融合來代替傳統的雙流方法架構在性能上的改進。
我的評論:
本文的主要貢獻是提高預測速度和相關成本。通過流的自動生成,作者減輕了對較慢的傳統方法生成光流的依賴。

Benchmarks (UCF101-split1):

Score Comment
89.8 Hidden Two Stream
92.5 Hidden Two Stream + TSN

I3D:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
主要貢獻:
    1 利用預訓練將基於3D的模型組合到雙流體系結構中
    2 未來的基準數據集Kinetics和改進行爲數據集多樣性
這篇論文從C3D離開的地方起飛。在雙流架構中,作者使用兩個不同的3D網絡來代替單一的3D網絡。此外,爲了利用預先訓練的二維模型,作者在三維中重複使用了二維預先訓練的權重。現在,空間流輸入由時間維度上堆疊的幀組成,而不是基本的雙流架構中的單幀。
算法:
與基本的雙流架構相同,但每個流都有3D網絡
我的評論:
本文的主要貢獻是證明了使用預先訓練的2D conv網的好處。論文中開放的Kinetics數據集是本文的另一個重要貢獻。

Benchmarks (UCF101-split1):

Score Comment
93.4 Two Stream I3D
98.0 Imagenet + Kinetics pre-training

T3D:Temporal 3D ConvNets: New Architecture and Transfer Learning for Video
主要貢獻:
    1 跨深度組合時間信息的體系結構
    2 一種新的訓練結構與技術,用於監控二維預訓練網絡到三維網絡的遷移學習
簡介:
作者擴展了在I3D上所做的工作,但建議使用基於單流3D DenseNet的體系結構,在密集塊之後疊加多深度時間池層(時間轉換層),以捕獲不同的時間深度。多深度池是通過與不同時間大小的核池來實現的。
除此之外,作者還設計了一種新的監控預訓練2D卷積網絡和T3D之間遷移學習的技術,2D預訓練網絡和T3D都是來自視頻的幀和片段,其中片段和視頻可以來自同一視頻,也可以不來自同一視頻。在此基礎上進行0/1預測試驗,並將預測誤差通過T3D網絡進行反向傳播,有效地傳遞知識。
該體系結構基本上是對DenseNet[12]的3D修改,增加了可變時間池化。
我的評論:
雖然這些結果在I3D的基礎上沒有得到改善,但這主要是由於與I3D相比,模型的規模小得多,本文最新的貢獻是有監督的遷移學習技術。

Benchmarks (UCF101-split1):

Score Comment
90.3 T3D
91.7 T3D + Transfer
93.2 T3D + TSN

參考博文:

http://blog.qure.ai/notes/deep-learning-for-videos-action-recognition-review

參考文獻:

 

 

 

 

 

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