YOLOv1 反向传播

目标检测是监督学习的问题,监督学习的训练是通过梯度下降和反向传播的方法迭代地去微调神经元中的权重使得损失函数最小化的过程。

YOLOv1 反向传播_第1张图片

训练集中需要人工利用标注工具对训练图片进行各类加框标注,而我们算法就是让我们预测结果尽量拟合这个人工标注框,使得损失函数最小化。

人工正确标注框为ground truth,即标准答案。

绿框中心点所在的grid cell的2个bounding box中其中一个需要来负责来拟合这个ground truth,并且这个grid cell输出的最大权概率的类别也必须是这个ground truth的类别。

YOLOv1 反向传播_第2张图片

如上图2个bounding box,分别计算和ground truth的ioU,重叠较大的bounding box负责尽量去拟合ground truth,而重叠较小的bounding box只需要他的object尽量小即可。

YOLOv1 反向传播_第3张图片

如果一个grid cell并没有被任何ground truth的中心点落入,那个这个grid cell的2个bounding box的box置信度越小越接近0越好。


损失函数

YOLOv1是把目标检测问题当作回归问题来解决。

YOLOv1 反向传播_第4张图片

需要先把所有的输出包括(x,y,w,h)都定义在0到1之间。

YOLOv1 反向传播_第5张图片

ioU计算公式

  • 首先计算两个box左上角点坐标的最大值和右下角坐标的最小值
  • 然后计算交集面积
  • 最后把交集面积除以对应的并集面积

LOSS

YOLOv1 反向传播_第6张图片

共五项误差,全都是残差平方和的计算形式。(i:0-7*7   j:2)

红框:负责检测物体的bounding box。绿框:不负责检测物体的bounding box。篮框:负责检测物体的grid cell。

因此如果红框为1,那么篮框也为1。红框和绿框如果有一个为1,另一个必为0。

第一项是负责检测物体(ioU较大)的bounding box的中心点于ground truth中心点(x,y)的定位误差。

第二项是负责检测物体的bounding box的宽高(w,h)定位误差。对w和h取根号是为了让大小框对损失函数影响更加公平,也就是同样偏差小框对损失函数影响更大,大框对损失函数影响更小。

第三项是负责检测物体的bounding box的box置信度误差。标签值指这个bounding box和ground truth的ioU,预测值指正向推断所得这个bounding box的box置信度。

第四项是负责检测物体的bounding box的box置信度误差。标签值为0,预测值也尽量逼近0。

第五项是负责检测物体的grid cell的分类误差。gride cell的第i类条件概率与ground truth的第i类条件概率(也就是1)进行误差计算,因此gride cell的第i类条件概率越接近1越好。

其中第一项和第二项(负责检测物体的bounding box)前面乘了一个较大的λ权重,第四项(不负责检测物体的bounding box)前面乘了一个较小的λ权重。这样增大负责检测物体的bounding box的影响,减小不负责检测物体的bounding box的影响。

你可能感兴趣的:(YOLO,python,计算机视觉,机器学习,深度学习,人工智能)