上海AI lab提出VideoChat:可以与视频对话啦

news2025/1/24 7:12:38
夕小瑶科技说 原创
作者 | 小戏、ZenMoore

视频相比语言、图像,是更复杂更高级的一类表征世界的模态,而视频理解也同样是相比自然语言处理与计算机视觉的常见工作更复杂的一类工作。在当下大模型的洪流中,自然而然的想法就是大规模语言模型(LLMs)可以基于语言训练的强大理解推理能力,完成视频理解的工作吗?现在答案到来了,上海 AI Lab 提出了以 Chat 为中心的端到端的视频理解系统 VideoChat,集成了视频基础模型与 LLMs,并且在如空间、时间推理,事件定位、因果推断等多个方面都表现十分出色

区别于现有多模态大模型针对视频输入的处理方法,即首先文本化视频内容再接入大模型利用大模型自然语言理解的优势,这篇论文从模型角度以可学习的方式集成了视频和语言的基础模型,通过构建视频基础模型与 LLMs 的接口,通过对接口进行训练与学习从而完成视频与语言的对齐。这样一种方式可以有效的避免视觉信息、时空复杂性信息丢失的问题,第一次创立了一个高效、可学习的视频理解系统,可以实现与 VideoChat 对视频内容的有效交流。

论文题目:

VideoChat : Chat-Centric Video Understanding

论文链接:

https://arxiv.org/pdf/2305.06355.pdf

代码地址:

https://github.com/OpenGVLab/Ask-Anything

各个大模型的研究测试传送门

阿里通义千问传送门:

https://tongyi.aliyun.com

百度文心一言传送门:

https://yiyan.baidu.com

ChatGPT传送门(免墙,可直接测试):

https://yeschat.cn

GPT-4传送门(免墙,可直接测试,遇到浏览器警告点高级/继续访问即可):

https://gpt4test.com

如果要问大模型有什么样的能力,那我们可能洋洋洒洒从理解推理到计算判断都可以列举许多,但是如果要问在不同场景下如何理解大模型的不同作用,那有可能就是一个颇为玄妙的“艺术”问题。在 VideoChat 中,论文作者将大模型理解为一个视频任务的解码器,即将视频有关的描述或更进一步的嵌入理解为人类可理解的文本。这一过程可以被形式化的理解为:

[ E ] i j = f i m g j ( I i )      o r      E j = f v i d j ( V )    w . r . t    V = [ I i ] i = 1 , 2 , . . . , T , [E]_i^j=f_{img}^j(I_i)\ \ \ \ or\ \ \ \ E^j=f_{vid}^j(V)\ \ w.r.t\ \ V=[I_i]_{i=1,2,...,T}, [E]ij=fimgj(Ii)    or    Ej=fvidj(V)  w.r.t  V=[Ii]i=1,2,...,T,

这里 f i m g f_{img} fimg f v i d f_{vid} fvid 表示一个图片或视频的模型,通过将 I(图像) 与 V(视频)输入到模型中,得到视频或图像的嵌入表示 E,而一个解码的过程,就是:
W t a = f l l m ( E ∣ W ≤ t q , W < t a ) W_t^a=f_{llm}(E|W^q_{\le t},W_{ < t}^a) Wta=fllm(EWtq,W<ta)

其中 W q W^q Wq W a W^a Wa 分别表示在第 t 轮中 LLM 的回答和在 t 轮前用户提出的所有问题及答案, f l l m f_{llm} fllm 即一个 LLM 模型。传统上针对多模态大模型的解决方法,一般是一种将视频信息文本化的方法,通过将视频序列化为文本,构成 Video Description,再输入到大模型之中,这种文本流可以很好的适应理解类的工作,但是却对如时间、空间感知这类任务表现不佳,因为几乎是必然的,将视频信息文本化后很容易使得这类基础信息出现丢失。而因此论文试图完成一个端到端的一体化的方法,直接提取视频的嵌入信息,如下图对比所示:

通过整合这样两种视频架构,即整合 VideoChat-Text 与 VideoChat-Embed 得到的 Video Context 输入到大模型之中,以获得更全面的视频信息理解能力,如在上图的任务中,用户提问“他是在唱、跳和 Rap 吗”,VideoChat 回复“不是,他是在打篮球(和跳舞)”

对于 VideoChat-Text 部分,论文作者详细的解构了一个视频包含的内容,比如动作、语音、对象及带有位置注释的对象等等,基于这些分析,VideoChat-Text 模块综合利用各种视频与图像模型获得这些内容的表征,再使用 T5 整合模型输出,得到文本化的视频之中,使用如下图所示的模板完成对 LLMs 的输入:

而对于 VideoChat-Embed 则采用如下架构将视频和大模型与可学习的 Video-Language Token Interface(VLTF)相结合,基于 BLIP-2 和 StableVicuna 来构建 VideoChat-Embed,具体而言,首先通过 GMHRA 输入视频,同时引入图像数据进行联合训练并接入一个经过预训练的 Q-Former,完成视频的 Embedding。

整个训练过程可以分为两个阶段,分别是对齐与微调。在对齐阶段,作者引入了 25M 个视觉-文本对针对接口进行微调,整体的输入提示如下:

而在微调阶段,论文自行构建并开源了包含 7k 个详细的视频描述与图像描述以及 4k 个视频对话,3k 个图像描述,2k 个图像对话,2k 个图像推理的指令数据集对 VideoChat 完成微调

对比 LLaVa、miniGPT-4 以及 mPLUG-owl,论文对 VideoChat 的多方面能力进行了定性研究。其中,在空间感知与分析中,VideoChat 可以识别日式服装来推断出相应的音乐,并且确定视频中的人数。这即是证明了 VideoChat 识别捕获视觉元素并给予视觉元素进行分析的能力。

在时间感知与分析中,VideoChat 可以识别出视频中做瑜伽的动作,甚至给出了它摔倒可能性的判断并进行提醒了安全问题

在非正式推断中,VideoChat 也可以解释“为什么这个视频是好笑的”这一问题,并且解释的也符合我们对视频好笑的一些抽象判断,如不协调,突然性等等

而对比最近的基于图像的多模态对话系统,VideoChat 可以正确的识别场景,而其他系统则错误的将对话环境视为室内,这充分的体现了 Video-Chat 在空间感知方面非常强大的比较优势。

这样一个开源的视频理解框架可以为视频理解这样一个目前还没有什么非常成熟的解决方案的问题铺好道路,显然,将视频信息与文本信息对齐,大规模语音模型的优秀能力是可以允许他们理解视频信息。而如果将大模型看作一个有推理、理解能力的黑盒,视频理解的问题就变成了如何对视频进行解码以及与文本对齐的问题,这可以说是大模型为这一领域带来的“提问方式”的改变

但是针对我们期望的成熟的视频理解器,这篇工作仍然具有局限性,比如 VideoChat 还是难以处理 1 分钟以上的长视频,当然这主要是来自于大模型上下文长度的限制,但是在有限的上下文长度中如何更好的压缩视频信息也成为一个复杂的问题,当视频时长变长后,系统的响应时间也会对用户体验带来负面影响。另外总的来说,这篇论文使用的数据集仍然不算大,因此使得 VideoChat 的推理能力仍然停留在简单推理的层级上,还无法完成复杂一点的推理工作,总之,尽管 VideoChat 还不是一个尽善尽美的解决方案,但是已然可以为当下视频理解系统增添重要一笔,让我们期待基于它的更加成熟的工作吧!

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

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

相关文章

子矩形计数(多少个面积为k的全1子矩阵)【思维,两个一维数组相乘得到矩阵,计算一维数组中长度为x的全1子段】

3617. 子矩形计数&#xff08;多少个面积为k的全1子矩阵&#xff09; 输入样例1&#xff1a; 3 3 2 1 0 1 1 1 1输出样例1&#xff1a; 4输入样例2&#xff1a; 3 5 4 1 1 1 1 1 1 1 1输出样例2&#xff1a; 14#include <bits/stdc.h> using namespace std; #define …

Redisson锁的分析

文章目录 一、分布式锁概念1、实现思路2、出现死锁问题如何避免死锁问题 锁过期和释放当前不属于当前线程的锁解决不是加锁线程释放锁锁的过期时间如何解决 二、Redisson分布式锁Redis的部署方式对锁的影响集群模式Redlock实现高可靠的分布式锁 三、代码分析V1代码无锁V2代码单…

【C++从0到王者】第二站:类和对象(中)赋值运算符重载

文章目录 一、运算符重载1.运算符重载的使用2.运算符重载的注意事项 二、赋值运算符重载1.复制拷贝与拷贝构造2.赋值运算符重载的格式3.赋值运算符重载的实现4.赋值运算符重载的注意事项 一、运算符重载 1.运算符重载的使用 当我们实现一个日期类的时候&#xff0c;我们有时候…

Angular开发之——Angular打包部署项目(04)

一 概述 ng build 构建应用lite-server介绍及安装lite-server部署应用IIS管理器部署应用 二 ng build 构建应用 2.1 执行如下指令构建应用 ng build2.2 构建完成后&#xff0c;会创建一个 dist 文件夹 2.3 直接打开index.html会出错(需要借助于服务器部署) 三 lite-server介…

(二)PUN 2基本教程

一、介绍 PUN 基础教程是一个基于 Unity 的教程。我们将使用 Photon Cloud 开发第一个简单的 PUN 2 多人游戏。目标是同步每个玩家的动画角色、健康值和基本光线投射。 1.概述 本教程将从一个空项目开始&#xff0c;逐步指导您完成整个创建过程。在此过程中&#xff0c;将解释…

Halcon 形态学 开发案例 (开运算opening(先腐蚀再膨胀)、闭运算closing(先膨胀再腐蚀))

文章目录 1 形态学概念2 开运算 opening2.1 算子介绍2.2 开运算 开发案例3 闭运算 closing3.1 算子介绍3.2 闭运算 开发案例4 示例原图1 形态学概念 图像的形态学处理是对图像的局部像素进行处理,用于从图像中提取有意义的局部图像细节。 通过改变局部区域的像素形态,以对目…

数据结构与算法基础知识

线性结构篇 什么是数据结构与算法 回顾我们之前的C语言程序设计阶段&#xff0c;我们已经接触过基本数据类型&#xff0c;并且能够使用结构体对数据进行组织&#xff0c;我们可以很轻松地使用一个结构体来存放一个学生的完整数据&#xff0c;在数据结构学习阶段&#xff0c;我…

Linux篇1

Linux 1. 概述1.1 内容概要1.2 Linux发展1.3 Linux对比Windows 2. 虚拟机下安装CentOS系统2.1 下载安装VMware2.1.1 官网下载VMware软件2.1.2 安装VMware 2.2 下载CentOS镜像2.3 创建虚拟机&#xff08;在虚拟机中安装CentOS&#xff09;2.3.1 创建虚拟硬件环境2.3.2 安装CentO…

从匆匆的一瞥,到两小时泯灭(SQL注入)

从匆匆的一瞥&#xff0c;到两小时泯灭&#xff08;SQL注入&#xff09; 惊鸿一瞥用户名提示jsBase64.js文件手搓轮子&#xff08;python&#xff09;反复搓轮子&#xff08;python-tamper&#xff09; 惊鸿一瞥 昨天晚上分别开了我相识已久的女友&#xff0c;再度回到了单身狗…

暗月内网靶场渗透笔记

简介 靶场下载地址&#xff1a; 靶场地址&#xff1a; https://pan.baidu.com/s/12pSYxSU-ZmurQ9–GFiaXQ 提取码: 3p47虚拟机网络设置&#xff1a; 靶场拓扑图&#xff1a; 靶机账号密码&#xff1a; 信息收集 内网扫描 靶机就在本地&#xff0c;直接进行本地内网扫描即可…

朋友去华为面试,轻松拿到30K的Offer,羡慕了......

最近有朋友去华为面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

OpenGL高级-几何着色器

几何着色器的介绍 在顶点和片段着色器之间有一个可选的着色器&#xff0c;叫做几何着色器(Geometry Shader)。几何着色器以一个或多个表示为一个单独基本图形&#xff08;primitive&#xff09;的顶点作为输入&#xff0c;比如可以是一个点或者三角形。几何着色器在将这些顶点发…

C++14中lambda表达式新增加的features的使用

lambda表达式是在C11中引入的&#xff0c;它们可以嵌套在其它函数甚至函数调用语句中&#xff0c;C11中lambda表达式的使用参考&#xff1a;https://blog.csdn.net/fengbingchun/article/details/52653313 lambda表达式语法如下&#xff1a;除capture和body是必须的&#xff0c…

索引的作用与结构(数据库)

目录 一、索引概述 1、什么叫索引 2、索引的作用 二、SQL Server索引下的数据组织结构 1&#xff0e;堆集结构 2&#xff0e;聚集索引结构 3&#xff0e;非聚集索引 4&#xff0e;扩展盘区空间的管理 一、索引概述 1、什么叫索引 数据库中的索引与书籍中的索引类似&…

【数据分享】2014-2023年全国各监测站点的逐时、逐日、逐月、逐年AQI数据

空气质量的好坏反映了空气的污染程度&#xff0c;在各项涉及城市环境的研究中&#xff0c;空气质量都是一个十分重要的指标。空气质量是依据空气中污染物浓度的高低来判断的。 我们发现学者王晓磊在自己的主页里面分享了2014年5月以来的全国范围的到站点&#xff08;全国有约2…

小实验:关于期望的乘法性质

小实验&#xff1a;关于期望的乘法性质 引言个人疑惑验证过程样本生成实验过程 附&#xff1a;完整代码 引言 本节通过代码实现期望的乘法性质。 个人疑惑 在数学期望的定义中&#xff0c;有一条随机变量期望的乘法性质&#xff1a; 当随机变量 X , Y \mathcal X,\mathcal Y…

spring如何处理循环依赖

何为循环依赖 所谓的循环依赖&#xff0c;就是两个或者两个以上的bean互相依赖对方&#xff0c;最终形成闭环。比如“A对象依赖B对象&#xff0c;而B对象也依赖A对象”&#xff0c;或者“A对象依赖B对象&#xff0c;B对象依赖C对象&#xff0c;C对象依赖A对象”&#xff1b;类…

MySQL笔记-多表查询

本文标签 : 多表查询 事务四大特性 并发事务问题 事务隔离级别 文章目录 目录 文章目录 一、多表查询 1.多表关系 2.多表查询概念 3.多表查询的分类 4.内连接 5.外连接 6.自连接 7.联合查询 8.子查询 1.标量子查询 2.列子查询 3.行子查询 4.表子查询 9.多表查询案例练习 二…

springboot+vue汉服文化平台网站(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的汉服文化平台网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

初阶数据结构之带头+双向+循环链表增删查实现(三)

文章目录 [TOC](文章目录) 前言一、带头双向循环链表的初始化1.1带头双向循环链表的结构体定义1.2初始化代码的实现 二、带头双向循环链表的增功能实现2.1头插代码的实现2.2尾插代码的实现 三、带头双向循环链表的打印功能实现3.1打印代码的实现 四、带头双向循环链表删功能实现…