Yolov3模型框架darknet研究(五)yolo loss函数浅析

前言

   介绍yolo loss函数的文章很多,但有些地方说的不够详细或众说纷纭,看完之后有些细节还是搞不清。我这里按照自己的理解梳理一遍,同时把暂时还没想通的地方记录下来,以便后续完全理解后再更新。 

loss公式

一共分为三个大的部分:bbox,置信度以及类别的预测。

lambda系数介绍 

一共有两个相关lambda系数:。它们是事先给定权重参数,因为不包含object的grid cell比包含的多很多,从而使得no-object的置信值的loss会很大,为了减少它的影响,所以后者值比前者往往小很多,通常地,前者设为5,后者设为0.5

bbox预测

在loss函数里面,bbox的预测值要进行归一化,所以其w和h是要除以整幅image的宽和高,而不是grid cell的size。 具体计算例子参考如下:

 理解点:

1)w和h归一化后,还是大物体的位置偏差要比小物体的要大,所以在loss公式中仍然先要开方根。

2)ground truth box的中心点落在的哪个grid cell,它就负责预测目标。 一个极端例子,一幅图像有很多小目标,使得每个grid cell都需要去预测一个或多个目标。

3)在训练时,每个真实目标的中心点落在哪个grid cell是提前知道的。所以每个grid cell预测的bbox就和它对应的ground truth box位置进行差的平方和来求loss。

4)疑问点是,在这种情况下,表示的是当ground truth box中心点落在第i个grid cell为1,其它为0? 还是第i个grid cell含有object为1,其它为0? 从这里看,似乎前者合理,但是后面置信度的公式部分好像是后者合理。

置信度预测

大写C是confidence的意思。它的公式为:

理解点:

1)Pr表示  grid cell包含目标为1,其它为0? 还是目标中心点在grid cell为1,其它为0? 

2)这里的何理解?跟上面的Pr似乎有点冲突

3)计算置信度偏差,还要考虑no object的情况。 

类别预测

上面loss公式是针对yolo1的,所以每个grid cell的所有bbox共享一套类别预测值,这也意味着,每个grid cell只能预测一个类别。
实际上到了yolo3,每个bbox都有自己的类别预测值,所以一个grid cell能预测多个类别,这有助于小目标物体检测。

理解点:

1) 是表示 第i个grid含有目标为1其它为0 还是 目标中心落在第i个grid cell为1,其它为0? 貌似前者合理。

2)类别的预测也是用差的平方和表示,所以整个loss函数完全变成了一个回归问题。 

小结

在理解过程中,还有好几个地方有待确认,随着认知的加深,后续会进一步更新文章。欢迎拍砖和指正。

 

 

 

 

 

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值