今天和大家分享一篇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}} IoUmax≥tf但是分类错误;
(2)Localization Error: t b ≤ I o U max ≤ t f t_{\mathrm{b}} \leq I o U_{\max } \leq t_{\mathrm{f}} tb≤IoUmax≤tf但是分类正确;
(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}} tb≤IoUmax≤tf且分类错误;
(4)Duplicate Detection Error: I o U max ≥ t f I o U_{\max } \geq t_{\mathrm{f}} IoUmax≥tf,分类正确,但是有另外一个置信度更高、分类正确的Bounding Box;
(5)Background Error:对于所有的ground truth, I o U max ≤ t b I o U_{\max } \leq t_{\mathrm{b}} IoUmax≤tb;
(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在不同数据集上的检测和实例分割失效情况:
如果你对计算机视觉中的目标检测、分割、跟踪、轻量化网络感兴趣,欢迎关注公众号一起交流~