yolov3损失函数_新算法 | 基于DIou改进的YOLOv3目标检测

204adfa9c9156b2829f686083c1ac47f.png

新框架

作者定义了本文提出的基于DIoU、CIoU损失函数如下:

0631d9a8-c53b-eb11-8da9-e4434bdf6706.svg 其中  0731d9a8-c53b-eb11-8da9-e4434bdf6706.svg  表示预测框  0931d9a8-c53b-eb11-8da9-e4434bdf6706.svg  和  0b31d9a8-c53b-eb11-8da9-e4434bdf6706.svg  间的惩罚项。 Distance-IoU Loss 0d31d9a8-c53b-eb11-8da9-e4434bdf6706.svg

论文提出了能减少两个box中心点间的距离的惩罚项, 0e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 和 0f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 分别表示 0931d9a8-c53b-eb11-8da9-e4434bdf6706.svg 和 0b31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 的中心点。 1331d9a8-c53b-eb11-8da9-e4434bdf6706.svg 是欧氏距离, 1431d9a8-c53b-eb11-8da9-e4434bdf6706.svg 是最小包围两个bbox的框的对角线长度,Loss完整公式定义如下:

1531d9a8-c53b-eb11-8da9-e4434bdf6706.svg

因此DIoU中对anchor框和目标框之间的归一化距离进行了建模。直观的展示如下图所示:

825a5933b1c1c314210282d1d59d2d93.png

DIoU loss的惩罚项能够直接最小化中心点间的距离,而GIoU loss意在减少外界包围框的面积 DIoU loss保留了IoU loss和GIoU loss的一些优点:

  • DIoU loss与尺寸无关的,不会大尺寸产生大的loss,小尺寸产生小的loss那样;
  • 类似于GIoU loss,DIoU loss能够为无交集的bbox提供梯度方向;
  • 当bbox完全重合时, 1831d9a8-c53b-eb11-8da9-e4434bdf6706.svg ,当bbox很远时, 1931d9a8-c53b-eb11-8da9-e4434bdf6706.svg
在模拟实验中,发现DIoU loss也有一些独有的特点:
  • DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多;
  • 对于包含两个框在水平方向和垂直方向上这种情况,DIoU损失可以使回归非常快,而GIoU损失几乎退化为IoU损失;
  • DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。
Complete IoU loss

DIoU Loss 只是考虑了边界框的重叠面积和 0e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 与 0f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 中心点距离,然而anchor框和目标框之间的w,h比的一致性也是极其重要的。基于此,作者提出了Complete-IoU Loss。其损失函数定义如下:

2d9d6832a16797e188f51be5cdc41cbb.png

上述损失函数为CIoU的损失,通过公式可以很直观的看出,CIoU比DIoU多出了 1e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 和 1f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 这两个参数。其中 1e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 是权重函数。v用来衡量anchor框和目标框之间的长宽比的相似性。

2131d9a8-c53b-eb11-8da9-e4434bdf6706.svg

2231d9a8-c53b-eb11-8da9-e4434bdf6706.svg

1e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg定义可以看出来,损失函数会更加倾向于往重叠区域增多方向优化:

2531d9a8-c53b-eb11-8da9-e4434bdf6706.svg

2631d9a8-c53b-eb11-8da9-e4434bdf6706.svg

最后,CIoU loss的梯度类似于DIoU loss,但还要考虑  1f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg  的梯度。w,h取值范围[0,1]的情况下,  2a31d9a8-c53b-eb11-8da9-e4434bdf6706.svg  的值通常很小,会导致梯度爆炸,因此在实现时将  2b31d9a8-c53b-eb11-8da9-e4434bdf6706.svg  替换成1。

Non-Maximum Suppression using DIoU

在原始的NMS中,IoU指标用于抑制多余的检测框,但由于仅考虑了重叠区域,经常会造成错误的抑制,特别是在bbox包含的情况下。因此,可以使用DIoU作为NMS的标准,不仅考虑重叠区域,还考虑了中心点距离。(基于DIoU作为NMS标准,虽然多了距离这个维度去考虑问题,但和NMS面对的同样的情况是当两个不同的目标本身就靠的很近的时候还是会造成错误的抑制)

2c31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 2d31d9a8-c53b-eb11-8da9-e4434bdf6706.svg

其中 2e31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 是分类置信度, 2f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg 为NMS阈值, 3231d9a8-c53b-eb11-8da9-e4434bdf6706.svg 为最高置信度的框。DIoU-NMS倾向于中心点距离较远的box存在不同的对象,而且仅需改几行代码,DIoU-NMS就能够很简单地集成到目标检测算法中。

204adfa9c9156b2829f686083c1ac47f.png

实验结果

50b6d75f5134acc5bc1bbbe41b399d4a.png

在YOLOv3上进行实验对比,DIoU loss和CIoU的效果都很显著,mAP分别提升3.29%和5.67%,而AP75则分别提升6.40%和8.43%,而使用DIoU-NMS则能进一步提升,幅度达到5.91%和9.88%

SSD on PASCAL VOC

6f0859b82100b91cc3e9aa0445a99213.png

基于IoU指标,在SSD-FPN上进行实验对比,因为本身模型已经精度很好了,DIoU loss和CIoU的效果不是很显著,但仍有提升。mAP分别提升0.59%和0.84%,而AP75则分别提升1.77%和2.59%,而使用DIoU-NMS则能进一步提升效果 。

Faster R-CNN on MS COCO

260bd5e26855b8b8478548a87e4e7604.png

2a6f56f5a7bc96e10c531496b7989845.png

在Faster R-CNN ResNet-50-FPN上,由于Faster R-CNN本身提供的bbox质量都比较高,因此,GIoU的优化都很小,但此时DIoU和CIoU则表现了不错的优化效果。注意到,CIoU在小物体上的性能都有所下降,可能由于长宽比对小物体的检测贡献不大,因为此时中心点距离比aspect ratio更重要。

3360831a4a45c5eb2b8a20dbad9a402a.png

上图对GIoU和CIoU的结果进行了可视化,可以看到,在中大型物体检测上,CIoU的结果比GIoU要准确。

Discussion on DIoU-NMS

04b0fb6770f80cfaaf640e9105188f0c.png

DIoU-NMS能够更好地引导bbox的消除

0431fdf2d1cdbf0ffcd6d808edf39f13.png

最后作者进行了比较实验,原NMS和DIoU-NMS分别移植到了yolov3和ssd模型,同时使用CIou loss。在阈值的范围内比较了原始NMS和DIoU-NMS 3f31d9a8-c53b-eb11-8da9-e4434bdf6706.svg [0.43,0.48]。从图9中可以看出,对于每个阈值,DIoU-NMS都优于原始NMS。此外,值得注意的是,即使是最糟糕的DIoU-NMS也是要优于最优的原始NMS。

204adfa9c9156b2829f686083c1ac47f.png

总结

论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss的基础上加入长宽比的考量,能够进一步地快速收敛和提升性能。另外论文提出DIoU-NMS来代替原生的NMS,充分地利用IoU的特性进行优化,从实验结果来看,效果也是很好的。

论文地址: https://arxiv.org/pdf/1911.08287.pdf ecdf154227a16b98737d2a38618d1e7c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值