[pdf][arxiv]
Question
CLIP驱动的基于文本的实例分割
基于文本的实例分割,大概就是给出一段文字,然后在图片中标注出符合描述的一片区域,本文中该任务是有监督的,数据集中有文本以及对应的图片和分割出的区域
CLIP驱动,但是和CLIP并不一样,大概就是运用了CLIP的思路,但并不是使用预训练好的CLIP
Method
CLIP是图片级别和文本的对齐,在该任务中并不适用,我们需要更加细粒度的对齐,找出文本对应的像素
上图为本文中与CLIP不一样的地方,当我们使用Image Encoder和Text Encoder提取出特征之后,会使用两个特征经过一个Decoder生成图像和文本相结合的特征V,按照后文的描述,可知V∈RN×D,且T∈RD,其中D是特征的维度,N=4H×4W,所以V含有的是整张图片不同位置的特征
综上,T和V的生成就相当于将文本和图片的不同部位嵌入到同一个空间中,而因为ground truth的存在,我们知道V中哪些部分的特征应该与T更加相似,所以该文章采用对比学习,使V中ground truth覆盖位置与T的相似度更高,而其他位置的特征与T的相似度更低
下面是该方法的详细流程
Image Encoder,输入图片I∈RH×W×3,利用ResNet的第2-4个阶段的视觉特征,并分别定义为Fv2∈R8H×8W×C2,Fv3∈R16H×16W×C3,Fv4∈R32H×32W×C4
Text Encoder,如下图,没太看懂,总之提取出了Ft∈RL×C和Fs∈RC′
Cross-modal Neck,这部分将图片特征与文本特征结合,使用了一些全连接层和卷积层,提取出了特征Fv∈RN×C,N=16H×16W,流程如下
Fm4=Up(σ(Fv4Wv4)⋅σ(FsWs))
Up(⋅)为2倍的上采样
Fm3=[σ(Fm4Wm4),σ(Fv3Wv3)]
Fm2=[σ(Fm3Wm3),σ(Fv2′Wv2)],Fv2′=Avg(Fv2)
Avg(⋅)为核大小2×2且步长为2的平均池化层
Fv=Conv([Fv2,Fv3,Fv4])
以上σ为ReLU函数,[⋅]为concat操作,W都为可学习的参数矩阵,此外,还有个Fcoord不知道咋来的,文中只说是2D空间坐标特征,且Fcoord∈R16H×16W×2
最后提取出的Fv∈RN×C,N=16H×16W
Vision-Language Decoder,这部分主要是使用注意力机制,使用了自注意力机制MHSA(⋅)和交叉注意力机制MHCA(⋅),流程如下
Fv′=MHSA(LN(Fv))+Fv
Fc′=MHCA(LN(Fv′),Ft)+Fv′
Fc=MLP(LN(Fc′))+Fc′
LN(⋅)为Layer Normalization,这部分图中还有个超参数n,但是文中没说,会在实验部分讨论
Text-to-Pixel Contrastive Learning,这部分即是开头说的对比学习部分,用下面公式获得上述的V和T
zv=Fc′Wv+bv,Fc′=Up(Fc)
zt=FsWt+bt
zt∈RD,zv∈RN×D,N=4H×4W,W和b都是可学习的参数
然后使用以下对比学习loss进行训练
Lconi(zt,zvi)={−logσ(zt,zvi)i∈P−log(1−σ(zt,zvi))i∈N
Lcon(zt,zv)=∣P∪N∣1i∈P∪N∑Lconi(zt,zvi)
P和N分别是在ground truth中类别为1和0的集合
Results
消融实验如下,前文中的n是decoder的层数
下面是与其他方法的对比
下面是一些效果图
总结
虽然是用CLIP驱动的,但是和CLIP并不完全相同,将图片换为了不同位置的特征,然后又巧妙地运用了图片和文本特征在同一个空间中的特点,将对比学习融入了进去,感觉是一个值得一看的方法,之后说不定能用上
但是该论文没有代码,实验结果也不多,而且效果看起来也并没有太好,比如滑雪的三个人被遮盖的地方就无法分割出来,这方向论文没有看太多,所以不知道还能不能改进