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

article/2025/9/19 17:49:50

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://codechina.csdn.net/mirrors/ShuLiu1993/PANet?utm_source=csdn_github_accelerator

1.2、论文基本信息


发表于CVPR2018
这篇论文名为:用于实例分割的路径聚合网络,它不仅是COCO2017实例分割比赛的冠军,也是目标检测比赛的第二名。
此文提出Path Aggregation Network (PANet),是对Mask RCNN上进行多处改进,是一个二阶段实例分割算法,下面将详细解读此篇文章。

二、详细解读

2.1、摘要

信息在神经网络中的传播方式是非常重要的。本文提出了路径聚合网络(PANet),旨在促进基于提议的实例分割框架中的信息流。具体地说,本文通过自底向上的路径增强,在低层精确定位信号,从而缩短低层与最高层特征之间的信息路径,同时提出了自适应特征池,它将特征网格和所有特征层连接起来,使每个特征层中的有用信息直接传播到下面的建议子网中。为每个提议创建一个互补的分支,捕获不同的视图,以进一步改进掩码预测。这些改进很容易实现,但有细微的额外计算开销。

2.2、介绍

①、探索与发现

本文研究表明,Mask R-CNN的信息传播可以进一步改善。具体来说,低级别的特性有助于识别大型实例。但是,从低级结构到最高级特征有很长的路径,增加了获取准确定位信息的难度。此外,每个提议都是基于一个特性层预测的,这是启发式分配的。这个过程可以进行更新,因为在其他层次丢弃的信息可能有助于最终的预测。最后,掩模预测是在单一视图下进行的,失去了收集更多信息的机会。

解读:
MaskRcnn存在一定问题:
1、高级特征的特征图与精准定位存在一定的矛盾。
2、生成提议过于片面,没考虑多层的信息。
3、mask掩码的生成也没考虑多种视图,会有信息丢失。

②、进行改进

首先,为了利用低层存在的精确定位信号缩短信息路径,增强特征金字塔,建立自底向上的路径增强方法;事实上,低层的特征在一些论文的系统中得到了利用。但目前还没有研究通过传播低级特征来增强整个特征层次结构。
其次,为了恢复每个提议和所有特征级别之间的破损信息路径,我们开发了自适应特征池。它是一个简单的组件,用于为每个提案聚合来自所有特性级别的特性,避免任意分配结果。
最后,为了捕获每个提议的不同观点,我们使用微小全连接(fc)层来增加掩码预测,这与mask R-CNN最初使用的FCN具有互补的特性。通过融合来自这两种观点的预测,信息多样性增加,并生产出质量更好的Mask。前两个组件由对象检测和实例分割共享,从而大大提高了两个任务的性能。

解读:
提到改进,那就必须要配合上MaskRcnn的网络架构和PANet的网络架构进行对比分析,请往下看PANet的网络架构。

2.3、网络架构

下图为PANet的网络架构,其中(a)是FPN骨架,(b)是自下而上路径扩展,©是自适应特征池化,(d)是分类box分支,(e)是全融合。如下图,第一张为PANet网络结构,第二张为MaskRcnn的网络架构。
在这里插入图片描述
在这里插入图片描述

解读: 如图中,红色指引线和绿色指引线的作用就是把低层的位置特征直接传接给P5和N5,让顶层的特征图融入底层的位置信息。相对于MaskRcnn该模型增加了一个(b)自下而上路径扩展,也就是增强了特征金字塔,相当于来了两次FPN操作,然后再把第二次得到的特征金字塔各层通过(c)自适应特征池化层聚合到一起,最后进行分类和加掩码,在(e)阶段,使用微小全连接(fc)层来增加掩码预测。

2.4、改进与创新

改进和创新就如上所述,如果简化成一个图的话大致如下:

改进与创新
多加了一个特征金字塔
使用自适应特性池
加了全融合

2.5、实验结果

在这里插入图片描述

比较了2016实例分割挑战赛的冠军,RentinaNet还有MaskRcnn,MaskRcnn比较了ResNet-50,ResNet-101和ResNeXt101三种骨架,指标为AP值,AP50,AP75(指的是取detector的IoU阈值大于0.5,大于0.75),PANet采用ResNet-101时明显是最优的。APs,APm,APl分别代表小物体,中等物体和大物体。

2.6、使用的数据集

COCO2017数据集、Cityscapes数据集和MVD数据集。

三、总结与思考

这篇文章确实对MaskRcnn进行了较好的修改,而且获得了比较大的成果,其提出的多金字塔方法有点新意,融合不同层的特征也做得比较好,学到的东西还是蛮多的,踩在巨人肩膀上也能获得非凡成就,不过我感觉创新点还是缺了那么一点点,是在MaskRcnn基础上改的,而且很多方法已经出现于别人的论文当中,只是拿过来使用而已,还得继续努力,向大佬们学习。
实例分割中提高AP的方法:

优化方法
deformable convolution
testing tricks
horizontal flip tesing
mask voting&box voting
larger model
ensemble

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

相关文章

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-…

怎么使用 Buildroot 构建根文件系统

1. Buildroot 简介 制作根文件系统有归多种方法: ① 使用Busybox手工制作 Busybox本身包含了很了Linux命令,但是要编译其他程序的话需要手工下载、编译,如果它需要某些依赖库,你还需要手工下载、编译这些依赖库。 如果想做一个极…

一文讲解Linux内核中根文件系统挂载流程

根文件系统的概念 根文件系统是控制权从linux内核转移到用户空间的一个桥梁。linux内核就类似于一个黑匣子,只向用户提供各种功能的接口,但是功能的具体实现不可见,用户程序通过对这些功能接口的不同整合实现不同的功能需求。以用户的角度来…

【linux kernel】挂载根文件系统之rootfs

挂载根文件系统之rootfs 文章目录 挂载根文件系统之rootfs一、开篇二、rootfs根文件系统(2-1)初始化rootfs(2-2)挂载rootfs文件系统(2-3)创建简单的rootfs根文件系统目录和文件(2-4)…

2021年Linux技术总结(三):根文件系统(rootfs)

# 一、根文件系统简介 Linux系统三大块:U-boot、kernel以及最后这个rootfs,跟文件系统。在kernel中,启动流程的最后会调用 prepare_namespace 函数,挂载根文件系统,这里就是挂载的本篇要说的。 根文件系统保存了内核代…

详解制作根文件系统

目录 前言 具体步骤 一.编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 二.利用交叉编译工具链,构建/lib目录 三.手工构建/etc目录 四.手工构建最简化的/dev目录 五.创建其它空目录 六.配置系统自动生成/proc目录和构建…

根文件系统理解

文件系统概念 文件系统是一些代码,是一套软件,这套软件的功能就是对存储设备的扇区进行管理,将这些扇区的访问变成了对目录和文件名的访问。我们在上层按照特定的目录和文件名去访问一个文件时,文件系统会将这个目录文件名转换成对…