LongVLM:让大模型解读长视频 SOTA 的方法

LongVLM:让大模型解读长视频 SOTA 的方法

    • 使用LongVLM处理长视频的步骤
    • LongVLM 方法
      • 3.1 总体架构
      • 3.2 局部特征聚合
      • 3.3 全局语义整合
    • 效果
      • 4.1 实验设置
      • 4.2 主要结果
      • 4.3 消融研究
      • 4.4 定性结果

 


论文:https://arxiv.org/pdf/2404.03384.pdf

代码:https://github.com/ziplab/LongVLM

 

LongVLM是一种高效的长视频理解方法,它通过大型语言模型(LLMs)来增强对长视频的理解。

针对现有VideoLLM在处理长视频时因无法精细理解而面临的挑战,LongVLM采用了一种简单有效的方法,提出了以下解决方案:

具体问题与解法

  • 问题1: 处理长视频需要模型能够处理大量的视觉令牌,导致计算成本高昂。

    • 解法: 通过预先压缩视觉令牌和利用池化操作或查询聚合来提取视频表示,减少了需要处理的视觉令牌数量。
  • 问题2: 现有模型无法精确识别长视频中的细节信息,如特定颜色或正在修理的具体部件。

    • 解法: LongVLM通过将长视频分解为多个短期片段,并针对每个片段提取局部特征,以维持故事线的连续性和时间结构。

解法拆解

  • 子解法1:均匀采样视频帧和特征提取 使用预训练的视觉编码器(如CLIP-ViT-L/14)提取每帧的视觉特征,包括[CLS]令牌和最后第二层的补丁特征。

    • 之所以使用均匀采样和特征提取,是因为这可以有效地从长视频中捕获关键视觉信息,同时降低处理长视频的复杂性。
  • 子解法2:局部特征聚合和时间序列维护 通过令牌合并模块将每个短期片段内的补丁特征聚合成一组紧凑的令牌,以获得每个片段的局部特征,并将这些特征按时间顺序连接。

    • 之所以采用局部特征聚合和时间序列维护,是因为它们有助于保留长视频中各个短期片段的时间结构,从而实现对视频内容更细致的理解。
  • 子解法3:全局语义信息整合 将来自视频帧的[CLS]令牌平均化以代表整个视频的全局语义信息,并将这些全局信息与每个短期片段的特征结合,然后输入到LLM中。

    • 之所以整合全局语义信息,是因为它可以丰富对每个短期片段的上下文理解,增强模型对长视频内容的整体把握能力。

主要贡献

  1. 提出了LongVLM:一种针对长视频内容进行精细级别理解的简单而有效的VideoLLM,同时保持计算成本在可接受范围内。
  2. 短期片段分解和特征提取:通过将长视频分解为短期片段并提取每个片段的局部特征,LongVLM能够保持这些片段的时间顺序,通过层次化的令牌合并模块聚合视觉令牌,同时将全局语义信息整合到每个片段中,以增强对上下文的理解。
  3. 在实验中取得显著进展:在VideoChatGPT基准测试和零样本视频问答数据集上的实验结果显示,LongVLM在细粒度水平上为长视频生成的响应比先前的最先进方法更为精确和准确。

LongVLM的提出有效地解决了长视频理解的挑战,其结合局部和全局信息的策略为视频内容理解领域提供了新的视角和方法。

 

例子背景:假设我们有一个5分钟长的视频,记录了一个手工艺人在工作坊中从头到尾制作一个木制桌子的过程。

这个视频涵盖了多个关键活动,包括选择木材、切割、打磨和组装等。

使用LongVLM处理长视频的步骤

  1. 均匀采样和特征提取

    • LongVLM首先均匀地从整个视频中采样视频帧。例如,它可能从这5分钟视频中每隔10秒提取一个帧,然后使用预训练的视觉编码器(如CLIP-ViT-L/14)来提取每帧的视觉特征。
    • 这样做能够捕获从选择木材到最终组装各个阶段的关键视觉信息,同时避免处理整个视频中的每一帧,从而降低复杂性和计算成本。
  2. 局部特征聚合和时间序列维护

    • 接下来,LongVLM将视频划分为若干短期片段,每个片段可能代表一个关键活动,如切割木材或打磨边缘。通过令牌合并模块,模型聚合每个短期片段内的补丁特征,生成每个活动的紧凑表示。
    • 通过按照这些活动发生的时间顺序连接这些表示,LongVLM能够保持视频故事的连贯性,使得最终的视频理解能够反映出手工艺人工作的实际流程。
  3. 全局语义信息整合

    • 同时,模型计算整个视频范围内[CLS]令牌的平均值,代表整个视频的全局语义信息。然后,将这些全局信息与每个短期片段的特征结合,确保在理解每个具体活动时也考虑到整个视频的上下文。
    • 例如,在解释打磨过程的具体细节时,模型也能考虑到这一步骤在整个桌子制作流程中的位置和重要性。

LongVLM 方法

LongVLM的方法,包括其总体架构、局部特征聚合过程和全局语义信息整合方式。

通过细化各个组成部分的作用和逻辑,我们可以更清晰地理解LongVLM如何实现对长视频的细粒度理解。

3.1 总体架构

图展示了所提出的LongVLM(长视频理解的大型语言模型)的总体架构。

从图中可以看出,LongVLM的流程包括以下几个主要步骤:

  1. 均匀采样视频帧:首先从视频中均匀采样T帧。

  2. 视觉编码器:对采样出的每帧视频独立地使用视觉编码器提取帧级特征。

  3. 视频划分:将输入视频划分成S个片段,每个片段包含K帧。

  4. 局部特征的聚合:在每个片段内应用层次化的令牌合并模块来获取紧凑的局部特征。

  5. 序列连接:将片段级特征顺序连接起来,显式地保留了长视频中多个短期片段的时间顺序。

  6. 全局语义特征的整合:收集[CLS]令牌并通过平均池化来聚合全局语义特征。

  7. 特征融合:将全局特征与局部特征序列连接起来形成视频表示。

  8. 投影层:投影层将视频表示转换为适合LLM处理的格式。

  9. 大型语言模型(LLM):最终,将投影后的视觉特征与标记化的系统指令和用户查询结合,并输入到LLM以生成响应。

此图还显示了模型中不同组件的参数更新状态,标识为冰雪晶体的部分表示参数在此过程中是冻结的,而火焰图标的部分表示参数在训练过程中会更新。

这表明LongVLM在不同阶段利用了不同的训练策略。

此外,通过图示的步骤性描述,我们可以了解到该模型如何从输入视频中提取关键信息,并最终生成对用户查询的响应。

  • 子解法1:视觉编码器 用于独立地提取每个视频帧的帧级特征,包括补丁特征和[CLS]令牌。

    • 之所以使用视觉编码器,是因为它能够从视频帧中提取丰富的视觉信息,为后续的特征聚合和语义理解提供基础。
  • 子解法2:局部特征序列的创建 将长视频分解为短期片段,对每个片段应用令牌合并模块,生成紧凑的片段级特征,这些特征按顺序连接,显式保留短期片段在长视频中的时间顺序。

    • 之所以这样做,是为了捕获视频中的局部信息,并保持短期事件或动作的时间结构,有助于理解视频的序列性质。
  • 子解法3:全局语义特征的整合 通过汇集和平均每个帧的[CLS]令牌,形成代表整个视频全局语义的特征,与局部特征序列一起输入到LLM。

    • 之所以整合全局语义信息,是为了丰富局部特征序列的上下文信息,帮助模型在整个视频范围内生成合理的响应。

3.2 局部特征聚合

  • 子解法1:分段和令牌合并 对每个短期片段应用层次化的令牌合并模块,通过软匹配方法逐步合并视觉令牌,以减少视觉令牌的数量并生成紧凑的局部特征。
    • 之所以采用层次化的令牌合并,是因为视频具有高度的时空冗余,直接考虑所有补丁特征会导致冗余的计算成本。

3.3 全局语义整合

  • 子解法1:全局特征的提取和整合 通过从每个帧的编码器层收集[CLS]令牌,并在时间维度上进行平均,生成代表整个视频的全局语义特征。
    • 之所以重视全局语义特征,是因为它为模型提供了视频的整体上下文信息,有助于理解不同片段之间的关系,从而在整个视频上生成合理的响应。

LongVLM通过将长视频分解为多个短期片段并聚合每个片段的局部空间-时间特征,同时通过整合全局语义信息,提出了一种既能捕获细粒度局部信息又能保留视频整体上下文的方法。

这种结合局部和全局信息的策略,使得LongVLM能够实现对长视频内容的精细理解和响应生成,克服了现有方法在处理长视频时细节理解不足的问题。

不同于依赖全局语义进行长视频理解的传统方法,LongVLM提供了一种直接且有效的方法,用于实现长期视频中的精细级别理解。

效果

这部分文本描述了LongVLM模型的实验设置、主要结果、消融研究和定性结果。以下是各个部分的中文概述和针对问题与解法的精细化分析。

4.1 实验设置

  • 数据集和评估指标:使用VideoChatGPT基准和ANET-QA等数据集对模型进行量化评估。涵盖了多个评估方面如正确性信息、细节取向、上下文理解等。

  • 实现细节:使用CLIP-ViT-L/14作为视觉编码器,Vicuna-7B-v1.1作为LLM,并在VideoChatGPT-100K数据集上微调。

4.2 主要结果

  • 基于视频的生成基准:LongVLM在细节取向和一致性方面相较于现有模型有显著提升。

  • 零样本视频问答:在三个零样本视频QA数据集上均达到了最高准确率。

4.3 消融研究

  • 局部特征聚合的影响

    • 子解法1:引入短期片段级特征,保留局部信息和时间结构。
      • 理由:与全局语义特征相比,局部特征更能够提高对视频的细粒度理解。
  • 全局语义整合的影响

    • 子解法1:将全局语义特征融入局部特征。
      • 理由:全局语义的加入显著提升了上下文理解和一致性的评分。
  • M的影响

    • 子解法1:选定M值,平衡内存成本和性能。
      • 理由:适当长度的视觉令牌能够提高模型性能。
  • E的影响

    • 子解法1:选取不同的[CLS]令牌数量,以选择最佳的E值。
      • 理由:适当数量的全局语义令牌能够提高生成质量分数。

4.4 定性结果

  • 精细理解的展示:模型能够捕捉细节信息,如准确识别正在修理的是链条而非车轮。
    • 例子:与Video-ChatGPT相比,LongVLM能够更准确地识别视频内容中的细节信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组合数学<1>——组合数学基础

今天我们聊聊组合数学。(本期是给刚刚学习组合数学的同学看的&#xff0c;dalao们可以自行忽略) 建议:不会求逆元的出门左转数论<2>&#xff0c;不会数论的出门右转数论<1>。 加乘原理 加乘原理小学奥数就有。 总的来说:加法原理:分类;乘法原理:分步 比如说&a…

test4121

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

<Windows>【建议收藏】《Windows笔记本设置WIFI热点后经常自行断开如何解决?》

第一步&#xff1a;输入Win键x&#xff0c;打开设置 第二步&#xff1a;选择高级网络设置 第三步&#xff1a;点击下拉按钮选择编辑 第四步&#xff1a;选择配置 第五步&#xff1a;电源管理中取消勾选

取数游戏(dfs)

前言&#xff1a; 该题取自洛谷P1123&#xff0c;题主用的dfs&#xff08;深度优先搜索&#xff09; 题目描述&#xff1a; 数据范围&#xff1a; 思路&#xff1a; 思路见代码&#xff0c;注释的很清晰嗷 AC代码&#xff1a; #include <iostream> #include <alg…

Ubuntu系统使用Docker本地部署Android模拟器并实现公网访问

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器&#xff0c;并结合cpolar内网穿透工具实现公网远程访问本地…

【绩效管理】建立员工绩效考核机制,提升企业绩效管理水平

随着企业的迅猛发展&#xff0c;其内部管理问题日益突出&#xff0c;已经制约了企业的进一步发展。一方面&#xff0c;员工工作懒散、积极性不高&#xff0c;出错的次数也逐步上升&#xff0c;另一方面&#xff0c;管理者也无法有效评价员工的工作好坏。面对这些问题&#xff0…

Pillow教程11:九宫格切图的实现方法(安排!!!)

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…

java混淆的重要性分析

Java代码混淆是一种常用的安全技术&#xff0c;它通过对Java代码进行变换和重命名&#xff0c;使得源代码变得难以理解和逆向工程&#xff0c;从而增强代码的安全性。以下是对Java混淆重要性的分析&#xff1a; 保护知识产权&#xff1a;Java混淆可以防止恶意用户或竞争对手轻易…

Vue笔记 2

数据代理 数据代理&#xff1a;通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09; let obj{x:100} let obj2{y:200} Object.defineProperty(obj2,x,{get(){return obj.x},set(value){obj.x value} })Vue中的数据代理 Vue中的数据代理&#xff1a; 通…

MySQL学习笔记(三)

1、insert插入多条数据 语法&#xff1a;insert into t_user(字段名1,字段名2...) values(值1,值2...),(值1,值2...),(值1,值2...)...; 2、快速创建表 原理&#xff1a;将一个查询结果当做一张表创建&#xff0c;可以完成表的快速复制。表创建出来&#xff0c;同时表中的数据…

【计算机毕业设计】——农产品销售系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

✔ ★Java项目——设计一个消息队列(二)

Java项目——设计一个消息队列 四. 项⽬创建五. 创建核⼼类创建 Exchange&#xff08;名字、类型、持久化&#xff09;创建 MSGQueue&#xff08;名字、持久化、独占标识&#xff09;创建 Binding&#xff08;交换机名字、队列名字、bindingKey用于与routingKey匹配&#xff09…

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca&#xff1a;ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

基于arcgis /envi PCA(主成分分析)实现过程

基于arcgis /envi PCA(主成分分析)实现过程 1 提取研究范围 2对研究范围进行重采样 &#xff08;根据数据情况进行选做&#xff0c;如数据较大建议进行该步骤操作&#xff09; 3 对研究范围内数据进行归一化处理 4 将空值替换为0 5 对同期不同要素数据进行波段合成 对波段…

Yii2 路由美化访问需要加s

不得不说yii真是反人类&#xff0c;怪不得现在都不维护了&#xff0c;今天解析下路由美化下的路由访问问题。 设置main.php配置文件 urlManager > [enablePrettyUrl > true, // 启用 URL美化showScriptName > false, // 隐藏入口文件index.phpenableStrictParsing…

MySql数据库从0-1学习-第三天多表设计学习

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多(多对一)多对多一对一 一对多 需求:根据需求,完成部门和员工表的设计 一对多,很多人会使用外键,…

如何分析 Java 开源项目源码?

准备深入分析一个 Java 开源项目的源码时&#xff0c;可以通过下面这些步骤和技巧&#xff0c;更系统地理解和分析项目源代码&#xff1a; 1. 确定分析目标和范围&#xff1a; 在开始分析之前&#xff0c;明确你的目标&#xff0c;确定你要深入了解的功能或模块。这有助于你有…

零基础转行网络安全,高薪梦想可以实现吗?

零基础转行网络安全&#xff0c;学会网络安全相关知识&#xff0c;可以从事以下岗位&#xff1a; 1、安全运维&#xff1a; 负责服务器及终端设备的维护 负责业务的安全风险评估和漏洞挖掘 负责安全事件的检查和实施 2、渗透测试 负责渗透测试、风险评估工作的实施 提供…

《web应用技术》第三次课后练习

实验目的&#xff1a; 1、springboot入门程序撰写并启动 2、使用postman练习参数的获取。 参考&#xff1a;Day04-10. Web入门-SpringBootWeb-快速入门_哔哩哔哩_bilibili

【星期计算】蓝桥杯

–> 因为这里是结果填空题&#xff0c;我们直接暴力用java自带的BigInteger类。 /*** 试题 A: 星期计算** 本题总分&#xff1a;5 分* 【问题描述】* 已知今天是星期六&#xff0c;请问20的22次方天后是星期几&#xff1f;* 注意用数字 1 到 7 表示星期一到星期日。* * 【答…