一、什么是YOLO
YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2016年提出。
1. 核心思想
它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。
2. 原理
YOLO算法将输入图像分成SxS个网格,每个网格负责预测该网格内是否存在目标以及目标的类别和位置信息。
此外,YOLO算法还采用了多尺度特征融合的技术,使得算法能够在不同尺度下对目标进行检测。相比于传统的目标检测算法,如R-CNN、Fast R-CNN和Faster R-CNN等,YOLO算法具有更快的检测速度和更高的准确率。这得益于其端到端训练方式和单阶段检测的特性,使其可以同时处理分类和定位任务,避免了传统方法中的多阶段处理过程。因此,YOLO算法广泛应用于实时目标检测和自动驾驶等领域。
3. 经典的检测方法
- one-stage:
- 优点:识别速度非常快,适合做实时检测任务
- 缺点:正确率相比较低
FLOPs:表示模型进行一次前向传播(即处理一张图像)所需要的浮点运算次数。它是一个衡量算法效率的关键指标,与模型的计算量和推断速度密切相关。
FPS:每秒可以处理的图像数量。
检测过程:输入一张图片,直接得到一张图片并且候选框框选出物体。
- two-stage:
- 优点:正确率比较高,识别效果理想。
- 缺点:识别速度比较慢,通常达到5FPS。
两阶段目标检测器是一种先生成候选框,然后对候选框进行分类和回归的检测方法。这种方法主要包括两个阶段:
第一阶段:生成候选框。这通常通过一个类似于Selective Search或EdgeBoxes等区域提名算法来实现,该算法从输入图像中生成多个候选框。每个候选框都会经过一个CNN模型进行特征提取,然后通过分类器进行过滤,保留与目标物体更相似的候选框。
第二阶段:在保留的候选框上进行精细的分类和回归。这个阶段通常使用另一个CNN模型或类似SVM的分类器来进行分类和回归。对于每个候选框,可能需要预测物体的类别、位置和大小等。代表性的两阶段目标检测器包括R-CNN系列,以及其改进版本Fast R-CNN、Faster R-CNN和Mask R-CNN等。
二、Map指标
我们知道,在机器学习时对于结果的评估指标有:
- 分类:召回率、精确值以及准确值等等
- 回归:R方
那么,现在对于YoLo算法得到的结果,是如何评估的呢?
使用Map指标来评估算法的性能。
1. 含义
Map指标结合了精确率(Precision)和召回率(Recall),用于衡量模型在不同类别目标上的检测准确性和覆盖率。具体来说,Map指标通过计算每个类别的精确率-召回率曲线下的面积(Area Under the Precision-Recall Curve,AUC-PR),然后对所有类别的AUC-PR进行平均,得到Map分数。这个分数越高,表示模型的检测性能越好。
2. Map指标的计算过程
-
确定TP、FP、FN和TN:
- TP(True Positive):正确预测为正样本(真正例)。
- FP(False Positive):错误预测为正样本(假正例)。
- FN(False Negative):错误预测为负样本(假负例)。
- TN(True Negative):正确预测为负样本(真负例)。
在目标检测中,如果一个预测框与某一个GT(Ground Truth)的交并比(IoU)大于某个阈值(如0.5),则认为这个预测框正确(真正例),标记为TP。否则,如果预测框被错误地判断为正样本,则标记为FP。同样地,如果实际的正样本没有被模型预测出来,则标记为FN。
-
计算精确率和召回率:
- 精确率(Precision):正确预测为正样本数量 / 预测为正样本数量 = TP / (TP + FP)。
- 召回率(Recall):正确预测为正样本数量 / 实际正样本数量 = TP / (TP + FN)。
-
绘制PR曲线:
以召回率为横坐标,精确率为纵坐标,绘制出不同召回率下的精确率值,形成PR曲线。
-
计算AP(Average Precision):
AP衡量的是模型在每个类别上的好坏,它是PR曲线下的面积。通常通过插值法来计算AP值,即对每个不同的召回率值,取其对应的最大精确率值,然后计算这些精确率值的平均值。
-
计算Map:
得到所有类别的AP值后,取这些AP值的平均值即可得到Map分数。
根据不同的阈值,绘制出召回率和精确率的曲线,将曲线以下的面积作为MAP值。当MAP值越大,则表示指标越好 。
总结
本篇介绍了:
- YOLO是一种基于深度学习的目标检测算法。注意,是一个回归问题!!
- 两种经典的检测方法:one-stage和two-stage。
- one-stage:直接生成候选框,定位图像。
- two-stage:先生成候选框标出所有的物体,然后找到目标物体。
- 使用Map指标来评估YOLO算法的性能。