目录

一、YOLO介绍

二、YOLOv1的结构

三、YOLOV1原理

(一)基本核心思想

(二)网络结构

(三)输出7x7的理解

(四)输出维度30的理解

(五)一次预测98个框

(六)对98个预测框处理

(七)回归坐标xywh

(八)训练样本标签

四、总结


一、YOLO介绍

YOLO的全称叫做“You Only Look Once”,简单来说,YOLO可以做到将一张图片输入,直接输出最终结果,包括框和框内物体的名称及score(得分)。

相比RCNN系列的算法(提取候选框+分类回归),YOLO仅仅一个网络就能完成检测框和分类任务,所以说它是单阶段目标检测算法;

YOLO主要特点是:

  1. 速度快,能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。
  2. 使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。
  3. 泛化能力强。

二、YOLOv1的结构

YOLO V1是单阶段one stage体系开创者,一次卷积可得结果。

如下:

单阶段目标检测YOLO 单阶段目标检测简称_目标检测

 YOLOv1是端到端进行训练,因此YOLOv1只有一条单一的网络分支。

步骤:

  1. 输入图像(固定大小到448x448)到卷积神经网络,得到特征图;
  2. 经过全连接网络,然后分类和回归;输出包含分类信息、置信度、坐标等信息;
  3. 使用NMS方法筛选获得结果。

三、YOLOV1原理

(一)基本核心思想

如下图:

单阶段目标检测YOLO 单阶段目标检测简称_ide_02

  1. 首先将原图像分成S x S grid;在论文里S=7,即将图像分为7 x 7 grid;
  2. 每个grid cell都会预测B个Bounding Box 去进行物体的框定和分类;在论文里B=2,那么一图像预测7x7x2=98个预测框;
  3. 每个预测框包含有4个边框的值和1个的置信度,如:(x,y,w,h,confidence);
  4. 预测出来相同物体有重复的边框,利用NMS (非极大值抑制) 算法得到最后的final detections。

(二)网络结构

如下图:

单阶段目标检测YOLO 单阶段目标检测简称_单阶段目标检测YOLO_03

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

(三)输出7x7的理解

        特征图7x7映射至原图,即图像被分成7×7个网格(grid cell);映射关系如下图:

单阶段目标检测YOLO 单阶段目标检测简称_tensorflow_04

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

(四)输出维度30的理解

(1)每个网格使用B(B=2)个Bbox进行回归预测,共产生5个值;

        A.置信度confidence,包含物体的可能性大小;

        B.回归坐标(x,y,w,h);

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

单阶段目标检测YOLO 单阶段目标检测简称_ide_05

 论文:B=2,VOC有20个类别,那么网络输出维度就是5x2+20=30。

(五)一次预测98个框

 如下图:

单阶段目标检测YOLO 单阶段目标检测简称_目标检测_06

(1)图像被划分成7×7,可知产生的特征图大小为7×7,因此S=7;

(2)真实的人物体中心落在黄色网格,使用黄色网格预测分类人;黄色网格产生了2个蓝色的Bbox用来回归预测,因此B=2;

(3)每个Bbox的检测结果会包含有关人的置信度和回归坐标信息;

(4)黄色网格会使用softmax进行分类预测,如果使用VOC数据集C=20。

最终,根据公式可得输出维度5×B+C=30,即输出特征图7×7×30;预测框的个数7×7×2=98。

(六)对98个预测框处理

使用NMS算法对预测框进行处理,最后保留最优的预测框:

单阶段目标检测YOLO 单阶段目标检测简称_单阶段目标检测YOLO_07

(七)回归坐标xywh

如下图:

单阶段目标检测YOLO 单阶段目标检测简称_单阶段目标检测YOLO_08

实际Bbox框的预测结果包含(xc, yc ,wbox,ℎbox):

  1. xc是预测框的中心点相对于原图的横坐标;
  2. yc是预测框的中心点相对于原图的纵坐标;
  3. wbox是预测框的宽度;
  4. ℎbox是预测框的高度。

回归坐标的目的是将坐标映射到0-1之间,方便计算损失;有如下要求

  1. x,y是相对于当前网格的偏移值,范围是0~1;
  2. w,h是归一化(分别除以图像的W和H)的结果,范围是0~1;

(八)训练样本标签

训练样本的标签理解:

单阶段目标检测YOLO 单阶段目标检测简称_目标检测_09

四、总结

        Yolov1是单目标检测的开创者,相比较RCNN等两阶段系列,预测速度上有天然的优势,就是检测速度快。但是也存在许多缺点:

  1. YOLO对相互靠的很近的物体,还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。
  2. 对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱。
  3. 由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。