了解 RCNN 及其对物体检测的影响。我们将介绍其关键组件、应用以及在推进快速 RCNN 和YOLO 等技术中的作用。
物体检测是一项计算机视觉任务,可识别和定位图像或视频中的物体,用于自动驾驶、监控和医疗成像等应用。早期的物体检测方法,如 Viola-Jones 检测器和带有支持向量机(SVM)的定向梯度直方图(HOG),依赖于手工制作的特征和滑动窗口。这些方法往往难以准确检测复杂场景中的物体,这些场景中有多个不同形状和大小的物体。
基于区域的卷积神经网络(R-CNN)改变了我们处理物体检测的方式。它是计算机视觉史上的一个重要里程碑。要了解像 YOLOv8 等模型是如何出现的,我们首先需要了解 R-CNN 等模型。
R-CNN 模型架构由Ross Girshick和他的团队创建,可生成区域建议,使用预先训练好的卷积神经网络 (CNN) 提取特征,对物体进行分类,并完善边界框。虽然这看起来令人生畏,但在本文结束时,你将清楚地了解 R-CNN 的工作原理以及它为何如此重要。让我们一起来看看!
R-CNN 模型的物体检测过程包括三个主要步骤:生成区域建议、提取特征以及在完善物体边界框的同时对物体进行分类。下面让我们逐一介绍这三个步骤。
第一步,R-CNN 模型扫描图像,创建大量区域建议。区域建议是可能包含物体的潜在区域。选择性搜索等方法用于查看图像的各个方面,如颜色、纹理和形状,并将其分解为不同的部分。选择性搜索首先将图像分成较小的部分,然后合并相似的部分,形成较大的感兴趣区域。这个过程一直持续到生成约 2,000 个区域提案为止。
这些区域建议有助于识别物体可能出现的所有位置。在接下来的步骤中,模型可以通过关注这些特定区域而不是整个图像,来有效地处理最相关的区域。使用区域建议可以兼顾全面性和计算效率。
R-CNN 模型物体检测流程的下一步是从区域提案中提取特征。每个区域提案都会被调整到 CNN 所期望的一致大小(例如 224x224 像素)。调整大小有助于 CNN 高效处理每个建议。在调整之前,每个区域提案的大小都会略微扩大,以包括区域周围 16 像素的额外上下文,从而为更好地提取特征提供更多的周边信息。
调整大小后,这些区域提案将被输入到类似 AlexNet 的 CNN 中,该 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 模型已被用于在核磁共振成像和 CT 扫描等医学扫描中检测和分类不同类型的肿瘤,如脑肿瘤。在医学成像中使用 R-CNN 模型可以提高诊断的准确性,帮助放射科医生在早期发现恶性肿瘤。R-CNN 甚至能检测出小肿瘤和早期肿瘤,这对癌症等疾病的治疗和预后有重大影响。
除肿瘤检测外,R-CNN 模型还可应用于其他医学成像任务。例如,它可以识别骨折、检测眼部扫描中的视网膜疾病,以及分析肺部图像以检测肺炎和 COVID-19 等疾病。无论何种医疗问题,早期检测都能为患者带来更好的治疗效果。通过应用 R-CNN 在识别和定位异常方面的精确性,医疗保健提供商可以提高医疗诊断的可靠性和速度。物体检测简化了诊断过程,患者可以受益于及时准确的治疗方案。
虽然 R-CNN 令人印象深刻,但它也有一些缺点,比如计算复杂度高、推理速度慢。这些缺点使得 R-CNN 模型不适合实时应用。将区域建议和分类分成不同的步骤,可能会降低性能效率。
多年来,各种物体检测模型相继问世,解决了这些问题。快速 R-CNN 将区域建议和 CNN 特征提取合并为一个步骤,从而加快了整个过程。快速 R-CNN 引入了区域建议网络 (RPN) 来简化建议的生成,而掩码 R-CNN 则增加了像素级分割,以实现更详细的检测。
与 Faster R-CNN 大约同时,YOLO (You Only Look Once)系列开始推进实时物体检测。YOLO 模型通过网络一次性预测边界框和类概率。例如 Ultralytics YOLOv8在许多计算机视觉任务中,"R-CNN "提供了更高的精度和更快的速度,并具有先进的功能。
RCNN 改变了计算机视觉领域的游戏规则,展示了深度学习如何改变物体检测。它的成功激发了该领域的许多新想法。尽管 Faster R-CNN 和YOLO 等新模型的出现弥补了 RCNN 的缺陷,但它的贡献是一个巨大的里程碑,值得铭记。
随着研究的不断深入,我们将看到更好、更快的物体检测模型。这些进步不仅将改善机器理解世界的方式,还将推动许多行业的进步。物体检测的未来看起来令人兴奋!
想继续探索人工智能?成为Ultralytics 社区的一员!探索我们的GitHub 存储库,了解我们最新的人工智能创新成果。查看我们横跨农业和制造业等多个领域的人工智能解决方案。加入我们,共同学习,共同进步!