计算机视觉研究院专栏
作者:Edison_G
深度学习目前依然在AI领域最火研究课题之一。今年的国际大型会议也收录了很多优秀的文章。新的算法和框架值得我们深入学习,今天就给大家详细说说一个新框架——优化YoloV3框架!
新框架
作者定义了本文提出的基于DIoU、CIoU损失函数如下:
1、Simulation Experiment
2、Limitations of IoU and GIoU Losses
论文将5000个中心点上的bbox在最后阶段的total error进行了可视化。IoU loss只对与target box有交集的bbox有效,因为无交集的bbox的为0。而GIoU由于增加了惩罚函数,盆地区域明显增大,但是垂直和水平的区域依然保持着高错误率,这是由于GIoU的惩罚项经常很小甚至为0,导致训练需要更多的迭代来收敛。
论文提出了能减少两个box中心点间的距离的惩罚项,
因此DIoU中对anchor框和目标框之间的归一化距离进行了建模。直观的展示如下图所示:
DIoU loss的惩罚项能够直接最小化中心点间的距离,而GIoU loss意在减少外界包围框的面积 DIoU loss保留了IoU loss和GIoU loss的一些优点:
- DIoU loss与尺寸无关的,不会大尺寸产生大的loss,小尺寸产生小的loss那样;
- 类似于GIoU loss,DIoU loss能够为无交集的bbox提供梯度方向;
在模拟实验中,发现DIoU loss也有一些独有的特点:
- DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多;
- 对于包含两个框在水平方向和垂直方向上这种情况,DIoU损失可以使回归非常快,而GIoU损失几乎退化为IoU损失;
- DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。
Complete IoU loss
上述损失函数为CIoU的损失,通过公式可以很直观的看出,CIoU比DIoU多出了
Non-Maximum Suppression using DIoU
在原始的NMS中,IoU指标用于抑制多余的检测框,但由于仅考虑了重叠区域,经常会造成错误的抑制,特别是在bbox包含的情况下。因此,可以使用DIoU作为NMS的标准,不仅考虑重叠区域,还考虑了中心点距离。(基于DIoU作为NMS标准,虽然多了距离这个维度去考虑问题,但和NMS面对的同样的情况是当两个不同的目标本身就靠的很近的时候还是会造成错误的抑制)
实验结果
在YOLOv3上进行实验对比,DIoU loss和CIoU的效果都很显著,mAP分别提升3.29%和5.67%,而AP75则分别提升6.40%和8.43%,而使用DIoU-NMS则能进一步提升,幅度达到5.91%和9.88%
SSD on PASCAL VOC
基于IoU指标,在SSD-FPN上进行实验对比,因为本身模型已经精度很好了,DIoU loss和CIoU的效果不是很显著,但仍有提升。mAP分别提升0.59%和0.84%,而AP75则分别提升1.77%和2.59%,而使用DIoU-NMS则能进一步提升效果。
Faster R-CNN on MS COCO
在Faster R-CNN ResNet-50-FPN上,由于Faster R-CNN本身提供的bbox质量都比较高,因此,GIoU的优化都很小,但此时DIoU和CIoU则表现了不错的优化效果。注意到,CIoU在小物体上的性能都有所下降,可能由于长宽比对小物体的检测贡献不大,因为此时中心点距离比aspect ratio更重要。
上图对GIoU和CIoU的结果进行了可视化,可以看到,在中大型物体检测上,CIoU的结果比GIoU要准确。
Discussion on DIoU-NMS
DIoU-NMS能够更好地引导bbox的消除
总结
论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss的基础上加入长宽比的考量,能够进一步地快速收敛和提升性能。另外论文提出DIoU-NMS来代替原生的NMS,充分地利用IoU的特性进行优化,从实验结果来看,效果也是很好的。
扫码关注我们
公众号 : 计算机视觉研究院