图像分割 | Context Prior CPNet | CVPR2020 (2)

CPLayer的结构如下,突然一看还挺复杂的:

图像分割 | Context Prior CPNet | CVPR2020

CPLayer的输入认为是X,就是\(shape=H\times W \times C_0\);

X经过一个aggregation module变成了\(shape=H\times W \times C_1的\widetilde{X}\);

这里来看一下aggregation module是如何整合了spatial information:

图像分割 | Context Prior CPNet | CVPR2020

看起来就是用了两个并行的1xk和kx1的卷积,OK,这个地方不难。

\(\widetilde{X}\)经过一个1x1的卷积层和Sigmoid层,变成我们的prior Map (P),这个P的shape=HxWxN;

这里的P经过Affinity Loss的监督训练下,在理想情况下,P体现的就是像素之间的关系

之前得到了\(\widetilde{X}\),reshape成\(N\times C_1\)的形状,(这里的\(C_1\)其实就是最终要分类的类别数)

这里可以得到intra-class的信息\(Y=P\widetilde{X}\)

也可以得到inter-class的信息\(\bar{Y}=(1-P)\widetilde{X}\)

这里我提示一下,怎么理解这个intra-class呢?从P中,可以找到一个像素和其他同类别的像素,从\(\widetilde{X}\)中,可以找到所有像素预测概率。因此Y中的每一个像素的预测的概率值,其实是考虑了同类别的其他像素的预测值综合起来的结果。因此这是一个类内上下文的综合考虑。

\(F = concat(X,Y,\bar{Y})\)

5 细节

之前计算的affinity Loss在论文中是写作\(L_p\),

图像分割 | Context Prior CPNet | CVPR2020

其中\(L_u\)是unary loss一元损失,也就是二值交叉熵;

\(L_g\)是global loss,也就是整体的一个损失;

然后整个模型的损失:

图像分割 | Context Prior CPNet | CVPR2020

除了我们提到的\(L_p\),affinity loss,权重为1;

\(L_a\)是auxiliary loss ,权重为0.4

\(L_s\)是主要的main segmentation loss,权重为1.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdpjz.html