今天和大家分享一篇ECCV2020中关于目标检测失效分析工具的文章。

文章标题:TIDE: A General Toolbox for Identifying Object Detection Errors

文章下载地址:https://arxiv.org/abs/2008.08115

代码下载地址:https://dbolya.github.io/tide/

在这里插入图片描述

动机

在目标检测和实例分割任务中,通常以mAP作为衡量模型性能的指标,然而在不同的应用场景中,仅仅看mAP的值是不合适的。比如:

  • 在肿瘤检测任务中,正确的分类更重要,Bounding Box准确与否不是第一位的;
  • 在机器人抓取任务中,Bounding Box很重要,很微小的Bounding Box偏差可能会导致完全错误的结果。

因此在mAP的背后,需要做一些错误分析来进一步评价模型是否胜任某个任务。

此外,了解多种导致mAP下降的错误类别,能更有利于分析出模型的优势和弱点;也能够帮助我们确认某个trick解决了什么缺陷从而提高了mAP指标。

论文作者开发了一套工具:TIDE(Toolkit for Identifying Detection and segmentation Errors ),用于对目标检测和实例分割任务进行失效分析。

错误类别

作者将目标检测任务的错误类别分成下图所示的6类:

在这里插入图片描述

t f t_f tf t b t_b tb是2个IoU阈值,分别设置为0.5和0.1。上图中的6种类别分别为:

(1)Classification Error: I o U max ⁡ ≥ t f I o U_{\max } \geq t_{\mathrm{f}} IoUmaxtf但是分类错误;

(2)Localization Error: t b ≤ I o U max ⁡ ≤ t f t_{\mathrm{b}} \leq I o U_{\max } \leq t_{\mathrm{f}} tbIoUmaxtf但是分类正确;

(3)Both Cls and Loc Error: t b ≤ I o U max ⁡ ≤ t f t_{\mathrm{b}} \leq I o U_{\max } \leq t_{\mathrm{f}} tbIoUmaxtf且分类错误;

(4)Duplicate Detection Error: I o U max ⁡ ≥ t f I o U_{\max } \geq t_{\mathrm{f}} IoUmaxtf,分类正确,但是有另外一个置信度更高、分类正确的Bounding Box;

(5)Background Error:对于所有的ground truth, I o U max ⁡ ≤ t b I o U_{\max } \leq t_{\mathrm{b}} IoUmaxtb

(6)Missed GT Error:除了Cls Error和Loc Error以外,所有没有检测到的ground truth。

错误的重要性

这里使用修复错误后对mAP的提升程度来衡量错误的重要性。通过修复某个指定的错误,对比修复前后mAP的提升情况,来查看某个错误是否很重要。当所有的错误都修复以后,理论上mAP的值为100。

分别修复上述6种错误,通过查看mAP的提升情况,可得到这6种错误对性能的影响程度。

此外,使用另外一种分类方式,将错误分为False Positive和False Negative这2类,也能通过该方法得到这两种错误对性能的影响程度。

实例

下图为使用TIDE分析不同模型在COCO数据集上的检测失效情况:

在这里插入图片描述

下图为使用TIDE分析Mask R-CNN在不同数据集上的检测和实例分割失效情况:

在这里插入图片描述

如果你对计算机视觉中的目标检测、分割、跟踪、轻量化网络感兴趣,欢迎关注公众号一起交流~
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐