刘环宇作者

漫谈全景分割

关于作者:刘环宇,浙江大学控制科学与工程自动化系硕士,旷视科技研究院算法研究员,全景分割算法 OANet 第一作者,研究方向包括全景分割、语义分割等;2018 COCO + Mapillary 全景分割比赛旷视 Detection 组冠军团队成员。

前言

计算机视觉中,图像语义分割(Semantic Segmentation)的任务是预测每个像素点的语义类别;实例分割(Instance Segmentation)的任务是预测每个实例物体包含的像素区域。全景分割(Panoptic Segmentation)[1] 最先由 FAIR 与德国海德堡大学联合提出,其任务是为图像中每个像素点赋予类别 Label 和实例 ID ,生成全局的、统一的分割图像。

ECCV 2018 最受瞩目的 COCO + Mapillary 联合挑战赛也首次加入全景分割任务,是全景分割领域中最权威与具有挑战性的国际比赛,代表着当前计算机视觉识别技术最前沿。

在全景分割比赛项目中,旷视研究院 Detection 组参与了COCO 比赛项目与 Mapillary 比赛项目,并以大幅领先第二名的成绩实力夺魁,在全景分割指标 PQ 上取得了0.532的成绩,超越了 human consistency ,另外,我们的工作 An End-to-End Network for Panoptic Segmentation 也发表于 CVPR 2019 上。

接下来我们将全面解读全景分割任务,下面这张思维导图有助于大家整体把握全景分割任务特性:

▲ 全景分割解读思维导图

首先,我们将分析全景分割任务的评价指标及基本特点,并介绍目前最新的研究进展;然后介绍我们发表于 CVPR 2019 的工作 Occlusion Aware Network (OANet),以及旷视研究院 Detection 组参与的 2018 COCO Panoptic Segmentation 比赛工作介绍;最后对全景分割当前研究进行总结与分析。

任务与前沿进展解读

全景分割任务,从任务目标上可以分为 object instance segmentation 子任务与 stuff  segmentation 子任务。全景分割方法通常包含三个独立的部分:object instance segmentation 部分,stuff segmentation 部分,两子分支结果融合部分。

通常 object instance segmentation 网络和 stuff segmentation 网络相互独立,网络之间不会共享参数或者图像特征,这种方式不仅会导致计算开销较大,也迫使算法需要使用独立的后处理程序融合两支预测结果,并导致全景分割无法应用在工业中。

因此,可以从以下几个角度分析与优化全景分割算法:

  • 网络框架搭建;

  • 子任务融合;

  • 全景输出预测。

这三个问题分别对应的是全景分割算法中的三个重要环节,下面我们将分别分析这些问题存在的难点,以及近期相关工作提出的改进方法与解决方案。

全景分割评价指标

FAIR研究团队 [1] 为全景分割定了新的评价标准 PQ (panoptic segmentation) 、SQ ( segmentation quality)、RQ (recognition quality) ,计算公式如下:

▲ PQ评价指标计算公式

其中,RQ 是检测中应用广泛的 F1 score,用来计算全景分割中每个实例物体识别的准确性,SQ 表示匹配后的预测 segment 与标注 segment 的 mIOU,如下图所示,只有当预测 segment 与标注 segment 的 IOU 严格大于 0.5 时,认为两个 segment 是匹配的。

▲ 全景分割预测结果与真实标注匹配图解 [1]

从上面的公式能够看到,在预测与标注匹配后的分割质量 SQ 计算时,评价指标 PQ 只关注每个实例的分割质量,而不考虑不同实例的大小,即大物体与小物体的分割结果对最终的 PQ 结果影响相同。

Yang et al. [6] 注意到在一些应用场景中更关注大物体的分割结果,如肖像分割中大图的人像分割、自动驾驶中近距离的物体等,提出了 PC (Parsing Covering) 评价指标,计算公式如下:

▲ PC评价指标计算公式

其中, 分别表示对应类别的预测 segments 与真实 segments,表示对应类别的实例在真实标注中像素点数量,表示类别为 i 的真实标注像素点总和。通过对大的实例物体赋予更大的权重,使评价指标能够更明显地反映大物体的分割指标。

网络框架搭建

由于 object instance segmentation 子任务与 stuff segmentation 子任务分别属于两个不同的视觉预测任务,其输入数据及数据增强方式、训练优化策略与方法、网络结构与方法具有较大的不同,如何将两个子任务融合并统一网络结构、训练策略,是解决该问题的关键。

FAIR 研究团队提出了一种简洁有效的网络结构 Panoptic FPN [2],在网络框架层面将语义分割全卷积网络(FCN)[3] 和实例分割网络 Mask RCNN [4] 统一起来,设计了单一网络同时预测两个子任务,网络结构如下图所示。

▲ Panoptic FPN网络框架图

该网络结构能够有效预测 object instance segmentation 子任务与 stuff segmentation 子任务。在 Mask RCNN 网络与 FPN [5] 的基础上,作者设计了简单而有效的 stuff segmentation 子分支:在 FPN 得到的不同层级的特征图基础上,使用不同的网络参数得到相同大小的特征图,并对特征图进行加法合并,最后使用双线性插值上采样至原图大小,并进行 stuff 类别预测。

MIT 与谷歌等联合提出 DeeperLab [6] ,使用 bottom-to-up 的方法,同时实现 object instance segmentation 子任务与 stuff segmentation 子任务,其网络结构如下图所示:

▲ DeeperLab网络结构图

该网络包含了 encoder、decoder 与 prediction 三个环节,其中,encoder 和 decoder 部分对两个子任务均是共享的,为了增强 encoder 阶段的特征,在 encoder 的末尾使用了ASPP (Atrous Spatial Pyramid Pooling) 模块 [7]。

而在 decoder 阶段,首先使用 1×1 卷积对低层特征图与 encoder 输出的特征图进行降维,并使用内存消耗较少的 space-to-depth [8, 9] 操作替代上采样操作对低层特征图进行处理,从而将低层特征图(大小为原图 1/4)与 encoder 输出的特征图(大小为原图 1/16 )拼接起来。

最后,使用两层 7×7 的大卷积核增加感受野,然后通过 depth-to-space 操作降低特征维度。

为了得到目标实例预测,作者采用类似 [10, 11, 12] 的使用基于关键点表示的方法,如下图所示,在 object instance segmentation 子分支头部,分别预测了 keypoint heatmap(图a)、long-range offset map(图b)、short-range offset map(图c)、middle-range offset map(图d)四种输出,得到像素点与每个实例关键点之间的关系,并依此融合形成类别不可知的不同实例,最后得到全景分割的结果。

▲ object instance segmentation子分支头部预测目标

子任务融合

虽然通过特征共享机制与网络结构设计,能够将 object instance segmentation 子任务与 stuff segmentation 子任务统一起来,但是这两个子分支之间的相互联系与影响并没有得到充分的探究,例如:两个子分支的任务是否能够达到相互增益或者单向增益的效果?或者如何设计将两个子分支的中间输出或者预测关联起来?这一部分问题我们可以统一将它称作两个子任务的相互提升与促进。

中科院自动化研究所提出了AUNet [13],文中设计了 PAM (Proposal Attention Module)与 MAM(Mask Attention Module)模块,分别基于 RPN 阶段的特征图与 object instance segmentation 输出的前景分割区域,为 stuff segmentation 提供了物体层级注意力与像素层级注意力,其网络结构图如下图所示:

▲ AUNet网络结构图

为了使 object instance segmentation 的预测输出与 stuff segmentation 预测输出保持一致性,丰田研究院设计了 TASCNet [14],其网络结构如下图所示:

▲ TASCNet网络结构图

网络首先将 object instance segmentation 子分支得到的实例前景掩膜区域,映射到原图大小的特征图中,得到全图尺寸下的实例前景掩膜区域,并与 stuff segmentation 预测的实例前景掩膜进行对比,使用 L2 损失函数最小化两个掩膜的残差。

全景输出预测

Object instance segmentation 子分支与 stuff segmentation 子分支的预测结果在融合的过程中,一般通过启发式算法(heuristic algorithm)处理相冲突的像素点,例如简单地以 object instance segmentation 子分支的预测结果为准,并以 object instance segmentation 子分支的检测框得分作为不同实例的合并依据。

这种方式依据简单的先验逻辑判断,并不能较好地解决全景分割复杂的合并情况,因此,如何设计有效的模块解决 object instance segmentation 子分支与 stuff segmentation 子分支到全景分割输出的融合过程,也是全景分割任务中的重要问题。

Uber 与港中文联合提出了 UPSNet [15],其网络结构图如下图所示:

▲ UPSNet网络结构图

将 object instance segmentation 子分支与 stuff segmentation 子分支的输出通过映射变换,可得到全景头部输出的特征张量,该张量大小为 ,其中,为动态变量,表示一张图像中实例的数量,表示 stuff 类别个数,对于每张图像其数值是相同的,下文使用分别表示这两种特征张量

此外,网络对像素进行了未知类别的预测(Unknown Prediction),从而使得网络能够将部分像素点判断为未知类别并在测试的时候进行忽略,避免做出错误的类别导致 PQ 指标下降。

在得到 object instance segmentation 子分支与 stuff segmentation 子分支的输出后,经过如下图所示的变换,映射

▲ panoptic segmentation head示意图

可以直接从不规则类别分割的输出中提取,中的第个实例的掩膜区域可由获得,其中表示第个实例对应的真实标注框与标注类别在 stuff segmentation 子分支输出截取的掩膜区域,表示第个实例对应的 instance segmentation 子分支得到的掩膜区域映射到原图的掩膜区域,最后使用标准的逐像素点的交叉熵损失函数对全景头部输出的张量进行监督训练。

OANet专栏解读

Motivation

在全景分割相关实验中,我们发现,依据现有的启发式算法进行 object instance segmentation 子分支与 stuff segmentation 子分支的预测合并,会出现不同实例之间的遮挡现象。

为了解决不同实例之间的遮挡问题,我们提出了 Occlusion Aware Network (OANet),并设计了空间排序模块(Spatial Ranking Module),该模块能够通过网络学习得到新的排序分数,并为全景分割的实例分割提供排序依据。

网络结构设计

我们提出的端到端的全景分割网络结构如下图所示,该网络融合 object instance segmentation 子分支与 stuff segmentation 子分支的基础网络特征,在一个网络中同时实现全景分割的训练与预测。

在训练过程中,对于 stuff segmentation 我们同时进行了 object 类别与 stuff 类别的监督训练,实验表明这种设计有助于 stuff 的预测。

▲ OANet网络结构图

采用一种类似语义分割的方法,我们提出一个简单但非常有效的算法,称作Spatial Ranking Module,能够较好地处理遮挡问题,其网络结构如下所示:

▲ Spatial Ranking Module网络结构图

我们首先将输入的实例分割结果映射到原图大小的张量之中,该张量的维度是实例物体类别的数量,不同类别的实例分割掩膜会映射到对应的通道上。张量中所有像素点位置的初始化数值为零,实例分割掩膜映射到的位置其值设为 1。

在得到该张量后,使用大卷积核 [16] 进行特征提取,得到空间排序得分图;最后,我们计算出每个实例对象的空间排序得分,如下所示:

这里,表示类别为的、像素点中的得分值,需要注意的是已被归一化为概率,是掩膜像素点指示符,表示像素点是否属于实例,每个实例的空间排序得分由预测的掩码区域所有像素点的排序分数平均得到,表示最终得到的每个实例的排序得分,并将此得分用于全景输出。

如下图所示,若使用目前通用的启发式融合算法,即仅基于实例分割的检测框的置信度作为遮挡处理依据。如图所示,行人检测框的置信度要明显高于领带检测框的置信度,当两个实例发生重叠时,领带的实例会被行人实例遮挡;当加入空间排序得分模块后,我们通过该模块可以预测得到两个实例的空间排序分数,依据空间排序分数得到的排序会更可靠,PQ 会有更大改善。

▲ 空间排序模块流程示意图

实验分析

我们对 stuff segmentation 分支的监督信号进行了剥离实验,如下表所示,实验表明,同时进行 object 类别与 stuff 类别的监督训练,能够为 stuff segmentation 提供更多的上下文信息,并改进预测结果。

为了探究 object instance segmentation 子分支与 stuff segmentation 子分支的共享特征方式,我们设计了不同的共享结构并进行实验,如下表所示,实验表明,共享基础模型特征与 FPN 结构的连接处特征,能够提高全景分割指标 PQ。

为了探究我们提出的 spatial ranking module 算法的有效性,我们在不同基础模型下进行了实验,如下表所示,其中,w/ spatial ranking module 表示使用我们提出的空间排序模块得到的结果,从实验结果中可以看到,空间排序模块能够在不同的基础模型下大幅提高全景分割的评测结果。

为了测试不同卷积设置对学习处理遮挡的影响,进行了如下实验,结果表明,提高卷积的感受也可以帮助网络学习获得更多的上下文特征,并取得更好的结果。

下表是本文提出的算法与现有公开指标的比较,从结果中可以看到,本文提出的算法能够取得最优的结果。

2018 COCO全景分割比赛冠军解读

旷视研究院 Detection 组参与的全景分割 COCO 比赛项目与 Mapillary 比赛项目中,以大幅领先第二名的成绩实力夺魁,在全景分割指标 PQ 上取得了 0.532 的成绩,超越了 human consistency。

▲ COCO 2018 Panoptic Leaderboard

▲ 全景分割预测可视化图例

在比赛中,我们使用了如下图所示的流程,首先分别预测 stuff semantic segmentation 与 object instance segmentation,然后通过后处理的操作得到全景分割的结果。

▲ 全景分割算法流程图

在 stuff semantic segmentation 预测阶段,首先我们对网络结构进行了部分调整以得到更好的分割效果。首先,网络最终的下采样倍数设为 8 ,保证输出结果的分辨率;然后,由于网络的 encoder 不会扩大网络的感受野, 因此我们在标准 ResNet 之后使用了若干层 Res-Block。

另外,实验发现 stuff 类别和 object 类别之间的上下文对于 stuff 分割较为重要,因此我们在网络预测中融入了上下文信息,并通过多阶段、多种监督的方式实现,网络结构如下图所示:

▲ stuff semantic segmentation结构图

对于 object instance segmentation,我们使用了与 Mask RCNN 相同的网络结构及训练配置。最后,通过使用更大的网络基础模型,multi scale + flip 的测试方法,以及多模型的ensemble操作,我们取得了最终的预测结果,如下图所示:

▲ Panoptic Results on COCO test-dev Dataset

总结与分析

从上文的文献分析来看,全景分割任务的不同重要问题均得到了广泛探究,但是全景分割任务依然是有挑战性、前沿的场景理解问题,目前仍存在一些问题需要进行探究:

第一,由于全景分割可通过分别预测实例分割子任务与不规则类别分割子任务、两个子任务预测结果融合得到,整个算法流程中包含较多的细节与后处理操作,包括 segments 的过滤、启发式融合算法、ignore 像素点的判断等。这些细节对全景分割指标有较大的影响,在一定程度上也阻碍了不同算法的对比与评测;

第二,全景分割评测指标虽然能够较好地评测全景分割中实例物体检测准确度,以及实例物体与不规则类别的分割准确度,但是该评测指标更侧重每个实例,并没有关注每个实例之间的区别。文献 [6] 提出了对大物体有更好的评测指标 PC (Parsing Covering),使得大物体的分割效果对最终的评测指标影响更大,在一些关注大物体的任务如肖像分割、自动驾驶中更为有效;

第三,全景分割中子任务的融合问题,目前研究依然较多地将全景分割看做是 object instance segmentation 与 stuff segmentation 两个子任务的合集,如何从全局、统一的分割问题出发,针对性设计符合全景分割的统一网络,具有重要的意义。

参考文献

[1] Kirillov A, He K, Girshick R, et al. Panoptic segmentation[J]. arXiv preprint arXiv:1801.00868, 2018.

[2] Kirillov A, Girshick R, He K, et al. Panoptic Feature Pyramid Networks[J]. arXiv preprint arXiv:1901.02446, 2019.

[3] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 3431-3440.

[4] He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.

[5] Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.

[6] Yang T J, Collins M D, Zhu Y, et al. DeeperLab: Single-Shot Image Parser[J]. arXiv preprint arXiv:1902.05093, 2019.

[7] Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 40(4): 834-848.

[8] Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1874-1883.

[9] Sajjadi M S M, Vemulapalli R, Brown M. Frame-recurrent video super-resolution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 6626-6634.

[10] Papandreou G, Zhu T, Chen L C, et al. PersonLab: Person pose estimation and instance segmentation with a bottom-up, part-based, geometric embedding model[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 269-286.

[11] Tychsen-Smith L, Petersson L. Denet: Scalable real-time object detection with directed sparse sampling[C] // Proceedings of the IEEE International Conference on Computer Vision. 2017: 428-436.

[12] Law H, Deng J. Cornernet: Detecting objects as paired keypoints [C] // Proceedings of the European Conference on Computer Vision (ECCV). 2018: 734-750.

[13] Li Y, Chen X, Zhu Z, et al. Attention-guided unified network for panoptic segmentation[J]. arXiv preprint arXiv:1812.03904, 2018.

[14] Li J, Raventos A, Bhargava A, et al. Learning to fuse things and stuff[J]. arXiv preprint arXiv:1812.01192, 2018.

[15] Xiong Y, Liao R, Zhao H, et al. UPSNet: A Unified Panoptic Segmentation Network[J]. arXiv preprint arXiv:1901.03784, 2019.

[16] Peng C, Zhang X, Yu G, et al. Large Kernel Matters--Improve Semantic Segmentation by Global Convolutional Network[C] // Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4353-4361.

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论全景分割旷视科技图像语义分割计算机视觉
4
相关数据
自动驾驶技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

全卷积网络技术

全卷积网络最开始在论文 Fully Convolutional Networks for Semantic Segmentation(2015)中提出,它将传统卷积神经网络最后几个全连接层替换为卷积层。引入全卷积的意义在于它能实现密集型的预测,即在二维卷积下对图像实现像素级的分类,在一维卷积下对序列实现元素级的预测。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

双线性插值技术

双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。 双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

物体识别技术

计算机视觉领域的一个分支,研究物体的识别任务

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

图网络技术

2018年6月,由 DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同提交了论文《Relational inductive biases, deep learning, and graph networks》,该研究提出了一个基于关系归纳偏置的 AI 概念:图网络(Graph Networks)。研究人员称,该方法推广并扩展了各种神经网络方法,并为操作结构化知识和生成结构化行为提供了新的思路。

暂无评论
暂无评论~