1. 程式人生 > >關於CNN行為識別演算法的學習記錄

關於CNN行為識別演算法的學習記錄

最近需要做一點行為識別相關的專案,於是把行為識別類的演算法(特別是基於CNN的演算法)調研了一遍。

到目前為止,CNN行為識別類的演算法主要都是基於雙流和3D卷積兩種方法,近年來,融合使用光流和C3D的演算法逐漸增多(I3D),也有的演算法使用瞭如RGB Diffierence(TSN)或人體關節點等多模態的資料。

評估行為識別演算法主要使用的資料集包括:

  • UCF-101:最通用的資料集,幾乎所有論文都會在UCF-101資料集上進行測試,共有101分類,13320段視訊。
  • Kinetic:Deepmind釋出的資料集,從youtube視訊中擷取得到,分為Kinetic-400和Kinetic-600,其中Kinetic-400包含400分類,約300K段視訊;Kinetic-600包含600分類,約500K段視訊。由於資料規模較大,Kinetic被許多網路選擇作為預訓練資料集(如I3D)。

  • Something-Something、Jester、Charades等...

截至2018.10,基於CNN的行為識別演算法在UCF-101資料集上的準確率可以達到98%(I3D [2017]),速度方面也已經有可以做到實時的演算法出現(如ECO [2017],論文中稱其處理速度可以達到230+fps)。

接下來將介紹一些我調研到的行為識別演算法:

1. 雙流網路 (Two-Stream Convolutional Networks)

主要貢獻:最早的雙流網路行為識別。

備註:

1. 提出了two-stream網路,分為空間流網路 (spatial stream convnet) 和時間流網路 (temporal stream convnet),空間流網路使用靜止幀圖片作為輸入,時間流網路使用連續幀間的稠密光流序列作為輸入。

在測試時,對於一段給定的視訊,取樣一定數量的幀(論文中為25),幀間具有相同的時間間隔;然後對於每一幀,通過隨機裁剪 (crop) 和翻轉 (flip) 得到網路的10個輸入;對於每個網路輸入,採用RGB影象 (3 * 224 * 224) 作為空間流網路輸入,對RGB影象提取後續L個連續幀間的稠密光流序列(2L * 224 * 224)作為時間流網路輸入;最後,計算所有輸入影象所得分類得分的平均值作為整個視訊的分類得分。

如下是作者使用的網路結構:

對於最後的雙流資訊融合,作者嘗試了使用平均值和使用線性SVM分類器的方法。

最終,作者在UCF-101和HMDB-51資料集上得到的結果如下圖所示:

2. Two-Stream Fusion

主要貢獻:在雙流網路的基礎上研究了能夠更好融合時空資訊的方法

備註:

1. Spatial Fusion

在雙流網路中,作者利用平均值或者線性SVM分類器融合空間流網路和時間流網路得到的分類結果(softmax輸出),在本文中,作者認為這樣的方法不能很好地融合時空資訊,於是提出了一些新的fusion策略並測試了不同的fusion策略對網路分類精度的影響:

① Sum:

② Max:

③ Concatenation:

④ Conv:

⑤ Bilinear:

測試結果如下:

2. Where to fuse

作者嘗試了幾種不同的方案以修改融合時空資訊的位置,下圖是其中的兩種網路結構:

不同方案的測試結果如下:

3. Temporal Fusion

在雙流網路中,作者通過以一定時間間隔取樣視訊幀作為網路輸入,最後對所有幀所得的分類結果取平均值的方法融合時間資訊,在本文中,作者嘗試了在Spatial Fusion後使用3D Pool和3D Conv的方法,並得到了如下的測試結果:

4. 最後,作者融合了上述方案,得到了最後的測試結果:

3. TSN (Temporal Segment Networks)

主要貢獻:

1. 港中文湯曉鷗組的論文,在雙流網路的基礎上,採用稀疏時間取樣策略 (Sparse Temporal Sampling Strategy) 和視訊級監督 (Video-Level Supervision),提升了網路處理長時間視訊序列的能力;

2. 在傳統的RGB圖和光流圖以外,嘗試了新的輸入模式,包括RGB、RGB Difference、Optical Flow和Warped Optical Flow;

3. 測試了新的基礎網路,例如VGG-16、GoogleNet和BN-Inception。

備註:

1. 稀疏時間取樣策略

如下圖所示:

將一個視訊分成K段 (segment),從每一段中隨機取樣得到一個片段 (snippet);將片段輸入雙流網路得到對應的class score;最後,對於所有的class score,通過一個segmental consensus function(例如Max、Average和Weight Average)得到最終的分類結果。

2. 多模態輸入

在使用Optical Flow、Warped Optical Flow和RGB三模態輸入時,網路的分類精度最高,如下圖所示:

3. TSN在UCF-101和HMDB-51資料集上的測試結果如下圖所示:

4. TRN (Temporal Relation Network)TSN的改進版本

主要貢獻:

1. 使用MLP來表徵不同temporal segment的relation;

2. 通過時間維度上的multi-scale特徵融合,提高了video-level的魯棒性。

備註:

1. TRN主要在Something-Something、Jester和Charades三個資料集上進行測試。作者認為這些資料集中的動作具有“較強的方向性” (actions with strong directionality and large, one-way movements),受益於時序資訊更加明顯。

5. C3D (3D Convolution)

備註:

1. C3D工程由Facebook維護,2017年3月更新v1.1版本,提供了基於resnet的新模型。

2. 關於3D卷積

對於2D卷積,設輸入影象尺寸為c*w*h,其中c為影象通道數,一般為3;卷積核尺寸為K*3*3*3,stride=1,padding=True,則輸出feature-map的尺寸為K*w*h。

對於3D卷積,設輸入視訊段尺寸為c*l*h*w,其中l為視訊序列的長度;卷積核尺寸為K*3*3*3,stride=1,padding=True,則輸出feature-map的尺寸為K*l*w*h。

3. 以下是C3D的網路結構,所有卷積層濾波器尺寸均為3*3*3,pool1濾波器尺寸為1*2*2,其它所有pool層濾波器尺寸均為2*2*2。

4. 以下是C3D模型在UCF-101資料集上的測試結果:

6. R(2+1)D

主要貢獻:提出使用(2+1)D卷積替代3D卷積,在許多資料集上達到了接近state-of-the-art的效果。

備註:

1. R(2+1)D工程由Facebook維護,主要是對R(2+1)D模型的實現,除此以外,還提供了對C3D以及論文中提到的R2D、R3D、MCx、rMCx等模型的支援。

2. 在本文中,作者提出混合使用2D和3D卷積來提高網路的分類精度;此外,還提出了一種新的卷積結構,將3D卷積操作分解為兩個依次進行的卷積操作:2維空間卷積和1維時間卷積,如下圖所示:

並據此提出了幾種新的模型結構,如下圖所示:

另外,作者還將殘差網路的思想融入到R(2+1)D模型中,最終設計出的網路結構如下圖所示:

3. 以下是使用2D卷積、3D卷積和(2+1)D卷積的各種模型在Kinetic測試結果:

4. 以下是R(2+1)D網路在UCF-101和HMDB-51資料集上的測試結果:

7. I3D (Two-Stream Inflated 3D ConvNet)

主要貢獻:將雙流網路與3D卷積結合,設計了新的網路結構,在UCF-101資料集上達到了98.0%的識別精度。

備註:

1. 作者對比了幾種現有的行為識別框架,並設計了新的方案,如下圖e所示:

然後,作者又基於Inception Module設計了新的Inflated Inception-V1網路,如下圖所示:

在測試時,RGB影象序列和optical flow序列分別輸入兩個Inflated Inception-V1網路中,並對兩個預測結果取平均值作為總的預測結果。

2. 以下是I3D網路在UCF-101和HMDB-51資料集上的測試結果(目前識別精度方面的state-of-the-art):

8. ECO

主要貢獻:

1. 採用離散取樣的方法減少冗餘幀,實現了online video understanding,輕量化網路的處理速度可以達到237幀/秒(ECO Lite-4F,Tesla P100,UCF-101 Accuracy為87.4%)。

2. 使用2D+3D卷積完成幀間資訊融合。

備註:

1. 以下是ECO Lite的網路結構:

首先,將一段視訊分成等長的N段,再從每一段中隨機選取一幀輸入網路(S1~SN);輸入影象首先經過共享的2D卷積子網路得到96*28*28的feature map,然後輸入到一個3D卷積子網路中,得到對應動作類別數目的一維向量。

2. 關於幀間資訊融合的部分,作者還嘗試了使用2D與3D卷積相結合的方案(ECO Full),如下圖所示:

3. 以下是ECO網路在UCF-101和HMDB-51資料集上的測試結果:

以下是網路在執行速度方面的測試結果:

作者還測試了不同版本的ECO模型,結果如下:

參考部落格:[論文筆記] 用於線上視訊理解的高效卷積網路