1. 程式人生 > >Action Recognition TSN論文理解

Action Recognition TSN論文理解

paper:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
linkTSN paper
codeTSN github code

摘要

  • 論文目標:探索DCNN在視屏行為識別領域的優勢,設計一個有效的基於conv的視訊行為識別架構;
  • 論文貢獻:
    • (TSN)temporal segment network,基於long-range時間結構建模:結合了sparse temporal sampling策略和video-level監督,從而使得模型能夠高效地從整個action video中學習;
    • 使用TSN在video data上的一系列實踐,在行為識別資料集上的表現為HMDB51(69.4%),UCF101(94.2%)
    • UCF101:13320個視訊101類動作;HMDB51:6766個視訊包含51類動作

引言

  • 行為識別中兩個至關重要且相互輔助的部分:appearances和dynamics;
  • convNet應用於video based action Recognition有兩個主要的阻礙:1.long-range時間結構對於理解action video中的dynamics;在實際訓練DCNN的時候需要用到大量的訓練樣本,但是action Recognition資料集採集難度和標註難度都很大,導致現有的公開資料集在多樣性和規模上都受到限制;
  • 面對現有挑戰論文主要探究兩個問題:
    • how to design an effective and efficient video-level framework for learning video representation that is able to capture long-range temporal strcuture;
    • how to learn the conNet models given limited training samples;
  • 作者在成功的two-stream結構的基礎上構建了新的方法,可以同時解決上面兩個問題,在時間結構建模方面,採用稀疏時間取樣策略,因為密集時間取樣會有大量的冗餘相似幀;然後提出可video-level的框架TSN,採用稀疏採用策略在長視訊序列中提取短片段,同時樣本在時間維度均勻分佈,由此採用segment結構來聚合取樣片段的資訊;
  • 為了解決limited training sample的問題,文中探索了很多好的實踐:1.cross-modality pre-training 2.regularization 3.enhance data augmentation;
  • 為了充分利用video的視覺資訊,根據經驗在two-stream convNet種研究了四種輸入型別:1.single RGB image 2.stacked RGB difference 3.stacked optical flow field 4.stacked warped optical flow field

基於TSN的行為識別

附加內容:Two stream CNN for action Recognition

  • 2014 NPIS paper:Two –Stream CNN for Action Recognition in Videos
  • 論文貢獻點:
    • 提出基於two-stream結構的convNet,由空間流convNet和時間流convNet組成,目前大多數行為識別演算法還是基於two-stream的;
    • 採用多幀密集光流訓練策略可以在規模小的資料集上訓練convNet可以獲得比較好的效能;
    • 多工訓練方法將兩個行為識別資料集聯合起來訓練提高訓練效果,針對每一個數據集都有一個softmax給資料集打分,都有獨立的loss,最後loss疊加回傳更新網路引數;
  • 網路結構,視訊可以分為空間和時間兩部分進行分析,空間部分每一幀代表影象的表徵靜態資訊,時間部分是指幀之間的運動資訊,因此convNet處理視訊應該分為兩部分,從而設計two-stream convNet結構;每個部分由conv和softmax組成,最後score fusion的方法有兩種:平均、在一個堆疊的L2正則化的softmax基礎上訓練一個多類的線性SVM;
  • 時間網路的輸入為連續多幀的光流場,光流場能有效描述視訊幀之間的運動(關於光流的理解目前還比較淺,需要進一步學習)

TODO:optical flow

Temporal Segement Networks

  • two-stream convNet明顯的缺陷在於它的temporal context輸入受限,只能操作單幀資料(spatial Net)或者一個短的幀片段(temporal Net),導致他在長範圍時間結構上建模很困難;對於一些複雜的動作跨越時間長階段多,如果在convNet訓練中不能利用好這些動作中的長範圍時間結構,會帶來很多的資訊損失;因而提出temporal segment network,具有動態遍歷整個video的能力;
  • TSN的設計目標是能利用整個video的視覺資訊進行video-level的預測,整體結構由spatial stream convNettemporal stream convNet組成;TSN輸入為從整個video稀疏取樣的短片段幀序列,每一個短片段都會產生自身初步的action類別預測,然後一個包含所有片段資訊的共識將會匯出作為video-level的預測;
  • 上圖流程為輸入視訊流被分為K個segment,每一個segment中隨機選擇一個snippet,不同snippet的類別分數使用segment consensus function進行fusion來產生segment consensus作為視訊級的預測,最後融合所有模式的預測產生最終的預測結果,所有snippet共享conv引數;
  • 具體的識別流程為:
    • 將輸入輸入視訊流 V V 按照相同的間隔分為 K K 個segment,然後TSN對一系列snippet進行建模: T S N ( T 1 , T 2 ,   , T K ) = H ( G ( F ( T 1 ; W ) , F ( T 2 ; W ) ,   , F ( T K ; W ) ) ) TSN(T_1, T_2, \cdots, T_K)=H(G(F(T_1;W), F(T_2;W), \cdots, F(T_K;W))) ;
    • 其中 ( T 1 , T 2 ,   , T K ) (T_1, T_2, \cdots, T_K) 是一個片段序列,每個片段 T k T_k 都是從它對應的segment S k S_k 隨機取樣得到的; F ( T k ; W ) F(T_k;W) 表示convNet這個function,引數為 W W ,輸入為片段 T k T_k ,返回值為針對所有類別的類別score;
    • segmental consensus function G G 輸入為多個片段的類別分數,然後將多個片段的輸出合併得到片段之間類別假設的共識;基於這個共識預測函式 H H 針對整個video預測每一個action類別的概率(softmax);
    • 結合標準cros-entropy loss設計segmental consensus的loss function: L ( y , G ) = i = 1 C y i ( G i l o g j = 1 C e x p    G j ) L(y, G)=-\sum_{i=1}^Cy_i\left( G_i-log\sum_{j=1}^C exp\;G_j \right) ;其中 C C 表示action類別數, y i y_i 是關於類別 i i 的groundtruth label;segment共識函式在實驗中採用的是最簡單的結構 G i = g ( F i ( T 1 ) , , F i ( T K ) ) G_i=g(F_i(T_1), \ldots, F_i(T_K)) ,實驗中最後確定聚合函式 g g 使用均勻平均來計算最後的識別精確度;
    • TSN在訓練中可以用多個片段來聯合優化模型的引數 W W ,訓練中針對所有video固定 K K ,稀疏取樣策略能夠急劇減少密集取樣策略的計算開銷;

Learning TSN

  • TSN網路結構:原始的two stream convNet方法在網路結構上用的是相當淺的網路結構ClarifaiNet,文中實驗採用BM-Inception作為模型的building block,並在此基礎上設計two steam convNet,和原始的two stream一樣spatial stream處理single RGB影象,temporal stream處理一堆連續的光流場;
  • TSN網路輸入:文中實驗探索更多樣的輸入模式來增強TSN的識別能力,原始的two-stream convNet使用RGB影象和一堆光流場分別作為spatial stream和temporal stream的輸入,在TSN中還進一步探索了兩種輸入模式RGB differencewarped optical flow fields
  • 針對RGB、RGB difference、optical flow filed、warped optical flow field的分析:RGB影象通常只能表示在特定時間點上的影象的靜態表徵資訊,缺乏和前後幀的上下文資訊;RGB difference表示連續兩幀影象的表徵差異,能夠表達運動顯著的區域;optical flow field能夠捕捉運動資訊,但是在顯示拍攝中可能存在相機移動的情況,optical flow field就不能準確表示人物的行為資訊了;文中實驗受到dense trajectories的啟發,提出了將wraped optical flow field作為額外的輸入,首先通過估計homography matrix然後補償相機運動來提取扭曲光流,扭曲光流能夠一直背景的運動將運動集中在運動者身上;
  • TSN網路訓練:為了減緩資料量小帶來的DCNN模型過擬合的問題,實驗設計了幾種TSN的訓練策略
    • cross modality pre-training:使用ImageNet上的預訓練模型初始化空間網路,其他模態資料分佈和RGB不同,利用RGB模型來初始化時間網路,通過線性變換將光流場離散到0-255區間,然後修改RGB模型第一個卷積層的權重處理光流場輸入,具體做法是平均RGB通道的權重,並通過時間網路輸入的通道數來複制這個平均值,以此減少過擬合的影響;
    • regularization techniques:部分BN策略,凍結所有BN層引數解凍第一個BN層,並在pooling後加入dropout,其中空間流網路設定為0.8,時間流網路設定為0.7;
    • data augmentation:在傳統兩種資料增強方法隨機裁剪和水平翻轉的基礎上提出了兩種新的方法,角裁剪避免了模型預設關注影象中心,尺度抖動將影象和光流場的大小固定為256 * 340,裁剪區域的寬和高在陣列[256,224,192,168]隨機選擇,然後再將裁剪區域resize到224 * 224;
  • 測試TSN:各片段之間共享convNet引數,在空間流和時間流的融合中採用加權平均方法,在TSN空間流網路和時間流網路之間的效能差距遠小於原始two-stream方法,實驗中空間流權重為1時間流權重為1.5,當同時使用光流和扭曲光流時,權重1.5將分0.5作為扭曲光流的權重;為了測試訓練得到模型,在節共識函式在做softmax操作之前,融合了25幀和不同流的預測分數;

TSN表現

  • 四種不同訓練策略的實驗結果:

    • 從頭開始訓練;
    • 只在空間流使用預訓練模型;
    • 使用cross modality進行預訓練;
    • cross modality和部分BNdropout結合;
  • 針對TSN對空間流網路進行預訓練,對時間流網路進行交叉輸入模式與訓練以及配合部分BN dropout的方法可以將two-stream的識別率提高到92.0%;

  • 不同輸入模式的實驗結果:光流能夠更好地捕捉運動資訊,有時候RGB差異描述運動資訊會不穩定;

  • 不同型別段共識函式的實驗結果,平均池化實驗效果最佳
  • 不同conNet結構的實驗結果,BN-inception實驗效果最好,作為TSN的conNet結構
  • 基於BN-inception結構逐步加上優化訓練的部分實驗結果的比對

TSN github專案實驗

TODO