趋近智
像Faster R-CNN这样的两阶段检测器通过先提出感兴趣区域再进行分类来获得高准确性。然而,这种顺序处理过程可能需要大量计算。单阶段检测器提供了一种不同的方法,通过在网络的一次前向传播中完成定位和分类来优先考虑速度。此类别中最具影响力的系列是YOLO,即“你只看一次”。
YOLO对待目标检测的方式与基于区域提议的方法截然不同。YOLO不是首先识别潜在的目标区域,而是将检测视为一个回归问题,在一次评估中直接从整个图像预测边界框和类别概率。
其核心思路是将输入图像划分为一个 的网格。每个网格单元负责检测其中心落在此单元内的目标。对于每个网格单元,网络预测:
边界框: 固定数量 () 的边界框。每个边界框预测包含5个值:
类别概率: 对于 个类别中的每个类别,预测条件类别概率 。此概率以网格单元中存在目标为前提。
整个过程都在一个单一的卷积网络中进行。网络接收图像作为输入,并输出一个形状为 的三维张量。这个张量编码了所有网格单元的所有预测。
YOLO模型将输入图像划分为网格。单个CNN处理图像,并且对于每个网格单元(例如高亮显示的蓝色单元格),它预测多个边界框和类别概率,这些都编码在一个输出张量中。
每个网格单元内预测框 () 的置信度分数正式定义为:
这里, 是与预测相关的网格单元中存在目标中心的概率, 是预测框 () 和真实框之间的交并比。如果该单元格中没有目标,则 应为零,从而使置信度分数为零。
在推理 (inference)过程中,每个边界框的最终类别特定置信度分数通过将框置信度分数乘以条件类别概率计算得出:
这个分数表示特定类别存在于该框中的概率以及预测框与目标拟合的程度。低于某个阈值的框将被丢弃,并应用非极大值抑制(NMS)来移除同一目标的冗余重叠框。
原始的YOLO(YOLOv1)速度非常快,但存在局限性,特别是在检测靠得很近的小目标(因为每个网格单元只预测有限数量的框和一组类别概率)以及与两阶段方法相比实现精确的定位方面。后续版本引入了显著的改进:
YOLOv2 (YOLO9000): 引入了锚框,类似于Faster R-CNN和SSD中使用的锚框。网络不是直接预测边界框的尺寸,而是预测相对于预定义锚框形状的偏移量。这使得网络更容易学习预测常见的目标形状并提高了召回率。YOLOv2还使用了更高分辨率的输入,结合了批量归一化 (normalization),并采用了新的骨干网络(Darknet-19)。值得一提的是,它在检测(COCO)和分类(ImageNet)数据集上联合训练,使其能够检测到未见过带标签边界框的目标类别。
YOLOv3: 通过引入多尺度预测进一步完善了方法。它使用骨干网络(现在是Darknet-53)不同阶段的特征图,在三种不同的空间分辨率下(分别下采样32、16和8倍)进行预测。这大幅改善了小目标的检测能力。YOLOv3还将框内类别预测从使用softmax切换为为每个类别使用独立的逻辑分类器,从而允许多标签预测(例如,一个目标同时是“人”和“女人”)。
YOLOv4、YOLOv5及后续进展: 发展持续迅速,重心在于优化速度和准确性之间的平衡。这些版本通常包含一系列架构和训练方面的增强:
值得注意的是,“YOLOv5”及后续版本(如YOLOv6、v7、v8、YOLO-NAS等)代表了一个通常与特定代码库(如Ultralytics)相关的演进路线,而非由单一研究论文明确定义每个版本,从而形成了一种持续发展的方法。单阶段、基于网格的回归这一核心原理保持不变。
优点:
缺点:
许多预训练 (pre-training)的YOLO模型可在各种深度学习 (deep learning)框架(PyTorch、TensorFlow/Keras)中获得。这些模型在COCO等大型数据集上训练,提供了很好的起点。在自定义数据集上微调 (fine-tuning)预训练的YOLO模型是将其应用于特定检测任务的常见做法。像Ultralytics YOLO这样的库或MMDetection这样的框架提供了用于训练和部署基于YOLO的检测器的简化工具。
总而言之,YOLO系列代表了目标检测发展中的一个重要分支,它以牺牲少量定位准确性(与最好的两阶段模型相比)为代价,换取了处理速度上的显著提升。其直接回归方法和持续改进使其成为实时计算机视觉应用的“主力军”。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•