术语表

锚式探测器

了解基于锚点的探测器如何通过精确定位、规模适应性和实际应用彻底改变物体检测。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

基于锚点的检测器是计算机视觉(CV)中进行物体检测的基础方法。这些模型依赖于一组预定义的参考框,即所谓的 "锚点 "或 "先验",它们具有特定的尺寸和长宽比。这些锚点可作为整个图像的起点或模板,帮助模型更有效地预测潜在物体的位置和类别,尤其是那些在比例和形状上变化很大的物体。许多早期成功的物体检测架构都采用了这种方法。

锚式探测器的工作原理

基于锚点的检测器的核心理念是在输入图像的不同位置放置密集的锚点网格。每个锚点框代表一个潜在的候选对象,其比例和长宽比都是预定义的。在训练过程中,模型会学习每个锚点的两个主要特征:第一,锚点是否包含相关物体(分类);第二,如何调整锚点的位置和尺寸(回归)以紧密贴合实际物体的边界框

想象一下,在一张大型停车场图像中搜索不同的车辆。您不需要逐个像素扫描,而是使用预定义的矩形模板(锚点):垂直的小模板表示摩托车,中等方形模板表示汽车,宽大模板表示公共汽车。您可以在整个图像中叠加这些模板。当模板与汽车严重重叠时,模型会学习确认 "是的,这是一辆汽车",并稍微移动和调整模板大小,使其与汽车的边界完全匹配。大部分覆盖背景的锚点被归类为锚点。这种方法在预定义形状的指导下,系统地涵盖了各种可能性。性能通常使用诸如 "交集大于联合"(Intersection over Union,IoU)和 "平均精度"(mean Average Precision,mAP)等指标来衡量。

主要特点和优势

基于锚点的检测器通常建立在卷积神经网络(CNN)的基础上,具有几个显著的特点:

  • 处理比例和长宽比变化:预定义的锚点明确涵盖不同的物体尺寸和形状,提高了检测的鲁棒性。
  • 结构化建议生成:锚点提供了一种在整个图像中生成对象建议的结构化方法,与早期的一些方法相比,简化了检测的初始阶段。
  • 经过验证的性能:在各种基准数据集上Faster R-CNNSSD(Single Shot MultiBox Detector)等架构表现出了强劲的性能。

有锚检测器与无锚检测器的比较

物体检测领域的一个重要发展是无锚点检测器的兴起。与基于锚点的模型(如YOLOv4)不同,无锚点方法通常通过识别关键点(如角或中心)或预测点到物体边界的距离,直接预测物体的位置和大小,而不依赖于预定义的锚点形状。

主要区别包括

  • 复杂性:基于锚点的方法需要精心设计和调整锚点参数(比例、比率、密度),这可能会很复杂,而且取决于数据集。无锚方法则省去了这一调整步骤。
  • 灵活性:无锚点检测器可以更好地适应固定锚点集未充分反映的异常长宽比或尺寸的物体。
  • 效率:移除锚点生成和匹配步骤有时会使模型更简单、更快速。

现代模型,如 Ultralytics YOLO11等现代模型都采用了无锚点方法,充分发挥了其高效和简便的优势。您可以阅读更多有关 YOLO11无锚检测优势的信息。

实际应用

尽管无锚方法是大势所趋,但基于锚的探测器已成功应用于众多领域:

  1. 自动驾驶:检测车辆、行人、骑车人和交通标志对自动驾驶汽车至关重要。基于锚点的模型已被广泛用于在不同距离和视角下可靠地识别这些物体。了解更多有关自动驾驶汽车中的人工智能以及相关自动驾驶研究的信息。
  2. 零售分析:监控货架上的存货量、检测放错位置的物品或分析顾客流量模式通常需要识别大量的小物体(产品)。基于锚点的系统可以进行配置,以处理零售环境中的特定比例和长宽比。探索人工智能如何支持更智能的零售库存管理和一般零售分析趋势

在无锚点方法越来越受欢迎的同时,了解基于锚点的检测器对于理解物体检测的演变及其在特定环境或传统系统中的持续相关性至关重要。像 PyTorchTensorFlow等工具同时支持基于锚和无锚的模型开发,而Ultralytics HUB等平台则简化了现代检测器的训练和部署。

阅读全部