前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【深度学习】Panoptic FCN:真正End-to-End的全景分割

【深度学习】Panoptic FCN:真正End-to-End的全景分割

作者头像
黄博的机器学习圈子
发布2021-04-16 12:33:38
1.8K0
发布2021-04-16 12:33:38
举报
文章被收录于专栏:机器学习初学者精选文章

在计算机视觉中,所有视觉可见的事物都可以描述成thing和stuff两种形式(thing指的是可数物体如人、动物、工具,stuff指的是具有相似结构或材料的非晶态区域如草、天空、道路),从而延申出了两类经典的计算机视觉任务:语义分割和实例分割。其中语义分割的任务是预测每个像素点的语义类别(即预测stuff),而实例分割的任务是预测每个实例物体包含的像素区域(即预测thing),分别如上图b和c所示。然而从图片中可以看出,语义分割和实例分割都不足以完备的描述出一副图像中的视觉信息,2019年FAIR首次提出全景分割的概念,全景分割任务需要同时预测出每个像素点赋予类别Label和实例ID(即同时预测thing和stuff,如图d所示),如果能够很好的解决全景分割任务,那么就能够完备的描述出一幅图像的视觉信息,对于无人驾驶、VR等场景来说,完备的场景解析是非常有意义的。

下面主要先介绍一下全景分割的一些主要指标,然后回顾一下之前流行的box-based和box-free的全景分割算法(以Panoptic FPNDeeperLab为例),最后重点讲一下中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进行统一预测,这对于如何解全景分割任务具有重大意义。

Reference

1. Panoptic Segmentation

2. Panoptic Feature Pyramid Networks

3. DeeperLab: Single-Shot Image Parser

4. Fully Convolutional Networks for Panoptic Segmentation

PPT: 一作ppt放在smarter公众号上,回复Panoptic FCN即可获得

paper: Fully Convolutional Networks for Panoptic Segmentation

code: https://github.com/yanwei-li/PanopticFCN


代码语言:javascript
复制
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习初学者 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 评价指标
  • 02 Panoptic FPN
  • 03 DeeperLab
  • 04 Panoptic FCN
相关产品与服务
人体分析
腾讯云神图·人体分析(Body Analysis)基于腾讯优图领先的人体分析算法,提供人体检测、行人重识别(ReID)等服务。支持识别图片或视频中的半身人体轮廓;支持通过人体检测,识别行人的穿着、体态等属性信息。可应用于人像抠图、背景特效、人群密度检测等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档