【原】Context Encoding for Semantic Segmentation

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

提出上下文语义编码模块与类别预测模块,在某种程度上解决或减轻了分割问题中类间样本不均衡的问题,而这类问题在以像素为度量的损失函数中是非常常见的。


在本文中,我们通过引入上下文编码模块来探索全局上下文信息在语义分割中的影响,上下文编码模块捕获场景的语义上下文并选择性地突出显示与类相关的特征图。
在标准的训练过程中,只应用具体的每个像素的分割损失,并不很强调使用场景的全局上下文信息。
这里引入一种语义编码损失函数SE-loss,使得训练更加系统化。
这种损失函数会预测场景中出现的物体类别,来加强网络学习上下文语义信息的能力。
不像针对每个像素的损失函数,SE-loss对每个物体,不管大小,都是同等对待的。因此,我们发现在使用这个损失函数后,好多小物体的分割效果变好了。
这其实是一种解决或减轻类间样本不均衡问题的方法,这类问题在分割任务中是非常常见的。

这里提出的上下文编码模块与语义编码损失函数SE-loss,在概念上是直接了当的,并且与之前的FCN方法都兼容。

本文的第二个贡献就是设计并实现一种新的语义分割架构,Context Encoding Network (EncNet).

从图中可以看出,这个网络结构中,对前面网络提取出的丰富的特征使用全连接层FC进行编码,其中一个编码分支直接送给SE-loss,进行场景中出现类别的预测;另一个分支对每个类别预测加权的尺度因子,然后这个加权的尺度因子对前面提出的每个通道的类别进行加权,然后再进行后面的上采样,最终计算loss。

特征注意力:

这种方法在前面获取的特征图基础上,使用全连接层对每个类别预测权重,也就是文中所说的尺度因子,然后使用sigmoid进行归一化尺度。之后,再用生成的尺度去乘前面得到的特征图,作为后面模块的输入。这种方法受启发于风格转移与SE-NET等方法。

语义编码损失函数:

在标准的语义分割训练过程中,网络是从分离孤立的像素点中学习到的(对于每个输入的图像与标签,使用像素级别的交叉熵损失函数)。网络在学习全局上下文信息的时候可能会有一定的困难。为了规范化上下文编码模块的训练过程,这里引入一种上下文语义编码损失函数,即用来预测场景中出现的类别,使用二值交叉熵损失函数。与像素级别的交叉熵损失函数不同,SE-loss只考虑类别信息,对每类中像素的数量不关心,这样每类都是平等的,不存在类间样本数量不均衡的问题。

在实际应用中,我们发现小物体的分割效果往往被提高了。

上下文编码网络 Context Encoding Network (EncNet)

由于语义编码模块与语义编码损失函数非常的轻量,所以在本文的网络中加了两个这样的模块,分别在第三阶段与第四阶段。

从上表中可以看出,使用上面两个模块后,像素级的准确率提升5个百分点,mIoU提升8个百分点。




猜你喜欢

转载自blog.csdn.net/lanyuxuan100/article/details/79765793