语义分割联合边缘检测的多任务学习思路总结

简述

2020二维图像语义分割的热点方向是域自适应语义分割(Domain Adaptive Semantic Segmentation),半监督/弱监督语义分割(Semi-Supervised/Weakly-Supervised Semantic Segmentation),少样本语义分割(Few-shot Semantic Segmentation)等。基于Encoder-Decoder结构的网络模型已经将语义分割的性能大大提升,相关研究进入了瓶颈期,大家都在思考从实时性、NAS、图卷积、自监督等其他方面着手考虑。另外,小物体和边缘分割仍然是值得思考的出发点,最近两年的一些研究通过多任务学习,利用边缘分支设计损失联合提升语义分割性能。在这里,总结下最近阅读的几篇通过采用边缘检测作为辅助信息,联合语义分割进行多任务学习的方法。

几种思路

  1. ICCV2019的Gated-SCNN:Gated Shape CNNs for Semantic Segmentation认为通过一个深度CNN网络同时处理图像的颜色,形状和纹理信息用于像素级分类可能不是理想的做法,因此该论文提出two-stream CNN结构,将形状信息作为单独处理的分支。两分支包括shape stream和regular stream,二者相互协作且是并行的,通过设计的门控卷积层和局部监督损失有效地移除了噪声并帮助shape stream仅仅处理与边界相关的信息,然后通过ASPP模块保留多尺度上下文信息,融合regular stream的语义区域特征和shape stream的边界特征产生refined的分割输出,尤其refine在边界周围的像素分割。
    语义分割联合边缘检测的多任务学习思路总结_第1张图片
    网络结构如上图所示,regular stream可以是任何前向全卷积网络,如Resnet-101,WideResNet等。Shape stream是一系列 1 × 1 1\times1 1×1卷积,残差块和GCL(Gated Conv Layer)的组合,该分支的输入包含两项,原始图像梯度和regular stream分支的第一个卷积层输出(应该指的是Resnet中的第一个stage输出)。门控卷积层实际上可以看成是一种注意力机制,可以根据regular stream的高层次信息去指导shape stream集中在边界部分(edge bce loss才是驱动力),其具体计算方式见原论文,然后ASPP在多尺度上融合两个分支输出的特征图,最后输出语义分割图。上图的edge bce loss是局部监督损失,监督的是shape stream还没送到ASPP前的边界概率图,segmentation loss是交叉熵损失(CE loss),监督最终输出语义分割图,更新包括ASPP的所有参数,dualtask loss是双任务的正则化损失,基于边界预测和边界区域语义分割的二元性和边界预测和语义预测的一致性思想设计。

  2. CVPR2020的Improving Semantic Segmentation via Decoupled Body and Edge Supervision认为卓越性能的语义分割要求显示建模目标主体和边界,分别对应图像的低频和高频部分。原始图像可分解为低频和高频分量,因此假定语义分割网络输出的高语义层次特征图也能被解耦为两部分:主体特征和边界特征。主体特征通过基于流场的方法,学习偏移量变形目标内部像素特征生成,边界特征则是输出特征图减去主体特征获得。边界像素分类是困难的,解耦成主体特征会提升目标内部像素的一致性(减少了来自边界损失带来的噪声);解耦成边缘特征可以专门设计针对边界像素进行难例挖掘的损失。
    语义分割联合边缘检测的多任务学习思路总结_第2张图片
    生成主体特征是follow FlowNet-S的做法,先根据原始特征图F去获得flow field图,然后根据类似双线性插值的公式,根据flow field图变形原始特征图F生成主体特征,残留边缘特征由原始特征图F减去主体特征得到。解耦后的主体特征和边缘特征会由专门设计的损失监督进行refine,接着再利用refine后的两部分特征等重构最终特征,主体特征由边界松弛损失监督(弱化边界处的像素具体分类,见原始论文),边缘特征由二值交叉熵损失监督,最终特征由交叉熵损失监督,还设计了根据边缘预测得到的边界对语义分割最终预测进行难例挖掘,多任务学习联合提升性能。

  3. CVPR2020的Joint Semantic Segmentation and Boundary Detection using Iterative Pyramid Contexts提出联合多任务学习框架用于语义分割和语义边缘检测,其关键设计是迭代的金字塔上下文模块(Pyramid Context Module),耦合两个任务并存储共享的潜在语义进行两个任务之间交互。对于语义边界检测,提出新的空间梯度融合去抑制非语义边界,并引进带边界一致性约束的二元损失函数去提升边界像素正确率。语义边界检测是多标签任务,不同于前面两篇论文的二值边缘检测,其目的是识别属于目标边界的像素类别,二值边缘检测忽视了边界的语义信息。
    语义分割联合边缘检测的多任务学习思路总结_第3张图片
    Backbone是带空洞卷积的残差网络,交替通过PCM模块refine特征图,经过S个步骤后可得到足够好的特征图用于语义分割和语义边缘检测。语义分割概率图通过空间梯度计算得到语义边界概率图,并根据语义边界概率图计算二元损失,帮助抑制语义边缘检测任务中的非语义边界,得到refine后的语义边界概率图,提升边界像素分类效果。语义分割mask由交叉熵损失监督,经过refine后的语义边界概率图由语义边界损失监督,PCM和损失的设计见原始论文。

总结

联合边缘检测和语义分割进行多任务学习,提升语义分割性能是一个可取的做法,Gated-SCNN和DecoupleSegNets都是利用二值边缘检测联合语义分割来提升性能,最后一篇的RPCNet则是利用语义边缘检测联合语义分割进行多任务学习,两者的耦合性更一致。

你可能感兴趣的:(语义分割,深度学习)