极简笔记 Context Encoding for Semantic Segmentation
极简笔记 Context Encoding for Semantic Segmentation
论文地址:https://arxiv.org/abs/1803.08904
文章核心贡献提出EncNet结构用于语义分割。其中主要有两点改进,在encoder-decoder结构最深层处加入context encoding module,同时引入SE-loss计算全图分类误差。
context encoding module首先在top layer引入encoding layer。这个是一作之前的一篇文章,记输入feature map为,记为输入向量个数。现在有K个同样是C维的字典向量,将N个输入向量和这K个字典向量算残差,再根据残差算权重,把权重再乘在残差上进行求和,最终输出是一个C维向量,公式如下:
其中的是可学习的权重。之后通过一个fc得到C维的权重作为attention mask乘在输入的feature map上,之后上采样8倍得到最终结果。
SE-loss是从encoding layer的输出,过另外一个fc层得到一个向量,每个元素表示该类别是否出现在该图中,用的cross-entropy loss。这样做的好处是小物体和大物体能够同等考虑,避免小物体在图像中占的像素少而对梯度反传影响力过小。当这个loss占权重0.2时效果最好。论文同样用了atrous conv,在backbone的C3和C4采用了空洞卷积和SE-loss。
ablation study result如下图,分析各部分改进对模型性能的提升。
和state of the art工作的对比。