R-C3D: Region Convolutional 3D Network for Temporal Activity Detection

這篇文章是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作爲輸入。

learning Spatiotemporal feature with 3DConvolutional Networks(C3D網絡論文)

 

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,興趣區域)將proposal調整到固定尺寸.這裏,個人感覺作者的圖有點問題,提取興趣區域的特徵圖的輸入應該是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.

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