1. 程式人生 > 其它 >論文閱讀筆記:ViViT: A Video Vision Transformer

論文閱讀筆記:ViViT: A Video Vision Transformer

1.模型整體架構

 左圖為論文作者提出了用於視訊分類的架構,基於純transformer的,右圖為用不同方式處理時空特徵的Encoder的不同元件的變體。

2.視訊特徵及token構建

2.1 Uniform frame sampling

 這種方法就是如圖所示,均勻間隔固定的幀,取樣幀資訊,按照Vit的方式獨立嵌入2D幀,然後拼接成為序列資訊nt輸入。變成nt·nh·nw,輸入到Encoder。

2.2 Tubelet embedding

 這種方法是提取一個3D的特徵,假設每個tutle的shape是t,w,h,那麼每nt幀提取一次,nt=T/t(向下取整),將提取出的每一幀的同位置的高寬資訊作為一個patch輸入,每nh

高提取一次,nh=H/h(向下取整),每nw寬提取一次,nw=W/w(向下取整),分別從時間資訊,寬和高提取特徵。這種方法在token的過程中結合了時空資訊,而2.1方法則是將不同幀的時間資訊由transformer融合。

3.視訊Transformer模型

3.1 Model 1: Spatio-temporal attention

最基礎的方法,直接將時空token資訊成對輸入Encoder,經過transformer原始架構輸出結果。

3.2 Factorised encoder

 這種模型是使用了兩個encoder,一個先對每幀的特徵進行encode,輸入一幀中的多個token資訊,輸出一個token,表示一幀的空間資訊。第二個是進行時間編碼,輸入第一個encoder輸出的多個幀的token,輸出一個token,這個token是融合了多幀的時空特徵資訊的,然後輸出結果使用MLP分類,對應了時空資訊的後期融合(late fusion)思想。

3.3 Factorised self-attention

 這種模型和基礎模型1一樣的層數,但是和1不同的是,他沒有在注意力層將所有的token進行多頭自注意力操作,是在自注意力self-attention層進行了分解時空資料處理,也就是先對同一幀的空間資訊不同toekn之間進行attention,再對不同幀的同一位置的token之間進行attention,實現時空資訊的處理。

可以通過將空間自注意層的輸入的形狀從R1*nt·nh·nw變成Rnt·nh·nw來去除時間資訊,將時間自注意力層輸入形狀變成Rnh·nw·nt這個模型中時空處理的順序沒有影響,但是不使用分類標記cls,以免在時間和空間維度重塑的過程中出現歧義。

3.4 Factorised dot-product attention

 這種模型使用了多頭注意力的不同頭,一半用於計算時間資訊,一半用於計算空間資訊,其中用於計算時間資訊的K,V形狀為Rnh·nw·d,空間資訊的K,V形狀為 Rnt·d。最後的輸出形狀都是 RN*d ,然後將其拼接,乘上Wo權重,得到結果。

4.其他一些技巧

4.1 位置編碼

由於模型使用預訓練的影象模型遷移到視訊模型,因此將其位置編碼形狀從Rnw·nh·d進行重複迴圈時間位置轉化成Rnt·nh·nw·d。即給它從h*w這樣的2d資訊,變成t*h*w這樣的3d資訊。

4.2 嵌入權重

為了使3D採用2D,經過測試,中心幀初始化的方式效果最好,即E的權值在所有時間位置都初始化為0,只有中間的位置為Eimage

5.資料流動

 其中cls_token借鑑的bert,代表影象的整體特徵。

參考:

論文:https://arxiv.org/abs/2103.15691

程式碼:https://github.com/google-research/scenic

https://blog.csdn.net/ResumeProject/article/details/123470594?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-16-123470594-blog-124348140.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-16-123470594-blog-124348140.pc_relevant_antiscanv2&utm_relevant_index=18