Context Encoding for Semantic Segmentation

论文发表于2018年的 CVPR。

原文链接:https://arxiv.org/abs/1803.08904

源码链接:https://github.com/zhanghang1989/PyTorch-Encoding


导读与概述#

在这篇文章中研究了CNN特征图的全局上下文信息对于分割的影响,文章提出一个问题,此前的工作中通过增加 CNN 网络层数和感受野或使用膨胀卷积,是否就能更好的提取全局的上下文信息?

对此文章借鉴了channel-wise attention的思路对特征图进行优化,而对于目标分割任务(或者分类任务)提出了基于attention机制的Enc模块,使用attention的方式(编码器不同)增强特征的表达(Context Encoding Module)。

此外对于传统上分割损失存在的偏心眼儿情况(对小目标不是很友好),在Enc模块基础上增加了基于GT像素类别先验监督的SE损失(与分类区域大小无关只与类别相关),进而引导更具表达能力特征的生成。

总的来说,文章的工作如下:

  • 文章提出一种与类别预测相关的网络结构,使得在一定程度上降低了分割任务的难度,同时提高了小物体的分割精度。

  • 文章提出上下文语义编码模块类别预测模块,在某种程度上解决或减轻了分割问题中类间样本不均衡的问题。

Introduction#

论文的两个主要贡献:

  1. 提出了Context Encoding Module。在Context Encoding Module中还包含Semantic Encoding Loss(SE-Loss),一个利用全局场景上下文信息的单元。Context Encoding Module可以捕获场景的语义上下文并选择性地强调与类别相关的特征图。常规的训练过程中只用了逐像素的分割loss,没有充分利用场景的上下文。引入Semantic Encoding Loss(SE-Loss)来正则化训练,让网络预测在某场景中某物体种类出现的概率来加强网络学习语义上下文。而且SE-Loss同等对待大物体和小物体,在实践中发现小物体的实际分割效果有提升。Context Encoding Module方法与现有的FCN方法兼容。

  2. 设计了一个语义分割网络Context Encoding Network (EncNet)。EncNet在预训练的ResNet中通过引入了Context Encoding Module强化网络。使用了dilation convolution。

Context Encoding Module#

由上图可以看出,在这个网络结构中,我们使用预训练的CNN提取出丰富的特征,并使用全连接层 FC 进行编码,其中一个编码分支直接送给 SE-loss,进行场景中出现类别的预测;另一个分支对每个类别预测加权的尺度因子,然后这个加权的尺度因子对前面提取出的每个通道的类别进行加权,然后再进行后面的上采样,最终计算loss。
posted @   HeyRay_Yang  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩