PANet网络简介

article/2025/9/19 17:43:48

个人总结

  • 简介
      • Bottom-up Path Augmentation
          • 待解决:
      • Adaptive Feature Pooling
          • 待解决:
      • Fully-connected Fusion

先上论文链接: https://arxiv.org/abs/1803.01534
欢迎交流

简介

这篇论文总体上是Mask-Rcnn的改进版本,整体思路是提高信息流在网络中的传递效率。第一个改进:为了提高低层信息的利用率,加快低层信息的传播效率,提出了Bottom-up Path Augmentation;第二个改进:通常FPN在多层进行选anchors时,根据anchors的大小,将其分配到对应的层上进行分层选取。这样做很高效,但同时也不能充分利用信息了,提出了Adaptive Feature Pooling。第三个改进:为了提高mask的生成质量,作者将卷积-上采样和全连接层进行融合,提出了Fully-connected Fusion。
在这里插入图片描述

Bottom-up Path Augmentation

    一般都知道,网络的低层特征中含有更多的位置信息,高层特征中含有更多的语义信息。FPN是网络在下采样结束后,再返回来进行上采样,并通过横向连接获取同级下采的信息。FPN做的就是将高层的语义信息回向传递,利用高层语义信息来提高低层的效果。Bottom-up Path Augmentation在此基础上又增加了一个低层到高层的通道,将低层信息直接向上进行传递,提高底层信息的利用率。
    上图中的b区域就是新增的Bottom-up Path Augmentation。红线是FPN中底层信息的传递路径,要经过100+layers。绿线是PANet的底层信息传递路径,经过的路径少于10层。
在这里插入图片描述
    上图中的 N 2 N_2 N2 P 2 P_2 P2完全一样。
    其中的一个具体模块: N i N_i Ni经过一个3*3,stride为2的卷积之后,下采样为原来的一半,然后与横向连接传递过来的 P i + 1 P_{i+1} Pi+1进行逐元素相加,再经过一个3*3的卷积生成 N i + 1 N_{i+1} Ni+1
    其中的通道数保持在256,且每个卷积之后会接ReLU。

待解决:

这样加快了低层信息的传递效率,但同时减弱了高层信息啊,可能与通道数有关?
100层和10层具体计算?

Adaptive Feature Pooling

    低层特征中含有更多的位置信息,高层特征中含有更多的语义信息,根据proposal的大小将其划分到对应的层上,大的分配到高层上,小的分配到低层上。这会造成大的proposal只能更多的利用语义信息,小的proposal只能更多的利用位置信息,这当然会对精度造成影响。
    作者首先展示了采用Adaptive Feature Pooling后,个proposal利用各层信息的比例:
在这里插入图片描述
    level1表示在FPN中应该分配在LEVEL1上的proposal,而实际上由蓝色线可知,采用Adaptive Feature Pooling后,只有30%的level1采用了LEVEL1上的特征,验证了Adaptive Feature Pooling的优越性。
    该模块的结构:参考第一幅图的C虚线框,首先对于每个proposal来说,将其映射在不同的feature level上(如第一图b框中的灰色范围);然后用ROI Align;再利用融合操作(逐元素进行max或者sum)将不同层上的进行融合。
下图是一个在没有mask分支的FPN上利用Adaptive Feature Pooling的结构图,加了个fc1:
在这里插入图片描述
对于PANet来说:

Since four consecutive convolutional layers are used in mask prediction branch in Mask R-CNN, we place fusion operation between the first and second convolutional layers.
待解决:

并没有给PANet该部分的整体结构图,POI Align成固定尺寸后,先进行融合,再进行三个分支?

Fully-connected Fusion

在这里插入图片描述
本来是上部分直接mask的,加入下层fc的原因:
由于fc是通过大量的参数来预测特征图不同位置的,所以fc是位置敏感的。而且fc可以利用全局信息对各个子区域进行预测,有助于区分不同实例和识别属于同一对象的不同部分。
    模块结构:上面是四个卷积加一个反卷积,卷积都是256个3*3的filter,上采样的倍数为2。mask预测的是前景/背景的二分类。增加的为下部分,从conv3引下来一个分支,该分支包含两个conv,一个fc和一个reshape。其中conv5_fc是将通道减半(由图看出来变薄了)的,fc要保证reshape后的特征图大小和上面的反卷积之后的特征图大小一致。
    只采用一个fc的原因:

Using only one fc layer, instead of multiple of them, for final prediction prevents the issue of collapsing the hidden spatial feature map into a short feature vector, which loses spatial information

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

相关文章

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

怎么使用 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)…