這篇文章是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.