Temporal Action Detection with Structured Segment Networks (ssn)【轉】


Action Recognition: 行為識別,視頻分類,數據集為剪輯過的動作視頻

Temporal Action Detection: 從未剪輯的視頻,定位動作發生的區間,起始幀和終止幀並預測類別

難點

1: 邊界不明確(助跑跳遠,上籃,高爾夫揮桿)

2: 如何利用時序信息

3: 時序跨度大(Activitynet:1s — 200s)

            上圖為模型框架,用temporal actionness grouping算法提取proposal后進行上下文信息的金字塔池化,后接兩個級聯分類器分別是完整性判斷和類別分類

圖中上半部分所示的是現有的基於視頻短片段(discriminative snippets)的行為識別方法的檢測結果,可以看到只要圖中藍色的框遇到具有明顯判別信息的snippets時(綠色框),分類器就會具有很強的響應,這樣就導致很難精確的去定位動作何時發生何時停止。為解決這個問題,文中指出需要對視頻的時序結構進行分析,也就是說我們需要識別視頻中動作的開始、持續以及結束三個階段來確定視頻中的動作是否完整。 為了簡單的描述整個過程,這里將深度特征提取部分看作一個獨立的小模塊。這樣整個的模型可以描述為以下幾個過程:

 

分水嶺聚合方法

使用temporal actionness grouping (TAG) 方法獲取多個高質量的 proposals (圖中綠色方框)。文中通過使用一個分類器 actionness classifier 來計算每個獨立的 snippets 的 binary actionness probability ,簡單的說就是來預測某個 snippets 存在運動的可能性,這樣就在時序上得到以下圖中所示結果:從上圖中可以看出,如果我們將它反過來我們就可以使用類似於分水嶺算法的方法來生成proposals。


在得到原始的 proposal后,我們將其分別向兩端擴展原始 proposals 長度一半的長度,得到新的2倍於原始長度的新 proposal 。兩端被擴展的部分分別被定義為 starting 和 ending 兩個 stage ,而原始的 proposals 則被定義為中間 course 部分。這樣就得到上圖中黃色方框所對應的情況。 在訓練過程中為了有效的減小計算量,文中采用了類似於上文中的 segment 策略,將擴展后的 proposal 分為 9 個 segments (starting, course, ending 各對應3個), 然后在每個 segment 中隨機選擇一個小片段 snippet 參與運算。這樣不僅可以有效的提取整個proposal 的信息,同時也使得特征的長度不隨 proposal 的長度而改變,方便后續 end to end 的網絡訓練 。 在得到每個 stage 上的多個小片段 snippets 后,文中利用 two-stream 網絡提取每個 snippts 的特征,然后采用的 structured temporal pyramid pooling 操作來對特征進行整合,實現從 snippt-level 的特征到 stage-level 的特征。 在實現過程中,對於starting 以及 ending 兩個 stage 分別采用 one-level pyramids pooling, 既對兩個stage的特征進行一次平均池化(圖中黃色和藍色部分)。對於course stage 文中采用 two-level pyramid pooling , 在第一層原始的 course stage 首先被分為兩個 part , 分別計算兩個 part 的平均池化;在第二層對上一層得到的結果再進行一次平均池化(圖中綠色部分),這樣分別得到了 starting, course, ending 所對應的 stage-level 特征。

在得到stage-level 特征后,文章中分別采用兩種分類器 activity classifer 以及 completeness classifiers 分別實現對動作和動作的完整度進行分類。activity classifer 包含一個分類器,它僅輸入 course 的特征,將 proposals 分為 K+1 個類別(包含背景類)。 completeness classifiers 則包含 K 個二分類器,每個分類器的輸入是其對應的第 k 類 starting, course, ending stage 金字塔池化特征,輸出該動作是否完整的概率。文中從概率的角度將兩種分類器通過聯合概率的形式進行整合,從而構造統一的損失函數,實現端對端的學習。 在得到 stage-level 的特征后我們不僅可以實現分類,還可以實現對原始的 proposal 進行重新定位,這個過程類似於 RCNN 對bounding box 的回歸操作。文章中對訓練樣本中正類 proposal , 以其最接近的 groundtruth 為目標對該 proposal 的中心和長度進行回歸。文中采用多任務學習策略將分類和回歸兩個部分整合為一個統一的損失函數。 定義統一分類損失(unified classification loss):

兩種分類器部署在高級特征之上。對於一個proposal:pi

A分類器給出一個經過softmax后的向量,條件分布表示為 P(ci|pi),其中 ci 表示類別。

對於每個類別 k,對應的 Ck 完整性分類器給出一個概率值,分布為:P(bi|ci,pi),bi 指示動作是否完成。

訓練時,關注三種proposal樣本:

(1)positive proposals(ci>0,bi=1):與最接近的groundtruth的IOU至少為0.7

(2)background proposals(ci=0):不與任何groundtruth重疊

(3)incomplete proposals(ci>0,bi=0):其80%包含在groundtruth中,但IOU小於0.3,僅僅包含gt的一小部分。

Thumos14和Activitynet1.3的結果:

   

code:github 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM