[行爲檢測] CDC-Convolutional-De-Convolutional Networks for Precise Temporal Action Localization

參考論文

Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos,CVPR 2017

內容介紹

Abstract
許多最先進的系統使用片段級分類器來選擇和排列預先確定的邊界的提議片段。
然而,一個理想的模型應該超越片段級,並在適當的粒度上進行密集的預測,以確定精確的時間邊界。
爲此,我們設計了一種新型CDC網絡,該網絡放在3D ConvNets的頂層,能有效的提取動作語義,減少輸入數據長度
CDC濾波器同時執行所需的時間上採樣和空間下采樣操作,以預測幀級粒度上的動作。

1. Introduction
最近時序動作定位在計算機視覺界很火,該任務主要涉及確定視頻是否包含特定動作和定位事件起止時間
典型工作框架是融合大量特徵和訓練分類器,可以在滑動窗口或分段proposals上操作
3DCNN能夠很好的學習時空的高級語義抽象,但是丟失了時間上的細粒度,衆所周知的C3D架構輸出視頻的時序長度減小了8倍
在像素級語義分割中,反捲積被證明是一種有效的圖像和視頻上採樣的方法,用於產生與輸入相同分辨率的輸出。
對於時序定位問題,輸出的時序長度應該和輸入視頻一致,但是輸出大小應該被減小到1x1。
作者提出一個CDC filter同時在空間上卷積,在時間上反捲積。在3D ConvNets頂層堆疊多個CDC層來形成CDC網絡。
總結三大創新貢獻:
第一個將兩個互逆的操作結合在一起
利用CDC filter 建立一個CDC網絡來具體解決時間定位的精度問題
模型在視頻每幀動作標註中優於最先進的方法,並且在廣泛的檢測閾值下顯着提高了時序動作定位的精度。

2. Related work
Action recognition and detection
早期工作主要關注在可控環境下的簡單動作,近來轉向原始未裁剪視頻,回顧了一下發展歷史(略)
Temporal action localization
介紹該問題來源和發展過程(略)
De-convolution and semantic segmentation
介紹反捲積和語義分割的來源和發展,還提到全卷積和上採樣啓發了很大範圍。

3. Convolutional-De-Convolutional networks
3.1. The need of downsampling and upsampling
採用C3D的conv1a to conv5b作爲CDC的第一部分,pool5改爲1 × 2 × 2
設置CDC的輸入爲112x112,若給定輸入視頻片段的時序長度爲L,則pool5輸出數據大小爲(512,L/8, 4, 4)
3.2. CDC filter
將C3D的FC6改爲conv6,原來的FC6中的一個filter將來自pool5的4x4特徵圖作爲輸入,並輸出一個值。
現在conv6的一個filter能夠在時間上堆疊的長度爲L/8、大小爲4x4的特徵圖上滑動,分別在時間上輸出L/8個值,conv6核的大小爲4x4=16。
雖然conv6空間上下采樣,但時間長度不變。然後在conv6之後接一個deconv6,來增加時間長度保持空間大小,該層核的大小爲2。
與上面提到的相反,作者提出一個CDC filter CDC6由兩個獨立的卷積filter組成並在同一張輸入的4x4特徵圖上操作。
每一個這樣的卷積濾波器具有與conv6中的濾波器相同的內核大小,並分別輸出一個單個值。
每個4x4的特徵圖在時間上都會產生2個輸出(逆卷積內核大小爲2,stride=2, padding=0)。
區別:
CDC6這種聯合濾波器的內核大小爲2x4x4 = 32;而獨立的conv6和deconv6總共參數爲4x4+2=18。
CDC6每個時間的輸出都來自專用於此輸出的獨立卷積核而獨立的conv6和deconv6不同的時間輸出共享由單個卷積內核輸出的相同的高級語義
更多的參數會導致filter難以學習,爲了解決這個問題,提出了一種適應C3D中預先訓練的FC6層來初始化CDC6的方法
3.3. Design of CDC network architecture

3.4. Training and prediction
Training data construction  
爲了防止過多的背景進行訓練,保證每個窗口至少有一幀是動作
Optimization

Fine-grained prediction and precise localization
在測試階段對整個視頻進行幀級預測,通過對置信分數的閾值化和對同一標籤的相鄰幀進行分組,可以將視頻分割成段併產生定位結果。
但這種方法對噪聲的魯棒性不強,設計時域平滑策略是一種特別而非平凡的方法。
我們只需要把CDC網絡應用在提議片段而不是整個視頻上,就能避免相鄰幀分組的挑戰以及加速測試過程。
提議片段只有粗糙的邊界,建議使用CDC網絡的細粒度預測來定位精確的邊界。
首先,看向一個更寬廣的間隔,我們按照原始段長度的百分比α將兩個提案段的邊界兩邊延伸。
然後,類似於準備訓練段,我們在測試視頻上滑動時間窗口而不重疊。
只需要保持與至少一個擴展提議片段重疊的測試窗口,將這些窗口提供給我們的CDC網絡,並生成每幀動作類分數。
每個提案段的類別設置爲具有該段中所有幀的最大平均置信度得分的類。如果一個提議段不屬於背景,則保留並提取邊界。
給出段中預測類的得分序列,我們進行高斯核密度估計,得到其平均μ和標準差σ。
從擴展段的每一側的邊界框架開始並向其中間移動,縮小其時間邊界,直到達到一個具有置信度分數不低於μ-σ的幀。
最後,我們將段的預測分數設置爲預測類別在精細邊界段中的幀的平均置信度。

4. Experiments
4.1. Per-frame labeling
THUMOS’14
2014年THUMOS挑戰賽的時序行爲定位任務涉及20項行爲。細節略。。。
Evaluation metrics(評估指標)
對於每個動作類,按照該類的置信度分數對測試集中的所有幀進行排序,並計算平均精度(AP)。然後平均所有類以獲得平均AP(m AP)。
Comparisons

4.2. Temporal action localization
根據CDC網絡的每幀標註結果,我們生成提案,確定類別,並根據3.4節預測精確邊界。該方法對於任何產生提議段的方式都適用
我們對THUMOS'14進行實驗,從而採用S-CNN提議網絡生成的公開提議。最後,我們遵循執行標準的後處理步驟,如非最大抑制。
Evaluation metrics
定位性能也由mAP進行評估。排名列表中的每個條目都是預測段。當它具有正確的類別,預測是正確的,其與真實值的時間重疊IoU大於閾值。
不允許對同一真實實例進行冗餘檢測
Comparisons

4.3. Discussions
The necessity of predicting at a fine granularity in time(時間上細粒度預測的必要性)
當時間細粒度增加時mAP也會隨之增加
Efficiency analysis
CDC網絡是緊湊的,需要很少的存儲,因爲它可以直接從原始視頻中訓練,以一種端到端的方式進行細粒度的預測,而不需要緩存中間的特徵。
該網絡是很快的,由於相比S-CNN,CDC要對每幀進行預測,從而增加了工作量,隨着視頻長度增加,爲了更高的精度,也降低了效率。
但是在提議片段較短的情況下,由於這些提議段通常密集重疊,因此片段級方法必須逐個處理大量的片段。
然而,CDC網絡只需要處理每個幀一次,因此它可以避免冗餘計算。
Temporal activity localization
作者發現這種方法對定位複雜構成和高級語義的活動也有用。於是在ActivityNet Challenge 2016 dataset上進行了實驗。
該數據集涉及到 200 activities,包括大約10K training videos (15K instances) and 5K validation videos(7.6K instances)
由於沒有高質量的活動提議結果存在,將訓練過的CDC網絡應用到該挑戰賽首名獲勝者的結果之上來定位更精確的邊界。
但上述方案隨着IoU的增加,mAP快速下降。爲此作者嘗試
在使用CDC網絡的幀預測來改善其預測段的時間邊界後,獲得了顯着的改進,特別是當評估IoU設置的比較高時。

5. Conclusion and future works
提出一個CDCfilter來同時執行時間上的上採樣和空間的下采樣
設計了CDC網絡來進行幀級行爲預測
6. Acknowledgment

7. Appendix 
7.1. Additional justification of the motivation 
傳統方法使用片段級檢測,即分析提議段以預測每個段中的動作類,這些方法受到固定段長度和邊界位置的限制。
在這裏,我們提出了一種新穎的模型來首先預測精細級別的動作,然後使用這種細粒度分數序列來精確檢測動作邊界。
細粒度分數序列還提供了自然的方法來確定在幀級別中提煉邊界所需的分數閾值。
此外,雖然在本文中沒有強調,精細級別的得分序列也可以用於選擇精確關鍵幀或發現動作內的子動作。
7.2. Additional implementation details
Temporal boundary refinement
提供了第3.4節中提出的時間邊界細化的細節和僞代碼。大概步驟如下:
擴展提議段-輸入提議段-輸出得分矩陣-根據最大平均置信分數分配類別-計算高斯核函數的均值µ和標準差σ,得出閾值(β=µ−σ)
最後利用兩個for循環分別從兩端到中間進行判斷,以此提取精細邊界。
Discussions about the window length used during creating mini-batches
在構建mini-batch時,理想情況下希望設置窗口越長越好,這樣一來網絡在處理每個窗口時能夠考慮更多時序信息。
但是由於GPU的限制窗口長度不能太長,必須將每個mini-batch的訓練樣本數量設置的非常小。
這將使優化不穩定,從而訓練過程不能很好地收斂
此外,長窗口通常包含比動作幀更多的背景幀,因此我們需要進一步處理數據不平衡問題。
實驗過程中經驗發現將窗口長度設置爲32幀是一個很好的權衡。
7.3. Additional experiments
Sensitivity analysis
擴展提議段既不能太大(包含過多的不相關幀)也不能太小(考慮更廣泛的間隔)
Additional results on ActivityNet

Discussions about other proposal methods
基於THUMOS'14的其他proposals,評估了CDC的時間定位性能
在ActivityNet上,目前在第4節中使用的提案是一個合理的選擇 - 在IoU = 0.5的驗證集上有56K的提案,recall=0.681。
Additional discussions about speed
爲了避免混淆,作者強調,CDC網絡是端到端的,而時間定位的任務不是端到端的,因爲需要結合proposals以及執行後處理步驟。
跟C3D一樣,每個輸入幀具有128×171的空間分辨率,並且將被裁剪爲112×112作爲網絡輸入(訓練時隨機裁剪,測試時中心裁剪)
Additional visualization examples
作爲圖4的補充材料,提供額外的樣例展示CDC細化提議段邊界以及在THUMOS’14上精確時序動作定位的過程。
將提議段和CDC幀級預測結合是強大的,提議段允許利用粗邊界的候選項來幫助處理低分數區間內的噪聲異常值。
所提出的CDC模型允許在幀級別進行細粒度預測,來幫助在幀級別中細化片段的邊界以進行精確定位。

 

這篇文章是2017年ICCV的一篇文章,大佬在這:@Showthem。下面是這篇文章的主要貢獻點。

  • 第一次將卷積、反捲積操作應用到行爲檢測領域,文章同時在空間下采樣,在時間域上上採樣。
  • 利用CDC網絡結果可以做到端到端的學習
  • 這篇文章可以做到per-frame action lableling,也就是每一幀都可以做預測。而且取到了現在的state-of-art結果

一、網絡結構

這篇文章的網絡結構其實是比較簡單的。假設都已經知道了C3D網絡,不知道可以移步到:http://vlg.cs.dartmouth.edu/c3d/ 。這篇文章在C3D網絡上做了改進,改進後的網絡結構如下圖所示。

 

 

網絡步驟如下所示。

  • 輸入的視頻段是112x112xL,連續L幀112x112的圖像
  • 經過C3D網絡後,時間域上L下采樣到 L/8, 空間上圖像的大小由 112x112下采樣到了4x4
  • CDC6: 時間域上上採樣到 L/4, 空間上繼續下采樣到 1x1
  • CDC7: 時間域上上採樣到 L/2
  • CDC8:時間域上上採樣到 L,而且全連接層用的是 4096xK+1, K是類別數
  • softmax層

二、設計細節

這裏主要闡述作者對於CDC filter的設計,CDC filter要做到時間域上的上採樣和空間域上的下采樣。作者這裏討論了幾種設計方案(主要是針對CDC6)。

2.1 Conv6 & deconv6

顯然,我們首先想到的就是先做空間域上的下采樣,然後再做時間域上的上採樣。如下圖所示。

 

 

2.2 CDC6

作者設計的CDC6聯合操作,設計了兩個獨立的卷積核(上圖中的紅色和綠色),同時作用於112x112xL/8的特徵圖上。每個卷積核作用都會生成2個1x1的點,如上conv6,那麼兩個卷積核就生成了4個。相當於在時間域上進行了上採樣過程。

2.3 Loss function

根據上述的網絡結構圖可以知道,經過softmax後會輸出 (K+1, 1, 1),也就是說針對每一幀,都會有一個類別的打分輸出。所以作者說做到了每幀標籤。

假設總共有N個training segments,我們取出第n個training sample,那麼經過網絡後會得到(K+1, 1, 1),經過CDC8後的輸出爲On[t], 然後經過softmax層,針對這個樣本的第t幀,我們能得到它對應的第i個類別的打分是

 

 

總的Loss function爲:

 

 

三、實驗結果

3.1 Per-frame labeling

數據集

作者在THUMOS'14上進行了測試,THUMOS’14包含20種行爲動作,作者使用了2755個修剪的訓練視頻和1010個未修剪的測試視頻(3007個instance)作爲訓練集。作者測試了213個視頻,總計(3358)個instance。

測試尺度
取每一幀的最高預測值所在類,作爲結果類。然後取mAP。

測試結果如下所示。

 

 

3.2 Temporal action localization(時序行爲檢測)

評價尺度

Localization同樣也是用mAP來評估的。預測是正確的,如果預測正確的張數佔ground truth的比例超過IOU threshold。

作者之後測試了不同閾值(IoU threshold)的結果圖。

 

 

吐槽/比較

  • 傳統方法不太好:因爲他們沒有直接定位到temporal localization問題(時間域行爲定位)。
  • iDTF不好:因爲沒有學習到 空間-時間 關係
  • RNN不好:unable to explicitly capture motion information beyond temporal dependencies
  • S-CNN:能捕捉到 空間-時間 關係,但是對於邊界的調整能力不好。也就是定位不太準確。

3.3 性能

On a NVIDIA Titan X GPU of 12GB memory, the speed of a CDC network is around 500 Frames Per Second (FPS)

參考文獻

[1] Shou Z, Chan J, Zareian A, et al. CDC: Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos[J]. arXiv preprint arXiv:1703.01515, 2017.

[2] Tran D, Bourdev L, Fergus R, et al. Learning spatiotemporal features with 3d convolutional networks[C]//Proceedings of the IEEE international conference on computer vision. 2015: 4489-4497.

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