CLIP:Contrastive Language-Image Pre-training
论文名称:Learning Transferable Visual Models From Natural Language Supervision
原论文地址:https://arxiv.org/abs/2103.00020
GLIP论文名称:Grounded Language-Image Pre-training
原论文地址: https://arxiv.org/abs/2112.03857
是的没错,开篇必须说点啥是我的特色,大连疫情了,整个假期啥事没有,一开学就疫情,另外才知道发核心才能毕业哦呵呵呵,我笑噶了。本文介绍两篇论文,目标抓紧开题!
目录
1. CLIP干啥的
2. GLIP
2.1 怎么将两个任务相结合的
2.2 预训练数据集
2.3 模型总体框架
3. 升级版:GLIPV2
CLIP就是用对比学习的方式,去训练一个视觉语言的多模态模型,给定一个图像文本对,图像通过图像的编码器,文本通过文本的编码器,得到一系列图像文本的特征,其中对应的图像文本对 - 到-都是正样本,因为这些文本描述的就是这个图片,那么所有不在对角线上的这些元素都称为负样本,比如说跟之间就没有对应关系,所以称为负样本,那么用这个简单的对比学习目标函数,在一个4亿的图像文本对上训练完之后,这个CLIP模型就有了超能力,Zero Shot就飞起了。
在推理的时候,如果想给任意的一张图片去做分类,就可以把它可能的那些标签做一个template,(这是一个啥啥的图片),把这些文本都传给一个文本编码器,就可以得到一系列的文本特征,有多少标签就能得到多少个文本特征,通过计算图像特征跟文本特征的相似度,得到的最大的相似度所对应的文本标签就是我们想要的结果。
这篇论文做的任务是phrase grounding(利用指定描述的语句进行标定图片中所显示的物体),属于visual grounding(视觉基础训练)的一种。phrase grounding的任务是输入句子和图片,对于给定的sentence,要定位其中提到的全部物体然后框出来。
对比一下的话,目标检测是给你一个图片,把bounding box找出来,visual grounding就是给你一个图片,再给一个文本,根据这个文本把物体找出来。此篇文章就是将两个任务结合,把detection和phrase grounding两个任务合起来,变成一个统一的框架,来做模型的与训练,再把尾标签的一系列方法加进来(self-training),就可以实现在没有标注过的图像文本对上生成bounding box标签。
Zero Shot:给一些标签或者一句话,通过GLIP模型得到检测框
对于目标检测和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。
vision grounding的分类loss:算了一个匹配的分数S,看图像中的区域和句子里的单词如何匹配,也是给定一个图片,有一个image backbone,得到这个region embedding,然后给了一个句子prompt,通过一个文本编码器得到文本的embedding P,之后跟图像的embedding O 算一下similarity,就可以得到最终的这个分数,
把目标检测和vision grounding联合:判断什么时候是positive match,什么时候是negative match
用已有的数据集不够,想把数据集变大,就需要借鉴于unlable的data,引入图像文本对来增加数据集,为了训练这个的目标检测模型,必须得有bounding box的ground truth,还需要知道这个bounding box对应于句子里的哪个单词,所以作者就采取self training,借鉴伪标签的方式,就是说他拿已经训练好的这个glip-tiny c,直接在这些图像文本对上做推理,他推理出来当前的图片上有哪些bounding box,他就把这些bounding box当成ground truth。可能有错误所以叫做伪标签,用了之后模型的稳健性更好。
目标函数怎么算的:做了一个有监督的学习的工作,时时刻刻都是有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把这个文本和图像的特征进行交互,
论文名称:GLIPV2:Unifying Localization and VL Understanding
原论文地址:https://arxiv.org/pdf/2206.05836.pdf
卷起来了,他融合了更多的数据集,更多的任务,加入了一个VQA(Visual Question Answering)能回答问题了和Image Caption(图片说明),如图
数据集大力出奇迹,老鼻子数据,训练训练就贼准,发论文的密码掌握了