笔者笔记:
没有出新的核心网络,提出新的评价指标,resnet50起步,不是轻量级网络,不过自己可以替换核心网络
提供了预训练
We provide the results on COCO val set with pretrained models. FPS is measured on a single V100 GPU.
Method | Backbone | Sched | PQ | SQ | RQ | AP | mIoU | FPS | download |
---|---|---|---|---|---|---|---|---|---|
PanopticFCN | R50 | 1x | 41.1 | 79.8 | 49.9 | 32.2 | 41.5 | 12.4 | model | metrics |
PanopticFCN-400 | R50 | 3x | 41.0 | 81.0 | 49.6 | 30.7 | 43.6 | 22.5 | model | metrics |
PanopticFCN-512 | R50 | 3x | 42.3 | 81.1 | 51.2 | 32.4 | 43.2 | 19.8 | model | metrics |
PanopticFCN-600 | R50 | 3x | 42.7 | 81.2 | 51.5 | 33.6 | 43.9 | 17.5 | model | metrics |
PanopticFCN | R50 | 3x | 43.6 | 81.4 | 52.5 | 34.4 | 43.6 | 12.8 | model | metrics |
PanopticFCN* | R50 | 3x | 44.2 | 81.7 | 52.9 | 35.6 | 43.9 | 9.3 | model | metrics |
A faster version is also provided with higher threshold but similar PQ results, which shares the same model with the corresponding normal one. This version could be suitable for you if the final panoptic results are taken into consideration only.
Method | Backbone | Sched | PQ | SQ | RQ | AP | mIoU | FPS | download |
---|---|---|---|---|---|---|---|---|---|
PanopticFCN | R50 | 1x | 41.1 | 79.8 | 49.9 | 30.2 | 41.4 | 13.6 | model | metrics |
PanopticFCN-400 | R50 | 3x | 40.8 | 81.1 | 49.4 | 28.9 | 43.5 | 26.1 | model | metrics |
PanopticFCN-512 | R50 | 3x | 42.3 | 81.1 | 51.2 | 30.7 | 43.2 | 22.0 | model | metrics |
PanopticFCN-600 | R50 | 3x | 42.7 | 80.8 | 51.4 | 31.6 | 43.9 | 19.1 | model | metrics |
PanopticFCN | R50 | 3x | 43.6 | 81.4 | 52.5 | 32.4 | 43.6 | 13.5 | model | metrics |
PanopticFCN* | R50 | 3x | 44.2 | 81.7 | 52.9 | 33.4 | 43.9 | 9.7 | model | metrics |
Panoptic FCN:真正End-to-End的全景分割
paper: Fully Convolutional Networks for Panoptic Segmentation
code: https://github.com/yanwei-li/PanopticFCN
下面主要先介绍一下全景分割的一些主要指标,然后回顾一下之前流行的box-based和box-free的全景分割算法(以Panoptic FPN和DeeperLab为例),最后重点讲一下中2021CVPR Oral的Panoptic FCN,个人认为是目前真正意义上的第一个End-to-End全景分割,非常精彩!
01 评价指标
FAIR为全景分割设计了新的评价标准 PQ (panoptic segmentation) 、SQ ( segmentation quality)、RQ (recognition quality) ,计算公式如下:
其中,RQ是检测中应用广泛的 F1 score,用来计算全景分割中每个实例物体识别的准确性,SQ 表示匹配后的预测 segment与标注 segment 的 mIOU,如下图所示,只有当预测 segment 与标注 segment 的 IOU 严格大于 0.5 时,认为两个 segment 是匹配的。
从上面的公式能够看到,在预测与标注匹配后的分割质量 SQ 计算时,评价指标PQ只关注每个实例的分割质量,而不考虑不同实例的大小,即大物体与小物体的分割结果对最终的PQ结果影响相同。然而在一些应用场景中更关注大物体的分割结果,如肖像分割中大图的人像分割、自动驾驶中近距离的物体等,于是进一步提出了 PC (Parsing Covering) 评价指标,计算公式如下:
其中, 分别表示对应类别的预测 segments 与真实 segments,表示对应类别的实例在真实标注中像素点数量, 表示类别为i的真实标注像素点总和。通过对大的实例物体赋予更大的权重, 使评价指标能够更明显地反映大物体的分割指标。
02 Panoptic FPN
Panoptic FPN是全景分割box-based的经典方法,box-based的全景分割基本都跟Panoptic FPN非常类似,这里以Panoptic FPN为例,介绍一下box-based的全景分割常规做法。
如上图所示,Panoptic FPN使用FPN作为backbone部分,来提取多尺度的语义信息,然后后续接一个instance segmentation branch,来预测instance,实际上fpn+instance segmentation branch等同于mask rcnn,其中instance segmentation branch由一个box branch和一个instance branch组成,instance的预测过程是先通过box branch预测出box,然后通过预测box的范围在instance branch预测出instance,这就是box-based全景分割的由来。Panoptic FPN在mask rcnn的基础上再增加一个semantic segmentation branch,来预测出semantic。instance segmentation branch和semantic segmentation branch的输出分别对应thing和stuff。
另外由于box-based的全景分割通过两个branch分别预测thing和stuff,会导致出现两个branch预测结果有重合区域,需要引入后处理过程来去重。Panoptic FPN设计的后处理过程和NMS很类似:
(1)根据不同实例的置信度来去除重叠部分
(2)以实例优先原则去除实例和语义分割输出之间的重叠部分
(3)去除stuff标记为“其他”或者给定面积阈值下的区域
之后的box-based全景分割算法大多数都是围绕着如何改进后处理还有不同branch如何进行信息融合进行的。但是无论怎么改进,box-based的全景分割存在一个天然的缺陷,最终的预测结果主要取决于box branch的预测精度,并且box branch的feature map尺寸受限制。
03 DeeperLab
DeeperLab是全景分割box-free的经典方法,去除了类似Panoptic FPN的box预测部分,直接预测出thing和stuff。相比Panoptic FPN等方法,去除了box branch预测精度的影响,并且能在更大feature map上进行全景分割。
DeeperLab包含Encoder、Decoder 和 Prediction 三个部分,其中,Encoder 和 Decoder 两个部分是参数共享的。在Encoder部分,末尾使用了ASPP模块来增加特征表达能力;在Decoder部分,通过使用S2D和D2S模块来高效的融合不同尺度的特征。
为了得到目标实例预测,作者使用基于关键点的方法,在 object instance segmentation branch,同时预测了 keypoint heatmap、long-range offset map、short-range offset map和middle-range offset map四种输出,得到像素点与每个实例关键点之间的关系,并依此融合形成类别未知的不同实例,另外semantic segmantion branch预测出语义信息,最后结合两个branch输出得到全景分割的结果。
04 Panoptic FCN
上述的以Panoptic FPN为代表的box-based全景分割还有以DeeperLab为代表的box-free全景分割都是将thing和stuff拆分成两个branch来进行预测的,这必然会引入更多的后处理还有设计不同branch信息融合的操作,整个系统显的即冗余又复杂。个人认为Panoptic FCN是真正意义上的第一个end-to-end全景分割,通过将thing和stuff统一成特征描述子kernels来进行预测,同时省去了复杂后处理还有不同branch信息融合的操作,是全景分割发展历程中的集大成者。
Panoptic FCN主要由Kernel Generator、Kernel Fusion和Feature Encoder三个部分组成。Panoptic FCN先通过引入kernel generator来为thing和stuff生成kernel weights,然后通过kernel fusion对多个stage的kernel weights进行合并,feature encoder用来对高分辨率feature进行编码,最后将得到的kernels和编码feature卷积得到最终预测结果。
Kernel Generator
kernel generator由kernel head和position head两个branch构成,首先通过position head同时预测thing和stuff的位置(其中,thing通过预测center来定位和分类,stuff通过region来定位和分类),然后根据thing和stuff的位置,从kernel head中产生kernel weights。这里有一个细节是,thing通过定位的点从kernel head对应的点抽取kernel weight,而stuff通过定位的区域mask和kernel head相乘得到kernel weight,这样子thing和stuff的kernel weight维度能够保持相同。
Kernel Fusion
kernel fusion将不同stage产生的kernel weights进行合并,保证thing的实例感知和stuff的语义一致性。简单来说通过对不同stage的kernel weights平均池化产生所有thing和stuff的kernel weights,然后通过阈值来去除相似的kernel weight,最后产生M个thing的kernel weights和N个stuff的kernel weights。具体细节可以看开源code。
Feature Encoder
feature encoder首先对高分辨率feature进行编码得到编码feature,然后用kernel fusion得到的M+N个kernel weights对encoded feature进行卷积,得到最终的预测结果,其中每个输出通道表示一个thing或者stuff的mask预测。和SOLO类似,Panoptic FCN的kernel head和feature encoder都引入了coord,有利于和position head特征进行位置对齐,对精度的提升非常大。
实验结果
最终得到的实验结果,速度和精度的平衡超过了之前的全景分割算法。
Panoptic FCN是第一个将thing和stuff进行统一预测,这对于如何解全景分割任务具有重大意义。