YOLOv3使用DIoU_loss训练!DIoU_loss是新提出的损失函数,比GIoU_loss有一定优势。那么DIoU_loss是如何计算的呢?本文带你解密。
本文是对仓库:https://github.com/miemie2013/Keras-DIOU-YOLOv3的解读。
1.GIoU
GIoU的提出是为了替换bbox回归损失函数,将wh损失和xy损失合二为一。GIOU的公式如下:

两个矩形A和B,一个是预测框,一个是ground truth。不妨设A是预测框,B是ground truth。矩形C是包围A和B的最小矩形。



2.DIoU
Diou_loss的公式

当矩形A和B相离得很远时,惩罚项的值是接近于1的(比1小);当矩形A和B逐渐靠近时,惩罚项的值会慢慢减少到0。同样是一个很简单的惩罚项,使相离的两个矩形慢慢靠近。


diou_loss能更快地让预测框贴合ground truth。至于为什么这样,可以分别对giou_loss和diou_loss求一次梯度(对x0,y0,x1,y1求偏导),对比更新公式,比较更新幅度。这里给出giou_loss对x0求偏导的一个示范,以抛砖引玉:

是一个比较复杂的结果。
文章转载自猿生物语,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




