yolo3的损失函数

YOLOv3的损失函数包括坐标xy的二分类交叉熵损失和宽高wh的差方和损失,以及置信度的二分类交叉熵损失。box_loss_scale用于平衡大小目标之间的损失。正样本是IOU最大的先验框与目标匹配,负样本是最大IOU小于阈值的先验框。ignore_mask在置信度计算中起作用。
摘要由CSDN通过智能技术生成
xy_loss = object_mask * box_loss_scale * K.binary_crossentropy(raw_true_xy, raw_pred[...,0:2], from_logits=True)
wh_loss = object_mask * box_loss_scale * 0.5 * K.square(raw_true_wh-raw_pred[...,2:4])
confidence_loss = object_mask * K.binary_crossentropy(object_mask, raw_pred[...,4:5], from_logits=True)+ \
            (1-object_mask) * K.binary_crossentropy(object_mask, raw_pred[...,4:5], from_logits=True) * ignore_mask
class_loss = object_mask * K.binary_crossentropy(true_class_probs, raw_pred[...,5:], from_logits=True)  

坐标xy采用的二分类交叉熵损失,因为坐标xy的预测实际进行了归一化,是一个相对值。
而宽高wh则采用的差方和,等于1/2*(真值-预测的值)^2。这里使用1/2只是为了方便求导时约掉系数。

这里值得一提的是box_loss_scale 这个值,它等于2-目标面积,这个值是用于平衡大小目标之间的损失不均的问题,因为小目标在wh和xy的损失和大目标在wh和xy的损失不相同,大的目标的检测框的预测相对偏移值由于和大的anchor相比,所以相对值较小,但是小目标和小的anchor相比,所以小目标对于坐标和高宽的精确程度更加严格,所以采用box_loss_scale 来加重其损失权重。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值