1. 程式人生 > >24.Two-Stream Convolutional Networks for Action Recognition in Videos

24.Two-Stream Convolutional Networks for Action Recognition in Videos

Two-Stream Convolutional Networks for Action Recognition in Videos

用於視訊中動作識別的雙流卷積網路

摘要

我們研究了經過區別訓練的深度卷積網路(ConvNets)的體系結構,用於視訊中的動作識別。挑戰在於從靜止幀和幀間的運動中捕獲關於外觀的補充資訊。我們還旨在在資料驅動的學習框架中概括效能最佳的手工製作功能。

我們的貢獻是三倍的。首先,我們提出了一個包含空間和時間網路的雙流ConvNet架構。其次,我們證明了儘管訓練資料有限,但在多幀密集光流上訓練的ConvNet能夠實現非常好的效能。最後,我們展示了應用於兩個不同動作分類資料集的多工學習,可用於增加訓練資料量並提高兩者的效能。

我們的架構在UCF-101和HMDB-51的標準視訊操作基準上進行了訓練和評估,在此基礎上它與最先進的技術相比均大大超過了之前應用深度學習進行視訊分類的嘗試。

 

  1. 引言

在視訊中識別人類行為是一項具有挑戰性的任務,在研究界受到了極大的關注[11,14,17,26]。與靜止影象分類相比,視訊的時間分量提供了用於識別的附加(且重要)線索,因為可以基於運動資訊可靠地識別多個動作。此外,視訊為單個影象(視訊幀)分類提供自然資料增強(抖動)。

在這項工作中,我們的目標是將深度卷積網路(ConvNets)[19],一種靜態影象表示[15]擴充套件到視訊資料中的動作識別。最近在[14]中通過使用堆疊視訊幀作為網路的輸入來解決該任務,但結果明顯比最佳手工製作的淺表示更差[20,26]。我們基於兩個單獨的識別流(空間和時間)研究不同的架構,然後通過後期融合進行組合。空間流從靜止視訊幀執行動作識別,同時訓練時間流以識別來自密集光流形式的運動。兩個流都實現為ConvNets。分離空間和時間網路還允許我們通過在ImageNet資料集[1]上預先訓練空間網來利用大量帶註釋的影象資料的可用性。我們提出的結構與雙流假設[9]有關,根據該假設,人類視覺皮層包含兩種路徑:腹側流(執行物體識別)和背側流(識別運動);雖然我們在這裡不再進一步研究這種聯絡。

本文的其餘部分安排如下。在第1.1節我們使用淺層和深層架構識別有關動作識別的相關工作。在第2節中我們介紹雙流架構並指定空間卷積網路。第3節介紹了時間卷積網路,特別是它如何擴充套件了1.1節中所述的先前架構。在第4節中開發了一個多工學習框架,以便在多個數據集上輕鬆組合訓練資料。實施細節在第5節中給出,效能在第6節中評估並與現有技術進行比較。我們對兩個具有挑戰性的資料集(UCF101 [24]和HMDB-51 [16])的實驗表明,兩個識別流是互補的,我們的深層架構明顯優於[14]並且與現有技術的淺層表示[20,21,26]相比,儘管通過訓練相對較小的資料集。

 

1.1相關工作

視訊識別研究主要受影象識別方法的進步驅動,影象識別方法經常被調整和擴充套件以處理視訊資料。一大類視訊動作識別方法基於區域性時空特徵的淺層高維編碼。例如,[17]的演算法在於檢測稀疏的時空興趣點,然後使用區域性時空特徵描述:定向梯度直方圖(HOG)[7]和光流直方圖(HOF)。然後將這些特徵編碼到Bag Of Features(BoF)表示中,該表示彙集在幾個時空網格上(類似於空間金字塔池)並與SVM分類器結合。在後來的工作[28]中,顯示區域性特徵的密集取樣優於稀疏的興趣點。

最先進的淺視訊表示[20,21,26]不是使用時空長方體計算區域性視訊特徵,而是利用密集點軌跡。這種方法首先在[29]中引入,包括調整區域性描述符支援區域,以便它們遵循使用光流計算的密集軌跡。基於軌跡的管道中的最佳效能是通過運動邊界直方圖(MBH)[8]實現的,這是一種基於梯度的特徵,分別根據光學流的水平和垂直分量計算。顯示了幾個功能的組合,以進一步提高準確性。最近對基於軌跡的手工製作表示的改進包括全域性(相機)運動的補償[10,16,26],以及使用Fisher向量編碼[22]([26]中)或其更深層變體[23] (在[21]中)。

還有許多嘗試開發用於視訊識別的深層架構。在大多數這些工作中,網路的輸入是一堆連續的視訊幀,因此期望模型隱含地學習第一層中的時空運動相關特徵,這可能是一項困難的任務。在[11]中,提出了一種用於視訊識別的HMAX架構,其在第一層中具有預定義的時空濾波器。後來,它與空間HMAX模型結合[16],從而形成空間(腹側)和時間(背側)識別流。然而,與我們的工作不同,這些流被實現為手工製作且相當淺(3層)的HMAX模型。在[4,18,25]中,卷積RBM和ISA用於無監督學習時空特徵,然後將其插入到動作分類的判別模型中。視訊ConvNets的判別式端到端學習已在[12]中得到解決,最近在[14]中得到了解決,他們將幾種ConvNet架構進行了比較以進行動作識別。訓練是在一個非常大的Sports-1M資料集上進行的,包括1.1M YouTube體育活動視訊。有趣的是,[14]發現,在單個視訊幀上執行的網路與網路的執行方式類似,其輸入是一堆幀。這可能表明所學習的時空特徵不能很好地捕捉運動。在UCF-101資料集上實現的學習表示結果比手工製作的最先進的基於軌跡的表示法精確度低20%[20,27]。

我們的時間流ConvNet在多幀密集光流上執行,通常通過求解位移場(通常在多個影象尺度)在能量最小化框架中計算。我們使用了一種流行的方法[2],它根據強度及其梯度的恆定性假設以及位移場的平滑度來表達能量。最近,[30]提出了一種影象補丁匹配方案,它讓人聯想到深層ConvNets,但不包含學習。

 

2用於視訊識別的雙流架構

 


視訊自然可以分解為空間和時間元件。空間部分以單個幀外觀的形式攜帶有關視訊中描繪的場景和物件的資訊。時間部分以幀的運動形式傳達觀察者(相機)和物體的運動。我們相應地設計了視訊識別架構,將其分為兩個流,如圖1所示。每個流使用深度ConvNet實現,其softmax分數通過後期融合組合。我們考慮兩種融合方法:對堆疊的L2歸一化softmax分數進行平均和訓練多類線性SVM [6]作為特徵。

 

空間流ConvNet在各個視訊幀上執行,有效地從靜止影象執行動作識別。靜態外觀本身是一個有用的線索,因為某些動作與特定物件密切相關。事實上,正如將在第6節中所示,來自靜止幀(空間識別流)的動作分類本身是相當有競爭力的。由於空間ConvNet本質上是一種影象分類架構,我們可以在大規模影象識別方法[15]的最新進展的基礎上,並在大型影象分類資料集上預先訓練網路,例如ImageNet挑戰資料集。細節見第5節.接下來,我們描述時間流ConvNet,它利用運動並顯著提高準確性。

 

3光流控制

在本節中,我們描述了一個ConvNet模型,它構成了我們架構的時間識別流(第2節)。與ConvNet模型不同,在第1.1節,我們模型的輸入是通過在幾個連續幀之間堆疊光流位移場形成的。這樣的輸入明確地描述了視訊幀之間的運動,這使得識別更容易,因為網路不需要隱式地估計運動。我們考慮基於光流輸入的幾種變化,我們在下面描述。

3.1 ConvNet輸入配置


光流堆疊。密集光流可以看作連續幀對t和t+1之間的一組位移向量場dt。通過dt(u,v)我們表示在幀t中的點(u,v)處的位移向量,其將點移動到下一幀t+1中的對應點。向量場的水平和垂直分量,dxt和dyt可以看作影象通道(如圖2所示),非常適合使用卷積網路進行識別。為了表示幀序列中的運動,我們堆疊L個連續幀的流動通道dx,yt以形成總共2L輸入通道。更正式地說,讓w和h成為視訊的寬度和高度;然後,如下構造任意幀τ的ConvNet輸入體積Iτ∈Rw×h×2L:


對於任意點(u,v),通道Iτ(u,v,c),c = [1; 2L]在L幀序列上對該點處的運動進行編碼(如圖3左側所示)。


軌跡堆疊。受基於軌跡的描述符[29]啟發的另一種運動表示取代了沿著運動軌跡取樣的流動,在幾個幀的相同位置取樣的光流。在這種情況下,對應於幀τ的輸入體積Iτ採用以下形式:


其中pk是沿著軌跡的第k個點,它從幀τ中的位置(u,v)開始,並由以下遞迴關係定義:

與(1)相比,其中通道Iτ(u,v,c)儲存位置處的位移向量( u,v),(2)儲存沿軌跡在位置pk處取樣的向量(如圖3右側所示)。

雙向光流。光流表示(1)和(2)處理前向光流,即幀t的位移場dt指定其畫素在下一幀t+1中的位置。考慮對雙向光流的擴充套件是很自然的,這可以通過計算另一組反向的位移場來獲得。然後,我們通過在幀τ和τ+ L/2之間堆疊L/2前向流以及在幀τ-L/2和τ之間的L/2後向流來構造輸入體積Iτ。因此,輸入Iτ具有與之前相同數量的通道(2L)。流可以使用兩種方法(1)和(2)中的任何一種來表示。

平均流減法。通常有利的是對網路輸入進行零中心化,因為它允許模型更好地利用整個非線性。在我們的例子中,位移向量場分量可以呈現正值和負值,並且在多種運動的意義上自然居中,一個方向上的運動與另一個方向上的運動一樣可能。然而,給定一對框架,它們之間的光流可以由特定的位移支配,例如,由相機運動引起的。先前在[10,26]中強調了相機運動補償的重要性,其中估計了全域性運動分量並從密集流中減去。在我們的例子中,我們考慮一種更簡單的方法:從每個位移場d中減去它的均值向量。


框架。上面我們描述了將多個光流位移場組合成單個體積Iτ∈Rw×h×2L的不同方法。考慮到ConvNet需要固定大小的輸入,我們從Iτ取樣224×224×2L子體積並將其作為輸入傳遞給網路。隱藏層的配置與空間網中使用的大致相同,如圖1所示。測試類似於空間ConvNet,詳細描述在第5節。

3.2時態ConvNet架構與先前表示的關係

在本節中,我們將時間ConvNet架構放在現有技術的上下文中,繪製與視訊表示的連線,在1.1節中進行了回顧。基於特徵編碼的方法[17,29]通常組合了幾個時空區域性特徵。這些特徵是從光流計算的,因此由我們的時間ConvNet擴充套件。實際上,HOF和MBH區域性描述符基於光流方向或其梯度的直方圖,可以使用單個卷積層(包含方向敏感濾波器)從位移場輸入(1)獲得,然後是整流和池化層。 [10](發散,捲曲和剪下)的運動學特徵也是根據光流梯度計算的,並且再次可以通過我們的卷積模型捕獲。最後,通過沿軌跡堆疊位移向量來計算軌跡特徵[29],其對應於軌跡堆疊(2)。在3.3節中我們視覺化在時間網路的第一層中學習的卷積濾波器。這進一步證明了我們的表現形式是手工製作的特徵。就深度網路而言,[16]的雙流視訊分類架構包含兩個HMAX模型,這些模型是手工製作的,並且不如我們經過有區別訓練的深度卷積網路,這可以被視為HMAX的可學習概括。[12,14]的卷積模型不會分離空間和時間識別流,而是依賴於從資料中學習的運動敏感卷積核。在我們的例子中,使用光流位移場明確表示運動,基於流動強度和平滑度的恆定性假設計算。將這些假設納入ConvNet框架可能會提高階到端基於ConvNet的方法的效能,並且是未來研究的一個有趣方向。

 

3.3所學卷積核的視覺化


在圖4中,我們視覺化來自時間ConvNet的第一層的卷積濾波器,這些濾波器是在URF-101dataset上訓練的。96個過濾器中的每一個都具有7×7畫素的空間接受域,並且跨越20個輸入通道,對應於10個堆疊光流位移的水平(dx)和垂直(dy)分量。可以看出,一些濾波器計算光流的空間導數,捕獲運動如何隨影象位置而變化,這推廣了基於衍生的手工描述符(例如MBH)。 其他過濾器計算時間導數,捕捉運動隨時間的變化。

4多工學習

與可以在大型靜態​​影象分類資料集(例如ImageNet)上預訓練的空間流ConvNet不同,時間ConvNet需要針對視訊資料進行訓練,然而用於視訊動作分類的可用資料集相當小。在我們的實驗中(第6節),在UCF-101和HMDB-51資料集上進行訓練,這些資料集分別只有9.5K和3.7K視訊。為了減少過擬合,可以考慮將兩個資料集合併為一個;然而,由於類集之間的交集,這並不簡單。一個選項(我們稍後評估)是僅新增類中的影象,這些影象不會出現在原始資料集中。然而,這需要手動搜尋這些類並限制額外訓練資料的數量。

組合多個數據集的更有原則的方法是基於多工學習[5]。其目的是學習(視訊)表示,其不僅適用於所討論的任務(例如HMDB-51分類),而且適用於其他任務(例如UCF-101分類)。額外的任務就像一個常客,允許利用額外的訓練資料。在我們的例子中,修改了ConvNet架構,使其在最後一個全連線層之上有兩個softmax分類層:一個softmax層計算HMDB-51分類分數,另一個是UCF-101分數。每個層都配備有自己的損失函式,該功能僅對來自相應資料集的視訊進行操作。整體訓練損失計算為各個任務的損失之和,並且可以通過反向傳播找到網路權重導數。

 

5實施細節

ConvNets配置。我們的空間和時間ConvNets的層配置如圖1所示。它對應於[3]的CNN-M-2048架構,類似於[31]的網路。所有隱藏的權重層都使用ReLU啟用功能;使用步長為2,在3×3空間視窗上執行最大池化;LRN使用與[15]相同的設定。空間和時間ConvNet配置之間的唯一區別是我們從後者中刪除了第二個歸一化層以減少記憶體消耗。

訓練。訓練過程可以看作是對視訊幀的[15]的改編,並且對於空間和時間網路通常是相同的。使用具有動量的小批量隨機梯度下降(設定為0.9)來學習網路權重。在每次迭代中,通過對256個訓練視訊(均勻地跨越類)進行取樣來構建256個樣本的小批量,從每個訓練視訊中隨機選擇單個幀。在空間網路訓練中,從所選擇的幀中隨機裁剪224×224子影象;然後它經歷隨機水平移動和RGB抖動。視訊會事先重新縮放,因此幀的最小邊等於256.我們注意到,與[15]不同,子影象是從整個幀中取樣的,而不僅僅是256×256中心。在時間網路訓練中,我們計算所選訓練幀的光流I,如第3節.從該體積開始,隨機裁剪固定尺寸的224×224×2L輸入並進行處理。學習率初始設定為10-2,然後根據固定的時間減少,所有固定時間對所有訓練集保持相同。也就是說,當從頭開始訓練ConvNet時,速率在50K迭代後變為10-3,然後在70K迭代後變為10-4,並且在80K迭代之後停止訓練。在微調之後,在14K迭代之後,比率變為10-3,並且在20K迭代之後訓練停止。

測試。在測試時,給定視訊,我們取樣固定數量的幀(在我們的實驗中為25),它們之間具有相等的時間間隔。然後,我們從每個幀中通過裁剪和移動四個角和幀的中心來獲得10個ConvNet輸入[15]。然後通過對取樣幀和其中的裁剪塊的分數求平均來獲得整個視訊的類核心。

ImageNet ILSVRC-2012上的預訓練。在對空間ConvNet進行預訓練時,我們使用與上述相同的訓練和測試資料增強(裁剪,移動,RGB抖動)。這個類似網路的[53]中報告的13.5%top-5誤差ILSVRC-2012驗證集合比例高達16.0%。我們認為,改進的主要原因是從整個影象中取樣ConvNet輸入,而不僅僅是其中心。多GPU訓練。我們的實現源自公開的Caffe工具箱[13],但包含許多重要的修改,包括在單個系統中安裝的多個GPU的並行訓練。我們利用資料並行性,並將每個SGD批處理分成幾個GPU。在具有4塊NVIDIA Titan卡的系統上訓練單個時間ConvNet需要1天,這比單GPU培訓的速度提高了3.2倍。

光流是使用OpenCV工具箱中[2]的現成GPU實現計算的。儘管計算時間很快(對於一對幀為0.06秒),但如果在此處完成,它仍然會引入瓶頸,因此我們在訓練之前預先計算了流。為了避免將位移場儲存為浮點數,流的水平和垂直分量線性重新縮放到[0,255]範圍並使用JPEG壓縮(在解壓縮後,流重新縮放回原始範圍)。這將UCF-101資料集的流量大小從1.5TB減少到27GB。

 

6.評估

資料集和評估協議。評估在UCF-101 [24]和HMDB-51 [16]動作識別基準上進行,這些基準是最大的可用註釋視訊資料集之一。UCF-101包含13K視訊(平均180幀/視訊),註釋為101個動作類; HMDB-51包括51個動作的6.8K視訊。兩個資料集的評估協議相同:組織者提供三個分組到訓練和測試資料,並且效能通過分割的平均分類精度來衡量。每個UCF-101分組包含9.5K訓練視訊; HMDB-51分割包含3.7K訓練視訊。我們首先在UCF-101資料集的第一次分割上比較不同的體系結構。為了與現有技術進行比較,我們遵循標準評估協議,並在UCF-101和HMDB-51上報告三次分割的平均準確度。


空間ConvNets。首先,我們測量空間流ConvNet的效能。考慮了三種情況:(i)從頭開始對UCF-101進行訓練,(ii)對ILSVRC-2012進行預訓練,然後對UCF-101進行微調,(iii)保持預先訓練好的網路固定並僅訓練最後(分類)層。對於每個設定,我們嘗試將dropout設定為0.5或0.9。由表1a所示的結果可以明顯看出,僅對UCF-101資料集進行ConvNet訓練會導致過擬合(甚至高dropout),且不如對大型ILSVRC-2012資料集進行預訓練。有趣的是,對整個網路進行微調只比僅訓練最後一層提供了微小的改進。在後一種情況下,較高的dropout和過度規律化學習導致較差的準確性。在以下實驗中,我們選擇在預先訓練的ConvNet上訓練最後一層。

時間ConvNets。在評估了空間ConvNet變體之後,我們現在轉向時間ConvNet架構,並評估輸入配置的影響,如3.1節所示。特別是,我們測量了以下效果:使用多個(L = {5,10})堆疊光流;軌跡堆疊;平均位移減法;使用雙向光流。這些架構是從頭開始在UCF-101資料集上進行訓練的,因此我們使用0.9的正dropout來幫助提升泛化效能。結果如表1b所示。首先,我們可以得出結論,在輸入中堆疊多個(L> 1)位移場是非常有益的,因為它為網路提供了長期運動資訊,這比一對幀之間的流動更具有辨別力(L = 1)設定)。將輸入流從5增加到10導致改善較小,因此在以下實驗中我們將L固定為10。其次,我們發現平均減法是有幫助的,因為它減少了幀之間全域性運動的影響。我們在以下實驗中將其用作預設值。不同堆疊技術之間的差異是微不足道的;事實證明,光流堆疊比軌跡堆疊表現更好,並且使用雙向光學流動僅略好於單向前向流動。最後,我們注意到時間ConvNets顯著優於空間ConvNets(表1a),這證實了運動資訊對於動作識別的重要性。

我們還實現了[14]的“慢融合”架構,相當於將ConvNet應用於一堆RGB幀(在我們的例子中為11幀)。在UCF-101上從頭開始訓練時,它的準確率達到了56.4%,這比從頭開始訓練的單幀架構(52.3%)要好,但效果遠不及使用光流開始訓練。這表明雖然多幀資訊很重要,但以適當的方式將其呈現給ConvNet也很重要。

時間ConvNets的多工學習。由於訓練集的資料量較小,在UCF-101上訓練時間控制具有挑戰性。更大的挑戰是在HMDB-51上訓練ConvNet,其中每個訓練分割比UCF-101小2.6倍。在這裡,我們評估了增加HMDB-51的有效訓練集大小的不同選項:(i)微調在UCF-101上預訓練的時間網路;(ii)從UCF-101中新增78個類,這些類是手動選擇的,因此這些類與本機HMDB-51類之間沒有交集;(iii)使用多工公式(第4節)學習視訊表示,在UCF-101和HMDB-51分類任務之間共享。結果報告在表2中。正如預期的那樣,利用完整的(全部組合的)UCF-101資料(通過借用影象,或通過預訓練隱含)是有益的。多工學習表現


最佳,因為它允許訓練程式利用所有可用的訓練資料。

我們還在UCF-101資料集上進行了多工學習,通過訓練網路對完整的HMDB-51資料(所有分組合)和UCF-101資料(單個分割)進行分類。在UCF-101的第一次拆分中,精度測量為81.5%,使用相同設定實現了81.0%,但沒有額外的HMDB分類任務(表1b)。


雙流ConvNets。在這裡,我們評估完整的雙流模型,它結合了兩個識別流。組合這些網路的一種方法是訓練一個完全連線的聯合堆疊,其中包括多個完整的聯結器。然而,由於過度使用,這在我們的案例中是不可行的。因此,我們使用平均值或線性SVM融合softmax分數。從表3中我們得出結論:(i)時間和空間識別流是互補的,因為它們的融合在兩者上都顯著改善(在時間上為6%,在空間網上為14%);(ii)基於SVM的softmax分數融合優於平均融合; (iii)在ConvNet融合的情況下,使用雙向流動並不是有益的;(iv)使用多工學習訓練的時間ConvNet在單獨和與空間網融合時表現最佳。

與現有技術的比較。我們通過與UCF-101和HMDB-51的三個分裂的現有技術的比較來總結實驗評估。為此,我們使用了在ILSVRC上預訓練的空間網路,最後一層在UCF或HMDB上進行了訓練。使用多工學習在UCF和HMDB上訓練時間網,並且使用單向光學支援和減法來計算輸入。兩個網的softmax分數使用平均值或SVM進行組合。從表4中可以看出,單獨的空間和時間網都比[14,16]的深層結構大得多。兩個網路的組合進一步推動了結果(內聯單個實驗上面的實驗),並


且與最近最先進的手工製作模型相比[20,21,26]。

UCF-101分類的混淆矩陣和每類召回。在圖5中,我們使用我們的雙流模型顯示了UCF-101分類的混淆矩陣,它在第一個資料集分割(表3的最後一行)上達到了87.0%的準確度。我們還可以看到圖6中相應的每類召回。

最糟糕的類召回對應於Hammering類,它與HeadMassage和BrushingTeeth類混淆。我們發現這是由於兩個原因。首先,空間ConvNet將Hammering與HeadMassage混淆,後者可能由兩個類中都出現了人臉引起的。其次,時間ConvNet將Hammering與BrushingTeeth混淆,因為兩個動作都包含反覆出現的動作模式(手向上和向下移動)。

 

7結論和改進方向

我們提出了一種具有競爭效能的深度視訊分類模型,它包含基於ConvNets的單獨的空間和時間識別流。目前看來,在光流上訓練時間ConvNet(如此處)顯著優於原始堆疊幀上的訓練[14]。後者可能過於具有挑戰性,可能需要進行架構更改(例如,結合[30]的深度匹配方法)。儘管使用光流作為輸入,但我們的時間模型不需要顯著的手工製作,因為流是使用基於恆定性和平滑性的一般假設的方法計算的。如我們所示,對於我們的時間ConvNet來說,提取資料是有益的,因此我們計劃對大型視訊資料集進行訓練,例如最近釋出的[14]集合。然而,由於大量的訓練資料(多個TB),這本身就構成了一個重大的挑戰。仍然存在最先進的淺層表示[26]的一些基本要素,這些成分在我們當前的架構中被遺漏了。最突出的一個是區域性特徵池化在時空管上,以軌跡為中心。即使輸入(2)捕獲沿軌跡的光流,我們網路中的空間池化也不考慮軌跡。另一個改進的方法是提高手動操作的安全性,通過平均位移減法來補償。