相比圖像,視頻多了一維時序信息。如何利用好視頻中的時序信息是研究這類方法的關鍵。視頻理解可以用于多個領域,例如在智能安防領域中可以取代人工來對監控視頻進行分析。本文簡要回顧視頻理解方面的近年進展,并對未來可能的研究方向作一展望。
常用數據集
視頻分類主要有兩種數據集,剪輯過(trimmed)的視頻和未經剪輯的視頻。剪輯的視頻中包含一段明確的動作,時間較短標記唯一,而未剪輯的視頻還包含了很多無用信息。如果直接對未剪輯的視頻進行處理是未來的一大研究方向。
HMDB-51:6,766視頻,51類。剪輯的視頻,每個視頻不超過10秒。內容包括人面部、肢體、和物體交互的動作等。
UCF-101:13,320視頻,101類,共27小時。剪輯的視頻,每個視頻不超過10秒。內容包含化妝刷牙、爬行、理發、彈奏樂器、體育運動等。
Charades:9.848視頻(7,985訓練,1,863測試),157類。未剪輯的視頻,每個視頻大約30秒。每個視頻有多個標記,以及每個動作的開始和結束時間。
Sports-1M:1,100,000視頻(70%訓練、20%驗證、10%測試),487類,內容包含各種體育運動。
ActivityNet (v1.3):19,994視頻(10,024訓練,4,926驗證,5,044測試),200類,共700小時。內容包括飲食、運動、家庭活動等。
Kinetics:246k訓練視頻,20k驗證視頻,400類。
G. A. Sigurdsson, et al. What actions are needed for understanding human actions in videos? ICCV'17.
相比圖像分類,視頻的類別/動作數目要少很多,而且常常有一定歧義,例如take和put要和后面名詞結合才會有具體含義(如take medication, take shoes, take off shoes)。Sigurdsson等人發現人類對這些動詞也容易感到混淆。另外,視頻中動作開始和結束的時間也不夠明確。
經典方法
H. Wang, et al. Dense trajectories and motion boundary descriptors for action recognition. IJCV'13.
H. Wang and C. Schmid. Action recognition with improved trajectories. ICCV'13.
Wang等人提出DT和iDT方法。DT利用光流得到視頻中的運動軌跡,再沿著軌跡提取特征。iDT對相機運動進行了補償,同時由于人的運動比較顯著,iDT用額外的檢測器檢測人,以去除人對相鄰幀之間投影矩陣估計的影響。這是深度學習方法成熟之前效果最好的經典方法,該方法的弊端是特征維度高(特征比原始視頻還要大)、速度慢。實踐中,早期的深度學習方法在和iDT結合之后仍能取得一定的效果提升,現在深度學習方法的性能已較iDT有大幅提升,因此iDT漸漸淡出視線。
逐幀處理融合
這類方法把視頻看作一系列圖像的集合,每幀圖像單獨提取特征,再融合它們的深度特征。
A. Karpathy, et al. Large-scale video classification with convolutional neural networks. CVPR'14.
Karpathy等人把視頻劃分成很多固定長度的片段(clip),并設計了多種融合方法。
Single frame. 逐幀單獨前饋網絡。
Late fusion. 兩幀相距15幀的圖像分別前饋網絡,并融合它們的深度卷積特征。
Early fusion. 連續10幀圖像前饋網絡,因此網絡第一層的卷積核由11×11×3變為11×11×3×10。Early fusion的思路最早由Le等人提出。
Le, et al. Learning hierarchical invariant spatio-temporal features for action recognition with independent subspace analysis. CVPR'11.
Slow fusion. 即使用3D卷積。連續10幀圖像前饋網絡,第一層卷積核時間方向大小為4,第二、三層卷積核時間方向大小為2。
此外,為了加速訓練,由于目標通常位于圖像中心,Karpathy等人使用了一個兩分支網絡:一個分支輸入空間大小下采樣減半的圖像,另一個分支輸入原圖中心裁剪后的圖像。這樣,總體的輸入圖像維數只有原圖的一半。這兩個分支的深度卷積特征拼接(concatenate)起來給全連接層進行分類。
實驗發現,3D卷積的融合效果最好,而不考慮運動信息的single frame策略已經是十分強的baseline。Early fusion策略效果最差的原因可能是直接從輸入圖像上捕獲運動信息難度太大。
J. Y.-H. Ng, et al. Beyond short snippets: Deep networks for video classification. CVPR'15.
Ng等人先提取每一幀的深度卷積特征,再設計特征融合方法得到最終輸出。其中,紫色代表沿時間方向進行最大匯合(max-pooling),黃色代表全連接層,綠色代表3*3*10,stride 5的3D卷積,紅色代表softmax輸出。相比Karpathy等人,Ng等人的輸入視頻片段的長度更長(每秒采樣1幀,一個片段由120幀構成),包含了更多的時序信息。實踐中發現(a)的效果最好。
B. Fernando and S. Gould. Learning end-to-end video classification with rank-pooling. ICML'16.
在得到每幀圖像的深度卷積特征vt之后,Fernando和Gould通過解如下的優化問題來對特征進行排序匯合(rank-pooling)。其動機是靠前的幀要小一些,而靠后的幀大一些。
X.-S. Wei, et al. Deep bimodal regression of apparent personality traits from short video sequences. TAC'17.
由于相鄰幀信息冗余度很高,Wei等人從視頻(450幀)中采樣100幀,每幀交由DAN分別進行預測。在得到relu5-2/pool5深度特征之后,DAN將其全局最大/平均匯合以得到深度特征。
A. Kar, et al. AdaScan: Adaptive scan pooling in deep convolutional neural networks for human action recognition in videos. CVPR'17.
由于不同幀的重要性不同,Kar等人提出AdaScan匯合方法。其逐幀提取特征,之后判斷不同幀的重要程度,并據此進行特征匯合。
M. Zolfaghari, et al. ECO: Efficient Convolutional network for Online video understanding. arXiv:1804.09066.
Zolfaghari等人提出ECO。由于相鄰幀有信息冗余,ECO從視頻中采樣若干幀,每幀單獨用2D卷積提取特征,之后沿時間方向拼接特征,再用3D卷積捕獲它們的時序關系。ECO和state-of-the-art方法性能相似,但速度上快了10-80倍。在測試時,為了捕獲長距離依賴,輸入視頻片段由已看過的和未看過的視頻中采樣得到。
ConvLSTM
這類方法是用CNN提取每幀圖像的特征,之后用LSTM挖掘它們之間的時序關系。
J. Y.-H. Ng, et al. Beyond short snippets: Deep networks for video classification. CVPR'15.
J. Donahue, et al. Long-term recurrent convolutional networks for visual recognition and description. CVPR'15.
Ng等人在深度特征上,用5層隱層結點數512的LSTM來提取深度特征,每個時刻都進行輸出。訓練時,一個片段從第1幀到最后一幀輸出層獲得的梯度分別乘以0.0-1.0的權重,用以強調后面幀的重要性。測試時,計算這些幀輸出的加權和。Donahue等人也提出了類似的工作。此外,Ng等人和Donahue等人還利用了光流輸入。把x、y兩個方向的光流縮放到[0, 255]作為光流圖像前兩個通道,把光流的大小作為第三個通道。
W. Du, et al. RPAN: An end-to-end recurrent pose-attention network for action recognition in videos. ICCV'17.
Du等人利用人體姿態估計輔助動作識別。
3D卷積
把視頻劃分成很多固定長度的片段(clip),相比2D卷積,3D卷積可以提取連續幀之間的運動信息。
在視頻動作識別中最早提出3D卷積的是
M. Baccouche, et al. Sequential deep learning for human action recognition. HBU Workshop'11.
S. Ji, et al. 3D convolutional neural networks for human action recognition. TPAMI'13.
Baccouche等人使用第一層卷積核時間方向大小為5。Ji等人使用第一、二層卷積核時間方向大小為3,第三層卷積時由于時間維度大小很小,所以采用2D卷積。
此外,為使網絡獲得更多先驗信息,Ji等人使用了兩個技巧:(1). 同時使用原始圖像、圖像梯度、和相鄰幀光流作為輸入。(2). 讓網絡額外地學習運動信息接近手工運動特征。
D. Tran, et al. Learning spatio-temporal features with 3D convolutional networks. ICCV'15.
Tran等人提出C3D,其將3×3卷積擴展到3×3×3卷積,2×2匯合擴展到2×2×2匯合。輸入片段16幀。實驗中發現,時域方向卷積核大小為3效果最好。相比2D CNN,3D CNN的參數量很大,訓練變得更困難,且需要更多的訓練數據。相比其他類型的方法,C3D一次處理多幀,所以計算效率很高。
L. Sun, et al. Human action recognition using factorized spatio-temporal convolutional networks. ICCV'15.
Sun等人把3D卷積分解為空間方向2D卷積和時間方向1D卷積。
J. Carreira and A. Zisserman. Quo vadis, action recognition? A new model and the Kinetics dataset. CVPR'17.
Carreira和Zisserman提出I3D,把two-stream結構中的2D卷積擴展為3D卷積。由于時間維度不能縮減過快,前兩個匯合層的卷積核大小是1×2×2,最后的匯合層的卷積核大小是2*7*7。和之前文章不同的是,two-tream的兩個分支是單獨訓練的,測試時融合它們的預測結果。
Z. Qiu, et al. Learning spatio-temporal representation with pseudo-3D residual networks. ICCV'17.
Qiu等人提出P3D,用一個1×3×3的空間方向卷積和一個3×1×1的時間方向卷積近似原3×3×3卷積。通過組合三種不同的模塊結構,進而得到P3D ResNet。P3D ResNet在參數數量、運行速度等方面對C3D作出了優化。
D. Tran, et al. A closer look at spatio-temporal convolutions for action recognition. CVPR'18.
Tran等人提出ResNet (2+1)D,把一個3D卷積分解成為一個2D卷積空間卷積和一個1D時間卷積,注意這里的參數量和原3D卷積相同。相比P3D有三種形式,(2+1)D和P3D-A最接近。
C. Lea, et al. Temporal convolutional networks for action segmentation and detection. CVPR'17.
受WaveNet啟發,Lea等人提出一個編碼-解碼網絡,并使用空洞卷積和短路連接,以捕獲長距離依賴。實驗中發現,這種結構效果優于RNN。
L. Wang, et al. Appearance-and-relation networks for video classfication. CVPR'18.
Wang等人希望利用3D卷積顯式地學習類似two-stream的結構。Wang等人通過不同幀之間的乘性關系度量不同幀之間的關系。
K. Hara, et al. Can spatio-temporal 3D CNNs retrace the history of 2D CNNs and ImageNet? CVPR'18.
Hara等人嘗試了多種3D網絡結構。
X. Wang, et al. Non-local neural networks. CVPR'18.
可以看作是3D卷積的一個擴展。3D卷積的感受野是有限區域,而non-local旨在解決長距離依賴問題。Non-local的響應是所有空間和時間位置特征的加權平均
其中,用于度量相似性,計算響應,用于歸一化。當時,non-local操作退化為全連接層;當時,non-local操作退化為self-attention。實驗中發現non-local block加在底層比加在高層效果要好,加多個non-local blocks會有效果提升但不是很明顯。
這類方法的弊端是只能考慮比較短的時間片段的運動信息,參數量?
Two-stream
K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. NIPS'14.
采用兩個分支。一個分支輸入單幀圖像,用于提取圖像信息,即在做圖像分類。另一個分支輸入連續10幀的光流(optical flow)運動場,用于提取幀之間的運動信息。由于一個視頻片段中的光流可能會沿某個特別方向位移的支配,所以在訓練時光流減去所有光流向量的平均值。兩個分支網絡結構相同,分別用softmax進行預測,最后用直接平均或SVM兩種方式融合兩分支結果。
此外,為了加速訓練,Simonyan和Zisserman預先計算出光流并保存到硬盤中。為了減小存儲大小,他們將光流縮放到[0, 255]后用JPEG壓縮,這會使UCF101的光流數據大小由1.5TB減小到27GB。
L. Wang, et al. Action recognition with trajectory-pooled deep-convolutional descriptors. CVPR'15.
Wang等人結合了經典iDT手工特征和two-stream深度特征,提出TDD。經典手工特征計算時通常分兩步:檢測圖像中顯著和有信息量的區域,并在運動顯著的區域提取特征。TDD將預訓練的two-stream網絡當作固定的特征提取器。得到兩者特征之后,TDD使用時空規范化以保證每個通道的數值范圍近似一致,使用通道規范化以保證每個時空位置的描述向量的數值范圍近似一致,之后用trajectory pooling并用Fisher向量構建TDD特征,最后用SVM分類。
C. Feichtenhofer, et al. Convolutional two-stream network fusion for video action recognition. CVPR'16.
Feichtenhofer等人研究如何融合兩分支的深度卷積特征。他們發現級聯兩個特征到2D維再用1×1卷積到D維的融合方法效果最好,之后再經過3D卷積和3D匯合后輸出。
C. Feichtenhofer, et al. Spatio-temporal residual networks for video action recognition. NIPS'16.
Feichtenhofer將ResNet作為two-stream的基礎網絡架構,用預訓練網絡的權重初始化新的3D網絡:w(d, t, i, j)=w(d, i, j)/T。此外,有從光流分支到圖像分支的信息傳遞。此外,網絡輸入不是連續的,而是步長5到15幀。
L. Wang, et al. Temporal segment networks: Towards good practices for deep action recognition. ECCV'16.
由于相鄰的幀信息冗余度很高,對視頻密采樣是不必要的。Wang等人提出TSN結構,其對視頻進行稀疏采樣,在避免冗余信息的同時可以處理長距離依賴。TSN把輸入視頻分成K段,每段隨機選擇一個視頻片段(snippet),之后用two-stream結構提取特征再融合。TSN取得了ActivityNet 2016年競賽的冠軍。
此外,除RGB和光流圖像輸入外,TSN還嘗試了RGB difference和warped光流兩種輸入,最終發現RGB+光流+扭曲(warped)光流的效果最好。
Z. Lan, et al. Deep local video feature for action recognition. CVPR'17.
由于不是視頻中每幀都包含有用信息,Lan等人首先用TSN提取局部特征,之后再進行聚合。
R. Girdhar, et al. ActionVLAD: Learning spatio-temporal aggregation for action recognition. CVPR'17.
類似于NetVLAD,Girdhar等人用two-stream提取特征,之后用VLAD得到視頻的表示。實驗中發現,圖像和光流兩個分支單獨處理效果最好。
C. Feichtenhofer, et al. Spatio-temporal multiplier networks for video action recognition. CVPR'17.
Feichtenhofer等人發現,two-stream網絡在外觀分支容易過擬合。Feichtenhofer等人加入了兩個分支之間的信息交互,并發現乘性的信息交互效果最好。
G. A. Sigurdsson, et al. Asynchronous temporal fields for action recognition. CVPR'17.
Sigurdsson等人利用全連接時序CRF對視頻的時序關系進行推斷。
W. Zhu, et al. A key volume mining deep framework for action recognition. CVPR'16.
一段視頻中并非所有的幀都對識別任務同等重要,如果把它們同等看待,有價值的幀信息會淹沒在其他無關的幀中。借助多示例學習思路,Zhu等人交替優化關鍵幀挖掘和分類兩個目標。網絡輸入N個視頻片段,輸出每個片段對應每個類別的分數。如果該類別對應真實標記,采用隨機匯合,否則是maxout匯合,其中響應最強的視頻片段即為得到的關鍵幀。
Y. Wang, et al. Spatio-temporal pyramid network for video action recognition. CVPR'16.
Wang等人利用雙線性匯合融合兩個分支的特征。
A. Diba, et al. Deep temporal linear encoding networks. CVPR'17.
Diba等人對不同幀/片段的深度卷積特征逐元素相乘,再通過精簡雙線性匯合得到最終的特征表示。
R. Girdhar and D. Ramanan. Attentional pooling for action recognition. NIPS'17.
將雙線性匯合用于TSN的圖像分支。在得到深度卷積特征之后,經典雙線性匯合會計算輸入屬于第k個類的分數。Girdhar和Ramanan對參數矩陣做了一個秩-1近似
實驗中, Girdhar和Ramanan將224大小的HMDB-51縮放到450大小,以確保最后的深度卷積特征大小不會太小(14×14)。當特征大小太小時,效果不顯著。另一方面,Girdhar和Ramanan只用了圖像分支來處理視頻,總體性能和state-of-the-art還有很大差距。
I. C. Duta, et al. Spatio-temporal vector of locally max-pooled features for action recognition in videos. CVPR'17.
Duta等人研究如何聚合不同特征。
P. Weinzaepfel, et al. DeepFlow: Large displacement optical flow with deep matching. ICCV'13.
Dosovitskiy, et al. FlowNet: Learning optical flow with convolutional networks. ICCV'15.
E. Ilg, et al. FlowNet 2.0: Evolution of optical flow estimation with deep networks. CVPR'17.
由于經典光流算法很慢,因此有工作致力于使用深度神經網絡計算光流。DeepFlow在不同粒度上進行聚合和匹配,FlowNet基于類似于視覺跟蹤的思路使用互相關濾波綜合兩張圖的深度特征最終生成光流。由于標記數據不足,FlowNet使用人工合成Chairs數據集進行訓練。FlowNet 2.0的貢獻有三點。(1). 發現如何進行訓練對結果影響至關重要,先在簡單的Chairs數據集上訓練、再在更真實的Things3D上訓練會比混合兩個數據集一起訓練效果更好。(2). 多個子網絡堆疊,并用中間光流結果對圖像進行扭曲輸入中間子網絡。(3). 有一個子網絡專注于微小運動。
其他視頻理解任務
時序動作定位(temporal action localization)在一段未剪輯的視頻中找到動作開始和結束的時間,并對動作進行分類。
Z. Shou, et al. Temporal action localization in untrimmed videos via multi-stage CNNs. CVPR'16.
Shou等人提出SCNN,用不同大小的滑動窗產生視頻片段,之后用3D候選區域網絡判斷該視頻片段是前景/背景,用3D分類網絡判斷K+1個類別的分數(包括背景),最后用定位網絡判斷開始/結束時間。后處理使用非最大抑制(NMS)。
J. Gao, et al. TURN TAP: Temporal unit regression network for temporal action proposals. ICCV'17.
思路類似于Faster R-CNN。
H. Xu, et al. R-C3D: Region convolutional 3D network for temporal activity detection. ICCV'17.
以C3D網絡為基礎,借鑒Faster R-CNN,對輸入視頻片段先提取特征,再生成提取候選時序,最后RoI匯合后進行檢測。
Z. Shou, et al. CDC: Convolutional-de-convolutional networks for precise temporal action localization in untrimmed videos. CVPR'17.
類似于語義分割問題的思路,為了得到對應于每一幀的分類預測分數,Shou等人在3D卷積層之后提出CDC卷積,在空間方向用卷積進行下采樣,在時間方向上用轉置卷積進行上采樣。
L. Wang, et al. UntrimmedNets for weakly supervised action recognition and detection. CVPR'17.
分類模塊用于對每個視頻片段進行分類,而選擇模塊用于給出不同視頻片段的重要性。選擇模塊的實現包括hard selection和soft selection。訓練時端到端聯合優化。
Y. Zhao, et al. Temporal action detection with structured segment networks. ICCV'17.
Zhao等人提出SSN,講視頻分為三個部分,最終構成全局特征。分類時有動作性分類器和完整性分類器。
異常檢測(anomaly detection)通常用于判斷監控視頻中出現的異常事件。
W. Sultani, et al. Real-world anomaly detection in surveillance videos. CVPR'18.
由于訓練時只知道一段視頻中有/沒有異常,而異常事件的種類和發生時刻未知,Sultani等人利用多示例學習,將異常檢測問題轉化為一個回歸排序問題,讓異常樣本的排序值高于普通樣本,訓練時讓正負樣本之間的距離盡可能遠。
視頻摘要與視頻濃縮(video summarization and video synopsis)視頻摘要是從原始視頻中提取有代表性的關鍵幀,而視頻濃縮將多幀視頻合并成一幀。
M. Gygli, et al. Creating summaries from user videos. ECCV'14.
X. Li, et al. Surveillance video synopsis via scaling down objects. TIP'16.
“看視頻說話”(video captioning)基本思路和看圖說話一致,用編碼網絡提取視頻信息,用解碼網絡生成文字描述。
S. Venugopalan, et al. Sequence to Sequence–Video to Text. ICCV'15.
第一視角視頻(first-person video)研究第一視角視頻可以用于自動駕駛、機器人導航等。
T. Yagi, et al. Future person localization in first-person videos. CVPR'18.
Yagi等人提出行人位置預測任務,即根據行人歷史信息,預測下一幀行人的位置。Yagi等人用1D時域卷積來融合不同幀的特征。
視頻生成(next frame generation)有工作利用生成式模型對視頻進行生成。
M. Mathieu, et al. Deep multi-scale video prediction beyond mean square error. ICLR'16.
C. Vondrick, et al. Generating videos with scene dynamics. NIPS'16.
目標跟蹤(object tracking)給定視頻第一幀中目標的位置(以包圍盒的形式),我們需要預測其他幀中該目標的包圍盒。目標跟蹤類似于目標檢測,但目標跟蹤的難點在于事先不知道要跟蹤的目標具體是什么,因此無法事先收集足夠的訓練數據以訓練一個專門的檢測器。一種研究思路是利用孿生網絡,一支輸入第一幀包圍盒內圖像,另一支輸入其他幀的候選圖像區域,通過互相關操作(卷積),得到二維的響應圖,其中最大響應位置確定了需要預測的包圍盒位置。
L. Bertinetto, et al. Fully-convolutional siamese networks for object tracking. ECCV'16 Workshop.
M. Danelljan, et al. ECO: Efficient Convolution Operators for tracking. CVPR'17.
E. Valmadre, et al. End-to-end representation learning for correlation filter based tracking. CVPR'17.
可能的未來方向
利用多示例學習進行視頻分析。未剪輯視頻中有很多無關內容,并非視頻中所有的幀都對應于該視頻標記,這符號多示例學習的設定。雖然Zhu等人在CVPR'16和Kar等人在CVPR'17的工作中對這方面已有一些探索,但仍有后續精進的空間。
精度與效率。Two-stream和3D卷積的方法相比,大致來說前者的效果更好,但前者需要逐幀圖像前饋網絡,而后者一次可以處理多幀,因此前者效率不如后者,尤其是預先計算并保存光流是一個很繁重的負擔。如何能同時利用兩者的優點是未來一個可能的研究方向,Feichtenhofer等人在CVPR'16已有初步的工作。LSTM能捕獲的長距離依賴程度有限,并且更難訓練,速度也更慢,因此ConvLSTM的方法在視頻分析中用的不多。
資源受限下的視頻分析。相比圖像數據,處理視頻數據需要更大的計算和存儲資源。現實應用中很多是資源受限的,如何在這種場景下進行視頻分析是一大挑戰。將視頻解壓為能輸入網絡的一幀幀圖像也需要不小的資源開銷,Wu等人在CVPR'18提出直接利用原始視頻輸入,并利用視頻壓縮編碼中的運動信息。
更大、更通用數據集。哪種方法更好和用什么數據集(解決什么任務)有很大關系。如果視頻本身就比較靜止,或者單幀圖像已經包含了足夠的信息,那么用逐幀單獨處理的策略已經可以取得很好的結果。
視頻=圖像+音頻。視頻是一種多模態的數據形式,能否利用音頻信息輔助視頻分析呢。Aytar等人在NIPS'16的工作中利用圖像輔助音頻分析。
Y. Aytar, et al. SoundNet: Learning sound representations from unlabeled video. NIPS'16.
最后列出一些相關的綜述文章。其中Tran等人實驗研究了不同采樣步長、不同輸入大小、不同網絡配置等對性能的影響。
Z. Wu, et al. Deep learning for video classification and captioning. arXiv: 1609.06782.
D. Tran, et al. ConvNet architecture search for spatio-temporal feature learning. arXiv: 1708:05038.
M. Asadi-Aghbolaghi, et al. A survey on deep learning based approaches for action and gesture recognition in image sequences. FG'17.
S. Herath, et al. Going deeper into action recognition: A survey. IVC'17.
-
視頻
+關注
關注
6文章
1937瀏覽量
72821 -
圖像
+關注
關注
2文章
1083瀏覽量
40420 -
深度學習
+關注
關注
73文章
5493瀏覽量
121000
原文標題:【干貨】計算機視覺視頻理解領域的經典方法和最新成果
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論