zoukankan      html  css  js  c++  java
  • 快速目标检测

    快速目标检测

    Minimum Delay Object Detection From Video

     论文链接:

    http://openaccess.thecvf.com/content_ICCV_2019/papers/Lao_Minimum_Delay_Object_Detection_From_Video_ICCV_2019_paper.pdf

    摘要

    我们考虑的问题是,当物体进入视野时,通过在线方式从视频中检测出来。我们提供了第一个实时解决方案,保证在可接受的检测精度水平下,将延迟最小化,即从目标进入视野到宣布的检测时间之间的时间。该方法利用基于现代CNN的单帧目标检测器,在保证最小延迟的前提下,以用户指定的速率聚合多帧检测结果,提供可靠的检测。为此,我们将问题描述为一个最快的检测问题,这提供了上述保证。我们的算法就是从这个理论中推导出来的。我们在实验中表明,与运行现代单帧检测器相比,只要50 fps的开销,我们就可以增加正确检测的次数,并降低总体计算成本。

    1.       Introduction

    单帧目标检测:             

    我们的工作利用了从单一图像中检测物体的方法。这些方法将单个图像作为输入,并返回用于定位可能感兴趣对象的边界框;它们还返回与对象类对应的边界框的类概率。对于这个问题,早期的研究(例如[10,36])使用了滑动窗口方法,同时使用了经过传统机器学习训练的分类。目前,基于CNN的方法是主要的方法。             

    这种探测器有两大类:             

    1) 两级探测器(如[30,9]),为可能的目标位置生成区域建议,然后通过CNN为每个提议的边界框解决分类问题,以及             

    2) 一级检测器(如[23,29,21]),一步预测边界框及其类信息。后者的计算成本通常较低,但可能不如前者精确[16]。正如我们将在本文中所展示的,当视频可用时,所有这些检测器都可以在计算时间方面得到显著的改进,在此之前,可以在任何检测精度级别上检测对象。             

    基于视频的数据关联:             

    有大量的文献,有时被称为数据关联(例如,[40,15,25]),它们涉及到我们在本文中考虑的问题的一个子任务。在数据关联问题中,给定视频中的一批帧,并在每一帧上输出一个帧对象检测器,目标是关联或链接与帧上相同对象对应的边界框,以生成轨迹。              然后,这可以用于许多应用中,例如对象跟踪和动作识别。最近的作品,例如[12,8],利用深入的学习来确定链接,并以联合的方式重新确定它们以及检测。与本文献类似的是,从Imagenet视频挑战(VID challenge)[31]激发的视频中确定输卵管,类似于轨迹。这些工作(例如,[17,18])利用CNNs预测帧上对象对应的时空体积,然后利用LSTM(递归神经网络)对对象进行分类。             

    这些方法可以用于检测视频中的对象,以提供更为时间一致的结果,尽管递归和实时地调整它们并不简单。此外,这些方法没有解决如何选择小批量以保证可接受的检测精度的问题。较大的批处理会导致更可靠的检测,但会带来较大的延迟和计算成本。我们的工作明确地解决了延迟(计算成本)和检测精度之间的权衡问题,并提供了一个有保证的最小延迟解决方案。             

    联机对象跟踪:             

    关于在线目标跟踪的文献很多,我们不打算对此进行综述。在这篇文献中,我们给出了一个对象的初始边界框,其目标是以在线方式在后续帧中确定它。例如,[5,4,24,11]使用相关滤波器进行跟踪,最近的工作(例如,[37,2])应用深度学习。这些工作并没有解决第一帧中明确假设的检测问题;可以使用我们的方法来初始化此类跟踪器。             

    视频中的在线检测:             

    我们的工作与[20]有关,它解决了使用运动提示从视频中在线检测运动对象的问题。在此基础上,给出了具有给定精度约束的最小延迟解。然而,由于昂贵的光流调用和非递归算法,该方法远不能实现实时性。             

    在本文中,我们利用现有的基于CNN的单帧检测器而不是运动检测器,推导出一个递推的解决方案来提供一个实时的解决方案。另一种检查速度和准确性之间权衡的方法是[6],它是由生物系统驱动的。与我们的工作相关的在线方法是[32],它是一种确定动作开始的方法。然而,这种方法并没有解决延迟与准确性之间的问题。

    2.       Review of Quickest Detection Theory

    快速检测(QD)旨在以最小的延迟,即变化时间之后的最小时间,可靠地在线确定分布变化。其主要思想是,通过观察更多的(噪声)数据,但增加延迟,可以获得可靠性,该理论试图提供解决这种权衡的算法。

    在许多应用中,像我们这样,分布可能不是完全已知的,并且可能依赖于未知参数θ。在这种情况下,可以在每次t时通过ML或MAP估计来估计和重新估计参数θ,并且 仍然保证(3)中测试的最佳性。但是,这并不扩展到递归实现。[33]和[19]在此场景中提供了不同的方法。

    3.       Minimum Delay Object Detector

    在这一部分中,我们利用最快检测理论,提出了在视频上工作的最小延迟目标检测器。我们首先介绍问题设置和符号,然后继续推导检测算法。

     3.1.  Notation and Assumptions

    我们将看到,在我们的算法中,即使在检测器不输出类概率的包围盒集合中,也必须估计涉及Dt的概率。因此,我们为这个集合引入了术语,称为未观察的边界框。

    3.2.  Formulating the Object Detector from QD

    我们感兴趣的是一旦观察者看到感兴趣的物体,即只在场景中检测那些属于预先指定类别l1,…,ln的物体。为此,我们为场景中每个感兴趣的对象设置了一个最快的检测问题。每个物体的特征是从开始时间1到当前时间t的轨迹b1,t,这表示物体向成像平面的投影。给定这个轨迹的估计值,我们依次估计和更新,我们希望通过将其作为假设检验问题来确定感兴趣的对象在时间t时是否在观察者的视野中。

    3.3.  Estimating the Trajectory

    在上一小节中,假设目标的轨迹btc,t是已知的,但是它是未知的,必须根据数据进行估计。我们现在通过一个优化问题来讨论它的估计,并将解决方案透露给后面的部分。如前所述,该轨迹类似于QD问题中变化前后分布的未知参数θ。我们可以用多种方法估计该参数,包括最大似然估计或已知先验概率的映射估计。这样的估计保证了检测规则的最优性。由于我们希望包含一个平滑先验,所以我们使用了一个映射估计器。

    3.4.  Computing Pre- and Post-Change Probabilities

    Computing the Probability

    这也意味着似然比积累得更慢,但对数据中的缺陷(如由于部分遮挡、照明等造成的故障)更为鲁棒。因此,C控制对缺陷的鲁棒性。

    3.5.  Summing Up: Detection Algorithm

    我们的最小延迟目标检测算法分三步进行描述,当新数据Dt+1可用时,迭代如下:1)通过地图估计更新现有轨迹(11),2)生成新轨迹,3)评估似然比∧t+1检验(9)。算法1描述了这个过程。我们将在下面的段落中更详细地讨论前两个步骤。

    4.       A Recursive Approximation for Speed

    我们现在提出了一个轨迹计算的递归近似,它允许我们推导一个完全递归的算法,从而避免从单帧检测器重新访问以前的数据。

    4.1.  Recursive Trajectory/Likelihood Computation

    为了在MAP估计问题中递归地估计轨迹btc,t,我们将轨迹(10)的先验分解如下:              轨迹更新和轨迹生成。

    4.2.  Further Simplifications and Final Algorithm

    我们的最终简化算法是算法2(另请参见图1),它总结了前一节中描述的递归近似,并涉及两个额外的简化,如下所述。             

    类相关轨迹的缩减:             

    当更新轨迹(23)时,必须为每个i找到最佳b*t。但是,我们只更新满足Wi,t>0的对象类的轨迹。这是因为如果Wi,t=0,则似然比小于1,表示变化时间在未来,消除了在一类假设下考虑轨迹的需要。移除轨迹:如果Pi Wi,t=0,即Wi,t=0,则我们移除候选轨迹。在这种情况下,轨迹不包含任何关于对象的信息。

     5.       Experiments

    5.1.  Datasets

    为了测试我们的算法,我们需要一个视频数据集,其中包含多个对象类的对象、在不同未知时间出现的对象,并且每个视频中的所有帧都被注释。据我们所知,符合所有这些标准的最佳数据集是KITTI数据集[13]。该数据集包含21个道路场景视频和917个带注释的对象(轨迹),包括汽车、货车、自行车和行人。数据集包含显著的遮挡、照明变化和视点变化。这些类的每个可见对象都在每个帧中被注释。每个对象都有一个ID,并在未知帧处变为可见。我们将每个物体的地面真值变化时间设置为它被注释的第一帧。

    5.2.  Performance Metrics

    检测方法的输出是带有类声明和时间的边界框,表示方法首次检测对象的时间。我们对经验性数量做出以下定义。正确的检测是一种检测,其边界框与IoU over IoUlim的同一帧中的地面真值边界框重叠,并且标签与地面真值匹配。注意一个对象可能是多次检测,但对于每个地面真值对象,只计算一次。假警报是一种声明的检测,它不是正确的检测。             

    我们使用以下性能指标。假警报率是假警报数除以整个数据集的声明检测总数。检测延迟是在检测到目标时减去更改时间之间的帧数,即该目标首次出现的地面真实帧。平均检测延迟是数据集中注释的所有对象的平均延迟。如果没有检测到地面真值对象,则该对象具有最大延迟,即它被注释的最后一帧减去地面真值更改时间。

    5.3.  Methods Evaluated

    单帧探测器:             

    我们用一级和两级检测器测试了我们的算法。我们选择SSD[23]和Retinanet[21]作为单帧检测器,选择速度较快的RCNN[30]作为单帧检测器。为了加快RCNN的速度,我们使用了作者在Pascal-VOC07/12上训练的原始实现作为基线方法。骨干网是ZF[39]和VGG-16[34]以及最近的Resnet50[14]。对于Resnet50更快的RCNN和SSD网络,我们使用mmdetection[7]工具箱中的实现。             

    比较:             

    我们使用单帧检测器的直接检测结果与我们的方法进行比较。通过对检测响应进行阈值化,实现了不同的虚警率水平。由于单帧检测器不处理帧之间的时间连接,因此如果重叠超过IoUlim,相邻帧中的边界框将被分组到相同的轨迹中。对于每个目标,检测延迟是基于第一次正确检测计算的。             

    对于我们提出的方法,对于不从RPN输出aμ(b)的单级检测器,我们手动为所有观察到的边界框设置μ(b)=1。在所有的实验中,我们发现IoUlim=0.5。我们将对象类的先验概率p(l=li)设为一致的。对于每个单帧检测器,常数C是根据经验设置的。

    5.4.  Results

    误报警率与延迟:             

    2通过改变检测阈值绘制假报警率与延迟曲线。在所有虚警率和每个单帧检测器下,该算法具有较小的延时。有趣的是,单帧SSD300和SSD512具有几乎相同的性能,然而,SSD512的最小延迟版本优于最小延迟SSD300。这表明,与SSD300相比,SSD512在帧上具有更一致的检测结果,从而允许更快地累积可能性。

    检测精度与计算成本:             

    3显示了以秒为单位检测对象的平均计算成本。在实时在线应用中,系统的计算资源总是有限的。结果表明,在任何精度约束条件下,使用多帧检测器都可以获得较低的总体计算成本,且可以使用速度更快、噪声更大的单帧检测器。              性能增益分析:             

    4显示了对性能提升的更详细的分析。在所有虚警水平下,最小延时检测器比基线检测器输出的正确检测结果更多,且这些正确检测的发生具有更低的延时。              递归与非递归检测:             

    我们比较递归近似和非递归算法。我们使用SSD300和SSD512进行说明。图5显示了错误报警率与延迟和计算成本曲线。我们发现递归型检测器的结果与非递归型检测器的结果相当,同时节省了相当大的计算成本。在SSD512中,递归版本的性能比非递归版本稍好,但并不显著(即一帧)。

    计算成本:             

    KITTI上,我们的递归算法通常以40-100 fps的速度运行,并根据场景中可见对象的数量使用Matlab实现(不包括单个图像检测过程的成本)。像SSD-300这样的单帧检测器以59 fps的速度运行,因此我们的整体算法以24-38 fps的速度运行。

    6.       Conclusion

    根据QD的理论结果,我们的基于视频的在线目标检测器在虚警约束下达到了保证的最小延迟。此外,我们的新递推公式比量子点最佳检测器节省了大量的计算成本,而且几乎没有性能损失。实验结果表明,对于任意级别的虚警率,我们的递推公式比单帧检测器具有更小的延迟和计算开销。我们的方法使用单帧检测器,并使用简单的附加逻辑(运行速度约为50 fps),当与同时也是实时的单帧检测器相结合时,会产生实时算法。因此,这有可能用于实时闭环应用。此外,我们的算法允许单图像深度学习检测器应用于视频,而无需任何额外的训练,并且保证在任何精度级别上的最小延迟。

  • 相关阅读:
    如何使用Doxygen生成keil工程的代码文档 (how to use doxygen properly with keil)
    使用matlab画相交的平面
    转载:关于循环异步操作 Promise 实现,ES7 的 await 和 async
    小众软件:相见恨晚的 Windows 系统下的 cmd 的命令行替代者 Cmder(完美神器)
    Windows系统环境下Python脚本实现全局“划词复制”功能
    Ubuntu shell 命令行路径缩短
    shell查找数组是否有特定的值
    保存数据到文件
    左值与右值
    进程与线程的区别
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12675793.html
Copyright © 2011-2022 走看看