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 ^ T     s ϵ R H 4 W 4 ∗ K s=\hat{z}\hat{t} ^{T} \ \ \ s\epsilon R^{H_{4}W_{4}\ast K} s=z^t^T   RH4W4K
其中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。计算公式如下:
v p r e = T r a n s D e c o d e r ( 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,计算公式如下:
v p o s t = T r a n s D e c o d e r ( t , [ z ˉ , z ] ) t ← t + γ y p o s t v_{post} = TransDecoder(t,[\bar{z},z]) \\ t\leftarrow t+\gamma y_{post} vpost=TransDecoder(t,[zˉ,z])tt+γ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成功的将文本信息运用到了图像的密集预测任务中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值