yolo 学习2 (23.10.30)

160 阅读4分钟

1: yolo  知识

YOLO(You Only Look Once)是一种目标检测算法,它的原理可以概括为以下几个步骤:

  1. 网络输入和预处理:YOLO将图像分割成固定大小的网格,并将每个网格作为网络的输入。然后,对于每个输入图像,进行预处理,包括图像缩放、归一化等操作。
  2. 网络构建:YOLO使用卷积神经网络(CNN)作为基础网络。它通常使用Darknet作为网络架构,它由多个卷积层和池化层组成,最后连接全连接层输出预测结果。
  3. 特征提取:通过卷积和池化操作,YOLO网络能够从输入图像中提取出高级语义特征。这些特征用于后续的目标检测任务。
  4. 目标检测和分类:对于每个网格**(grid cell),YOLO预测出固定数量(通常是预先定义的几个)的边界框(bounding box)**,并为每个边界框分配一个置信度分数,表示该边界框内是否存在目标物体。此外,YOLO还会对每个边界框进行类别分类,得到该边界框内物体的具体类别。
  5. 边界框调整:YOLO网络输出的边界框坐标是相对于网格的,需要进一步调整为相对于整个图像的坐标。
  6. 非最大值抑制(NMS):由于YOLO在每个网格都会预测出多个边界框,为了去除重叠的边界框,需要使用非最大值抑制算法。该算法会筛选出置信度最高的边界框,并剔除与其相交度较高的其他边界框。
  7. 输出结果:经过上述处理后,YOLO输出的结果包括每个边界框的类别、置信度分数和坐标信息,可以用于目标检测任务的进一步应用。

总体来说,YOLO通过将目标检测任务转化为一个回归问题,实现了实时目标检测的能力。相比于传统的目标检测算法,YOLO具有较快的处理速度和较好的准确性,因此在计算资源有限的场景下得到广泛应用。

演进:

Pascal Voc数据集检测,FPS大于30就属于实时检测。

2 比较

CNN 是属于两阶段的。

DPM 和 R-CNN 都是基于侯选框的。

预测类别

2个候选框,每个框5个参数,20个类别的条件概率。

论文 使用imagenet数据集,。。。

VOC 数据集   

COde 与数据集

3 yolo 1 论文

网址

数据集

VOC   20个类别      MScoco 是80个类别

比较:

单阶段模型:快

后来我们国家出了SSD单阶段模型

集成(基模型优势互补)

大物体检测更好

泛化能力强:(在自然图像和艺术图像)

迁移泛化能力强

对于小物体不容易区分检测

MAP : 准确度性能。各个类别准确率的平均值

AP  :    准确率  (PR 曲线围成的面积)

包含物体的(概率*交并比)预测框和人工标注框的交并比, 如果没有人工标注框落在 Grid Cell , 那么他们的执行度应该为0,

作为一个标签值。

训练阶段是这么个算法,但是在预测阶段是回归出来的。

中心点(必须在grid cell 里面)的横坐标和纵坐标以及框的宽度和高度,都是相对于左上角。

假设这个grid cell 负责预测这个物体的条件下,是狗的概率是多少?是一个条件概率。

B 个预测框 和 c 个条件预测概率。前一项是分类的精度后一项是回归定位的精度。

B个box ,每个box 5个参数,以及每个cell 20个类别。

训练阶段,人工标注框落在哪个grid cell,就应该由哪个grid cell 产生的bounding boxes,去负责预测这个物体,选择哪个bounding boxes 来预测,由与人工标注框的 IoU 最大的那个来预测。去负责拟合人工标注的框。所以bounding boxes 分为3类,一类是在预测物体的grid cell 中的  和   不负责预测物体的 IoU 较小的   bounding boxs,还有一类是不负责预测物体的grid cell 产生的  bounding boxes.       他们会用来分别计算损失函数。