【多模态】BLIP——统一视觉语言理解和生成的引导语言图像预训练模型

news2024/11/20 3:31:36

        多模态指的是多种模态的信息,包括:文本、图像、视频、音频等。而多模态研究的就是这些不同类型的数据的融合的问题。目前大多数工作中,只处理图像和文本形式的数据,即把视频数据转为图像,把音频数据转为文本格式。

目录

 📞📞0.背景

❓❓ 1.问题-大多数模型缺乏灵活性,Web 数据嘈杂 

🐶🐶2.BLIP解决方案

🌵2.1网络结构

🌴2.2噪声数据处理(CapFilt)

🌲2.3CapFilt消融实验

🐯🐯3.下游任务

🌵3.1图像文本检索(Image-Text Retrieval)

🌴3.2图像字幕(Image Caption)

🌲3.3视觉问答VQA(Visual Question Answering)

🌳3.4自然语言视觉推理NLVR2 (Natural Language Visual Reasoning)

🌱3.5视觉对话 VisDial(Visual Dialog)

🌾3.6. 0样本迁移到视频语言任务(Zero-shot Transfer to Video-Language Tasks)

🐰🐰4.结果

🌵4.1图像文本检索

🌴4.2图像字幕

🌲4.3VQA和NLVR2

🌳4.4视觉对话

🌱4.5文本到视频检索

🌾4.6视频问答

附加(本文未涉及)


代码地址:code

论文地址:paper

 📞📞0.背景

        视觉和语言是人类感知世界的两种最基本的方式,也是人工智能的两大关键基石。人工智能的一个长期目标是构建能够通过视觉和语言输入理解世界并通过自然语言与人类交流的智能代理。

        为了实现这一目标,视觉语言预训练 已成为一种有效的方法,其中深度神经网络模型在大规模图像文本数据集上进行预训练,以提高下游视觉语言任务(例如图像文本)的性能。文本检索、图像字幕和视觉问答。

        简而言之,视觉语言预训练旨在利用图像文本数据来教会模型共同理解视觉和文本信息的能力。通过预训练,模型在微调之前就已经过训练(微调涉及使用下游任务的数据对预训练模型进行额外的训练)。如果没有预训练,模型需要在每个下游任务上从头开始训练,这会导致性能下降。


❓❓ 1.问题-大多数模型缺乏灵活性,Web 数据嘈杂 

  • 模型角度来看,大多数现有的预训练模型不够灵活,无法适应广泛的视觉语言任务。基于编码器的模型不太容易直接转移到文本生成任务,而编码器-解码器模型尚未成功应用于图像文本检索任务。
  • 数据角度来看,大多数模型都会对从网络自动收集的图像和替代文本对进行预训练。然而,网络文本通常不能准确描述图像的视觉内容,使它们成为监督的嘈杂来源。

🐶🐶2.BLIP解决方案

🌵2.1网络结构

         为了预训练具有理解和生成能力的统一视觉语言模型 BLIP 引入了编码器-解码器的多模态混合,这是一种多任务模型,可以在以下三个功能之一中运行:

  1. 单模态编码器,分别对图像和文本进行编码。图像编码器是一个视觉转换器。文本编码器与 BERT 相同。[CLS] 标记附加到文本输入的开头以总结句子。
  2. 基于图像的文本编码器,通过在文本编码器的每个变换器块的自注意力层和前馈网络之间插入交叉注意力层来注入视觉信息。特定于任务的 [Encode] 标记被附加到文本中,并且 [Encode] 的输出嵌入用作图像-文本对的多模态表示。
  3. 基于图像的文本解码器,用因果自注意力层替换文本编码器中的双向自注意力层。特殊的 [Decode] 标记用于表示序列的开始。

        BLIP在预训练过程中联合优化了三个目标,其中两个基于理解的目标(ITC、ITM)和一个基于生成的目标(LM):

  • 图像文本对比损失(ITC)激活单峰编码器。它的目的是通过鼓励正图像-文本对与负图像-文本对相比具有相似的表示来对齐视觉变换器和文本变换器的特征空间。
  • 图像文本匹配损失(ITM)激活基于图像的文本编码器。ITM 是一项二元分类任务,要求模型在给定多模态特征的情况下预测图像-文本对是正(匹配)还是负(不匹配)。
  • 语言建模损失(LM)激活基于图像的文本解码器,其目的是生成以图像为条件的文本描述

🌴2.2噪声数据处理(CapFilt)

        为了解决网络收集到的大规模数据中存在图像文本不配对的这个问题,BLIP通过引入两个模块来引导字幕:字幕生成器过滤器。

  • 字幕生成器 是一个基于图像的文本解码器。给定网络图像,我们使用字幕生成器生成合成字幕作为额外的训练样本
  • 过滤器 是一个基于图像的文本编码器。它会删除与相应图像不匹配的嘈杂文本

🌲2.3CapFilt消融实验

红色:网络收集的图像文本对

绿色:基于网络收集的图像生成的文本


🐯🐯3.下游任务

🌵3.1图像文本检索(Image-Text Retrieval)

图像文本检索有三种方式:

1)以图搜文。输入图片,输出文本

2)以文搜图。输入文本,输出图片

3)以图搜图,输入图片,输出图片

🌴3.2图像字幕(Image Caption)

输入:一张图片

输出:图片的自然语言描述(一个句子)

Referring Expression Comprehension 指代表达

输入:一张图片、一个自然语言描述的句子

输出:判断句子描述的内容(正确或错误)

🌲3.3视觉问答VQA(Visual Question Answering)

输入:一张图片、一个自然语言描述的问题

输出:答案(单词或短语)

🌳3.4自然语言视觉推理NLVR2 (Natural Language Visual Reasoning)

输入:2张图片,一个文本

输出:true或false

🌱3.5视觉对话 VisDial(Visual Dialog)

输入:一张图片

输出:两个角色进行多次交互、对话

🌾3.6. 0样本迁移到视频语言任务(Zero-shot Transfer to Video-Language Tasks)


🐰🐰4.结果

🌵4.1图像文本检索

🌴4.2图像字幕

🌲4.3VQA和NLVR2

🌳4.4视觉对话

🌱4.5文本到视频检索

🌾4.6视频问答

BLIP在七项视觉语言任务上实现了SOTA性能,包括:

  • 图文检索
  • 图像字幕
  • 视觉问答
  • 视觉推理
  • 视觉对话
  • 零样本文本视频检索
  • 零镜头视频问答。

附加(本文未涉及):

还有一种多模态融合任务:Visual Entailment 视觉蕴含

输入:图像、文本

输出:3种label的概率。(entailment、neutral、contradiction)蕴含、中性、矛盾

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

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

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

相关文章

PHP 前后端分离,运行配置

H5 WEB目录:安装 yarn install、npm install (依赖包) 在电脑:安装nodejs Composer下载 :https://getcomposer.org/

彭迦信和梁柱搭班两年,腾讯音乐总市值相对减少约200亿美元

8月1日、8月2日,腾讯音乐-SW(HK:01698,下称“腾讯音乐”)在港交所的股价连续两日下跌,跌幅分别为2.21%和3.02%。按2023年8月2日的收盘价计算,腾讯音乐的港股市值约为454.17亿港元,总市值约为882…

算法:DFS【深度优先搜索】

概念: 深度优先搜索(Depth First Search)简称为DFS。一种用于遍历或者搜索树或图的算法。 沿着树的深度遍历树的所有节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或在搜寻时结点不满足条件,则搜索将回溯…

《HeadFirst设计模式(第二版)》第三章代码——装饰者模式

代码文件结构: 星巴兹案例: CondimentDecorator package Chapter3_DecorativeObjects.Decorators;import Chapter3_DecorativeObjects.Beverage;/*** Author 竹心* Date 2023/8/3**/public abstract class CondimentDecorator extends Beverage {Bever…

opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()

双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有…

Scratch 教程 -- 逐字化输出

首先我们来探讨一下对于一个逐字化模块(自定义积木),有哪些需要设置的参数(请注意,在这里我会先提出一种常规且简便的写法,再进一步讲述其它的优化版本) 1.内容:对于一个文本,其内容是一定需要的(不然你还用啥逐字化啊…

新概念英语的网盘资源

新版新概念英语1-4册全部视频和课本_免费高速下载|百度网盘-分享无限制百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/18wyeA#l…

C++STL——deque容器详解

纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。 💬文章目录 一.deque容器的基本概念二.deque容器常用操作①deque构造函数②deque元素操作③deque赋值操作④deque交换操作⑤deque大小操作⑥deque插入和删除…

使用IPSEC VPN 在有防火墙的场景和有NAT转换的场景下实现隧道通信实验

目录 一、在有防火墙的场景 1、为所有设备配置对应ip地址: 2、进入两个防火墙实现公网互通 3、测试公网是否互通 4、进入SW1配置IPSEC VPN 5、进入SW2配置IPSEC VPN 6、配置策略方向ESP的流量 7、尝试使用PC1访问PC2 二、在有NAT地址转换的场景 1、为新增加…

C语言中的数据类型有哪些?

有符号数signed可以存储负数,无符号数呢只能存储非负数 我们要考虑两个问题。 第一个问题是要存储的这个整数,它是一个多大的范围,比如说要存储一个五。还有比如说我可能要算个数65535,或者说我要算出一个数65536,可能…

Cilium系列-11-启用带宽管理器

系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing)完全替换 KubeProx…

P-DQN:离散-连续混合动作空间的独特算法

一、说明 本文首先说明DQN是个什么概念, DQN(Deep Q-Network)是一种基于深度学习的强化学习算法,在游戏AI中表现优异,如AlphaGo。然后说明人物动作预测的算法实现方法。 二、关于DQN的概念和实验 DQN(Deep …

混合精度训练中的内存占用

结论: 在模型训练中,fp16会比fp32快很多,因此,一般会使用fp16的参数进行模型的前向和后向计算。然而,在进行梯度累加的时候,fp16往往会精度不够,无法满足计算需求。因此,会在反向计…

SOLIDWORKS等轴测剖切视图的创建技巧

在SOLIDWORKS工程图中,经常会用到等轴测剖切视图来显示零件或装配体的内部结构,下面介绍一下两种创建方式,供大家参考,以下图为例。 方法一 第一步,打开零件,创建一个切除拉伸的配置,该配置为 …

全网超细,Jenkins持续集成-自动化测试(详细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 执行集成构建 持…

计算机top命令

top 快捷键 1 核心参数 1 1 参考资料 [1]. https://blog.csdn.net/weixin_45465395/article/details/115728520 [2].https://www.cnblogs.com/liushui-sky/p/13224762.html

为了规避风险,如何给大模型打水印?

大型语言模型,如最近开发的ChatGPT,可以撰写文件、创建可执行代码和回答问题,通常具有人类般的能力。 随着这些大模型的应用越来越普遍,越来越大的风险也显现了出来,它们可能被用于恶意目的。这些恶意目的包括&#xf…

uni-app选择器( uni-data-picker)选择任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器,可以用作多级分类的场景。引入插件后,发现做不到只选择年级,不选择班级(似乎,只能到最后子节点了)。 需求中,有可能选择的不是叶子。比如&a…

渣罐炉倾翻液压系统比例阀控制器

渣罐炉倾翻液压系统是一种用于渣罐炉倾翻的液压系统,由液压泵、油缸、阀组、油箱、管路等组成。 2. 启动液压泵,将液压油输送到油缸。 总之,渣罐炉倾翻液压系统具有操作简便、高效稳定等特点,适用于各种类型的渣罐炉倾翻。

SpringBoot+Vue开发笔记

参考:https://www.bilibili.com/video/BV1nV4y1s7ZN?p1 ----------------------------------------------------------概要总结---------------------------------------------------------- 1、MVC架构: View:与用户交互 Controller&…