DenseCLIP:Language-Guided Dense Prediction with Context-Aware Prompting
DenseCLIP:Language-Guided Dense Prediction with Context-Aware Prompting
论文地址:https://arxiv.org/pdf/2112.01518.pdf
受到CLIP的启发,该文作者将CLIP应用到了Dense Prediction任务上,其将原本CLIP中的image-text问题转换成了pixel-text问题,将image上的每个像素点对应K个类别的文本,每个像素点得到K个分数,从而产生了pixel-text score maps来指导密集预测模型。实验证明,DenseCLIP在语义分割、目标检测、实例分割上都取得了不错的效果。
1.DenseCLIP的整体框架:
传统的Dense Prediction模型框架的预训练是使用image进行监督学习或自监督学习,在用于下游任务时使用Image encode和image decoder对预训练的权重进行微调得到预测模型。而DenseCLIP的预训练是选择使用大量的image-text对进行对比学习(CLIP)。在下游任务中,将原text encoder的权重固定为原预训练权重,而是在得到image embedding和text embedding后,用image embedding对text embedding进行调整,最终得到pixel-text的score maps。
2.Language-Guided Fine-tuning结构
这里作者使用的Image Encoder是ResNet50来进行介绍DenseCLIP,具体细节如下:
对于该模型的Image Encoder,其中{xi}4i=1为ResNet50的四个block的输出的feature map,其中最后一层x4的大小为H4W4xC。CLIP中有一个attention pooling layer,其先将x4进行了global avg pooling,得到feature x 4大小为1xC,再对[ x 4,x4]做multi-head self-attention得到[z ,z],此时的z 的大小为1xC,z的大小为H4W4xC。对于text encoder,若有k个类,那么经过encoder得到的特征大小为K x C,于是拿image feature z去query text feature t从而得到相似度score map s:
s=z^t^TsϵRH4W4∗Ks=\hat{z}\hat{t} ^{T} \ \ \ s\epsilon R^{H_{4}W_{4}\ast K} s=z^t^TsϵRH4W4∗K
其中z和t表示z和t经过L2 normalized 的结果。这里的t,可能是先经过text encoder再经过vision information的refine,也可能先经过refine再经过text encoder得到的。
在模型中计算了两个损失分别为Auxiliary loss和task loss。对于Auxiliary loss,是使用score map和真实的segmentation map通过计算cross entropy作为辅助的loss。
对于语义分割任务(每个pixel都要分类正确),所以计算Auxiliary loss的公式为:
对于实例分割或者目标检测任务,计算Auxiliary loss的公式为:
y和y~都是对原尺度进行下采样的结果。
对于task loss,则需要使用score map和image feature经过image decoder后得到预测结果,然后与label进行cross entropy得到最终的loss。
Context-Aware Prompting
其方法与CoOp相似,但对比CoOp,CoOp仅仅是一个可学习的张量,并没有包含视觉信息,而DenseCLIP则采用的是Vision-to-language prompting,即在learnable context中引入一些视觉信息。作者介绍了两种refine方式:pre-model prompting和post-model pronpting。其中pre-model prompting是用视觉信息refine 在 text encoding 之前的context,而post-model prompting是用视觉信息refine在text encoding之后的context。
Pre-model prompting具体操作
这种方法是在进行text encoder之前进行学习视觉信息,首先引入了一个query张量q,q的大小为NxC(N为text中context length,C为图像通道数),和视觉特征(图片执行完image encoding后的特征)做cross-attention得到视觉信息 vpre,其大小为NxC。计算公式如下:
vpre=TransDecoder(q,[zˉ,z])v_{pre} = TransDecoder(q,[\bar{z},z]) vpre=TransDecoder(q,[zˉ,z])
用vpre替换CoOp中的learnable context。
Post-model prompting具体操作
这种方法是在进行text encoder之后进行学习视觉信息,先按照正常计算的带text feature t,t大小为K x C,使用t去query得到的视觉特征[z,z],得到vision context vpost ,其带下为K x C,再拿vpost去refine 文本特征t,计算公式如下:
vpost=TransDecoder(t,[zˉ,z])t←t+γypostv_{post} = TransDecoder(t,[\bar{z},z]) \\ t\leftarrow t+\gamma y_{post} vpost=TransDecoder(t,[zˉ,z])t←t+γypost
其中y是可学习的,其用于控制残差的scale。
最终作者在实验中发现,post-model prompting的效果较好,故使用post-model prompting方法。
Limitation:在检测上的效果提升不是特别显著,作者分析的原因是CLIP在预训练时并没有和定位有关的约束。
3.总结
DenseCLIP将CLIP模型应用到了密集预测任务中,将原来的只使用image encoder进行预训练并在下游任务中微调,修改成了使用image encoder和text encoder进行预训练(CLIP),并在微调时,将text encoder的权重固定,只训练image encoder和image decoder中的权重。DenseCLIP成功的将文本信息运用到了图像的密集预测任务中。
DenseCLIP:Language-Guided Dense Prediction with Context-Aware Prompting相关推荐
- 运行结果展示 |(DPT)Vision Transformers for Dense Prediction
代码地址:isl-org/DPT: Dense Prediction Transformers (github.com) 这篇文章的环境非常好配,几乎没有报什么error,按照readme ...
- 【论文阅读】DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting
一篇CLIP应用在语义分割上的论文 论文标题: DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting 作者信 ...
- Anchor-free目标检测综述 -- Dense Prediction篇
早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作 ...
- 【Transformer】DPT: Vision Transformer for Dense Prediction
文章目录 一.背景和动机 二.方法 2.1 Transformer encoder 2.2 Convolutional decoder 2.3 处理不同输入大小 三.效果 3.1 单目深度估计 3.2 ...
- 《Channel-wise Knowledge Distillation for Dense Prediction》论文详解
原文地址:<Channel-wise Knowledge Distillation for Dense Prediction> 代码地址: https://git.io/Distille( ...
- Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext 参考文 ...
- 【李宏毅《机器学习》2022】作业1:COVID 19 Cases Prediction (Regression)
文章目录 [李宏毅<机器学习>2022]作业1:COVID 19 Cases Prediction (Regression) 作业内容 1.目标 2.任务描述 3.数据 4.评价指标 代码 ...
- 密集预测/Dense Prediction
密集预测/Dense Prediction 密集预测/Dense Prediction
- dense prediction的理解
看语义分割文章,常常会看到dense prediction, 英语直译是密集预测,dense prediction 实际上是给图像上的每个像素预测一个类别,由于一般图片的像素都很多,直观上看很密集,所 ...
最新文章
- 《正则表达式必知必会》读书笔记
- SpringBoot 使用(三): 配置文件详解
- 一个文件夹就是一个信息系统
- linux考试基础知识测验
- 字节流写数据的三种方式
- figma下载_Figma和ProtoPie中的原型制作,比较
- 我是一个硬盘(开始以为是一个笑话,看到最后会发 ...
- 如何最快速的找到页面某一元素所绑定的点击事件,并查看js代码
- 8. JavaScript 全局对象
- 2篇word文档比较重复率_【软件】PDF转word黑科技 快来get!
- java关键字false_无聊,null,true,false是java关键字吗
- 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功举行.DOC...
- VB浏览器html5网页,VB用IE浏览器打开网页源码,及用其它指定的浏览器打开网页源码。...
- 软件平台与中间技术复习
- Unity网格编程篇(四) 三维温度图、热力图
- 【SpringBoot项目实战】之Chrome谷歌浏览器全屏
- 带缓冲的输入/输入流
- 关于CFD计算过程的梳理
- 百度音乐API抓取-Fiddler
- android5自动刷,nexus5怎么刷Android5.0 nexus5刷Android5.0教程