cvpr2020_CPNet_ Context Prior for Scene Segmentation

0. 写作目的:

      好记性不如烂笔头。

 

1. 问题

   目前的方法很少区分,不同类之间的上下文依赖,这可能会影响精度。

如:

cvpr2020_CPNet_ Context Prior for Scene Segmentation

 

2. 解决方法

作者使用Context Prior 来同类和不同类的(类内和类间)的关系进行建模。

作者引入 亲和力loss(affinity loss) 来监督 Context Prior layer 来学习 Context Prior Map.

同时设计来了 Aggregation Module 来进行融合空间信息(与GCN类似)。

 

3. 模型架构

 

cvpr2020_CPNet_ Context Prior for Scene Segmentation

Aggregation module:k = 11,由实验得到的

cvpr2020_CPNet_ Context Prior for Scene Segmentation

4. Affinity  Map GT 的生成

H * W * C 进行 reshape到 N * C,然后A = L * L^T ,即可得到每个位置在全局位置中同类的二值,即同类的话对应位置为1,非同类对应为0

A =N * N 其中, N = H * W

cvpr2020_CPNet_ Context Prior for Scene Segmentation

5. Affinity loss 的计算

对 Affinity map的 loss: 独立loss + 区域loss

 

cvpr2020_CPNet_ Context Prior for Scene Segmentation

cvpr2020_CPNet_ Context Prior for Scene Segmentation

cvpr2020_CPNet_ Context Prior for Scene Segmentation

最终的loss:作者也使用 辅助loss ,辅助loss的权重为0.4, 其他loss权重为1 。

  cvpr2020_CPNet_ Context Prior for Scene Segmentation

6. 实验结果

  在两个数据集上能提高mIOU 1%左右。

cvpr2020_CPNet_ Context Prior for Scene Segmentation

监督得到的Affinity map: 

cvpr2020_CPNet_ Context Prior for Scene Segmentation

cvpr2020_CPNet_ Context Prior for Scene Segmentation

cvpr2020_CPNet_ Context Prior for Scene Segmentation

 

 

There may be some mistakes in this blog. So, any suggestions and comments are welcome!

 

注: 文中的图片来自于paper。

[Reference]

   paper: https://arxiv.org/abs/2004.01547

   code: https://github.com/ycszen/ContextPrior