深度學習時代的視頻理解綜述

深度學習時代的視頻理解綜述

本文為b站@bryanyzhu老師四期視頻理解相關論文解讀的匯總圖文筆記。

我們先精讀深度學習時代視頻理解領域最為重要的兩篇論文:雙流網絡和 I3D。它們分別是領域內兩大類方法雙流(利用光流)網絡和 3D CNN 網絡的代表作。然后我們按照四個板塊:從手工設計特征到深度神經網絡、雙流網絡系列、3D CNN 系列、Video Transformer系列來串燒幾篇有代表性的論文。以期能給讀者描繪出整個深度學習時代視頻理解領域至今為止的發展脈絡和未來的發展方向。

雙流網絡

論文:Two-Stream Convolutional Networks for Action Recognition in Videos

發表于:NuerIPS-2014

導言

雙流網絡雖然不是第一篇用深度網絡來做視頻理解的工作,但是考慮到之前的深度視頻理解模型甚至打不過傳統方法,雙流網絡可以說是第一篇真正將深度網絡在視頻理解領域做work的工作。并且,直到最近,雙流網絡所使用的結合光流特征的方法仍是視頻理解領域的重要一支(另外的重要一支是基于 3D 網絡)。因此,將其稱作為開山之作毫不為過。

在之前是用深度網絡處理視頻數據的工作中,都是直接將多個視頻幀直接送入卷積網絡進行特征提取。然而,CNN 雖然能提取 2D 空間圖像特征,但是感知時序信息的能力較差,無法很好地提取視頻的時序動作信息。本文提出了一個雙流網絡,一支用提取原圖中的 2D 空間圖像信息,而在用來提取時序動作信息的另一分支中,使用預先處理得到的光流圖作為輸入。然后將兩分支的結果合并。最終性能提升明顯。

方法

雙流網絡的模型結構圖如下所示。顧名思義,雙流網絡自然是由兩支網絡組成的,分別稱為空間流卷積網絡和時序流卷積網絡。最終的結果由這兩支的結果 late fusion 平均得到。

early fusion:兩支路在中間特征層進行聚合

late fusion:兩支路在 logits 結果進行聚合

其中空間流卷積的作用就是很常規的 RGB 三通道圖像的特征提取了,主要提取紋理、色彩等特征,相當于就是在做一個基礎的圖像分類。可能有人會好奇,本文不是要做動作識別嗎,不應該主要關注動作嗎,圖片內容有什么用呢?實際上,圖像的語義內容也是很重要的信息。比如像圖中的例子,如果網絡能識別到圖中是一個人拿著一把弓,那其實很大概率就能識別到這個場景中的動作是射箭了。這部分 RGB 圖像本身的語義內容信息就由空間流來提取。

時序流卷積,是本文的核心。因為本文終歸做的是視頻理解中的語義識別任務,視頻數據與圖像數據的最核心的區別就是視頻數據中有時序的動作信息(motion information)。這在動作識別任務中格外重要。在雙流網絡之前的深度動作識別模型,都是直接把視頻幀 RGB 圖像數據送到網絡中,然后給標簽,硬train一發,這樣的最終效果并不好。因為傳統的 2D CNN 網絡是很難感知到時序的信息的。在這里,作者想到,你 CNN 沒辦法很好地提取時序動作特征,那我就直接把它提取好送給你,你只要學習這種特征到結果的映射就可以了。那我們怎么自己提取時序動作特征呢?作者采用了傳統的視頻理解的光流(optical flow)法來做。

在這里插入圖片描述

光流法是對比前后兩幀圖像的變化,得到每個像素位置的變化,來獲得視頻的動作信息。每兩幀圖像之間會得到一張光流圖(類似的,每三幀得到兩張,每四幀得到三張,以此類推)它的具體形式就是一個 w×h×2w\times h\times 2w×h×2 的張量,這里的 222 分別表示水平方向和豎直方向的變化。如下圖所示,d, e 分別就是兩個方向上光流變化的可視化結果。

在這里插入圖片描述

為了利用更長時間的動作信息,文章中這里用的是當前幀及其之后 11 幀、10 張光流圖(這個超參數 10 后面也有對比實驗)的光流特征。怎么樣聚合這些特征是一個問題。在這里,作者也嘗試了兩種聚合方式:optical flow stacking 和 trajectory stacking,即直接的光流堆疊和軌跡堆疊。其實意圖分別由下圖左右部分所示。

在這里插入圖片描述

第一種方式就是簡單直接地將得到的光流圖堆疊在一起,每次疊加的都是同樣位置的光流特征。第二種則是根據光流的軌跡,在軌跡上進行數值的疊加。比如得到第一幀到第二幀的光流圖之后,我們就已經知道第一幀中的某個像素在第二幀中變化到哪個位置了,那我們就去找其對應位置(軌跡)的值進行疊加,然后第二幀到第三幀,位置又變了,我們再去找變化之后的位置疊加。

聽起來明顯是第二種方法更合理,但是本文的實驗結果卻顯示兩種方式性能差不多,甚至是第一種簡單粗暴的方式性能稍優,這也令作者感到費解,并表示這時未來可能的優化方向。

另外,作者還嘗試了雙向光流(bi-directional)的方式。即同時計算前向光流和后向光流(相當于視頻倒放),得到了更好地性能。實際上,像 Multi-scale,Casacade,Bi-directional 這種深度神經網絡常見的設計范式已經經過了大量的研究的驗證。基本是會漲點的,一般至少不會掉點。

總結

雙流網絡可以說是深度視頻理解的開山之作。它利用了傳統方法中的光流法來提取動作信息,再配合 CNN 直接處理原圖得到的內容信息,將深度網絡在動作識別上的性能達到了當時的 SOTA 水平。

雙流網絡帶給我們的一個更高維度的啟示是:當深度學習模型在某個新領域上,通過送數據、給標簽,直接硬train一發的方式并不work,并且單純魔改網絡結構效果也不好時,可以回頭借鑒一下本領域優秀的手工提取特征的方法。比如 2D 卷積網絡確實對于視頻中的時序動作信息(motion information)提取的不好,而傳統方法中的光流特征能很好地表達這種動作信息。那我們不妨直接將處理后的光流特征送入 CNN,讓 CNN 去學習這種特征到結果的映射(這是 CNN 所擅長的)。再配合另一路提取圖像本身特征(這也是 CNN 擅長的)的 CNN 網絡,就有了本文的雙流網絡模型,第一次將深度視頻理解模型做到令人滿意的結果。

雙流I3D

論文:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset

發表于: CVPR-2017

導言

另一篇視頻理解領域劃劃時代的論文是雙流 I3D。它的貢獻從標題中就能看出,一是提出了一個新的模型:雙流 I3D(Two Stream Inflated 3D ConvNet),二是提出了一個新的數據集 Kinetics。

I3D 模型使得我們把一個 2D 卷積模型擴張為一個 3D 模型,這樣我們就可以在視頻領域直接借用圖像領域的 backbone 網絡(如 VGG、ResNet 等),甚至可以把 2D 網絡的預訓練參數也利用起來,作為 3D 網絡的初始化。這樣我們就不用再視頻領域重新設計網絡(比如選 kernel_size,num_of_block 等工作),而是可以借鑒 2D 圖像領域已經有的很好的網絡結構,這些結構的合理性都是在圖像領域經過了驗證的。而視頻無非是多幀時序圖像的堆疊,因此能夠借鑒圖像的網絡結構并擴張到 3D 直接處理視頻,自然是極好的。

Kinetics 大規模數據集提出之后,在其上進行預訓練的模型,再在 UCF-101 上再進行微調,性能已經能夠達到 98%,基本宣告了 UCF-101 數據集的終結。在之后視頻理解相關的工作中,Kinetics 成為了新的主流數據集。這一結果還證明了 “預訓練+遷移學習” 的范式在視頻領域同樣適用。在此之前,視頻領域并沒有一個足夠大的,足夠好用的數據集進行預訓練,沒有一個視頻數據集能夠做到像 ImageNet 之于圖像領域那樣,為大多數其他圖像任務提供一個好用的預訓練模型。“Kinetics預訓練+UCF101微調” 的實驗結果顯示,Kinetics 數據集做到了這一點。但是,一些研究表明,即使拿出 Kinetics 數據集中的某一幀,直接去做圖像的動作識別,效果已經很好了。研究視頻理解,當然是希望模型能夠對視頻幀之間的時序關系進行建模,然后根據這些時序信息做出預測。從這一有些令人尷尬的結論可以看出,視頻理解的研究還有很長的路要走。

方法

在分析了目前視頻理解領域沒有足夠大規模的數據集的現狀之后,文章提出了 Kinetics 400 (后又擴展到 500、600)數據集。有了新的大規模數據集之后,作者先對比了之前視頻理解領域常見的三類方法:

  1. ConvNet+LSTM,用卷積提取二維圖像特征,用 LSTM 建模時序信息;
  2. 3D ConvNets,用 3D 卷積網絡直接處理視頻數據;
  3. Two Stream Networks,雙流網絡,使用光流法預先提取動作信息。

在這里插入圖片描述

圖 a 表示的是第一類方法,對視頻中的每一幀圖像,分別用 CNN 去提取它的特征,然后將時間序列上多幀的特征送到一個 LSTM 中,對時序進行建模,然后將最后一層 LSTM 輸出的結果接到全連接層,完成分類。這種方式非常自然,CNN 提取圖像信息,然后用 LSTM 對時序特征進行建模。但是實在是效果不佳,現在已經幾乎沒有人再用這種方法。主流的方法是剩下的兩大類:3D 卷積和雙流網絡。

圖 b 表示是第二類方法:3D 卷積,非常直接暴力。視頻數據相比于圖像數據無非就是多了一個維度,3D 卷積中的卷積、池化等操作都是三維的。直接將視頻數據送到 3D 卷積中即可提取視頻的特征,然后也是經過全連接層,進行分類。

圖 c 表示的是第三種方法,就是上面介紹過的雙流網絡。一支卷積網絡處理原圖,提取圖像的 2D 空間特征,另一支網絡處理相鄰視頻幀抽取的光流圖,得到時序運動信息。最終兩個支路的 logits 結果進行 late fusion 合并,完成分類。

圖 d 表示的是將 b,c 進行結合的一類方法。在網絡一開始,與雙流網絡一樣,分空間流和時序流兩支,分別去提取 2D 圖像特征和時序動作信息。但是并不是繼續兩支網絡分別得到結果再合并,而是將兩支網絡的中間特征拿出來之后,在用一個 3D CNN 進一步處理,得到最終特征,完成分類。我們之前提到過,這種方式稱為 early fusion。

以上全都是前人工作提出的方法,本文作者在提出 Kinetics 數據集之后,將這幾類方法都在自己新提出的 Kinetics 數據集上跑了一下。在分析各類方法的結果之后,提出了自己的雙流 I3D 網絡。即圖 e。

作者認為,之前的 3D CNN 網絡效果不夠好的一個原因是 3D CNN 自身參數量較大,需要足夠大的視頻數據集支持。那現在有了大型數據集,自然可以更好地發揮 3D CNN 的威力。并且,作者發現即使是 3D CNN 網絡,也需要光流特征來獲取時序動作信息,使用雙流網絡架構的 3D CNN 網絡,效果提升顯著。因此,作者最終提出了雙流 I3D(Two Stream Inflated 3D ConvNet)。

下面我們著重講一下雙流 I3D 網絡的實現細節,原文中,作者分了四個小節來介紹:

  • Inflating 2D ConvNets into 3D:如何將 2D CNN 膨脹為 3D CNN;
  • Bootstrapping 3D filters from 2D Filters:如何用預訓練好的 3D CNN 參數來初始化膨脹后的 3D CNN;
  • Pacing receptive field growth in space, time and network depth:如何控制池化層參數,來控制感受野的大小;
  • Two 3D Streams:如何得到雙流的 3D CNN

我們一一來看:

Inflating 2D ConvNets into 3D

其實本文中將2D 卷積網絡膨脹為 3D 卷積網絡的方式非常簡單直接。2D 網絡中的卷積核尺寸和池化層一般都是平方的,比如 3×3/5×53\times 3/5\times 53×3/5×5 等,直接把它們變成立方的即可,比如 3×3×3/5×5×53\times 3\times 3/5\times 5\times 53×3×3/5×5×5

這種直接將 2D CNN 膨脹為 3D CNN 的好處前面已經提過。由于 3D 視頻數據其實還是處理有時序關系的多幀 2D 圖像數據。我們可以復用之前在圖像領域已經得到驗證過的成功的網絡結構,如 VGG、ResNet 等,而不需要再重新調整各處細節的網絡結構參數。而之后如果又有新的好用的 2D CNN 結構,也是直接膨脹到 3D 拿來處理視頻數據即可。

Bootstrapping 3D filters from 2D Filters

如何用 2D CNN 的預訓練權重來初始化一個 3D CNN 。作者的想法是同一個網絡,在接收同樣的輸入時,輸出應該是一樣的。將一張圖片復制 NNN 次,就得到一個 NNN 幀的 “(無聊的)視頻”,將這個 “視頻” 送入到 3D CNN 網絡中,為了保持輸出的一致,除了 2D 參數復制 NNN 次之外,我們還要將參數除以 NNN 。這樣,同一個網絡,在接受同樣的輸入(圖片/“視頻”)時,輸出就是一樣的了。這就比較合理地完成了用 2D CNN 參數初始化 3D CNN 的過程。

Pacing receptive field growth in space, time and network depth

與 2D 卷積的一個不同點是 3D 卷積的新增的維度(時間維度)和原來的兩個維度(空間維度)的物理含義是不一樣的,它們的數值通常也是不在一個范圍內的(空間維度通常是幾百,時間維度通常是幾十)。這是由幀率和圖像尺寸決定的。如果采用相同的池化參數,時間維度很快就減到很小了,這顯然是不合理的。因此,在進行池化時,時間維度的池化參數與空間維度的池化參數不應該簡單的相等。作者在實際實現 Inception-V1 的 I3D 膨脹網絡時對于初始幾層的時間維度的池化參數做了調整。

Two 3D Streams

在這里插入圖片描述

總結

本文結論部分強調了遷移學習在視頻領域的有效性得到了驗證。但也同時指出,雖然做了不同數據集的遷移學習實驗,但是本文做的實驗還只是在動作識別這一個任務內進行的,如果能夠在不同的視頻任務(如視頻目標檢測、視頻語義分割等)上來驗證遷移學習的有效性當然是更好的。另外,在網絡結構的設計上,作者也認為本文并沒有進行全面的探索,像 action tubes、attention mechanism 這些結構都沒有進行嘗試。這些都是未來研究中不錯的跟進方向。

本文的兩個貢獻非常清晰:I3D 模型(2D 模型膨脹為 3D 模型的方法)、Kinetics 數據集。之所以說本文稱得上是視頻理解領域劃時代的論文,是因為它的兩個貢獻全面地解決了該領域接下來研究的問題。一是提出了一個高質量的大規模視頻數據集。在以前,如果我們想設計一個全新的、針對視頻領域的模型,有一個棘手的問題是視頻領域沒有足夠大的數據集來進行預訓練。不像其他已有的圖像領域遷移過來的結構,可以使用 ImageNet 數據集上的預訓練參數。本文提出了 Kinetics 數據集之后,視頻領域大規模數據集的空缺得以填補。二是提出了從一個 2D CNN 膨脹為 3D CNN 的方法,并且也提出了將 2D CNN 的預訓練參數遷移到 3D CNN 網絡的方式。這樣如果我們想就用已有的結構,去做一些新的任務,就可以直接借助圖像領域的精心設計和訓練的網絡結構和預訓練參數來做視頻任務。自此,視頻理解領域的后續研究工作就可以從更多角度展開了。

從手工設計特征到深度神經網絡

在手工設計特征的時代,首先是從圖像領域的 SIFT 特征延伸到視頻領域的 STIP 特征。然后加入了光流特征和軌跡信息,有了 DT/IDT。除此之外,為了建模時序信息,一些手工特征的方法也會引入 LSTM 來處理時序視頻幀。最后,為了處理長視頻,手工特征時代也會把 IDT 特征和 Fisher Vector Encoding 進行融合,從而得到全局的視頻特征。

自從 AlexNet 驗證了深度 CNN 網絡在圖像領域的潛力之后,大部分進行視頻領域的工作也從原來的手工設計特征轉移到深度神經網絡上來。

本部分僅介紹一片論文——DeepVideo,它是深度學習時代早期將 CNN 網絡用于視頻分類的經典論文。

DeepVideo

論文:Large-Scale Video Classification with Convolutional Neural Networks

發表于:CVPR-2014

導言

本文的貢獻一是對集中將圖像領域的 2D CNN 網絡直接拿來處理視頻數據,做了一些最基本的嘗試,二是提出了一個巨大的 Sports 1M 數據集,含有一百萬運動動作視頻。

方法

視頻與圖像在數據格式上的區別就是多了一個時間維度,本文先嘗試了幾種將 2D 的 CNN 網絡應用于視頻任務的最直接的想法,如下圖所示。

在這里插入圖片描述

  • Single Frame:從視頻幀中選一幀直接送到 CNN 網絡中提取特征并完成分類,相當于就是一個圖片的分類任務,可以視作是一個 baseline;
  • Late Fusion:從視頻幀中選兩幀,分別用兩個 CNN 網絡(此處的兩個 CNN 是共享權重的)提取特征并輸出 logits,late fusion 指的是對兩個分支網絡得到的 logits 進行合并;
  • Early Fusion:early fusion 指的是在 logits 之前(輸入或特征圖)就進行特征融合,然后經過一個 CNN 網絡得到一個 logits 結果,再得到最終的分類結果。此處是在輸入時就進行通道維度上的融合,比如圖中輸入 5 幀 RGB 圖,那就是 3×5=153\times 5=153×5=15 個輸入通道;
  • Slow Fusion:slow fusion 綜合了前面兩種融合方式。以圖中結構為例,一開始有四支網絡,分別接收融合過的 4 幀輸入,四支網絡經過一定的特征計算之后,融合為兩支網絡,再計算,在融合,最后輸出分類結果。

另外,還有一個進一步優化的網絡,也是將圖像領域的一種設計——多分辨率結構,直接拿過來用的。一張原圖分為兩個輸入送入兩個網絡,一個是裁切中間部分,送入 fovea stream;另一個就是原圖,送入 context stream。這樣做的依據是一張圖像中中間部分總是含有比較關鍵的信息,而周邊的部分可以認為是一些上下文信息。這也可以看做是早期一種 “生硬的” 注意力機制,即強行使模型關注圖像的中間部分。

在這里插入圖片描述

用圖像領域的 2D CNN 處理多了一維的視頻數據,以上幾種方式是最直接的做法,本文都進行了嘗試。但是效果并不盡如人意(如下圖所示),甚至與手工設計特征的方式(IDT 87.9%)相差甚遠。而且,以下結果還是在巨大的 Sports 1M 數據集上預訓練,再在 UCF-101 上微調的結果。

在這里插入圖片描述

總結

本文的主要貢獻并不是在于任務性能的提升(實際也并沒有提升),而是在于進行了深度 CNN 網絡在視頻理解領域的初步探索。在本文之后,大量的使用深度神經網絡處理視頻數據的工作涌現出來,視頻理解領域正式進入深度學習時代。

雙流網絡系列

雙流網絡系列是使用深度神經網絡完成視頻理解任務的一個重要分支,其中開山之作的文章 “雙流網絡” 我們已經在上面詳細介紹過了。本節將針對原始的雙流網絡的一些改進方向,各自介紹一篇有代表性的論文。

雙流網絡

論文:Two-Stream Convolutional Networks for Action Recognition in Videos

發表于:NuerIPS-2014

方法

我們首先簡單回顧一下雙流網絡,并分析一下它存在的可以改進的幾個方向,本節接下來介紹的幾篇論文都是這幾個方向中有代表性的論文。

在這里插入圖片描述

以上面介紹的 DeepVideo 為代表的一些使用深度神經網絡進行視頻理解任務的早期探索工作證明了這樣一個結論:CNN 雖然能提取 2D 空間圖像特征,但是感知時序信息的能力較差,無法很好地提取視頻的時序動作信息。基于此,作者想到,既然 2D CNN 確實不容易處理時序動作信息,那就用光流法先將多個連續視頻幀中的時序動作信息提取出來,得到光流圖,然后 CNN 直接學習從光流圖到結果的映射。再配合另外一支 CNN 網絡,提取原圖中的 2D 空間圖像信息。然后將兩者的結果進行 late fusion,得到最終的結果。

未來方向總結

實驗結果顯示雙流網絡的性能極好,它不僅準確率高,而且訓練簡單、參數量小。但是,原始的雙流網絡本身還有許多可以改進的方向:

  1. 原始雙流網絡中的 late fusion 是對兩支網絡輸出 logits 直接進行加權平均,這未免有點過于簡單。如果能夠設計一個合理的 early fusion 的結構,來增強兩支網絡特征之間的交互,無疑會比簡單的 late fusion 效果更好;
  2. 原始雙流網絡中兩個分支的具體結構就是 AlexNet,隨著基礎卷積結構的發展,各種更深、更優秀的 backbone 網絡(如 VGG、Inception Net、ResNet等)涌現出來。能夠利用這些新型的 backbone 網絡應當也會提升性能。另外需要注意的是,當時的視頻理解領域并沒有大型的數據集。因此,更深的網絡是否會產生嚴重的過擬合、如何緩解過擬合,也是有待研究的問題;
  3. 原始雙流網絡的兩個分支都是用純卷積來處理原圖/光流圖,然后直接根據得到的特征去進行分類。而我們知道,視頻數據相比于圖像數據增加的一維是時間維。如果能用擅長處理時間維的時序序列的 LSTM 來對 CNN 提取的時序的多幀圖像特征進行處理,提取圖像特征的 CNN 和處理時序序列的 LSTM 各司其職,看起來會是更合理的方法;
  4. 我們之前詳解雙流網絡是提到過,原始雙流網絡中光流特征是通過原圖之后連續 11 幀圖像之間的光流圖聚合得到的。現今,視頻的幀率一般在 25、30,相當于時間維度的感受野是半秒都不到,而一個日常動作的持續時間一般要兩三秒。因此,如何做更長時間的視頻理解也是一個值得研究的方向。

以下,我們將針對上述幾個方向,介紹幾篇有代表性的論文。

Beyond Short Snippets

論文:Beyond Short Snippets: Deep Networks for Video Classification

發表于:CVPR-2015

導言

本文標題中的 short snippets 指的就是短的視頻片段,那要 beyond,意思自然是本文處理的視頻長度要更長。本文方法的網絡結構如下所示。很明顯的,該網絡接收的原始視頻幀的長度要更長(如圖中的 30 - 120 秒)。為了更好地處理長視頻幀序列,本文對特征聚合的方法從兩個角度進行了探索,一是多幀圖像特征的池化方式,二是通過 LSTM 來聚合時序序列的多幀特征。

在這里插入圖片描述

方法

對池化方法方法的探索

對于通過池化進行特征聚合的方法,本文探索了多種不同的池化方式,如下圖所示。圖中磚紅色的方塊 C,就是網絡提取到的單幀特征,而再其上堆疊的藍色的、綠色的、橙色的、黃色的方塊,則分別對應最大池化、空間域卷積、全連接層和 softmax 層。

在這里插入圖片描述

從實驗結果來看,其實不同的池化方式差的并不是特別多,但終歸是卷積池化的方式取得了最好的性能。

對LSTM的探索

本文對 LSTM 的使用方式很直接,其結構如下圖所示。其中磚紅色的方塊 C,還是表示網絡提取到的單幀特征。然后在其上添加了五層 LSTM,最后經過 softmax 層,得到分類結果。

在這里插入圖片描述

實驗結果顯示使用 LSTM 來進行時序序列的建模,提升并不顯著。

在這里插入圖片描述

Yi Zhu 認為,LSTM 網絡使用處理非常高層的抽象語義信息,給 LSTM 的輸入,必須要有一定的變化,而不能太過單一,LSTM 才能發揮它的能力,學習到時間序列上的變化。比如在自然語言處理中,一個句子中多個詞的語義通常是變化很大的,在這種情況下 LSTM 就能工作得不錯。但是對于幾十幾百幀(可能實際中就是三四秒)的視頻來說,整個畫面通常都是比較連續的,不同幀經過 CNN 提取的語義特征都變化不大。將這種特征送給 LSTM 來學習,其實學不到什么東西。如果是更長的視頻或者是畫面變化比較劇烈的視頻中,LSTM 可能能帶來更大的提升。

總結

Convolutional Two-Stream Network Fusion for Video Action Recognition

本文想要處理時間更長的視頻。為此,對于多幀視頻的特征聚合,本文分別探索了池化和 LSTM 兩種方法,取得了一定的性能提升。

論文:Convolutional Two-Stream Network Fusion for Video Action Recognition

發表于:CVPR 2016

導言

本文聚焦于如何為雙流網絡設計一個更好的特征融合方式。作者從三個角度展開了研究:一是如何進行空間維度的特征融合,二是應該在哪一層進行特征融合,三是如何進行時間維度的特征融合。然后在通過大量實驗得到最優的組合之后,作者提出了自己的網絡結構。

方法

我們先分別看作者對上述三個角度進行的研究和得出的結論,然后引出作者提出的網絡結構。

如何進行空間維度的特征融合

我們知道,雙流網絡的空間流(輸入為原圖)和時間流(輸入為光流圖)兩個分支輸入的空間尺寸是一樣的,如何進行空間維度的特征融合,就是如何根據兩個分支的特征圖的對應位置的值得到融合結果。作者一共嘗試了一下幾種方式:

  • Max fusion:取兩個分支中對應位置中較大的值;
  • Concatenation fusion:將兩個分支中對應位置的值拼接起來;
  • Conv fusion:將兩個分支的值送入到一個卷積,得到結果;
  • Bilinear fusion:在每個位置上計算兩特征的矩陣外積。

前兩種方式有些簡單,最后一個又太復雜,并且計算量也更大,實驗結果也顯示,卷積融合的方式是最好的。

在這里插入圖片描述

在哪一層進行融合

作者開展了大量的消融實驗,來分析在哪一層進行特征融合效果最好。下圖展示的是兩種比較好的融合位置。

  • 左側圖是在倒數第二層卷積進行空間流和事件流的特征融合,然后再過一層卷積,再送入全連接層,得到的分類結果,這就是傳統的 early fusion,在某一層特征圖上進行融合;
  • 右側圖是在最后一層卷積之后進行特征融合。除此之外,還保留了空間流分支,繼續進行計算,然后再在最后進行一次 late fusion。實驗顯示,右側這一種取得了最好的效果。這種方式的思路是:將中間層的空間特征與時間流分支進行特征融合,但是空間流本身需要繼續進行計算,提供最后的高層語義信息。

在這里插入圖片描述

如何進行時間維度的特征融合

時間維度上的特征融合,即不同幀特征之間的融合。作者嘗試了兩種方式:

  • 2D Pooling:忽略時間維度,僅在空間維度上對相鄰像素上進行池化;
  • 3D Pooling:對時空相鄰元素進行池化;
  • 3D Conv + 3D Pooling:在 3D Pooing 之前額外進行了一個 3D 卷積操作。

由于同時牽扯到時間流和空間流,而進行一個額外的 3D 卷積加強二者的特征交互,因此最后一種方式取得了最好的效果。

在這里插入圖片描述

網絡結構

在通過實驗完成了對上述三個問題的研究,并得到了最優的組合之后,作者提出了自己的網絡結構,如下圖。整體上還是一個雙流網絡的結構,對每一幀輸入圖像,分別由空間流(藍色)和時間流(綠色)去處理輸入原圖和光流圖。然后,在特征交互部分,按照上面的三個最優方式進行操作,不再贅述。

值得一提的是,考慮到時間序列對于視頻理解的重要性,本文的網絡結構除了 Spatiotemporal 分支之外,還有一個單獨的 Temporal 分支。在訓練階段,兩個分支分別使用了兩個 loss 引導優化,而在測試階段,同樣是取二者的加權平均。

在這里插入圖片描述

實驗結果部分。可以看到除了使用了新型的融合方式之外,作者還是用了當時更新、更深的骨干網絡:VGG16。在實驗結果中,僅僅是使用了新的網絡結構,就取得了不小的提升。而本文涉及的新型融合方式,在相對較小的數據集 HMDB51 上取得了更顯著的提升。這是因為新型 early fusion 的融合方式,在更早就對兩支網絡進行了特征融合,使得模型早期就能從時間流和空間流兩支網絡中互相學習、互相彌補,在一定程度上彌補了數據不足的問題。

在這里插入圖片描述

總結

本文的意義和貢獻主要體現在兩個方面,一是進行了大量的消融實驗,將雙流網絡的融合方式和模型結構進行了全面的研究,方便后續工作參考;二是本文對于 3D CNN 的使用,取得了不錯的結果,在一定程度上推動了 3D CNN 的發展。在之后,又有大量的關于 3D CNN 進行視頻理解的研究出現,甚至在之后幾年出現了 3D CNN 霸占視頻理解領域的局面。

TSN

論文:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

發表于:ECCV-2016

導言

TSN 對視頻理解領域的貢獻完全不遜色于我們單獨介紹的雙流網絡和 I3D 網絡。

本文研究重點是如何處理更長時間跨度的視頻。在下面的方法介紹中可以看到,本文 Temporal Segment 的思想其實非常簡單,但卻十分有效。注意簡單不代表沒有新意。反而如果是一個簡單卻效果很好的方法,其實是最具有新意的

除此之外,本文的突出貢獻在于給出了很多視頻領域非常好用的訓練技巧(如數據增強、模型初始化、如何使用光流、如何選擇網絡、如何避免過擬合等),就是標題中所說的 “Towards Good Practices”。其中很多技巧沿用至今。

方法

Temporal Segment

我們之前提到過,單個雙流網絡,空間流輸入就是一幀圖像,時間流輸入一般是 10 幀光流圖,這樣時間跨度不到半秒,對于一般在 2~3 秒的日常動作來說太短了。那怎么才能處理更長時間跨度的視頻呢?

本文 Temporal Segment 的思想非常簡單。先將長視頻分為 KKK 段(如圖中就是分為 3 段),然后再每一段中隨機抽取一幀作為 RGB 原圖,再取其之后幾幀抽取光流特征,送入到雙流網絡的兩個分支中。這樣就能得到 KKK 個空間流 logits 和 KKK 個時間流 logits。Temporal Segment 出發點是:對同一段視頻,雖然是從不同的片段中抽取的幀,每幀的畫面不盡相同,但是它們經過特征提取的高層語義應該是一致的。因此,我們對不同段得到的空間流/時間流 logits 分別做 Segmental Consensus,其實就是做融合。當然這里可以嘗試的融合方式有很多,乘法、加法、取最大、取平均,甚至 LSTM。最后將空間 Consensus 和時間 Consensus 做一個 late fusion ,得到最終的結果。

在這里插入圖片描述

Good Practices

之前,我們提取到,除了 Temporal Segment 思想之外,本文另一個重要的貢獻是給出了視頻理解領域很多很實用的技巧。下面我們來介紹幾個

  1. Cross Modality Pre-training

    本文將 RGB 原圖和光流圖視作是兩個不同模態的輸入。那么對于空間流分支,我們可以直接用 ImageNet 預訓練參數進行初始化。但是對于時間流,但是并沒有足夠大的視頻數據集進行光流圖的預訓練。本文指出,其實也用 ImageNet 預訓練參數進行初始化就好了。但是這里有一個問題,ImageNet 預訓練參數是處理 RGB 三通道輸入的,我們之前介紹雙流網絡時提到,時間流分支輸入通道的典型值是 2×10=202\times 10=202×10=20 。這樣第一層卷積的輸入通道數不對應,無法直接進行參數初始化。本文認為,只需要簡單的將三通道的權重取平均,然后直接復制 20 份就好了。實驗顯示,這種簡單的做法提點顯著。

    我們之前介紹過 I3D 文章中模型中用原 2D CNN 的預訓練參數來初始化膨脹后的 3D CNN 的方式:Bootstrapping。這里已經有點那個影子了。目前這種方式仍在廣泛使用。

  2. Regularizaion Technique

    在初期的視頻理解領域,BN 的使用有一些問題。雖然 BN 能夠帶來訓練速度的提升,但是,由于當時視頻數據集都太小,因此會導致很嚴重的過擬合問題。在 ImageNet 上預訓練得到的 BN 統計量如果在小型視頻數據集上進行微調的話,很容易過擬合在小數據集上。所以其實最好不要調,就用大數據集上得到的統計量。但是,畢竟圖像數據集和視頻數據集還是有一定的差別,如果完全凍住不調的話,遷移學習的效果也不好。本文提出了 partial BN,即只打開第一層的 BN,后面的全都凍住不動。因為畢竟數據集變了,為了適應新的輸入,第一層的 BN 還是要調整,但是再之后層的 BN 就固定不動了,來緩解過擬合的問題。

    雖然現在視頻數據集都很大了,基本不會用 partial BN 了。但是有時在微調時或者遷移到小數據集時,還是會采用 partial BN,一般效果都不錯。

  3. Data Augmentaion

    數據增強是深度學習時代很重要的一項緩解過擬合的方法。在本文中,作者也給出了兩個在視頻任務上很實用的數據增強技巧:corner cropping 和 scale jittering。前者是為了避免 random cropping 隨機出來的裁剪位置總是靠近圖像中間,強制地去對邊角處的圖像進行裁剪;后者是隨機組合圖片的長和寬,來得到不同長寬比的圖像。

    這些數據增強方式時至今日也有一些工作在使用。

  4. 其他技巧詳見論文原文。

本文方法的測試結果見下表。可以看到 TSN 模型的性能提升還是十分顯著的。對于上面提到的許多使用技巧在論文中也都有消融實驗,有興趣自行查看即可。

在這里插入圖片描述

總結

TSN 這篇文章用一個簡單但有效的 Temporal Segment 的方法來處理長時間跨度的視頻數據,取得了顯著的性能提升。并且本文中提出的很多視頻理解領域實用的訓練技巧(重要到都寫在了標題上)也為后續的工作提供了很大的幫助。

在 TSN 之后,又有一些關于雙流網絡的改進工作,如 DVOF、TLE。除了上面提到的幾個改進方向之外,還有一些其他的對于原始雙流網絡的改進工作,比如解決如何在時間流分支中沿著軌跡去堆疊光流的 TDD 等。再之后,在 I3D 提出了簡單實用的 3D CNN 和大型的 Kinetics 數據集,雙流網絡結構和 UCF-101、HMDB51 基本就淡出視頻理解的歷史舞臺了。因此,TSN 也是雙流網絡系列乃至整個視頻理解領域一篇必讀的里程碑式的工作。

3D CNN系列

雙流網絡看起來是對視頻數據一個很合理、很自然的處理方式:空間流處理原圖輸入,得到空間圖像特征;時間流處理光流輸入,得到時序動作特征。可為什么現在視頻理解領域的主流方向都是在研究 3D 網絡呢?

實際上使用光流特征有一個很致命的缺點:慢!如果使用未加優化的 TV-L1 算法去抽取光流,即使在 GPU 上,也需要 0.06 秒來抽取兩幀圖像的光流特征。對于一個大型的視頻數據集(比如 Kinetics 400)來說,僅僅是抽光流,就需要單卡 50 天的時間。而在推理時,0.06 秒意味著一個視頻模型的推理速度上限就在 15 FPS,這顯然無法達到 25/30 FPS 的實時推理的要求。而很多視頻的應用都要是要求實時的。

因此,研究者們還是盡量想用一個網絡來處理視頻,來得到更快的訓練和推理速度。可惜的是,即使是 3D CNN 或 Video Transformer,目前大多數網絡仍然無法達到實時的要求。而且,在 3D CNN 的基礎上,再增加光流信息,仍能帶來性能提升(如雙流 I3D)。也就是說,光流特征仍然是一個很重要的視頻特征,它不是沒用,只是計算代價太高。

C3D

論文:Learning Spatiotemporal Features with 3D Convolutional Networks

發表于:ICCV-2015

導言

本文是早期探索 3D CNN 在視頻理解領域的工作之一。做法非常簡單,就是簡單的搭了一個深度的 3D 卷積神經網絡。與再之前的工作的差異在于使用了大型的數據集(Sports 1M),并使用了更深的網絡結構。

方法

文章給出的模型結構圖非常簡單,就是幾層卷積和池化的堆疊,只是其中卷積核是 3D 的: 3×3×33\times 3\times33×3×3 。值得一提的是,作者最終的做法是將 fc6 得到的 4096 維的特征直接用 SVM 來做分類,又快效果又好。本文被稱為 C3D 也是指的這個 fc6 得到的 4096 維的特征,被稱為 C3D 特征。

在這里插入圖片描述

從實驗結果(下表)來看,C3D 的性能并不突出(可以對比上面介紹的同期的雙流網絡系列工作)。

在這里插入圖片描述

總結

之前提到,C3D 的性能在同期工作中并不突出,那為什么這篇工作有如此大的影響力呢?實際上,這篇工作的主要貢獻有兩點。一是實現深度 3D CNN 模型,并在大型數據集上進行訓練,證明了在視頻領域,3D CNN 比 2D CNN 再融合(DeepVideo)的效果要更好。二是作者指明并提供了抽特征(而非微調)的研究方式。在當時的年代,想要用大型的深度 3D CNN 模型跑大型的數據集不是每一個實驗室都能做到的,作者提供了一個接口,上傳視頻,返回 4096 維的 C3D 特征。這就方便后續的研究者們根據大型 3D CNN 提取的特征,再進行下游任務的研究。這無疑極大地推動了當時視頻領域的研究進程。因此,除了方法上有令人眼前一亮的新意之外,如果能夠提供一些資源(如大數據集或大預訓練模型),能夠推動整個領域的研究進程,也是值得被銘記的工作。

雙流I3D

論文:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset

發表于: CVPR-2017

總結

I3D 是 3D CNN 系列工作中里程碑式的工作。我們在上面已經詳細介紹過,這里就再回顧一下這篇工作的貢獻與意義。

本文的兩個貢獻非常清晰:一個將 2D CNN 模型的結構和參數轉化為 3D CNN 的方法,和一個大型的數據集 Kinetics 400。在作者看來, C3D 網絡之所以沒有取得足夠突出的性能,很大的一個原因是沒有辦法利用大型數據集進行訓練。想要做到這一點,最好的方式就是能將圖像領域的 2D CNN 的結構和參數轉化為對應的 3D CNN,這就是 I3D 關鍵的 inflate 和 bootstraping 方法。這使得視頻領域可以借鑒圖像領域一些已經得到廣泛驗證的網絡結構(如 VGG、ResNet 等),并且可以使用在圖像領域大規模數據集上的預訓練參數。而如果研究者真的想設計一個專門針對于視頻領域的網絡結構,本文也提供了一個大型視頻數據集,可用于預訓練。不必再受制于視頻領域沒有大型數據集,只能借助 2D CNN 預訓練參數的情況。可以說,I3D 這篇工作的兩個貢獻極大地降低了視頻領域訓練的難度,推動整個領域的研究進程。

在 I3D 之后,有一系列的跟進工作,將圖像領域一些經典的 2D CNN 的網絡結構轉化為 3D CNN,比如:

  • ResNet —> ResNet3D,CVPR-2018;
  • ResNext —> MFNet,ECCV-2018;
  • SENet —> STCNet,CVPR-2019。

Non-local

論文:Non-local Neural Networks

發表于:CVPR-2017

導言

之前在雙流網絡系列,我們介紹過使用 LSTM 來建模時序信息。在 2017 年,NLP 領域發生了一件大事,Transformer 橫空出世。我們知道,Transformer 的核心就是 self-attention 自注意力模塊,它能夠對長距離的序列信息進行建模。在之后,基于 Transformer 的模型幾乎橫掃了 NLP 領域和近兩年的 CV 領域。這篇 2018 年的工作,就是將自注意力機制的 Non-local 算子,引入到了 CNN 模型中。并且為了適配視頻任務,本文的 Non-local 算子是時空(spacetime)維度的。除了視頻任務之外,本文也測試了 Non-local 算子在檢測/分割等其他視覺任務上的性能。

方法

本文方法的核心結構圖如下所示。熟悉 Transformer 結構的讀者一眼就可看出,這其實就是自注意力機制,連示意圖都長得很像。這里的 θ,?,g\theta,\phi,gθ,?,g 分別對應 Q,K,VQ,K,VQ,K,V ,前兩者相乘并 softmax 得到注意力矩陣,再與 ggg 相乘。一個區別在于本文是針對視頻任務,因此有 T、H、WT、H、WTHW 三個維度。

在這里插入圖片描述

在實驗部分可以重點關注的是本文詳盡的消融實驗。分別探索了(a)用什么形式計算non-local,(b)non-local用在哪一層,?用幾層non-local,(d)時間、空間和時空都做non-local等。non-local 的一大優勢就是它能對長距離的時序關系進行建模。因此,還有一個值得注意的是實驗 (g),該實驗探索了 non-local 在長視頻(128幀)上的性能,可以看到提升也是很顯著的。

在這里插入圖片描述

總結

自注意力機制是近幾年,甚至直到今天的一個重點研究問題。它在 NLP 領域大放異彩后,Non-local 這篇工作探索了自注意力機制在視覺領域的表現。并且,針對 視頻領域,還引入了時空(spacetime)的自注意力。

R(2+1)D

論文:A Closer Look at Spatiotemporal Convolutions for Action Recognition

發表于:CVPR-2018

導言

本文詳盡地實驗了在視頻數據上,2D/3D 的卷積結構到底怎樣設計更好。最終的結論是,將 3D 卷積拆分成空間和時間兩部分來做效果最好。在得到最優的結構之后,作者構建了一個新型的時空卷積網絡,稱為 R(2+1)D,在各個視頻數據集上取得了更好的性能。類似的對 2D/3D 混合結構進行探索的工作還有 P3D,S3D,eco 等。

方法

作者嘗試了以下五種 2D/3D 卷積結構,來處理視頻數據:

  • (a) R2D:純 2D 卷積,對每一幀單獨的提取圖像特征;
  • (b) MCx:先 3D 卷積處理視頻輸入,再用計算開銷更小的 2D 卷積繼續提取特征;
  • (c) rMCx:先 2D 卷積處理各幀圖像輸入,再用 3D 卷積對時空特征進行建模;
  • (d) R3D:純 3D 卷積,與 C3D、I3D 類似,這里的 R3D 也是 CVPR-2018 的一篇工作,是將 2D 的 ResNet 轉換到 3D;
  • (f) R(2+1)D:將 3D 拆分為空間維度的 2D 卷積和時間維度的 1D 卷積

在這里插入圖片描述

這里的 R(2+1)D 的具體結構如下圖所示。就是將一個 t×d×dt\times d\times dt×d×d 的 3D 卷積,拆分為一個 2D 的空間維度上的 1×d×d1\times d\times d1×d×d 的卷積,和一個 1D 的時間維度上的 t×1×1t\times 1\times 1t×1×1 的卷積。中間進行了一次投射 MiM_iMi? ,可以保持與純 3D 卷積的參數量相當,偏于公平的對比。

在這里插入圖片描述

對于偏實驗性質的工作,我們直接來看對比實驗的結果(下表)。2D 卷積比 3D 卷積的參數量要小。純 2D 或 純 3D 卷積的性能表現都不怎么樣,而是 3D+2D 或者 2D+3D 的結果要更好一點。最好的當然是作者提出的 R(2+1)D 的結構。

在這里插入圖片描述

R(2+1)D 取得最優效果,作者給出了兩點解釋:

  1. 將 3D 網絡拆分為 R(2+1)D ,網絡經過了更多的非線性激活函數,整體模型的非線性增強,從而表達能力更強;
  2. R(2+1)D 網絡將一整個 3D 網絡拆分開,整個模型更容易訓練。如下圖,明顯看到 R(2+1)D 網絡收斂得更快更好。

在這里插入圖片描述

總結

本文是一篇實驗性質的論文,主要的貢獻在于詳盡的其消融實驗,以及帶給讀者的各種觀察和見解。從而幫助我們理解視頻領域中不同 2D/3D 網絡結構之間的區別和聯系,使得我們進一步了解怎么去構建一個適合于視頻理解的模型框架。

SlowFast

論文:SlowFast Networks for Video Recognition

發表于:ICCV-2019

導言

受啟發于人眼中有 p 細胞和 m 細胞,分別處理靜態圖像的場景信息和動態圖像的運動信息,它們各占總體的 80% 和 20%。作者提出了 SlowFast 網絡,有 Slow Pathway 和 Fast Pathway 兩支網絡分別處理靜態信息和動態信息。

方法

下圖描繪了 SlowFast 網絡的整體結構,下表是具體的結構參數。

藍色部分是 Slow Pathway,它用來處理靜態的場景信息,它的特點是輸入小,模型大。假設我們有一共 64 幀視頻,這里按照每隔 16 幀取一幀,可以得到 4 幀作為輸入(見圖),但是它的模型每一層的通道數是比較大的(見表),從而這一分支中模型整體參數量比較大,這也對應著人眼中處理靜態場景信息的 p 細胞占比較大。

綠色部分是 Fast Pathway,他用來處理動態的運動信息,它的特點是輸入大,模型小。同樣 64 幀的視頻,每隔 2 幀取一幀,共有 32 幀輸入(見圖),但是它每層的通道數比較小(見表),整體參數量較小,對應著 m 細胞占比較小。

在這里插入圖片描述

在這里插入圖片描述

作者在多個任務,多個數據集上進行了相近的實驗,這里我們還是只看 Kinetics 400 上的結果。可以看到,SlowFast 在性能和計算量的權衡上全面領先于之前的方法。

在這里插入圖片描述

總結

SlowFast 是視頻理解領域 3D CNN 系列中性能和計算量都比較優秀的工作了。再之后,在 Vision Transformer 出現之后,視頻理解領域學者們的研究興趣又轉移到 Video Transformer 上來了。

Video Transformer系列

在 Video Transformer 系列,我們就只介紹一篇最早的將 Transformer 應用到視頻理解領域的 TimsFormer。

TimeSformer

論文:Is Space-Time Attention All You Need for Video Understanding?

發表于:ICML-2021

導言

本文作者團隊很多來自于 R(2+1)D 那篇工作。本文也是一篇實驗性質的論文,探索怎樣把 ViT 從圖像領域遷移到視頻領域。

方法

本文主要是探索了 ViT 用于視頻領域的幾個結構,主要區別就是時空維度自注意力的計算方式:

  • Space Attention:即只在當前幀的空間維度計算自注意力,相當于只用 ViT 處理當前幀;
  • Joint Space-Time Attention:在時間所有幀和空間所有像素計算自注意力,無疑一旦幀數或者分辨率高了,顯存是不夠的;
  • Divided Space-Time Attention:現在時間維度計算自注意力,再在空間維度計算自注意力,類似 R(2+1)D 的設計;
  • Sparse Local Global Attention:時間上在所有幀計算自注意力,但是在每一幀中只計算一個局部小窗口的元素,然后再擴大窗口范圍再計算自注意力,而非直接計算全部像素的自注意力,類似 Swin Transformer;
  • Axial Attention:分別在時間、寬度、長度三個維度上計算自注意力

在這里插入圖片描述

作者還畫了一個非常直觀的圖來幫助我們理解這五種做法中,覆蓋自注意力的元素范圍。不同的顏色分別對應不同的步驟進行的自注意力。

在這里插入圖片描述

作者經過對比實驗(下表),發現第三種 Divided Space-Time Attention 效果是最好的,雖然 Joint Space-Time Attention 的效果也不錯,但是顯存開銷太大,不能承受。

在這里插入圖片描述

再確定了最優的結構之后,作者構建了自己的 TimeSformer 模型,并對比了之前的方法。可以看到,TimeSformer 的訓練效率是明顯由于之前的方法的。至于性能,雖然上表中對比的 TimeSfomer 超過了 SlowFast R50,但是我們知道 SlowFast-R101-NL 在 K400 上已經有 79.8 的準確率了。下表中,作者通過增加 TimeSformer 的參數量,最終得到了 K400 上 80.7 的最優性能。

在這里插入圖片描述

在這里插入圖片描述

總結

TimeSformer 是將 ViT 用于視頻理解的第一篇工作,探索了自注意力在時空維度上的最優結構。類似的探索工作還有 ViViT,VidTr,MViT 等。

由于視頻包含了多種模態的信息,如圖像、字幕、音頻、光流,因此視頻本身就是豐富的信號來源,可能設計出各種各樣的自監督信號。并且 Transformer 在各個領域表現俱佳,在多模態任務上也頗有建樹。綜上,Video Transformer 在未來還有著無比廣闊的探索空間。

深度學習視頻理解網絡圖

在這里插入圖片描述

  1. Two-Stream Convolutional Networks for Action Recognition in Videos
  2. Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
  3. Large-Scale Video Classification with Convolutional Neural Networks
  4. A Comprehensive Study of Deep Video Action Recognition
  5. Beyond Short Snippets: Deep Networks for Video Classification
  6. Convolutional Two-Stream Network Fusion for Video Action Recognition
  7. Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
  8. Learning Spatiotemporal Features with 3D Convolutional Networks
  9. A Closer Look at Spatiotemporal Convolutions for Action Recognition
  10. SlowFast Networks for Video Recognition
  11. Non-local Neural Networks
  12. Is Space-Time Attention All You Need for Video Understanding?
  13. 雙流網絡論文逐段精讀【論文精讀】
  14. I3D 論文精讀【論文精讀】
  15. 視頻理解論文串講(上)【論文精讀】
  16. 視頻理解論文串講(下)【論文精讀】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532420.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

typec擴展塢hdmi沒反應_typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook6元優惠券券后價26.8元...

★typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook,6元拼多多優惠券★券后價26.8元★★★typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook¥26.8元¥32.8元已拼5097件點擊搶購猜你喜歡[速發]喵喵機P1熱敏打印機手…

NLP任務概覽

NLP任務概覽 本文為臺灣大學李宏毅老師視頻課程筆記。本課程介紹了 (2020年)NLP 領域常見的 17 種任務。本文只會從輸入輸出的角度概覽多種 NLP 任務,并簡介它們的常見做法,并不會細致地介紹每個任務模型的具體細節。 兩種模式與…

大物實驗總結模板_期中總結大會amp;期末動員大會

在逐漸降溫的雙創周麥包坊的期中總結暨期末動員大會來啦在學長團和小麥包的分享下希望大家重新啟航奮斗期末板塊一學長團經驗分享面對本學期十二門科目,作為過來人的前輩們給出很多對本學期各科目的針對性建議,可謂是干貨滿滿,快來瞧瞧吧&…

PTMs:NLP預訓練模型的全面總結

PTMs:NLP預訓練模型的全面總結 轉自:https://zhuanlan.zhihu.com/p/115014536 預訓練模型(Pre-trained Models,PTMs) 的出現將NLP帶入了一個全新時代。2020年3月18日,邱錫鵬老師發表了關于NLP預訓練模型的綜述《Pre-trained Models for Natur…

python中提取幾列_Python一鍵提取PDF中的表格到Excel(實例50)

從PDF文件獲取表格中的數據,也是日常辦公容易涉及到的一項工作。一個一個復制吧,效率確實太低了。用Python從PDF文檔中提取表格數據,并寫入Excel文件,灰常灰常高效。上市公司的年報往往包含幾百張表格,用它作為例子再合…

EM算法公式推導

EM算法公式推導 EM 算法是一種用來進行含有隱變量的概率生成模型參數估計的迭代算法。 EM算法步驟 EM 算法通過迭代求 L(θ)log?P(X∣θ)L(\theta)\log P(X|\theta)L(θ)logP(X∣θ) 的極大似然估計,每次迭代包含兩部:E步,求期望&#xf…

詳解最大似然估計(MLE)、最大后驗概率估計(MAP),以及貝葉斯公式的理解

詳解最大似然估計(MLE)、最大后驗概率估計(MAP),以及貝葉斯公式的理解 聲明:本文為原創文章,發表于nebulaf91的csdn博客。歡迎轉載,但請務必保留本信息,注明文章出處。 本…

elemntui icon 大小_自定義elementui中的圖標

前提elementui圖標庫圖標較少當你想用elementui的控件而不想用它的圖標時,就可以使用自定義的方式來實現實現el-icon-my-export為我自定義的圖標命名導出//使用圖片來替換//before屬性中的content文本是用來占位的,必須有//可以設置字體大小來確定大小//使用visibil…

變分推斷公式推導

變分推斷公式推導 背景介紹 機器學習中的概率模型可分為頻率派和貝葉斯派。頻率派最終是求一個優化問題,而貝葉斯派則是求一個積分問題。 頻率派 舉幾個例子: 線性回歸 樣本數據:{(xi,yi)}i1N\{(x_i,y_i)\}_{i1}^N{(xi?,yi?)}i1N? 模…

重新打開_iPhone 應用停止響應或無法打開的解決辦法

如果當您在 iPhone 上使用某個重要應用時,遇到應用停止響應、意外退出或無法打開的問題,請參考如下步驟嘗試解決:1.強制退出應用:在 iPhone 后臺強制關閉該應用之后,再次重新打開看看。2.重啟您的設備,然后…

機器學習理論——優雅的模型:變分自編碼器(VAE)

機器學習理論——優雅的模型:變分自編碼器(VAE) 轉自:機器學習理論—優雅的模型(一):變分自編碼器(VAE) 另外直觀理解 VAE, 推薦 臺大李宏毅老師的課程&#…

grub引導項修復詳解_重新安裝win7后,修復Grub啟動項

重新安裝win7后,修復Grub啟動項發布時間:2010-09-14 22:14:00來源:紅聯作者:null925[is] 本帖最后由 null925 于 2010-9-14 22:18 編輯 [/i]原先使用Win7,Gentoo,Ubuntu三系統,Grub作為系統引導管理器,今天重新安裝Win…

基于流的(Flow-based)生成模型簡介

基于流的(Flow-based)生成模型簡介 生成任務 我們先回顧一下所謂的生成任務,究竟是做什么事情。我們認為,世界上所有的圖片,是符合某種分布 pdata(x)p_{data}(x)pdata?(x) 的。當然,這個分布肯定是個極其復雜的分布。而我們有一…

iec60870-5-104通訊協議編程_三菱FX編程口通訊協議1——協議解讀

三菱PLC編程口通訊協議:1、三菱PLC編程口通訊協議有四個命令,如下:2、三菱FX系列PLC地址對應表:PLC_X Group Base AddRess128;Const PLC_Y_Group Base AddRess160;M _Group Base_AddRess 256;P…

采用ODP.NET 批量進行數據同步

因開發、測試場景經常需要模擬機生產環境的數據,原同事開發了一個ado.net圖形化同步工具,對非技術人員操作友好,但對技術員使用并不方便,每次同步需源庫數據與目標的數據源字段進行配置,且同步大數據時慢,因…

熔斷器熔斷時間標準_一種熔斷器熔斷時間測試電路的制作方法

本實用新型涉及汽車制造技術領域,尤其涉及一種熔斷器熔斷時間測試電路。背景技術:伴隨著日新月異的科技進步,人們對生活質量的追求也越來越高,汽車已經成為人們日常出行必不可少的交通工具,人們對汽車的舒適性、安全性…

DETR精讀筆記

DETR精讀筆記 論文:End-to-End Object Detection with Transformers (發表于 ECCV-2020) 代碼:https://github.com/facebookresearch/detr 解讀視頻:DETR 論文精讀【論文精讀】 本筆記主要基于 Yi Zhu 老師的解讀 引言…

lcd像素點密度_【教程】設置添加LCD密度(DPI)設置

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓完美—————————————————分割————————————————————————反編譯settings.apk(1.52)1.Settings.apk\res\values\arrays.xml在之前加入以下代碼240242244246248250252254256258260262264266268…

GAN網絡評估指標:IS、FID、PPL

GAN網絡評估指標:IS、FID、PPL 轉自:IS、FID、PPL,GAN網絡評估指標 另外關于GAN的評價指標,推薦李宏毅老師的視頻:【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (三) – 生成器效能評估與條…

降維后輸入分類器分類時報錯_邏輯回歸解決多分類方法及其優缺點分析

眾所周知,邏輯回歸常用于解決二分類任務,但是在工作/學習/項目中,我們也經常要解決多分類問題。本文總結了 3 種邏輯回歸解決多分類的方法,并分析了他們的優缺點。一、One-Vs-Rest假設我們要解決一個分類問題,該分類問…