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