CLIP,GLIP论文解读,清晰明了

这篇具有很好参考价值的文章主要介绍了CLIP,GLIP论文解读,清晰明了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CLIP:Contrastive Language-Image Pre-training

论文名称:Learning Transferable Visual Models From Natural Language Supervision

原论文地址:https://arxiv.org/abs/2103.00020

开源预训练模型:https://github.com/OpenAI/CLIP

GLIP论文名称:Grounded Language-Image Pre-training

原论文地址: https://arxiv.org/abs/2112.03857

是的没错,开篇必须说点啥是我的特色,大连疫情了,整个假期啥事没有,一开学就疫情,另外才知道发核心才能毕业哦呵呵呵,我笑噶了。本文介绍两篇论文,目标抓紧开题!

目录

1. CLIP干啥的

2. GLIP

2.1 怎么将两个任务相结合的

2.2 预训练数据集

2.3 模型总体框架

3. 升级版:GLIPV2


1. CLIP干啥的

CLIP,GLIP论文解读,清晰明了

1.1 CLIP如何进行预训练

CLIP就是用对比学习的方式,去训练一个视觉语言的多模态模型。模型的输入是一个图片和文字的配对,比如这里图片画的是一只狗,那么配对的文字是一只小狗,图片通过一个图片编码器(Resnet或者vision transformer),从而得到了一些特征,文字通过文本编码器,从而得到一些文本的特征,假设说,每个training betch里都有N个这样的图片文本对,那个我们就可以得到N个这种图片的特征,N个文本的特征,CLIP就是在这些特征上去做对比学习,对比学习就非常的灵活,他只需要一个正样本和负样本的定义,那么如图,配对的一个图片文本对就是正样本,也就是图中红框框起来的,因为他描述的是一个东西。那么剩下这个矩阵中所有不是对角线上的元素,都是负样本,也就是说,这里有N个正样本,有-N个负样本。然后模型就可以通过对比学习方式训练起来了,完全不需要任何手工的标注,对于这种无监督的预训练方式,需要大量的数据,那么作者搞了4个亿的数据集...好嘛

1.2 CLIP如何来做zero shot的推理

因为CLIP模型经过预训练之后只能得到视觉上和文本上的这些特征,并没有在任何分类的任务上,做继续的训练或者微调,所以说他没有这么一个分类头,那么没分类头如何推理:

prompt template:用 Image Net举例,CLIP就是先把Image Net 里这1000各类,飞机,车,狗啥的,变成一个句子,A photo of a plane,然后这1000个句子通过之前预训练好的这个文本编码器得到1000个文本的特征,推理的时候,任何一张图片通过图片的编码器,得到图片特征之后,与所有的文本特征做cosine similarity,相似性最高的这个文本特征所对应的句子就是我们想要的,从而完成分类。

CLIP这个模型,彻底摆脱了categorical labal(绝对标签)这个限制,就是不论在训练的时候还是在推理的时候都不需要一个提前定好的一个标签的列表了,任意一张照片,都可以通过给模型输入不同的文本句子,从而知道这张图片是啥。

2. GLIP

这篇论文做的任务是phrase grounding(利用指定描述的语句进行标定图片中所显示的物体),属于visual grounding(视觉基础训练)的一种。phrase grounding的任务是输入句子和图片,对于给定的sentence,要定位其中提到的全部物体然后框出来。

对比一下的话,目标检测是给你一个图片,把bounding box找出来,visual grounding就是给你一个图片,再给一个文本,根据这个文本把物体找出来。此篇文章就是将两个任务结合,把detection和phrase grounding两个任务合起来,变成一个统一的框架,来做模型的与训练,再把尾标签的一系列方法加进来(self-training),就可以实现在没有标注过的图像文本对上生成bounding box标签。

CLIP,GLIP论文解读,清晰明了

Zero Shot:给一些标签或者一句话,通过GLIP模型得到检测框

2.1 怎么将两个任务相结合的

对于目标检测和phrase grounding来说,训练目标函数是一个分类的loss加一个定位的loss,其中这个定位的loss两者差不多,区别就在于怎么来计算这个分类的loss。

目标检测的分类loss:给定一个图片,有一个此图像的backbone,就可以得到这个region embedding,上图的这个O就是一个Nxd的region embedding,意思就是假如说有N个bounding box,每个bounding box embedding的维度就是d,然后就是接了一个分类头,看看每一个bounding box里面的物体到底是哪个类,那么这个分类头就是一个矩阵W,它的维度就是cxd,c是有多少个类别,然后把region embedding和W相乘之后就可以得到最后这个分类的logic,再用NMS把这些bounding box筛选一下,跟ground truth(正确标记的)算cross entropy loss(交叉熵损失)就能得到最终的这个分类loss。CLIP,GLIP论文解读,清晰明了

vision grounding的分类loss:算了一个匹配的分数S,看图像中的区域和句子里的单词如何匹配,也是给定一个图片,有一个image backbone,得到这个region embedding,然后给了一个句子prompt,通过一个文本编码器得到文本的embedding P,之后跟图像的embedding O 算一下similarity,就可以得到最终的这个分数,

CLIP,GLIP论文解读,清晰明了

把目标检测和vision grounding联合:判断什么时候是positive match,什么时候是negative match

2.2 预训练数据集

用已有的数据集不够,想把数据集变大,就需要借鉴于unlable的data,引入图像文本对来增加数据集,为了训练这个的目标检测模型,必须得有bounding box的ground truth,还需要知道这个bounding box对应于句子里的哪个单词,所以作者就采取self training,借鉴伪标签的方式,就是说他拿已经训练好的这个glip-tiny c,直接在这些图像文本对上做推理,他推理出来当前的图片上有哪些bounding box,他就把这些bounding box当成ground truth。可能有错误所以叫做伪标签,用了之后模型的稳健性更好。

2.3 模型总体框架

目标函数怎么算的:做了一个有监督的学习的工作,时时刻刻都是有bounding box annotation,当抽出来O1,O2这些region的时候,是知道跟上面的单词是一一对应的,这样在算完这个O和P的这个相似度点乘之后,就可以去跟ground truth来算Alignment Loss,就完成了文本和图像特征之间的融合,就可以进一步的来做zero shot,对于这个定位的loss来说,因为有ground turth,就直接算一个L-1loss就可以。

Deep Fusion:将文本的特征和图像的特征抽出来之后,理论上是可以算后面这个相似度矩阵的,但是如果直接这么算的话,这个图像文本的joint embedding space (联合的特征提取)还没学好,如果多加一些层数,让他们之间融合一下,可能学的更好,相似的概念拉的更近,能让最后的文本特征和图像特征更好,更有关联性,这样再算后面的相似度的时候,就更有针对性。具体操作:用cross attention把这个文本和图像的特征进行交互,

CLIP,GLIP论文解读,清晰明了

3. 升级版:GLIPV2

论文名称:GLIPV2:Unifying Localization and VL Understanding

原论文地址:https://arxiv.org/pdf/2206.05836.pdf

卷起来了,他融合了更多的数据集,更多的任务,加入了一个VQA(Visual Question Answering)能回答问题了和Image Caption(图片说明),如图

CLIP,GLIP论文解读,清晰明了

4. 小小总结

数据集大力出奇迹,老鼻子数据,训练训练就贼准,发论文的密码掌握了文章来源地址https://www.toymoban.com/news/detail-446648.html

到了这里,关于CLIP,GLIP论文解读,清晰明了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VLM 系列——中文CLIP——论文解读

        CLIP 的中文版《Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese》,训练使用2亿 图-文 对的对比学习(不是LLM的预测下一个token),是一个双塔模型(图像和文本各子拥有一个编码器)。由于对齐了图像和文本特征,可以用来做:图-图(文章中没有相关测试任务)、图

    2024年01月24日
    浏览(60)
  • CLIP原理解读——大模型论文阅读笔记一

    通过自然语言处理来的一些监督信号,可以去训练一个迁移效果很好的视觉模型。 论文的作者团队收集了一个超级大的图像文本配对的数据集,有400 million个图片文本的配对, 模型最大用了ViT-large,提出了CLIP(Contrastive Language-Image Pre-training),是一种从自然语言监督中学习

    2024年02月08日
    浏览(42)
  • Node 多版本管理(清晰明了)

    最近学习cloud项目,前端使用到 vue3 + ts 等技术,在启动 vue3 项目中需要 node 版本较高(16.15.0),但自己又不想卸载原来的版本,这时使用需要 Node 多版本管理 ,根据 项目官方文档提供的方法在此记录一下 。 需要先把本地安装的Node.js卸载,然后再下载nvm ,地址: https://g

    2024年02月07日
    浏览(37)
  • 清晰、明了的@Transcation事务嵌套使用

      事务(Transaction):指数据库中执行的一系列操作被视为一个逻辑单元,要么全部成功地执行,要么全部失败回滚,保证数据的一致性和完整性。   @Transactional注解是Spring框架提供的用于声明事务的注解,作用于类和方法上。 属性 可选值 作用 propagation REQUIRED REQUIRES_

    2024年02月08日
    浏览(68)
  • Docker部署springcloud项目(清晰明了)

    最近在想做个cloud项目,gitee上找了个模板项目,后端使用到 Nacos、Gateway、Security等技术,需要到 Docker 容器部署 ,在此总结一下,若有不足之处,望大佬们可以指出。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等

    2024年02月06日
    浏览(41)
  • VSCode 配置 Lua 开发环境(清晰明了)

    由于 AutoJS 学得已经差不多了,基本都会了,现在开始向其他游戏脚本框架进发, Lua 语言很强大 ,就不多说, 按键精灵、触动精灵等等都是用该语言编程脚本的,由于按键精灵、触动精灵 和 AutoJS 类似,不是说一样是因为按键精灵、触动精灵整合大漠插件等牛逼插件,控制

    2024年02月07日
    浏览(54)
  • WIndows 配置多版本python环境,非常清晰明了

    配置多个python环境 下面以配置三个python版本环境为例子 首先下载好三个环境的python,如: python2.7、python3.6、python3.10 给个官网链接自己下,想要几版本就下几:https://www.python.org/downloads/windows/ 下载完成后将python2.7中的python.exe文件改名为python2.exe,也可以叫python2.7.exe, 反正叫

    2024年02月10日
    浏览(39)
  • Vue3 使用MD5加密(清晰明了)

    最近在想做个cloud项目,gitee上找了个模板项目,前端使用到vue3 + typeScript、Element Plus、Vue Router、Pinia、Axios、i18n、Vite等技术,最近使用到 vue3 MD5加密 ,顺便学习一下,在此总结一下,若有不足之处,望大佬们可以指出。 注意: ts-md5 不是 js-md5 定义: 局部使用: 定义: 意思

    2023年04月08日
    浏览(41)
  • 【网络】无线路由器的AP、Client、WDS、WISP使用功能图解(清晰明了)

    有线路由器组成:一个有一个 WAN 口和一个 LAN 口的路由器、一个有几个 LAN 口的网络交换机,一个接在 LAN 口的 DHCP 服务器。如下图所示 在路由器的 LAN 口上,接了一个无线交换机。这个无线交换机的无线插接口,就是这个无线路由器的无线 AP,这种工作模式就是无线路由器

    2024年02月09日
    浏览(31)
  • MySQL5.7版本在CentOS系统安装 保姆级教程 从小白开始 步骤清晰简单明了

    注意:需要使用root权限 ps:图片大都为安装MySQL8.0版本时的截图仅供参考,实际指令请参照红色字体代码,8.0和5.7版本安装步骤相同,个别地方代码有所差别 安装MySQL8.0版本:http://t.csdn.cn/CSOqM 目录 一. 安装 1. 配置yum仓库 2. 使用yum安装MySQL 3. 安装完成后,启动MySQL并配置开机

    2024年02月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包