天天看點

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

介紹

這是去年CVPR2017的一篇動作分類的文章,用tensorflow實作,有預訓練模型,代碼連結如下:

http://rohitgirdhar.github.io/ActionVLAD

這篇文章在時空上分别獨立提取特征,然後做pooling聚合,采用了一種VLAD的pooling方法,端到端的訓練,主要解決兩個疑惑:

1.如何聚合視訊幀之間的特征來表示整個視訊。

2.在多流網絡中(例如two-stream)裡面如何整合不同流(雙流)的資訊。

動機

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

一整段視訊中雖然是單一的動作分類,但是可能有多個不同的子類特征,例如basketball shoot中有hoop,dribbling,jump,group,throw,ball,running等多個子類特征,是以我們想找方法去整合多個子類特征到一整段視訊特征的表示中。

相關工作

特征聚合:VLAD和FV,之前是作為一種方式對提取的圖像特征進行後處理編碼,常用于圖像檢索,近年來開始用端到端的訓練方法在卷積神經網絡中表示圖像特征。本文基于此工作擴充到了視訊上。

貢獻:1.基于two-stream做聚合表示視訊特征。2.提出來了多種不同的pooling政策。3.在UCF101和HMDB51上取得了巨大提升。

視訊雙流結構

為了解決上述motivation中的問題,中聚合層中就有了這樣一個參數,action words。它可以了解為子類特征的聚類中心。

可訓練的時空聚合層

設 xi,t∈RD x i , t ∈ R D ,是一個從一段視訊中幀 t∈{1...T} t ∈ { 1... T } 的位置 i∈{1...N} i ∈ { 1... N } 中提取的D-dimension局部特征描述子。劃分這個特征描述子空間 RD R D 到K個action words,可以表示為錨點 {ck} { c k } .,那麼每一個描述子 xi,t x i , t 被配置設定到一個聚類中心,殘差向量 xi,t−ck x i , t − c k 表示描述子和錨點之間的殘差,然後把整段視訊的殘差累加

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

這裡 α α 是一個超參數,j是指D-dimension中的第j個次元。輸出V是一個矩陣,表示k個聚類中心的D-dimension特征描述子,經過normalize後展開為 v∈RKD v ∈ R K D 描述子即可表示整個視訊。

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

這是整個視訊雙流結構圖,可以看出基于two-stream架構,就是多了一個可訓練的ActionVLAD層。

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

這個則是不同pooling政策模組化的對比,可以看出max pooling和average pooling都隻能關注到部分子類特征,而ActionVLAD卻可以聚合不同子類特征的描述子來共同描述視訊特征。

聚合層位置

1.FC層 就如上述描述都D-dimension描述子操作即可。

2.conv層 需要将feature map展開為 h×w×c h × w × c 維描述子。

雙流融合方法

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

第一種是直接concat政策,第二種和第三種都是average政策,隻是融合位置稍顯不同。

實作細節

K=64, α α =1000,dropout=0.5,T=25,梯度裁剪門檻值為5,adam裡面 ϵ=10−4 ϵ = 10 − 4 ,分兩階段訓練:第一階段,先用kmeans固定ActionVLAD,學習率為0.01;第二階段,再學習ActionVLAD,學習率為 10−4 10 − 4 .

效果展示

論文筆記--ActionVLAD: Learning spatio-temporal aggregation for action classification

這個是可視化ActionVLAD模型學到的action words,可以看出(b)中的action word明顯就是頭發。

個人思考

1.位置 i∈{1...N} i ∈ { 1... N } 如何選取的呢?是随機選取位置resize訓練嗎?還是selective selction呢?

2.聚類中心action words如何可視化的呢?這個D-dimension的向量怎麼能可視化出這個效果呢?

繼續閱讀