用于理解视频的基础视觉编码器VideoPrism

news2024/9/19 9:54:04

人工智能咨询培训老师叶梓 转载标明出处

如何让机器有效地理解和处理视频内容,一直是计算机视觉领域的一个挑战。最近,Google Research的研究人员提出了一种名为VideoPrism的新型视频编码器,旨在通过单一的冻结模型处理多样化的视频理解任务。以往的模型往往在处理注重外观的任务和以运动为中心的推理时难以平衡,导致在多个基准测试中落后于特定任务的专用模型。VideoPrism通过统一的模型,能够处理包括分类、定位、检索、字幕生成和问题回答等在内的广泛视频理解任务。

VideoPrism作为一个通用视频编码器的能力

方法

VideoPrism的预训练数据由两部分组成:3600万个带手动标注字幕的高质量视频片段,以及5820万个带有噪声并行文本的视频片段。这些数据分别来自Anonymous-Corpus #1和其它几个数据集,如WTS-70M、YT-Temporal-180M等。这些视频片段不仅数量庞大,而且涵盖了从日常生活到科学观察的多个领域。

尽管3600万视频-字幕对是迄今为止用于视频基础模型(ViFMs)的最大数据集,但与用于图像基础模型(FMs)的图像-语言数据相比,仍然小了一个数量级。因此,研究团队还收集了大量通过自动语音识别(ASR)、元数据和大型多模态模型生成的噪声文本的视频-文本数据。

另外为了避免模型过度适应特定的评估基准,VideoPrism的预训练数据有意避免使用任何评估基准(如Kinetics)的训练集。同时,为了确保没有数据泄露,预训练语料库经过仔细的去重处理,与本文使用的33个评估基准中的所有视频进行了对比。

VideoPrism预训练语料库的组成,包括不同数据集的视频和剪辑数量以及它们的来源和字幕质量

VideoPrism的模型架构基于标准的Vision Transformer(ViT),并采用了ViViT的时空分解设计。然而,与ViViT不同,VideoPrism去除了空间编码器后立即进行的全局平均池化层,这样做的目的是保留输出令牌序列中的时空维度,以便于需要细粒度特征的下游任务,例如时空动作定位。

VideoPrism有两种模型配置:VideoPrism-g和VideoPrism-B。VideoPrism-g使用具有10亿参数的ViT-giant网络进行空间编码,而VideoPrism-B则是使用ViT-Base网络的较小变体。

VideoPrism预训练的配置,包括优化器、学习率、训练迭代次数等

VideoPrism的训练算法旨在利用第前面提到的视频-文本对和视频数据,通过可扩展的方式训练VideoPrism,使其成为一个能够捕捉视频中外观和运动语义的基础视频编码器。训练流程包括两个阶段:视频-文本对比训练和掩蔽视频建模。

VideoPrism的两阶段预训练过程:第一阶段是视频-文本对比训练,第二阶段是遮蔽视频建模

STAGE 1: 视频-文本对比训练

在第一阶段,通过对比学习对齐视频编码器和文本编码器,使用所有的视频-文本对。这一阶段的目标是最小化小批量中所有视频-文本对的相似性得分的对称交叉熵损失。初始化空间编码模块时使用了CoCa的图像模型,并在预训练中加入了WebLI数据集。视频编码器的特征在损失计算前通过多头注意力聚合器(MAP)进行聚合。这使得视频编码器能够从语言监督中学习丰富的视觉语义,并为第二阶段的训练提供语义视频嵌入。

STAGE 2: 掩蔽视频建模

第二阶段的训练专注于从视频数据中学习外观和运动信息。在第一阶段的基础上,进一步训练视频编码器,使用改进的掩蔽视频建模方法。这些改进包括:

  1. 令牌洗牌方案:为了防止解码器在预测掩蔽令牌时仅复制和粘贴未掩蔽的令牌,从而简化任务,研究团队引入了一种新颖的令牌洗牌方案。在将编码器的输出令牌序列馈送到解码器之前,对其进行随机洗牌,解码器在洗牌后的序列中加入位置嵌入。

  2. 全局-局部蒸馏:为了解决在第二阶段训练中仅使用掩蔽建模损失可能导致的外观重点任务性能下降的问题,研究团队添加了额外的损失,让第二阶段模型使用第一阶段教师模型的可见令牌来蒸馏完整视频的全局嵌入。

这种双阶段训练方法不仅提高了模型在多个视频理解基准上的性能,还确保了VideoPrism能够在广泛的任务中保持出色的泛化能力。

实验

VideoPrism在多种视频中心理解任务上的评估,旨在证明其能力和泛化性。这些任务被分为四大类:(1) 一般视频理解,包括分类和时空定位;(2) 零样本视频-文本检索;(3) 零样本视频字幕生成和问答;(4) 科学领域的计算机视觉。

分类和时空定位

VideoPrism与最先进的基础模型(FMs)在视频GLUE(Yuan等人,2023)上进行了比较,这是一个视频唯一的理解基准。视频GLUE通过四种适应方法在八个标志性数据集上评估FMs,代表以外观为重点的动作识别(VC (A))、富含动作的动作识别(VC (M))、多标签视频分类(VC (ML))、时间动作定位(TAL)和时空动作定位(STAL)。此外,该基准引入了视频GLUE分数(VGS),考虑适应成本和性能之间的权衡,为FMs在视频唯一理解任务上的能力提供全面视图。

数据集:视频GLUE中的八个数据集包括Kinetics400(K400)、Moments-in-Time(MiT)、Something-Something v2(SSv2)、Diving48(D48)、Charades、ActivityNet v1.3、Atomic Visual Actions(AVA)和AVA-Kinetics(AVA-K)。

主要结果:表2显示了在视频GLUE上的冻结骨干网络结果。VideoPrism在所有数据集上都大幅度超越了基线模型。此外,将VideoPrism的底层模型大小从ViT-B增加到ViT-g显著提高了性能。没有基线模型能在所有基准测试中排名第二,这表明以前的可能针对视频理解的某些方面进行了开发,而VideoPrism在这一广泛的任务范围内持续改进。这一结果暗示VideoPrism将各种视频信号整合到一个编码器中:多粒度的语义、外观与运动线索、时空信息,以及对不同视频来源(例如,网络视频与脚本化表演)的鲁棒性。

零样本视频-文本检索和分类

为了使VideoPrism具备零样本视频-文本检索和视频分类的能力,研究团队遵循LiT(Zhai等人,2022b)的方法来学习一个文本编码器,该编码器生成的文本嵌入与VideoPrism中的相应视频嵌入相匹配。选择LiT文本编码器是为了反映第一阶段训练中的编码器,并在视频编码器上附加一个MAP头。LiT调整是在第一阶段的相同预训练数据上进行的。

数据集:在MSRVTT、VATEX和ActivityNet上评估VideoPrism的零样本视频-文本检索性能。对于零样本视频分类任务,实验涉及Kinetics-400、Charades、SSv2-Temporal和SSv2-Events,以及NExT-QA的ATP-Hard子集。SSv2和NExT-QA(ATP-Hard)分别专注于运动和时间推理。

主要结果:表3和表4分别总结了视频-文本检索和视频分类的结果。VideoPrism在大多数基准测试中都设定了新的最高标准,并且在具有挑战性的数据集上取得了显著的改进(例如,在ActivityNet上提高了9.5%,在SSv2-Events上提高了4.4%,在Charades上提高了6.6 mAP)。VideoPrism-B的大多数结果实际上比现有的更大规模模型更好。此外,VideoPrism与在领域内数据和额外模态(例如音频)上预训练的模型相比,性能相当或更好。这些在零样本检索和分类任务中的改进展示了VideoPrism的强大泛化能力。

零样本视频字幕生成和问答

VideoPrism在生成性视频-语言任务,即视频字幕生成和视频问答(QA)上的能力进一步得到了评估。在这些任务中,研究团队将VideoPrism与语言解码器PaLM-2配对。为了连接这两个模型,引入并训练了几个连接层,同时保持VideoPrism和语言解码器冻结状态。在零样本配置下,对视频字幕和QA基准进行评估。值得注意的是,模型并没有针对字幕生成和QA任务分别进行调整。

数据集:在标准的零样本视频字幕数据集上评估模型,包括MSRVTT、VATEX和YouCook2,以及视频QA基准,包括MSRVTT-QA、MSVD-QA和NExT-QA。对于视频QA,为了确保模型输出答案的长度和风格与真实答案匹配,采用了Flamingo的零样本方法,并使用下游任务训练集中的两镜头文本提示。另外对于MSRVTT-QA和MSVD-QA,实验采用了封闭词汇表评估配置。

主要结果:表5和表6分别展示了零样本视频字幕生成和QA的结果。尽管模型架构简单且适配器参数数量少,但VideoPrism模型在冻结视觉和语言模型的方法中表现最佳,除了在VATEX上。结果表明,VideoPrism编码器能够很好地泛化到视频到语言的生成任务。

科学领域的计算机视觉任务

与通常关注人类中心数据的视频分析基准不同,研究团队在科学数据集上的一系列视频上评估了VideoPrism,以评估其泛化能力和在科学应用中的潜在用途。这些数据集涵盖了行为学、行为神经科学、认知科学和生态学等领域。

数据集:专注于大规模视频数据集,这些数据集通过科学实验进行了领域专业知识的注释。数据集包括苍蝇、老鼠、黑猩猩和肯尼亚动物的视频。除了ChimpACT数据集用于时空动作定位外,所有数据集都用于视频行为分类。使用之前在这些数据集上定义的标准数据分割,并使用mAP度量标准进行评估,KABR使用宏观准确率。

主要结果:表7显示了VideoPrism与领域专家模型和最先进的方法在科学领域的计算机视觉基准上的比较。使用共享冻结编码器的通用ViFMs实现的性能与针对特定任务定制的领域特定模型相当或更好。特别是,VideoPrism通常表现最佳,并且用基础规模模型就超过了领域专家模型。扩展到大规模模型在所有数据集上进一步提高了性能。这些结果表明,ViFMs有潜力显著加速各个领域的视频分析。

研究团队还进行了消融研究,旨在评估VideoPrism背后的主要驱动力,包括收集预训练数据的策略和努力,以及通过两阶段预训练框架、全局蒸馏和令牌洗牌改进掩蔽自动编码的预训练方法的有效性。

首先,在较小规模的公共可用语料库(总共1.5亿个视频片段)上训练视频-文本对比基线,包括WTS-70M、YT-Temporal-180M和InternVid。然后,逐步向基线添加主要组件(更大的预训练数据、两阶段训练、损失和令牌洗牌),以观察模型性能的演变。还尝试将对比损失与掩蔽自动编码在一个阶段中结合,以突出两阶段训练流程的有效性。

消融结果:图4展示了消融结果,观察到在运动丰富的SSv2和外观驱动的K400上性能演变轨迹不同。VideoPrism在SSv2上的一致改进表明了数据策划和模型设计努力对于促进视频中的运动理解的有效性。尽管对比基线在K400上已经取得了竞争性结果,但提出的全局蒸馏和令牌洗牌进一步提高了准确性。

VideoPrism的一个局限性是它在预训练中使用了带有噪声的文本的视频语料库。这种噪声文本可能不完整且有偏见,可能会影响模型性能。另外长视频理解仍然是一个挑战,因为目前的焦点是作为VideoPrism输入采样16帧的短视频片段。未来的工作可以利用编码器作为长视频理解系统的一部分。虽然研究团队提倡冻结骨干网络的评估,但有些场景更有利于端到端微调和参数高效适应。尽管存在这些局限性,结果表明VideoPrism对一系列现实世界视频理解任务的潜在影响。

论文链接:https://arxiv.org/abs/2402.13217

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

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

相关文章

风云崛起之拉氏变换和拉式逆变换

图像的分割写出来了,但是写的不好,暂时先不发了。这两天小y想在把拉式变换的内容写出来,小y最近再看信号和电路,需要复习数学,所以把这点写出来。 首先要推出分布积分的公式,我们知道积分和微分为逆运算&am…

纯css实现多行文本右下角最后一行展示全部按钮

未展开全部&#xff1a; 展开全部&#xff1a; 综上演示按钮始终保持在最下方 css代码如下&#xff1a; <div class"info-content"><div class"info-text" :class"!showAll ? mle-hidden : "><span class"show-all"…

STM32-定时器-定时器中断-PWM调光

1、TIM 定时器 定时器是一种电子设备或软件组件&#xff0c;用于在预定时间后触发一个事件或操作。它可以基于时钟信号或其他周期性信号来工作&#xff0c;并且可以用来测量时间间隔、生成延时、触发中断等。 时钟信号 时钟信号是一种周期性的电信号&#xff0c;用于同步电路中…

如何检查端口占用:netstat和lsof指令

在网络故障排查和系统管理中&#xff0c;检查端口占用情况是一项常见且重要的任务。本文将详细介绍如何使用 netstat 和 lsof 这两个强大的工具来检查端口占用和相关服务。 1. 使用 netstat 查看端口占用 netstat (network statistics) 是一个用于显示网络连接、路由表、接口…

Flutter 学习 一部分注意点记录

使用AndroidStudio进行开发 假设你已经配置好Flutter和dart的SDK. 创建一个可执行dart文件 如果需要直接新建一个dart文件来运行&#xff0c;可以点击 File->New->New Flutter Project &#xff0c;下面是接下来弹出的新建项目弹窗&#xff0c;选中左边的Dart&#xff…

SpringBoot 整合 RabbitMQ 实现延迟消息

一、业务场景说明 用于解决用户下单以后&#xff0c;订单超时如何取消订单的问题。 用户进行下单操作&#xff08;会有锁定商品库存、使用优惠券、积分一系列的操作&#xff09;&#xff1b;生成订单&#xff0c;获取订单的id&#xff1b;获取到设置的订单超时时间&#xff0…

python语言day5 MD5 json

md5&#xff1a; python提供了内置的md5加密功能&#xff0c;使用md5模拟一个小项目&#xff1a; 注册&#xff1a; 启动py程序&#xff0c;在控制台界面提示用户输入用户名及密码&#xff1b; 使用md5加密 密码&#xff1b; 创建txt文件记录输入的用户名 和密文。 登录&…

访问网站显示不安全打不开怎么办如何处理

当访问网站时浏览器提示“不安全”&#xff0c;这通常是由于多种原因造成的。下面是一些常见的原因及其解决办法&#xff1a; 未启用HTTPS协议 如果网站仅使用HTTP协议&#xff0c;数据传输没有加密&#xff0c;会被浏览器标记为“不安全”。解决办法是启用HTTPS协议&#xff…

vue3-02-vue3中的组件通信

目录 组件通信一、vue3组件通信和vue2的区别二、父子通信2.1 props通信1&#xff09;父→子传递数据&#xff08;父组件向子组件传递数据&#xff09;2&#xff09;子→父传递数据 2.2 v-model1&#xff09;v-model的本质2&#xff09;给modelValue起别名3&#xff09;$event 2…

【资源】wordpress 子比主题

简介 子比主题是一款功能强大的WordPress主题模板&#xff0c;支持社区论坛、商城、支付、古腾堡编辑器等多种功能。很多资源类网站都是基于此搭建的。搭建后的效果基本上和官网一致&#xff0c;可查看官网的演示效果。 官方网站&#xff1a;https://www.zibll.com/ 如要获取…

精酿啤酒的酿造过程 你喝的不仅仅是酒

大家下午好呀&#xff01;今天我要带大家一起探索精酿啤酒的神秘世界&#xff01;&#x1f31f;&#x1f31f; 第一步&#xff1a;原料准备 精酿啤酒的四大原料&#xff1a;麦芽、啤酒花、水和酵母。 别小看这些原料&#xff0c;它们的品质直接决定了啤酒的风味。&#x1f33e;…

网络协议七 应用层 HTTP 协议

应用层常见的协议 HTTP协议 一. 如何查看我们的http 协议全部的内容有哪些呢&#xff1f; 一种合理的方法是 通过 wireshark 软件&#xff0c;找到想要查看的HTTP --->追踪流--->HTTP流 来查看 结果如下&#xff1a;红色部分 为 发送给服务器的&#xff0c;蓝色部分为服…

【Qt开发】QtCharts图表——在ui上添加QChartView控件并进行绘图配置

【Qt开发】QtCharts图表——在ui上添加QChartView控件并进行绘图配置 文章目录 控件安装和模块导入在ui上添加QChartView控件QChartView图表配置附录&#xff1a;C语言到C的入门知识点&#xff08;主要适用于C语言精通到Qt的C开发入门&#xff09;C语言与C的不同C中写C语言代码…

Stable Diffusion 必备插件推荐,菜鸟轻松成高手!

前言 一个刚学AI绘画的小菜鸟如何快速成为Stable Diffusion高手&#xff1f;答案就是SD插件。 只要学会使用SD的各种插件&#xff0c;帮你写正向和负向提示词&#xff0c;修复人脸/身体/手指&#xff0c;高清放大图片&#xff0c;指定人物pose&#xff0c;图片微调等等都可以…

YOLO系列算法解析

一、深度学习算法概述 1、不同阶段算法优缺点分析 One-stage: 优点&#xff1a;速度非常快&#xff0c;适合做实时监测任务 缺点&#xff1a;效果通常不好 2、yolo评价指标 yolo评价指标&#xff1a;map和fps Map指标&#xff1a;综合衡量检测效果 精度&#xff1a;识别准确率…

代码随想录 day 37 动态规划

第九章 动态规划 part05 力扣上没有纯粹的完全背包的题目&#xff0c;我在卡码网上制作了题目&#xff0c;大家可以去做一做&#xff0c;题目链接在下面的文章链接里。 后面的两道题目&#xff0c;都是完全背包的应用&#xff0c;做做感受一下 完全背包 视频讲解&#xff1a…

这些错误都没遇到过,还敢说你做过自动化测试?!

在执行冒烟测试、回归测试或多浏览器兼容性测试时&#xff0c;利用web自动化测试可以显著节省人力成本&#xff0c;因此web自动化测试的价值非常大。然而&#xff0c;任何从事过web自动化测试的人都会有这样的体会:写自动化代码相对简单&#xff0c;但维护的成本却非常高。一日…

若依服务器上云部署

准备条件&#xff1a; 安装好mysql和redis并配置好密码。 1.安装JDK&#xff0c;我这里使用的是1.8 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11…

40 - asctime()函数

文章目录 1 函数原型2 参数3 返回值4 示例4.1 示例14.2 示例2 1 函数原型 asctime()&#xff1a;时间类型转换&#xff0c;函数原型如下&#xff1a; char* asctime (const struct tm * timeptr);ctime()库描述如下&#xff1a; Convert tm structure to string 1. Interpre…

MySQL4 多表查询 内连接

内连接 多表查询内连接 多表查询 数据准备 CREATE DATABASE db4; USE db4; -- 创建部门表 create table if not exists dept(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名字 );-- 创建员工表 create table if not exists emp(eid varchar(20) pr…