北大腾讯打造多模态15边形战士!语言作“纽带”,拳打脚踢各模态,超越Imagebind

AI4Happiness 投稿
量子位 | 公众号 QbitAI

北大联合腾讯打造了一个多模态15边形战士!

以语言为中心,“拳打脚踢”视频、音频、深度、红外理解等各模态。

图片

具体来说,研究人员提出了一个叫做LanguageBind的多模态预训练框架。

语言作为与其它模态之间的纽带,冻结语言编码器,然后用对比学习方法,将各个模态映射到一个共享的特征空间,实现多模态数据的语义对齐。

使用这种方法,模型在5个数据集上的性能拿下新SOTA,在15个zero-shot检索等任务中取得了显著的性能提升,全面超越ImageBind、OpenCLIP。

图片

将各模态与语言绑定

LanguageBind包含三个部分:

多模态编码器(Multi-modal Encoders),语言编码器(Language Encoder),以及多模态联合学习(Multi-modal Joint Learning)。

图片

先来看多模态编码器部分。

除了语言之外的其它模态,研究人员使用24层、1024维的视觉Transformer,具有14的Patch大小。编码器是从OpenCLIP-large初始化的。

深度红外被视为RGB图像,在通道维度上复制3次与RGB图像对齐。

按照ImageBind的方式,音频数据被转换为持续10秒(128个mel-bins)的频谱图,并进行重复和填充。

  • Patch masking

为了解决在编码器中处理所有Token的低效问题,研究人员将图像分成补丁,并通过Mask获取一小部分图片序列,按照MAE的方法进行。

  • LoRA fine-tuning

同时使用LoRA技术来加速微调。对于具有权重矩阵W0∈Rd×k的模态编码器,在学习新的权重矩阵BA时,保持权重矩阵W0不变。

  • Modality extending

将LanguageBind方法扩展到多个(N个)模态的第一步是将数据处理成令牌序列。随后,参数将从OpenCLIP进行初始化。然后通过令牌屏蔽和LoRA微调来训练不同模态的编码器,同时保持语言编码器冻结。最后,将该模态与语言特征空间对齐。

再来看看语言编码器以及多模态联合学习部分。

对于语言编码器,研究人员使用了一个12层的transformer模型,维度为768,初始化来源于OpenCLIP。

对于给定的文本,他们首先使用BPE分词器将单词分割成相对常见的子词。每个子词对应一个唯一的标记,这些标记在一个词嵌入层内嵌入。最终,这些标记被语言编码器编码,以获得文本对数:

图片

其中L表示序列的长度。为了确保跨不同模态的对齐,研究人员采用了对比学习原则。

这种方法的目标是增加配对数据的相似性,将它们带到相同的语义空间,同时减小不配对数据的相似性。研究人员利用对比学习将各个模态与语言绑定在一起。

构建高质量数据集

此外,研究人员还创建了一个名为“VIDAL-10M”的高质量数据集,其中包含1000万个具有对齐视频-语言、红外-语言、深度-语言、音频-语言的数据对,是第一个具有深度和红外模态的大规模视频多模态数据集。

图片

数据集构建方法如下:

图片

VIDAL-10M 构建框架

第一步是生成搜索词数据库,这个过程中,研究人员设计了一种独特的搜索词获取策略,利用来自各种视觉任务数据集的文本数据,包括标签和标题,以构建具有丰富视觉概念和多样性的视频数据集。

第二步是从互联网收集相关视频和音频,并进行一系列过滤处理,以确保数据集的质量和准确性。

这个过程中,研究人员使用了多种过滤方法,包括基于文本的过滤、基于视觉与音频的过滤,以确保数据集中的视频和音频与搜索词相关且质量高。

第三步是进行红外和深度模态生成,以及多视角文本生成和增强

在空间信息增强方面,研究人员采用了OFA模型生成多个关键帧描述,以提升视频内容的空间表达质量。

同时,在时间信息增强方面,将视频内容、标题以及Hashtag标签输入到mPLUG-owl模型中,以获取更为精炼和丰富的时间维度描述。

最后,研究人员运用ChatGPT模型对文本描述进行进一步细化和增强。

综合而言,多视角文本增强涵盖了标题、标签、关键帧描述以及视频描述等多个组成部分,为视频内容提供了全面且详尽的描述。

多个测试拿下SOTA

在测试阶段,大量的实验验证了VIDAL-10M数据集和LanguageBind方法的有效性,在视频、音频以及其它模态理解任务中取得了显著的性能。

图片

LanguageBind在四个数据集上都性能拿下SOTA。

在MSR-VTT上比InterVideo方法高出1.9%,在MSVD上比 InterVideo高出 8.8%,在DiDeMo上比InterVideo高出 6.3%,在ActivityNet上比InterVideo高出 4.4%。

值得注意的是,InterVideo采用了更广泛的训练数据,正表明LanguageBind的有效性。

图片

Zero-Shot视频-文本检索结果

视频-语言、红外-语言、深度-语言和音频-语言Zero-Shot分类,在所有数据集上的准确率均优于ImageBind、OpenCLIP:

图片

Zero-Shot音频-语言检索性能同样优越:

图片

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

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

相关文章

spring cloud alibaba 之哨兵(sentinel)

sentinel (哨兵) 简介 # 官网 - https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_sentinel # github - https://github.com/alibaba/Sentinel/wiki# 简介 - 随着微服务的普及,服务调用的稳定性变得越来…

泛微E9,独立选择框对应数据库表查询

泛微E9,独立选择框对应数据库表查询 文章目录 泛微E9,独立选择框对应数据库表查询步骤一:准备姓名、姓名文本字段:步骤二:获取选择框字段的id:其他 需求描述:假如流程表单有两个字段&#xff0c…

算法-双指针-简单-移动零

记录一下算法题的学习2 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2…

【LeetCode刷题-滑动窗口】--1423.可获得的最大点数

1423.可获得的最大点数 思路: 数组cardPoints的长度为n,由于只能从开头和末尾拿k张卡牌,所以最后剩下的必然是连续的n-k张卡牌,可以通过求出剩余卡牌点数之和的最小值,来求出拿走卡牌点数之和的最大值 算法&#xff…

上位机模块之圆形测量,基于halcon的二次开发

夸克网盘可自取。链接:https://pan.quark.cn/s/ac192950e051 //在此之前可以先浏览2篇博客,分别是序列化与反序列化和ROI绘制获取 https://blog.csdn.net/m0_51559565/article/details/134422834 //序列化与反序列化 https://blog.csdn.net/m0_51559565…

(论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking

文献阅读笔记(分层卷积特征) 简介 题目 Hierarchical Convolutional Features for Visual Tracking 作者 Chao Ma, Jia-Bin Huang, Xiaokang Yang and Ming-Hsuan Yang 原文链接 arxiv.org/pdf/1707.03816.pdf 关键词 Hierarchical convolution…

ubuntu上如何移植thttpd

thttpd的特点 thttpd 是一个简单、小巧、便携、快速且安全的 HTTP 服务器。 简单: 它只处理实现 HTTP/1.1 所需的最低限度。好吧,也许比最低限度多一点。 小: 请参阅比较图表。它还具有非常小的运行时大小,因为它不会分叉并且非…

一道 python 数据分析的题目

python 数据分析的题目。 做题方法:使用 pandas 读取数据,然后分析。 知识点:pandas,正则表达式,py知识。 过程:不断使用 GPT,遇到有问题的地方自己分析,把分析的结果告诉 GPT&am…

【java学习—十四】java动态代理(6)

文章目录 1. 相关概念2. 步骤3. 举例 问题: 假设一个java项目有100个java类,每个java有10个方法,这总共有1000个方法,现在有这样一个需求,需要在每个java方法加上2句话:在方法执行前输出这个方法开始执行&a…

【Web 实战】记一次攻防实战

经典开局一个登录框 由于漏洞应该还未修复。对于数据和相关网址打个码见谅一下 常规思路(爆破) 常规操作进行一波 尝试弱口令然后开始爆破 对于此种有验证码的爆破,可以借用一个bp插件。 captcha-killer-modified-jdk14.jar 具体使用我就…

【数据结构】希尔排序(最小增量排序)

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

Linux下SPI环回测试

文章目录 前言一、回环测试代码1.1 头文件 spidev.h2.2 c代码 spidev_test.c 二、 编译验证2.1 交叉编译2.2 测试 前言 linux下做spi回环测试 一、回环测试代码 1.1 头文件 spidev.h /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /** include/linux/spi…