一篇2019的老论文了,看到其他论文的引用翻出来看看,论文讨论了目标检测的理论上限,发现目标检测的问题主要是分类错误
论文题目:
Empirical Upper Bound in Object Detection and More
论文地址:
https://arxiv.org/abs/1911.12451
摘要
目标检测一直是计算机视觉中最的开放问题之一,尽管近年来在准确性方面取得了很大进步,但现代物体探测器已经开始在流行的基准上饱和,这就提出了一个问题:我们能用深度学习工具和技巧达到什么程度?在这里,通过使用两个最先进的对象检测基准,并在4个大规模数据集上分析超过15个模型,我们仔细确定了AP的上限,即VOC (test2007)上的91.6%,COCO (val2017)上的78.2%,以及OpenImages V4(验证)上的58.9%,而不管IOU,这些数据明显优于最佳模型的mAP (VOC为47.9%,COCO为46.9%;ious =.5:.95), 以新颖而直观的方式描述了物体检测器的误差来源,发现分类错误(与其他类混淆和遗漏)解释了误差的最大比例,并且比定位和重复误差更重要,分析了当物体的周围环境被移除时,当物体被放置在不一致的背景中,以及当图像被模糊或垂直翻转时,模型的不变性特性,我们发现,模型在空区域上生成方框,上下文对于检测小对象比检测大对象更重要,我们的工作深入挖掘了识别和检测之间的紧密关系,为构建更好的模型提供了见解。
1. 介绍和动机
经过数年对目标检测的广泛研究,积累了大量关于模型主干、模型训练和优化的技巧、数据收集和注释、模型评估和比较的知识,真正理解和实现平均精度(AP)是非常困难的,快速搜索谷歌会返回大量的博客和代码,其中对AP的解释存在差异,更糟糕的是,我们不太清楚AP是否已经开始饱和,进展是否显著,更重要的是,按照目前的路径,我们还能改进到什么程度,这让人怀疑我们是否已经达到了使用深度学习的性能峰值,此外,我们不知道是什么阻碍了我们在物体检测方面取得进展,与人类在物体识别方面的水平(尽管有争议)相比。
为了更好地解释上述问题,我们首先系统地、仔细地逼近AP的经验上界,我们假设AP上界是训练目标边界框上训练的最佳识别模型的得分,然后用于标记测试目标框,我们还研究了围绕目标对象或其重叠框的视觉上下文是否可以提高AP的上限,其次,我们通过描述对象检测器所犯错误的类型来识别瓶颈,并度量每种错误对性能的影响,第三,我们研究了各种目标检测器在不同类型的转换(包括不一致上下文、缩放、模糊、垂直翻转等)下的不变性特性。
简而言之,我们发现最佳检测模型的性能与经验上界之间存在较大差距,如图1所示,这意味着,如果我们能找到更聪明的方法,采用物体识别模型进行物体检测,那么就有希望用目前的工具达到这个峰值,我们还发现,分类仍然是目标检测的主要瓶颈,在小目标上更加关键,具体而言,目标检测模型继承了cnn的主要局限性,即缺乏不变性,失败的例子包括在包含单个对象的白色背景上生成大量边界框,以及未能检测到不一致上下文中的对象、垂直翻转的图像或模糊的图像,人类似乎仍然可以设法解决这些任务,尽管与完整的图像相比需要付出更高的努力和更低的性能。
2. 相关工作
我们讨论了三个方面的相关工作,第一个包括努力理解检测方法的工作,识别它们的缺点,并确定哪些地方需要更多的研究,Parikh等的目标是通过用人工注释替换管道中的不同组件(如部件检测、非最大抑制),找到人员检测器中最薄弱的环节,Mottaghi等人提出了用于识别场景理解瓶颈的人机CRFs,Hoeim等人检查了检测模型的定位错误、与其他类的混淆以及与PASCAL数据集背景的混淆,他们还进行了一项元分析,以衡量对象属性的影响,如颜色、纹理和真实世界的大小对检测性能,我们在更大的COCO数据集和图像转换上复制、简化和扩展了这项工作,Russakovsky等人分析了ImageNet定位任务,强调了细粒度识别,Zhang等人测量了我们距离解决行人检测问题还有多远,Vondrick等人提出了一种可视化目标检测特征的方法,以深入了解其功能。
第二是关于比较对象检测模型的研究,一些工作分析并报告了PASCAL VOC、MSCOCO、cityscape和open images等基准数据集的统计数据和性能,最近,Huang等人对现代物体探测器进行了速度/精度权衡分析,Dollar等和Borji等分别比较了人员检测模型和显著目标检测模型,Michaelis等人评估了退化图像的检测模型,观察到约3060%的性能下降,这可以通过数据增强来缓解,为了解决AP评分的不足,一些著作尝试引入替代或互补的评价措施,大量的研究也评估了对象识别模型及其鲁棒性。
第三研究了上下文在目标检测和识别中的作用,Heitz等人提出了一种概率框架来捕获物与物之间的上下文信息,以改进检测,Barnea等利用对象之间的共现关系来提高检测分数,Divvala等研究了识别中不同类型的上下文。
3.实验设置
3.1. 基准
我们的分析基于两个最近的大规模对象检测基准:MMDetection和Detectron2,前者评估超过25个模型,后者包括FastRCNN的几个变体,在这两个基准测试中,所有COCO模型都在train2017上进行了训练,并在val2017上进行了评估,在这里,我们使用MMDetection在一个新的数据集上训练和测试额外的模型。
3.2. 模型
我们考虑了在主要的会议上发布的最新模型和包含在上述基准中的模型,考虑了一些RCNN模型的变体,包括FasterRCNN、MaskRCNN、retinanet、GridRCNN、LibraRCNN、CascadeRCNN、MaskScoringRCNN、GAFasterRCNN和Hybrid Task Cascade,我们还包括SSD, FCOS和CenterNet,还考虑到每个模型的不同主干。
3.3. 数据集
我们使用了4个数据集,包括PASCAL VOC,我们自制的FASHION数据集,MSCOCO和OpenImages,在VOC中,我们使用trainval0712进行训练(16,551个图像,47223个框),使用test2007(4,952个图像,14,976个框)进行测试,这个数据集有20个类别。我们的FASHION数据集涵盖了40个服装类别(39 +人),该数据集的Trainval和测试集分别包含206,530个图像(776,172个框)和51,650个图像(193,689个框)。
这是一个具有挑战性的数据集,因为与COCO或VOC对象相反,服装项目是非刚性的,MSCOCO有80个类,在过去的6年里,它一直是物体检测领域进步的标杆,我们使用train2017进行训练(118,287张图片,860,001个框),使用val2017(5,000张图片,36,781个框)进行测试,最后,我们使用在Kaggle比赛中使用的OpenImages V4数据集,它有500个类,包含用于训练的1,743,042个图像(12,195,144个框),用于验证的41,620个图像(226,811个框)(这里用于测试)。
3.4. 指标
我们使用COCO API来测量超过iou0.5和0.75阈值的AP,以及在0.5:.05:0.95范围内的平均AP,每个类计算ap,然后取平均值,我们还报告了小对象(面积≤322)、中对象(322 <面积≤962)和大对象(面积> 962)上的分解ap。
4. 描述经验上界
我们假设AP的经验上界是由最好的对象分类器标记的具有真值边界框的检测器的分数,分类分数被认为是检测分数,通过这种方式,我们基本上假设定位问题已经解决,剩下的就是物体识别了,然而,至少有两种方法可以改进这个检测器:a)利用物体周围的局部环境来提高分类精度,从而更好的UAP; b)搜索整个场景,找到更容易分类的框(与目标框相比),并与目标框有足够的重叠,这对完美的iou没有影响,但可能会影响低iou,我们将在下面仔细研究这些可能性。
4.1. 周围环境的效用
我们在目标框上训练ResNet152,如图2所示有三种设置:I)仅对象,II)对象+上下文,III)仅上下文,标准的数据增强技术包括平均像素减法、颜色抖动、随机水平翻转和随机旋转(10度),将框大小调整为224 × 224像素,并对模型进行15期训练,训练后的模型在原始对象框上进行测试,表1所示的结果(top-1精度)显示,在所有四个数据集中,标准对象大小包含关于对象类别的最多信息,增加或减少对象框会降低性能,情境分类得分较高,但仍低于其他情境,将背景延伸到整个场景会显著降低性能,同一条件下的训练和测试模型(即对象+上下文)在特定条件下的准确率更高,但不会导致更好的整体识别准确率。
4.2. 寻找最好的标签
本质上,这里的问题定义是我们如何利用场景中的所有信息来获得识别场景中物体的最佳分类精度,这与孤立地处理物体的识别方法不同,注意,识别精度与AP不同,因为检测分数在AP计算中也很重要,手头有了最好的分类器,我们准备近似AP的经验上限。在深入研究细节之前,让我们回顾一下AP是如何计算的。
AP计算 对于每一类,对所有图像的检测都根据它们的置信度进行排序,从这个列表的顶部开始,考虑每次检测时IOU最高的目标,我们有一个真阳性(TP;hit),如果他们的IOU≥thresh,如果目标还没有分配,如果IOU<阈值(即定位错误)或目标已分配(即重复;对同一个目标的两个预测),一个目标盒只能匹配一个检测项(置信度评分最高且IOU≥阈值的检测项),如果一个检测有两个目标的IOU≥阈值,则将其分配给未分配的IOU最高的那个检测,再次扫描排序后的检测列表,得到每个召回率的精度,并用于绘制召回率-精度(RP)曲线和计算AP。
我们探索了两种策略来追求AP的上限,在第一种策略中,我们将上一节中的最佳分类器应用于目标框,以这种方式构建的检测器给出相同的AP,而不考虑IOU阈值,因为我们的检测是目标框,如上所述,在IOU=1时不可能改进这个检测器,然而,如果我们对较低的IOU(比如γ)的上界感兴趣,那么通过在目标框附近的候选框中搜索并选择一个比目标框分类更好的框,或者从附近的框中聚合信息,可能会做得更好,因此,在我们的第二种策略中,我们对对象周围的框进行采样,然后应用原始的分类器(根据标准对象大小训练),或者在周围的框上训练和测试新的分类器,在任何情况下,我们总是保留目标框,但更改其标签和/或置信度,首先,让我们看看我们的框采样方法,如图3所示。
IOU超过阈值的框采样 在这里,我们感兴趣的是找出所有IOU≥γ (γ≤1)使用真实边界框,我们使用以目标框P左上角为中心的坐标系;其中可以很容易地转换为图像级坐标系,与左上角的目标框相交的所需矩形的右下坐标遵循公式αβ = 2γ/(1 + γ),其中α和β分别为矩形的宽度和高度(我们假设所有的矩形框都与目标框具有相同的宽度和高度),根据图3(A),我们有:
由这些方程,假设u = αU, v = βV,很容易推导出以下方程:
同样的方程也适用于分别在Q、R和S点与目标框相交的矩形的左下角、左上角和右上角的坐标(在以这些点为中心的坐标系中,按顺序),计算这些矩形的左上角(在它们对应的坐标框架中),并在点P的坐标框架中表示它们,我们得到以下四个方程(注意,这些不是直线):
根据上面的公式,我们对一些IOU≥γ(图3(B))的矩形(这里= 4)进行采样,并用目标盒的标签对其进行标记,然后在这些框上训练一个新的分类器(与上面的ResNet152相同),这实际上是一种新的数据增强技术,注意AP是分类精度的直接结果,所以如果我们能更好地分类对象,我们就能获得更好的AP。
为了估计UAP,我们在一个目标框(IOU≥γ)附近抽样若干个矩形(=4),然后用以下方法标记目标框:a)分类分数最高的盒子(即最自信的盒子)的标签(和置信度),或b)附近框中最频繁的标签(其中置信度分数最高的盒子)。
4.3. 上限结果
在这里,我们报告分类分数、AP上限、模型得分(所有iou上的AP平均值;除非另有说明),以及按类别划分的AP。
策略比较 第一种策略的总结结果如图1所示,正如预期的那样,所有iou的uap都是一样的,比模型好得多,令我们惊讶的是,我们的第二种策略并没有带来更好的UAP值,除了少数情况,包括FASHION数据集上的中小型对象上的UAP和COCO上的小型对象(使用最自信的框),如表2所示。
应用原始分类器,而不是在周围的盒子上训练新的分类器,或者只采样IOU较高的盒子(例如0.9),并不能改善结果,此外,将检测的置信度设置为1会降低UAP,我们将第二种策略的失败归结于这样一个事实:周围的盒子可能包含额外的视觉内容,这可能会在标签中引入噪音,这导致了较低的分类精度,从而导致较低的AP,因此,在接下来的内容中,我们只讨论第一种策略的结果。
PASCAL VOC 图4显示了使用VOC和COCO评价api的结果,VOC评价代码基于IOU=0.5,计算PR曲线下面积与COCO略有不同,对于VOC,我们采用CenterNet的代码,我们在这个数据集上训练测试了5个模型,包括FasterRCNN、FCOS、SSD512和CenterNet的两个变体,对VOC的分类准确率很高(94.7%),因此,UAP非常高(使用COCO API时是91.6)。
FCOS模型在这里表现最好,AP为47.9(图4右面板;虚线)。可以看到,在这个数据集(~45)上,最佳模型的AP和UAP之间有很大的差距。模型在不同类别中的表现是一致的。
FASHION 结果如图5所示,该数据集的最佳分类准确率为88.8%(表1及补充),UAP为71.2,最佳模型AP为59.7 (FCOS),有趣的是,FCOS的表现非常接近IOU=0.5的上限(图1),模型在这里比在VOC上表现更好,FASHION UAP低于VOC UAP,可能是因为前者数据集的分类更具挑战性,UAP与模型AP在这里的差距要比VOC小得多,部分原因可能是FASHION场景比VOC场景有更少的杂乱和更大的对象,虽然每个类别的UAP高于所有VOC类别的最佳型号的AP,但5种时装类别的UAP低于最佳型号的AP(邮差包、束腰外衣、长袖衬衫、衬衫和连体衫),看分类分数,我们发现它们的准确性很低。
COCO 现有基准为开发、评估和比较检测模型(特别是COCO数据集)提供了一个有效的生态系统,他们在各种环境下提供训练有素的模型,借用MMDetection基准并将CenterNet的结果添加到它中,我们最终比较了15个模型(共71个;模型和主干的组合),模型得分如图6所示,这里最好的模型是Hybrid Task Cascade model和Cascade MaskRCNN, ap分别为46.9和45.7,COCO上AP的上限约为78.2,回想一下,UAP不依赖于IOU阈值,因为检测到的框是分类的真实目标,最佳模型AP与UAP之间的差距在30以上,在IOU=0.5时,AP的差距要小得多,约为10,小对象上的UAP比大对象上的UAP低得多,这也适用于模型,在小物体上UAP与模型AP的差值约为35,远高于在中型或大型物体上的差值。
对象类别上的ap细分如图7所示,对于这个分析,我们使用Detectron2基准测试,它主要在RCNN模型族上报告每个类别的结果,我们注意到MMDetection和Detectron2的总分数是相当一致的,在fast - rcnn和MASK-RCNN的18个变体中,最佳模型的AP为44.3(虚线所示),低于COCO上的最佳可用模型(46.9;图1)和AP的上限,在80个类别中,只有3个类别(滑雪板、牙刷和烤面包机)的uap低于最佳模型ap。
OpenImages 这个数据集是对象检测领域的最新成果,比以前的数据集更具挑战性,我们的分类器在OpenImages V4的验证集上达到69.0%的top-1精度,低于其他三个数据集,我们实现了58.9 UAP,使用TensorFlow评估API在这个数据集上计算AP,这与COCO AP计算不同(这里我们放弃了分组和超类别),我们不知道这组OpenImages V4的任何模型得分。
AP vs.分类精度 我们发现UAP与分类精度之间存在线性正相关关系(在COCO上R2 = 0.81)(图8),分类精度越高,UAP越高,我们没有发现精确度和模型ap之间的相关性,也没有发现对象大小和精确度(或UAP)之间的相关性,UAP对准确性的依赖,突出了识别在目标检测中的重要性,并构成了我们接下来两节分析的核心。
5. 错误的诊断
为了找出物体探测器的缺点,我们遵循Hoeim等人的分析,但从两个主要方面对其进行了修正,首先,我们不是跨类别检查错误,而是按类别进行错误分析(即二进制方式),这简化了过程,使其更容易理解,见图9,我们将所有类型的类混淆合并为两种类型的分类错误:a)与背景混淆(类型I), 2)遗漏(类型II),请注意,这隐含包含上述错误分类类型,但更容易调查,事实上,最近的对象检测器如FCOS和CenterNet也采用了这种策略来对对象进行分类(即对象是否属于特定的类),其次,Hoeim等人依次去除误差,达到AP为1,我们认为这种方法混淆了不同的错误类型,并没有正确反映错误的真正贡献(即低估或夸大错误类型)。
例如,根据COCO分析工具,与具有不同类标签但属于同一超类别的对象的任何匹配都不能算作FP或TP,此外,COCO工具还可以删除错误的本地化预测,在这种情况下,我们认为纠正错误的本地化预测比删除它们更有效,因为它可以揭示模型中的其他弱点来源,例如,它可能会导致产生副本,这将被忽略的检测,相反,在这里,我们通过在适当的时候删除、纠正或添加检测来显式地处理错误,与Hoeim等人类似,我们的分析也是基于IOU=0.5。
我们对每个分类图像对重复以下步骤(如图9所示;从左到右),首先,我们去除任何目标的最大IOUmax≤0.1的检测(即分类错误类型I;与背景混淆),其次,我们用0.1 < IOUmax < 0.5修正了局部定位错误的预测,在这一步中,这些盒子的坐标被替换为它们匹配的目标盒子坐标(即拥有最大IOU的目标),同时保留它们的置信度分数和标签,第三,删除重复(即冗余检测),如果一个不匹配的检测(即IOU≥0.5)落在一个已经分配了检测(得分更高)的目标上,则认为该检测是重复的,第四,miss是指IOUmax≤0.1,且检测不匹配的目标,并被添加到检测列表中(得分为1),在执行此步骤之前,我们将检测的坐标设置为其匹配目标的坐标,因为我们现在知道哪个预测与哪个目标配对(即一对一映射;没有重复)。
3个数据集上3个模型的错误诊断结果如表3所示,我们从原始检测集开始,按照上面解释的和图9所示的顺序逐步测量修正每种错误类型的影响,与背景(和其他类;见上文)在所有模型中对总体误差的贡献最大,这表明模型经常错误地将背景杂波或其他类混淆为特定的对象类别,第二种最重要的错误类型是失误,有趣的是,定位错误比副本更重要,对COCO和VOC数据集的影响比FASHION数据集更大,可能是因为前两者包含更多的小对象,相反,在FASHION数据集中,副本更重要,可能是因为阶级的混淆更高(例如,混淆拖鞋和凉鞋;不同类型的帽子,等等),模型在三个数据集上的表现几乎一致。
我们还交叉检查了我们的结果与使用COCO分析工具获得的结果,COCO分析工具的数据不能与我们的直接比较,因为我们的策略是不同的,而且不像我们,它没有明确地解决重复错误,然而,根据图10的ap和PR曲线,我们得到了与我们相似的结论,在这里,我们再次观察到分类错误类型I(图10中的Sim、Oth和BG)占错误的最大比例,其次是遗漏(FN)和定位(Loc)错误。
作为错误诊断的补充,我们在这里进行了一系列实验,以减少检测管道中的定位或识别的影响(一次一个),我们主要强调的是识别部分,这些实验在COCOval2017上进行,如图11所示,采用COCOtrainval0712集以上的训练过的模型。
语境分析 在第一个实验中,我们将单个物体放在白色背景或白噪声背景中(每张图像一个物体,因此图像的数量等于物体的数量),与我们的预期相反,我们发现模型或低估或高估了目标边界盒的分布,图12显示了预测盒和groundtruth盒分布的差异,FasterRCNN 和 RetinaNet在目标周围产生了过多的盒子,而FCOS产生了相当数量的盒子,这暗示了模型中对象性预测的缺点。
如表4所示的量化结果显示,模型在这些图像上的表现很差(在两种情况下大致相同,但低于原始图像),它们在小物体上受到的阻碍比在中、大型物体上受到的阻碍要大得多,可见上下文对于小物体的识别和检测是多么重要,有趣的是,在白噪声BG和只有对象的情况下,ap -大增加但ap -小减少(与原始相比)),FCOS在原始图像上的排名更高,在这方面也做得更好。
在第二个实验中,只有对象的情况下,我们删除了图像背景并保留了所有的对象(因此与COCOval2017中相同的图像数量),令我们惊讶的是,FCOS和SSD在这些图像上的表现比原始图像更好(表4中第1列和第10列),与原始图像相比,在只有对象的情况下,它们在大型对象上表现更好,而在小型对象上表现较差。
在第三个实验中,我们将对象粘贴在不一致的背景中(例如,街上的一艘船),类似于Rosenfeld等人,但在更大的数据集上,包括更多的模型,我们粘贴9个对象,包括熊,键盘,冰箱,冲浪板,火车,电视,蛋糕,马,烤箱从100张图片从时装数据集,总共900张图片,结果见表5,有趣的是,模型在这个数据集上表现良好,他们在冲浪板和烤箱上惨败了,这对人类来说似乎有点难。蛋糕、熊和马是最简单的,FCOS在所有型号中表现最好。
图像转换的鲁棒性 在第四个实验中,我们评估对象的模型,这些对象是a从图像中裁剪出来的,或者b)裁剪并调整尺寸,使其最小尺寸变为300像素(同时保留长宽比),在这两种情况下,模型的表现都很糟糕,而RetinaNet表现得更好(表6)。这里的糟糕性能表明模型对对象规模是多么敏感,而且它们缺乏对对象外观的鲁棒性,视觉检查图像,我们发现很难识别裁剪的对象,特别是小的。
第五和第六个实验分别是高斯模糊(核为11 × 11)和垂直翻转的测试模型,表6中的结果显示,这两种类型的转换都极大地阻碍了性能,对垂直翻转的影响更大,在这些情况下,我们没有人类性能的基线,但快速浏览显示,仍然有可能检测到对象,尽管需要更多的努力,在这方面,RetinaNet和FCOS优于其他模型。
误差分析 在这里,我们测量每种错误类型在三个检测任务中的影响,包括对象,高斯模糊和垂直翻转,结果见表7,错误类型按重要性排序包括:遗漏、定位、错误分类(类型I)和重复三个任务,与只有对象的情况相比,垂直翻转和高斯模糊情况下模型遗漏了更多的对象,在只有对象的情况下,BG比原始图像(分类类型I)更少混淆,因为没有背景混乱。
7. 结论与展望
通过穷尽性分析,我们发现:a)模型的性能明显低于经验可能;b)在小物体上的性能差距更大,表明尺度是目标检测的主要问题之一;c)目标检测的瓶颈是目标识别;d)检测模型在搜索正确的位置、利用上下文、识别小物体和图像转换的鲁棒性方面缺乏泛化。我们没有从目标的周围环境或其附近的重叠框中找到一个重要的贡献来更好地对其进行分类,进一步的数据增强和优化研究可能会提高精度,但不太可能大幅提高UAP,为了评估模型的识别组件,可以将目标框提供给模型,并收集其决策,然而,这很麻烦,需要为每个模型分别编码,而我们的诊断工具是通用的。
本文暂时没有评论,来添加一个吧(●'◡'●)