PS论文笔记

    论文:Alexander Kirillov,Kaiming He,Ross Girshick,Carsten Rother,Piotr Dollar.Facebook AI Research (FAIR),Heidelberg University-HCI/IWR. Panoptic Segmentation


素质三连

1.论文贡献

提出全景分割(panoptic segmentation,PS) 任务,该任务联合语义分割和实例分割

定义了PS的评估指标 panoptic quality(PQ)

研究了PS标注的人类一致性

通过对实例分割结果和语义分割结果的后处理,给出了全景分割的baseline

2.实验结果   

在三个数据集Cityscapes,ADE20k,Mapillary Vistas进行各种研究,给出很多有趣的结论。

3.存在的问题

未提出端对端的全景分割模型

摘要

    本文提出了一个新的任务,称为全景分割(panoptic segmentation,PS)。全景分割将语义分割(semantic segmentation)和实例分割(instance segmentation)联合起来。该任务可以产生丰富、完整的场景分割,这是迈向真实视觉系统的重要一步。虽然计算机视觉的早期工作研究了相关的图像/场景解析任务,但这些任务目前并不流行,可能是缺乏适当的metric和相关比赛。为了解决这个问题,本文提出了一种新的指标panoptic quality(PQ),用来评估全景分割模型的性能。我们使用该度量在三个数据集上对人类和机器在全景分割上的表现进行研究,揭示了该任务的一些有趣的东西。


全景分割

    图像分割中的分割对象分为things和stuff两大类。things是可数目标,包括人、动物、汽车等。而stuff是不可数目标,包括草地、天空、道路等。语义分割处理stuff(也把things当stuff来分割),它将图像中每个像素进行分类。实例分割处理things,它检测出图像中的目标,并分割出实例。而我们提出的全景分割既分割things,也分割stuff。如下图所示:

图片1.jpg

    同时分割stuff和things这个问题在前深度学习时代就已经被研究了,当时称为场景解析(scene parsing),图像解析(image parsing)或全面场景理解(holistic scene understanding)。尽管这一方向有实际意义,但目前并不流行,可能是缺乏适当的metric或相关比赛。

    本文致力于让这个方向死灰复燃,我们提出了一个新任务:(1)包含stuff和thing类别,(2)使用简单、通用的输出格式,(3)引入统一的评估指标,称这个新任务为全景分割(panoptic segmentation,PS)。Panoptic的本意是包括一切视野内的对象,我们这里指的是一个统一的全局的分割视图。

    全景分割的任务格式(task format)很简单:赋予图像的每个像素一个语义class和一个实例id。拥有同一个语义class和实例id的像素属于同一个物体。本文还引入了评估指标panoptic quality(PQ)。PQ简单、信息丰富,最重要的是可以统一的衡量stuff和things。全景分割包含实例分割和语义分割。但是与纯语义分割不同,它需要区分单个实例。与纯实例分割不同,目标分割必须是不重叠的。


数据集

目标检测数据集:人脸检测的早期数据集ad-hoc促进边框目标检测(bounding-box object detection)技术的发展。而数据集[Pedestrian detection: An evaluation of the state of the art]促进了行人检测的发展。PASCAL VOC数据集可以评估多个任务。COCO数据集促进开辟了新的任务:实例分割。

语义分割数据集:语义分割的数据集有很多:[Textonboost: Joint appearance, shape and context modeling for multi-class object recog. and segm.],[SIFT flow: Dense correspondence across scenes and its applications.],[ The cityscapes dataset for semantic urban scene understanding],这些数据集包含stuff和things,但是不区分目标实例。

全景分割数据集:最近出现了一些新的数据集,包括Cityscapes,ADE20k,Mapillary Vistas。这些数据集同时支持语义分割和实例分割,也就是说,也支持PS。

Cityscapes:是汽车在城市中录制的场景,包括5000张图片,其中2975张训练图片,500张验证图片,1525张测试图片。有19中stuff,其中8种thing。

ADE20k:是一个用开放词典标签集(open-dictionary label set)标注的数据集,包含20k训练集,2k验证集,3k测试集。在2017 Place Challenge中,选择其中的100种thing和50种stuff,平均覆盖89%的像素。这里使用类似的数据集。

Mapillary Vistas:有25k不同分辨率的街景图片,包括18k训练集,2k验证集,5k测试集。包括28种stuff和37种thing。


全景分割的形式

任务形式

    预定义语义标签集合 L={0,...,L-1},全景分割预测的分割图像和ground truth图像的每个像素表示为一对(li,zi)∈L*N,l代表该像素的语义class,z代表该像素的实例id。相同 l和相同 z的像素是同一个分割。歧义的像素或不属于已知类别的像素应该设置空类别(void label)

Stuff和thing标签

    语义标签集合由两个子集组成:L=LSt∪LTh,而且LSt∩LTh=∅,代表stuff和thing的语义标签。分割图像中stuff类别的像素属于同一个实例id。而thing类别的像素,拥有同一个实例id的像素属于同一个实例。

与语义分割的关系

    PS任务形式是语义分割任务形式的泛化。两个任务都需要对每个像素赋予一个语义标签。如果ground truth不指定实例id,或者所有的类别都是stuff,那么两个任务的格式是一样的,当然任务评估指标不同。

与实例分割的关系

    实例分割允许重叠的分割,因为它是先检测包围框,再对包围框进行分割的,而包围框运行重叠。然而PS的每个像素只能有一个语义类别和实例id。

置信度

    与实例分割不同,PS的分割没有的置信度。这使得PS对于人类和机器来说是对称的(symmetric),两者产生同类型的注释,因为人工的PS不包含置信度。这也使得评估PS的人类一致性变得简单。然而有时候置信度也很有用,PS在特定配置下也可以产生置信度。


评估指标:Panoptic Quality

    我们想要的PS metric应该具有如下特点:完整性(Completeness),指标应该以统一的方式处理stuff和thing,能捕获PS任务的各方面。可解释性(Interpretability),指标应该具有可识别的意义,以促进沟通和理解。简单性(Simplicity),指标应该定义和实现都很简单,这样可以提高透明度,便于重新实现。由此,指标才能高效计算,以实现快速评估。

    根据上面的三个原则,本文提出了Panoptic Quality(PQ)。PQ评估 预测分割 相对于 gt分割 的质量。其计算过程分为两步:(1)分割匹配,(2)给定匹配计算PQ。

分割匹配(Segment Matching)

    给定一个预测分割和一个gt分割,仅当它们的IoU大于0.5时,才匹配到一起。这就需要PS的不重叠性:每个gt分割只能匹配一个预测分割。

定理1.每个gt分割最多有一个IoU大于0.5的预测分割。证明如下:

1jpg.jpg

2.jpg

    根据这个定理可以推得两个特性。首先,这种对应关系是唯一而且很容易得到,因此它简单而高效。其次,它是可解释而且易于理解的。

PQ计算

    对每个类别独立计算PQ,然后各个类别平均,这样使得PQ对类别不平衡更加鲁棒。对于某个类别,将预测分割gt分割划分到三个集合:true positives(TP),false positives(FP),false negatives(FN),TP代表已被匹配的预测分割和gt分割,FP代表未被匹配的预测分割,FN代表未被匹配的gt分割。下图表示Person类的TP,FP,FN:

3.jpg

    得到3个集合后,就可以计算PQ:

4.jpg

    其中

5.jpg

    是已匹配的分割的平均IoU。而分母中的

6.jpg

    是未匹配分割的惩罚项。如果乘以除以TP集合的大小,则上式变形为 segmentation quality(SQ) recognition quality(RQ) 的乘积:

7.jpg

    RQ跟目标检测常用的F1分数指标类似。SQ是已匹配分割的平均IoU。

空标签Void labels

    gt分割中有两种情况需要标记像素为空标签(void labels)。(a)不属于已知类别的像素;(b)歧义的或未知的像素。在计算PQ过程中忽略掉void pixels,具体地说,(1)在匹配过程中,预测分割中对应gt分割标记为void的像素将被移除,不影响IoU的计算。(2)匹配后,包含超过匹配阈值的一小部分void像素的未被匹配预测分割将被移除,并且不算作FP(原文:after matching, unmatched predicted segments that contain a fraction of void pixels over the matching threshold are removed and do not count as false positives.)。因此,即使预测分割包含void像素,也不影响评估。

组标签Group labels

    如果很难准确的描述每个实例,那么对同一语义类别的相邻实例使用group labels,而不是实例id。对于计算PQ,(1) during matching, group regions are not used, and (2) after matching, unmatched predicted segments that contain a fraction of pixels from a group of the same class over the matching threshold are removed and do not count as false positives.

PQ与现存指标的比较

    语义分割指标比如IoU忽略物体级(object-level)标签,因此不适合评估thing类别。而实例分割的指标,比如Average Precision(AP),需要分割的置信度,因此也不适用与PS。


人类一致性研究

    PS的优点是能够衡量人类标注一致性。由于模型训练的依据就是人类的标注,但是每个人的标注都略有差异,因此分析这些标注的差异和性质就显得十分必要。人类一致性研究可以让我们更加透澈的了解该任务,可以从各个维度了解评估指标的设计和人类标注的差异。

数据来源

    为了能够进行人类一致性分析,数据集创建者慷慨地为我们提供了30张Cityscapes的两次标注图像(即对某张图片标注两次,用于计算PQ)、64张ADE20k的双标注图像和46张Vistas的双标注图像。Cityscapes和Vistas是由不同的人来标注的,而ADE20k由一个人标注,但是他两次标注的时间间隔6个月。为了确定人类标注的PQ,将两张图片中的其中一张作为gt分割,另一张作为预测分割。

人类一致性

    下图是各个数据集人类标注的一致性:

8.jpg

    可以看到人类标注的PQ得分并不是特别高(因此模型表现差一点也可以理解)。类别的数量,标注像素的百分比,场景的复杂度因数据集而异,都会影响到标注的精度。下面是人类分割和标注的一些误差的可视化:

9.jpg

10.jpg

Stuff和things标注比较

    上表一中还展示了stuff和thing标注的PQ。Thing标注的精度要低一些。下图展示了每个数据集中各个类别标注的PQ。

11.jpg

小目标和大目标的标注比较

    将目标根据大小分成大中小三类,最小的25%为S,最大的25%为L,中间为M。下表展示了越大的目标标注精度越高(废话)。很大程度上是因为小目标的RQ太低,这表明标注者遗漏了某些小目标。

12.jpg

IoU阈值的影响

    下面是匹配的累积密度函数随匹配阈值变化的曲线:

13.png

    当阈值设置为0.5时,小于16%的匹配没有被匹配。下图7展示了阈值为0.25,0.5,0.75时PQ的值,表明阈值设置为0.5应该是合理的:

14.jpg

SQ和RQ的平衡

    前面分析过,PQ=SQ*RQ,RQ等于F1分数。当然也不一定就令RQ为F1,这里引入一个参数α调整识别误差的惩罚项:

15.jpg

    默认α=0.5,下图是不同α值的影响:

16.jpg

    可以看到α影响SQ和RQ的平衡。


机器分割基线

    (1)高性能的实例分割和语义分割的启发式组合对全景分割有何作用?(2)PQ与AP和IoU等现有指标相比如何?(3)机器的结果如何与人类的结果进行比较?

数据来源

    本文的实验数据来源于将现有的实例分割结果与语义分割结果启发式的结合。对于Cityscapes数据集,使用PSPNet和Mask R-CNN的各自的验证集输出。对于ADE20k,使用2017 Palces Challenge的冠军,语义分割是[Places challenge 2017: scene parsing, G-RMI team],[Places challenge 2017: scene parsing, CASIA IVA JD team],实例分割是[Places challenge 2017: instance segmentation, G-RMI team],[Places challenge 2017: instance segmentation,Megvii (Face++) team],各自的测试集输出子集(1k)。对于Vistas,使用LSUN’17 Segmentation Challenge的官方提供的冠军模型的语义分割和实例分割的1k测试集。

实例分割

    对得到的实例分割结果使用PQ进行评估。但是实例分割模型会产生重叠的分割,而PQ要求所有的分割都不重叠,因此需要进行一个预处理。作者设计出一个类似于NMS方法。首先,将预测分割按照按照置信度进行排序,去除低置信度的分割。然后从最高置信度的分割实例开始迭代,对于每个实例,首先去除跟更高置信度重叠的像素,如果还有足够多的像素存在,则作为一个PS实例,否则放弃整个实例。过程中用到的阈值,可以通过交叉验证得到。结果如下:

17.jpg

语义分割

    语义分割的结果可以直接计算PQ,如下表:

18.jpg

全景分割

    需要根据现有的语义分割和实例分割的结果生成全景分割结果。首先对实例分割结果去掉重叠的部分,然后将实例分割和语义分割的结果结合起来,即将实例分割结果加到语义分割结果上面,为每个像素分配语义class和实例id。下表是计算结果:

19.jpg

    下图是全景分割的部分可视化:

20.jpg

人类和机器全景分割的比较

21.png


全景分割的未来

    未来的PS算法至少能够解决下面两个问题(1)是一个端对端的模型,可以解决PS的stuff-and-thing性质。(2)有些更高级的方法解决实例重叠。





首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于