IMAGEBIND: One Embedding Space To Bind Them All论文笔记

news2024/9/27 9:28:40
论文https://arxiv.org/pdf/2305.05665.pdf
代码https://github.com/facebookresearch/ImageBind

1. Motivation

  • 像CLIP这一类的方法只能实现Text-Image这两个模态的 Embedding 对齐,本文提出的ImageBind能够实现六个模态(images, text, audio, depth, thermal, and IMU data)之间的联合Embedding空间对齐。
  • 本文的多模态之间的对齐也不需要专门制作一个数据集,这个数据集中的每个sample都有六种模态的对应数据,这是不现实的,成本太高。本文提出的ImageBind只需要将所有模态全部对齐到Image Embedding,uses pairs of modalities (I, M), where I represents images and M is another modality。

2. Method

2.1 数据构造

  • (Image-Text) pairs from web-scale (image, text) paired data,参考《Learning transferable visual models from natural language supervision》;
  • (video, audio) pairs from the Audioset dataset;
  • (image, depth) pairs from the SUN RGB-D dataset;
  • (image, thermal) pairs from the LLVIP dataset;
  • (video, IMU) pairs from the Ego4D dataset;

Since SUN RGB-D and LLVIP are relatively small, we follow [21] and replicate them 50× for training

2.2 align pairs of modalities to image

给定一个 ( I i , M i ) (I_i, M_i) (Ii,Mi) pair, L i L_i Li 是image, M i M_i Mi 是其他模态的数据:

在这里插入图片描述

损失函数采用InfoNCE loss:

在这里插入图片描述

In practice, we use a symmetric loss L I , M + L M , I L_{I,M} + L_{M,I} LI,M+LM,I.

最终,We observe an emergent behavior in the embedding space that aligns two pairs of modalities (M1, M2) even though we only train using the pairs (I, M1) and (I, M2).

2.3 模型细节

  • Image Encoder: Vision Transformer (ViT)
  • Video Encoder: Vision Transformer (ViT) , temporally inflate the patch projection layer of the ViT and use 2 frame video clips sampled from 2 seconds. 参考《OmniMAE: Single Model Masked Pretraining on Images and Videos》
  • Audio Encoder:ViT-B,convert a 2 second audio sampled at 16kHz into spectrograms using 128 mel-spectrogram bins. As the spectrogram is also a 2D signal like an image, we use a ViT with a patch size of 16 and stride 10。参考《AST: Audio Spectrogram Transformer》
  • Thermal and Depth Encoder:ViT-S ,treat thermal images and depth images as one-channel images
  • IMU Encoder:extract the IMU signal consisting of accelerometer and gyroscope measurements across the X, Y , and Z axes. We use 5 second clips resulting in 2K time step IMU readings which are projected using a 1D convolution with a kernel size of 8.
    The resulting sequence is encoded using a Transformer
  • Text Encoder:follow the text encoder design from CLIP。

所有模态采用不同的Encoder,最后每一个Encoder后面加一个linear projection head讲所有的模态Embedding编码成d维。

为了降低训练复杂度,作者采用 pretrained vision (ViT-H 630M params) and text encoders (302M params) from OpenCLIP。

3. 实验

3.1 Emergent zero-shot classification

作者在论文中多次强调了ImageBind类似CLIP的Zero-Shot分类能力,但是ImageBind具有跨模态的Zero-Shot分类能力,配合一些特定任务的下游模型,也可以做到开放词汇检测,如下:

在这里插入图片描述

3.2 Embedding space arithmetic (Embedding 空间算术)

在这里插入图片描述

3.3 模态对齐能力随着视觉模型大小变大而提升

在这里插入图片描述

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

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

相关文章

进阶指针(一)

✨博客主页:小钱编程成长记 🎈博客专栏:进阶C语言 进阶指针(一) 0.回顾初阶指针1.字符指针1.1 相关面试题 2.数组指针3.指针数组3.1 数组指针的定义3.2 &数组名VS数组名3.3 数组指针的使用 4.数组传参和指针传参4.…

linux下解决tomcat错误问题

错误一: Linux下Tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 原因:可能是Linux环境变了,需要在catalina.sh文件里指定JDK路径 解决方式: 在/bin/catalina.sh配置文件中加…

基于springboot+vue的爱心助农网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Linux离线安装telnet

TELNET rmp地址 链接: https://pan.baidu.com/s/1Yl3zt1p3zjp2fYTwByf7dQ?pwdgdcg 提取码: gdcg 复制这段内容后打开百度网盘手机App,操作更方便哦 命令 rpm -ivh xinetd-2.3.15-14.el7.x86_64.rpm rpm -ivh telnet-0.17-65.el7_8.x86_64.rpm rpm -ivh telnet-…

autoware.ai docker安装

1.进行docker安装 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88sudo add-apt-reposi…

Unity实战(11):项目非启动状态下使用代码批量替换材质

目录 前言 配置环境 一、场景准备 二、代码演示 三、效果呈现 四、关于Resources.Load()的说明 前言 本文内容为unity在编辑状态(非启动状态)下使用代码批量替换材质,该方法也适用于其他在编辑状态下对物体的操作需求。 配置环境 win1…

Mysql003:用户管理

前言:本章节讲解的是mysql中的用户管理,包括(管理数据用户)、(控制数据库的访问权限)。 目录 1. 查询用户 2. 创建用户 3. 修改用户密码 4. 删除用户 5. 权限控制 1. 查询用户 在mysql数据库中&#xff0…

华为手机如何开启设置健康使用手机模式限制孩子玩手机时间?

华为手机如何开启设置健康使用手机模式限制孩子玩手机时间? 1、在手机上找到「设置」并点击打开; 2、在设置内找到「健康使用手机」并点击进入; 3、开启健康使用手机后,选择孩子使用; 4、在健康使用手机内&#xff0c…

已解决 Java Error: Exception in thread ‘main‘ java.lang.ClassNotFoundException

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

Godot配置C#语言编写脚本(使用VSCode作为外部编辑器)

文章目录 Godot部分查看VSCode的所在位置配置外部编辑器 配置VSCode编写脚本中文注释 其他文章字符编码 Godot部分 打开编辑器-编辑器设置; 查看VSCode的所在位置 右键单击你的VScode快捷方式,选择属性。 这里的目标就是你的VSCode所在的位置。 配…

并发编程——synchronized

文章目录 原子性、有序性、可见性原子性有序性可见性 synchronized使用synchronized锁升级synchronized-ObjectMonitor 原子性、有序性、可见性 原子性 数据库事务的原子性:是一个最小的执行的单位,一次事务的多次操作要么都成功,要么都失败…

【探索Linux】—— 强大的命令行工具 P.9(进程地址空间)

阅读导航 前言一、内存空间分布二、什么是进程地址空间1. 概念2. 进程地址空间的组成 三、进程地址空间的设计原理1. 基本原理2. 虚拟地址空间 概念 大小和范围 作用 虚拟地址空间的优点 3. 页表 四、为什么要有地址空间五、总结温馨提示 前言 前面我们讲了C语言的基础知识&am…

【智慧工地源码】智慧工地助力数字建造、智慧建造、安全建造、绿色建造

智慧工地围绕建设过程管理,建设项目与智能生产、科学管理建设项目信息生态系统集成在一起,该数据在虚拟现实环境中,将物联网收集的工程信息用于数据挖掘和分析,提供过程趋势预测和专家计划,实现工程建设的智能化管理&a…

Python实验一

1.计算圆椎体体系积。 要求: 交互式输入圆椎体的底面半径和高。 提示:(1)使用两个函数 input()和 eval(),其中 input()函数用于接收用户的输入,接收的值 是字符串;eval()函数用来执行一个字符串表达式&…

2023护网行动面试题目汇总

目录 一、常用的外围打点工具有哪些? 二、描述一下外围打点的基本流程? 三、怎么识别CDN? 四、怎么判断靶标站点是windows系统还是Linux系统? 五、举常见的FOFA在外网打点过程中的查询语句? 六、常见的未授权访问漏洞有哪些…

【官宣】游戏革命刚刚开始!

正如标题所言,随着官方 Aavegotchi dApp 游戏中心的推出,我们的 Gotchi 游戏革命今天正式开始。 游戏中心代表着 Aavegotchi.com 向类似于 Steam 和 Epic Games 等完整游戏平台的重大转变。 游戏中心是当今所有 Gotchi 主题游戏的综合目录,…

深度解剖数据在队列的应用

> 作者简介:დ旧言~,目前大一,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕&#x1…

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

【JAVA-Day28】数组下标越界问题:最佳解决方法

数组下标越界问题:最佳解决方法 数组下标越界问题:最佳解决方法引言一、什么是下标越界问题下标越界的表现 1.1 数组访问异常数组越界异常概述常见情况 1.2 内存访问错误内存访问错误概述常见情况 1.3 未定义行为未定义行为概述 二、下标越界问题如何产生…

Hive 的函数介绍

目录 ​编辑 一、内置运算符 1.1 关系运算符 1.2算术运算符 1.3逻辑运算符 1.4复杂类型函数 1.5对复杂类型函数操作 二、内置函数 2.1数学函数 2.2收集函数 2.3类型转换函数 2.4日期函数 2.5条件函数 2.6字符函数 三、内置的聚合函数 四、内置表生成函数 五、…