Pytorch:目标检测网络-FPN

本文详细介绍了目标检测中的特征金字塔网络(FPN),该网络通过融合不同层的特征,解决了多尺度检测的问题。FPN包含自下而上的卷积网络、自上而下的上采样、横向连接和卷积融合四个部分,能够提供高分辨率且具有丰富语义信息的特征图,适用于小物体检测和实例分割任务。此外,还提供了FPN的PyTorch代码实现,展示了网络结构和各层的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pytorch: 目标检测-特征金字塔-FPN

Copyright: Jingmin Wei, Pattern Recognition and Intelligent System, School of Artificial and Intelligence, Huazhong University of Science and Technology

Pytorch教程专栏链接


本教程不商用,仅供学习和参考交流使用,如需转载,请联系本人。

Reference

FPN

《深度学习之 Pytorch 物体检测实战》

import torch.nn as nn
import torch.nn.functional as F
import torch
FPN 网络结构

为了增强语义性,传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如 16 , 32 16,32 16,32 ,造成小物体在特征图上的有效信息较少,小物体的检测性能会急剧下降,这个问题也被称为多尺度问题。

解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺度的图像生成不同尺度的特征,这种方法简单而有效,大量使用在了 COCO 等竞赛上,但缺点是非常耗时,计算量也很大。

从 torch.nn 那一章可以知道,卷积神经网络不同层的大小与语义信息不同,本身就类似一个金字塔结构。 2017 2017 2017 年的 FPN (Feature Pyramid Network)方法融合了不同层的特征,较好地改善了多尺度检测问题。

FPN 的总体架构如图所示,主要包含自下而上网络、自上而下网络、横向连与卷积融合 4 4 4 个部分。

在这里插入图片描述

  • 自下而上:最左侧为普通的卷积网络,默认使用 ResNet 结构,用作提取语义信息。 C 1 C_1 C1 代表了 ResNet 的前几个卷积与池化层,而 C 2 − C 5 C_2-C_5 C2C5 分别为不同的 ResNet 卷积组,这些卷积组包含了多个 Bottleneck 结构,组内的特征图大小相同,组间大小递减。

  • 自上而下:首先对 C 5 C_5 C5 进行 1 × 1 1\times1 1×1 卷积降低通道数得到 M 5 M_5 M5 ,然后依次进行上采样得到 M 4 , M 3 , M 2 M_4,M_3,M_2 M4,M3,M2 ,目的是得到与 C 4 , C 3 , C 2 C_4,C_3,C_2 C4,C3,C2 长宽相同的特征,以方便下一步进行逐元素相加。这里采用 2 2 2 倍最邻近上采样,即直接对临近元素进行复制,而非线性插值。

  • 横向连接(Lateral Connection):目的是为了将上采样后的高语义特征与浅层的定位细节特征进行融合。高语义特征经过上采样后,其长宽与对应的浅层特征相同,而通道数固定为 256 256 256 ,因此需要对底层特征 C 2 − C 4 C_2-C_4 C

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值