YOLO算法的基本介绍
文章目录
- 前言
- 一、YOLO介绍
- 二、YOLO的核心思想
- 1、单阶段检测(One-Stage Detection)
- 2、全局推理(Global Context)
- 3、Anchor机制(部分版本)
- 三、模型指标
- 1、one-stage
- 2、two-stage
- 四、关于mAP指标
- 1、mAP概念
- 2、IOU(交并比)
- 3、示例
- 4、mAP值
- 总结
前言
YOLO(You Only Look Once)是一种基于深度学习的实时目标检测算法,其核心思想是将目标检测任务转化为单次全局推理问题,直接在图像上预测物体的边界框和类别。与传统的两阶段检测方法(如Faster R-CNN)相比,YOLO以更快的速度和较高的精度成为工业界和学术界的热门选择。
一、YOLO介绍
YOLO目标检测算法,由Joseph Redmon等人于2016年提出。它是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。YOLO算法将输入图像分成SxS个网格,每个网格负责预测该网格内是否存在目标以及目标的类别和位置信息。此外,YOLO算法还采用了多尺度特征融合的技术,使得算法能够在不同尺度下对目标进行检测。
one-stage(端到端)方法:
two-stage方法:
二、YOLO的核心思想
1、单阶段检测(One-Stage Detection)
YOLO摒弃了“先提取候选区域,再分类”的两阶段流程,而是将输入图像划分为网格(Grid),每个网格直接预测多个边界框(Bounding Box)及其类别概率,只需一次前向传播即可完成检测,大幅提升速度。
2、全局推理(Global Context)
由于直接处理整张图像,YOLO能利用全局上下文信息,减少背景误检(False Positives)。
3、Anchor机制(部分版本)
从YOLOv2开始引入Anchor Boxes(预定义边界框模板),通过调整Anchor的偏移量和尺寸,提升对密集或小目标的检测能力。后续版本(如YOLOv5/v8)进一步优化了Anchor的设计。
三、模型指标
1、one-stage
单阶段检测指在目标检测任务中,通过一个网络模型直接预测出物体的类别和位置。
- 优点:识别速度非常快,适合做实时检测任务
- 缺点:正确率相对two-stage较低,尤其在小物体和严重遮挡的情况下性能较差。
-
mAP指标:用于评判目标检测效果,其值越大越好
-
FLOPS:表示模型进行一次前向传播(即处理一张图像)所需要的浮点运算次数。它是一个衡量算法效率的关键指标,与模型的计算量和推断速度密切相关。
-
FPS:每秒可以处理的图像数量
2、two-stage
two-stage的优缺点:
优点:正确率比较高,识别效果理想
缺点:识别速度比较慢,通常达到5FPS
两阶段目标检测器是一种先生成候选框,然后对候选框进行分类和回归的检测方法。这种方法主要包括两个阶段:
第一阶段:生成候选框。这通常通过一个类似于Selective Search或EdgeBoxes等区域提名算法来实现,该算法从输入图像中生成多个候选框。每个候选框都会经过一个CNN模型进行特征提取,然后通过分类器进行过滤,保留与目标物体更相似的候选框。
第二阶段:在保留的候选框上进行精细的分类和回归。这个阶段通常使用另一个CNN模型或类似SVM的分类器来进行分类和回归。对于每个候选框,可能需要预测物体的类别、位置和大小等。
代表性的两阶段目标检测器包括R-CNN系列,以及其改进版本Fast R-CNN、Faster R-CNN和Mask R-CNN等。
四、关于mAP指标
1、mAP概念
mAP(mean Average Precision)是用来评估目标检测算法性能的常用指标之一。它结合了目标检测算法的准确率和召回率,并考虑了不同类别之间的差异。
精确率(Precision)是指预测为该类别的样本中,被正确分类的比例。召回率(Recall)是指该类别中被正确分类的样本数与该类别总样本数的比例。
精确率:预测的结果中有多少是正确的
召回率:真实的结果中有多少是预测正确的
2、IOU(交并比)
IOU用于评估预测框与真实目标框之间的重叠程度,即计算预测框和真实目标框的交集面积除以它们的并集面积来进行计算。
3、示例
检测任务中精确率和召回率如何计算?
如上图所示,蓝色框中为真实的人脸,红色框为预测的人脸位置,旁边的值则表示为置信度的值也叫阈值,表示模型对于预测结果的置信程度,即模型认为该结果是正确的程度。
计算这个检测任务中精确率和召回率:
1、限制阈值,例如0.9,超过0.9表示检测正确1,否则检测失败,此时真实值1预测值为1的只有1个,真实值为1预测值为0的为2,真实值为0预测值为1的0个,真实值为0预测值为0的有0个。
2、统计TP、FP、FN,TP=1,FP=0,FN=2,精确率=1/1,召回率=1/(1+2)=1/3
4、mAP值
根据不同的阈值,绘制出召回率和精确率的曲线,将曲线以下的面积作为MAP值。当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 要低。
总结
相比于传统的目标检测算法,如R-CNN、Fast R-CNN和Faster R-CNN等,YOLO算法具有更快的检测速度和更高的准确率。这得益于其端到端训练方式和单阶段检测的特性,使其可以同时处理分类和定位任务,避免了传统方法中的多阶段处理过程。因此,YOLO算法广泛应用于实时目标检测和自动驾驶等领域。