术语表

探测头

了解检测头在物体检测中的关键作用,完善特征图,精确定位物体位置和类别。

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

了解更多

物体检测模型的架构中,检测头是一个关键组件,通常位于网络管道的末端。继骨干(提取初始特征)和颈部(聚合和细化这些特征)之后,检测头获取经过处理的图像信息(即特征图),并将其转化为最终预测结果。它实质上是深度学习模型的决策单元,通过边界框识别存在哪些物体、物体的位置,并为每次检测分配置信度分数

功能和操作

检测头处理神经网络前几层生成的丰富、抽象的特征。这些特征编码了与输入图像中潜在对象相关的复杂模式、纹理和形状。检测头通常使用自己的层集(通常包括卷积层)来执行两项主要任务:

  1. 分类:预测每个检测到的物体的类别标签(如 "人"、"车"、"狗")。这通常是通过使用Softmax或类似的激活函数来输出每个类别的概率。
  2. 定位(回归):预测包围每个检测到的物体的边界框的精确坐标。这是一个回归问题

高级模型,如 Ultralytics YOLO等先进模型采用高效检测头,旨在快速执行这些任务,从而实现对许多应用至关重要的实时推理。预测结果通常使用非最大值抑制(NMS)等技术进行后处理,以去除重复检测。

主要组成部分和变化

检测头的设计因具体的物体检测结构而有很大不同。主要变化包括

  • 基于锚点与无锚点
    • 基于锚点的检测器常见于Faster R-CNN等模型和早期的YOLO 版本中,它依赖于在特征图上不同位置预定义的一组具有不同大小和长宽比的锚点框。头部会预测偏移量以完善这些锚点,并对其中的物体进行分类。
    • 无锚探测器,用于以下型号 YOLO11和 FCOS 等模型中使用的无锚点检测器,可直接预测物体属性,如中心点和尺寸,而无需预定义的锚点。这种方法可以简化设计,并有可能提高通用性,无锚检测的优点中就强调了这一点。
  • 耦合头与解耦头:有些设计使用一组层(耦合头)进行分类和回归,而另一些设计则对每项任务使用单独的分支(解耦头),这样有时可以提高准确性。Ultralytics 头模块可在API 文档中进一步了解。

与其他组件和任务的比较

要了解检测头,就必须将其与计算机视觉(CV)模型的其他部分和相关任务区分开来:

  • 主干网络 骨干网络(如 ResNet、VGG)负责从输入图像中提取初始特征,学习从低级边缘到高级对象部分的分层特征。
  • 颈部:颈部位于主干和头部之间,通常会汇总主干多个尺度的特征(使用特征金字塔网络等技术),为检测不同大小的物体提供更丰富的背景信息。
  • 图像分类:与物体检测不同,图像分类只给整个图像分配一个标签,而不进行定位。
  • 分割任务: 语义分割对图像中的每个像素进行分类,而实例分割则更进一步,在像素级别上区分同一对象类别的不同实例。对象检测提供的是边界框,而不是像素掩码。

实际应用

检测头的有效性直接影响着众多基于物体检测的人工智能应用的性能:

  1. 自动驾驶:探测头是自动驾驶汽车人工智能的关键,它可以实时识别和定位行人、其他车辆、交通标志和障碍物,从而实现安全导航。Waymo 等公司非常依赖这项技术
  2. 安全和监控:安防系统中,探测头通过识别未经授权的人员、被遗弃的物品或视频信号中的特定事件,实现自动监控。这为Ultralytics 安全警报系统指南等应用奠定了基础。
  3. 零售分析:用于库存管理、货架监控和顾客行为分析。
  4. 医学成像:协助放射科医生检测扫描图像中的肿瘤或骨折等异常情况,为医学图像分析做出贡献。
  5. 制造业:通过自动检测装配线上产品的缺陷,实现制造过程中的质量控制

现代物体检测模型,如 YOLOv8YOLO11等框架构建的 PyTorchTensorFlowYOLO11 通常使用 PyTorch 或 TensorFlow 等框架构建,具有复杂的检测头,在COCO 等基准数据集上进行了速度和准确性的优化。Ultralytics HUB 等平台为训练和部署这些模型提供了便利,使用户能够利用强大的检测功能满足其特定需求。性能评估通常涉及mAPIoU 等指标,详见YOLO 性能指标指南

阅读全部