游乐游手机版
首页/AI热点日报/热点详情

常见经典目标检测算法:R-CNN与SPP-Ne详解

类型:热点整理2026-07-08
目标检测区分感兴趣目标与背景。经典算法包括R-CNN、SPP-Net、FastR-CNN和R-FCN。R-CNN首次将深度学习用于检测,但候选框独立卷积导致速度慢;SPP-Net引入空间金字塔池化,支持任意输入并共享卷积计算;FastR-CNN通过整图卷积加RoIPooling大幅提升速度;R-FCN采用位置敏感得分图,保持全卷积结构。这些算法体现了从独立计

什么是目标检测?

目标检测是指在视频或图片序列中把感兴趣的目标与背景区分,是在图像中确定目标是否存在且确定目标位置的过程,是计算机视觉领域中的主要研究方向。

目标检测主要应用于人脸识别无人驾驶指控和安防等领域,起到人工智能赋能传统应用的作用。目标检测的核心是算法。目前,目标检测算法主要分为两大类:

  • 基于手工设计特征的传统算法
  • 基于深度学习的目标检测算法

常见经典目标检测算法

经典目标检测算法包括 R-CNNSPP-NetFast R-CNNR-FCN 等。以下逐一详细介绍。

1. R-CNN(Region-CNN)

R-CNN 在 CVPR 2014 年由 Ross Girshick 提出。它的全称是 Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。其核心流程为:

  • 使用候选区域方法(region proposal method)生成约 2000 个候选框
  • 将每个候选框调整为固定尺寸后输入 CNN 提取特征
  • 利用 SVM 分类器对特征进行分类
  • 通过 bbox 回归器精细调整边界框位置

R-CNN 改变了图像领域实现物体检测的模型思路,以深度神经网络为基础,后续的 SPPNet、Fast R-CNN、Faster R-CNN 模型都沿着这一思路发展。

小提示:R-CNN 虽然效果优异,但每个候选框都需要独立计算卷积,导致速度较慢(测试一张图约需 47 秒)。

常见问题:R-CNN 为什么被称为“Region-CNN”?

答案:因为它的核心思路是先提取候选区域(Region Proposals),再通过 CNN 对每个区域进行分类和回归,因此得名。

2. SPP-Net

SPP-Net 提出了一种 空间金字塔池化(Spatial Pyramid Pooling) 结构,可以处理任意尺寸的输入图像,并输出固定长度的特征向量,且对图像变形表现稳定。主要优势:

  • 不再需要将候选框裁剪/缩放至统一尺寸,避免了形变失真
  • 通过候选区域与特征图的映射,共享卷积计算,运算速度比 R-CNN 快 24~102 倍

SPP-Net 的改进启发了后来的 Fast R-CNN 等算法。

小提示:SPP 层实际上是对特征图进行多尺度池化(如 4×4、2×2、1×1),然后将结果拼接成固定长度,从而兼容任意输入尺寸。

常见问题:SPP-Net 相比 R-CNN 主要改进了什么?

答案:主要改进了两点:1)引入空间金字塔池化层,支持任意输入尺寸;2)通过特征图映射,使所有候选框共享同一个卷积计算结果,大幅减少重复计算。

3. Fast R-CNN

Fast R-CNN 在 R-CNN 和 SPP-Net 基础上进一步优化:

  • 训练速度是 R-CNN 的 9 倍,测试速度是 R-CNN 的 213 倍
  • 相比 SPP-Net,训练速度提升 3 倍,测试速度提升 10 倍

核心改进:虽然仍使用 selective search 选取 2000 个建议框,但不再将每个建议框独立送入卷积网络,而是先将整张图片输入卷积网络得到特征图,再在特征图上根据建议框提取对应区域的特征。这使得每个位置只计算一次卷积,大大减少了原先由于建议框重合导致的重复计算。

小提示:Fast R-CNN 将分类和回归任务整合进了同一个网络(多任务损失),不再需要单独的 SVM 和回归器。

常见问题:Fast R-CNN 为什么比 R-CNN 快这么多?

答案:因为 R-CNN 需要对每个候选框独立进行卷积计算(2000 次),而 Fast R-CNN 只对整张图做一次卷积,然后通过 RoI Pooling 从同一个特征图中提取所有候选框的特征,避免了大量重复计算。

4. R-FCN(Region-based Fully Convolutional Network)

R-FCN 全称为“Region-based fully convolutional network”。其网络结构如下图所示,与 Faster R-CNN 相比有以下两点不同:

  • 共享卷积子网络不同:Faster R-CNN 将 RPN 得到的 RoI 直接映射到 ResNet-101 的最后一个卷积层(2048 个 channels);而 R-FCN 将 ResNet-101 的最后一个卷积层映射到具有 个 channels 的特征层,作者称之为 “position-sensitive score maps”,然后将 RoI 映射到该特征层。
  • RoI 子网络不同:Faster R-CNN 的子网络经过全连接层做特征组合,然后执行分类和坐标回归的双任务;R-FCN 基于 pool 和 vote 操作后得到的特征向量,仅执行分类任务(回归任务通过另一分支实现)。

小提示:R-FCN 的核心思想是引入位置敏感得分图,使得网络可以保留空间信息,同时保持全卷积结构,进一步提升速度。

常见问题:R-FCN 中的“位置敏感”是什么意思?

答案:位置敏感指特征图的不同通道对应目标的不同相对位置(如左上、右下等),这样 RoI 池化时可以根据位置信息更准确地判断目标类别,而不需要全连接层来组合空间特征。

总结

以上四种经典算法(R-CNN、SPP-Net、Fast R-CNN、R-FCN)构成了深度学习目标检测的基础发展脉络。它们从最初的“候选框独立计算”逐步演进到“共享卷积+特征图映射”以及“全卷积+位置敏感”等更高效的架构。理解这些算法,有助于您快速掌握后续 Faster R-CNN、YOLO、SSD 等主流检测器的设计思想。

来源:https://m.elecfans.com/article/1950881.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。