DecoupleSegNet结构解读

Title

Improving Semantic Segmentation via Decoupled Body and Edge Supervision
通过解耦部分和边缘监督改进语义分割
解耦是什么?这里指的应该就是将图像拆分为edge部分和body部分,然后分别监督学习,最后再将两者合并

Abstract

  1. 其他人的观点:现存的语义分割方法要么通过全局上下文信息(global context)提升物体内部连续性,要么通过多尺度特征融合沿着物体边缘提炼细节。
  2. 作者的观点:较好的语义分割模型需要显性地(explicitly)勾勒出物体的内在部分和边缘,其中内在部分对应的是图像的低频率部分,边缘对应的是图像的高频率部分
  3. 如何做?为了达到这个目的,作者先通过学习一个使得物体部分更连续的流动域(flow field) 来扭曲(warp)图片特征。再通过显性地采集内在部分或边缘像素在解耦监督(decoupled supervision) 下进一步优化目标内在部分的特征和边缘特征。
  4. 如何体现效果好?作者提出的这种架构在多个backbone上的物体内部连续性(比如交通标志会被识别得更完整)和物体边缘都更好了。在四个主要的道路场景语义分割数据集(Cityscapes, CamVid, KIITI和BDD)我们的方法都很好,也保持了很高的效率。尤其是在仅有细节注释数据的Cityscape取得了83.7%的mIoU.
  5. 关键词:语义分割,边缘监督(edge supervision),流动域(flow field),多任务学习(multi-task learning)

Introduction

在这里插入图片描述

语义分割的定义,语义分割在各领域都很重要balabala
虽然FCNs已经在很多主要的语义分割基准测试中取得了很好的效果,它们还是有如下两个主要问题:

  1. FCNs的感受野随着深度的增加增长得很缓慢(线性增长),这样有限的感受野没办法完全拟合像素之间的更长关联。因此这些像素点很难分类,因为模糊和噪声会在物体内部出现。
  2. FCNs的下采样操作会模糊预测,因为从原图像与低分辨率图像相比较来看,很多较好的细节消失了。这样导致的结果是预测的分割块会比较破碎(blobby)而且边缘细节很不令人满意,尤其在小物体上表现很差。

针对这两个问题,已有的解决方案分别如下:

  1. 扩大感受野,例如空洞卷积(dilated convolution),金字塔池化模块(pyramid pooling module),non-local operators,graph convolution network(GCN),dynamic graph
  2. 将包含边缘信息的低层次特征嵌入高层次特征中或直接提炼低层次特征产生output
    不过这些方法忽略了物体内部本身和物体边缘的联系。从另一个角度看,人类辨别物体其实看的就是一个整体,也就是物体内部本身和物体边缘的结合。由此启发,作者显性地探索了物体本身和边缘的关系来取得最终的语义分割结果。请看Fig. 1(a)前两行,通过使用均值或高斯滤波器得到平滑图像(低频率图像),再使用原始图像减去平滑后的图像就能得到高频率部分。也就是一张图像 = 描述平缓变化结构的低空间频率部分 + 表示快速变化细节的高空间频率部分。同理,分割的遮罩(segmentation mask)也可以以这种方式分解,原始部分 - 主体部分 = 边缘部分。受到这个观察的启发,作者假设一个语义分析的特征图也可以被分解为主体特征和边缘特征(见Fig. 1(b))。前者包含了平滑的低频率物体主体,后者包含了锐利的高频率边缘特征。

在这篇文章中,作者提出用显性地在特征层面拟合物体主体连续性和边缘保护然后将他们在统一的框架下来共同优化。
三个步骤如下:

  1. 用新型的基于流的方法(flow-based method)通过使每一个像素经过一个学习过的偏移域(a learned offset field)向物体内部弯曲从而生成物体本身特征表示。这样可以保持每个物体内部部分连续性。
  2. 通过显性地用原图片 - 物体本身之后可以得到边缘特征。物体特征是通过遮罩(mask)监督的,其中边缘在训练时被忽略。边缘特征是通过另一个边缘遮罩(edge mask)监督的,这是为了学习对边缘的预测。
  3. 两个最优的物体本身特征和边缘特征被结合在一起形成最终答案。

因为物体主体生成部分是通过下采样完成的,所以边缘信息不够准确。作者使用了标签松弛(label relaxation)在主体生成的训练过程中松弛物体边缘,这使得边缘和主体能互相吻合。这样两个部分都可以被结合到单一特征中从而作为重新构造的一种表示方法,这种表示方法可以被交叉熵损失函数监督。进一步来说,这种结构是轻量级的而且可以被结合到FCNs中来提升性能。
这篇文章的贡献如下:

  • 提出了一种解耦物体主体和边缘的方法,物体主体和边缘可以分别使用不同方法来监督。
  • 提出轻量级的基于流(flow-based)的整合模块。通过使每一个像素经过一个学习过的偏移域(a learned offset field)向物体内部扭曲来维持每个物体主体部分的连续性。
  • 这种模块可以与FCNs结合来用可忽略的代价来提升性能。

Method

在这里插入图片描述

Decoupled segmentation framework

输入一个特征图 F ∈ R H × W × C F \in \mathbb{R}^{H \times W \times C} FRH×W×C,其中 C C C代表通道数, H × W H \times W H×W代表空间分辨率(spatial resolution),输出一个同样大小的提炼过的特征图 F ^ \hat{F} F^
首先, F F F被分为 F b o d y F_{body} Fbody F e d g e F_{edge} Fedge。在这篇文章中,作者假设 F = F b o d y + F e d g e F = F_{body} + F_{edge} F=Fbody+Fedge,目标就是设计出带有特定监督方式的组件来分别处理 F b o d y F_{body} Fbody F e d g e F_{edge} Fedge这两个部分。如何达到呢?先通过物体主体生成模块(body generation module)再通过显性的减法获得边缘部分,数学推导是已知 F b o d y = α ( F ) F_{body} = \alpha(F) Fbody=α(F) F e d g e = F − F b o d y F_{edge} = F - F_{body} Fedge=FFbody,然后提炼过的特征图 F ^ = ϕ ( F ) + φ ( F e d g e ) = F b o d y + φ ( F − F b o d y ) \hat{F} = \phi(F)+\varphi(F_{edge}) = F_{body}+\varphi(F - F_{body}) F^=ϕ(F)+φ(Fedge)=Fbody+φ(FFbody),其中 ϕ \phi ϕ代表物体主体生成模块(body generation module),作用是将物体内部的上下文信息整合起来为每个物体组成一个主体, φ \varphi φ代表边缘保护模块。

Decoupled body and edge supervision

在这里插入图片描述
L b o d y L_{body} Lbody代表body部分,用的是上文提到的relaxation方法(boundaries relaxation loss,论文Zhu, Y., Sapra, K., Reda, F.A., Shih, K.J., Newsam, S., Tao, A., Catanzaro, B.:Improving semantic segmentation via video propagation and label relaxation. In:CVPR. (2019)),这里不多讲。 L f i n a l L_{final} Lfinal代表总体(包括body和edge在内),就是最普通的求交叉熵。下面是 L e d g e L_{edge} Ledge再细分:
在这里插入图片描述
在这里插入图片描述
L e d g e L_{edge} Ledge再细分为 L b c e L_{bce} Lbce L c e L_{ce} Lce,bce代表binary cross entropy,上文提到求过一个binary的edge map,这个 L b c e L_{bce} Lbce就是用来判断像素点是不是edge的(正好是binary的,不是1(正确)就是0(错误))。 L c e L_{ce} Lce不要看它写那么复杂,其实也是cross entropy,具体可看原文。
这其中体现的思想也是将body,edge分开求loss。


对自己提问

(1) What did the authors try to accomplish? (作者想要实现什么?)
通过分别对object body和edge求loss来提高已有模型的精度(这个框架可以作为一种loss套在别的框架上,比如deeplab)
(2) What were the key elements of the approach? (论文关键点是什么?)

  • Decoupled body and edge supervision的部分

(3) What can you use yourself? (自己能如何使用?)

  • 套用该框架来提高准确率
  • 不要忽略了传统数字图像处理中的边缘分割(canny,sobel等等,小波等等)的一些技术
    (4) What other references do you want to follow? (有哪些参考是你想要跟进了解的?)
    deeplab系列都不太懂。。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值