1. 程式人生 > >【論文筆記】視訊分類系列 Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video (OFF)

【論文筆記】視訊分類系列 Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video (OFF)

0. 簡述

運動資訊對於視訊中動作的識別有著重要的作用。其中最常用的一種運動資訊,是光流。之前的方法計算光流是offline的,比較耗時,本文提出了一種新的簡潔的運動表示,叫做Optical Flow guided Feature (OFF)。OFF通過直接計算feature map上pixel-wise的時空梯度,使得CNN可以直接從幀計算到temporal information。
實驗顯示,在UCF101上僅以RGB輸入到OFF網路得到的acc達到93.3%,和two stream(RGB+optial flow)的acc相當,並且快15倍。實驗也顯示OFF還可以和其他motion modalities如傳統光流等配合使用,如將OFF插入到two-stream網路中能達到96.0%的acc。
本文的貢獻主要在兩個方面:
1. OFF是一個快速魯邦的motion representation。當輸入只有RGB時,OFF能夠達到200fps,且效能和state-of-the-art的光流演算法相當。
2. OFF可以end-to-end地訓練,也就是說在一個網路裡面可以同時學到spatial和temporal的特徵表達了,不用再像two-stream那麼分兩個分支來進行了。

1. Optical Flow Guided Feature的來歷

OFF是從光流的定義得到的。光流的基本假設有3個:
(1)相鄰幀之間的亮度恆定
(2)相鄰視訊幀的取幀時間連續,即,相鄰幀之間物體的運動比較“微小”;
(3)保持空間一致性,即,同一子影象的畫素點具有相同的運動
根據光流的微小運動和亮度恆定的假設,我們可以得到:
這裡寫圖片描述
其中I(x,y,t)表示的是t時刻的一幀影象I上位置(x,y)的畫素值。

將上述假設推廣到特徵層,即:
這裡寫圖片描述
其中f(I;w)表示的是一幀影象I的特徵提取function,w為引數。function可以是任何可微函式,在本文中我們使用的是CNN。根據光流的定義,上式中令p=(x,y,t),得到:
這裡寫圖片描述


等式左右兩邊同時除以Δt,得到:
這裡寫圖片描述
這裡的(vx, vy)相當於在feature點p上的二維速度向量。其中前兩項的偏微分相當於f(I;w)(p)在x方向和y方向的spatial gradients,第三項的偏微分則是t方向上的temporal gradients。
特殊情況下,當 f(I;w)(p) = I(p)時,f(I;w)(p)就表示t時刻的一幀影象I上位置(x,y)的畫素值,這個時候(vx, vy)就是常見的光流了。那麼在一般情況下,我們將(vx, vy)稱為特徵光流(feature flow)。

從上式中我們看到
這裡寫圖片描述
是和feature flow [

vx, vy, 1]成正交關係的,即F(I;w)(p)變化時feature flow也發生變化,因此我們稱F(I;w)(p)為Optical Flow guided Feature (OFF)。當滿足f(I;w)(p) = I(p)時,我們稱F(I;w)(p)為Raw OFF。OFF F(I;w)(p)將空間時間的資訊編碼成和特徵光流(vx, vy)正交且互補的向量。

3. 將OFF用於CNN

這裡寫圖片描述
整個網路包含3個子網路:feature generation sub-network, OFF sub-network 和classification sub-network。
(1)feature generation sub-network: 用的是BN-Inception來提取feature map。
(2)OFF sub-network。包括幾個OFF units用於提取OFF特徵,不同的OFF units使用不同深度層級的features,如下圖所示。不同的OFF units之間包含幾個residual blocks用於refine特徵。
這裡寫圖片描述
OFF unit的結果如下圖所示,每個OFF unit包含一個OFF層用於提取OFF,每個OFF層首先通過1*1 conv層(128D)來對兩個輸入的feature進行dimension reduction,然後通過(1)element-wise的相減得到temporal gradient;(2)sobel計算得到spatial gradient;(3)low-level OFF結果的concat三個部分一起得到OFF的輸出。
這裡寫圖片描述
其中用於得到spatial gradient的sobel運算元定義如下。什麼?為什麼sobel運算元能得到spatial gradient?因為它是邊緣檢測運算元呀。
這裡寫圖片描述
(3)Classification sub-network。所有模組輸出的score做平均。

整個網路的訓練採用3階段的訓練策略。在第1階段,我們使用已有的方法,如TSN來訓練feature generation sub-network。在第2階段,我們訓練OFF sub-network和classification sub-network,同時frozen feature generation sub-network的引數。OFF sub-network和classification sub-network的引數是 learn from scratch。第3階段,整個網路進行end-to-end的finetune直到最終收斂。

4. 實驗

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述