ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

本文介紹的是 ICLR 2020 論文《V4D: 4D Convolutional Neural Networks for Video-level Representation Learning》,作者來自碼隆科技。

作者 | 碼隆科技編輯 | 叢 末

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

論文地址:https://arxiv.org/abs/2002.0744

大多數用於視頻學習的 3D 卷積神經網絡都是 clip-based 的方法,並沒有考慮video-level 的時空特徵變化。我們提出了視頻級別的四維卷積神經網絡,簡稱 V4D,利用四維卷積來建模長距離的時空表示變化,同時利用殘差結構來保存三維時空特徵。我們進一步地介紹了 V4D 的訓練和推理方法。我們在三個視頻理解數據集上進行了大量實驗,V4D 都取得了很好的結果並超過了 3D 卷積網絡。

1 介 紹

3D 神經網絡及其變體主要用於片段級特徵學習,而不是從整個視頻中進行訓練。在訓練期間,基於片段的方法隨機地從視頻中採樣短片段(例如,32 幀)用於表示學習。在測試過程中,它們以滑動窗口的方式均勻地從整個視頻中採樣多個片段,並獨立地計算每個片段的預測分數。最後對所有視頻片段的預測得分進行平均,得到視頻水平預測結果。在訓練過程中,這些 clip-based 的模型忽略了 video-level 結構和遠程時空依賴性,因為他們只採樣了整個視頻的一小部分。同時,在測試過程中,簡單地平均所有片段的預測分數也可能是次優的。為了克服這個問題,時間片段網絡(TSN)均勻地採樣來自整個視頻的多個片段,並使用它們的平均得分來指導訓練過程中的反向傳播。因此,TSN 是一種 video-level 表示學習框架。然而,TSN 中的幀間交互和視頻級融合只是在很晚的階段才進行,無法捕捉到更精細的時間結構。

本文提出了一個通用的、靈活的視頻級表示學習框架 V4D,如圖 1 所示。V4D 由兩個關鍵設計組成:(1)整體採樣策略;(2)4D 卷積交互。我們首先通過引入視頻級採樣策略,對覆蓋整個視頻的一系列 short-term 單元進行均勻採樣。然後,通過設計 4D 殘差塊,對長程時空依賴性進行建模。4D 殘差塊可以很容易地集成到現有的 3D CNN 中,比 TSN 更早和更結構化地進行遠程建模。我們還為 V4D 設計了一個特定的視頻級推理算法。具體來說,我們在三個視頻動作識別基準上驗證了 V4D 的有效性: Mini-Kinetics-200、Kinetics-400 和 Something-Something-V1。V4D 結構在這些基準上實現了非常有競爭力的性能,並比 3D CNN 獲得了提升。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡
ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

Figure 1: Video-level 4D Convolutional Neural Networks for video recognition.

2 相 關 工 作

用於視頻識別的體系結構大致可分為三組:雙流 CNN、3D CNNs 和長期建模框架。

2.1 雙流 CNN

雙流架構最早由 Simonyan & Zisserman 提出,其中一個流用於從 RGB 圖像學習,另一個流用於建模光流。兩個流產生的結果在後期進行融合,得到最終的預測結果。然而,其主要缺點是光流的計算往往需要較長的時間。最近也有一些工作致力於降低模擬光流的計算成本。在視頻理解領域,雙流輸入與融合是一種提高各種結構精度的通用方法,它與我們提出的 V4D 是正交的。

2.2 3D CNNs

3D CNN 經常有較多的參數,需要更多的訓練數據來實現高性能。最近在大規模數據集比如 Kinetics-400 上的實驗顯示了 3D CNN 可以在大多數情況下超過 2D CNN,甚至和雙流法相當。然而 3D CNN 中的大多數是基於片段的方法,這意味著在訓練階段他們只探索了一部分視頻。

2.3 長期建模框架

目前已經有一些方法開發了長期建模框架,用於捕獲更復雜的時間結構。一種方法使用 2D CNN 進行幀級特徵提取,用遞歸神經網絡對連續視頻幀序列進行運算。而 TSN 利用稀疏採樣和聚集從整個視頻中提取稀疏的採樣幀來學習視頻級的表徵,最後對這些分數進行平均以生成視頻級別的判斷。雖然最初設計用於 2D CNN,但是 TSN 也可以應用於 3D CNN,它被設置為本文的基線之一。TSN 的一個明顯缺陷是,由於簡單的平均聚合,它不能建模更精細的時間結構。

3 V 4 D

在這一部分中,我們介紹了一種用於視頻動作識別的新型視頻 4D 卷積神經網絡,即 V4D。這是第一次嘗試為基於 RGB 的視頻識別設計 4D 卷積。現有的 3D CNN 以一個短期片段作為輸入,沒有考慮三維時空特徵的演化來進行視頻層的表示。儘管 Nonlocal Network 和 Compact Generalized Nonlocal Network 提出了對非局部時空特徵建模的 self-attention 機制,但這些方法最初是為基於片段的 3D CNN 設計的。目前尚不清楚如何將這種操作納入整體視頻表示,以及這種操作是否對視頻級學習有用。另外直接將 Nonlocal 應用於整個視頻的計算量也比較高。我們的目標是設計一種計算量低而且容易優化的 long-term spatiotemporal model。在這項工作中,我們引入了殘差 4D 塊,並將 3D CNN 投射到 4D CNN 中,以學習 3D 特徵的遠程交互,從而得到“time of time”的視頻級表示。

3.1 視頻級採樣策略

為動作識別建模有意義的視頻級表示,網絡的輸入要覆蓋給定視頻的整體持續時間,同時,保持短期的動作細節。在這項工作中,我們均勻地劃分整個視頻,並從每個部分隨機選擇一個片段來表示一個短期動作模式,稱為“動作單元”。然後我們用一系列動作單元來表示視頻中的整體動作。

3.2 用於學習時空交互作用的 4D 卷積

三維卷積核已被提出多年,對短期時空特徵建模具有強大的作用。然而,由於三維核的尺寸較小,三維核的 receptive field 往往受到限制,通常採用 max pooling 來擴大 receptive field,導致信息丟失。這啟發了我們開發新的操作,可以同時建模短期和長期的時空表示,易於優化和快速訓練。從這個角度出發,我們提出了 4D 卷積來更好地對長程時空相互作用進行建模。

我們定義輸入的尺寸是 (C,U,T,H,W),其中 C 是頻道數量,U 是動作單元的數量,T、H、W分別代表每個動作單元的時間長度、高度和寬度。一個位於 (u,t,h,w) 的屬於第 j 個頻道的輸出像素用

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

來表示,4D 卷積可以被表示成

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

而因為卷積運算是線性運算,所以可以交換求和順序,從而得到公式(2)

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

注意到括號裡面的運算其實就是 3D 卷積運算,所以其實 4D 卷積可以由 3D 卷積實現。這就是在大多數深度學習框架都沒有提供 4D 運算的情況下,我們是如何實現 4D 卷積的。

此外,在圖 2 中我們可視化了幾種 4D 卷積核的行為並與 3D 卷積核進行了對比,圖中藍色表示卷積核,綠色表示卷積核的中心。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

Figure 2: Implementation of 4D kernels, compared to 3D kernel s. U denotes the number of action units, with shape of T;H;W. Channel and batch dimensions are omitted for clarity. The kernels are colored in Blue, with the center of each kernel colored in Green.

與三維卷積相比,我們所提出的 4D 卷積能夠在更有意義的 4D 特徵空間中對視頻進行建模,使其能夠學習更復雜的遠程三維時空表示交互。然而,4D 卷積不可避免地會引入更多的參數和計算成本。在實際應用中,以 k×k×k×k 的 4D 卷積核為例,比 k×k×k 的 3D 卷積核的參數要多 k 倍,所以我們還對 k×k×1×1 和 k×1×1×1 的 4D kernels 進行了探索,以減少參數,避免過擬合的風險。

3.3 視頻層次 4D CNN 架構

我們將 4D 卷積加入到現有的 CNN 結構中。為了充分利用當前效果較好的 3D CNN,我們提出了殘差 4D 模塊,這使得同時學習視頻級別的短程和長程時空變化成為可能。特別地,我們定義一個交換函數,ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡,用來交換張量

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡
ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡維度。這樣,4D 殘差模塊可以表示成:

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

其中

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

是 4D 卷積運算,

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

是輸入和輸出,通過交換函數phi來保證輸入輸出維度的一致性。

理論上,任何三維 CNN 結構都可以通過集成我們的 4D 卷積塊投射到 4D CNN。如先前的工作所示,通過在較低層應用二維卷積和在較高層應用三維卷積可以獲得更好的性能。在我們的框架中,我們使用了來自 Feichtenhofer 等人的 Slowpath 作為我們的 backbone,簡寫為 I3D-S。雖然最初的 Slowpath 是為 resnet50 設計的,但我們可以將其擴展到 I3D-S resnet18 進行進一步的實驗。我們的 3D 主幹的詳細結構如表 1 所示。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

3.4 訓練和推理訓練

訓練方法:如圖 1 所示,網絡的卷積部分由 3D 卷積層和提出的殘差 4D 塊組成。每個動作單元在共享相同參數的三維卷積層中分別和並行地訓練。從每個動作單元計算出的這些單獨的 3D 特徵然後被輸入到殘差 4D 塊中,以模擬連續動作單元的長期時間演化。最後,對所有動作單元的序列應用全局平均池,形成視頻級表示。

推理方法:

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

3.5 進一步的討論

在這一節中,我們將展示所提出的V4D可以被看作是對近年來廣泛應用的方法的拓展,

(1) 時間段網絡

我們的 V4D 與時間段網絡(TSN)密切相關,雖然最初是為 2D CNN 設計的,但是 TSN 可以直接應用到 3D CNN 來建模視頻級表示。在訓練過程中,每一個片段都是單獨計算的,然後對全連接層之後的預測分數進行平均。由於全連接層是一個線性運算,在全連接層之前(類似於 global avgpool)或全連接層之後(類似於 TSN)計算平均值在數學上是等價的。因此,如果 4D 塊中的所有參數被分配為零,則我們的 V4D 可以被認為是 3D CNN+TSN。

(2) 空洞時序卷積

一種特殊的 4D 卷積核,kx1x1x1,和時序空洞卷積密切相關。當把所有的動作單元在時間維度上連接在一起,輸入的視頻級別表示可以被看成是 (C,UxT,H,W) 的一個張量。這種情況下,kx1x1x1 的 4D 卷積可以被看成空洞為 T 的 kx1x1 的 3D 卷積。當然 kx1x1x1 的 4D 卷積是最簡單的 4D 卷積核形式,其他更加複雜的 4D 卷積核不能用這種方式解釋。此外我們提出的 4D 殘差塊包含了殘差結構,從而使得長時間的視頻結構和短時間的時空結構可以被同時學習,這是時序空洞卷積所不具有的功能。

4 實驗

4.1 數據集

我們在三個標準基準上進行實驗:Mini-Kinetics-200、Kinetics-400、Something-Something-v1。Mini-Kinetics 包含 200 個動作類,是 Kinetics-400 的一個子集。由於 Kinetics 數據集的一些數據缺失,我們版本的 Kinetics-400 在訓練和驗證子集中分別包含 240436 和 19796 個視頻。Mini-Kinetics 版本包含 78422 個訓練視頻和 4994 個驗證視頻。每個視頻大約有 300 幀。Something-Something-v1 總共包含 108499 個視頻,其中 86017 個用於訓練,11522 個用於驗證,10960 個用於測試。每個視頻有 36 到 72 幀。

4.2 Mini-Kinetics 的實驗

我們使用預先訓練的權重從 ImageNet 初始化模型。為了訓練,我們採用了在第 3.1 節中提到的整體採樣策略。我們均勻地劃分整個視頻成 U 個部分,並從每個部分隨機選擇一個 32 幀的片段。對於每個片段,我們均勻地採樣 4 幀,固定步長為 8,形成一個動作單元。我們將在下面的實驗中研究它的影響。我們首先將每個幀的大小調整為 320×256,然後隨機裁剪,然後將切出的區域進一步調整為 224×224。我們使用 SGD 優化器,初始學習率為 0.01,權重衰減設置為

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

,動量為 0.9。在 35、60、80 的學習率下降了 10 倍,模型共訓練了 100 個週期。

為了進行公平的比較,我們遵循 Nonlocal 和 Slowfast 使用了 FCN Testing。我們從整個視頻中均勻地抽取 10 個動作單元,用 3 個 256×256 區域對每個動作單元進行空間覆蓋,然後進行 V4D 推理。注意,對於原始的 TSN,在推斷期間使用 25 個片段和 10-crop 推理。為了公平比較 I3D 和 V4D,我們對 TSN 也應用 FCN Testing 這種 10 個片段和 3-crop 的推理策略。

結果。為了驗證 V4D 的有效性,我們將其與基於片段的方法 I3D-S 和基於視頻的方法 TSN+I3D-S 進行了比較。為了補償由 4D 塊引入的額外參數,我們在 I3D-S 的 Res4 中添加 3×3×3 殘差塊用於進行公平比較,表示為 I3D-S ResNet18++。如表 2A 所示,即使 V4D 比 I3D-S 在推理中使用的幀數少 4 倍,而且比 I3D-S ResNet18++ 的參數少,V4D 仍然比 I3D-S 的準確率高 2%。與視頻級別方法 TSN+I3D-S 相比,V4D 提升了 2.6% 的準確率。

不同形式的 4D 卷積核。如前所述,我們的 4D 卷積核可以使用 3 種典型形式:k×1×1×1、k×k×1×1 和 k×k×k×k。在本實驗中,我們將 k=3,並在 I3D-S ResNet18 的 res4 末尾應用 1 個 4D 塊。如表 2c 所示,3×3×3×3 kernel 的 V4D 可以達到最高性能。然而,通過考慮模型參數與性能之間的權衡,在下面的實驗中,我們使用了 3×3×1×1 內核。

4D 塊的位置和數量。我們評估了 4D 塊的位置和數量對 V4D 的影響,通過在 res3、res4 或 res5 上使用 3×3×1×1 4D 塊來研究 V4D 的性能。如表 2d 所示,通過應用 4D 塊在 res3 或 res4 可以獲得更高的精度。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

不同數量的動作單元。我們通過使用不同數量的動作單元來訓練 V4D,使用不同的 U_train 參數值。本實驗在 ResNet18 的 res4 末端插入 1 個 3×3×1×1 4D 塊。如表 2e 所示,U_train 對性能沒有顯著影響,這表明:(1) V4D 是一個視頻級特徵學習模型,它對短期單元的數量具有魯棒性;(2)一個動作一般不包含多個階段,因此增加了無幫助。此外,動作單位數量的增加意味著第四維度的增加,這需要更大的 4D 內核來覆蓋時空表示的範圍演化。

與最新技術的比較。我們將我們的 V4D 與以前的最新方法進行了比較。在 res3 和 res4 中,4D 殘差塊每隔一個 3D 模塊使用一次。儘管在訓練和推斷期間使用的幀更少,我們的 V4D ResNet50 比該基準上所有報告的結果都具有更高的精確度,甚至比具有 5 個 Compact Generalized Nonlocal Block 的 3D ResNet101 還要高。此外,我們的 V4D ResNet18 可以比 3D ResNet50 實現更高的精度,而則進一步驗證了我們的 V4D 結構的有效性。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

4.3 在 Kinetics 的實驗

我們進一步對大規模視頻識別基準 Kinetics-400 進行實驗,以評估 V4D 的能力。為了公平地比較,我們使用 ResNet50 作為 V4D 的主幹。訓練和推理採樣策略與前一節相同,除了每個動作單元現在包含 8 幀而不是 4 幀。由於訓練資源有限,我們選擇多階段訓練模型。我們首先用 8 幀輸入訓練 3D ResNet50 主幹網。然後我們加載 3D ResNet50 的參數到 V4D ResNet50 中,同時把所有 4D 參數都凍結成 0。然後用 8×4 輸入幀對 V4D ResNet50 進行微調。最後,我們優化了所有 4D 塊,並用 8×4 幀來訓練 V4D。如表 4 所示,我們的 V4D 在 Kinetics-400 基準上取得了有競爭力的結果。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

4.4 在Something-Something-v1的實驗

與 Mini-Kinetics 和 Kinetics 相比,Something-Something 主要是對時間信息和運動的建模。背景比 Kinetics 更乾淨,但動作類別的運動要複雜得多。每一個視頻中的 Something-Something 包含一個單一的連續動作,在時間維度上具有明確的開始和結束。

結果。與以前的作品相比,如表 4.4 所示,我們的 V4D 在Something-Something-v1 上取得了競爭性的結果。我們使用 Kinetics 預先訓練的 V4D ResNet50 進行實驗。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

時間順序。通過逆轉時間,3D 模型的準確度顯著下降,這說明 3D CNN 可以學習到非常強的時間順序。對於我們的 V4D,有兩個等級的時間順序,短程的順序和一個長程的順序。如表 6 所示,通過反轉每個動作單元內的幀或反轉動作單元的序列,top-1 的精確度顯著下降,這表明我們的 V4D 能夠捕獲長期和短期的時間順序。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

5 結 論

我們引入了新的視頻級 4D 卷積神經網絡,即 V4D,以學習強時空演化的長距離時空表示,以及保留具有殘存連接的 3D 特徵。此外,我們還介紹了 V4D 的訓練和推斷方法,在三個視頻識別基準上進行了實驗,其中 V4D 獲得了不錯的結果。

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡

可視化的結果,第一行為 RGB 視頻,第二行為 TSN+I3D-S, 第三行為 V4D

AI 科技評論系列直播

1、ACL 2020 - 復旦大學系列解讀

直播主題:不同粒度的抽取式文本摘要系統

主講人:王丹青、鐘鳴

回放鏈接:http://mooc.yanxishe.com/open/course/804(回放時間:4月26日下午10點)

直播主題:結合詞典的中文命名實體識別【ACL 2020 - 復旦大學系列解讀之(二)】

主講人:馬若恬, 李孝男

直播時間:4月 26 日,(週日晚) 20:00整。

直播主題:ACL 2020 | 基於對抗樣本的依存句法模型魯棒性分析

【ACL 2020 - 復旦大學系列解讀之(三)】

主講人:曾捷航

直播時間:4月 27 日,(週一晚) 20:00整。

2、ICLR 2020 系列直播

直播主題:ICLR 2020丨Action Semantics Network: Considering the Effects of Actions in Multiagent Systems

主講人:王維壎

回放鏈接:http://mooc.yanxishe.com/open/course/793

直播主題:ICLR 2020丨通過負採樣從專家數據中學習自我糾正的策略和價值函數

主講人:羅雨屏

回放鏈接:http://mooc.yanxishe.com/open/course/802

直播主題:ICLR 2020丨分段線性激活函數塑造了神經網絡損失曲面

主講人:何鳳翔

回放鏈接:http://mooc.yanxishe.com/open/course/801

如何加入?

ICLR 2020丨V4D:視頻級別表示學習的四維卷積神經網絡


分享到:


相關文章: