前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >商汤、港中文&南洋理工提出K-Net:图像分割通用框架来啦!

商汤、港中文&南洋理工提出K-Net:图像分割通用框架来啦!

作者头像
深度学习技术前沿公众号博主
发布2021-07-14 13:01:06
1K0
发布2021-07-14 13:01:06
举报
  • 链接: https://arxiv.org/abs/2106.14855
  • 代码: https://github.com/open-mmlab/mmdetection

【导读】一直以来,尽管语义分割、实例分割以及全景分割任务之间都有某种潜在的联系,但它们通常采用不同的网络框架来解决。本文首次探讨了语义分割中的卷积核概念是否同样适用于实例分割,以及更广泛的全景分割。为此,商汤&南洋理工大学提出了一个统一、简单、有效的框架K-Net。具体而言,它可以通过一组动态权重更新的卷积核来对实例和语义类别信息进行正确分割,然后,采用互相匹配的策略为每个卷积核分配学习目标,并进行端到端的训练。K-Net在全景分割任务上超越了所有当前最先进的单模型,并在MS COCO上实现了52.1% PQ,在语义分割任务上也超越了所有的单模型,并在ADE20K上实现了54.3% mIoU。最后,在实例分割任务上,它在MS COCO数据集上的性能表现与Cascade Mask R-CNN相当,但是,推理速度却比它快60%-90%。

介绍

在本文中,我们首次尝试利用卷积核的概念来构建一个统一而有效的框架,该框架可以连接看似不同的图像分割任务(语义、实例和全景)。我们的方法称为K- net(“K”代表核)。它从一组随机初始化的卷积核开始,卷积核根据当前的分割任务进行更新学习,即不断学习到语义类别信息的语义卷积核和实例信息的实例卷积核(如图1-(b))。此外,将语义卷积核和实例卷积核进行简单组合,自然地可以进行全景分割任务(如图1-(c))。在神经网络前向传递中,卷积核通过对输入特征图像进行卷积操作,得到相应的分割预测结果。K-Net的通用性和简洁性主要通过两个新颖的模块实现的。

  1. K-Net以一种动态地方式更新卷积核权重,使它们可自适应地激活特征图内容。这种基于内容的感知机制,可以确保每个卷积核(特别是实例卷积核)准确地响应图像中的不同物体,这一点在分割任务中至关重要。最后通过反复迭代的使用这种自适应的卷积核更新策略,K-Net显著提高了卷积核的识别和分割性能。值得注意的是,这种卷积核动态更新权重的策略普遍适用于所有分割任务。
  2. 受目标检测最新进展的启发,我们采用互相匹配的策略为每个卷积核分配学习目标。这种训练方法优于传统的训练策略,因为它在特征图像中的卷积核和实例之间建立了一对一的映射。因此,它解决了在一个映射中处理不同数量实例的问题。此外,它基于mask驱动的,不涉及边界框。因此,K-Net自然是nms-free和box-free的,因此,这种方案对于实时应用程序开发很友好.

模型方法

我们主要基于一种通用的卷积核视角来考虑各种分割任务。我们提出的K-Net可以使用一组卷积核将每个像素分配给一个潜在的实例或一个语义类别。为了增强卷积核的识别能力。本文主要使用以下两个策略:

  1. 通过对特征图的每个像素进行分组来更新静态卷积核。
  2. 我们采用互相匹配策略,以端到端方式训练实例卷积核,因此,K-Net可以无缝连接地应用于语义、实例和全景分割任务。
K-Net

尽管在各种分割任务上,我们对“具有语义信息的组”的定义不同,但基本上都是将每个像素分配给预定义的某个具有语义信息组。通常假设图像中的组数是有限的,所以我们可以将一个分割任务的最大组数设为N。例如,在语义分割中有N个预定义的语义类别信息组;在实例分割中最多有N个对象实例;在全景图像分割,N是图像中物体类别和实体的总数。因此,我们可以使用N个卷积核将一幅图像划分为N组,每个卷积核负责找到属于其对应信息组的像素。具体而言,给定B张输入图片,对于由深度神经网络生成的特征图,我们只需要N个卷积核与F进行卷积就可以得到相应的分割预测:

M = K \ast F

在语义分割中,每个卷积核负责在图像中找到所有相似类别信息的像素。而在实例分割中,每个像素组对应一个对象。但是,在这之前,实例分割是通过其它组件或者后处理等方式来对实例对象进行分割。这里,我们使用的是卷积核来对实例对象进行分割。所以,本文也是首次探讨语义分割中的卷积核概念是否同样适用于实例分割,以及更广泛的全景分割。与此同时,要使用卷积核来进行实例分割,K-Net中的每个卷积核最多只能分割图像中的一个对象(如图1-(b))。通过这种方式,K-Net就可以同时对实例进行识别和分割,无需额外的步骤,一次完成。为了简单起见以及便于区分,我们将用于语义分割和实例分割的卷积核分别称为语义卷积核和实例卷积核。最后,通过将实例卷积核和语义卷积核进行简单组合自然可以解决全景分割的问题(如图1-(c))。

Group-Aware Kernels

尽管K-Net很简洁,但直接通过卷积核来对实例进行分割并非易事。首先实例卷积核需要区分图像内和图像之间在尺度和外观上不同的对象。由于实例卷积核没有语义类别这样的通用显式特征,因此需要比静态卷积核更强的区分能力。为了克服这一问题,我们提出了一种方法,如图2所示,通过更新Kernel update head,可以使得卷积核能够自适应的对应到其匹配的像素组去。Kernel update Head 主要包含三个关键步骤:组特征融合、自适应卷积核更新和卷积核交互。

首先,利用掩模预测来对每个像素组特征进行融合;由于可以使用每个像素组的内容来进行区分,所以,我们可以使用来自适应的更新它们对应的卷积核,然后,卷积核之间进行交互,并对图像上下文进行整体建模。最后,得到的Group-Aware卷积核再与特征映射进行卷积,得到更准确的掩模预测。这个过程可以反复迭代进行,因为更精细的划分通常会降低每组特征中的噪声,从而产生更多的具有较强判别能力的卷积核。这个过程可以表述为:

K_{i}, M_{i} = f_{i}\left(M_{i-1}, K_{i-1}, F\right).

值得注意的是,kernel update head和迭代优化是通用的,因为它不依赖于卷积核的特性。所以,它不仅可以增强实例卷积核,还可以增强语义卷积核。

下面我们将详细介绍了Kernel update head的三个步骤。

1. Group Feature Assembling

kernel update head首先将每个组的特征进行融合,然后基于分组的卷积核便具有了初步感知能力。由于中每个卷积核的掩码本质上定义了一个该像素是否属于卷积核的相关组,所以我们可以通过将特征图与相乘聚合得到属于卷积核的特征图:

F^{K} = \sum_{u}^{H}\sum_{v}^{W} M_{i-1}(u, v) \cdot F(u, v), F^{K} \in R^{B \times N \times C}
2. Adaptive Feature Update

kernel update head使用上一步得到的来更新卷积核,从而提高卷积核的表示能力。由于掩码可能不准确,所以每组的特征也可能包含其它组像素引入的噪声。为了减少噪声对分组特征的影响,我们设计了一种自适应的卷积核更新策略。具体来说,我们首先将和进行按元素相乘:

F^G = \phi_1(F^{K}) \otimes \phi_2(K_{i-1}), F^{G} \in R^{B \times N \times C}

上式中和 代表线性变换, 然后head可以设置两个门机制,即和,它们可以分别对更新后的特征图和卷积核进行了调整。并更新卷积核为:

{G}^{K} = \sigma(\psi_1(F^G)), {G}^{F} = \sigma(\psi_2(F^G)), \\ \tilde{K} = {G}^{F} \otimes \psi_3(F^{K}) + {G}^{K} \otimes \psi_4(K_{i-1}),
3. Kernel Interaction

卷积核之间的交互对于每个卷积核感知来自其它组的上下文信息是非常重要的。这些信息允许卷积核隐式地建模和利用映射组之间的依赖关系。为此,我们添加了一个卷积核交互模块对上一步出了更新得到的卷积核进一步处理,最终得到新的卷积核。首先采用多头注意力,然后是前馈神经网络,这在以前的工作中被证明是有效的。最后利用卷积核交互的输出用于生成新的掩码预测,具体表达式如下:。也将用于预测实例和全景分割的分类性能。

Training Instance Kernels

因为每个语义卷积核都可以分配给一个固定的语义类别,但是,目前却没有明确的规则来为实例卷积核分配不同数量的实例对象。在这项工作中,我们采用了互相匹配策略,设置了预测损失,并以端到端的方式来训练实例卷积核。不同于以往依赖box(边界框)的工作,实例卷积核的学习是基于mask驱动的,因为K-Net的推理自然是box-free的。其中设置的预测损失函数如下所示:

L_{K} = \lambda_{cls}L_{cls} + \lambda_{ce}L_{ce} + \lambda_{dice}L_{dice}

代表Focal loss, 和 分别表示CrossEntropy (CE) loss 和Dice loss

Experiments

Panoptic Segmentation.

如表1所示:

  1. 在MS-COCO val 数据集上,K-Net优于当前最先进的基于box的方法和box/NMS-free,并分别高出了1.7 PQ和1.5 PQ。
  2. 在MS-COCO test-dev 数据集上,我们采用ResNet-101-FPN为bacobone的K-Net甚至比采用可变形卷积网络(DCN)的UPSNet取得了更好的结果。
  3. K-Net采用Swin_L作为backbone取得了最佳的性能,在MS-COCO上实现了52.1 PQ。
Instance Segmentation

K-Net作为唯一的box-free和num-free的方法,比Mask R-CNN、SOLO、SOLOv2和CondInst具有更好的性能和更快的推理速度.

  1. K-Net-N256的性能与Cascade Mask R-CNN相当,但其推理速度要快92.2% (19.8 vs 10.3)。
  2. 在MS-COCO test-dev数据集上,基于ResNet-101-FPN作为骨干网络,K-Net的性能比Mask R-CNN提高了0.9 AP。它也超过了以前基于卷积核的方法CondInst和SOLOv2分别提高了1.2 AP和0.6 AP。
Semantic Segmentation

K-Net通过使语义卷积核具有动态性可以适应不同的框架。比如,K-Net显著提高了FCN (6.6 mIoU)。这种组合比PSPNet和UperNet分别高出0.7和0.9 mIoU,并达到了与DeepLab v3相当的性能。

此外,K-Net的有效性并没有在非常强的模型表示下达到饱和,即使与使用Swin Transformer的UperNet相比,它仍然带来了显著的改进(1.4 mIoU)。

Ablation Study

最后我们从Head Architecture,Positional Information,Number of Stages,Number of Kernels这四个方面做了消融实验分析,具体如下表所示:

Conclusion
  1. 本文探讨了实例卷积核可以在分割过程中经过训练学习实现实例对象分割。因此,实例卷积核可以取代之前帮助实例分割的很多组件,如边界框、嵌入生成和手动后处理(NMS、卷积核融合和像素分组)。
  2. 本文首次实现不同的图像分割任务可以通过一个统一的框架来解决。这个被称为K-Net的框架,它以一种动态地方式更新卷积核,使它们可选择地激活图像。这种基于内容的感知机制,可以确保每个卷积核(特别是实例卷积核)准确地响应图像中的不同对象;然后采用互相匹配策略,以端到端方式进行训练。
  3. K-Net在全景和语义分割基准上获得了最新的、最先进的单模型性能,并在实例分割框架中以最快的推理速度超过了成熟的Cascade Mask R-CNN。希望通过对K-Net的分析,为今后统一图像分割框架的研究提供新的思路。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习技术前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 模型方法
    • K-Net
      • Group-Aware Kernels
        • 1. Group Feature Assembling
        • 2. Adaptive Feature Update
        • 3. Kernel Interaction
      • Training Instance Kernels
      • Experiments
        • Panoptic Segmentation.
          • Instance Segmentation
          • Semantic Segmentation
        • Ablation Study
          • Conclusion
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档