Vita-CLIP: Video and text adaptive CLIP via Multimodal Prompting

標題:Vita-CLIP: 通過多模態提示進行視頻和文本自適應CLIP

源文鏈接:https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdficon-default.png?t=N7T8https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdf

源碼鏈接:https://github.com/TalalWasim/Vita-CLIPicon-default.png?t=N7T8https://github.com/TalalWasim/Vita-CLIP

發表:CVPR-2023?

目錄

摘要

1.介紹

2.相關工作

3. Vita-CLIP: 方法

3.1.視頻和文本編碼

3.2.視頻和文本提示學習

3.2.1視頻編碼器提示學習

3.2.2文本編碼器提示學習

3.3.學習目標

4. 結果和分析

4.1. 實驗設置與方案

4.2. 監督實驗

4.3. Zero-shot 實驗

4.4.監督與零樣本之間的權衡

4.5. 消融實驗

5. 結論

讀后總結


摘要

采用像CLIP這樣的對比圖像-文本預訓練模型進行視頻分類因其成本效益高且表現出色而受到關注。然而,該領域的最新研究面臨一個權衡。對預訓練模型進行微調以實現強大的監督性能會導致零樣本泛化能力下降。同樣,凍結主干網絡以保持零樣本能力會導致監督準確性顯著下降。因為這個原因,文獻中的最新研究通常為監督和零樣本動作識別訓練獨立的模型。在這項工作中,我們提出了一種多模態提示學習方案,旨在通過單一統一的訓練平衡監督和零樣本性能。我們在視覺方面的提示方法涵蓋了三個方面:1) 全局視頻級提示以建模數據分布;2) 局部幀級提示提供每幀的判別性條件;3) 總結提示以提取簡潔的視頻表示。此外,我們在文本方面定義了一種提示方案以增強文本上下文。通過這種提示方案,我們在Kinetics-600、HMDB51和UCF101上實現了最先進的零樣本性能,同時在監督設置中保持了競爭力通過保持預訓練主干網絡凍結,我們優化了更少的參數量,并保留了現有的通用表示,從而實現強大的零樣本性能。我們的代碼和模型將發布在https://github.com/TalalWasim/Vita-CLIP。

1.介紹

在圖像分類領域,多模態圖像-文本預訓練模型如CLIP [58]、ALIGN [31]和Florence [75]展示了學習通用表示的能力。這些模型在大規模語言-圖像對上以對比方式訓練,具有顯著的零樣本能力,并且可以很好地遷移到各種下游任務。然而,為視頻識別任務訓練類似的模型在收集大規模視頻-文本對方面不可行,因為這可能會受到對齊問題的影響 [30],并且由于每個視頻需要處理多個幀,計算開銷也呈指數級增長。因此,研究社區最近開始努力有效地將預訓練的圖像-文本模型應用于視頻識別任務,同時保持它們的零樣本能力。在這方面,現有方法可以分為兩類。一些方法從最近的提示學習方法 [25, 32, 77, 81, 82] 中獲得靈感,提出在文本 [36] 或視覺 [55, 70] 方面的提示學習方案,并加入額外的變壓器層以改進時間學習。其他方法則偏向于端到端的CLIP微調方案,用于視頻任務 [51, 55, 70]。然而,這些方法的問題在于,它們要么未能有效利用文本和視覺方面的學習 [36, 55],要么通過微調視覺解碼器 [47] 或主干網絡 [51, 55, 70] 而失去了CLIP的零樣本泛化能力。總之,現有的方法可以將模型引導向良好的零樣本泛化或更好的視頻任務監督學習。由于現實世界的任務需要同時具備監督和零樣本能力,我們的工作探討了以下問題:我們能否開發一個統一的視頻模型,在監督學習和零樣本泛化任務中都表現良好?

為了回答上述問題,我們提出了一種基于多模態提示的“視頻和文本自適應CLIP”。為了有效地將預訓練的圖像-文本CLIP模型適應于視頻,我們考慮了兩個重要方面。首先,需要保留原始預訓練CLIP主干網絡的泛化能力;其次,必須能夠有效地適應視頻領域。在這方面,我們提出保持整個主干網絡凍結,并學習額外的輕量模塊來使模型適應視頻任務在視覺方面,我們旨在顯式利用視頻中缺乏的時間信息,而這一信息在凍結的圖像模型中是缺失的。我們的方法在三個層次上建模視頻信息:首先,通過全局視頻級提示學習視頻數據的整體分布特征,例如運動和動態;其次,受 [53] 的啟發,通過局部幀級提示對每幀的分類標記進行直接條件化,從而建模每幀的判別信息;第三,通過一個總結提示將整個視頻序列的響應提煉成一個簡潔的總結向量。?

此外,為了更好地建模文本上下文,我們建議在文本編碼器上使用可學習的上下文。這一點特別重要的原因是可用視頻數據集中的文本信息非常有限。我們無法為每個樣本提供文本描述,只能使用類別標簽作為文本描述。受 [82] 的啟發,我們提出了一種在文本方面的提示學習方法,以更好地建模文本上下文并增強視頻類別標簽描述。圖1展示了我們方法的概述及其試圖平衡的權衡。本研究的主要貢獻如下:

- 我們提出了一種多模態提示方法Vita-CLIP,用于視頻,通過學習視頻和文本特定的上下文向量,以有效地將預訓練的圖像-文本CLIP模型適應于視頻識別任務
- 在視覺方面,我們顯式地建模時間信息和視頻數據分布。我們的提示學習方法聚合了片段中每幀與其他幀的判別信息,同時提供了每層的學習能力以更好地捕捉數據分布。在語言方面,我們的方法學習互補的語義上下文,以更好地適應語言表示。
- 我們在監督和泛化任務上評估了我們的方法,并展示了在單一統一模型中對這兩方面的良好平衡。具體而言,在零樣本任務上,我們在HMDB-51、UCF101和Kinetics-600數據集上分別比最新的SoTA X-CLIP [55] 提高了4.0%、3.0%和2.2%。

圖1. 提出的提示方案概覽(左)以及我們嘗試在監督和零樣本性能之間平衡的權衡(右)。
(a) 我們的提示方法添加了可學習的參數,以在三個層次上學習視頻中的視覺和時間信息:一個摘要提示,以學習視頻的簡要表示;視頻級提示,以建模適應視頻領域所需的全局分布變化;以及幀級提示,以豐富每幀中的局部判別信息。在文本方面,我們學習提示,以調整視頻的語言表示
(b) 零樣本與監督性能比較的權衡圖,展示了我們的方法和最近的基于CLIP的視頻方法。請注意,現有的最新方法 [55] 為零樣本和監督設置訓練了兩個獨立的模型,而我們的方法提供了一個統一的模型,對這兩種設置進行相同的訓練。

2.相關工作

視覺-語言(VL)模型:VL模型 [31, 58, 75] 包括圖像和文本編碼器,并在大規模圖像-文本對上以對比方式訓練,以學習圖像和文本標簽之間的共同特征空間由文本驅動的語義監督使得像CLIP [58]這樣的模型能夠學習細粒度的視覺概念,這些概念可以遷移到許多下游任務中,如語義分割 [27, 60, 80]、目標檢測 [18]、點云分類 [78] 和視頻分類 [74]。重要的是,這些模型允許“零樣本”知識遷移。在視頻領域,存在一些用視頻-文本對訓練的模型,用于視頻檢索 [3, 41, 52] 等應用。然而,這些模型并沒有在大量視頻-文本數據上進行訓練。在這項工作中,我們提出了一種新方法,在預訓練的VL模型CLIP中引入時間線索,以增強其在視頻上的“零樣本”泛化能力

視頻識別:視頻識別中用于時空學習的傳統技術從手工制作特征 [16, 38, 68] 發展到端到端深度學習方法 [40]。在基于神經網絡的方法中,3D卷積網絡(CNNs) [11, 15, 22, 65] 直接從RGB視頻數據中學習時空表示,而其他方法使用專門的2D CNNs [23, 34, 69, 72],在獨立的網絡中學習空間和動態信息,然后將它們融合在一起。關于2D/3D網絡在視頻中的權衡問題已在 [67, 73, 83] 中探討。最近,基于Transformer [17] 的架構在視頻識別中嶄露頭角 [4, 7, 19, 54, 59]。在這項工作中,我們提出采用預訓練的多模態Transformer [58] 進行時空學習

提示學習:提示學習在NLP領域被提出 [35, 48],它指的是生成特定任務的指令,以獲得語言模型的預期行為。這些指令可以手動創建 [9],也可以通過訓練離散 [26, 35, 61, 63] 或連續向量 [42, 44] 來學習。提示學習最近在視覺問題中得到探索,用于將大規模模型的知識轉移到下游任務。目前的提示技術應用于單模態模型,例如訓練在圖像上的視覺Transformer(ViTs) [17],以及多模態模型如CLIP。對于ViTs的情況,[5, 33] 訓練可學習的提示,以引導預訓練的視覺Transformer [17, 49]。另一方面,像 [66, 81, 82] 這樣的方法將可學習向量引入CLIP的文本編碼器,用于圖像識別任務的遷移學習。相比之下,我們提出學習多模態視頻提示,以同時引導CLIP的視覺和文本編碼器,在視頻上進行時空學習

將VL模型調整為視頻:CLIP模型已經完全在基于視頻的檢索和識別任務上進行了微調 [51, 70]。Ju等人 [36] 將CLIP的零樣本泛化能力轉移到視頻中,方法是在文本編碼器輸入上學習提示,并在圖像編碼器的幀級視覺表示上學習兩個Transformer層來建模時間上下文。然而,直接使用CLIP圖像編碼器處理視頻會導致CLIP視覺編碼器的早期塊缺乏時間信息,因此,這種方法的泛化性比完全微調的方法 [70] 差。類似地,[55] 提出了一個跨幀注意力模塊,以建模視頻中的長距離幀間依賴關系,并使用文本提示生成來調整視頻和文本表示,以獲得更好的泛化性能。與這些方法相比,我們在CLIP的圖像和文本編碼器中引入了可學習的視頻提示模塊,以建模時間線索,而不是完全微調,展示了泛化性能和完全監督性能之間的良好平衡

3. Vita-CLIP: 方法

我們的方法Vita-CLIP旨在利用一種多模態提示方案,將預訓練的基于圖像的視覺-語言模型適應于視頻,既保留了強大的泛化能力(零樣本性能),又具有良好的監督性能。Vita-CLIP允許利用現有的圖像-語言預訓練模型,而不是為視頻從頭開始訓練一個模型。

本節介紹了我們的方法。我們從視覺/文本編碼器的概述開始(第3.1節),然后詳細解釋了我們的多模態提示學習方案(第3.2節)。這進一步分為視覺方面(第3.2.1節)和文本方面提示學習(第3.2.2節)。最后,我們在第3.3節中概述了我們的學習目標。

圖 2. Vita-CLIP 提示架構: 我們在視覺和文本編碼器上添加了多個提示標記。在視覺編碼器上,我們推斷出一個總結(摘要)標記 (S),它濃縮了整個視頻標記序列,并附加到輸入中。此外,我們添加了 Mv 個全局 (G) 視頻級提示,以學習數據分布,并添加了 T 個幀級提示,這些提示根據各自幀的 CLS 標記進行調整,以增強判別信息。在文本端,我們添加了 Mc 個可學習的提示,以對文本編碼器的輸入上下文進行建模。帶有 ( ) 的模塊是可訓練的,而帶有 ( ) 的模塊是凍結的。

3.1.視頻和文本編碼

如前所述,我們希望以一種方式將預訓練的圖像-文本模型應用于視頻,既保留預訓練的通用表示,同時又能夠與通過在文本或視覺編碼器上進行微調的方法實現競爭性的完全監督性能。在這方面,我們提出了一種多模態的視覺和文本提示學習方案該方案保持了原始的CLIP圖像和文本編碼器凍結狀態,并引入了額外的可學習參數來使它們適應視頻。從更廣泛的角度來看,我們分別從視頻(f_{\Theta v})和文本(f_{\Theta c})編碼器中獲得視頻(v)和文本(c)表示。本節正式定義了如何獲得這些表示,而關于提出的提示學習方案的具體細節將在第3.2節中介紹。

視頻編碼器:考慮一個空間尺寸為H×W的視頻V\in\mathbb{R}^{T\times H\times W\times3},其中包含了T個采樣幀。每一幀t ∈ {1 . . . T} 被劃分為N個大小為P×P的非重疊方塊,以滿足ViT架構[17]的要求,其中總方塊數為N = H\times W/P^{2}。對于每一幀,所有形狀為P × P × 3的方塊都被展平為一組向量,并表示為\{\mathbf{x}_{t,i}\in\mathbb{R}^{3P^{2}}\}_{i=1}^{N},其中t是幀編號,i是方塊編號。然后,使用線性投影層\mathbf{P}_{emb}\in\mathbb{R}^{3P^{2}\times D}將這些向量投影形成令牌嵌入,對于每個令牌,有一個輸出維度D。為每一幀的嵌入令牌序列添加了一個額外的分類令牌\mathbf{x}_{cls}\in\mathbb{R}^D輸入到視頻編碼器的最終每幀令牌序列為

\mathbf{z}_t^{(0)}=[\mathbf{x}_{cls},\mathbf{P}_{emb}^T\mathbf{x}_{t,1},\cdots,\mathbf{P}_{emb}^T\mathbf{x}_{t,N}]+\mathbf{e},\quad(1)

其中\mathbf{e}=\mathbf{e}^{sp}+\mathbf{e}^{tm}。這里,\mathbf{e}^{sp}\mathbf{e}^{tm}分別表示空間和時間位置編碼。

從包含L_v層的視頻編碼器中,我們在每一層l獲得幀級表示,如下所示:
\mathbf{z}_t^{(l)}=f_{\theta_v}^{(l)}(\mathbf{z}_t^{(l-1)}),\quad l\in\{1,\cdots,L_v\},\quad(2)
其中,f_{\theta_v}^{(l)}是視頻編碼器的第l層。

最后,為了獲得每幀表示,從最后一層的輸出令牌序列z^{(Lv)}_{t}中提取分類令牌xcls,并使用線性投影層\mathbf{P}_{out}\in\mathbb{R}^{D\times D^{\prime}}將其投影到維度D'
\mathbf{v}_t=\mathbf{P}_{out}^T\mathbf{z}_{t,0}^{(L_v)}\in\mathbb{R}^{D'},\quad(3)
其中,vt是幀t的輸出表示,z^{(Lv)}_{t,0}是視頻編碼器最后一層輸出序列中的分類令牌

為了獲得視頻表示,對每幀表示vt進行平均池化以得到聚合表示
\mathbf{v}=\text{AvgPool}([\mathbf{v}_1,\cdots,\mathbf{v}_T]).\quad(4)

文本編碼器:對于輸入的文本表示,我們使用了一個預訓練的文本編碼器,并加入了一個額外的文本提示學習方案預訓練的文本編碼器是一個12層的BERT模型(針對CLIP B/16變體),其嵌入大小為512,上下文長度為77。模型的每一層由多頭自注意力(MHSA)和前饋網絡(FFN)組成。給定視頻的文本描述C,我們使用文本編碼器獲得表示\textbf{c}=f_{\theta_{c}}(C)。與最近工作 [70] 中使用的“一個關于{label}動作的視頻”這樣的手工設計的提示不同,我們采用了一種提示學習方案,這種方案受到最近在語言-圖像模型上進行文本提示學習工作的啟發 [81, 82]。

3.2.視頻和文本提示學習

雖然以前有嘗試通過提示學習將語言-圖像模型適應視頻,但它們要么只關注視覺或文本方面 [36, 55],要么在某些情況下完全微調整個視覺編碼器 [55, 70]。為了將我們的預訓練語言-圖像模型適應視頻,我們提出了一種新的多模態提示學習方案,該方案保持預訓練模型凍結狀態,以更好地保留其通用表示通過保留這種表示,我們能夠訓練一個單一模型,使其在監督和零樣本設置中都能表現良好,而不像最近的工作 [55] 那樣,需要不同的超參數選擇來為每種設置生成獨立的模型

在這方面,我們的多模態提示旨在將預訓練表示對齊到視頻任務,確保同時利用文本和視覺信息。更具體地,在文本方面,我們引入了一個可學習的上下文,而不是手工設計的提示,以便文本編碼器能夠更好地適應新的視頻類別在視覺方面,我們提出了一種視頻提示方案,重點在于建模幀級信息和幀間關系,以及提供對新視頻數據分布的適應性(視頻數據的分布可能因拍攝角度、場景、動作復雜度、光照條件等因素而有顯著變化。這些變化會影響模型的泛化能力,即模型在未見過的數據上的表現。)。我們將在第3.2.1節和第3.2.2節分別解釋我們的視頻和文本提示方案。

3.2.1視頻編碼器提示學習

對于視覺編碼器的提示,我們有兩個主要目標:1)通過在幀之間引入信息交換來利用時間信息,2)提供額外的參數以使CLIP圖像表示適應視頻數據集的分布

在這方面,我們引入了三種附加的令牌,它們被附加到第l層幀t的令牌序列z^{(l)} _t中。具體來說,在每一層,我們引入一個摘要令牌,它總結了所有幀的判別信息;引入T個幀級本地提示令牌,將每幀的判別信息傳遞給剪輯中的其他幀;引入M_v個視頻級全局提示令牌,為模型適應視頻數據集分布提供學習能力。以下是這些提示令牌類型的詳細描述。

摘要令牌:摘要令牌的靈感來自于[55]中提出的信息注意力概念。它用于總結剪輯中每一幀的判別信息,并在應用該層的預訓練自注意力機制之前將其反饋給每一幀。更具體地,第l層的第t幀的摘要令牌s^{(l) }_t是通過先對分類令牌\mathbf{z}_{t,0}^{(l-1)}進行線性投影Psum,然后在這些幀級令牌之間應用MHSA(多頭自注意力)操作獲得的:

\begin{aligned}\mathbf{Z}_{0,proj}^{(l-1)}&=\mathbf{P}_{sum}^{T}\mathbf{Z}_{0}^{(l-1)},\\S^{(l)}&=\mathrm{MHSA}(\mathrm{LN}(\mathbf{Z}_{0,proj}^{(l-1)}))+\mathbf{Z}_{0,proj}^{(l-1)},\quad(5)\end{aligned}

其中,\mathbf{Z}_{0}^{(l-1)}=[\mathbf{z}_{1,0}^{(l-1)},\cdots,\mathbf{z}_{T,0}^{(l-1)}],\mathbf{S}^{(l)}=[\mathbf{s}_{1}^{(l)},\cdots,\mathbf{s}_{T}^{(l)}],LN表示層歸一化。然后,在應用該層的凍結預訓練自注意力機制之前,將相應的摘要令牌附加到令牌序列z^{(l-1)} _t中,如公式7所示。

全局提示令牌視頻級全局提示令牌(\mathbf{G}^{(l)} = [\mathbf{g}_{1}^{(l)},\cdots,\mathbf{g}_{M_{v}}^{(l)}])是隨機初始化的可學習向量。它們用于為模型提供額外的學習能力,以學習數據分布

局部提示令牌幀級局部提示令牌(\mathbf{L}^{(l)} = [\mathbf{l}_{1}^{(l)},\cdots,\mathbf{l}_{T}^{(l)}])也是隨機初始化的可學習向量,數量等于訓練過程中剪輯中的幀數T,但它們是根據每幀的相應分類令牌進行條件化的。這個對 L^{(l) }進行 [CLS] 令牌 \mathbf{z}_{t,0}^{(l-1)}的條件化使幀級可學習令牌中實現了自上而下的判別信息流。每個幀級局部提示令牌定義如下:

\hat{\mathbf{l}}_t^{(l)}=\mathbf{l}_t^{(l)}+\mathbf{z}_{t,0}^{(l-1)}.\quad(6)

最后,在應用該層的凍結預訓練自注意力(FSA)之前,將令牌\hat{\mathbf{L}^{(l)}} = [\hat{\mathbf{l}}_1^{(l)},\cdots,\hat{\mathbf{l}}_T^{(l)}]\hat{\mathbf{G}^{(l)}} = [\hat{\mathbf{g}}_1^{( g)},\cdots,\hat{\mathbf{g}}_{M_v}^{(l)}]附加到每幀序列 \mathbf{z}_{t}^{(l-1)},如下所示:

最后,我們移除額外附加的令牌,并僅在\hat{\mathbf{z}}_t^{(l)}上應用前饋網絡(FFN),如下所示:

\mathbf{z}_t^{(l)}=\mathrm{FFN}(\mathrm{LN}(\hat{\mathbf{z}}_t^{(l)}))+\hat{\mathbf{z}}_t^{(l)}.\quad(8)

3.2.2文本編碼器提示學習

受 [36, 81, 82] 的啟發,我們也在文本編碼器上使用了一種提示學習方案。我們不是基于類別標簽手工制作文本輸入,而是使用可訓練向量來建模上下文詞語。更具體地說,輸入到文本編碼器f_{\theta_{c}}的是如下形式的令牌序列:

C=[\mathbf{u}_1,\mathbf{u}_2,\cdots,\mathbf{u}_{M_c},\{\text{label}\}]\quad(9)

其中,\mathbf u_{i},i\in\{1,\cdots,M_{c}\} 是與文本編碼器輸入嵌入相同大小的可訓練向量M_c 是可訓練統一提示的數量。然后將這個令牌序列傳遞給文本編碼器,生成文本嵌入 \mathbf{c}=f_{\theta_t}(C)

雖然可能有兩種不同的變體,統一上下文(Unified Context, UC)(所有類別共享一組上下文向量)和類別特定上下文(Class-Specific Context, CSC)(為每個類別定義獨立的一組上下文向量),但我們在方法中使用了CSC。提示向量定義為[\mathbf{u}_i^{n_c}],其中 i\in\{1,\cdots,M_{c}\}n_{c}\in\{1,\cdots,N_{c}\},其中N_c是類別總數。通過在第4.5節中的消融實驗,展示了使用CSC相對于UC的效果。在所有實驗中,除零樣本實驗外,我們都使用了類別特定的提示。對于零樣本評估的情況,由于可能會出現新類別,我們簡單地使用包含任何給定類別名稱的手動提示

3.3.學習目標

如上所述,我們的架構包括基于 Vision Transformer (ViT) [17] 的圖像編碼器和 BERT [14] 文本編碼器,類似于 CLIP [58]。視覺和文本編碼器分別對視頻和文本描述進行編碼,然后使用余弦相似度目標進行比較。更正式地說,給定一組視頻 V 和一組文本類別描述 C,我們從中抽取視頻 V\in\mathcal{V}和相關的文本描述 C\in\mathcal{C},并將它們分別傳遞給視頻編碼器f_{\theta_v} 和文本編碼器f_{\theta_c}。這將產生視頻和文本表示,具體如下:

\mathbf{v}=f_{\theta_{v}}(V\mid\mathbf{S}^{(l)},\mathbf{G}^{(l)},\mathbf{L}^{(l)}),\mathbf{c}=f_{\theta_{t}}(C).\quad(10)

我們定義視頻和文本表示之間的余弦相似度損失函數L_{\text{cos}} 如下:

\mathcal{L}_{cos}(\mathbf{v},\mathbf{c})=\frac{\langle\mathbf{v},\mathbf{c}\rangle}{\|\mathbf{v}\|\|\mathbf{c}\|}.\quad(11)

我們旨在最大化真實? v 和 c 對的 L_{\text{cos}}(以盡可能地增加視頻和文本匹配對之間的相似度),并在其他情況下最小化它(盡可能減少不匹配對之間的相似度)。

4. 結果和分析

4.1. 實驗設置與方案

數據集:在監督設置中,我們在Kinetics-400(K400)[37]和Something-SomethingV2(SSv2)[29]的訓練集上進行訓練。我們在K400和SSv2的驗證集上報告與文獻中現有方法的監督性能。對于零樣本實驗,我們在K400的訓練集上進行訓練,并在三個數據集上進行評估:Kinetics600(K600)[10]、HMDB51 [39]和UCF101 [64]。對于K600的零樣本評估,我們遵循[12],使用K400之外的220個新類別進行評估。根據[55]的方法,我們進行三次評估,每次從K600的220個類別中隨機抽取160個類別進行評估。對于HMDB51和UCF101的零樣本評估,我們遵循[85],并在測試集的三個分割上報告平均top-1準確率和標準偏差。

超參數:對于所有實驗,我們使用余弦衰減調度器進行30個epoch的模型訓練,并將初始學習率設置為8×10?4。除非另有說明,訓練期間的幀數設為8。在評估時,我們在監督設置中使用8幀的單視圖。在零樣本評估期間,我們使用8幀訓練模型,但在評估時使用32幀的單視圖。

4.2. 監督實驗

在監督設置中,我們在表1和表2中分別展示了K400和SSv2的數據。我們在不同的初始化(隨機、ImageNet-1k/21k [13] 和CLIP400M)條件下,與現有方法進行對比,并比較了GFLOPs、訓練幀數和評估視圖。

表1. 與最新技術在Kinetics-400 [37]監督訓練上的比較。我們在不同的初始化(隨機、ImageNet 1k/21k 和 CLIP-400M)條件下進行對比,具體說明了幀數、視圖和FLOPs。我們還提到了模型是否使用凍結/微調的主干網絡以及該方法是否適用于零樣本評估。

表2。在SomethingSomething-V2[29]上與監督方法的比較,并提及它們的zero-shot能力。

與使用ImageNet預訓練的方法相比,我們的Vita-CLIP模型在保持較低GFLOP計數并且完全凍結主干網絡的情況下,表現優于或與其他所有方法相當。我們的模型在GFLOPs方面比TimeSformer [6]和Mformer [56]分別低6倍和4倍,但性能優于這兩者。我們與Swin-B [50](IN-1k)的表現相當,同時在GFLOPs方面比Swin-B(IN-21k)和MViTv2-B低2-3倍,并保持競爭力。需要注意的是,這些模型都是完全訓練過的,而我們的Vita-CLIP僅訓練了所提出的提示方案。

同樣,將Vita-CLIP與CLIP-400M預訓練方法進行比較時,我們在top-1準確率上比A6 [36]提示方法高出3.6%,而A6同樣使用了與我們類似的凍結主干網絡。我們在保持較低GFLOP計數的情況下,與X-CLIP [55]和ActionCLIP [70]兩者的表現相當,而這兩者都對預訓練的主干網絡進行了微調。與同樣使用凍結主干網絡的EVL [47]相比,我們的性能相當,并且我們還具有兩個優勢。首先,我們的GFLOPs低4.5倍,其次,我們保留了零樣本識別能力,而EVL不能用于零樣本識別。

在SSv2數據集上,我們在表2中將監督性能與最近的方法進行了比較。雖然我們的結果低于基于交叉熵的方法,但我們超過了最佳的視覺-文本方法B6 [36],超過了10%。需要注意的是,與交叉熵方法相比,視覺-語言模型的性能始終較低。這是由于SSv2類別描述的細粒度性質,與例如K400類別相比,更難以區分。

從上述實驗中,我們可以看出,我們的Vita-CLIP在保持零樣本推理能力的同時,表現更好或與現有方法相競爭。這歸因于我們的提示方案,它有助于捕捉每幀的變化(通過局部幀級提示),以及視頻和數據集的整體分布(分別通過摘要標記和全局視頻級提示)

4.3. Zero-shot 實驗

如前所述,在零樣本實驗中,我們將我們的Vita-CLIP模型訓練于K400的訓練集,采用8幀的視頻輸入,然后在三個數據集,即UCF101、HMDB51和K600上進行零樣本評估。值得注意的是,我們使用與監督實驗相同的模型和超參數設置,而當前的最先進方法X-CLIP采用了不同的訓練設置進行零樣本評估。

在零樣本設置中,我們簡單地將類特定的上下文替換為分詞化的類描述。我們在UCF101、HMDB51和K600上的零樣本性能結果分別列在表3和表4中。從表3中可以看出,我們在HMDB51和UCF101上的性能分別比以前的方法提高了4%和3%。類似地,我們在K600上實現了最先進的零樣本性能,超過以前的最佳性能2.2%。我們將這一強勁的表現歸因于我們提出的提示方案,以及我們保留了CLIP骨干的預訓練通用表示。

4.4.監督與零樣本之間的權衡

在本節中,我們進一步強調了通過我們提出的方法試圖平衡的權衡。請考慮表5,其中當前的最先進方法XCLIP [55] 在監督和零樣本設置中具有兩組不同的超參數。作者在監督設置中使用8幀采樣并訓練30個時期。而在零樣本設置中,X-CLIP訓練10個時期,每個剪輯采樣32幀。這導致了兩個模型,一個只在監督設置中表現良好,另一個只在零樣本設置中表現良好,但兩者兼而有之。相反,我們的Vita-CLIP旨在保持骨干的廣義表示,并使用提示學習來適應視頻,能夠在這兩種設置之間取得平衡。這使得我們可以使用單個模型,在每個剪輯中采樣8幀,共訓練30個時期,用于兩種設置

4.5. 消融實驗

在本節中,我們對我們方法的不同組件進行了消融研究。所有實驗都是在K400訓練集上進行訓練,并在驗證集上進行測試。所有模型都是根據之前提到的,在每個視頻剪輯中采樣8幀的情況下進行了30個時期的訓練。

我們首先在表6中對視覺端提示進行消融研究。請注意,在這個消融研究中,所有Vita-CLIP模型的文本端提示都固定為Mc = 8,使用類別特定上下文。我們定義了一個簡單的基線,即純CLIP的零樣本準確率。在此基礎上,我們添加了全局視頻級提示(G,Mv = 8),同時保持模型的其余部分不變。這使得在K400上達到了77.83%的top1準確率。然后,我們添加了局部幀級提示(L),將模型推向了79.16%。包含摘要令牌使我們達到了80.51%。這表明這三種提示技術是互補的,并對模型的整體準確性有所貢獻。

接下來,我們評估增加全局視頻級提示數量的影響。我們測試了不同數量的提示值,如圖4所示。我們可以看到準確率在Mv = 8附近飽和,這就是為什么在所有實驗中我們使用8個全局提示的默認數量。

文本提示的數量和類型:在這里,我們考慮文本方面的提示。我們使用一個基線,其中只使用分詞后的類名作為上下文,并評估了兩種設計選擇:文本提示的數量Mc和文本提示的類型,即統一上下文(UC)(即所有類別共享一組提示)和類別特定上下文(CSC)(即每個類別都有獨立的提示集)。消融實驗結果如圖5所示。顯然,CSC提供了更好的準確性,這是直觀的,因為每個類別都有一個獨立的可學習上下文。將上下文大小增加到8以上并沒有帶來顯著的增益。因此,我們選擇將文本提示固定為CSC,Mc = 8。

可視化:我們使用圖3中的注意力展開方法來說明我們模型的注意力。我們將我們方法的可視化與一個不包括我們提出的提示方案的基線進行比較。我們注意到,提出的提示方案有助于模型集中注意力于視頻中與最終識別任務相關的顯著部分和重要動態。

圖 3. 注意力展開 [1] 在示例視頻上的顯示,包括原始幀、未使用我們提出的提示方法的熱圖,以及使用 Vita-CLIP 提示方法的熱圖。例如,在“烹飪雞肉”、“彈吉他”、“引體向上”和“跳繩”等動作中,我們的方法集中關注了在區分信息和運動特性方面最重要的局部區域。

5. 結論

我們提出了一種多模態提示方案,將圖像-語言預訓練模型應用于視頻識別任務。現有的解決方案沒有充分利用視頻-文本聯合提示學習,通常傾向于微調CLIP骨干網絡,這導致了零樣本泛化和監督性能之間的平衡不足我們的方法在零樣本和監督性能之間取得了平衡,在相同的訓練方案下表現出良好的統一性能。我們在三個數據集(UCF101、HMDB51和K600)上實現了最先進的零樣本性能,在K400和SSv2上的監督性能仍然具有競爭力,同時訓練參數數量要少得多。

讀后總結

出發點:為了保證零樣本泛化能力和監督性能之間的平衡

創新點:提出一種多模態提示方案,在視頻編碼器提示學習部分,通過添加摘要令牌、局部提示令牌和全局提示令牌,幀與幀之間交換信息,在圖像-文本預訓練模型中添加時間信息,建模幀級信息和幀間關系,以及提供對新視頻數據分布的適應性;在文本編碼器提示學習部分,通過添加可訓練的向量來建模上下文詞語,以便文本編碼器能夠更好地適應新的視頻類別。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15247.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sw布爾減

可能最有效率還是草圖邊界線,然后用草圖做分割

ue5 中ps使用記錄貼

一、快捷鍵記錄 放大圖形 ctrlalt空格 放大圖形 縮小視口 ctrl空格 ctrlD 取消選區 ctrlt縮小文字 w魔棒工具 選擇魔棒的時候把容差打開的多一點 二、案例 移動文字 在相應的圖層選擇 移動文字 修改圖片里的顏色 在通道里拷貝紅色通道,復制紅色通道粘貼給正常圖…

記錄Hbase出現HMaster一直初始化,日志打印hbase:meta,,1.1588230740 is NOT online問題的解決

具體錯誤 hbase:meta,,1.1588230740 is NOT online; state{1588230740 stateOPEN, ...... 使用 hbase 2.5.5 ,hdfs和hbase分離兩臺服務器。 總過程 1. 問題發現 在使用HBase的程序發出無法進行插入到HBase操作日志后檢查HBase狀況。發現master節點和r…

大模型應用商業化落地關鍵:給企業帶來真實的業務價值

2024 年被很多人稱為大模型應用的元年,毫無疑問,大模型已經成為共識,下一步更急迫的問題也擺在了大家的面前——大模型到底能夠用在哪?有哪些場景能落地?怎么做才能創造真正的價值? 在剛剛過去的 AICon 全…

【排序算法】快速排序(四個版本以及兩種優化)含動圖)

制作不易,三連支持一下吧!!! 文章目錄 前言一.快速排序Hoare版本實現二.快速排序挖坑法版本實現三.快速排序前后指針版本實現四.快速排序的非遞歸版本實現五.兩種優化總結 前言 前兩篇博客介紹了插入和選擇排序,這篇博…

halcon配合yolov8導出onnx模型檢測物體

1.工業上多數視覺開發都是用halcon開發的,halcon本身也有自己的深度學習網絡,至于halcon如果不使用本身的深度學習,使用其他網絡導出的onnx模型怎樣配合使用?本文基于yolov8寫一個列子。 2。創建輸入數據的轉換代碼 #region 創建輸…

Nginx高可用性架構:實現負載均衡與故障轉移的探索

隨著網絡應用的不斷發展和用戶訪問量的增長,如何確保系統的高可用性、實現負載均衡以及快速響應故障轉移成為了每個運維和開發團隊必須面對的挑戰。Nginx作為一款高性能的HTTP和反向代理服務器,憑借其強大的功能和靈活的配置,成為了實現這些目…

題目:填空練習(指向指針的指針)

題目:填空練習(指向指針的指針) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about …

【bugfix】/usr/local/bin/docker-compose:行1: html: 沒有那個文件或目錄

前言 在使用 docker-compose 管理容器化應用時,偶爾會遇到一些意想不到的錯誤,比如當嘗試運行 docker-compose 命令時,終端非但沒有展示預期的輸出,反而出現類似網頁錯誤的信息。這類問題通常與 docker-compose 的安裝或配置有關…

首都師范大學聘請旅美經濟學家向凌云為客座教授

2024年4月17日,首都師范大學客座教授聘任儀式在首都師范大學資源環境與旅游學院舉行。首都師范大學資源環境與旅游學院院長呂拉昌主持了儀式,并為旅美經濟學家向凌云教授頒發了聘書。 呂拉昌院長指出,要貫徹教育部產學研一體化戰略&#xff0…

數據庫工具類

public interface DbMapper {/*** 查詢數據庫類型*/String queryDbType(); }<select id"queryDbType" resultType"java.lang.String">select<choose><when test"_databaseId mysql">mysql</when><when test"_d…

虛擬機Centos擴展磁盤空間

虛擬機空間&#xff1a;現sda大小20G&#xff0c;因課程需要擴容 在虛擬機擴容中&#xff0c; 新增一塊硬盤 和 直接在原有硬盤基礎上擴容是一樣的&#xff08;只不過在原有硬盤上擴容需要關機才可以執行&#xff09;&#xff1b; 但兩者都最好先做數據備份或快照&#xff0c…

夏令營復習coding 算法第一天-狀態:新奇

T1:bubble冒泡排序 &#xff08;1&#xff09;思路&#xff1a;兩次循環&#xff0c;外層循環從后面開始-作為一個支點&#xff0c;內層循環每次將當前需要排序的最大的那個元素一步步移動到該支點&#xff0c;最終升序排列完成 &#xff08;2&#xff09;代碼: #include &l…

5、設計模式之適配器模式/原型模式

文章目錄 開始之前適配器模式使用場景注意事項何時使用優缺點代碼實現 原型模式深拷貝和淺拷貝 開始之前 本章節是一個系列&#xff0c;里面用的的代碼實例都是連貫的。在實現某一種設計模式時&#xff0c;為了減少代碼篇幅&#xff0c;前面博客出現model類&#xff08;僅限公…

【LabVIEW FPGA入門】同步C系列模塊

1.同步使用循環定時器VI計時循環速率的系列模塊 數字模塊SAR ADC 模塊多路復用模塊 數字通道可以在一個時鐘周期內執行。模擬通道需要多個時鐘周期。 同步模擬模塊的每個通道有一個 ADC&#xff0c;采集的數據在通道之間沒有明顯的偏差。多路復用模塊使用多路復用器通過單個 A…

Docker安裝并部署Gitlab,同時解決Gitlab服務經常503/500的問題

文章目錄 Docker 安裝Gitlab部署后需要解決的小問題1. 獲取初始密碼2. 解決剛安裝好的Gitlab頻繁出現503/500并重啟的錯誤 Docker 安裝Gitlab docker pull gitlab/gitlab-cedocker run -d -p 11443:443 -p 11090:80 -p 11022:22 \ --name gitlab \ --restart unless-stopped \…

深入理解NumPy與Pandas【numpy模塊及Pandas模型使用】

二、numpy模塊及Pandas模型使用 numpy模塊 1.ndarray的創建 import numpy as np anp.array([1,2,3,4]) bnp.array([[1,2,3,4],[5,6,7,8]]) print(a) #[1 2 3 4] print(b) #[[1 2 3 4][5 6 7 8]] 1.1使用array()函數創建 numpy.array(object, dtype None, copy True, ord…

vue2和vue3區別

Vue 3是Vue.js框架的下一代主要版本&#xff0c;它在2020年9月正式發布。Vue 3帶來了一系列的新特性和改進&#xff0c;包括性能提升、更小的打包尺寸、更好的TypeScript支持、新的組合式API等。以下是Vue 2和Vue 3之間的一些主要區別&#xff1a; 1. 性能提升&#xff1a; …

計算機存儲單位

目錄 是什么 存儲單位的劃分 存儲單位轉換關系表 相關疑問 存儲單位轉換除了位之外的存儲單位轉換規則是什么 為什么在編碼中最小的操作單位不是位 是什么 用來度量數據存儲容量的單位。 存儲單位的劃分 存儲單位有 位&#xff08;bit&#xff0c;也稱為比特&#xff…

光伏項目怎么做預算?

隨著可再生能源行業的蓬勃發展&#xff0c;光伏行業也得到了擴張。許多想要加入光伏項目投資的人&#xff0c;都在為怎樣為項目做預算而苦惱&#xff0c;今天我就來跟大家分析下可以怎么做。 一、了解市場需求&#xff0c;確定預算目標 在制定光伏項目預算方案之前&#xff0c…