目录
简介
在目标检测领域,YOLO(You Only Look Once)系列算法无疑是一颗耀眼的明星。它凭借 "单阶段检测" 的创新思路,打破了传统目标检测算法 "先候选区域再分类" 的两阶段模式,以极高的检测速度和不俗的精度,成为工业界和学术界广泛应用的核心技术之一。无论是自动驾驶中的实时障碍物识别、安防监控里的异常行为追踪,还是移动端 APP 的图像内容分析,YOLO 系列都在其中扮演着关键角色。
如果你刚接触深度学习目标检测,可能会困惑:YOLO 到底是什么?它和 Faster R-CNN、SSD 等算法有何区别?从 YOLO v1 到最新的 YOLOv10,每一代版本都有哪些升级?本文将以 "入门科普" 为核心,带大家一步步揭开 YOLO 系列的神秘面纱。
一、YOLO
1.目标检测算法
YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2016年提出。它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。YOLO算法将输入图像分成SxS个网格,每个网格负责预测该网格内是否存在目标以及目标的类别和位置信息。此外,YOLO算法还采用了多尺度特征融合的技术,使得算法能够在不同尺度下对目标进行检测。 相比于传统的目标检测算法,如R-CNN、Fast R-CNN和Faster R-CNN等,YOLO算法具有更快的检测速度和更高的准确率。这得益于其端到端训练方式和单阶段检测的特性,使其可以同时处理分类和定位任务,避免了传统方法中的多阶段处理过程。因此,YOLO算法广泛应用于实时目标检测和自动驾驶等领域。


one-stage的优缺点: 优点:识别速度非常快,适合做实时检测任务 缺点:正确率相比较低

FLOPs表示模型进行一次前向传播(即处理一张图像)所需要的浮点运算次数。它是一个衡量算法效率的关键指标,与模型的计算量和推断速度密切相关。 FPS:每秒可以处理的图像数量
two-stage的优缺点: 优点:正确率比较高,识别效果理想 缺点:识别速度比较慢,通常达到5FPS

两阶段目标检测器是一种先生成候选框,然后对候选框进行分类和回归的检测方法。这种方法主要包括两个阶段:
第一阶段:生成候选框。这通常通过一个类似于Selective Search或EdgeBoxes等区域提名算法来实现,该算法从输入图像中生成多个候选框。每个候选框都会经过一个CNN模型进行特征提取,然后通过分类器进行过滤,保留与目标物体更相似的候选框。
第二阶段:在保留的候选框上进行精细的分类和回归。这个阶段通常使用另一个CNN模型或类似SVM的分类器来进行分类和回归。对于每个候选框,可能需要预测物体的类别、位置和大小等。 代表性的两阶段目标检测器包括R-CNN系列,以及其改进版本Fast R-CNN、Faster R-CNN和Mask R-CNN等。
二、YOLO相关概念
首先我介绍一下关于YOLO的一些其他指标概念
1、置信度
计算公式:
置信度(confidence)=P(Object)*IoU
P(Object)
:预测框内有物体的概率。IoU
:预测框与真实框的交并比
表示某个预测框中存在目标的可能性大小,是一个介于 0 到 1 之间的数值。例如,一个预测框的目标存在置信度为 0.8,意味着模型有 80% 的把握认为该预测框中包含一个目标。
2、IOU
IoU(Intersection over Union ratio)实际上就是预测框和真实框面积的交集与并集的比值(两边界框相交部分面积与相并部分面积之比)。我们认为只有 IoU>0.5 的 priorbox 才是有价值的。



3、Map指标
Map指标的介绍:英文全称是(Mean Average Precision): 精确率(Precision)和召回率还能继续用么?
之前我们学习机器学习和其他深度模型店时候用到混淆矩阵、召回率、准确率来评价模型的效果。其中包含预测的结果中有多少是正确的、真实的结果中有多少是预测正确的


检测任务中精确率和召回率如何计算?
1、限制阈值,例如0.9,超过0.9表示检测正确1,否则检测失败0.
2、统计TP、FP、FN,TP=1,FP=0,FN=2,精确率=1/1,召回率=1/3
FN:图片中有人,但是没有预测到

mAP(平均精度,mean Average Precision) 根据不同的阈值,绘制出召回率和精确率的曲线,将曲线以下的面积作为MAP值。当MAP值越大,则表示指标越好 。
计算步骤:
- 对每个类别,计算不同置信度阈值下的 Precision 和 Recall。
- 绘制 P-R 曲线,计算曲线下面积(即 AP)。
- 对所有类别的 AP 取平均,得到 mAP。

这里横坐标为召回率、纵坐标为准确率
mAP50:表示当 IoU 阈值为 0.5 时模型的平均精度。即只考虑预测框与真实框的重叠部分达到 50% 及以上的情况,计算所有类别的 AP(Average Precision)的平均值,AP 衡量的是随着不同置信度阈值的召回率变化,精度是如何变化的。mAP50 是一个固定的评估标准,仅关注 IoU 为 0.5 这一特定阈值下的模型性能。
mAP50 - 95:衡量的是模型在 IoU 阈值从 0.5 到 0.95 范围内的平均精度。计算的是所有类别的 AP 的平均值,其中 AP 是在 IoU 阈值从 0.5 到 0.95 的每个 0.05 步长上计算的。mAP50 - 95 考虑了更广泛的 IoU 范围,能够评估模型在不同重叠程度下的性能,提供了更全面的模型性能评估,是一个更严格的评估指标,其值通常比 mAP50 要低。
4.边界框(Bounding Box)
定义:矩形框,用于标定物体的位置。
两种表示方式:
绝对坐标:(x_min, y_min, x_max, y_max)
- 左上角和右下角的像素坐标。
归一化中心坐标(YOLO 使用):(x_center, y_center, width, height)
- x_center = 中心点横坐标 / 图像宽度
- y_center = 中心点纵坐标 / 图像高度
- width = 框宽 / 图像宽度
- height = 框高 / 图像高度
所有值在 [0,1] 之间。
