多模态CLIP和BLIP

一、CLIP

全称为Contrastive Language-Image Pre-Training用于做图-文匹配,部署在预训练阶段,最终理解为图像分类器。

1.背景

以前进行分类模型时,存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP,通过这个预训练模型实现zero-shot,并且判断类别不是固定的,即增加类别也不用重新训练模型。CLIP在完全不使用ImageNet中的数据训练前提下,直接zero-shot得到的结果与resnet在Imagenet数据训练后效果一样,同时CLIP的数据是从网络上爬取的4亿文本对。

2.网络模型

通过上图左边我们得知在预训练时有两个模型,一个是Bert模型做文字方面的Text Encoder,一个是ViT模型做图像方面Image Encoder。

本文对(图片信息和文字描述对应的)是从网络上爬取的有4亿对数据,但是因为都是从网络上爬取的,所以可能会有错(也就是说带有噪声,存在的问题)。从4亿对数据中,我们批次拿取batchsize为3万对的数据来进行encoder变成768维的向量。经过大量的正向传播和反向传播之后那么中间的值会越来越对齐。

过程==》假设有5张图片和5段文本,一张图片和一段文本是对应的。然后经过对应的Text Encoder和Image Encoder,分别生成五个图片编码和文字编码,然后图片编码和文字两两相互之间计算相似度,选相似度最高作为一对正样本,否则就是负样本,所以正样本个数为N,负样本为N(N-1)。这里是对比学习的思想,也就是Text Encoder和Image Encoder是在不断迭代的。

上图右边进行测试,给出图片然后给出类别种类,得出图片的编码,文字类别时加入提示词组成一个完整的话语然后再经过编码器得到文字编码,然后让图片编码和文字编码计算相似度,相似度最高的那么这个图片描述的信息就是文字信息,类别也就是文字类别。

CLIP的核心思想就是通过海量的弱监督文本对通过对比学习,将图片和文本通过各自的预训练模型获得的编码向量在向量空间上对齐。

3.结果

只能和resnet50网络进行比较,但是resnet50网络不是最强的,同时收集数据的时候很多文本对存在噪声。不过经过对比学习,Image Encoder模型和Text Encoder模型是越来越强,用于下游任务中,能帮助其他模型快速得到准确率高的结果

二、BLIP

BLIP能完成图-文匹配,同时也能完成生成任务,即文字生成图片和图片生成文字。

1.背景

视觉语言预训练旨在利用图像文本数据来教会模型共同理解视觉和文本信息的能力,但是大多数现有的预训练模型不够灵活,无法适应广泛的视觉语言任务;并且大多数模型都会对从网络自动收集的图像和替代文本对进行预训练,然而网络自动收集数据存在大量噪声。而BLIP模型与三个视觉语言目标联合预训练:图像文本对比学习、图像文本匹配和图像条件语言建模,且提出字幕和过滤,一种新的数据集增强方法,用于从噪声图像-文本对中学习。

2.网络模型

1)网络模型

其中cross attention和causal self-att分别为

流程步骤:

①首先是对图片进行ViT分片的一样操作,然后传入给transformer的编码器,输出一个向量,这个向量代表了图片是所有特征(768维度)。右边的“三个模型”相同颜色的块共用同样的参数。

②第一个模型把文字做好向量化再加上cls(表示分类任务,特殊符号,ViT中的概念),然后进入双向自注意力(可以理解为和bert一样),然后进入Feed Forward(其实就是两个全连接层),最后得到一个文本向量(768维度),然后进行ITC(对比学习,是不是一对,一对概率高不是一对概率低,两个向量尽量对齐)。

③中间的模型是把从图片得到的向量和文本向量进行交叉注意力,然后再FFN,最后就是ITM(二分类任务)

④最后一个模型,对于文本是一个一个的输入,然后让其推理预测下一个字,Causal self-att(表示单项注意力机制),LM就是重新把文本预测出来。

2)噪声模型

为了解决网络收集到的大规模数据中存在图像文本不配对的这个问题,BLIP通过引入两个模块来引导字幕:字幕生成器Captioner和过滤器Filter。字幕生成器是一个基于图像的文本解码器,给定网络图像,我们使用字幕生成器合成字幕作为额外的训练样本。过滤器是一个基于图像的文本编码器,它会删除与相应图像不匹配的嘈杂文本。

步骤流程:

①上图的左边D中的Iw和Tw分别表示图像和文本,红色的表示从网络爬取下来,可能会出现不匹配,Ih和Th绿色的表示人为进行处理的数据对它们匹配的。

②然后我们把这些数据放到刚才的模型中进行训练,我们就能得到几个训练完之后的模型(ITC、ITM和LM)。对于得到的模型我们大概能分为两种类型,其中ITC(图文匹配,对齐)和ITM(图文匹配,二分类)为一类,而LM(看图生成文字)为一类。

③训练好的模型再把人为处理匹配对的图文分别送到(ITC ITM)图文匹配和LM看图生成文字的模型中进行训练。

④对于(ITC ITM)图文匹配的模型我们把从网络上找的图文匹配对进行训练,如果该文本对是匹配的就往后传,如果不匹配就把这个文本对丢弃。

⑤对于LM看图生文字模型,我们把从网络爬取的图片进行训练(只要图片),训练之后得到文字,再把生成的文字再放到前面的(ITC ITM)图文匹配模型上进行训练,如果匹配成功就留下(也就是说模型生成的文字和图片是匹配的),不成功就丢弃。

经过以上的步骤就能找到干净的数据,得到的干净数据再重新送到预训练模型中作为数据再得到ITC、ITM和LM。

3.结果

这个网络框架得到的模型和数据能用于下游任务中,帮助其他模型快速得到准确率高的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.前端环境搭建

1.安装nodejs 因为我们开发Vue项目需要使用npm命令来创建和启动,安装node.js是为了获得这个命令,目前和使用node.js无关 下载地址:http://nodejs.cn/download/ 下载完之后安装,通过cmd查看是否安装成功 node --version2.创建项目…

老板必读:防数据泄露,保卫您的商业秘密

在信息技术高速发展的今天,数据泄露已成为所有企业都必须正视的风险。对于企业而言,数据不仅仅是一堆数字和信息的集合,更是企业的核心竞争力与商业秘密的载体。一旦数据泄露,不仅会导致经济损失,还可能使企业信誉受损…

如何解读 Web 自动化测试 Selenium API?

Web自动化测试是一种通过编写代码来模拟用户操作,并验证Web应用程序的功能和性能的技术。Selenium是一个流行的Web自动化测试工具,它提供了一组API来与Web浏览器进行交互。在本文中,我们将深入探讨Selenium API,并解释如何从零开始…

conan2 基础入门(01)-介绍

conan2 基础入门(01)-介绍 文章目录 conan2 基础入门(01)-介绍⭐什么是conan官网Why use Conan? ⭐使用现状版本情况个人知名开源企业 ⭐ConanCenter包中心github ⭐说明文档END ⭐什么是conan 官网 官网:Conan 2.0: C and C Open Source Package Manager 一句话来…

二维视觉尺寸测量简单流程

代码示例:opencv实战---物体尺寸测量_opencv尺寸测量精度-CSDN博客 灰度化 简化图像处理:灰度图像只包含亮度信息,不包含颜色信息,因此数据量比彩色图像小,处理起来更加简单和快速。这对于需要实时处理大量图像数据的场…

virtualbox下ubantu20.04版本实现与window的复制粘贴

1.建议开启双向 2.打开Ubuntu命令终端 快捷键 ctrialtt,具体在设置里面查看快捷键 3.卸载已有工具 sudo apt-get autoremove open-vm-tools4.安装 sudo apt-get install open-vm-tools-desktop5.记得sudo reboot重启 sudo reboot这里记得加上sudo,…

python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解

这篇文章主要介绍了python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 JDBC Request 这个 Sampler 可以向数据…

大模型时代,程序员如何卷?

最近在看电影《碟中谍7》,该片讲述了特工伊森亨特尝试与一个被称为智体的全能人工智能作战,其可以即时访问任何在线网络,他和他的团队成员试图找回控制人工智能智体所必需的两部分钥匙并将其摧毁的故事。 在剧中,智体是一个虚拟反…

Java --- 集合(2)--- 这篇文章让你学会如何使用List集合

本期文章来自黑马程序员以及Java入门到精通,希望各位大佬发现文章的瑕疵及时表出,另外也感谢您的收看。话不多说,直接进入正题...... 目录 一.List集合的使用: 二.三种遍历List方式: 首先还是给大家呈现这幅图&#x…

Coursera吴恩达深度学习专项课程01: Neural Networks and Deep Learning 学习笔记 Week 03

Neural Networks and Deep Learning Course Certificate 本文是学习 https://www.coursera.org/learn/neural-networks-deep-learning 这门课的笔记 Course Intro 文章目录 Neural Networks and Deep LearningWeek 03: Shallow Neural NetworksLearning Objectives Neural Ne…

短剧APP开发,为短剧市场提供更多活力

近年来,短剧一直是一个大热赛道,不仅各大视频平台刮起了一股短剧热潮,各大品牌也纷纷开始进军短剧市场。短剧作为当下的流量密码,深受各大短剧观众与创业者的关注。吸引了大量的资本、制作方涌入到市场中,短剧行业发展…

taro3兼容支付宝/微信小程序的自定义拖拽排序组件

描述:列表可以完成拖拽排序 此组件是根据支付宝原生文档改编成taro-vue3的形式,只保留了拖拽的部分,其他功能都去除了,测试下来可以兼容支付宝和微信小程序。 支付宝原生文档: https://opendocs.alipay.com/support/…

未来办公新方式--智能体与程序完美配合

Agent AI智能体的未来 工作中,有时候我们就像是在不停地踩着缝纫机,重复地做着那些单调乏味的任务,不仅耗时费力,还特别容易出错。可是,咱们现在可是生活在数字化时代啊!这时候,Python编程语言…

基于Nios软件实现流水灯+串口输出

基于NIOS-II软核实现流水灯串口输出 引言: ​ 在现代电子设计领域,FPGA(现场可编程门阵列)因其灵活性和并行处理能力而成为实现复杂数字系统的首选平台。Nios II,作为Altera(现为Intel旗下)提供…

综合能力 | 误差 | 学习笔记

误差指真值与观测值的差值。 误差分为系统误差(消除方法:观测方法、仪器校正、修正等)、偶然误差(符合正态分布规律,进行计算纠正)、粗差(一般舍弃)。 中误差(均方差或标…

Linux进程——进程地址空间

前言:在讲完环境变量后,相信大家对Linux有更进一步的认识,而Linux进程概念到这也快接近尾声了,现在我们了解Linux进程中的地址空间! 本篇主要内容: 了解程序地址空间 理解进程地址空间 探究页表和虚拟地址空…

决策树的学习(Decision Tree)

1.对于决策树的概念: **本质上:**决策树就是模拟树的结构基于 if-else的多层判断 2.目的: 对实例进行分类的树形结构,通过多层判断,将所提供的数据归纳为一种分类规则。 3.优点: 1.计算量小,…

华为配置Ethernet over GRE实现AC与无线网关之间的二层互通

华为配置Ethernet over GRE实现AC与无线网关之间的二层互通 组网图形 图1 通过Ethernet over GRE实现AC与无线网关之间的二层互通的组网图 组网需求数据规划配置思路操作步骤配置文件 组网需求 如图1所示,某企业通过无线网络为用户提供上网服务,其中A…

【35分钟掌握金融风控策略21】贷前额度策略

目录 贷前策略审批流程和统一额度管理 贷前策略审批流程 统一额度管理 预授信策略 贷前策略审批流程和统一额度管理 贷前包含了多个风控场景,这些风控场景的策略在执行时是否存在先后顺序呢?在贷前,除上述主要的风控场景,还有…

Flink DataSource介绍

介绍 Flink的Data Source(数据源、源算子)是Flink作业的起点,它定义了数据输入的来源。Flink可以从各种数据来源获取数据,例如文件系统、消息队列、数据库等。以下是对Flink Data Source的详细介绍: 概述&#xff1a…