CVPR2017之ActionVLAD(對特徵整合方式的改進)
背景
關於視訊中的行為識別,通常會出現這種識別錯誤的情況:即一段視訊中包含若干動作,譬如打籃球的視訊中包含跑、跳、扔東西等多種行為,如何能正確地識別為投籃?
當前行為識別主要有兩種CNN結構:(1)第一種:3D spatio-temporal 卷積,這種方法識別準確率有待提升,優勢是速度較快。(2)第二種,也就是目前常用的方法:two-stream architectures,將視訊分解成影象流和動作流。
目前對長時間結構建模的方法不只是有VLAD,還有LSTM方法,但是不是端到端的訓練,需要後處理,ActionVLAD可以實現對視訊的端到端的訓練。
上述兩種方法均有一種缺陷:這些方法主要集中於片斷地資訊,不能巨集觀的把握整個video。所以我們需要一種可以表示global feature的方法。因此ActionVLAD應運而生。而該方法起源於NetVLAD,NetVLAD起源於VLAD。這個方法可以聚集aggregate feature,相當於一種新的Pooling策略。
講述ActionVLAD之前,需要先講解NetVLAD。
NetVLAD:
VLAD是一種新的池化方法,在事件層面的檢索和影象分類方面有著重要的作用。其中,與VLAD可以相提並論的另一種方法BOF法。BOF法具體內容可以看
http://blog.csdn.net/chlele0105/article/details/9633397.
NetVLAD的本質是對特徵計算殘差,對不同的時刻和幀進行aggregation,得到特徵V。
是N個D維區域性影象描述器。K個聚類中心(視覺詞彙)。輸出是VLAD影象的表示:V,V是KxD維,這個矩陣隨後將被轉換成向量並被歸一化。因此NetVLAD公式可以描述為:
其中,是k-means聚類得到。K-means聚類得到多個聚類中心:是K-Means中的均值向量u,具體的K-Means參考周志華的機器學習P202。
變形則可以得到
,因此反向傳播的時候,可以看到它調整的權重應該是中心ck.
VLAD公式為:
,與NetVLAD的區別在於有無,由於NetVLAD需要反向傳播,故需要該係數。
VLAD和NetVLAD的效果的不同之處在於
即聚類中心點是否可變。VLAD不可變,在中心,而NetVLAD是可變的,聚類中心隨著訓練的進行不斷的調整,因此可以不在中心。
Action VLAD
與NetVLAD極其相似,唯一的區別是加入了時間資訊,即公式如下所示:
該方法與普通的Pooling有下圖的區別:
可以看到,其將行為進行無監督聚類(KMeans),得到若干行為子類,進而對每個子類進行提取特徵並生成特徵向量。
網路結構
該論文使用的網路結構是two-stream型的網路,其用VGG進行特徵的提取,最終得到如下圖所示的結構。
對RGB進行特徵的提取之後,在Conv5_3加入AvtionVLAD進行特徵的聚合,FlowStream同RGB一樣進行提取特徵。
最終再進行將兩種特徵結合起來進行分類判斷。
總結
該論文主要涉及到一種新的網路結構,名為ActionVLAD,其借鑑了NetVLAD的策略,將其拓展到三維的空間下,即加入了時域,該網路結構的作用在於可以對不同時間、圖片不同位置的特徵進行融合,得到一種對視訊空間維度和時間維度的獲取。進而可以對特徵的提取更全面,對複雜行為的分析更全面,而且也是end-to-end的方式。
注:local descriptor表示的是圖片的一個區域性區域,VLAD及其衍生的網路都是對圖片的區域性進行特徵提取,再求和,從而判斷出該圖片距離聚類中心ck的大小,