CNN、Transformer、Uniformer之外,我們終於有了更有效率的影片理解技術
视频理解的核心目标是准确理解时空表示,但面临两个主要挑战:短视频片段中存在大量时空冗余,并且复杂的时空依赖关系。三维卷积神经网络(CNN)和视频Transformer曾在解决其中一个挑战方面表现出色,但它们在同时应对这两个挑战时存在一定不足。UniFormer尝试结合这两种方法的优势,但在建模长视频方面遇到了困难。
S4、RWKV 和 RetNet 等低成本方案在自然语言处理领域的出现,为视觉模型开辟了新的途径。Mamba 凭借其选择性状态空间模型 (SSM) 脱颖而出,实现了在保持线性复杂性的同时促进长期动态建模的平衡。这种创新推动了它在视觉任务中的应用,正如 Vision Mamba 和 VMamba 所证实的那样,它们利用多方向 SSM 来增强二维图像处理。这些模型在性能上与基于注意力的架构相媲美,同时显著减少了内存使用量。
鉴于视频产生的序列本身更长,一个自然的问题是:Mamba 能否很好地用于视频理解?
启发于 Mamba,本文介绍了 VideoMamba,这是专门为视频理解定制的 SSM(选择性状态空间模型)。VideoMamba 借鉴了 Vanilla ViT 的设计理念,将卷积和注意力机制相结合。它提供了一种线性复杂度的方式,用于动态时空背景建模,尤其适用于处理高分辨率长视频。评估主要集中在 VideoMamba 的四个关键能力上:
在视觉领域的可扩展性:本文对 VideoMamba 的可扩展性进行了检验,发现纯 Mamba 模型在不断扩展时往往容易过拟合,本文引入一种简单而有效的自蒸馏策略,使得随着模型和输入尺寸的增加,VideoMamba 能够在不需要大规模数据集预训练的情况下实现显著的性能增强。
对短期动作识别的敏感性:本文的分析扩展到评估 VideoMamba 准确区分短期动作的能力,特别是那些具有细微动作差异的动作,如打开和关闭。研究结果显示,VideoMamba 在现有基于注意力的模型上表现出了优异的性能。更重要的是,它还适用于掩码建模,进一步增强了其时间敏感性。
在长视频理解方面的优越性:本文评估了 VideoMamba 在解释长视频方面的能力。通过端到端训练,它展示了与传统基于特征的方法相比的显著优势。值得注意的是,VideoMamba 在 64 帧视频中的运行速度比 TimeSformer 快 6 倍,并且对 GPU 内存需求减少了 40 倍 (如图 1 所示)。
與其他模態的兼容性:最後,本文評估了 VideoMamba 與其他模態的適應性。在視訊文字檢索中的結果顯示,與 ViT 相比,其表現得到了改善,特別是在具有複雜情景的長影片中。這凸顯了其穩健性和多模態整合能力。
本研究的深入實驗揭示了VideoMamba在短期(K400和SthSthV2)和長期(Breakfast,COIN和LVU)視訊內容理解方面的巨大潛力。 VideoMamba表現出高效性和準確性,預示著它將成為長視訊理解領域的關鍵組成部分。為了促進未來研究的進展,所有的程式碼和模型都已經開源。
- #論文網址:https://arxiv.org/pdf/2403.06977.pdf
- 專案網址:https://github.com/OpenGVLab/VideoMamba
- 論文標題:VideoMamba: State Space Model for Efficient Video Understanding
方法介紹
下圖2a 顯示了Mamba 模組的細節。
#圖 3 說明了 VideoMamba 的整體框架。本文首先使用3D 卷積(即1×16×16) 將輸入視訊Xv ∈ R 3×T ×H×W 投影到L 個非重疊的時空補丁Xp ∈ R L×C,其中L=t×h×w (t=T,h= H 16, 和w= W 16)。輸入到接下來的VideoMamba 編碼器的token 序列是
#時空掃描:為了將B-Mamba 層應用於時空輸入,本文圖4 中將原始的2D 掃描擴展為不同的雙向3D 掃描:
(a) 空間優先,透過位置組織空間token,然後逐幀堆疊它們;
(b) 時間優先,依影格排列時間token,然後沿著空間維度堆疊;
(c) 時空混合,既有空間優先又有時間優先,其中v1 執行其中的一半,v2 執行全部(2 倍計算量)。
圖 7a 中的實驗表明,空間優先的雙向掃描是最有效但最簡單的。由於 Mamba 的線性複雜度,本文的 VideoMamba 能夠有效率地處理高解析度的長視訊。
對於 B-Mamba 層中的 SSM,本文採用與 Mamba 相同的預設超參數設置,將狀態維度和擴展比例分別設為 16 和 2。參考 ViT 的做法,本文調整了深度和嵌入維度,以創建與表 1 中相當大小的模型,包括 VideoMamba-Ti,VideoMamba-S 和 VideoMamba-M。然而實驗中觀察到較大的 VideoMamba 在實驗中往往容易過度擬合,導致像圖 6a 所示的次優性能。這種過擬合問題不僅存在於本文提出的模型中,也存在於 VMamba 中,其中 VMamba-B 的最佳效能是在總訓練週期的四分之三時達到的。為了對抗較大 Mamba 模型的過度擬合問題,本文引入了一種有效的自蒸餾策略,該策略使用較小且訓練良好的模型作為「教師」,來引導較大的「學生」模型的訓練。如圖 6a 所示的結果表明,這種策略導致了預期的更好的收斂性。
關於遮罩策略,本文提出了不同的行遮罩技術,如圖5 所示,專門針對B-Mamba 區塊對連續token 的偏好。
實驗
#表 2 展示了在 ImageNet-1K 資料集上的結果。值得注意的是,VideoMamba-M 在效能上顯著優於其他各向同性架構,與 ConvNeXt-B 相比提高了 0.8%,與 DeiT-B 相比提高了 2.0%,同時使用的參數更少。 VideoMamba-M 在針對增強效能採用分層特徵的非各向同性主幹結構中也表現出色。鑑於 Mamba 在處理長序列方面的效率,本文透過增加解析度進一步提高了效能,僅使用 74M 參數就實現了 84.0% 的 top-1 準確率。
表 3 和表 4 列出了短期影片資料集上的結果。 (a) 監督學習:與純注意力方法相比,基於SSM 的VideoMamba-M 獲得了明顯的優勢,在與場景相關的K400 和與時間相關的Sth-SthV2 資料集上分別比ViViT-L 高出2.0% 和3.0%。這種改進伴隨著顯著降低的計算需求和更少的預訓練資料。 VideoMamba-M 的結果與 SOTA UniFormer 不相上下,後者在非各向同性結構中巧妙地將卷積與注意力進行了整合。 (b) 自我監督學習:在遮罩預訓練下,VideoMamba 的表現超越了以其精細動作技能而聞名的 VideoMAE。這項成就突顯了本文基於純 SSM 的模型在高效有效地理解短期視訊方面的潛力,強調了它適用於監督學習和自監督學習範式的特徵。
如图 1 所示,VideoMamba 的线性复杂度使其非常适合用于与长时长视频的端到端训练。表 6 和表 7 中的比较突显了 VideoMamba 在这些任务中相对于传统基于特征的方法的简单性和有效性。它带来了显著的性能提升,即使在模型尺寸较小的情况下也能实现 SOTA 结果。VideoMamba-Ti 相对于使用 Swin-B 特征的 ViS4mer 表现出了显著的 6.1% 的增长,并且相对于 Turbo 的多模态对齐方法也有 3.0% 的提升。值得注意的是,结果强调了针对长期任务的规模化模型和帧数的积极影响。在 LVU 提出的多样化且具有挑战性的九项任务中,本文采用端到端方式对 VideoMamba-Ti 进行微调,取得了与当前 SOTA 方法相当或优秀的结果。这些成果不仅突显了 VideoMamba 的有效性,也展示了它在未来长视频理解方面的巨大潜力。
如表 8 所示,在相同的预训练语料库和类似的训练策略下,VideoMamba 在零样本视频检索性能上优于基于 ViT 的 UMT。这突显了 Mamba 在处理多模态视频任务中与 ViT 相比具有可比较的效率和可扩展性。值得注意的是,对于具有更长视频长度 (例如 ANet 和 DiDeMo) 和更复杂场景 (例如 LSMDC) 的数据集,VideoMamba 表现出了显著的改进。这表明了 Mamba 在具有挑战性的多模态环境中,甚至在需求跨模态对齐的情况下的能力。
更多研究细节,可参考原论文。
以上是CNN、Transformer、Uniformer之外,我們終於有了更有效率的影片理解技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

C 中的ABI兼容性是指不同編譯器或版本生成的二進制代碼能否在不重新編譯的情況下兼容。 1.函數調用約定,2.名稱修飾,3.虛函數表佈局,4.結構體和類的佈局是主要涉及的方面。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
