SpeedNet: Learning the Speediness in Videos
Abstract
用于預測視頻中物體運動的速度—移動快或慢
以一種無監督的方式訓練
證明了模型學會了一種強大的,具有意義的空間-時間表示,可以用于提升無監督動作識別,以及用于視頻retrieval(檢索;修復)。
可以用于加速視頻的播放,減少抖動,不自然的動作。
?
Introduction
?????? 一個模型要學會預測視頻是否發生加速,它學習到的究竟是什么;它究竟能在學習這個概念上表現的多好,究竟能學到多少物體運動的先驗知識。
?????? 這種模型一旦得到,可以用于支撐下游的許多有意義的應用
?????? 訓練部分是難點,我們希望尋求一種語義方式,而非人工的表示,學習并理解速度,通過檢測真正的運動,而不是依賴加速視頻的生成方法的人工痕跡。
?????? 訓練的另一個難點是模型需要超越平凡的使用動作幅度作為檢測器的模型。只依賴運動物體的速度和只使用運動幅度都可以區分加速和非加速。我們在5.1節解決了光流的速度預測能力,同時說明了SpeedNet清楚預測的優勢(與一般的基于流的方法相比)。但速度和運動幅度的關系對我們來說確實是一個挑戰,尤其是極端的相機或物體運動。
?????? 在一系列的復雜視頻上驗證模型的能力,包括舞蹈視頻和運動視頻。
?????? SpeedNet可以用于無監督動作識別和視頻的retrieval。在多個benchmark上表現SOTA。
?
SpeedNet
?????? 方法的核心是SpeedNet,一個深度神經網絡。在正常速度和兩倍速上訓練。輸入L幀,給出結果(常速or加速)
?????? 值得注意的是2x播放的視頻,通常不總包括不尋常的運動。例如慢走快放后看起來也十分正常,或鏡頭中沒有物體運動時,慢放快放結果相同。因此我們也不期望我們的模型是完美的,可以正確區分它們。并且網絡的這種特性可以用于下游應用優雅地生成加速視頻。
?????? 在不同速度播放的視頻上說明我們是如何使用這種模型預測物體的速度的。沒有將其作為回歸模型處理,因為這是不必要的(人也不會)并且難度更大。
?
.1數據,監督,避免人工提示
?????? 模型使用非監督學習,不需要人工標注。訓練集和測試集都由同一個視頻的兩個版本構成:加速版和常速版。其中加速版是在時序上下采樣得到的。
?????? 之前的算法都存在人工提示的問題,我們采用如下方法用于避免模型采用人工提示:
空間增強(spatial augment)網絡是全卷積的,因此對輸入大小沒有要求。在輸入時,將輸入數據隨機resize到64-366之間,在resize的過程中產生的blurring可以弱化視頻中潛在的抖動。在卷積后,連入最大池化層,因為輸入不同,因此結果也不同,這將迫使網絡不再依賴空間尺度給出的提示(如運動幅度等)。
時間增強(temporary augment)為了引入不同速度的視頻,在視頻上進行采樣。具體的,設定f,常速時f取1-1.2,挑幀每1-1/f,當加速時,取f在1.7-2.2之間,保證多樣性。然后再剩余的幀中選T幀作為一個樣例。
相同批訓練(same batch training)我們在每次訓練的batch中,同時包含了加速視頻和常速視頻。我們發現這種方法可以極大減弱模型對人工痕跡的依賴,我們在其他無監督任務中也發現這種方法是重要的。
.2SpeedNet網絡結構
?????? 網絡結構圖,首先經過base network,輸入為TxNxN,輸出為TxN/32xN/32x1024。Base network采用S3D-G結構(SOTA動作識別模型)。區別1)在時間維度上的stride被設置為1;2)在空間上使用了max pooling,在時間上使用了average pooling,對比原模型只使用了average pooling。
?????? 在base network之后,我們將時間維度和空間維度壓縮到單一channel。直觀地,我們希望預測是根據最主要的空間移動物體,而對于時間,我們希望考慮整個視頻而非某個凸起。因此在空間上使用了max pooling,在時間上使用了average pooling。結果是1024維,再使用1x1卷積得到最終的logit。使用binary cross entropy loss訓練。
?
Adaptive video speedup
?????? 使用模型對測試視頻v加速。只要網絡認為結果沒有加速就可以進一步繼續加速。
.1From predictions to speedup scores
?????? 首先給出一個視頻v,根據指數因子Xiik=0下采樣得到一系列視頻v0,v1,……vk,其中v0=v。在實驗中,我們使用X=1.25,k=10。將每個視頻按照窗口輸入的方式輸入到網絡中(也即每次輸入T幀,每次向前移動一步),將得出的結果復制給中間位置對應的幀中。然后每個視頻就可以得到一串結果Pvit對應整個v的結果(實際應該有L-T/2個結果,假定視頻共L幀)。當Pvit≈1表示為常速視頻,當Pvit≈0表示為加速視頻。(自己根據理解畫的圖)
?????? 得到的集合Pvi首先使用線性插值,補充長度到和Pv0相同的長度。然后使用一個閾值對加速和非加速進行分類,用Pviρ表示。每個向量乘對應的指數因子Xi得到集合vit,然后按照對應的timestep做max pooling,得到一個向量Vt,保證即便是取得的最大值仍能夠被分類為非加速。這樣就保證了整個視頻看起來仍是自然的。
.2Optimizing for adaptive speedup
?????? 主要想法是根據視頻內容,非統一的改變視頻的播放速度。受可變比特率編碼(VBR)啟發,數據分片的局部帶寬根據復雜程度的不同而不同。這里,希望可以加速那些較為平滑緩慢的運動,而不會讓視頻看起來不自然。
?????? 如何選擇閾值ρ?如何保證實現的最終的加速是形變最小的?測試了9個閾值{0.1,0.2,…,0.9},然后選擇了最優的。
?????? 給定一個每幀加速向量V(t),如上述,目標是估計一個平緩的變化加速曲線S(t),滿足用于給定的目標加速比。該過程的想法是對于發生較小運動的分片的加速分數會比較高,意味著人類不容易在這些分片中觀察到播放速度的不同。我們將其建模為
argminSEspeedS,V+βErateS,R0+αEsmooth(S')
其中Espeed用于鼓勵根據加速分數V加速,Erate用于限制視頻的整體加速比R0。Esmooth是平滑正則項,S'是S的第一個衍生項。
?????? 圖5是一個例子,紅色用于表示對應的1-加速分數,也即不怎么動的分數低,動的大的分數高,藍色對應加速比。
?
Experiments
?????? 實驗使用Kinetics數據集,包含246K訓練視頻和50K測試視頻,25fps。使用無監督訓練。同時使用Need for Speed dataset作為測試集,包含100個視頻,240fps(共380K幀)。數據集中包含了多種不同的物體運動,如運動的球等。用于評估模型的泛化能力。
??????
.1 SpeedNet performance
?????? 在Kinetics和NFS數據集上做測試。NSF統一加速10x或20x以給出有效的幀率24fps(常速)和12fps(sped-up)。Kinectics25fps。使用1x或2x加速。微小的幀速變化對評價模型在與訓練集不同的幀速上是重要的。在測試時,我們將幀resize到224x224,center crop。
?????? 在表1中展示了不同數據增強結合訓練后的表現。結論,當沒有使用數據增強時,模型將依賴人工提示,這將導致很大的錯誤率。在Kinetics和NFS上的準確率的微小差異表現了模型的良好的泛化能力。
?
.1.1 Prediction Curves
?????? 圖4給出了常速和加速播放同一段視頻的推斷。1x結果由藍色線給出,2x結果由紅色線給出。越微小的運動值越低。結論……
?
.1.2 Comparison to optical flow
?????? 我們考慮訓練一個baseline,輸入是每幀的平均光流大小。也即每個視頻段的大小為T的向量。使用兩個全連接層,ReLU激活單元和batch normalization。準確率只有55%,主要是由于均值光流與物體和相機的距離相關。我們的模型是有絕對優勢的,但對極端的相機距離和劇烈運動無法識別,我們認為這是由于數據集中沒有足夠多的類似數據。
?
.2 Generalization to arbitrary speediness rates任意速度泛化
?????? 在網絡上下載各種視頻,包括復雜動作,可以對視頻的播放速度進行判斷。盡管模型在常速和2x速上訓練,但也可用于判斷慢速視頻,當模型認為輸入視頻的加速版本是常速時,該視頻為慢速。
?
.3 自適應加速real-world 視頻
?????? 為了評估自適應加速與統一加速。找到具有不同運動速度的視頻,分別對其進行自適應加速和統一加速,選取5段,使用用戶研究得出客觀表現結論。
?????? 在30個人上進行了測試,得出的結果是我們生成的視頻具有明顯優勢。
?
.4 SpeedNet for self-supervised tasks
?????? 解決速度問題要求很高的自然運動推理能力,以及了解低級一些的運動提示。由于我們的模型是無監督的,我們在一些預訓練的動作識別和視頻retrieval任務上評估它的內在表達能力。
.4.1 action recognition
?????? 使用自監督預訓練初始化動作識別模型是一個有效的方式用于評估模型通過自學習任務學到的內在表示。
?????? 對小數據集的動作識別而言(如UCF和HMDB51),預訓練是非常重要的,因為具備泛化能力的網絡可以很容易地在訓練集上過擬合。
?????? 預訓練的SpeedNet模型在UCF101和HMDB51上微調后,可以顯著提升動作識別的準確率,這表示速度任務可以給出非常有用的泛化的內在表示。
?????? 即便是在最差的網絡上進行預訓練,也可以對識別有非常顯著的提升。
?
.4.2 Nearest neighbor retrieval最近鄰檢索
?????? 另一種可以評價SpeedNet學習到的表示能力的方法是從模型中出抽取的視頻段的embedding,并在embedding 空間下搜索最近鄰。具體的,隨機給定一個任意空間維度和時間維度的視頻,分別在空間和時間維度上使用最大池化和平均池化,得到1024D的特征表示。本實驗說明了抽取的特征壓縮了運動模式,可以方便的檢索其他具有類似行為的視頻段。
?????? 在本實驗中,我們從給定的視頻中抽取16幀,并試圖從相同的視頻中(更長)或不同的視頻中檢索相同的視頻段。對于前者,我們首先從SpeedNet中抽取查詢的特征向量,然后計算目標視頻的特征向量以滑動窗口的方式。隨后,計算余弦相似度。對后者,查詢視頻是從UCF101測試集中抽取的,查詢則在訓練集中進行,也是用余弦相似度。
?????? 結論,SpeedNet主要關注對象行為的類型和速度,因此可能不總是屬于同一個類的視頻。但是為了得出結論,我們進行了另一個實驗,計算召回率。經過比較只比【40】的結果稍差一點。
?
.5 Visualizing salient space-time regions可視化靜態空間-時間域
?????? 為了可以更好的理解空間-時間域對判斷的貢獻,使用了Class-Activation Map(CAM)技術可視化最后一個3D層,在最大池化-平均池化之前。具體的,我們抽取了TxNxNx1024特征向量,T表示時間維度,N表示空間維度。首先使用W(前面提到的1x1)處理特征向量得到TxNxN,然后去激活層的絕對值并將其歸一化到0,1之間。
?????? 結論,模型可以選出靜態的運動者即便是在劇烈運動的相機條件下。
?????? 另一個實驗來自Memory Eleven,只有部分內容是慢速播放的,其余內容是常速播放的。模型可以準確將這兩部分內容區分開來。
?
6結論
?????? 我們的工作在于研究一種可以學習速度的機制,模型是否可以判斷出視頻是否加速播放了。因此,提出了SpeedNet,一種自監督模型。我們說明模型可以很好的學習到高維物體運動優勢,比幅度更為復雜。并且在幾個任務上說明了模型的有效性:自適應加速視頻;無監督預訓練用于動作識別;用于視頻段檢索的特征提取。
總結
以上是生活随笔為你收集整理的SpeedNet: Learning the Speediness in Videos的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GCN代码超详解析Two-stream
- 下一篇: Xavier初始化和He初始化