目标检测-Two Stage-SPP Net

文章目录

  • 前言
  • 一、SPP Net 的网络结构和流程
  • 二、SPP的创新点
  • 总结


前言

SPP Net:Spatial Pyramid Pooling Net(空间金字塔池化网络)

SPP-Net是出自何凯明教授于2015年发表在IEEE上的论文-《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》

前文目标检测-Two Stage-RCNN中提到RCNN的主要缺点如下:

  1. 2000候选框都需要进行CNN提特征+SVM分类,计算量很大
  2. 所有候选框在输入CNN前都裁剪/缩放(crop/warp)成统一大小,会造成变形失真等问题,从而影响精度(见下图)

目标检测-Two Stage-SPP Net_第1张图片

SPP Net 针对上述缺点做了改进


提示:以下是本篇文章正文内容,下面内容可供参考

一、SPP Net 的网络结构和流程

  1. 使用EdgeBoxes提取2,000个候选窗口(candidate windows)
  2. 预训练CNN模型(ZF)+ 微调(fine-tuning) / 从头开始训练模型
  3. 调整图像的大小,使min(w,h)=s,并使用CNN网络从整个图像中提取特征图(feature maps)

ps:输入影像大小可以是任意的,因此feature map的大小也是任意的

  1. 使用线性模型将候选窗口在原图的位置映射到卷积层特征图,以获取每个候选窗口的特征图(feature maps)
  2. 通过空间金字塔池化层(Spatial Pyramid Pooling Layer)将每个候选窗口feature map转化为固定大小

ps:以下图举例来说,SPP以3级空间金字塔(4×4,2×2,1×1)来提取特征,就可以得到16+4+1=21种不同的块(Spatial bins),对每个块进行池化操作,最终得到固定大小为21×256的输出
目标检测-Two Stage-SPP Net_第2张图片
实际使用了4级空间金字塔(1×1, 2×2, 3×3, 6×6),这会为每个候选窗口生成12800d(256×50)的表示

  1. 将经过SPP Layer层的得到的候选窗口的表示(12800d)输入全连接网络
  2. 训练一个SVM分类器,根据全连接网络输出特征进行分类,利用非极大值抑制(NMS)去除冗余候选区
  3. 训练一个回归模型,精修正确的候选框位置及大小

在这里插入图片描述

二、SPP的创新点

  1. 相比于RCNN先提特征后卷积,SPP Net先卷积后提特征,因此只需要一次卷积,相比于RCNN节省了大量计算时间目标检测-Two Stage-SPP Net_第3张图片
  2. 使用SPP Layer固定输出大小,改善了warp/crop这种预处理方法可能造成的图像失真从而导致识别精度下降的问题
  3. 使用了多尺度训练(224和180)提高了精度

ps:输入的大小可以是任意的,使得网络可用于多尺度训练


总结

尽管相比于RCNN,SPP Net提高了精度和速度,但是仍然是分开训练多个模型,模型训练难度大且繁杂。

尽管比RCNN快10-100倍,但仍然很慢

SPP Net无法更新空间金字塔池化层以下的权重,根本原因是,当每个训练样本来自不同影像时,通过SPP层的反向传播效率很低

你可能感兴趣的:(目标检测,目标检测,人工智能,计算机视觉,深度学习,算法)