【深度学习之三】FPN与PAN网络详解

FPN与PAN:深度学习中的特征金字塔网络与路径聚合网络

在深度学习的领域里,特征金字塔网络(Feature Pyramid Networks,简称FPN)路径聚合网络(Path Aggregation Network,简称PAN) 是两个引人注目的架构。它们都被设计用来增强深度神经网络对多尺度目标的检测能力。尽管它们的目标相同,但实现方式却各有特色。下面,我们将详细探讨这两种网络的工作原理和区别。

一、FPN:自顶向下的特征金字塔(CVPR2017年文章中提出)

FPN是一种自顶向下的架构,它通过构建一个特征金字塔来强化语义信息,主要用于解决目标检测中的多尺度问题。FPN通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能。
在深度神经网络中,高层特征通常包含更强的语义信息,而低层特征则包含更丰富的定位信息。FPN将高层的强语义特征通过上采样和横向连接的方式传递到低层,从而对整个金字塔进行增强。这种方式使得网络在保持语义信息的同时,也能更好地处理不同尺度的目标。然而,FPN有一个明显的缺陷,那就是它只传递了语义信息,而没有传递定位信息。这就导致了在某些情况下,网络可能无法准确地定位目标。
在这里插入图片描述

  1. a)多尺度输入----将输入图像resize成多个尺度,然后对每个尺度的图像提取出不同尺度的特征,这种方法计算量很大,因为要进行多次特征提取,即走了好几遍backbone。
  2. b)使用单特征层----将特征提取网络最后一层输出的特征图,拿去做检测、识别,这是最早期,最一般的方法,该方法的缺点在于,最后一层特征图的尺寸一般都比较小了,无法准确定位目标。
  3. c)多尺度特征----在特征提取时,保留中间层的不同尺度上的特征图,对每个尺度的特征图进行预测,这样做是不错的,但是高层特征图只具有丰富的语义信息,而低层特征图只有丰富的位置信息,没有将两者进行结合。
  4. d)FPN----对高层特征图(尺寸越小越高)进行上采样,然后跟上一层的特征图进行相加融合,这样就使融合后的特征图既包含高层的语义信息,又包含低层的结构信息。而且这样做只增加少量的计算量,是完全可以接受的。。

二、PAN:自底向上的特征聚合

针对FPN的这一缺陷,PAN应运而生。PAN在FPN的基础上,增加了一个自底向上的金字塔,以传递低层的强定位特征。这种“双塔战术”不仅保留了FPN的语义增强能力,还补充了定位信息的传递,使得网络在处理多尺度目标时更加全面和准确。在PAN中,低层的特征通过下采样和横向连接的方式传递到高层,与FPN的自顶向下传递形成互补。这样,网络就能同时利用高层的语义信息和低层的定位信息,提高了目标检测的精度。
在这里插入图片描述
在这里插入图片描述
如图在FPN的自上而下形成的特征金字塔的基础上,来以下这波操作就是PAN啦

(1)先复制特征金字塔中最底下的那层(①),变成新特征金字塔的最底层。

(2)将新特征金字塔的最底层来一个下采样操作,然后原特征金字塔的倒数第二层进行一个3 * 3卷积,步幅为2;然后与下采样后的最底层进行一个横向连接,两者相加。最后再来一个3 * 3卷积来融合他们的特征。

三、FPN与PAN的区别

  1. 信息传递方向:FPN是自顶向下的信息传递方式,主要强化语义信息;而PAN则增加了自底向上的信息传递方式,以补充定位信息的传递。
  2. 网络结构:FPN只构建了一个特征金字塔,而PAN则构建了两个金字塔,一个自顶向下,一个自底向上,形成了“双塔战术”。
  3. 应用效果:由于FPN只传递了语义信息,因此在处理某些需要精确定位的目标时可能会受限;而PAN则通过传递定位信息,提高了网络对多尺度目标的处理能力。

四、实际应用与实践经验

在实际应用中,FPN和PAN都有广泛的用途。FPN由于其简洁而高效的结构,常被用于各种目标检测任务,如RetinaNet、YOLOv3等。而PAN则在一些需要更高精度的任务中表现出色,如实例分割、关键点检测等。
对于实践者来说,选择使用FPN还是PAN,需要根据具体的任务需求和网络结构来决定。如果任务主要关注语义信息,那么FPN可能是一个更好的选择;如果任务需要更精确的定位,那么PAN可能更适合。

03-10
### PAN-FPN 架构详解 PAN (Path Aggregation Network) 是一种改进型的特征金字塔网络(Feature Pyramid Network, FPN),旨在提升目标检测中的多尺度特征提取能力。传统FPN仅通过自顶向下的路径来增强低层特征,而PAN不仅保留了这种机制还引入了一个额外的自底向上路径,从而更好地聚合不同层次的信息。 具体来说,在构建PAN结构时,先按照标准FPN的方式创建一个多级联接的特征图序列;之后再利用这些高层语义丰富的特征反向传递回浅层位置,形成双向信息流[^2]。此设计使得每一层都能获得更全面的感受野范围内的上下文线索,对于小物体识别尤其有利。 #### 应用场景分析 PAN因其出色的性能表现被广泛应用于各类计算机视觉任务中: - **通用目标检测**:无论是大规模公开数据集还是特定领域的小样本情况,基于PAN的目标探测器均能取得良好效果; - **实例分割**:结合Mask R-CNN框架,PAN能够有效提高边界区域预测精度,改善最终输出质量; - **实时视频处理**:得益于其高效的计算模式以及易于优化部署的特点,PAN非常适合于移动设备端或边缘服务器上的在线视频监控系统开发工作[^4]。 ```python import torch.nn as nn class PAN(nn.Module): def __init__(self, in_channels_list, out_channel=256): super(PAN, self).__init__() # Top-down pathway construction using lateral connections self.lateral_convs = nn.ModuleList() self.fpn_outs = nn.ModuleList() for i in range(len(in_channels_list)): l_conv = ConvModule( in_channels_list[i], out_channel, kernel_size=1, stride=1, padding=0) fpn_out = ConvModule( out_channel, out_channel, kernel_size=3, stride=1, padding=1) self.lateral_convs.append(l_conv) self.fpn_outs.append(fpn_out) # Bottom-up pathway with additional layers to aggregate features from lower levels. self.downsample_convs = nn.ModuleList([ ConvModule(out_channel, out_channel, 3, stride=2, padding=1), ConvModule(out_channel, out_channel, 3, stride=2, padding=1)]) ... ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不高明的骗子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值