Loading

Cross Language Image Matching for Weakly Supervised Semantic Segmentation论文阅读笔记

摘要

目前的类激活图通常只激活区分度较高的目标区域,且会包含与目标相关的背景(文章中举例为如果要分割的是火车,轨道对分类也有一定的贡献,而轨道作为背景不应该被分割)。为解决这一问题,作者提出了一种基于CLIP的跨语言图像匹配框架CLIMS,引入自然语言作为监督信号,从而更准确、紧凑地激活目标区域。

方法

截屏2023-03-01 21.00.16

上图中,先通过backbone得到CAM,记为P(注意这里没有GAP):

\[P_k(h,w)=\sigma(W_k^TZ(h,w)) \]

为了能够识别其他的物体类别,作者提出了基于CLIP的tex-driven evaluator,其包含一个image encoder \(f_i\)以及一个text encoder \(f_t\),用\(P_k\)以及\(1-P_k\)对原图处理得到对于当前类k的前景物体与背景物体,分别送入\(f_i\)得到\(v_k^{io}\)\(v_k^{ib}\)

\[v_k^{io}=f_i(X·P_k),v_k^{ib}=f_i(X·(1-P_k)) \]

对于文本特征,第k个类的文本prompt表述\(t_k^o\)为:"a photo of {}",如"a photo of train",与之相关的背景文本prompt表述\(t_{k, l}^b\)则是预先定义好的,例如对于boat这个类的背景表述\(t_{k,o}^b\)为"a photo of a lake",\(t_{k,1}^b\)为"a photo of a river",分别送入text encoder得到\(v_{k}^{to}\)以及\(v_{k,l}^{tb}\)

\[v_{k}^{to}=f_t(t_k^o),v_{k,l}^{tb}=f_t(t_{k,l}^b) \]

其中k,l指的是对于类别k的第l个相关的背景。

得到了这些特征之后,就可以计算损失了。第一个损失是物体区域与文本标签的匹配损失\(L_{OTM}\)

\[L_{OTM}=-\Sigma_{k=1}^Ky_k·log(s_k^{oo}) \]

如果当前图像的标签中有第k个类的话则\(y_k=1\)\(s_k^{oo}\)\(v_k^{io}\)\(v_k^{to}\)的余弦相似度。

第二个损失是背景标签与文本区域的匹配损失\(L_{BTM}\)

\[L_{BTM}=-\Sigma_{k=1}^Ky_k·log(1-s_k^{bo})\\ s_{k}^{bo}=sim(v_{k}^{ib},v_k^{to}) \]

这个损失的目的是尽量减小与背景的相似度。

上述两个损失只能保证P完全覆盖目标对象,没有考虑到对于与当前类别共同出现的背景类别的错误激活。为此,作者提出了共现背景抑制损失\(L_{CBS}\)

\[L_{CBS}=-\Sigma_{k=1}^K\Sigma_{l=1}^Ly_k·log(1-s_{k,l}^{ob})\\ s_{k,l}^{ob}=sim(v_k^{io},v_{k,l}^{tb}) \]

如果仅有以上损失,当目标物体与不相关的背景一同出现时,CLIP仍然可以正确识别,因此,作者还设计了一个像素级别的区域正则项,限制激活图的大小从而保证不相关的背景被排除在\(P_k\)以外:

\[L_{REG}=\frac{1}{K}\Sigma_{k=1}^KS_k, S_k=\frac{1}{HW}\Sigma_{h=1}^H\Sigma_{w=1}^WP_k(h,w) \]

总的损失就是这四项损失的和,通过超参数加以调节:

\[L=\alpha L_{OTM}+\beta L_{BTM}+\gamma L_{CBS}+\delta L_{REG} \]

总的来说,就是借助这四项损失去优化分割网络,无需像素级别的gt就能达到很好的性能。推理时直接用训练好的backbone即可。

实验

截屏2023-03-01 23.51.03

截屏2023-03-01 23.51.19

截屏2023-03-01 23.51.37

posted @ 2023-03-01 23:55  脂环  阅读(70)  评论(0编辑  收藏  举报