Two-Stage Object Detectors
探索两阶段目标检测器的工作机制,重点了解区域提议和分类。了解为什么 Ultralytics YOLO26 等现代模型如今处于领先地位。
两阶段目标检测器是一类用于计算机视觉的复杂深度学习 (DL)架构,用于识别和定位图像中的物体。与只需单次处理即可完成检测的单阶段检测器不同,这些模型将任务分为两个不同阶段:区域提议和目标分类。这种分阶段的方法最初旨在优先确保高定位精度,使这类检测器在人工智能 (AI)的发展历程中具有重要的历史意义。通过将“在哪里”与“是什么”分开,两阶段检测器通常能够实现更高的精确率,尤其是在检测小目标或被遮挡目标时,但这通常需要更多计算资源,并会增加推理延迟。
两阶段处理流程#
两阶段检测器的架构依赖于一种顺序工作流,类似于人类仔细审视场景的方式。
-
区域提议: 在第一阶段,模型扫描输入图像,以识别可能存在目标的区域。一个称为区域提议网络 (RPN)的组件会生成一组稀疏的候选框,这些候选框通常称为感兴趣区域 (RoIs)。此阶段会过滤掉大部分背景,使网络能够将处理能力集中在相关区域。
-
分类与优化: 在第二阶段,模型使用卷积神经网络 (CNNs)从这些候选区域中提取特征。随后,模型会为每个区域分配一个特定的类别标签(例如“人”“车辆”),并优化边界框的坐标,使其紧密包围目标。
这种架构的典型代表包括 R-CNN 系列,尤其是Faster R-CNN和Mask R-CNN,它们在数年间确立了学术基准测试的标准。
与单阶段检测器的比较#
将两阶段模型与单阶段目标检测器区分开来会很有帮助,后者包括单次多框检测器 (SSD)和 Ultralytics YOLO 系列。两阶段模型通过分别处理各个区域来优先保证准确率,而单阶段模型则将检测定义为一个单一回归问题,直接将图像像素映射到边界框坐标和类别概率。
从历史上看,这形成了一种权衡:两阶段模型准确率更高但速度更慢,而单阶段模型速度更快但精度较低。不过,现代技术进步已经模糊了这一区别。如今,像YOLO26这样的先进模型采用端到端架构,在保持实时推理所需速度的同时,其准确率可媲美两阶段检测器。
实际应用#
由于强调精确率和召回率,两阶段检测器通常更适用于安全性和细节比原始处理速度更重要的场景。
- 医学诊断成像: 在医疗保健领域的人工智能中,漏诊可能造成严重后果。两阶段架构经常用于医学图像分析,以检测 X 射线或 MRI 扫描中的肿瘤等异常。多步骤流程有助于确保不会在复杂的组织背景中遗漏小病灶,为放射科医生提供高置信度的自动化辅助。
- 高精度工业检测: 在智能制造中,自动化视觉检测系统使用这些模型来识别生产线上的微小缺陷。例如,检测涡轮叶片上的发丝状裂纹需要两阶段检测器所提供的高交并比 (IoU)精度,从而确保只有无瑕疵的部件才能进入下一生产阶段。
实现现代检测#
虽然两阶段检测器为高精度视觉奠定了基础,但现代开发者通常会采用先进的单阶段模型,这些模型能够提供相当的性能,同时显著简化部署流程。Ultralytics Platform可简化这些模型的训练与部署,并高效管理数据集和计算资源。
以下 Python 示例演示了如何使用 ultralytics 加载模型并运行推理,通过现代目标检测工作流实现高精度结果,其效果类似于传统的两阶段方法,但效率更高:
from ultralytics import YOLO
# Load the YOLO26 model, a modern high-accuracy detector
model = YOLO("yolo26n.pt")
# Run inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Process results (bounding boxes, classes, and confidence scores)
for result in results:
result.show() # Display the detection outcomes
print(result.boxes.conf) # Print confidence scores








