深圳Yolo 视觉
深圳
立即加入
词汇表

锚箱

了解锚框如何作为物体detect的参考模板。发现它们如何提高准确性,以及Ultralytics YOLO26等模型如何采用无锚框设计。

锚框是预定义的具有特定长宽比和尺度的参考矩形,它们被放置在图像上,以协助 object detection 模型定位和 classify 对象。与其要求神经网络从头开始预测对象的精确大小和位置(这可能由于对象形状的多样性而不稳定),模型使用这些固定模板作为起点。通过学习预测如何调整或“回归”这些初始框以适应真实情况,系统可以实现更快的收敛和更高的准确性。这项技术通过将复杂的定位任务简化为更易于管理的优化问题,从根本上改变了 计算机视觉 (CV) 领域。

锚框机制

在经典的 基于锚框的检测器 中,输入图像被划分为网格单元。在每个单元格位置,网络会生成多个具有不同几何形状的锚框。例如,为了同时 detect 一个高大的行人和一辆宽大的汽车,模型可能会在同一中心点提出一个高而窄的框和一个短而宽的框。

模型训练 期间,这些锚框会使用一个名为 交并比 (IoU) 的指标与实际对象进行匹配。与标注对象显著重叠的锚框被指定为“正”样本。网络随后学习两个并行任务:

  1. 分类:它为锚点分配一个概率分数,指示其包含特定类别(例如,“狗”或“自行车”)的可能性。这使用标准的监督学习目标,如交叉熵损失。
  2. 边界框回归:它计算将通用锚框转换为紧密贴合的 bounding box 所需的精确偏移值(坐标平移和缩放因子)。

这种方法允许模型处理彼此靠近的多个不同大小的物体,因为每个物体都可以被分配到最匹配其形状的锚框。

实际应用

尽管较新的架构正转向无锚框设计,但在许多已建立的生产系统中,锚框仍然至关重要,因为在这些系统中,对象的特征是可预测的。

  • 零售与库存管理:AI驱动的零售解决方案中,摄像头监控货架库存。由于麦片盒或汽水罐等产品具有标准化尺寸,锚框可以针对这些特定的长宽比进行调整。这种先验知识有助于模型即使在杂乱的环境中也能保持高召回率
  • 自动驾驶:自动驾驶汽车 中的感知堆栈依赖于 detect 行人、车辆和交通标志。因为从远处看到的汽车与道路相比具有相对一致的形状轮廓,使用针对这些形状量身定制的锚框可确保稳健的 object track 和距离估计。

有锚与无锚

区分传统的基于锚框的方法和现代的 无锚框检测器 很重要。

  • 基于锚框:像原始的Faster R-CNN或早期YOLO版本(例如YOLOv5)等模型使用这些预定义的模板。它们虽然稳健,但通常需要手动调整超参数(锚框尺寸/比例)或使用像k-means聚类这样的聚类算法来适应新的数据集。
  • 无锚框:包括YOLO26在内的先进模型,通常采用无锚框或端到端的方法。这些网络直接预测目标中心或关键点,从而无需手动配置锚框。这简化了架构,并通过消除处理数千个空背景锚框所需的计算,从而加快了推理速度。

示例:访问锚框信息

虽然像 Ultralytics Platform 这样的现代高级API在训练过程中抽象了这些细节,但理解锚点在处理较旧的模型架构或分析模型配置文件时仍然很有用。以下代码片段演示了如何加载模型并检查其配置,其中锚点设置(如果存在)通常会在此处定义。

from ultralytics import YOLO

# Load a pre-trained YOLO model (YOLO26 is anchor-free, but legacy configs act similarly)
model = YOLO("yolo26n.pt")

# Inspect the model's stride, which relates to grid cell sizing in detection
print(f"Model strides: {model.model.stride}")

# For older anchor-based models, anchors might be stored in the model's attributes
# Modern anchor-free models calculate targets dynamically without fixed boxes
if hasattr(model.model, "anchors"):
    print(f"Anchors: {model.model.anchors}")
else:
    print("This model architecture is anchor-free.")

挑战与考量

尽管有效,但锚框引入了复杂性。生成的大量锚框(通常每张图像数万个)造成了类别不平衡问题,因为大多数锚框只覆盖背景。像 Focal Loss 这样的技术被用来通过降低容易背景示例的权重来缓解这个问题。此外,最终输出通常需要 非极大值抑制 (NMS) 来过滤掉冗余的重叠框,确保每个对象只保留最自信的 detect。

让我们一起共建AI的未来!

开启您的机器学习未来之旅