UPSNet A Unified Panoptic Segmentation Network - 2019 CVPR 阅读笔记

2019.04.08-2019.04.14论文阅读笔记

精读文献:

2019_CVPR_Xiong_UPSNet A Unified Panoptic Segmentation Network

PSPNet一作赵恒爽合作的一篇2019年CVPR文章,做全景分割的。

 

Introduction

提出了Unified Panoptic Segmentation Network(UPSNet)用于解决最近提出的全景分割问题。

那么全景分割问题是什么?全景分割问题可以看做语义分割和实例分割的结合,对于可计数的目标称为things(行人,车辆),不仅要分割出目标所在的每个像素,同时还要区分每个实例;对于不可计数的区域称为stuff(如树、天空、建筑)只需要区分出其类别即可。

该文章的关键点我自己总结出来有如下几点:

  1. 构建新设计的实例分割网络头,使其参数量非常少且非常高效,进而不仅可以利用语义分割和实例分割分别输出的logits,同时可以将这个结构接在任意一个特征提取网络后面。
  2. 目前语义分割和实例分割之间存在conflicts(通篇文章没有看到conflicts具体是什么,但是看完之后感觉是想说语义分割和实例分割的效果好坏时会互相影响的,不是单纯的实例分割影响到实例分割的指标判断,语义分割影响语义分割的,而是有一种相互的影响在里面。本文后面是通过增加一个拒判类别来缓和的,感觉有点牵强)
  3. 另外一个就是目前全景分割的网络是没办法进行端到端训练的,使其结构能够端到端训练也算是本文的一个contribution

 

为什么要用语义分割和实例分割来共同完成这件事情呢?文章中给出了解答:既然两个任务都是要理解场景,那么共同的框架一定能够促进效果。

那么这个框架和以往的全景分割有什么不同?以前的方法都是两个独立的branch分别处理语义分割和实例分割,现在是设计的参数量极少的网络图,可以共用特征提取部份,使得两个任务之间信息可以交互(隐式建模,虽然是一种有效的手段但是感觉没什么novelty)。

 

而其中的语义分割网络头基于DCN,同时应用了FPN以利用多尺度信息。实例分割的网络头是基于Mask-RCNN的。又设计了一个全景分割的网络头,通过像素层面的分类,发现每张图片中有多少个类别(看上去有点像EncNet的思路?)全景分割网络头从前面两个网络头的输出中提取信息,并加入一个新的unknown的类别channel,说是可以缓和两者之间的矛盾(存疑)。

 

Related Work

主要讲了关于语义分割,实例分割以及全景分割的内容。

其中在全景分割部份专门提到【17】,即Kaiming He的Paniptic Segmentation一文,在那篇文章中结构为,语义分割分支用PSPnet,全景分割分支用Mask-RCNN,然后加上了一些简单的启发性决策方法来判断一个像素是空还是stuff还是things。这篇文章也是本文重点比较对象(应该也是本文基础,在结构和做法上都挺像的),Kaiming He这篇文章对于things用bounding box来监督,对于stuff用图像级别标签来监督。

 

Architecture

话不多说,上图:

整体结构就是一个FPN网络,然后分别接到语义分割网络头和实例分割网络头上,然后分别输出Semantic logits和Instance logits,然后输入全景分割网络头,给出最终结果。

网络结构很简单,关键之处在于每个网络头的设计,同时文章提到这些网络头都是lightweight head,所以如何减少参数来完成这件事情也是其中一个问题。

下面分别介绍每个网络组件。

Backbone:

特征提取用的是Mask-RCNN作为backbone。(ResNet+FPN)

 

Instance Segmentation Head:

跟mask-rcnn的设计一致,有一个边界框回归输出

Semantic Segmentation Head:

采用了deformable network的网络设计,经过FPN后,不同金字塔层级的特征图分别经过deformable convolution之后统一上采样到1/4的大小,然后经过1*1的卷积和softmax来预测语义类别。此外,为了增加针对于前景目标如行人的注意,额外添加了一个ROI loss。

在训练中,将GT的bounding box经过1*1的卷积之后将其resize到28*28,这是根据Mask-RCNN的方法来的。看了后面,有点奇怪为什么要搞成28*28的,不是会造成畸变吗?能不能不resize?

另外文章中提到,根据实验结果ROI loss是可以在不毁坏语义分割结果的情况下增进全景分割结果。

 

Panoptic Segmentation Head:

输入是两个网络头输出的logits,为H*W*(Nstuff+Nthing)的一个tensor,Nstuff指的是stuff的类别个数,Nthing是指的thing的类别个数

网络头结构如图:

Yi是第i个instance segmentation 的结果,Xthing和Xstuff是语义分割的结果图,最终得到右侧的一个tensor,其中每个channel都是一个置信度的图。Tensor通道数中,Nstuff代表stuff的类别数量,Ninst代表instance的数量,如果不考虑别的,一般做法就是直接在Ninst和Nstuff中取argmax就行了(同理语义分割也是这么做的)。

但是这个网络设计了额外的channel,用于表示unknown的类别,即拒判。那么为什么要拒判?文中解释是,如果一个类别被错判为了另一个类别,那么这个类别的FP就会增加,错判类别的FN就会减少。这两个都会影响到最终指标。(我一直也在想这个问题,既然预测错误或导致两个类别的指标都下降,为什么就不干脆拒绝预测呢?至少保持一个类别的指标不受影响。)

这个channel怎么得到的呢?相当于就是用所有的预测包含物体的区域,减去实际上存在物体的区域,就是判断错误的物体的区域,所以这些区域就作为另一个通道来一起添加到logits里面,然后有任意一个channel的置信度大于这个通道的值的时候,才会将其标签设置为那个类别,否则就是拒绝判断的类别。

 

Loss Function:

UPSNet一共8个loss,语义分割两个(一个全图交叉熵loss,一个像素级分类ROI loss),全景分割一个(基于全图的像素分类loss),RPN两个(分类和回归),实例分割三个(框分类,框回归,mask分割)。

此外,还要对于每个loss function之间有一个权衡,后面讨论了权衡策略不同导致的结果不同。

 

Experiment

有一个问题没弄明白,因为前面说到了PQ、SQ、RQ计算公式如下:

为什么给出来的结果PQ和SQ乘RQ不相等?需要后面好好看看Kaiming He的原始文献。

COCO数据集上的结果:

在MS-COCO 2018 dev上的结果:

在cityscape上的结果,有意思的是在coco上预训练的效果还更好了,不知道为什么。

 

Ablation Study

有趣的地方有以下几个,在第四行和第五行,stuff的PQ上升了,thing的PQ反而下降了,这样一来这个ROI loss的有效性还真的说不好了,ROI loss稍稍增强了stuff的分割效果(怎么没说thing还下降了)。文章中说ROIloss和unknown channel的加入能显著提升性能,是有问题的。这个结果不能够说明ROI loss的有效性。

最后三列特别高的是用GT算出来的结果,用以评估一下以后还能够做多少,做到怎么样的程度。并得出了一下结论:不完美的thing的PQ值代表我们Instance Seg还做得不够好,另外stuff的巨大增长代表semantic seg对于整体指标的重要性。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: qt-unified-windows-x86-4.0.1-online.exe 是一个 Qt 软件开发工具的安装程序,该工具可用于开发跨平台应用程序。 Qt 是一个跨平台 C++ 库,它能够使软件开发更加快速而且易于使用。Qt 库包含了很多模块,包括 GUI、网络、数据库、XML 等等。Qt 软件开发工具是一个可以快速开发可运行于多个操作系统(如 Windows、OS X、Linux 和 Android)的跨平台应用程序的工具。 qt-unified-windows-x86-4.0.1-online.exe 是一个在线安装程序,它需要连接到 Qt 公司的服务器来下载和安装软件。安装过程中可以选择使用该工具以及可能需要的模块和对应的版本(如 Qt Creator、Qt Designer、Qt WebEngine 等等)。注意:安装程序需要联网。 总之,Qt 软件开发工具是一个为了方便开发者快速创建跨平台应用程序而设计的工具。qt-unified-windows-x86-4.0.1-online.exe 是该工具的一个在线安装程序,方便用户自定义安装过程。 ### 回答2: qt-unified-windows-x86-4.0.1-online.exe是一个Qt跨平台开发工具的安装文件。它是一个在线安装程序,主要用于Windows操作系统中32位的x86架构。Qt是一个功能强大的开发工具包,它具有GUI开发工具、网络模块、数据库支持等功能,能够帮助开发者快速地构建高质量、可扩展性的应用程序。Qt的跨平台开发特点,使得开发者可以同时在多个平台上开发,只需一次编码,即可运行于不同的操作系统上。qt-unified-windows-x86-4.0.1-online.exe通过网络安装,能够自动下载和安装必要的组件和工具,从而降低了Qt工具包的安装难度和复杂度。此外,Qt还提供了C++语言的编程接口和QML语言的脚本编写方式,使得开发者能够根据自己的需要选择不同的编程方式来进行应用程序的开发。因此,qt-unified-windows-x86-4.0.1-online.exe是一个非常有用的工具,适合想要开发跨平台应用程序的开发者使用。 ### 回答3: qt-unified-windows-x86-4.0.1-online.exe是一款QT开发环境的安装程序,适用于Windows x86系统。使用这个程序可以帮助开发者在Windows系统上快速安装QT开发环境。QT是一款跨平台开发框架,用于开发桌面应用、移动应用和嵌入式应用等。QT开发框架支持C++编程语言,并提供了一系列丰富的库,开发者可以使用这些库来构建自己的应用程序。 qt-unified-windows-x86-4.0.1-online.exe是一款在线安装程序,它需要联网下载QT开发环境的相关组件。安装过程中,开发者可以选择需要安装的组件,例如QT Creator、QT Designer等等。安装完成后,开发者就可以开始使用QT开发框架来开发自己的应用程序了。 总之,QT开发框架是一款十分强大的开发工具,它可以帮助开发者快速构建跨平台的应用程序。qt-unified-windows-x86-4.0.1-online.exe则是一款方便快捷的安装程序,可以帮助开发者在Windows x86系统上快速安装QT开发环境。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值