[行為檢測]R-C3D-Resgion Convolutional 3D Network for Temporal Activity Detection

/* 版權聲明:可以任意轉載,轉載時請務必標明文章原始出處和作者信息 .*/

faiculty: 機器學習、計算機視覺交流群:451429116 nn微信公眾號、知乎專欄、簡書,請搜索: faicultynn本專欄主要為學習記錄,可能綜合了網上各類文章或博客,如有侵權請聯繫本人進行刪除。 nQQ:769412850.nn非常期待各位同學投稿,一起學習。n

這篇文章是ICCV 2017的一篇文章,作者主要是以C3D網路為基礎。借鑒了Faster RCNN的思路,對於任意的輸入視頻L,先進行proposal,然後3D-pooling,最後後進行分類和回歸操作。文章主要貢獻點有3個

  • 可以針對任意長度視頻、任意長度行為進行端到端的檢測
  • 速度很快(是目前網路的5倍),通過共享Progposal generation 和Classification網路的C3D參數
  • 作者測試了3個不同的數據集,效果都很好,顯示了通用性。

一、網路結構

整個網路可以分為四個部分:

  • 特徵提取網路:對於輸入任意長度的視頻進行特徵提取
  • Temporal Proposal Subnet: 用來提取可能存在行為的時序片段(Proposal Segments)
  • Activity Classification Subnet: 行為分類子網路
  • Loss Function

下圖是整個網路結構圖。

1.1 特徵提取網路

骨幹網路作者選擇了C3D網路,經過C3D網路的5層卷積後,可以得到512 x L/8 x H/16 x W/16大小的特徵圖。這裡不同於C3D網路的是,R-C3D允許任意長度的視頻L作為輸入。

1.2 Temporal Proposal Subnet

這一部分是時序候選框提取網路,類似於Faster R-CNN中的RPN,用來提取一系列可能存在目標的候選框。這裡是提取一系列可能存在行為的候選時序。

Step1:候選時序生成

輸入視頻經過上述C3D網路後得到了512 x L/8 x H/16 x W/16大小的特徵圖。然後作者假設anchor均勻分布在L/8的時間域上,也就是有L/8個anchors,每個anchors生成K個不同scale的候選時序。

Step2: 3D Pooling

得到的 512xL/8xH/16xW/16的特徵圖後,為了獲得每個時序點(anchor)上每段候選時序的中心位置偏移和時序的長度,作者將空間上H/16 x W/16的特徵圖經過一個3x3x3的卷積核和一個3D pooling層下採樣到 1x1。最後輸出 512xL/8x1x1.

Step3: Training

類似於Faster R-CNN,這裡也需要判定得到的候選時序是正樣本還是負樣本。文章中的判定如下。

  • 正樣本:IoU > 0.7,候選時序幀和ground truth的重疊數
  • 負樣本: IOU < 0.3

為了平衡正負樣本,正/負樣本比例為1:1.

1.3 Activity Classification Subnet

行為分類子網路有如下幾個功能

  • 從TPS(Temporal Proposal subnet)中選擇出Proposal segment
  • 對於上述的proposal,用3D RoI 提取固定大小特徵
  • 以上述特徵為基礎,將選擇的Proposal做類別判斷和時序邊框回歸

Step1: NMS

針對上述Temporal Proposal Subnet提取出的segment,採用NMS(Non-maximum Suppression)非極大值抑制生成優質的proposal。NMS 閾值為0.7.

Step2:3D RoI

RoI (Region of interest,興趣區域).這裡,個人感覺作者的圖有點問題,提取興趣區域的特徵圖的輸入應該是C3D的輸出,也就是512xL/8xH/16xW/16,可能作者遺忘了一個輸入的箭頭。

假設C3D輸出的是 512xL/8x7x7大小的特徵圖,假設其中有一個proposal的長度(時序長度)為lp,那麼這個proposal的大小為512xlpx7x7,這裡借鑒SPPnet中的池化層,利用一個動態大小的池化核,ls x hs x ws。最終得到 512x1x4x4大小的特徵圖

Step3: 全連接層

經過池化後,再輸出到全連接層。最後接一個邊框回歸(start-end time )和類別分類(Activity Scores)。

Step4: Traning

在訓練的時候同樣需要定義行為的類別,如何給一個proposal定label?同樣採用IoU。

  • IoU > 0.5,那麼定義這個proposal與ground truth相同
  • IoU 與所有的ground truth都小於0.5,那麼定義為background

這裡,訓練的時候正/負樣本比例為1:3。

1.4 Loss Function

這裡分類和回歸聯合,而且聯合兩個子網路。分類採用softmax,回歸採用smooth L1.

  • 其中的N都代表batch size
  • lamda 為1

三、實驗結果

3.1 THUMOS『14

首先,作者在THUMOS』14上進行了測試,一個是測試與當前演算法的對比,一個是在不同類別上的得分。

Case1:不同演算法對比

Case2:不同類別上的得分

3.2 ActivityNet

這個好像有點奇怪,作者對比了手工選特徵的方法,發現效果不如?

3.3 Charades

接著作者還在Charades上做了實驗,結果如下。

3.4 速度對比

基於C3D的速度還是非常快的,加之作者採用了參數共享。

參考文獻

[1] Xu H, Das A, Saenko K. R-C3D: Region convolutional 3d network for temporal activity detection[J]. arXiv preprint arXiv:1703.07814, 2017.

推薦閱讀:

【OpenCV圖像處理】總緒論
10 大深度學習架構:計算機視覺優秀從業者必備(附代碼實現)
無人機避障的技術實現方式
HOG特徵如何可視化?

TAG:深度学习DeepLearning | 计算机视觉 |