目标检测-Two Stage-SPP Net

文章目录


前言

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)成统一大小,会造成变形失真等问题,从而影响精度(见下图)

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的输出

实际使用了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节省了大量计算时间
  2. 使用SPP Layer固定输出大小,改善了warp/crop这种预处理方法可能造成的图像失真从而导致识别精度下降的问题
  3. 使用了多尺度训练(224和180)提高了精度

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


总结

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

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

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

相关推荐
碧海银沙音频科技研究院几秒前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
冬奇Lab36 分钟前
让 AI Agent 更可靠:Harness Engineering 与多 Agent 系统工程实践
人工智能·llm·agent
放下华子我只抽RuiKe537 分钟前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
想你依然心痛37 分钟前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“文思智脑“——PC端AI智能体沉浸式智能写作工作台
人工智能·ar·harmonyos·ai写作
冬奇Lab38 分钟前
一天一个开源项目(第108篇):Andrej Karpathy Skills - 用一个 CLAUDE.md 文件修复 LLM 编码的四个顽疾
人工智能·开源·资讯
涛声依旧-底层原理研究所39 分钟前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet1 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch1 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
科技那些事儿1 小时前
实时洞察,视觉赋能:国内情绪识别API公司推荐及计算机视觉流派深度解析
人工智能·计算机视觉