YOLOv1基本原理: 

         YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么中心位置所在的这个格子就负责检测出这个物体。
 

yolo识别颜色权重_数据集

1. 将输入图像分成SxS grid,原作者论文中取S=7,即分成7*7 grid。

2.  对于每个网格,产生两种候选框,每个网格预测 B=2个bouding box(边界框),对候选框进行微调,每个边界框包含5个预测量:x、y、w、h、c(置信度)以及20个类别概率(当前数据集有20个类别),总共输出7×7×(2*5+20)=1470个tensor(张量)。

3. 每个grid cell都会进行物体的框定和分类,一图像预测7x7x2=98个预测框,然后根据阈值去除可能性比较低的目标窗口,再由NMS去除冗余窗口即可,得到最后的final detections。

网络结构

yolo识别颜色权重_yolo识别颜色权重_02

 输入图像为448x448,输出特征图大小为7x7x30,

  • 输入尺寸固定:由于输出层为全连接层,因此在检测时,YOLO训练模型只支持与训练图像相同的输入分辨率。其它分辨率需要缩放成该分辨率.
  • 占比较小的目标检测效果不好.虽然每个格子可以预测B个bounding box,但是最终只选择只选择IOU最高的bounding box作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。 

输出7x7的理解

特征图7x7映射至原图,即图像被分成7×7个网格(grid cell)

yolo识别颜色权重_目标检测_03

 如果物体的中心落在某个网格中,则这个网格就负责预测这个物体。

输出维度30的理解

(1)每个网格使用B(B=2)个bounding box(边界框)进行回归预测,共产生2*5个值;

        回归坐标(x,y,w,h)和置信度confidence,置信度:包含物体的可能性大小;

     

(2)每个网格还要预测C个类别概率,以判断当前grid cell属于哪个类别C;因此1个网格的输出维度是(5×B+C),S×S个网格就输出就是S × S×(5×B+C)。

  当前数据集类别C=20, 所以30 = 5*2+20;

yolo识别颜色权重_深度学习_04


单阶段目标检测算法之YOLOv1详解-(较为详细)