YOLO V1中关于bounding boxs的部分要点

YOLO的核心原理预览

在这里插入图片描述

  • YOLO将输入的图片resize成448 x 448,并且为 S x S(S = 7)个grid,如果物体的中心落入该grid中,那么该grid就需要负责检测该物体。
  • 一次性输出所检测到的目标信息,包括类别位置

  • 对于每一个网格(grid),都会预测出B个bounding boxes(B=2),这个bounding boxes有5个量,分别是物体的中心位置(x,y)和它的高(h)和宽(w),以及这次预测的置信度(confidence score)。

  • Bounding Box指矩形框的中心 (x,y),矩形框的宽高(w,h)以及置信度c,这5个值的范围在0和1之间,通过Sigmoid函数来实现。

    矩形框中心 (x,y)的含义:每个Bounding Box相对于grid cell的偏移值,范围0~1

    矩形框的宽高 (w,h)的含义: 每个Bounding Box的宽高相对于整个图像的大小,范围0~1

  • 要注意:每个grid产生两个bounding boxs,如下左图中狗的中心点对应两个黄色框,以及自行车后轮外面的图像中心点对应的两个红色框,其中狗的中心点对应的两个bounding boxs(黄色),相对于自行车后轮外面的图像中心点对应的两个bounding boxs(红色)尺寸是不一样的,也说明bounding boxs的尺寸是根据目标自适应的:

YOLO V1中关于bounding boxs的部分要点_第1张图片

  • 每个框还要负责预测这个框中的物体是什么类别的,共预测C个类。
    在这里插入图片描述

  • 综上,S×S 个网格,每个网格要预测 B个bounding box ,还要预测 C 个类。网络输出就是一个 S × S × (5×B+C)。(S x S个网格,每个网格都有B个预测框,每个框又有5个参数(矩形框的中心 (x,y),矩形框的宽高(w,h)以及置信度c,这5个值的范围在0和1之间),再加上每个网格都有C个预测类,默认C=20,即可以将物体检测为20个类别)

  • 图像中包含物体对象的Bounding Box数量远远小于不包含物体的Bounding Box数量,因此若两者的权重相等,那么计算的损失函数会偏向于给出背景的结果。Yolo1算法论文设置包含物体的Bounding Box的权重为5,不包含的Bounding Box的权重为0。

    包含物体和不包含物体的权重分别记为:

    Yolo算法把定位和检测目标看成是一个回归问题,因此对于所有的输出变量,我们都使用和平方误差表示损失函数。

    每个grid cell包含了2个Bounding Box和1个条件类概率,grid cell结构和损失函数如下图:

YOLO V1中关于bounding boxs的部分要点_第2张图片

其中:

 表示第i个grid cell的第j个Bounding Box是否包含物体对象,若包含,则等于1;若不包含,则等于0。

表示第i个grid cell是否包含物体对象,若包含,则等于1;若不包含,则等于0。

对于不同大小的Bounding Box,小的Bounding Box对于偏差的容忍度更低,比如千万富翁丢失1000块钱与普通家庭丢失1000块钱的意义不一样。为了缓和这个问题,我们对Bounding Box的宽和高取平方根。如下图:

YOLO V1中关于bounding boxs的部分要点_第3张图片

YOLO-V1的网络架构:

YOLO V1中关于bounding boxs的部分要点_第4张图片
输入图像大小: 448×448×3

YOLO V1中关于bounding boxs的部分要点_第5张图片

过程中的参数含义:

YOLO V1中关于bounding boxs的部分要点_第6张图片
损失函数:

YOLO V1中关于bounding boxs的部分要点_第7张图片

YOLO V1中关于bounding boxs的部分要点_第8张图片
①涉及的预测的位置参数值与对应的损失函数描述:
x, y, w, h :
对应的损失函数要尽量减小预测值与真实值之间的差距。
函数公式中 x, y 是使用 平方差值 来描述,而对于 w, h 使用了根号,是为了检测小物体时候,减小偏移量小的时候对于小物体的的敏感度。

YOLO V1中关于bounding boxs的部分要点_第9张图片
损失函数中的系数,是相应的权重。

②关于置信度的损失函数(与类别有关):
平方置信度与真实值之间的差异(分为不同的情况讨论:前景(要检测的物体)、背景(无目标处))

③分类相关的损失函数:交叉熵损失函数
 

非极大值抑制:

YOLO V1中关于bounding boxs的部分要点_第10张图片
只取出保留 IOU 数值最大的框。
YOLO-V1小结
YOLO-V1 整体网络架构简单,检测速度快。
网络中,每个 cell 只预测一个类别,若物体的位置重合时,检测困难。
每个点只有两个候选框,小物体考虑的少。

如何定位目标物体的grid cell和Bounding Box

我们知道了损失函数如何计算,yolo算法预测每个grid cell的Bounding Box?训练阶段,我们需要知道物体的实际grid cell和Bounding Box。

如何定位?若目标物体的中心点在某一个grid cell,则该目标物体属于这一个grid cell,然后以整个图像宽高为尺度,计算该物体所在grid cell的宽高。如下图的红框grid cell标记的狗:

YOLO V1中关于bounding boxs的部分要点_第11张图片

你可能感兴趣的:(YOLO,人工智能,算法)