YOLO算法简介
YOLO(You Only Look Once)是一种实时目标检测算法,由Joseph Redmon等人在2016年首次提出。其核心思想是将目标检测任务转化为单次回归问题,直接在图像上预测边界框和类别概率,从而实现高效且快速的检测。在YOLOv1提出之前,R-CNN系列算法在目标检测领域中独占鳌头。R-CNN系列检测精度高,但是由于其网络结构是双阶段(two-stage)的特点,使得它的检测速度不能满足实时性,饱受诟病。SSD中锚框大量重叠,因此浪费了很多计算。YOLO是一种单阶段(one-stage)的目标检测网络,它的检测速度非常快,每秒可以处理45帧图片,能够轻松地实时运行。
1.YOLO算法特点
-
单阶段检测:YOLO将目标检测任务统一为一个端到端的回归问题,无需复杂的区域提议步骤(如R-CNN系列的两阶段检测)。
-
实时性高:YOLO的推理速度极快,适合实时应用(如视频监控、自动驾驶)。
-
全局上下文理解:由于直接处理整张图像,YOLO能够更好地利用全局信息,减少背景误检。
2.YOLO算法核心思想
把目标检测转变为一个回归问题,利用整张图片作为网络的输入,通过神经网络,得到边界框的位置及其所属的类别。YOLO系列算法的步骤:
(1)划分图像:YOLO将输入图像划分为一个固定大小的网格。
(2)预测边界框和类别:对于每个网格,YOLO预测出固定数量(通常为5个或3个)的边界框。每个边界框由5个主要属性描述:边界框的位置(中心坐标和宽高)和边界框包含的目标的置信度(confidence)。此外,每个边界框还预测目标的类别。
(3)单次前向传递:YOLO通过一个卷积神经网络(CNN)进行单次前向传递,同时预测所有边界框的位置和类别。相比于其他目标检测算法,如基于滑动窗口或区域提议的方法,YOLO具有更快的速度,因为它只需要一次前向传递即可完成预测。
(4)损失函数:YOLO使用多任务损失函数来训练网络。该损失函数包括位置损失、置信度损失和类别损失。位置损失衡量预测边界框和真实边界框之间的位置差异。置信度损失衡量边界框是否正确地预测了目标,并惩罚背景框的置信度。类别损失衡量目标类别的预测准确性。
(5)非最大抑制(Non-Maximum Suppression):在预测的边界框中,可能存在多个相互重叠的框,代表同一个目标。为了消除冗余的边界框,YOLO使用非最大抑制算法,根据置信度和重叠程度筛选出最佳的边界框。
3.YOLO算法流程
-
输入处理:将图像缩放到固定尺寸(如448×448)。
-
特征提取:通过卷积神经网络(如Darknet)提取图像特征。
-
预测输出:网络输出一个S×S×(B×5 + C)的张量,其中5表示边界框的坐标和置信度。
-
非极大值抑制(NMS):过滤冗余的边界框,保留最佳检测结果。
Backbone、Neck和Head:单阶段模型遵循特定的设计模式,即“骨干-颈部-头部”,这是物体检测器的结构。
Backbone负责从输入图像中提取有用的特征。它通常是一个卷积神经网络(CNN),在大规模的图像分类任务中训练,如ImageNet。骨干网络在不同尺度上捕捉层次化的特征,在较早的层中提取低层次的特征(如边缘和纹理),在较深的层中提取高层次的特征(如物体部分和语义信息)。
Neck是连接Backbone和Head的一个中间部件。它聚集并细化骨干网提取的特征,通常侧重于加强不同尺度的空间和语义信息。颈部可能包括额外的卷积层、特征金字塔(FPN)或其他机制,以提高特征的代表性。
Head是物体检测器的最后组成部分。它负责根据Backbone和Neck提供的特征进行预测。它通常由一个或多个特定任务的子网络组成,执行分类、定位,以及最近的实例分割和姿势估计。头部处理颈部提供的特征,为每个候选物产生预测。最后,一个后处理步骤,如非极大值抑制(NMS),过滤掉重叠的预测,只保留置信度最高的检测。
4.YOLOv1介绍
论文地址:https://arxiv.org/pdf/1506.02640.pdf
YOLOv1 中没有“颈部”的概念,只有骨干和头部。YOLOv1 的架构灵感来源于 GoogleNet,包含 24 个卷积层和两个全连接层。其中,前 20 个卷积层构成骨干,其余层连接到另外两个全连接层,作为检测头部。YOLOv1 没有使用 Inception 模块,而是在骨干中使用了一个 1×1 卷积层和 3×3 卷积层。这有助于在不降低空间维度的情况下减少通道数,从而显著降低参数数量。
YOLOv1的网络结构十分清晰,是一种传统的one-stage的卷积神经网络:
-
网络输入:448*448*3的彩色图片;
-
中间层:由若干卷积层和最大池化层组成,用于提取图片的抽象特征;
-
全连接层:由两个全连接层组成,用来预测目标的位置和类别的概率值;
-
网络输出:7*7*30的预测结果。

YOLOv1检测策略:YOLOv1采用的是“分而治之”的策略,将一张图片平均分成7x7个网格,每个网格分别负责预测中心点落在该网格内的目标。在Faster R-CNN中,是通过一个RPN来获得目标的感兴趣区域,这种方法精度高,但是需要额外再训练一个RPN网络,这无疑增加了训练的负担。在YOLOv1中,通过划分得到了7x7个网格,这49个网格就相当于是目标的感兴趣区域。通过这种方式,我们就不需要再额外设计一个RPN网络,这正是YOLOv1作为单阶段网络的简单快捷之处。

具体实现过程如下:
①将一副图像分成
个网格(grid cell),如果某个object的中心落在这个网格中,则这个网络就负责预测这个object。
②每个网格都要预测B个bounding box,每个bounding box要预测
和confidence共5个值。
③每个网格还要预测一个类别信息,记为C个类。
④总的来说,
个网格,每个网格要预测B个bounding box,还要预测C个类。网络输出就是一个
的张量。
在实际过程中,YOLOv1把一张图片划分为了7x7个网格,并且每个网格预测2个Box(Box1和Box2),20个类别。所以实际上,S=7,B=2,C=20。那么网络输出的shape也就是:
![]()
目标损失函数由三部分组成,分别是:坐标预测损失、置信度预测损失、类别预测损失。
5.YOLO算法优缺点
(1)优点
YOLO检测速度非常快。标准版本的YOLO可以每秒处理45张图像;YOLO的极速版本每秒可以处理150帧图像。这就意味着YOLO可以小于25毫秒延迟,实时地处理视频。对于欠实时系统,在准确率保证的情况下,YOLO速度快于其他方法。
YOLO实时检测的平均精度是其他实时监测系统的两倍。
迁移能力强,能运用到其他新的领域(比如艺术品目标检测)。
(2)缺点
YOLO对相互靠近的物体,以及很小的群体检测效果不好,这是因为一个网格只预测了2个框,并且都只属于同一类。
由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体的处理上,还有待加强。(因为对于小的bounding boxes,small error影响更大)。
YOLO对不常见的角度的目标泛化性性能偏弱。
YOLO算法变种
YOLO系列自2016年诞生后经过多次更新,由最初的YOLOv1演变为现在的YOLOv11,网络结构、检测方式和性能表现都发生了明显改变。演进过程一直把提高精度、加快速度、简化网络和增强泛化当作主要目标,并且逐步扩大了应用范围。
|
算法版本 |
核心改进及特点 |
|
YOLOv1 |
首次将目标检测视为回归问题,单次前向传播实现检测,将图像划分为7×7网格,每个网格预测2个边界框和20个类别,存在小目标检测差、定位精度低、误差较多的问题。 |
|
YOLOv2 |
引入锚框机制,通过k-means聚类生成先验框,实现输入分辨率动态调整,多尺度训练提升鲁棒性,预训练分辨率提升至448×448,增强特征提取能力。 |
|
YOLOv3 |
引入FPN多尺度预测,3种尺度特征图提升小目标检测能力,采用Darknet-53主干网络+残差结构,平衡速度与精度,用二元交叉熵代替Softmax,支持多标签分类。 |
|
YOLOv4 |
采用CSPDarknet53优化性能,减少计算量并增强特征融合,调用Mish激活函数提升非线性表达能力,引入Mosaic、CutMix等数据增强技术。 |
|
YOLOv5 |
核心为工程优化,提升工程友好性与部署灵活性,提供多种模型尺寸适配不同硬件,引入自动锚框计算,减少训练时间与内存占用。 |
|
YOLOv6 |
采用SimOTA动态分配正负样本,引入无锚范式简化计算、减少冗余参数,采用SIoU损失函数,加速网络收敛,兼顾轻量化与检测精度。 |
|
YOLOv7 |
引入高效层聚合网络(E-ELAN),优化特征重复利用,提升推理速度,采用动态标签分配,动态调整正负样本权重。 |
|
YOLOv8 |
对YOLOv5进行了改进,它使用无锚框Anchor-Free的设计方式来简化结构,减少了对超参数的依赖,并且通过引入可分离卷积减少了计算开销。它整体拥有轻量化和高推理速度的特点,适用于车载实时检测场景,但是小目标检测精度还有提高空间。 |
|
YOLOv9 |
引入了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN),旨在解决深层网络中的信息丢失问题,并优化网络结构以提高参数利用效率。 |
|
YOLOv10 |
消除了非最大抑制 (Non-Maximum Suppression, NMS) 要求,减少推理延迟。纳入大核卷积和部分自注意模块,在不增加大量计算成本的情况下提高性能。全面优化了各种组件,提高了效率和准确性。 |
|
YOLO v11 |
在多项任务(包括检测、分割、姿态估计、跟踪和分类)中提供最先进的 (SOTA) 性能,利用了各种 AI 应用程序和领域的功能。 |
应用场景
-
自动驾驶:实时检测行人、车辆等目标。
-
视频监控:快速识别异常行为或物体。
-
工业检测:自动化产品质量检查。
更多推荐



所有评论(0)