目标检测系列(三)——SPPnet
SPPNet
Spatial Pyramid Pooling(空间金字塔池化)
一般的CNN结构中,对输入大小要求固定,但在现实中通常会使用crop和warp来将大小统一,这样做会破坏图像的纵横比,何凯明提出了SPP,连接在最后一层卷积层。
下图中左边为裁剪(crop),右边为拉伸(crop)
SPP特点:
- SPP可以产生固定大小的输出
- 使用多个pooling窗口
- SPP可以使用同一图像不同尺寸作为输入,得到同样长度的池化特征
- 提高了尺度不变性,降低了过拟合
- 使用不同尺寸的图像进行网络训练更容易使得网络收敛
- SPP对于特定的CNN网络设计和结构是独立的,只是替换了原来的pooling层
- 不仅可以用于图像分类,也可以用于目标检测
1、结合空间金字塔方法实现CNNs对尺度输入
一般CNN后连接全连接层或分类器,他们都需要固定的输入尺寸,因此不得不对输入数据进行crop或warp,这些预处理会造成数据的丢失或几何失真。
SPP Net的第一个贡献就是将金字塔思想加入CNN,实现了数据的多尺度输入。
如下图所示,卷积层和全连接层中间加入了SPP layer,此时网络的输入可以是任意尺度的,在SPP layer 中每一个pooling的滤波器会根据输入调整大小,使得SPP的输出尺度始终是固定的。图中的pooling窗口有多种(图中蓝色、绿色、灰色窗口),分别对feature maps进行pooling,将分别得到的结果进行合并就得到固定长度的输出。
作者证明:
- 多个窗口的pooling会提高准确率
- 输入同一图像的不同尺寸,会提高实验准确率,也就是提高了网络的尺度不变性
- 多view会提高准确率
- SPP替换了pooling层,对网络结构没有影响,可以正常训练
2、只对原图提取一次卷积特征
在R-CNN中,每个候选框先resize到同一大小,然后分别作为CNN的输入,这样是低效的,所以SPP对此作了优化,只对原图进行一次卷积得到整张图的feature map,然后找到每个候选框在feature map上的映射patch,将次patch作为每个候选框的卷积特征输入到SPP layer后的层,节省了大量的计算时间,比R-CNN有100倍左右的提速。
目标检测系列(三)——SPPnet相关推荐
- 非极大值抑制_【计算机视觉——RCNN目标检测系列】三、IoU与非极大抑制
写在前面 在上一篇博客:[计算机视觉-RCNN目标检测系列]二.边界框回归(Bounding-Box Regression)( 戴璞微:[计算机视觉-RCNN目标检测系列]二.边界框回归(Boundi ...
- 【R-CNN目标检测系列】三、IoU与非极大抑制
写在前面 在上一篇博客:[计算机视觉--RCNN目标检测系列]二.边界框回归(Bounding-Box Regression)中我们主要讲解了R-CNN中边界框回归,接下来我们在这篇博客我们讲解R-C ...
- 目标检测系列(preface) 数据集DataSets
目标检测系列(Preface) - 数据集 公开数据集(PASCAL VOC // COCO)介绍 一.PASCAL VOC格式数据集 官网 标注工具 1.数据集一般格式 VOC2007 Annota ...
- python目标识别算法_深度学习目标检测系列:一文弄懂YOLO算法|附Python源码
摘要: 本文是目标检测系列文章--YOLO算法,介绍其基本原理及实现细节,并用python实现,方便读者上手体验目标检测的乐趣. 在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系 ...
- 目标检测(降低误检测率及小目标检测系列笔记)
深度学习中,为了提高模型的精度和泛化能力,往往着眼于两个方面:(1)使用更多的数据(2)使用更深更复杂的网络. ** 一.什么是负样本 ** 负样本是指不包含任务所要识别的目标的图像,也叫负图像(Ne ...
- 使用PyTorch从零开始实现YOLO-V3目标检测算法 (三)
原文:https://blog.csdn.net/u011520516/article/details/80216009 点击查看博客原文 这是从零开始实现YOLO v3检测器的教程的第3部分.第二部 ...
- 目标检测系列(五)——Faster R-CNN译文
文章目录 摘要 引言 2. 相关工作 3. Faster R-CNN 3.1 区域提议网络 3.1.1 anchor 3.1.2 损失函数 3.1.3 训练RPNs 3.2 RPN和Fast R-CN ...
- 目标检测系列(四)——Fast R-CNN译文
文章目录 摘要 1. 引言 1.1 R-CNN和SPPnet 1.2 本文贡献点 2. Fast R-CNN的框架和训练过程 2.1 RoI pooling层 2.2 从预训练网络初始化 2.3 针对 ...
- 深度学习目标检测系列:一文弄懂YOLO算法|附Python源码
在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系列算法原理,以及Faster RCNN的实现.这些算法面临的一个问题,不是端到端的模型,几个构件拼凑在一起组成整个检测系统,操作起 ...
最新文章
- 【机器视觉案例】(9) AI视觉,手势控制电脑键盘,附python完整代码
- drupal与html转换,Drupal 7修改網頁HTML和顯示Title的辦法
- BZOJ 2561: 最小生成树(最小割)
- 图像显著区域检测代码及其效果图 saliency region detection
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 完整代码示例 ) ★★★
- step1.day12 Linux下使用C语言编程基础总结
- 客官,.NETCore无代码侵入的模型验证了解下
- python中代理模式分为几种_Python设计模式之代理模式实例详解
- C语言内存泄露很严重,如何应对?
- MSYS2+MinGW32 编译 QEMU需做的准备工作
- php 替换 数组,php如何替换数组的值
- PHP JAVA BASE64 encode decode
- 最小树——迪杰斯特拉算法
- 51单片机 日历 c语言 数码管,51单片机做的数码管电子日历
- C/C++ 根据年月日计算星期几——蔡勒公式篇
- java聊天程序_java基于C/S模式实现聊天程序(客户端)
- 第2章 先从看得到的入手,探究活动
- python爬取豆瓣读书简单_Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
- Angular学习笔记之慕课大漠穷秋塞主讲
- 90后凤凰男:寒门难出贵子