了解 RCNN 及其对目标检测的影响。我们将介绍其关键组件、应用以及在推进 Fast RCNN 和 YOLO 等技术中的作用。

了解 RCNN 及其对目标检测的影响。我们将介绍其关键组件、应用以及在推进 Fast RCNN 和 YOLO 等技术中的作用。
目标检测是一种计算机视觉任务,可以识别和定位图像或视频中的对象,用于自动驾驶、监控和医学成像等应用。早期的目标检测方法,如 Viola-Jones 检测器和带有支持向量机 (SVM) 的方向梯度直方图 (HOG),依赖于手工设计的特征和滑动窗口。这些方法通常难以准确地检测复杂场景中具有各种形状和大小的多个对象。
基于区域的卷积神经网络 (R-CNN) 已经改变了我们处理目标检测的方式。它是计算机视觉历史上的一个重要里程碑。要理解像 YOLOv8 这样的模型是如何出现的,我们需要首先理解像 R-CNN 这样的模型。
由 Ross Girshick 及其团队创建的 R-CNN 模型架构生成区域提议,使用预训练的卷积神经网络 (CNN) 提取特征,对对象进行分类,并细化边界框。虽然这看起来令人生畏,但在本文结束时,您将清楚地了解 R-CNN 的工作原理以及它为何如此有影响力。让我们来看看!
R-CNN 模型的目标检测过程涉及三个主要步骤:生成区域提议、提取特征以及在细化其边界框的同时对对象进行分类。让我们逐步了解每个步骤。
第一步,R-CNN 模型扫描图像以创建大量区域提议。区域提议是可能包含对象的潜在区域。诸如选择性搜索之类的方法用于查看图像的各个方面,例如颜色、纹理和形状,将其分解为不同的部分。选择性搜索首先将图像分成较小的部分,然后合并相似的部分以形成较大的感兴趣区域。此过程持续进行,直到生成大约 2,000 个区域提议。
这些区域提议有助于识别物体可能存在的所有可能位置。在后续步骤中,该模型可以通过专注于这些特定区域而不是整个图像来有效地处理最相关的区域。使用区域提议可以平衡彻底性和计算效率。
R-CNN 模型的目标检测过程的下一步是从区域提议中提取特征。每个区域提议都被调整为 CNN 期望的一致大小(例如,224x224 像素)。调整大小有助于 CNN 有效地处理每个提议。在扭曲之前,每个区域提议的大小会略微扩大,以包括区域周围 16 像素的额外上下文,从而为更好的特征提取提供更多周围信息。
调整大小后,这些区域提议被馈送到 CNN(如 AlexNet)中,该 CNN 通常在大型数据集(如 ImageNet)上进行预训练。CNN 处理每个区域以提取高维特征向量,这些向量捕获重要的细节,如边缘、纹理和图案。这些特征向量浓缩了区域中的基本信息。它们将原始图像数据转换为模型可以用于进一步分析的格式。在接下来的阶段中准确地分类和定位对象取决于这种将视觉信息转换为有意义的数据的关键转换。
第三步是对这些区域内的对象进行分类。这意味着确定在提案中找到的每个对象的类别或类型。然后,提取的特征向量将传递给机器学习分类器。
在R-CNN的情况下,支持向量机 (SVM) 通常用于此目的。每个SVM都经过训练,通过分析特征向量并确定特定区域是否包含该类的实例来识别特定的对象类别。本质上,对于每个对象类别,都有一个专用的分类器检查每个区域提议中是否存在该特定对象。
在训练过程中,分类器会获得带有正样本和负样本的标记数据:
分类器学习区分这些样本。边界框回归通过调整最初提出的边界框以更好地匹配实际对象边界,进一步细化检测到的对象的位置和大小。通过结合分类和边界框回归,R-CNN模型可以识别并准确定位对象。
在分类和边界框回归步骤之后,模型通常会为同一对象生成多个重叠的边界框。应用非极大值抑制(NMS)来优化这些检测结果,保留最准确的框。该模型通过应用NMS消除冗余和重叠的框,并且仅保留置信度最高的检测结果。
NMS 的工作原理是评估所有边界框的置信度分数(指示检测到的对象实际存在的可能性),并抑制与得分较高的框显着重叠的框。
以下是 NMS 的步骤分解:
总而言之,R-CNN 模型通过生成区域提议来检测对象,使用 CNN 提取特征,使用边界框回归对对象进行分类并细化其位置,并使用非极大值抑制 (NMS) 仅保留最准确的检测结果。
R-CNN 是目标检测历史上一个具有里程碑意义的模型,因为它引入了一种新方法,大大提高了准确性和性能。在 R-CNN 之前,目标检测模型难以平衡速度和精度。R-CNN 生成区域提议并使用 CNN 进行特征提取的方法可以精确地定位和识别图像中的物体。
R-CNN 为 Fast R-CNN、Faster R-CNN 和 Mask R-CNN 等模型铺平了道路,这些模型进一步提高了效率和准确性。通过将深度学习与基于区域的分析相结合,R-CNN 在该领域树立了新标准,并为各种实际应用开辟了可能性。
R-CNN 一个有趣的应用案例是在医学影像中。R-CNN 模型已用于检测和分类医学扫描(如 MRI 和 CT 扫描)中不同类型的肿瘤,例如脑肿瘤。在医学影像中使用 R-CNN 模型可以提高诊断准确性,并帮助放射科医生在早期识别恶性肿瘤。R-CNN 检测即使是小型和早期肿瘤的能力,可以显着改变癌症等疾病的治疗和预后。
R-CNN 模型除了肿瘤检测外,还可以应用于其他医学成像任务。例如,它可以识别骨折、检测眼部扫描中的视网膜疾病,以及分析肺部图像以了解肺炎和 COVID-19 等疾病。无论医疗问题如何,早期检测都可以带来更好的患者预后。通过应用 R-CNN 在识别和定位异常方面的精确性,医疗保健提供者可以提高医疗诊断的可靠性和速度。通过对象检测简化诊断过程,患者可以从及时准确的治疗计划中受益。
虽然 R-CNN 令人印象深刻,但它也有一些缺点,例如计算复杂度高和推理时间慢。这些缺点使得 R-CNN 模型不适合实时应用。将区域提议和分类分成不同的步骤,可能会导致效率降低。
多年来,已经出现了各种目标检测模型来解决这些问题。Fast R-CNN 将区域提议和 CNN 特征提取结合到一个步骤中,从而加快了处理速度。Faster R-CNN 引入了区域提议网络 (RPN) 来简化提议生成,而 Mask R-CNN 添加了像素级分割以进行更详细的检测。
与 Faster R-CNN 大致同一时期,YOLO (You Only Look Once) 系列开始推进实时目标检测技术。YOLO 模型通过一次网络传递即可预测边界框和类别概率。例如,Ultralytics YOLOv8 提供了更高的准确性和速度,以及适用于许多计算机视觉任务的先进功能。
RCNN 改变了计算机视觉领域的格局,展示了深度学习如何改变目标检测。它的成功激发了该领域许多新的想法。即使像 Faster R-CNN 和 YOLO 这样的新型号已经出现来修复 RCNN 的缺陷,但它的贡献仍然是一个重要的里程碑,值得我们铭记。
随着研究的不断深入,我们将看到更好更快的物体检测模型。 这些进步不仅会改善机器理解世界的方式,还会促进许多行业的发展。 目标检测的未来看起来令人兴奋!
想要继续探索人工智能吗? 成为 Ultralytics 社区 的一员! 浏览我们的 GitHub 仓库,了解我们最新的人工智能创新。 查看我们涵盖各个领域(如农业和制造业)的 AI 解决方案。 加入我们,一起学习和进步!