zoukankan      html  css  js  c++  java
  • 拥挤场景中的目标检测

    拥挤场景中的目标检测

    Detection in Crowded Scenes: One Proposal, Multiple Predictions

    论文链接:

    https://arxiv.org/abs/2003.09163

    code链接:

    https://github.com/megvii-model/CrowdDetection

    摘要

    本文提出了一种简单而有效的基于提议的目标检测器,旨在检测拥挤场景中高度重叠的实例。本文方法的关键是让每个方案预测一组相关实例,而不是以前基于方案的框架中的单个实例。该探测器采用EMD损耗、设置NMS等新技术,有效地解决了高重叠度目标的检测难题。在FPN-Res50基线上,本文的检测器在挑战性的众人类数据集上可以获得4.9%的AP增益和AP增益对CityPersons数据集的改进,没有钟声和哨声。此外,对于像COCO这样的不太拥挤的数据集,本文的方法仍然可以获得适度的改进,这表明所提出的方法对拥挤是鲁棒的。

    1.       Introduction

    本文介绍了一种新的方案来解决这一难题:对于每个方案框,本文建议预测一组可能高度重叠的实例,而不是像通常那样预测单个实例,如图2所示。利用这个方案,邻近方案的预测预计将推断相同的实例集,而不是区分个体,这很容易学习。本文还介绍了新方案中的一些技术。首先,提出了一种EMD损失来监督实例集预测的学习。其次,提出了一种新的后处理方法Set-NMS来抑制不同方案中的重复,以克服拥挤场景中不支持NMS的缺点。最后,一个可选的增强模块(RM)被设计用来处理潜在的误报。

     2.       Background

    如引言所述,基于建议的对象检测器的范例主要包括两个步骤:第一步是建议框生成,可以通过选择性搜索[12,11]、预先确定/可学习的锚[29,28,24,21,41,39,45]或区域建议网络(RPN)[29,20,13,4,2]来实现。第二步是实例预测,即预测对应于每个方案框的重新确定的检测结果。本文主要关注本文的第二步。例如预测,当前最先进的对象检测框架[29、20、21、24、28]通常在每个建议框上附加一个检测函数,用于确定建议是否与某个基本真实实例相关联;如果为真,进一步预测对象的相应类标签和重新定义的边界框。这个机制意味着每个提案框对应于单个基本事实(通常是与提案框相对应的最大值)。因此,建议框必须过度完成,以确保每个实例都有机会被检测到,这会给预测引入许多重复项。因此,非最大抑制(NMS)等重复消除方法对于那些框架过滤出重复结果是必要的。尽管上述范式似乎在一些基准上取得了出色的结果,如COCO[22]和PASCAL VOC[8]。由于后处理方法(如NMS),它在拥挤的场景中会丢失检测。图1(a)示出了一个示例:虚线框中的人被附近的框错误地抑制。

    3.       Multiple Instance Prediction

    本文的方法是由观察结果驱动的:假设有多个对象彼此严重重叠,如图2所示;如果一个方案对应于任何一个对象,则很可能重叠所有其他对象。所以,对于这样一个提案框,与其预测一个对象,不如预测所有对象?在形式上,对于每个方案框bi,新方案建议预测相关的一组基本事实实例G(bi),而不是单个对象:     

           

    其中,G是所有地面真值框的集合,θ是给定的并(IoU)比相交阈值。图2(b)将概念可视化。与以往的单实例预测框架相比,本文的新方案可以大大简化拥挤场景下的学习。如图2(b)所示,所有三个建议框都被分配给同一组基本事实实例,这是一种可行的行为,因为三个建议实际上具有几乎相同的特征。而对于先前的单实例预测范式(图2(a)),每一个预测都会产生不同的预测,这在本质上可能是困难的。

    在本文的方法中,每一个建议都会生成一组实例,而不是一个单独的实例,由于生成了更多的预测,这可能会导致误报的增加。虽然在本文的真实图像实验中很少观察到故障情况,但本文引入了一个可选的故障模块,以防出现风险,如图3(b)所示。该模块只需将预测作为输入,并将其与建议功能相结合,然后执行第二轮预测。本文希望固件模块能够纠正可能的错误预测。

     4.       Experiment

    1列出了每个数据集的“实例密度”。因为本文提出的方法主要是为了改进拥挤检测。因此,本文在CrowdHuman上执行大多数比较和消融。注意,在像COCO这样的非拥挤数据集上的实验是为了验证本文的方法是否对孤立对象检测有害,而不是为了显著的性能改进。

    2显示了第3节中所述方法的融合实验,包括EMD损失的多实例预测、设置NMS和增强模块。基线是FPN[20],使用NMS(IoU阈值为0.5)进行后处理。很明显,本文的方法在所有标准中都不断改进性能。

    在图1中,由于NMS错误地抑制了一些实例,一种可能的假设是,可以通过使用不同的NMS策略来改进预测。表3探讨了一些变体。对于纯粹的NMS,与默认设置(0.5)相比,稍微增大IoU阈值(从0.5到0.6)可能有助于调用更多实例,因此AP增加。

    4还比较了最近的工作AdaptiveNMS[23],这是一种用于拥挤检测的增强的NMS策略。在[23]中,报告了基于FPN的众人类结果。值得注意的是,由于基线翻新,本文无法与本文的结果进行直接比较。从数据来看,本文发现本文的方法可以在更强的基线(尤其是AP)上实现显著的改进,此外,管道也简单得多。表4还评估了本文在级联R-CNN[2]框架上的方法。在级联R-CNN的最后阶段加入EMD损耗,并设置NMS。研究结果表明,本文的方法仍然可以显著提高级联R-CNN在拥挤数据集(如crowdhman)上的性能。

    为了进一步了解本文的方法对拥挤对象的有效性,本文分别比较了拥挤和非拥挤情况下不同方法的召回率。结果如表5所示。请注意,召回与信任分数阈值有关。为了公平比较,本文分别使用与每个条目的最佳JI索引对应的阈值。从表中本文发现,对于FPN基线/软NMS,拥挤对象的召回率远低于非拥挤对象,这意味着拥挤检测的困难。相比之下,本文的方法大大提高了拥挤实例的召回率(从54.4%提高到63.3%,提高了8.9%),另外,非拥挤实例的召回率也略有提高。

    7分别将本文的方法与具有原始NMS和软NMS的FPN基线进行了比较。本文的方法使AP和MR-2分别比NMS基线提高了0.9%和1.0%,表明了本文的方法的有效性。表7还列出了CityPersons的一些其他最新结果。尽管由于不同的超参数设置,直接比较可能不公平,但至少它意味着本文的方法在相对较强的基线上获得了显著的收益。

    6进一步分析了不同方法的召回情况。与CrowdHuman(见表6)中的方法类似,本文的方法主要显著提高了对拥挤对象的召回率——在验证集中的108个实例中,从64个增加到96个。通过比较进一步说明本文的方法对于再次处理拥挤场景是非常有效的。

     

     

     

     5.       Conclusion

    在本文中,本文提出了一个非常简单而有效的基于建议的目标检测器,专门为拥挤的实例检测而设计。该方法利用多实例预测的概念,引入了EMD损失、SetNMS和re-fiment模块等新技术。本文的方法不仅有效,而且灵活,可以与大多数最先进的基于提议的检测框架进行合作;此外,还可以很好地推广到不太拥挤的场景。

  • 相关阅读:
    Leetcode 16.25 LRU缓存 哈希表与双向链表的组合
    Leetcode437 路径总和 III 双递归与前缀和
    leetcode 0404 二叉树检查平衡性 DFS
    Leetcode 1219 黄金矿工 暴力回溯
    Leetcode1218 最长定差子序列 哈希表优化DP
    Leetcode 91 解码方法
    Leetcode 129 求根到叶子节点数字之和 DFS优化
    Leetcode 125 验证回文串 双指针
    Docker安装Mysql记录
    vmware虚拟机---Liunx配置静态IP
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12776842.html
Copyright © 2011-2022 走看看