首页 > 其他分享 >PAN路径聚合网络

PAN路径聚合网络

时间:2023-11-29 15:47:31浏览次数:84  
标签:底向上 聚合 特征 路径 融合 FPN PAN

PAN路径聚合网络

目录

目标检测或者实例分割不仅要关心语义信息,还要关注图像的精确到像素点的浅层信息。

所以需要对骨干网络中的网络层进行融合,使其同时具有深层的语义信息和浅层的纹理信息。

通过自底向上的路径增强,利用准确的低层定位信号增强整个特征层次,从而缩短了低层与顶层特征之间的信息路径

论文地址:https://arxiv.org/abs/1803.01534

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

FPN特征金字塔

FPN采用自顶向下的模式,将高层特征传下来。而底层特征却无法影响高层特征

高层的 Feature maps 关注物体整体,低层的 Feature maps 关注物体的纹理图案。使用低层的信息可以对物体进行更好地定位

回归坐标比较需要底层 (low level) 的细节信息语义信息对目标的分类起更大的作用,进行坐标回归的时候往往是在比较高层 (high level) 的特征图上进行的。

比如P5, 想要到达 P5,我们需要经过整个backbone,同样的 P5 到 P3 的细节信息损失是比较多的。

  • 低层特征到高层特征的传递路径过长
  • FPN 中每个 proposal 只负责金字塔特定的一层,掩码预测只基于单一视角

PAN网络

img

  • 自底向上的路径增强,为了缩短信息传播路径,同时利用低层特征的精准定位信息,PANet引入了自底向上的路径,使得底层信息更容易传递到高层顶部
  • 动态特征池化 (自适应特征池化),每个 proposal 利用金字塔所有层的特征,为了避免 proposal 的随意分配
  • 全连接层融合,为了给掩码预测增加信息来源

红色的箭头表示在FPN中,因为要走自底向上的过程,浅层的特征传递到深层需要经过几十个甚至上百个网络层

绿色的箭头表示添加了一个自底向上结构,这个结构本身不到10层,这样浅层特征经过原始FPN中的横向连接到P2然后再从P2沿着自底向上的网络传递到深层,经过的层数不到10层,能较好的保存浅层特征信息。

模型结构

自底向上网络

img

PANet通过一个更浅层的Ni 和更深层的Pi+1 融合的方式得到它的下一层Ni+1

以N2 到N3 的计算为例。

先通过一个步长为2的3*3 卷积对N2进行下采样,再通过单位加的方式将P3和下采样之后的Feature Map进行特征融合。

接着再使用一个3*3的卷积对特征进行融合,增加融合之后的特征的表征能力。

最后使用ReLU激活函数对特征进行非线性化。

在PANet中,[N3、N4、N5]均是采用上面的融合方式,而N2是直接复制的P2的值。

动态特征池化

img

在FPN中,每个Feature Map都会输出一个预测结果。不同大小的物体被分给不同的层,比如最小的分给 P2,最大的分给 P5

PANet提出了融合所有层的Feature Map的池化操作:自适应特征池化层。

  • 1、使用 RoIAlign 对其进行提取得到 4 组相同 shape 的特征图。
    • 图中写了 ROIAlign,灰色的区域就是 region proposal 对应的特征图中的区域,然后通过 ROIAlign 进行 pooling
  • 2、对 4 组特征进行融合,可以是 sum、max、product。
    • 逐像素的做 max 或者 add
  • 3、使用融合后的特征图进行分类、bbox 预测、mask 预测。

bbox分支全连接融合

img

PANet提出了 Mask 分支 FCN+ 全连接层的融合

其主分支由4个连续的3*3卷积核一个上采样2倍的反卷积组成,它用来预测每个类别的mask分支。

全连接融合的另一个分支是从conv3叉出的一个全连接层,它先通过两个3*3卷积进行降维,然后将其展开成一维向量,然后通过这个向量预测类别不可知的前景/背景的mask。

最后再通过一个reshape操作将其还原为 28*28的Feature Map。

模型总结

PANet是一个加强版的FPN,它通过融合自底向上和自顶向下两条路径的方式增强了骨干网络的表征能力。

自适应特征池化使模型自己选择在预测不同物体时选择不同的Feature Map,避免了目标尺寸和网络深度的单独匹配。

其他特殊

YOLO V4中的PAN模块,在特征融合的处理上和PAN有所不同,PAN是将两种特征进行相加,而YOLO V4中是将两种特征进行Concat。

参考:https://blog.csdn.net/leeyns/article/details/128103512

参考资料

https://blog.csdn.net/qq_41301570/article/details/134244438 图好看

http://pointborn.com/article/2022/2/14/1816.html 很详细

https://blog.csdn.net/weixin_48167570/article/details/120920521

标签:底向上,聚合,特征,路径,融合,FPN,PAN
From: https://www.cnblogs.com/tian777/p/17864995.html

相关文章

  • 把pandas DataFrame含有异常值的行打印出来
    功能:检查pandasDataFrame的每一行数据,只要含有Nan或Inf,无论在哪个位置,都把这行打印出来df[df.isin([np.nan,np.inf,-np.inf]).any(axis=1)]另一种用法就是,把含有异常值的行删掉df=df[~df.isin([np.nan,np.inf,-np.inf]).any(axis=1)]......
  • Python - pandas agg 函数
    agg()函数的常见用法是在分组数据后对特定列应用一个或多个聚合函数,生成汇总统计信息。例如,你可以对数据按照某个列进行分组,然后计算每个组的平均值、总和等。file:[差额对比分析.py]importpandasaspdzhaocai="C:\\Users\\root\\Downloads\\医疗机构入库明细.xlsx"zhao......
  • pandas如何将下图这个数据格式,改为%Y-%m-%d这种格式的?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【小王子】问了一个Python日期处理的问题,一起来看看吧。原始数据库中的数据如下所示:二、实现过程这里【袁学东】给了一个方法,代码如下所示:df['日期']=pd.to_datetime(df['日期']).datetime.strftime(‘%Y%m-%d’)顺利地解决了问......
  • Linux 中获取文件完整路径的4种方法介绍
    我们都知道,在命令行可以使用pwd命令来获取当前目录的完整路径(绝对路径):pwd那么,如何获取文件的绝对路径呢?有下列几种方法,可以打印文件的完整路径:readlinkrealpathfindls和pwd组合使用$readlink-fsample.txt/home/gliu/sample.txt$realpath-ssample.txt/home/gliu/samp......
  • Python自带数据集加载和Pandas学习简图
    Python是一种强大的编程语言,它拥有丰富的工具库和功能,其中之一就是自带的数据集,这些数据集在Python中非常有用,可以用于机器学习、数据分析、科学研究等。使用Python数据集可以极大地简化项目开发过程。通过导入现有的数据集,我们可以更快地开始分析和建模,并且可以使用已经实现的算......
  • Python数据文件的读取——Pandas库的使用
    Pandas是一个强大的数据分析库,它提供了一个名为DataFrame的数据结构,类似于R中的data.frame。DataFrame是一个二维的、标签化的数据结构,可以包含不同数据类型的列。它提供了许多方便的功能,如数据选择、过滤、合并、排序等,使得数据分析和处理变得更加容易。Pandas的DataFra......
  • Planting poplar threes—the application of a Chinese way to control soil cadmium
    SituationsofsoilcadmiumpollutioninJapan Inthelastcentury,therewasaserioushealthaccidentinJapan,anoutbreakofItai-itaidisease,whichwascausedbythecadmiumpollution.   Inthe"Itai-itaiDisease"incidentinJapan,af......
  • pandas学习
    1.Series类型Series类型由一组数据及与之相关的数据索引组成也可以自定义索引:1.1初始化从标量创建:从字典创建:从ndarray类型创建:1.2基本操作Series类型包括index和values两部分。Series类型的操作类似ndarray类型Series类型的操作类似Python字典类型可以使用......
  • URL绕过-后缀路径模式匹配设置错误绕过过滤器
    @ConfigurationpublicclassUrlMatchConfigextendsWebMvcConfigurationSupport{@OverridepublicvoidconfigurePathMatch(PathMatchConfigurerconfigurer){//setUseSuffixPatternMatch后缀模式匹配,如果设置为true,路径后面不管多少个//都能匹配......
  • pandas应知必会
    #创建dfcolumns=[A,B,C,D]data=[[1,2,3,4],[5,6,7,8]]df=pd.DataFrame(data,columns=columns)#对某列求和df[A].sum()#普通求和df[(df['是否下单']=='下单')].sum()#筛选求和#添加一列,axis=1,指定计算的方向是行而不是列,apply()对元素进行逐元素遍历操作data["x......