YOLO - v1

先理解预测阶段:

1)一个448*448*3的图像经过YOLO这个黑箱输出一个7*7*30矩阵;

2)7*7*30的矩阵中的30维是5+5+20;5是预测的bbox的x,y,w,c;20是20个类别的条件概率;

解释c:

YOLO - v1_第1张图片

 解释条件概率:它的意义是当bounding box认为当前box中有对象时,要检测的所有类别中每种类别的概率.

3)对于每一个1*1*30中第一个c乘20维的条件概率,得到20个类别的全概率;每一个1*1*30的向量能得到2个20类别的全概率;49个grid cell 就能得到98个20维的向量;

YOLO - v1_第2张图片

 4)后处理阶段:像上面一样98个长条排成20*98的矩阵;先把第一行(这一行就代表某一个类别在98个bbox预测的概率)的拿出来;先对小于一个阈值的概率置为0,然后进行NMS极大值抑制;

解释NMS过程;先对这一个长条排序;把最大的一个拿出来和其余的比较(这两个概率一定是属于不同的bbox)他们所属bbox的IOU,如果IOU大于一定的阈值,就认为这两个bbox预测了一个物体,就把概率小的那个置为0;依次比较;

YOLO - v1_第3张图片

训练阶段:

1)每一个gird cell随机生成两个bbox,如果有真实标记的框落在这个grid cell中,这个gird cell的两个bbox与真实标记的框的IOU大,就用那个框去预测,另一个就被‘打入冷宫’。如果没有真实的gird cell 落在这个grid cell里,这个gird cell预测的两个bbox都会被‘打入冷宫’。

2)拟合损失函数,把目标检测转化为回归问题,让预测的值和标注值越接近越好。

 解释损失函数:1.第二项使用根号的原因:对不同大小的bounding box预测中,相比于大bounding box预测偏一点可以接受,小bbox预测偏一点更不能忍受,因此小的bbox的损矢应该更敏感。因此对于y=根号x函数,x比较小的时候导数比较敏感,x比较大的时候不敏感。

你可能感兴趣的:(目标检测,神经网络)