TSN(Temporal Segment Networks)
論文:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
論文連結:https://arxiv.org/abs/1608.00859
代碼連結一(caffe):https://github.com/yjxiong/temporal-segment-networks
代碼連結二(pytorch):https://github.com/yjxiong/tsn-pytorch
論文點評概述:
1)相對與以前雙流方法(單幀RGB+光流),TSN通過将整段視訊分段然後采樣的方式,使得網絡能夠處理更長時間的視訊,進而網絡得到的時序特征更加豐富。
2)研究對比了四種輸入資訊模式:RGB圖像、RGB幀內插補點、光流、扭曲光流(應對相機抖動)。
3)受限于當時的資料集相對較小,作者采用三種方式防止過拟合①交叉輸入預訓練(将RGB層參數用作光流預訓練)、②部分BN和dropout、③裁剪擴充。
提出問題:
1)two-stream 卷積網絡對于長範圍時間結構的模組化無能為力,主要因為它僅僅操作一幀(空間網絡)或者操作短片段中的單堆幀(時間網絡),是以對時間上下文的通路是有限的。而本文視訊級架構TSN可以從整段視訊中模組化動作。)
2)與two-stream方法相同,TSN也是由空間流卷積網絡和時間流卷積網絡構成。但two-stream采用的是單幀或者單堆幀,而TSN使用從整個視訊中稀疏地采樣一系列短片段,每個片段都将給出其本身對于行為類别的初步預測,從這些片段的“共識”來得到視訊級的預測結果。
解決的問題:
1、處理長時間視訊的行為判斷問題(此前一些論文主要對于單幀圖像或幾幀的短時間進行處理)。
2、解決資料少的問題,資料量少會使得一些深層的網絡難以應用到視訊資料中,因為過拟合會比較嚴重。
主要貢獻:
1)提出了TSN(Temporal Segment Networks),基于長範圍時間結構(long-range temporal structure)模組化,結合了稀疏時間采樣政策(sparse temporal sampling strategy)和視訊級監督(video-level supervision)來保證在進行整段較長視訊學習時,能夠有效的學習到特征并且更高效。
2)基于本文TSN的基礎上,進行了一些實驗,去驗證不同輸入資訊的效果和防止過拟合政策。
資料集表現:HMDB51(69.4%)、UCF101(94.2%)
TSN網絡結構:

由上圖所示,一個輸入視訊被分為 K 段(segment),然後從每段中随機采樣得到子片段(snippet)。最後融合每個子片段的類别得分(融合這一部分作者寫了一堆時髦的公式,但是最後選擇對每個子片段結果取平均),這是一個視訊級的預測。然後對所有模式的預測融合産生最終的預測結果。
網絡結構和TSN函數表達式詳解:
1)采樣得到子片段:(T1,T2,…,Tk)表示K個采樣得到的snippets(子片段),也就是說Tk是從其對應(S1,S2,…,Sk)中随機采樣出來的結果。
2)子片段輸入資訊種類:Tk是一個snippet,每個snippet包含一幀圖像和兩個光流特征圖(光流、扭曲光流)。這也就完成了作者說的稀疏采樣。
3)單個子片段的輸出:式子中的W就是網絡的參數,F(Tk;W)函數代表采用 W 作為參數的卷積網絡作用于短片段 Tk,函數傳回 Tk 相對于所有類别的得分,也就是該snippet屬于每個類的得分。F函數的輸出值對應于網絡結構圖中Spatial ConvNet(空間)或Temporal ConvNet(時序)的輸出結果,ConvNet圖後面的綠色條形圖,代表的就是socre在類别上的分布。
4)融合所有子片段結果:g是一個融合函數,在文中采用的是均值函數,就是對所有snippet的屬于同一類别的得分做個均值。g函數的輸出結果就是網絡結構中Segmental Consensus的輸出結果。
5)softmax計算機率:最後用H函數(文中用的softmax函數)根據得分算機率,機率最高的類别就是該video所屬的類别。
6)融合時序和空間結果:在輸入softmax之前會将空間和時序兩條網絡的結果進行合并,預設采用權重求均值的方式進行合并,文中用的權重比例是spatial:temporal=1:1.5。
7)所有子片段共享參數:網絡結構中的K個Spatial ConvNet的參數是共享的,K個Temporal ConvNet的參數也是共享的,實際用代碼實作時隻是将K個子片段輸入到同一個網絡中。
損失函數(交叉熵):C表示類别數,yi是标簽
網絡輸入模式:
作者測試了四種輸入類型:從左到右分别為RGB圖像、RGB內插補點(兩幀圖像的內插補點)、光流場(optical flow fields)和扭曲光流場(warped optical flow fields)。
1)RGB圖像:單一RGB圖像表征特定時間點的靜态資訊,進而缺少上下文資訊。
2)RGB內插補點:兩個連續幀的RGB差異表示動作的改變,對應于運動顯著區域。故作者實驗将RGB差異堆作為另一個輸入模式。
3)光流場(optical flow fields):光流場緻力于捕獲運動資訊。
4)扭曲光流場:由于現實拍攝的視訊中,通常存在錄影機的運動,這樣光流場就不是單純展現出人類行為。由于相機的移動,視訊背景中存在大量的水準運動。受到iDT(improved dense trajectories)工作的啟發,作者提出将扭曲的光流場作為額外的輸入。通過估計單應性矩陣(homography matrix)和補償相機運動來提取扭曲光流場。圖2中,扭曲光流場抑制了背景運動,使得專注于視訊中的人物運動。
防止過拟合:
1、交叉輸入模式預訓練
1)對于RGB輸入:采用在ImageNet上預訓練的模型做初始化。
2)對于其他輸入模式(如RGB差異、光流場):它們基本上捕捉視訊資料的不同視覺方面,并且它們的分布不同于RGB圖像的分布。作者提出了交叉模式預訓練技術:利用RGB模型初始化時間網絡。
交叉訓練模式具體操作方式:首先,通過線性變換将光流場離散到從0到255的區間,這使得光流場的範圍和RGB圖像相同。然後修改RGB模型第一個卷積層的權重來處理光流場的輸入。具體是對RGB通道上的權重進行平均,并根據時間網絡輸入的通道數量複制這個平均值。這一政策對時間網絡中降低過拟合非常有效。\
2、正則化技術
在學習過程中,Batch Normalization将估計每個batch内的激活均值和方差,并使用它們将這些激活值轉換為标準高斯分布。這一操作雖可以加快訓練的收斂速度,但由于要從有限數量的訓練樣本中對激活分布的偏移量進行估計,也會導緻過拟合問題。是以,在用預訓練模型初始化後,當機所有Batch Normalization層的均值和方差參數,但第一個标準化層除外。由于光流的分布和RGB圖像的分布不同,第一個卷積層的激活值将有不同的分布,于是,我們需要重新估計的均值和方差,稱這種政策為部分BN。與此同時,在BN-Inception的全局pooling層後添加一個額外的dropout層,來進一步降低過拟合的影響。dropout比例設定:空間流卷積網絡設定為0.8,時間流卷積網絡設定為0.7。
3、資料增強
資料增強能産生不同的訓練樣本并且可以防止嚴重的過拟合。在傳統的two-stream中,采用随機裁剪和水準翻轉方法增加訓練樣本。作者采用兩個新方法:角裁剪(corner cropping)和尺度抖動(scale-jittering)。
1)角裁剪(corner cropping):僅從圖檔的邊角或中心提取區域,來避免預設關注圖檔的中心。
2)尺度抖動(scale jittering):将輸入圖像或者光流場的大小固定為 256×340,裁剪區域的寬和高随機從 {256,224,192,168} 中選擇。最終,這些裁剪區域将會被resize到224×224 用于網絡訓練。事實上,這種方法不光包括了尺度抖動,還包括了寬高比抖動。
實驗:
1、對比4種不同訓練方式的效果
作者對四種方案進行實驗:(1)從零開始訓練;(2)僅僅預訓練空間流;(3)采用交叉輸入模式預訓練;(4)交叉輸入模式預訓練和部分BN dropout結合。結果總結在下表1中:
由上表可以看出,從零開始訓練比基線算法(two-stream卷積網絡)的表現要差很多,證明需要重新設計訓練政策來降低過拟合的風險,特别是針對空間網絡。對空間網絡進行預訓練、對時間網絡進行交叉輸入模式預訓練,取得了比基線算法更好的效果。之後還在訓練過程中采用部分BN dropout的方法,将識别準确率提高到了92.0%。
2、對比四種輸入資訊
在上文中提出了兩種新的模式:RGB差異和扭曲的光流場。不同輸入模式的表現比較如下表2:
對比結論:
1)RGB圖像和RGB差異的結合可以将識别準确率提高到87.3%,表明兩者的結合可以編碼一些補充資訊。
2)光流和扭曲光流的表現相近(87.2% vs 86.9%),兩者融合可以提高到87.8%。
3)四種模式的結合可以提高到91.7%。由于RGB差異可以描述相似但不穩定的動作模式,作者還評估了其他三種模式結合的表現(92.3% vs 91.7%)。作者推測光流可以更好地捕捉運動資訊,而RGB差異在描述運動時是不穩定的。在另一方面,RGB差異可以當作運動表征的低品質、高速的替代方案。
3、對比三種不同的聚合函數
TSN表達式中段共識函數被定義為它的聚合函數 g,這裡評估 g 的三種形式:(1)最大池化;(2)平均池化;(3)權重平均。實驗結果見表3。
對比結果:平局池化函數達到最佳的性能。是以在接下來的實驗中選擇平均池化作為預設的聚合函數。
4、對比不同的基網絡
對比結果:3個網絡架構BN-Inception、GoogLeNet和VGGNet-16。在這些架構中,BN-Inception表現最好,故選擇它作為TSN的卷積網絡架構。
5、對比TSN中不同元件對準确率的影響
對比結果:從交叉預訓練、部分BN與dropout、TSN的最終結構,一步一步提高了網絡的準确率。
論文結果:
沒什麼好說的,詳情見表,總之當年的SOTA。
特别感謝,參考文章連結:https://blog.csdn.net/zhang_can/article/details/79618781