【深度學(xué)習(xí)】視頻分類技術(shù)整理

最近在做多模態(tài)視頻分類,本文整理了一下視頻分類的技術(shù),分享給大家。

傳統(tǒng)的圖像分類任務(wù)中,一般輸入的為一幅HxWxC的二維圖像,經(jīng)過卷積等操作后輸出類別概率。

對(duì)于視頻任務(wù),輸入是由連續(xù)的二維圖像幀組成的一個(gè)存在時(shí)序關(guān)系的二維圖像序列,或是視為一個(gè)TxHxWxC的四維張量。
這樣的數(shù)據(jù)具有以下特點(diǎn):
1. 幀之間的變化信息往往能反映視頻的內(nèi)容;
2. 相鄰幀之間變化一般較小,存在大量的冗余。

最直觀和最簡(jiǎn)單的做法是沿用靜態(tài)圖像分類的方法,直接將每個(gè)視頻幀視為獨(dú)立的二維圖像看待,利用神經(jīng)網(wǎng)絡(luò)提取每個(gè)視頻幀的特征,將這個(gè)視頻所有幀的特征向量取平均得到整個(gè)視頻的特征向量,然后進(jìn)行分類識(shí)別,或是直接每個(gè)幀得到一個(gè)預(yù)測(cè)結(jié)果,最后在所有幀結(jié)果中取共識(shí)。
這種做法的好處是計(jì)算量很小,計(jì)算開銷與一般的二維圖像分類相近,并且實(shí)現(xiàn)非常簡(jiǎn)單。但是這種做法不會(huì)考慮幀之間的相互關(guān)系,平均池化或是取共識(shí)的方法都比較簡(jiǎn)單,會(huì)損失大量信息。在視頻時(shí)長(zhǎng)很短,幀間變化相對(duì)較小的時(shí)候不失為一種好的方法。

另一種方案同樣是沿用靜態(tài)圖像分類的方法,直接將每個(gè)視頻幀視為獨(dú)立的二維圖像看待,但是在融合時(shí)使用VLAD的方式。VLAD是2010年提出的一種大規(guī)模圖像庫中進(jìn)行圖像檢索的算法,它可以將一個(gè)NxD的特征矩陣轉(zhuǎn)換成KxD(K<d)。在這種方法下,我們對(duì)一個(gè)視頻的各個(gè)幀特征進(jìn)行聚類得到多個(gè)聚類中心,將所有的特征分配到指定的聚類中心中,對(duì)于每個(gè)聚類區(qū)域中的特征向量分別計(jì)算,最終concat或加權(quán)求和所有的聚類區(qū)域的特征向量作為整個(gè)視頻的特征向量。

在原始的VLAD中ak項(xiàng)是一個(gè)不可導(dǎo)的項(xiàng),同時(shí)聚類也是不可導(dǎo)的操作,我們使用NetVLAD的改進(jìn),將每個(gè)特征向量與所有聚類中心求距離的softmax獲得該特征向量最近的聚類中心的概率,聚類中心用可學(xué)習(xí)的參數(shù)確定。
相比平均池化,NetVLAD可以通過聚類中心將視頻序列特征轉(zhuǎn)化為多個(gè)視頻鏡頭特征,然后通過可以學(xué)習(xí)的權(quán)重對(duì)多個(gè)視頻鏡頭加權(quán)求和獲得全局特征向量。但是這種做法每一幀的特征向量仍是獨(dú)立計(jì)算的,無法考慮幀之間的時(shí)序關(guān)系和變化信息。

對(duì)于存在時(shí)序關(guān)系的序列,使用RNN是一種通用的做法。具體做法為使用網(wǎng)絡(luò)(一般為CNN)將每個(gè)視頻幀序列提取為特征序列,再將特征序列按時(shí)序順序輸入到如LSTM的RNN中,以RNN的最終輸出作為分類輸出。
這種做法可以考慮幀之間的時(shí)序關(guān)系,理論上具有更好的效果。但是在實(shí)際實(shí)驗(yàn)中,這種方案相比第一種解決方案并沒有明顯優(yōu)勢(shì),這可能是因?yàn)镽NN對(duì)于長(zhǎng)序列存在遺忘問題,而短序列視頻使用簡(jiǎn)單的靜態(tài)方法效果就已經(jīng)足夠好。

雙流法是一種比較好的做法。這種方法使用兩個(gè)網(wǎng)絡(luò)分支一個(gè)為圖像分支提取視頻幀的特征向量,另一個(gè)為光流分支,利用多幀之間的光流圖提取光流特征,利用圖像分支與光流分支特征向量的融合進(jìn)行分類預(yù)測(cè)。
這種做法由于是靜態(tài)方法,計(jì)算量相對(duì)較小,從光流中也能提取到幀之間的變化信息。但是光流的計(jì)算會(huì)引入額外的開銷。

我們也可以直接將傳統(tǒng)的二維卷積核改造為三維卷積核,將輸入的圖像序列作為一個(gè)四維張量整體來對(duì)待。
代表做法有C3D,I3D,Slow-Fast等。
這種方法實(shí)驗(yàn)效果比較好,但是由于三維卷積復(fù)雜度提高了一個(gè)數(shù)量級(jí),往往需要大量的數(shù)據(jù)才能取得不錯(cuò)的效果,在數(shù)據(jù)不夠時(shí)可能使效果很差甚至訓(xùn)練失敗。
基于此,也提出了一系列方法簡(jiǎn)化三維卷積的計(jì)算量,如基于低秩近似的P3D等。


TimeSformer在ViT的基礎(chǔ)上,提出了五種不同的注意力計(jì)算方式,實(shí)現(xiàn)計(jì)算復(fù)雜度和Attention視野的trade-off:
1. 空間注意力機(jī)制(S):只取同一幀內(nèi)的圖像塊進(jìn)行自注意力機(jī)制;
2. 時(shí)空共同注意力機(jī)制(ST):取所有幀中的所有圖像塊進(jìn)行注意力機(jī)制;
3. 分開的時(shí)空注意力機(jī)制(T+S):先對(duì)同一幀中的所有圖像塊進(jìn)行自注意力機(jī)制,然后對(duì)不同幀中對(duì)應(yīng)位置的圖像塊進(jìn)行注意力機(jī)制;
4. 稀疏局部全局注意力機(jī)制(L+G):先利用所有幀中,相鄰的 H/2 和 W/2 的圖像塊計(jì)算局部的注意力,然后在空間上,使用2個(gè)圖像塊的步長(zhǎng),在整個(gè)序列中計(jì)算自注意力機(jī)制,這個(gè)可以看做全局的時(shí)空注意力更快的近似;
5. 軸向的注意力機(jī)制(T+W+H):先在時(shí)間維度上進(jìn)行自注意力機(jī)制,然后在縱坐標(biāo)相同的圖像塊上進(jìn)行自注意力機(jī)制,最后在橫坐標(biāo)相同的圖像塊上進(jìn)行自注意力機(jī)制。
經(jīng)過實(shí)驗(yàn),作者發(fā)現(xiàn)T+S注意力方式的效果是最好的,在大大減少了Attention的計(jì)算開銷的同時(shí),效果甚至優(yōu)于計(jì)算全部patch的ST注意力。

Video Swin Transformer是Swin Transformer的三維拓展版本,這種方法簡(jiǎn)單的將計(jì)算注意力的窗口從二維拓展至三維,在實(shí)驗(yàn)中就取得了相當(dāng)不錯(cuò)的效果。
在我們的實(shí)驗(yàn)中,Video Swin Transformer是目前比較好的視頻理解backbone,實(shí)驗(yàn)結(jié)果顯著優(yōu)于上面的方法。
完整版的源文件可以點(diǎn)擊閱讀原文獲取。
往期精彩回顧
適合初學(xué)者入門人工智能的路線及資料下載 (圖文+視頻)機(jī)器學(xué)習(xí)入門系列下載 機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印 《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼
