YOLO(You Only Look Once)是一类基于卷积神经网络的实时目标检测系统。该系统由Joseph Redmon及其同事于2015年首次提出,经过多次迭代,已成为应用最广泛的目标检测框架之一。其名称反映了算法的核心设计:仅需对神经网络进行一次前向传播即可做出预测,这与早期基于区域提议的技术(如R-CNN)形成对比,后者处理单张图像需要数千次传播。
与以往在图像的多个位置和尺度上应用模型的方法不同,YOLO将单个神经网络应用于整张图像。网络将图像划分为网格区域,并为每个区域预测边界框和类别概率。这些预测按置信度分数加权,从而在一次评估中实现快速且准确的检测。
概述
YOLO的架构围绕卷积神经网络构建,该网络在一次传播中处理整张图像。图像被划分为S × S网格,每个单元格负责预测边界框和置信度分数。如果物体边界框的中心落入某个单元格,则该单元格被视为“包含”该物体。每个单元格预测B个边界框,以及反映物体存在可能性和预测框准确性的置信度分数。
每个单元格的网络输出包括条件类别概率(在单元格至少包含一个物体的前提下,该单元格包含某一类别物体的概率)和边界框参数(中心坐标、宽度和高度)。每个单元格的多个边界框使模型能够针对不同物体形状进行特化,例如细长物体与粗短物体。原始YOLO架构由24个卷积层和2个全连接层组成。
在训练过程中,对于每个包含真实边界框的单元格,仅使用与真实框交并比(IoU)最高的预测框进行梯度下降。损失函数促使模型将预测框坐标与真实框对齐,设置正确的类别概率,并抑制误检。
前身与背景
在YOLO之前,R-CNN和OverFeat等目标检测系统依赖区域提议或多尺度扫描方法。OverFeat作为早期有影响力的模型,先训练一个用于分类的神经网络,再添加回归网络来预测边界框角点。在推理时,它在多个缩放级别和裁剪区域上运行分类网络,生成数千个候选框,随后进行合并。这一过程计算量大且速度缓慢。
YOLO通过将检测重新表述为单一回归问题来解决这些低效问题。YOLO不再多次扫描图像,而是在一次前向传播中处理整张图像,从而在保持竞争力的准确性的同时显著提高速度。这一转变使实时应用成为可能,涵盖视频分析、机器人和自动驾驶等领域。
版本
YOLO系列可分为两个部分。由Joseph Redmon维护的原始部分包括YOLOv1、YOLOv2和YOLOv3。这些版本在专门网站上发布,并在研究和工业界得到广泛采用。
YOLOv1
YOLOv1于2015年推出,确立了核心框架。它将图像划分为S × S网格,每个单元格预测B个边界框和置信度分数。每个单元格的网络输出包括类别概率和框坐标。原始实现使用S = 7和B = 2,每张图像产生98个边界框。尽管速度很快,YOLOv1在检测小物体和处理重叠物体方面存在局限,后续版本解决了这些问题。
YOLOv2和YOLOv3
YOLOv2(又称YOLO9000)引入了批归一化、锚框和多尺度训练等改进。它通过利用层次化分类,能够检测超过9,000个物体类别。YOLOv3通过使用具有残差连接和多尺度预测的更深层架构进一步提高了准确性,从而更好地检测小物体。这些版本巩固了YOLO作为最先进实时检测器的声誉。
影响与应用
YOLO的速度和效率使其成为实时应用的热门选择,包括视频监控、自动驾驶车辆和机器人。其单次传播设计特别适合计算资源受限的边缘设备和嵌入式系统。该框架还影响了后续目标检测研究,启发了众多变体和改编。
截至2020年代初,YOLO仍在研究社区中积极发展,YOLOv4、YOLOv5及后续迭代引入了进一步优化。这些版本通常融合了深度学习和神经网络研究中的技术,如注意力机制和改进的训练策略。YOLO的遗产在于它证明了实时检测无需牺牲准确性即可实现,使其成为现代计算机视觉的基石。