PANet 实例分割

article/2025/9/19 17:18:37

Path Aggregation Network for Instance SegmentationPANet

用于实例分割的路径聚合网络

代码:https://github.com/ShuLiu1993/PANet

CVPR2018 Spotlight paper, coco2017实例分割第一名目标检测第二名

当前实例分割最佳模型Mask-RCNN的信息传播还不够充分,低层特征到高层特征的传递路径过长,FPN中每个proposal只负责金字塔特定的一层,掩码预测只基于单一视角。

论文贡献:

  1. 自底向上的路径增强,为了缩短信息传播路径,同时利用低层特征的精准定位信息。
  2. 动态特征池化,每个proposal利用金字塔所有层的特征,为了避免proposal的随意分配。
  3. 全连接层融合为了给mask预测增加信息来源,capture different view。

网络整体结构如下,可以看到明显是对Mask-RCNN的改进,整体框架没有变。

(1)自底向上路径增强

FPN是CVPR2017的Feature Pyramid Networks for Object Detection,主要是通过融合高低层特征提升目标检测的效果,尤其可以提高小尺寸目标的检测效果,不过只增强了语义信息,对定位信息没有传递,而本文就是针对这一点,在FPN的后面添加一个自底向上的金字塔。自底向上路径增强的引入主要是考虑网络浅层特征信息对于实例分割非常重要,浅层特征多是边缘形状等特征,而实例分割又是像素级别的分类。红色虚线箭头表示在FPN算法中,因为要走自底向上的过程,浅层的特征传递到顶层要经过几十甚至一百多个网络层(在FPN中,对应Figure1中那4个蓝色矩形块从下到上分别是ResNet的res2、res3、res4和res5层的输出,层数大概在几十到一百多左右),显然经过这么多层的传递,浅层特征信息丢失会比较厉害。绿色虚线箭头表示作者添加一个bottom-up path augmentation,本身这个结构不到10层,这样浅层特征经过底下原来FPN的侧面连接到P2再从P2沿着bottom-up path augmentation传递到顶层,经过的层数不到10层,能较好地保留浅层特征信息。关于自底向上路径增强的具体设计参考Figure2,最后融合得到的特征层是N2、N3、N4、N5,其中N2和P2相同,这些特征层用于后续的预测框分类、回归和mask生成。

每个构建块通过横向连接采用更高分辨率的特征图Ni和更粗糙的图Pi+1,生成新的特征图Ni+1。每个特征图Ni首先通过一个3×3,stride=2的卷积层,特征图尺寸缩减为原来的一半。然后通过横向连接添加特征图Pi+1的各个元素和下采样图。然后,将融合的特征图通过另一个3×3的卷积层进行处理,生成用于后续子网络的Ni+1。这是一个迭代过程,在P5后终止。在这些构建块中,通道数始终为256。所有卷积层后面都有一个relu[32]。然后,每个proposal的feature grid将从新的feature map(eg,N2、N3、N4、N5)中pool。

2)动态特征池化

Adaptive Feature Pooling主要做的还是特征融合。在Faster RCNN系列的目标检测或语义分割算法中,RPN(Region Proposal Network)得到的ROI需要经过ROI Pooling或ROI Align提取ROI特征,这一步操作中每个ROI所基于的特征都是单层特征(FPN也是如此),比如ResNet网络中常用的res5的输出。而adaptive feature pooling则是将单层特征也换成多层特征,也就是说RPN网络得到的每个ROI都要分别在N2、N3、N4、N5层特征做ROI Align操作,这样每个ROI就提取到4个不同的特征图fc1,然后将4个不同的特征图融合(element-max or sum)在一起就得到最终特征fc2,后续的分类和框回归都是基于fc2进行。 

现在分析不同级别的特征与自适应特征池的比例。使用max操作来融合不同级别的功能。根据它们最初在FPN中分配的级别将proposal分为四类。对于每组proposal,我们计算从不同级别选择的特征比例。

Figure3中有4条曲线,对应FPN网络中基于4层特征做预测,每一层都会经过RPN网络得到ROI,所以这4条曲线就对应4个ROI集合。横坐标则表示每个ROI集合所提取的不同层特征的占比。比如蓝色曲线代表level1,是尺度比较小的ROI集合,这一类型的ROI所提取的特征仅有30%是来自于level1的特征,剩下的70%都来自其他level的特征,leve2、leve3、leve4曲线也是同理,这说明原来RPN网络的做法并不是最佳的。因此就有了特征融合的思考,也就是每个ROI提取不同层的特征并做融合, 这一观察表明,多个层面上的特征一起有助于准确预测。

3)全连接层融合


全连接层具有不同于CNN的结构,CNN产生的特征图上每个像素点来自同一个卷积核,也就是常说的参数共享,另外,卷积核的大小往往为3*3,5*5,7*7,也就是说采集的是局部的信息。

主要是在原来的mask支路(Figure4上面那条支路,也就是传统的FCN结构)上增加了下面那条支路做融合。增加的这条支路包含2个3*3的卷积层(其中第二个为了降低计算量将通道缩减为原来的一半),然后接一个全连接层,再经过reshape操作得到维度和上面支路相同的前背景mask(28*28),也就是说下面这条支路做的是前景和背景的二分类,因此输出维度类似文中说到的28*28*1。上面这条支路,也就是传统的FCN结构将输出针对每个类别的二分类mask,因此输出的通道就是类别的数量,输出维度类似28*28*K,K表示类别数。最终,这两条支路的输出mask做融合得到最终的结果。可以看出这里增加了关于每个像素点的前背景分类支路,通过融合这部分特征得到更加精确的分割结果。

实验结果:


Table1是PANet和Mask RCNN、FCIS算法(COCO2016实例分割算法冠军)在COCO数据集上的分割效果对比

AP是指average precision,平均精确率,即多类预测的时候每一类的precision取平均,类似地还有AR,平均召回率。AP50,AP75指的是取detector的IoU阈值大于0.5,大于0.75。数值越高,精确率越低,表明越难。APS、APM和APL表示三个度量不同尺度对象的性能。

我们使用ResNet-50对多尺度图像进行训练并在单幅图像上进行测试的PANet已经胜过Mask R-CNN和2016年的冠军,其中后者使用了更大的模型集合和测试技巧[23, 33, 10, 15, 39, 62]。经过训练和测试,图像比例尺800与Mask R-CNN相同,我们的方法在相同的初始模型下比单独模型的最先进的Mask R-CNN具有近3点的性能差距。


Table2是PANet和Mask RCNN、FCIS、RentinaNet算法在COCO测试开发子集中的框AP的检测效果对比(主网络为ResNeXt-101时,单模型效果达到45算很高了)。 


Table3是关于文章中提到的几个优化点带来的效果对比。其中MRB是原始报告中Mask-RCNN的简称;RBL是baseline,本文复现的mask R-CNN;MST是多尺度训练;MBN是多GPU同步批量规范化;BPA是自上而下路径增强;AFP是自适应特征池;FF是完全特征融合;HHD是较大的头部。最后一行显示与基线RBL相比的总体改善。

Table 4 自适应特征融合的消融研究

文中对自适应特征融合进行消融研究,以找到融合操作的位置和最合适的融合操作。我们把它放在ROIAlign和fc1之间,用“fu.fc1fc2”表示,或者用“fc1fu.fc2”表示在fc1和fc2之间。掩码预测分支也使用类似的设置。对于特征融合,测试MAX和SUM操作。

所以使用max作为融合操作,并在框架的fc1后使用融合操作。

Table 5 完全连接融合的消融研究

用不同的方式来调查性能,以实例化增强的fc分支。考虑两个方面,即开始新分支的层次以及融合新分支和FCN预测的方式。尝试分别从conv2,conv3和conv4创建新路径。“max”,“sum”和“product”操作用于融合。我们将复现的Mask R-CNN的自底向上路径增强和自适应特征池作为基准。相应的结果显示在表5中。结果表明,从conv3开始凝视融合产生了最好的结果。

Table6和Table7是关于在COCO实例分割和目标检测比赛上的结果。

如表6和表7所示,与去年冠军相比,我们在实例分割方面提高了了9.1%,相对24%的改善。而对于物体检测,提高了9.4%,相对提高了23%。其中,DCN为Deformable convolutional networks(可变形的卷积)。
结果和消融研究

我们的方法受到“纯粹”数据的训练,其“面向全新”数据的面值优于Mask R-CNN 5.6个点。通过对COCO进行预训练,我们以4.4分的优势优于Mask R-CNN。可视化结果如图5.

图5.每行中的图像分别是我们的COCO test-dev,Cityscapes测试和MVD测试模型的可视化结果。

 

 


http://chatgpt.dhexx.cn/article/u4JYKhbV.shtml

相关文章

计算机视觉——day95 PANet:基于样本原型对齐的Few-Shot图像语义分割

PANet:基于样本原型对齐的Few-Shot图像语义分割 1. Introduction2. Related workFew-shot segmentation 3. Method3.1. Problem setting3.2. Method overview3.3. Prototype learning(原型学习)3.4. 非参数度量学习3.5. 原型对准正则化(PAR) 4. Experime…

PANet(2018)

关键:根据提议的ROI在每层特征图上都裁剪相应区域的特征,然后池化为指定大小,然后用max将特征融合。使用融合后的特征做预测 Abstract: 神经网络中信息的流通路径很重要。我们提出PANet,通过增加从最底层到最上层的信息传输路径&…

PANet网络简介

个人总结 简介Bottom-up Path Augmentation待解决: Adaptive Feature Pooling待解决: Fully-connected Fusion 先上论文链接: https://arxiv.org/abs/1803.01534 欢迎交流 简介 这篇论文总体上是Mask-Rcnn的改进版本,整体思路是…

PANet[详解]

一、Abstract摘要&Introduction介绍 Abstract 信息在神经网络中的传播方式非常重要。本文提出了一种基于提议的实例分割框架下的路径聚合网络Path Aggregation Network (PANet),旨在促进信息的流动。具体地说,我们通过自底向上的路径增强&#xff…

深度学习论文导航 | 07 PANet:用于实例分割的路径聚合网络

文章目录 一、PANet简介二、整体结构分析2.1 自底向上的路径增强2.2 自适应特征层2.3 全连接融合层 三、性能表现3.1 在COCO上的测试效果3.2 在Cityscapes 和 MVD上的测试效果 四、总结 前言: 同图像识别、目标检测一样,实例分割也是最重要和最具挑战性的…

(论文阅读)实例分割之PANet

PANet 一、论文简介1.1、论文和代码链接1.2、论文基本信息 二、详细解读2.1、摘要2.2、介绍2.3、网络架构2.4、改进与创新2.5、实验结果2.6、使用的数据集 三、总结与思考 一、论文简介 1.1、论文和代码链接 paper:http://xxx.itp.ac.cn/pdf/1803.01534.pdf code:https://cod…

AI大视觉(十七) | PANet(路径聚合网络)

本文来自公众号“AI大道理”。 这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 ​ 目标检测或者实例分割不仅要关心语义信息,还要关注图像的精确到像素点的浅层信息。 所以需要对骨干网络中的网络层进行融合,使其同时…

深度学习-路径聚合网络(PANet网络)

文章目录 1、概括2、介绍3、特征金字塔网络(FPN)4、PANet5、改进点 1、概括 信息在神经网络中的传播方式非常重要。为了促进信息的流动,提出了一种基于提议的实例分割框架下的路径聚合网络Path Aggregation Network (PANet)。具体地说,我们通过自底向上…

Linux | Strace使用

文章目录 1、strace的基本介绍2、strace的使用实例2.1、直接运行结果2.2、strace追踪系统调用(strace ./test)2.3、strace跟踪信号传递2.4、系统调用统计使用-c参数,它会将进程的所有系统调用做一个统计分析展示出来-o选项重定向输出-T选项对系统调用进行计时系统调…

linux下strace的使用

strace是一款用于跟踪Linux系统调用和信号的工具,可以帮助开发者排除程序运行时的问题。 具体来说,strace可以跟踪一个程序执行时所涉及到的系统调用,包括读写文件、网络通信、进程管理、内存管理等操作,通过分析程序运行过程中发…

linux strace命令--跟踪系统调用

简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用…

Linux常用命令——strace命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) strace 跟踪系统调用和信号 补充说明 strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者…

【转】strace命令详解

Article1: strace是什么? 按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace底层使用内核的ptrace特性来实现其…

强大的strace命令用法详解

strace是什么? 按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace底层使用内核的ptrace特性来实现其功能。 在运维的日常工作…

Linux命令之strace命令

一、命令简介 strace是一个有用的诊断、指导和调试工具。系统管理员、诊断专家和故障解决人员将发现,对于解决源代码不易获得的程序的问题,这是非常宝贵的,因为它们不需要重新编译以跟踪它们。学生、黑客和过分好奇的人会发现,通过…

strace命令使用分析

strace命令介绍与用法 1.1 strace概述 在操作系统中,进程分为用户态进程和内核态进程,应用程序运行在用户态,内核态负责对资源包括网络,磁盘,内存等管理,用户态进程要访问这些资源时,需要通过…

【已解决】安装Ubuntu时怎样分区--利用EasyBCD在win7下进行ubuntu安装(双系统)时遇到报错:没有根文件系统,请回到分区菜单以修正此错误

由于我们离不开Windows操作,并且因为不熟悉而不习惯ubuntu的操作方式,固采用Win7和Ubuntu双系统方式比较合理。在Win7基础上安装Ubuntu,Ubuntu会自动建立一个启动菜单,让我们在开机时自行选择启动Win7还是Ubuntu。 1、在win7上安…

根文件系统挂载过程—基于linux3.10

本文基于linux3.10某一嵌入式系统,该文件系统的配置选项设置如下: 图1.1 根文件系统配置选项设置 两行配置如下: [*] Initial RAMfilesystem and RAM disk (initramfs/initrd) support (usr/rootfs.cpio.gz)Initramfs source file(s) 这两…

JFFS2根文件系统制作

一.根文件系统简介 根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如inittab、rcS)和服务加载到内存中去运行。 文件系统…

ARM Linux启动流程-根文件系统的加载

前言 在Kernel启动的初始阶段,首先去创建虚拟的根文件系统(rootfs),接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实的文件系统。   接下来结核内核代码(内核版本:linux-…