当前位置: 首页 > news >正文

长视频分析模型 LongVU 论文内容总结与技术架构解析

LongVU 论文内容总结与技术架构解析

一、论文核心内容总结

LongVU 是一种面向长视频-语言理解的时空自适应压缩机制,旨在解决多模态大语言模型(MLLMs)处理长视频时受限于上下文长度的核心问题。其核心思路是通过「时间冗余去除+文本引导的空间压缩+帧间依赖的空间剪枝」三级压缩策略,在减少视频令牌数量的同时保留关键视觉细节,最终实现对小时级长视频的高效理解。

1. 核心挑战

  • 令牌冗余问题:先进 MLLMs 单图需数百至数千令牌(如 LLaVA-OneVision 单图 7290 令牌),8k 上下文仅能处理 125 帧(2 分钟视频),而小时级视频需 20 万+令牌,远超模型承载能力。

  • 现有方法缺陷:均匀采样丢失关键帧、密集采样超上下文长度、强压缩模块丢失视觉信息。

二、模型架构介绍

在这里插入图片描述

请添加图片描述

(1)时间冗余去除(Temporal Reduction)
  • 核心逻辑:利用 DINOv2 自监督特征的帧间相似度,去除冗余帧,将原始 N 帧压缩至 T 帧(约减少 50%)。

  • 实现细节

    1. 1fps 采样视频帧,用 DINOv2 提取每帧特征 (Vdinoi)(V_{\text{dino}}^i)(Vdinoi)

    2. 按非重叠窗口(J=8 帧)计算帧平均相似度

    (simi=1J−1∑j≠isim(Vdinoi,Vdinoj))(sim^i = \frac{1}{J-1}\sum_{j≠i}sim(V_{\text{dino}}^i, V_{\text{dino}}^j))(simi=J11j=isim(Vdinoi,Vdinoj))

    过滤相似度高于阈值的帧,保留 T 帧(约 45.9% 原始帧)。

    1. 公式参数与代码变量的对应表
    公式参数代码变量 / 操作含义说明
    simisim^isimisimilarities[i]第 i 帧与窗口内其他所有帧的平均相似度(值越高,帧越冗余)
    Jwindow_size(如 16)或 len(segment)窗口内的总帧数(即参与相似度计算的帧数量)
    j≠i工程简化(包含 j=i 但影响极小)因 J 较大(如 16),1/J1/(J-1) 差异可忽略,直接用均值替代
    sim(·,·)query_feature @ query_feature.T点积相似度(因特征已归一化,等价于余弦相似度)
    VdinoiV_{\text{dino}}^iVdinoiquery_feature[i]第 i 帧经 DINO 提取并归一化的特征向量(维度为 C×H×W,展平后的值)
    (2)文本引导的空间压缩(Selective Feature Reduction)
  • 核心逻辑:基于文本查询与帧特征的跨模态注意力,选择(Nh)(N_h)(Nh) 帧保留高分辨率((H_h×W_h),其余帧空间池化至低分辨率((H_l×W_l))。

  • 关键公式

    • 保留高分辨率帧数:

      (Nh=max⁡(0,Lmax−Lq−T⋅HlWlHhWh−HlWl))(N_h = \max\left(0, \frac{L_{\text{max}} - L_q - T·H_lW_l}{H_hW_h - H_lW_l}\right))(Nh=max(0,HhWhHlWlLmaxLqTHlWl))

      • (Lmax)(L_{\text{max}})(Lmax):模型最大上下文长度,(L_q):文本查询长度,T:时间压缩后帧数;
      • (Hh×Wh):高分辨率令牌数(如12×12=144),(H_h×W_h):高分辨率令牌数(如 12×12=144),(Hh×Wh):高分辨率令牌数(如12×12=144),(H_l×W_l)$:低分辨率令牌数(如 8×8=64)。
    • 帧选择依据:(TopNh(1HhWhLq∑h,w,lF(V)QT))(\text{Top}_{N_h}\left(\frac{1}{H_hW_hL_q}\sum_{h,w,l}\mathcal{F}(V)Q^T\right))(TopNh(HhWhLq1h,w,lF(V)QT))

      • (F(⋅))(\mathcal{F}(·))(F()):MLP 多模态适配器(对齐视觉特征与 LLM 空间),Q:文本查询的 LLM 嵌入;
      • 选择注意力分数最高的 (N_h) 帧保留高分辨率,其余帧用双线性插值池化至低分辨率。

    公式分为 “帧选择规则”(左侧)和 “保留帧数计算”(右侧)两部分,需结合理解

    (一)、保留高分辨率帧的数量 (N_h) 计算
    1. 公式展开与参数定义
    公式参数定义与物理意义LongVU 项目中的来源
    (N_h)最终输出:可保留的高分辨率帧数量(整数,≥0),即需计算的目标值。代码中对应 highres_num,决定将多少帧从低分辨率升级为高分辨率。
    (L_{\text{max}})模型最大上下文长度(固定值,如 8192),即文本 + 视觉 token 总长度不能超过该值。从模型配置 self.get_model().config.tokenizer_model_max_length 获取。
    (L_q)文本查询长度(text query length),即输入文本的 token 数。代码中通过 sum([x.shape[0] for x in cur_input_embeds_no_im]) 计算(文本嵌入的总长度)。
    T视频总帧数(即当前处理的视频包含的帧数量)。frame_split_sizes[cur_image_idx] 获取(批量处理中单个视频的帧拆分尺寸)。
    (H_lW_l)单帧低分辨率视觉 token 数(如 4×4=16),即低分辨率帧编码后的 token 数量。代码中通过 split_image_features_unpadded[cur_image_idx].shape[0] // T 计算(低分辨率特征总长度 ÷ 帧数)。
    (H_hW_h)单帧高分辨率视觉 token 数(如 8×8=64),即高分辨率帧编码后的 token 数量。代码中通过 visual_emb.shape[0] // T 计算(高分辨率特征总长度 ÷ 帧数),或直接从配置 self.get_model().config.image_token_len 获取。
    2. 计算逻辑拆解
    • 公式推导与意义拆解

      1. 分子:剩余可分配的视觉 token 空间(L_{\text{max}} - L_q - T·H_lW_l)
      • 含义:模型总上下文长度((L_{\text{max}}))扣除文本长度((L_q))和 “全低分辨率视觉” 的总 token 数((T·H_lW_l))后,剩余的可用于 “升级高分辨率” 的 token 空间。
      • 若分子 ≤0:说明即使全用低分辨率,视觉 token 已超限,此时 (N_h=0)(不升级任何帧)。
      1. 分母:每帧升级高分辨率增加的 token 数(H_hW_h - H_lW_l)
      • 含义:单帧从低分辨率升级为高分辨率时,额外增加的 token 数(如 64-16=48)。
      1. 整体含义分子 ÷ 分母 = 最多可升级为高分辨率的帧数((N_h)),再用 max(0, ·) 确保结果非负(避免无剩余空间时出现负数)。

      例:若 (L_{\text{max}}=8192),(L_q=512),(T=10),(H_lW_l=16),(H_hW_h=64)

      分子 = 8192 - 512 - 10×16 = 7520

      分母 = 64 - 16 = 48

      (N_h = 7520 ÷ 48 ≈ 156)

    (二)部分 1:基于跨模态注意力的帧选择规则
    1. 公式展开与参数定义
    公式参数定义与物理意义LongVU 项目中的对应实现
    (\mathcal{F}(·))MLP 多模态适配器,作用是将视觉特征从原始空间(如 DINO 输出)对齐到 LLM 特征空间(确保视觉与文本特征维度一致,可计算相似度)。代码中对应 visual_emb(注释明确其为 “经过 MLP 适配器的视觉特征”),维度为 [T×Hh×Wh, Dq](Dq 是 LLM 文本特征维度)。
    V原始视觉特征(如 DINO 提取的高分辨率帧特征),未经跨模态对齐。对应输入到 MLP 适配器的原始视觉特征(代码中未直接显示,visual_emb 是其经 (\mathcal{F}(·)) 处理的结果)。
    Q文本查询的 LLM 嵌入(Query),维度为 [Lq, Dq](Lq 是文本长度,Dq 是特征维度)。代码中对应 text_emb,通过 LLM 对输入文本编码得到(如 Qwen2 的文本嵌入)。
    (H_hW_h)单帧高分辨率视觉 token 数(如 8×8=64),即每帧高分辨率特征包含的 token 数量。代码中通过 visual_emb.reshape(T, -1, Dq) 中的 -1 得到(每帧的 token 数)。
    (L_q)文本查询的长度(token 数),即 Q 的序列长度。对应 text_emb.shape[0](文本嵌入的第一维是长度)。
    (\sum_{h,w,l})对视觉特征的空间维度((h,w),对应高分辨率 token 的空间位置)和文本的序列维度(l,对应文本 token 位置)求和。代码中通过矩阵乘法 torch.matmul(visual_emb, text_emb.transpose(0,1)) 实现(内积等价于求和)。
    (\frac{1}{H_hW_hL_q})归一化系数:对三重求和结果取平均,得到 “视觉帧与文本的平均关联度”(消除维度对数值的影响)。代码中通过两次 .mean(dim=-1) 实现(分别对文本维度和视觉 token 维度取平均)。
    (\text{Top}_{N_h}(·))选择分数最高的 (N_h) 个结果,即保留与文本关联度最高的 (N_h) 帧为高分辨率。代码中通过 torch.topk(sim_frame, highres_num) 实现(highres_num 即 (N_h))。
    2. 计算逻辑拆解(以单帧为例)

    LongVU 中 “高分辨率帧选择” 的核心矛盾是:有限的 token 资源应优先分配给 “对文本理解最关键的帧”。公式通过以下逻辑解决这一矛盾:

    1. 计算跨模态关联度:通过 (\mathcal{F}(V)Q^T) 计算视觉特征(经对齐)与文本特征的内积,量化 “视觉 token 与文本 token 的匹配程度”(值越高,关联越紧密)。
    2. 归一化消除维度影响:除以 (H_hW_hL_q) 得到平均关联度(避免 “长文本” 或 “多视觉 token” 导致分数偏高)。
    3. 选择关键帧:取 Top (N_h) 的帧保留高分辨率 —— 这些帧与文本关联最紧密,保留细节能最大程度提升模型对 “文本 - 视觉” 对应关系的理解。
    4. 矩阵乘法等对所有视觉 token((h,w) 维度)和文本 token(l 维度)的内积求和,即公式中的 (\sum_{h,w,l} \mathcal{F}(V)Q^T)。
(3)帧间依赖的空间剪枝(Spatial Token Compression, STC)
  • 核心逻辑:若低分辨率令牌仍超上下文长度((T⋅HlWl≥Lmax))((T·H_lW_l ≥ L_{\text{max}}))(THlWlLmax),基于帧间空间令牌相似度剪枝冗余令牌。
  • 实现细节
    1. 滑动窗口划分帧序列(窗口大小 K=8,非重叠),保留窗口第一帧完整令牌;
    2. 计算后续帧与第一帧同位置令牌的余弦相似度,剪枝相似度>阈值(θ=0.8)的令牌:(vi∗(h,w)={vi(h,w)if sim(v1(h,w),vi(h,w))≤θ∅otherwise)(v_i^*(h,w) = \begin{cases} v_i(h,w) & \text{if } sim(v_1(h,w), v_i(h,w)) ≤ θ \\∅ & \text{otherwise}\end{cases})(vi(h,w)={vi(h,w)if sim(v1(h,w),vi(h,w))θotherwise)
    3. 令牌减少率约 40.4%,最终平均每帧令牌数降至 2 个,8k 上下文可承载小时级视频。

3. 模型架构:多模态融合与 LLM 适配

  • 视觉编码器:融合 DINOv2(低阶视觉细节)与 SigLIP(语言对齐语义)特征,通过空间视觉聚合器(SVA)融合为统一特征 V;
  • 语言 backbone:Qwen2-7B / Llama3.2-3B,适配多模态输入;
  • 跨模态交互:通过可学习查询的交叉注意力,将视觉特征映射至 LLM 嵌入空间,实现视觉 - 语言融合。

4.模型架构详解

LongVU 由 ​​视觉编码器​​、​​特征融合模块​​和​​语言模型​​三部分组成,结合 DINOv2 和 SigLIP 的优势:

1. ​​视觉编码器双分支​
  • ​DINOv2​​(视觉中心特征):

    • 通过自监督学习捕获​​低层视觉特征​​(如纹理、边缘)和帧间细微差异。
    • 用于时间压缩:计算帧间相似度,剔除冗余帧(平均保留率 54.1%)。
  • ​SigLIP​​(语言对齐特征):

    • 基于对比学习对齐图像-文本语义空间,擅长​​高层语义理解​​。
    • 用于提取剩余帧的空间特征(分辨率 384×384 → 24×24 token)。
2. ​​特征融合:Spatial Vision Aggregator (SVA)​
  • 输入:DINOv2 和 SigLIP 的特征序列。
  • 过程:通过可学习查询动态聚合双编码器特征,生成统一表示。
  • 输出:融合特征 V∈RT×(Hh​×Wh​)×Dv​(T=帧数,Hh​×Wh​=空间 token 数)。
3. ​​语言模型:Qwen-7B​
  • 作为推理 backbone,处理压缩后的视频 token 序列。
  • 支持 8K 上下文长度,适配长视频输入。

4.数据处理流程与阶段变化
阶段 1: 时间压缩(Temporal Reduction)
  1. ​输入​​:1fps 采样的视频帧序列 {I1​,…,IN​}。

  2. ​DINOv2 特征提取​​:

  • 每帧提取特征 Vdinoi​,计算窗口内(J=16 帧)平均相似度:
    simi=J−11​∑j=i​sim(Vdinoi​,Vdinoj​)
  1. ​帧剔除​​:保留相似度低的帧(约剔除 46% 冗余帧)。

  2. ​输出​​:关键帧序列 {I1​,…,IT​}(T≈0.54N)。

阶段 2: 空间自适应压缩
  1. ​SigLIP 特征提取​​:对剩余帧提取特征 {Vsig1​,…,VsigT​}。

  2. ​SVA 融合​​:生成统一特征 V={V1,…,VT}。

  3. ​跨模态查询选择​​:

  • 文本查询 Q(LLM 嵌入)与帧特征计算注意力得分:
    $Score=Hh​Wh​Lq​1​∑h,w,l​F(V)QTScore=Hh​Wh​Lq​1​∑h,w,l​F(V)QTScore=HhWhLq​1​h,w,lF(V)QT
  • 选择得分最高的 Nh​ 帧保留全分辨率(144 token/帧),其余降至 64 token/帧。
  • Nh​ 动态计算:
    $Nh​=max(0,Hh​Wh​−Hl​Wl​Lmax​−Lq​−THl​Wl​​)Nh​=max(0,Hh​Wh​−Hl​Wl​Lmax​−Lq​−THl​Wl​​)Nh=max(0,HhWhHlWlLmaxLqTHlWl​​)
阶段 3: 空间 Token 压缩(STC)
  • ​条件​​:若 token 总数仍超上下文长度 Lmax​。

  • ​过程​​:

    1. 分窗口处理(大小 K=8 帧)。
    2. 首帧保留全 token,后续帧 token 与首帧逐位置计算余弦相似度。
    3. 剪枝相似度 >θ(θ=0.8)的 token,保留差异区域。
  • ​效果​​:平均减少 40.4% token,聚焦动态内容。

阶段 4: LLM 推理
  • 压缩后 token 序列输入 Qwen-7B,生成视频理解结果(问答、描述等)。

性能优势

  1. ​长视频理解​​:
  • VideoMME-Long(1小时视频)准确率 59.5%,​​超越 LLaVA-OneVision 12.8%​​。
  • MLVU(2小时视频)准确率 65.4%,SOTA。
  1. ​轻量化适配​​:
  • 基于 Llama3.2-3B 的小模型在 VideoMME-Long 上超越 Phi-3.5V 3.4%。
  1. ​效率​​:
  • 1fps 采样 + 自适应压缩 → 处理 1 小时视频仅需 8K 上下文。

文档核心内容总结

​LongVU​​ 是一种针对长视频理解(Long Video-Language Understanding)的时空自适应压缩框架,旨在解决多模态大语言模型(MLLMs)处理长视频时因上下文长度限制导致的视觉细节丢失问题。其核心创新是通过​​跨模态查询​​和​​帧间依赖关系​​自适应压缩视频的时空冗余,在保留关键视觉信息的同时大幅减少 token 数量。

三、数据处理流程

第一层:输入层
  • 视频输入:原始小时级长视频 → 1fps 采样为 N 帧图像(如 3600 帧 / 小时);
  • 文本输入:用户文本查询(如 “描述视频中人物动作”)→ 经 Qwen 文本编码器生成文本嵌入$ (Q \in R^{L_q \times D_q})$((L_q) 为文本长度,(D_q=4096) 为 Qwen 嵌入维度)。
第二层:时间冗余去除模块(DINOv2 核心)
  • DINOv2 编码:N 帧图像 → 每帧低阶视觉特征$ (V_{dino}^i)$(维度 768,捕捉帧间细节差异);
  • 窗口相似度过滤:按 8 帧非重叠窗口划分,计算每帧与窗口内其他帧的平均相似度,过滤高相似度冗余帧 → 输出 T 帧(约 1620 帧,保留 45.9% 原始帧)。
第三层:视觉特征融合模块(DINOv2 + SigLIP + SVA)
  • SigLIP 编码:T 帧图像 → 语言对齐语义特征 (Vsigi∈R144×1152)(V_{sig}^i \in R^{144 \times 1152})(VsigiR144×1152)(144 为 (12×12) 高分辨率令牌数);
  • DINOv2 特征适配:T 帧的 (V_{dino}^i) 适配为 (R144×768)(R^{144 \times 768})(R144×768),与 SigLIP 特征空间维度统一;
  • SVA 聚合:通过可学习查询聚合两种特征 → 输出融合特征 (V∈RT×144×1024)(V \in R^{T \times 144 \times 1024})(VRT×144×1024)(1024 为融合后维度)。
第四层:时空压缩模块(文本引导 + STC)
  • 文本引导空间压缩:融合特征 V 与文本嵌入 Q 计算跨模态注意力,按公式 (N_h) 选择 (N_h) 帧保留 144 令牌高分辨率,其余帧池化为 64 令牌低分辨率 → 输出 (Vcompress∈RT×(64∼144)×1024)(V_{compress} \in R^{T \times (64\sim144) \times 1024})(VcompressRT×(64144)×1024)
  • STC 空间剪枝:若 (T×64 ≥ 8k),按 8 帧滑动窗口划分,保留窗口第一帧令牌,剪枝与第一帧相似度>0.8 的令牌 → 输出 (Vstc∈RT×∼40×1024)(V_{stc} \in R^{T \times \sim40 \times 1024})(VstcRT×40×1024)
第五层:多模态大模型 Qwen 推理
  • 特征投影:(V_{stc}) 经投影层对齐至 Qwen 嵌入空间 (RTotalTokens×4096)(R^{TotalTokens \times 4096})(RTotalTokens×4096)
  • 序列拼接:文本嵌入 Q 与视觉嵌入拼接 → 多模态序列 (R(Lq+TotalTokens)×4096)(R^{(L_q+TotalTokens) \times 4096})(R(Lq+TotalTokens)×4096)(总令牌≤8k);
  • Qwen 解码:自回归生成长视频理解结果(如问答、描述、动作计数)。

2. 数据处理流程拆解(阶段 + 变化)

阶段处理步骤输入数据输出数据核心变化
1. 时间压缩1fps 采样 → DINOv2 编码 → 相似度过滤原始长视频T 帧图像(1620 帧 / 小时)帧数量:3600→1620(减少 50%),无空间令牌 → 无令牌(仅图像)
2. 特征融合SigLIP 编码 → DINOv2 适配 → SVA 聚合T 帧图像融合特征 (T×144×1024)图像 → 带空间令牌的特征(144 令牌 / 帧),维度从 768/1152→1024
3. 文本引导压缩跨模态注意力 → N_h 计算 → 分辨率调整融合特征 (T×144×1024) + 文本嵌入压缩特征 (T×(64~144)×1024)令牌数:144→64~144 / 帧,总令牌减少 25%
4. STC 剪枝滑动窗口划分 → 相似度计算 → 令牌剪枝压缩特征 (T×(64~144)×1024)剪枝特征 (T×~40×1024)令牌数:64144→40 / 帧,减少 40.4%
5. 多模态推理特征投影 → 序列拼接 → Qwen 解码剪枝特征 (T×~40×1024) + 文本嵌入长视频理解结果视觉特征维度 1024→4096(对齐 Qwen),总令牌≤8k

四、核心组件作用总结

组件输入输出核心作用
DINOv2 编码器单帧图像(D_dino,) 特征提取帧间相似度高的自监督特征,用于时间去冗余
SigLIP 编码器单帧图像(H_hW_h, D_sig) 特征提取语言对齐的语义特征,用于跨模态交互
SVA(空间聚合器)DINOv2 + SigLIP 特征(H_hW_h, D_v) 融合特征可学习查询聚合多源视觉特征,统一维度
跨模态注意力模块融合特征 + 文本嵌入N_h 帧索引选择高相关帧保留高分辨率,减少空间令牌
STC(空间剪枝模块低分辨率特征剪枝后特征基于帧间令牌相似度,进一步减少冗余令牌
Qwen 大模型文本 + 视觉序列理解结果处理多模态输入,输出长视频问答/描述
http://www.dtcms.com/a/409888.html

相关文章:

  • Datawhale25年9月组队学习:llm-preview+Task4:微调大模型
  • Unity-动画目标匹配
  • 国标GB28181平台EasyGBS视频调阅功能在跨域安防监控中的核心应用
  • dlib库关键点定位和疲劳检测
  • 甘肃省建设工程网上投标网站学院门户网站建设
  • JavaWeb--day11--登录认证
  • [VCS]Verdi/VCS 波形调试最佳实践清单
  • 网站怎么做播放窗口网站数据模版
  • 深入理解Kafka的复制协议与可靠性保证
  • 自动化接口框架搭建分享-pytest第三部分
  • WPF 控件悬停弹窗高级指南:用 Behavior 实现带动画的智能 HoverPopup
  • 佳维视工业显示器在喷码机中的应用
  • 自存19-48
  • ARM CoreSight:多核SoC调试追踪架构解析
  • Windows 显示器EDID笔记
  • 有哪些做任务的网站海淀区seo搜索引擎优化企业
  • 【C++实战㊻】解锁C++观察者模式:从理论到实战
  • 类和对象(二)
  • 开源多场景问答社区论坛Apache Answer本地部署并发布至公网使用
  • vue3 通过 Vue3DraggableResizable实现拖拽弹窗,可修改大小
  • 广州网站制作信科建设白名单 网站
  • DirBuster工具的文本介绍以及使用方法
  • DeepSeek-V3.1-Terminus:蓝耘API+CherryStudio实测国产最新开源模型,推理能力竟让我后背发凉
  • 金仓数据库:破解电子证照国产化难题,开启政务效能新篇
  • 杭州小蜜蜂网站建设宝坻做网站哪家好
  • 解析前端框架 Axios 的设计理念与源码:从 Promise 美学到双适配架构
  • MQTT 关键特性详解
  • 数据仓库与数据挖掘课程设计
  • 半导体数据分析:GPR算法小白入门(三) 晶体管I-V特性仿真教程
  • 深入理解 Qt 元对象系统:QMetaEnum 的应用与实践