Timeception Complex Action Recognition

Timeception Complex Action Recognition

地址:https://arxiv.org/pdf/1812.01289.pdf

introduction

當前的很多工作主要關注short-range的行爲識別,如:ucf101,hmdb51 & kinetics。而我們主要關注long range & complex 的行爲。該任務的兩個難點:1)如何同時建立 minute-long temporal modeling 和seconds-long details(對長序列建模的同時,也關注短序列) 2)當前的時空卷積通常是fixed-size kernels,如何建立不同尺度?。所以本文提出:Timeception,1)同時關注長短時間內的序列信息 2)容忍行爲在時間範圍內的差異(是指可以學習短序列,也可以學習長序列麼?)

貢獻:1)learn minute-long action ranges of 1024 timesteps; 2)introduce multi-scale temporal kernels ;3) use temporal-only convolutions;

method

1.motivation

提出質疑:當前的3d卷積中,沒人證明爲什麼要同時學習時空特徵。

雖然有方法認爲可將3d卷積解耦成 空間卷積1*L*L和時間卷積 T*1*1,但這種方式的解耦並不是必須的,我們可以將解耦定義爲:

也就是沒必要解耦成空間與時間鏈接or交替的方式。

2.設計時空CNN的3個原則

1)Subspace Modularity 子空間模塊化

2)Subspace Balance

3)Subspace Efficiency

(這裏幾個原則,可能理解起來就是 設計一個module可以很方便/lightweight的用於現有的很多網絡中)

3.提出的Timeception layers

對長視頻建模的兩個目標:1) learn the possible long-range temporal dependencies ;2)容忍不同的時長。

1)如何學習long-range tenporal dependencies?

本文提出了temporal-only的convolution:T*1*1*1,每個kernel只在一個channel上作用。

如果堆積很多temporal-only 的卷積層不好,所以使用:use channel grouping operation before the temporal-only convolutions and channel shuffling operation after the temporal-only convolutions.

有點像shuffle-net中分組卷積,每個temporal-only的卷積只對當前這一小組的特徵進行作用;分組卷積完成後,在引入channel shuffle,這樣就能融合不同尺度的特徵。

2)如何Tolerating Variant Temporal Extents?

將上面提到的temporal-only的卷積 換成 multi-scale temporal kernels,兩種方式:a) inception 結構 b)dalated 卷積(減少參數)

這裏有點想捕獲不同時間範疇的信息,所以引入不同尺度的kernel size,實現長短信息交互。

3)提出的卷積模型

 

圖b:時間卷積操作的kernel size:3,5,7;在channel維度concat

圖a:先分組卷積,再在channel維度concat;這裏shuffle並不是完全引入random shufle這樣的操作,而是一種“flatten-reshape-flatten”的操作;具體可以看shuffle-net的實現。

experiment

1.數據集: Charades,Breakfast Actions,MultiTHUMOS

2. Original v.s. Altered Temporal Extents

先訓練兩個baseline,一個用mulit-scale temporal kernel,另一個用fixed-sized kernel。結果:(雖然有提高,但這個結果並木有report baseline?)

 

3.Fixed-size vs. Multi-scale Temporal Kernels

 

個人想法:

本文好像就是提出了Timeception 層,只做時間維度的1d卷積,然後像inception一樣把不同卷積核大小輸出的結果在channel維度鏈接。(也可以是dalated 卷積實現)

第一次看這篇paper時,完全沒看懂shuffle操作,shuffle層在代碼中:

一開始感覺就是shape的轉換,怎麼就可以實現shuffle了?不過後來看了一下shuffle-net才明白~

不過這篇paper是將提出的Timeception層接在網絡的最後面(應該是這樣的,具體我也沒細看)感覺也有點奇怪,有點像是在hige-level對不同幀特徵進行時序融合。我之前參考Timeception的思想,將這樣的時序關係學習引入在resnet中間,好像性能反而降了很多...這兩週有空試試接在resnet最後面看看有木有效果~

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