什么是 R-CNN?快速概览
了解 RCNN 及其对目标检测的影响。我们将介绍其关键组件、应用,以及它在推动 Fast RCNN 和 YOLO 等技术发展中的作用。

目标检测是一项计算机视觉任务,可识别和定位图像或视频中的对象,应用于自动驾驶、监控和医学影像等领域。早期的目标检测方法,例如 Viola-Jones 检测器,以及结合支持向量机 (SVM) 的方向梯度直方图 (HOG),依赖人工设计的特征和滑动窗口。这些方法通常难以在包含多个不同形状和大小对象的复杂场景中准确检测对象。
基于区域的卷积神经网络 (R-CNN) 改变了我们处理目标检测的方式。它是计算机视觉发展史上的重要里程碑。要理解像 Ultralytics YOLOv8 这样的模型是如何出现的,我们首先需要了解 R-CNN 这样的模型。
R-CNN 模型架构由 Ross Girshick 及其团队创建,它会生成区域提议,使用预训练的卷积神经网络 (CNN) 提取特征,进行对象分类,并优化边界框。这听起来可能有些复杂,但读完本文后,你将清楚了解 R-CNN 的工作原理,以及它为何具有如此重要的影响。让我们一起来看看!
R-CNN 如何工作?#
R-CNN 模型的目标检测过程包含三个主要步骤:生成区域提议、提取特征,以及在优化边界框的同时对对象进行分类。下面我们逐步介绍。

图 1:R-CNN 的工作原理。
区域提议:RCNN 的骨干#
第一步中,R-CNN 模型会扫描图像以创建大量区域提议。区域提议是可能包含对象的候选区域。选择性搜索等方法会分析图像的各个方面,例如颜色、纹理和形状,并将图像分解为不同部分。选择性搜索首先将图像划分为更小的部分,然后合并相似部分,形成更大的感兴趣区域。这个过程会持续进行,直到生成约 2,000 个区域提议。

图 2:选择性搜索的工作原理。
这些区域提议有助于识别对象可能存在的所有位置。在接下来的步骤中,模型可以专注于这些特定区域,而不是整幅图像,从而高效处理最相关的区域。使用区域提议可以在全面性与计算效率之间取得平衡。
图像特征提取:捕捉细节#
R-CNN 模型目标检测过程的下一步是从区域提议中提取特征。每个区域提议都会调整为 CNN 所需的统一尺寸(例如 224x224 像素)。调整尺寸有助于 CNN 高效处理每个提议。在变形之前,每个区域提议的尺寸会略微扩展,以包含区域周围额外的 16 个像素上下文,从而提供更多周边信息,改善特征提取效果。
调整尺寸后,这些区域提议会输入类似 AlexNet 的 CNN,而该 CNN 通常已在 ImageNet 等大型数据集上完成预训练。CNN 会处理每个区域,提取能够捕捉边缘、纹理和图案等重要细节的高维特征向量。这些特征向量浓缩了区域中的关键信息,并将原始图像数据转换为模型可用于进一步分析的格式。在后续阶段,能否准确分类和定位对象,取决于这一将视觉信息转换为有意义数据的关键过程。

图 3:使用 AlexNet 从区域提议中提取特征。
对象分类:识别检测到的对象#
第三步是对这些区域中的对象进行分类。这意味着要确定区域提议中每个对象所属的类别。随后,提取出的特征向量会输入机器学习分类器。
在 R-CNN 中,通常使用支持向量机 (SVM) 来完成这项任务。每个 SVM 都经过训练,用于识别特定的对象类别:它会分析特征向量,并判断某个区域是否包含该类别的实例。简单来说,每个对象类别都有一个专用分类器,用于检查每个区域提议中是否存在该特定对象。
在训练过程中,分类器会获得带有正样本和负样本的标注数据:
- 正样本:包含目标对象的区域。
- 负样本:不包含该对象的区域。
分类器会学习区分这些样本。边界框回归会进一步优化检测到的对象的位置和大小,方法是调整最初提出的边界框,使其更好地匹配实际对象边界。R-CNN 模型通过结合分类和边界框回归,能够识别并准确定位对象。

图 4。边界框回归示例。(来源:towardsdatascience.com)
整合流程:使用 NMS 优化检测结果#
完成分类和边界框回归步骤后,模型通常会为同一对象生成多个相互重叠的边界框。此时会应用非极大值抑制 (NMS) 来优化检测结果,仅保留最准确的边界框。模型通过应用 NMS 消除冗余和重叠的边界框,只保留置信度最高的检测结果。
NMS 会评估所有边界框的置信度分数(表示检测到的对象实际存在的可能性),并抑制那些与得分更高的边界框存在显著重叠的边界框。

图 5。非极大值抑制示例。(来源:towardsdatascience.com)
下面分解介绍 NMS 的步骤:
- **排序:**按照置信度分数降序排列边界框。
- **选择:**选择得分最高的边界框,并移除所有与其发生显著重叠的边界框(依据交并比 IoU 判断)。
- **迭代:**针对下一个得分最高的边界框重复这一过程,直到处理完所有边界框。
总的来说,R-CNN 模型通过生成区域提议、使用 CNN 提取特征、对对象进行分类并通过边界框回归优化其位置,以及使用非极大值抑制 (NMS),只保留最准确的检测结果,从而完成对象检测。
R-CNN 是目标检测领域的里程碑#
R-CNN 是目标检测发展史上的标志性模型,因为它引入了一种全新的方法,大幅提升了准确率和性能。在 R-CNN 出现之前,目标检测模型很难兼顾速度和精度。R-CNN 通过生成区域提议并使用 CNN 提取特征,实现了对图像中对象的精确定位和识别。
R-CNN 为 Fast R-CNN、Faster R-CNN 和 Mask R-CNN 等模型铺平了道路,这些模型进一步提升了效率和准确率。通过将深度学习与基于区域的分析相结合,R-CNN 在该领域树立了新的标准,并为各种现实世界的应用开辟了可能性。
使用 R-CNN 改变医学影像#
R-CNN 的一个有趣应用场景是医学影像。R-CNN 模型已用于检测和分类不同类型的肿瘤,例如医学扫描中的脑肿瘤,包括 MRI 和 CT 扫描。将 R-CNN 模型应用于医学影像可以提高诊断准确率,并帮助放射科医生在早期识别恶性肿瘤。R-CNN 即使检测微小肿瘤和早期肿瘤的能力,也能显著影响癌症等疾病的治疗和预后。

图 6:使用 RCNN 检测脑肿瘤。
除了肿瘤检测,R-CNN 模型还可应用于其他医学影像任务。例如,它可以识别骨折、检测眼部扫描中的视网膜疾病,以及分析肺部图像中的肺炎和 COVID-19 等病症。无论面对何种医疗问题,早期检测都能带来更好的患者结局。通过利用 R-CNN 在识别和定位异常方面的精确性,医疗保健服务提供者可以提高医学诊断的可靠性和速度。随着目标检测简化诊断流程,患者能够获得及时且准确的治疗方案。
R-CNN 的局限性及其后继模型#
尽管表现出色,R-CNN 仍存在一些缺点,例如计算复杂度高、推理速度慢。这些缺点使 R-CNN 模型不适合实时应用。将区域提议和分类拆分为不同步骤,也可能导致性能效率降低。
多年来,出现了各种目标检测模型来解决这些问题。Fast R-CNN 将区域提议与 CNN 特征提取合并为一个步骤,从而加快了处理速度。Faster R-CNN 引入区域提议网络 (RPN) 来简化提议生成,而 Mask R-CNN 则增加了像素级分割,以实现更详细的检测。

图 7。R-CNN、Fast R-CNN、Faster R-CNN 和 Mask R-CNN 对比。
大约在 Faster R-CNN 出现的同时,YOLO(只看一次)系列开始推动实时目标检测的发展。YOLO 模型在一次网络前向传递中预测边界框和类别概率。例如,Ultralytics YOLOv8 凭借先进功能,为许多计算机视觉任务提供了更高的准确率和速度。
要点总结#
RCNN 改变了计算机视觉领域,展示了深度学习如何改变目标检测。它的成功启发了该领域的许多新思路。尽管 Faster R-CNN 和 YOLO 等更新的模型已经出现,用于弥补 RCNN 的缺陷,但它的贡献仍是一个值得铭记的重要里程碑。
随着研究不断推进,我们将看到更出色、更快速的目标检测模型。这些进步不仅会改善机器理解世界的方式,还会推动许多行业的发展。目标检测的未来令人期待!
想继续探索 AI?加入 Ultralytics 社区吧!探索我们的 GitHub 代码仓库,了解我们最新的人工智能创新成果。查看我们覆盖各个行业的 AI 解决方案,例如农业和制造业。加入我们,一起学习并推动进步!









