CLIP论文精读+相关工作
论文:Learning Transferable Visual Models From Natural Language Supervision
代码:https://github.com/OpenAI/CLIP
Abstract
背景:目前cv的sota都是固定预定对象类别,限制了模型的泛化能力;
创新点:直接从图像原始文本中学习,预测哪一张图片和哪一个标题匹配的简单预训练任务。(引入了自然语言处理中的监督信号);
结果:在下游任务重实现了zero-shot,效果很好,领域覆盖OCR、视频动作识别、地理定位以及多种类型的细粒度对象分类等任务。
Introduction
在NLP领域,直接从原始文本中学习的预训练方法给NLP带来了革命性的变化。(自回归、掩码语言建模)这种预训练方法获得的监督信号总量超过了高质量的人群标签NLP模型,实现了量变引起质变。
但是cv领域还是坚持标准的做法,即便是利用监督信号,也是比较弱的监督信号,例如将图片转换为hashtag扩充特征。此外,数据和模型规模不够大也是过去研究存在的一个问题。经过广泛的实践证明,超参数越多的模型在迁移学习的过程中性能保留的最好。
Approach
自然语言监督
过去的部分工作介绍了与图像配对的文本中学习视觉表征的方法,都体现出了将自然语言作为训练信号的重要性。
优点:基于自然语言的方法可以被动地学习互联网上大量文本中包含的监督信息;在学习表征的同时,将表征和语言联系在一起,实现灵活的zero-shot。
创建足够大的数据集——WIT
背景:现有的大规模模型标注的标题往往基于自动生成,会出现与图片表征不匹配的现象。
创新:从互联网的开源资源中收集了4亿个图像文本的配对,构建新数据集。
有效的预训练方法——对比学习
最初尝试通过借鉴VirTex的工作,从头开始联合训练图像CNN和文本transformer,来预测图像的标题,说白了就是预测任务,但是得到的结果不是很好。因此引入了对比学习的方法:
训练一个系统来构建代理任务,预测哪一个文本和图像在特征空间的相似程度即可。在预训练部分,通过联合训练图像encoder和文本encoder,使批次中的N个真实配对的图像和文本嵌入的余弦相似度最大化,同时使N^2-N个错误配对的嵌入余弦相似度最小化,从而实现多模态的嵌入空间。
投影过程:非线性投影和线性投影不存在差异,推测非线性投影只在自监督的表征学习方法中和当前的图像细节共同适应。
图像增强:裁剪;
温度系数:自回归;
其算法实现的伪代码如下所示:
在训练的过程中证明了ViT的效率还是远高于ResNet的。
CLIP相关工作
分割领域(LSeg)
将文本信息添加到有监督的图像分割模型中,zeroshot在分割领域还是弱于有监督的模型,此外作为标签的单词并不一定代表标注的位置;
GroupViT(分割)
基于的技术为grouping方法,即从某个像素点开始向周围进行扩散,最终确定分割边界。开始时确定固定的类别数,然后通过transformer进行学习判断哪些patch的类别。对于每一个类别而言,都可以确定一个具体的token,将这个token进行汇总,最终得到图片的8个特征token。将这8个token进行average之后和文本的token进行对比学习确定损失,这里使用到了CLIP。
为什么zeroshot的无监督在部分数据集上的结果会明显低于有监督的模型呢?主要原因其实是CLIP在训练的过程中使用的数据都是明确的语义和图像的配对,因此在图像分割时对于较为模糊的语义时会匹配到错误的答案。
目标检测
VILD
将CLIP作为teacher模型进行蒸馏,引言写的非常好。整体上分为image ViLD和text ViLD
GLiP
提供prompt直接检测图像中的对象,将目标检测和pharse grounding进行合并。在目标检测部分,损失函数计算如下:
生成领域
CLIPasso
对图像进行简化,最终简化成简笔画。
限制:只有当图像的背景是白色时才能有很好的效果,作者的解决方法是进行抠图,可能不是最优的解决方法,因此可能会有新的端到端的解决方法;此外,初始化的笔画是同时生成的,不是序列生成的,这和人的行为相反。后续的工作或许可以从笔画顺序进行分析;最后,在进行简化时必须进行笔画数量的限定。
CLIP4Clip
视频-文本检索领域。这篇文章从三个方面分析了如何利用CLIP对视频进行检索:对于视频数据,因为相较于图片增加了时序信息,因此作者在获取文本嵌入和每一帧的图像嵌入之后,分别带入三个模型进行训练;
- mean-pooling:将每一帧的图片特征进行平均计算得到一个特征,即转化为文本-图像的检索过程;
- transformer:对于视频中的图片使用注意力机制得到特征比对;
- 在没有进行文本和图片嵌入时,将所有信息放在一个transformer中进行训练;
limitation:学习率在这三个模型中起到了非常重要的作用;
ActionCLIP
动作识别
AudioCLIP
PointCLIP
利用深度信息进行检索,也是可以参考的一篇文献。