社群計算機視覺課程文件

Transformer 在影片處理中的應用 (第 1 部分)

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Transformer 在影片處理中的應用 (第 1 部分)

簡介

在本章中,我們將介紹 Transformer 模型如何在影片處理中得到應用。我們將首先介紹 Vision Transformer,它是 Transformer 模型在視覺領域中的一個成功應用。然後,我們將解釋與用於影像的 Vision Transformer 模型相比,用於影片的影片 Vision Transformer (ViViT) 模型所做的額外考慮。最後,我們將簡要討論 TimeSFormer 模型。

閱讀本文件前有助於回顧的材料:

ViT 回顧

首先,讓我們快速瞭解一下 Vision Transformer:《一幅影像勝過 16x16 個單詞:用於大規模影像識別的 Transformer》,這是 Transformer 在視覺領域成功應用中最基礎的一個。

該論文的摘要如下:

受 Transformer 在 NLP 中擴充套件成功的啟發,我們嘗試將標準 Transformer 直接應用於影像,並進行最少的修改。為此,我們將影像分割成影像塊,並將這些影像塊的線性嵌入序列作為 Transformer 的輸入。影像塊的處理方式與 NLP 應用中的詞元(單詞)相同。我們以監督方式在影像分類上訓練該模型。

Vision transformer architecture
ViT 架構。摘自原始論文

ViT 論文中提出的關鍵技術如下

  • 將影像分割成小影像塊,每個影像塊作為 Transformer 模型的輸入,用基於 Transformer 的方法取代 CNN。

  • 每個影像塊進行線性對映,並新增位置嵌入,以使 Transformer 能夠識別影像塊的順序。

  • 模型在大規模資料集上進行預訓練,並針對下游視覺任務進行微調,從而實現高效能。

效能與侷限性

Vision transformer performance
與 SOTA 模型比較。摘自原始論文

儘管 ViT 在效能上超越了其他最先進的模型,但訓練 ViT 模型需要大量的計算能力。訓練 ViT 模型在 TPU-v3 上耗時 2,500 天。假設一個 TPU-v3 核心每小時成本約為 2 美元(您可以在此處找到更詳細的定價資訊),則訓練一次模型的成本將為 2 美元 x 24 小時 x 2,500 天 = 120,000 美元。

影片 Vision Transformer (ViViT)

如前所述,ViViT 將 ViT 的影像處理擴充套件到影片分類任務,其重要問題是如何更快、更高效地訓練模型。此外,與影像不同,影片不僅包含空間資訊,還包含時間資訊,如何處理這種“時間資訊”是一個關鍵的考慮和探索。

摘自論文的摘要如下

我們提出了純 Transformer 影片分類模型,借鑑了此類模型在影像分類中的最新成功經驗。我們的模型從輸入影片中提取時空標記,然後透過一系列 Transformer 層進行編碼。為了處理影片中遇到的長序列標記,我們提出了幾種高效的模型變體,它們分解了輸入的空間和時間維度。儘管基於 Transformer 的模型只有在可用大量訓練資料集時才有效,但我們展示瞭如何在訓練過程中有效正則化模型並利用預訓練影像模型,從而能夠在相對較小的資料集上進行訓練。我們進行了徹底的消融研究,並在 Kinetics 400 和 600、Epic Kitchens、Something-Something v2 和 Moments in Time 等多個影片分類基準測試中取得了最先進的結果,超越了基於深度 3D 卷積網路的現有方法。為了促進進一步研究,我們在 https://github.com/google-research/scenic 釋出了程式碼。

ViViT architecture
ViViT 架構。摘自原始論文

影片片段嵌入

什麼是嵌入?

在深入瞭解具體技術之前,瞭解什麼是嵌入至關重要。在機器學習中,嵌入是稠密向量表示,它們以神經網路可以處理的格式捕獲輸入資料的有意義特徵。對於影片,我們需要將原始畫素資料轉換為這些數學表示,同時保留空間資訊(每幀中的內容)和時間資訊(事物如何隨時間變化)。

為什麼影片嵌入很重要

處理影片由於其大小和複雜性而計算密集。良好的嵌入技術透過以下方式提供幫助:

  • 在保留重要特徵的同時降低維度
  • 捕捉幀之間的時間關係
  • 使神經網路能夠高效處理影片資料

為什麼關注均勻幀取樣和 Tubelet 嵌入?

這兩種技術代表了影片處理中的基本方法,已成為更高階方法的構建塊

  1. 它們平衡了計算效率和資訊保留,為不同的影片處理任務提供了一系列選項。
  2. 它們作為基線方法,提供了一個比較點,可用於衡量新技術的改進。
  3. 學習這些方法為時空處理奠定了堅實的基礎,這對於掌握更高階的影片嵌入方法至關重要。

均勻幀取樣

Uniform frame sampling
均勻幀取樣。摘自原始論文

在這種對映方法中,模型在時間域上均勻取樣一些幀,例如每 2 幀取樣一幀。

Tubelet 嵌入

Tubelet embedding
Tubelet 嵌入。摘自原始論文

另一種方法是從輸入體中提取時空“管”,並對其進行線性投影。這種方法在標記化過程中融合了時空資訊。

前面介紹的方法,例如均勻幀取樣和 Tubelet 嵌入,都是有效但相對簡單的方法。接下來要介紹的方法更為先進。

ViViT 中的影片 Transformer 模型

原始 ViViT 論文提出了多種基於 Transformer 的架構,我們現在將按順序進行探討。

模型 1:時空注意力

第一個模型自然地將 ViT 的思想擴充套件到影片分類任務。影片中的每一幀都被分割成 n_w(列數)x n_h(行數)個影像塊,總共生成 n_t(幀數)x n_w x n_h 個影像塊。然後,這些影像塊中的每一個都嵌入為“時空標記”——本質上是代表空間(影像)和時間(影片序列)資訊的微小單元。該模型將從影片中提取的所有時空標記透過 Transformer 編碼器進行轉發。這意味著每個影像塊或標記都經過處理,不僅要理解其單獨的特徵,還要理解其與跨時間和空間的其他影像塊的關係。透過這個稱為“情境化”的過程,編碼器透過捕獲位置、顏色和運動中的模式來學習每個影像塊如何與其他影像塊相關聯,從而對影片的整體上下文建立豐富而全面的理解。

複雜度:O(n_h^2 x n_w^2 x n_t^2)

然而,對所有時空標記使用注意力會導致高昂的計算成本。為了使這個過程更高效,如前所述,採用了均勻幀取樣和 Tubelet 嵌入等方法來幫助降低這些成本。

模型 2:分解編碼器

模型 1 中的方法效率低下,因為它同時對所有影像塊進行情境化。為了改進這一點,模型 2 順序地分離空間編碼器和時間編碼器。

ViViT model 2
分解編碼器(模型 2)。摘自原始論文

首先,僅透過空間 Transformer 編碼器(=ViT)對空間互動進行情境化。然後,每幀都被編碼為單個嵌入,並饋送到時間 Transformer 編碼器(=通用 Transformer)。

複雜度:O(n_h^2 x n_w^2 + n_t^2)

模型 3:分解自注意力

ViViT model 3
分解自注意力(模型 3)。摘自原始論文

在模型 3 中,我們不計算所有標記對之間的多頭自注意力,而是首先僅在空間上計算自注意力(在從相同時間索引中提取的所有標記之間)。接下來,我們時間上計算自注意力(在從相同空間索引中提取的所有標記之間)。由於歧義,不使用 CLS(分類)標記。

複雜度:與模型 2 相同

模型 4:分解點積注意力

ViViT model 4
分解點積注意力(模型 4)。摘自原始論文

在模型 4 中,一半的注意力頭被設計為使用來自空間索引的鍵和值進行操作,另一半則使用來自相同時間索引的鍵和值進行操作。

複雜度:與模型 2、3 相同

實驗與討論

ViViT model performance
模型架構比較(Top 1 準確率)。摘自原始論文

比較模型 1、2、3 和 4 後,很明顯模型 1 實現了最佳效能,但訓練時間最長。相比之下,模型 2 在訓練時間上比模型 3 和 4 更短,同時效能相對較高,使其成為整體上最有效的模型。

ViViT 模型根本上面臨著資料集稀疏性的問題。與 Vision Transformer (ViT) 一樣,ViViT 需要一個極大的資料集才能獲得良好的效能。然而,對於影片來說,這種規模的資料集往往是不可用的。鑑於學習任務更加複雜,其方法是首先使用 ViT 在大型影像資料集上進行預訓練,以初始化模型。

TimeSFormer

TimeSFormer 是與 ViViT 同期的工作,它將 Transformer 應用於影片分類。以下各節將解釋每種注意力型別。

TimeSFormer model
五種時空自注意力方案的視覺化。摘自原始論文
  • 稀疏注意力與 ViT 相同;藍色補丁是查詢,並在一幀內情境化其他補丁。
  • 聯合時空注意力與 ViViT 模型 1 相同;藍色補丁是查詢,並在多幀中情境化其他補丁。
  • 分離時空注意力類似於 ViViT 模型 3;藍色補丁首先在時間上與相同位置的綠色補丁進行情境化,然後空間上與相同時間索引的其他影像補丁進行情境化。
  • 稀疏區域性全域性注意力:選擇性地結合區域性和全域性資訊。
  • 軸向注意力:沿其軸分別處理空間和時間維度。

效能討論

分離時空注意力機制表現出最有效的效能,在 K400 和 SSv2 資料集上提供了引數效率和準確性的最佳平衡。

結論

ViViT 在 ViT 模型的基礎上進行了擴充套件,透過引入各種模型(如分解編碼器、分解自注意力和分解點積注意力)來更有效地處理影片資料,所有這些都旨在高效管理時空維度。類似地,TimeSFormer 從 ViT 架構演變而來,並利用各種注意力機制來處理時空維度,與 ViViT 非常相似。從這一進展中得出的一個關鍵結論是,人們越來越關注降低將 Transformer 架構應用於影片分析所帶來的巨大計算成本。透過利用不同的最佳化技術,這些模型提高了效率,並能夠以更少的計算資源進行學習。

額外資源

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.