SPP-Net论文详解


SPP-Net是出自2015年发表在IEEE上的论文-《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》。

在此之前,所有的神经网络都是需要输入固定尺寸的图片,比如224*224(ImageNet)、32*32(LenNet)、96*96等。这样对于我们希望检测各种大小的图片的时候,需要经过crop,或者warp等一系列操作,这都在一定程度上导致图片信息的丢失和变形,限制了识别精确度。而且,从生理学角度出发,人眼看到一个图片时,大脑会首先认为这是一个整体,而不会进行crop和warp,所以更有可能的是,我们的大脑通过搜集一些浅层的信息,在更深层才识别出这些任意形状的目标。



为什么要固定输入图片的大小?

       卷积层的参数和输入大小无关,它仅仅是一个卷积核在图像上滑动,不管输入图像多大都没关系,只是对不同大小的图片卷积出不同大小的特征图,但是全连接层的参数就和输入图像大小有关,因为它要把输入的所有像素点连接起来,需要指定输入层神经元个数和输出层神经元个数,所以需要规定输入的feature的大小。
       因此,固定长度的约束仅限于全连接层。以下图为例说明:

                             

            作为全连接层,如果输入的x维数不等,那么参数w肯定也会不同,因此,全连接层是必须确定输入,输出个数的。


SPP-Net是如何调整网络结构的?

### SPP-Net 论文概述 SPP-Net 是一种基于深度卷积神经网络的空间金字塔池化方法,其核心在于通过引入空间金字塔池化(Spatial Pyramid Pooling, SPP)层,使得模型能够接受任意尺寸的输入图像,并生成固定长度的特征表示[^1]。这种方法突破了传统卷积神经网络对输入图像尺寸固定的限制。 #### SPP-Net 的主要特点 SPP-Net 在最后一个卷积层之后加入了一个 SPP 层,该层通过对特征图进行多尺度池化操作,生成固定长度的输出向量[^2]。这一特性允许网络在不改变整体结构的情况下适应不同分辨率的输入数据。此外,SPP-Net 不仅适用于图像分类任务,在目标检测领域也表现出显著优势[^4]。 #### SPP-Net 的工作原理 SPP-Net 的基本流程如下: 1. 输入图像经过一系列卷积层提取特征; 2. 特征图被传递到 SPP 层,其中通过多个子区域划分实现多层次的信息聚合; 3. 聚合后的特征被展平为一维向量,并作为后续全连接层或分类器的输入[^3]。 以下是 SPP-Net 中的关键代码片段展示如何实现空间金字塔池化: ```python import torch.nn as nn class SpatialPyramidPooling(nn.Module): def __init__(self, pool_sizes=[1, 2, 4]): super(SpatialPyramidPooling, self).__init__() self.pool_sizes = pool_sizes def forward(self, x): N, C, H, W = x.size() pooled_features = [] for size in self.pool_sizes: kernel_size = (H // size, W // size) stride = kernel_size padding = (0, 0) pooled = nn.functional.max_pool2d(x, kernel_size=kernel_size, stride=stride, padding=padding) pooled_features.append(pooled.view(N, -1)) return torch.cat(pooled_features, dim=1) ``` 上述代码定义了一个简单的 SPP 实现方式,支持多种池化级别配置。 #### 如何获取 SPP-Net 原始论文? 原始论文由何恺明等人撰写,标题为 **《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》**,于 2015 年发表在 IEEE 上。可以通过以下途径下载: - 使用学术搜索引擎如 Google Scholar 搜索论文标题。 - 进入 IEEE 官方网站查询相关内容。 - 利用机构访问权限或者开放存取资源库(如 arXiv)检索 PDF 文件。
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值