視頻理解綜述學習 p1 自用筆記
主要包括除開Video Transformer以外的主線文章

Deep Video:?
Large-scale Video Classification with Convolutional Neural Networks - CVPR 2014
深度學習時代使用神經網絡處理視頻理解的早期工作,團隊提出Sports 1M數據集,與兩年后提出的YouTube 8M數據集,與Action Detection的AVA數據集,很大程度上推動視頻理解領域發(fā)展。

四種基礎架構的網絡的實驗結果并不好,甚至,“展示了”深度學習在視頻理解任務上碰壁的一個情況,引發(fā)了更多的人來開拓這個任務。
此時的2D網絡還沒有很好的結構卻外抽取與學習視頻的“時序信息”,是深度學習在視頻動作識別領域表現不好的主要原因。
Two-stream Net:
Two-Stream Convolutional Networksfor Action Recognition in Videos? - 2014
前文介紹過 ?雙流網絡?可回看。
額外添加一套卷積神經網絡去處理“光流信息”,用一套網絡去專門處理時序信息——本文中的光流視頻幀,去學習從光流圖像到分類的映射,這里的光流就涵蓋了很多物體移動的信息;另一套空間流網絡去學習一個從RGB圖像到分類的映射;兩套網絡參數互相獨立。

也明顯有很多工作可以跟進,視頻中提出:
文章在網絡的最后做的是Late Fusion,且是最基本的加權平均的操作,那么在網絡前面做Early Fusion的效果會不會更好,在前面的layer中更合適的Early?Fusion理論上會更好。
架構為AlexNet的基本版,顯然可以置換更深的網絡架構如Inception塊,VGG等。
兩種網絡最后都是直接輸出分類頭,但這樣的操作直覺上是不能夠充分利用時序信息的,在當時LSTM應該是更好的選擇。
此處的視頻理解基本每個片段都在2-3s之間,是否可以拓展任務到更長時間的視頻理解任務,要知道現實中的很多動作完成時間都可能是很長的。
Beyond Short Snippets:
Beyond Short Snippets: Deep Networks for Video Classification - 2015 CVPR

探索pooling操作對視頻理解領域的影響,包括max,average,conv,late,slow,local?pooling,并試驗性使用LSTM對時序信息進行處理,最后使用了convpooling和LSTM的網絡結構進行視頻處理。且由于convpooling和LSTM的存在,該網絡可以使用的視頻幀數非常多,能夠更好的適用于長視頻。
老師對LSTM的理解:當每個LSTM的輸入差異化較大的時候,LSTM會工作的更好,故在短視頻上,每一幀的差異不大,可能本身也學不到什么很有效的知識。
Convolutional Two-Stream Network Fusion for Video Action Recognition - 2016 CVPR
關注于雙流網絡中 Fusion 操作的文章,改進Late fusion操作,即如何在雙流網絡中更好的做空間或者時序上的Early Fusion操作。
spatial fusion:當存在兩個網絡后,去保證時間流和空間流上的特征圖,在同樣的layer上產生的通道上能進行聯系。如max fusion 在同樣的位置上去兩個值上的最大值,就叫max fusion;把兩個特征圖直接concat ,即concatenation fusion;或者conv fusion,先進行concat后進行一次卷積操作;sum fusion,在兩個特征圖對應的位置做加法;bilinear fusion 給定兩個特征圖后在對應位置的點上,做outer product,做完乘積之后再在所有維度上做一次加權平均。文章最后展示出conv fusion的表現最好。

temporal fusion:

Early Fusion可能是一種變相的對網絡的約束,讓模型在早期的訓練中,就能互相學習與彌補。文章做了大量消融實驗,徹底將網絡構建走了一路,研究了一番,讓后面的研究者少走很多彎路,帶來很多見解;嘗試使用了3Dconv 與 3Dpooling,增加了研究者使用3D結構CNN的信心,推動3D卷積的發(fā)展——I3D。
TSN 需要細品的論文
Temporal Segment Networks: Towards Good Practices for Deep Action Recognition - ECCV 2016
貢獻卓越,通過簡單的思路使得長視頻能夠更好的處理,且提出了很多好用與有效的技巧,囊括了?數據增強,模型初始化,光流的使用,網絡的選擇,過擬合的防止,本文對這些問題給出了很好的答案與思路,很多技巧沿用至今。可以細讀。

模型的前向過程和思路非常簡單:將長視頻分成”幾段“,先后通過雙流網絡,中間的雙流網絡共享參數,而對于同一個長視頻的到的多段的N*2個logits,分別將空間流和時間流出來的兩類logits做segmental consensus,最后再將時間和空間上的”共識“做一個late fusion輸出預測。
這里后續(xù)在segmental consensus的時候,完全可以根據前端視頻的是否具備語義的連貫性,來選擇不一樣的”共識“手段,例如LSTM去模擬邏輯的遞進?!?UntrimmedNet_2017
核心是?temporal segment?朱老師使用該思想進行了一項對比學習的任務,即如上圖三塊,分別取一幀的兩個個三幀序列可以構成正樣本對。該思路可以運用到更多領域!
好用的技巧:
Cross Modality Pre-training:modality指的是“多模態(tài)”,是一種預訓練模型的遷移操作,把ImageNet的參數初始化用到光流網絡的初始化效果也是很好的,因為光流的數據集很少,從頭訓練一個好的參數不太容易。具體操作:ImageNet的輸入為3個channel,光流的輸入為很多可能有20個channel,這里作者把三個channel做平均后直接進行20個復制即可,和I3D中的Inflation操作很像。
Regularization Techniques —— Partial BN:BN雖然可以加速訓練,但在小數據集上特別容易過擬合,作者就將第一層的BN層參數“打開”,后續(xù)的所有BN全部凍住。
Data Augmentation :
????corner cropping :強制在邊角地區(qū)進行裁剪。
????scale-jittering:改變輸入圖片的長寬比,來實現數據增強。