FPN+PAN结构,SPP结构

FPN通过高层特征传递语义信息以增强多尺度检测,而PAN则反向传递底层定位信息,提高小目标识别准确性。SPP网络解决了CNN对固定输入尺寸的需求和R-CNN的重复计算问题,通过ROIAlign提高检测和分割精度。这些技术在fastR-CNN、fasterR-CNN和maskR-CNN等模型中得到应用。
Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

一、FPN+PAN

在这里插入图片描述
FPN 高维度向低维度传递语义信息(大目标更明确)
PAN 低维度向高维度再传递一次语义信息(小目标也更明确)
请添加图片描述
请添加图片描述
请添加图片描述

二、SPP

深层的feature map携带有更强的语义特征,较弱的定位信息。而浅层的feature map携带有较强的位置信息,和较弱的语义特征。FPN就是把深层的语义特征传到浅层,从而增强多个尺度上的语义表达。而PAN则相反把浅层的定位信息传导到深层,增强多个尺度上的定位能力。

在何恺明2015年《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》被提出,改论文主要改进两点:

解决CNN需要固定输入图像的尺寸,导致不必要的精度损失的问题;

因为带有全连接层的网络结构都需要固定输入图像的尺度,当然后期也有直接用conv层代替FC层的,比如SSD网络直接用conv层来计算边界框坐标和置信度的。

解决R-CNN对候选区域进行重复卷积计算,导致计算冗余的问题;

因为R-CNN网络中基于segment seletive输出的2000个候选框都要重新计算feature map较为耗时,因此提出了候选区域到全图的特征(feature map)之间的对应映射,这样图像只需计算一次前向传播即可。
在之后的 fast R-CNN 和 faster R-CNN 都采用这种映射关系,为ROI pooling层。
但在mask R-CNN中,用ROI Align替代了ROI pooling层,其认为两次量化的候选框与最开始的回归候选框有一定偏差,影响检测和分割准确度,ROI Align中不进行float量化,通过双线性内插计算四个坐标点,然后进行max pooling。

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

03-14
### FPNPAN 的概念及架构 #### Feature Pyramid Network (FPN) Feature Pyramid Network 是一种用于目标检测的特征提取网络,其核心思想是在卷积神经网络的不同层次上构建一个多尺度的特征金字塔。通过自顶向下的路径和横向连接来增强高层次语义信息与低层次空间细节之间的融合[^1]。 FPN 的主要特点如下: - **自底向上路径**:这是 CNN 中自然形成的特征图序列,随着层数增加,特征图的空间分辨率逐渐降低,而语义信息逐步增强。 - **自顶向下路径**:这一部分通过对高层特征进行上采样操作,恢复一定的空间分辨率,并将其传递到较低层。 - **横向连接**:将相同大小的高分辨率特征图与经过处理后的低分辨率特征图相加,从而实现不同尺度上的特征融合。 这种设计使得模型能够更好地捕捉物体在多个尺度上的表现,尤其对于小目标检测效果显著提升[^2]。 ```python def build_fpn(features): # 自顶向下路径初始化最高层特征 P5 = Conv2D(256, kernel_size=1)(features[-1]) pyramid_features = [P5] # 构建其他层级特征 for i in range(len(features)-2, -1, -1): Pi_upsampled = UpSampling2D(size=(2, 2))(pyramid_features[-1]) lateral_feature = Conv2D(256, kernel_size=1)(features[i]) # 横向连接 Pi = Add()([Pi_upsampled, lateral_feature]) Pi = Conv2D(256, kernel_size=3, padding="same")(Pi) pyramid_features.append(Pi) return pyramid_features[::-1] ``` --- #### Path Aggregation Network (PAN) Path Aggregation Network 可视为对 FPN 的改进版本,在保留原有功能的基础上进一步优化了特征传播机制。它不仅增强了从下往上传播的信息流,还引入了一个额外的自底向上的强化过程,以弥补仅依赖单一方向可能带来的不足之处。 具体来说,PAN 结构由两大部分组成: 1. **FPN 部分**:按照传统方式完成初步的跨级别特征融合; 2. **Bottom-Up 路径加强模块**:基于已有的多级特征再次执行一次反向聚合操作,即从小尺寸特征逐级注入至大尺寸区域,最终形成更加鲁棒的整体表示形式。 这种方法可以更充分地利用底层丰富的纹理边缘等局部线索辅助全局理解任务,如实例分割或密集预测等问题解决得更好一些。 ```python def build_pan(fpn_features): pan_features = [] # Bottom-up path augmentation bottom_up_input = fpn_features[0] for feature in fpn_features[1:]: bottom_up_input = Conv2D(256, kernel_size=3, strides=2, padding='same')(bottom_up_input) combined_feature = Concatenate()([feature, bottom_up_input]) enhanced_feature = Conv2D(256, kernel_size=1)(combined_feature) pan_features.append(enhanced_feature) return pan_features ``` --- ### 主要差异对比 | 属性 | FPN | PAN | |---------------------|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| | 特征流动方向 | 单一方向——自顶向下 | 双重方向——先自顶向下再加入自底向上 | | 复杂度 | 较低 | 略高于 FPN | | 对小目标的支持 | 改善明显 | 更强 | | 应用场景 | 图像分类、目标检测 | 实例分割、密集预测 | 尽管两者都旨在改善多尺度对象识别能力,但它们各自侧重的应用领域有所不同。FPN 更适合一般性的目标定位需求;而当面对复杂背景或者需要精确边界描绘的任务时,则推荐采用 PAN 方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值