目标检测(Object Detection)算法(二): SPPnet

SPPnet通过Spatial Pyramid Pooling解决了R-CNN中每个候选区域都要通过CNN提取特征的问题,提高了目标检测算法的效率。SPPnet允许网络接收任意尺寸的输入图像,先通过CNN产生feature map,再对所有提案共享该feature map进行Spatial Pyramid Pooling,降低了时间复杂度。
摘要由CSDN通过智能技术生成

0. 引言

之前介绍的R-CNN算是基于CNN的目标检测算法始祖。R-CNN存在一个严重问题:由selective search算法产生的所有proposals(候选区域)都需要经过CNN网络进行特征提取。考虑到R-CNN建议的proposals数量为2000,可知算法的效率实在非常低下。

本文将要介绍的SPPnet能够解决R-CNN的上述问题。需要注意的是,SPPnet在设计动机上并不是为了解决R-CNN存在的问题,它的核心思想是通过设计Spatial Pyramid Pooling方法来允许网络输入任意尺寸的图片。而对R-CNN的改进似乎仅仅是附带产物。


1. 研究动机

卷积神经网络(CNN)的主体结构通常为:卷积层(数个)+ 全连层 。大多数的CNN都要求输入图像的尺寸是固定不变的,如AlexNet的输入为227*227. 然而不难发现,在上述“卷积层(数个)+ 全连层 ”这样的标准CNN结构中,真正需要输入固定不变的部分其实是全连层。例如,假设紧接最后一个卷积层的全连层的大小为 N,那么该全连层的输入大小也就必须为 N。而对于卷积层,理论上讲它是可以处理任意尺寸的图片(即使图片小于卷积核大小,也可以通过padding来解决)。例如,对于同一卷积层,在卷积核数量和大小确定的情况下,不同尺寸的输入只会导致输出的feature map大小不一样(当然值也会不一样),但并不会使卷积层像全连层那样在遇到不同大小输入时完全无法工作。因此,在设计CNN时“没必要让CNN的输入大小一致,只需让进入全连层的输入大小一致即可”。同时,我们也可以通过下面的例子来说明强制要求CNN输入大小一致时容易产生的问题。

在这里插入图片描述
通常将任意尺寸图像转为网络固定输入尺寸(如227*227)的方法是crop(裁剪)和warp(形变)。上图以特定例子说明了这两种方法的问题。左图使用crop的方法容易丢失图像原本的重要信息;而右图使用warp的方法容易导致图像比例失真ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值