目标检测-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层的反向传播效率很低

相关推荐
MIXLLRED2 小时前
Windows 搭建《动手学深度学习》PyTorch 环境:从安装到踩坑记录
pytorch·windows·深度学习
陈天伟教授2 小时前
DeepSeek Harness 6个使用技巧
人工智能·具身智能
promanz2 小时前
llamap.cpp 和 llama-index连接
人工智能·llama
Allen_LVyingbo2 小时前
信息化部门在AI时代的编程转移路径分析(下)
人工智能·log4j·线性回归·健康医疗·数据库开发·时序数据库·数据库架构
EatFan2 小时前
Agent Harness 为什么突然成了独立品类?从 pydantic-ai-harness v0.30.0 看编码智能体的可复现工程化
人工智能·ai agent·agent harness
Carl_奕然2 小时前
【智能体】Loop 的四种设计模式之:Agent Loop(2026 最新版)
人工智能·设计模式·语言模型
Geeys2 小时前
拼多多店铺怎么运营才能有订单?新手低成本出单攻略
大数据·网络·人工智能
代码不停2 小时前
BFS算法解决FloodFill问题
算法·bfs·宽度优先
艾莉丝努力练剑2 小时前
【AI大模型接入SDK】ChatSDK架构设计与实现
网络·c++·人工智能·学习·语言模型
Data-Miner2 小时前
做表格数据分析的AI工具怎么选?先对一下这三个真实需求,再看哪些真能落地
人工智能·数据分析·excel