Yolo系列__Yolov1简介

Yolov1神经网络

  1. Yolov1简介

Yolo系列__Yolov1简介_第1张图片

 

    从目标检测任务发展来看,主要有两类方法。一类是R-CNN系列及其类似算法,称为两阶段two-stage,也就是将目标检测任务分为边界框回归和物体分类两个模块。虽然模型前面大量的提取特征以及候选框的选取都是单个网络完成的,但回归和分类任务毕竟是分开的,分开训练造成网络较难收敛,且预测时速度较慢,但准确度较高。另一类是Yolo系列算法,称为look-once, 将目标检测任务单纯看作回归任务。Yolov1使用端到端的网络训练模型,速度快,但准确度相对低点,主要用于实时检测,例如视频目标检测。

2.Yolov1网络结构

由于YOLOV1是端到端进行训练,因此YoLoV1只有一条单一的网络分支。Yolov1输入为(448,448,3)的图像,经过一个修改的GoogleNet网络,后面接一些全连接层,最后接到一个1470*1的全连接层,再reshape为7*7*30(7*7,代表图像分割块的尺寸,也是就说整个图像分成7*7的小块; 30代表特征,含有2个锚框的5个特征:x,y, w,h,p+20个分类)

Yolo系列__Yolov1简介_第2张图片

 

  1. Yolov1统一检测
  2. Yolo系列__Yolov1简介_第3张图片

 

Yolov1将一张图像(448*448)划分为S*S个网格(Yolov1中S=7),一共S*S个网格(这里是49个网格)。

这49个网格,每个网格根据聚类算法生成两个锚框,如下图所示,

Yolo系列__Yolov1简介_第4张图片

 

初始的锚框只能大概描述目标的位置,具体还需要后期细调锚框的位置。

那么每个锚框怎么确定它的属性(位置已经预测是否包含目标)?Yolov1提出了5个参数,分别是锚框的中心坐标(x,y),锚框的的宽高(width,height)以及锚框分数(包含目标的概率大小)。

3. Yolov1锚框的归一化处理

 

中心点和宽高限制在[0,1]之间,怎么计算?由上图可知,这里将图像分割为网格,因为目标中心落在中间那个网格中,因此中间网格对目标负责,按中间那个网格计算目标的各个参数。(149,149)是中间网格左上角在原始图片中的坐标。则目标图片的中心点要减去这个偏移量。然后在分别除以中间网格的宽度和高度,得到归一化后的横坐标与纵坐标。宽度与高度的归一化则是用目标的宽度与高度分别除以原始图像的宽度与高度。

4. Yolov1损失函数

Yolo系列__Yolov1简介_第5张图片

 

可以看出损失函数分为多个部分:

  • 第一个部分计算预测边界框于GT框中心点之间的差距。
  • 第二部分计算预测边界框于GT框宽高损失
  • 第三部分计算预测边界框的置信度分数与预测置信度分数的差距
  • 最后一部分计算类类概率损失

5.Yolov1参考文献

论文原文:

https://arxiv.org/pdf/1506.02640.pdf

你可能感兴趣的:(机器学习与深度学习,目标检测,神经网络)