Efficient One-stage Video Object Detection byExploiting Temporal Consistency
【摘要】
近年来,与传统的两级检测器相比,一级检测器在图像数据处理上取得了具有竞争力的精度和更快的速度。然而,在视频目标检测领域,大多数现有的视频目标检测方法仍然是基于两级检测器。此外,直接将现有的VOD方法应用于单级检测器会带来难以承受的计算成本。在本文中,我们首先分析了使用一级检测器进行视频点播的计算瓶颈。
在此基础上,我们提出了一个简单而有效的框架来解决计算瓶颈,并利用视频帧的时间一致性实现高效的单阶段视频目标检测。具体来说,我们的方法包括一个位置优先网络来过滤背景区域,一个大小优先网络来跳过对特定帧的低级特征映射的不必要计算。我们在各种现代单级检测器上测试了我们的方法,并在ImageNet VID数据集上进行了广泛的实验。实验结果证明了该方法的有效性、高效性和兼容性。代码可在https://github.com/guanxiongsun/vfe.pytorch上获得。
Introduction
近年来,在静止图像数据的目标检测领域,一级检测器备受关注[7,17,26,31,38,39],因为与传统的两级检测器相比,一级检测器显示出许多惊人的优势[3,9,11,27]。
例如,单阶段检测器更有效,更直接,并且与其他全卷积任务(例如语义分割)很好地结合在一起,促进这些任务共享想法和技巧。鉴于这些优势,许多研究人员在不同的方向上进一步提高单阶段检测器的准确性,如标签分配[6,37],特征对齐[4,22],损失设计[18,20,35]和多级特征聚合[8,19,21]。到目前为止,与两级检测器相比,一级检测器能够以更快的运行速度获得极具竞争力的精度。
然而,视频目标检测(VOD)领域多年来一直由两级检测器主导[1,5,30,33,41,42],很少有研究将一级检测器的优点从静止图像转移到视频[34]。
这种现象与经验直觉相矛盾,即一级检测器更适合对速度要求更快的VOD任务。为了探究这一现象的深层原因,我们进行了全面的定量分析(详情见第3节),并分享了以下事实:(1)SOTA VOD方法采用基于注意力的特征聚合来实现有希望的速度和精度权衡;(2)在两阶段SOTA VOD方法中,注意力模块输入的提案数量较少,例如300个提案,计算成本合理;(3)直接将现有的VOD方法应用于单级检测器会带来难以接受的高计算量,因为注意力模块的输入数量急剧增加,例如FCOS[31]中的13k像素;(4)对于图像或视频的一级检测器,低级特征的检测头需要80%的计算量。
在上述分析的基础上,我们提出了两个模块,充分利用视频数据的时间一致性,实现高效的一级视频目标检测。在这里,时间一致性指的是物体在连续帧序列中的位置和大小逐渐变化。受此启发,我们提出了两个新颖的模块:位置先验网络(LPN)和大小先验网络(SPN)。具体来说,首先,前一帧检测到的边界框可以引导模型找到当前帧中可能出现物体的区域。我们的LPN利用这种位置先验知识来过滤掉背景区域,从而降低了计算成本。第二,物体在短时间内保持相似的大小。
另一个事实是,单阶段检测器将对象划分为不同级别的特征图,每一级别负责检测特定尺寸范围内的对象。给定当前帧中的对象大小,所提出的SPN使我们的方法能够跳过在几个后续帧中不相关的特征级别上的不必要计算。
综上所述,我们的主要贡献是:-据我们所知,我们是第一个研究单阶段视频目标检测发展的障碍,并得出两个导致高计算的瓶颈:注意力模块的非常高维输入和低级特征级别的不必要计算。
我们提出了一个简单而有效的框架来实现高效的单阶段目标检测。具体来说,位置优先网络(LPN)可以过滤掉背景区域,而大小优先网络(SPN)可以跳过不必要的特征级别计算。注意,我们的方法可以很容易地合并到各种单级检测器中。
-在ImageNet VID数据集上使用各种单级检测器,即FCOS [31], CenterNet[38]和YOLOX[7]进行了大量实验。结果表明,我们的方法实现了良好的速度-精度权衡和良好的兼容性。
Related Work
单阶段探测器。
单级检测器可分为两类。
首先,基于关键点的方法,预测预定义对象的关键点生成边界框。例如,CornerNet[17]将边界框视为一对左上角和右下角,并通过分组预测的角对来检测对象。ExtremeNet[39]预测四个极值点(即最上、最左、最下、最右)和一个中心点生成边界框。CenterNet[38]检测对象边界框的中心点。它预测中心点的热图和几个回归值(即中心偏移量和边界框的大小)来生成边界框。
在本文中,我们使用CenterNet作为基于关键点的一级检测器的代表。
另一类单级检测器是基于中心的方法,该方法将物体的中心像素视为正样本,然后预测正样本到边界框边界的距离。YOLO系列[24,25,26]是最知名的中心式一级探测器。最近,YOLOX[7]对YOLO系列进行了许多经验改进,形成了一种新的高性能检测器。DenseBox[14]利用一个位于物体中心的填充圆,并预测从圆内的每个位置到物体边界框的四个距离。FCOS[31]将物体内部的所有位置视为正极,并引入一个中心分支来测量正极到物体中心点的距离。中心分支可以有效地减少推理阶段的误报。本文以FCOS和YOLOX作为中心型一级探测器的代表。
视频对象检测(VOD)
VOD方法探索利用视频中的时间信息来提高单帧检测器的性能和速度。现有的视频目标检测方法可分为盒级方法和特征级方法两大类。盒级方法尝试使用预测的边界盒的时间关联来改进检测结果。这些方法以后处理的方式执行。例如,TPN[15]和TCNN[16]使用LSTM和跟踪来模拟检测到的边界框之间的时间关联。SeqNMS[10]将NMS扩展到时域,大大减少了误报。CHP[34]针对CenterNet[38]提出了一种热图传播方法,使得检测结果在时间上是平滑的。相反,研究了特征级方法,通过特征增强来提高视频目标检测的准确性,并且可以端到端训练。FGFA[41]、MANET[32]和THP[40]利用光流传播和聚合特征图。SELSA[33]、MEGA[1]、LRTR[29]和RDN[5]通过注意机制推理视频中对象之间的关系,增强了当前帧的实例特征(建议)。
基于注意力的单阶段点播的计算瓶颈分析
最近的视频对象检测(VOD)方法[1,5,29,33]实现最先进性能的关键原因是利用了注意力机制。
然而,这些方法都是基于两级检测器。我们首先将基于注意力的VOD方法直接应用于一级检测器,并证明了这种朴素自适应的高计算成本。然后,我们进行了详细的分析,找出这一高成本的原因。
基础知识
在深入进行详细分析之前,我们先介绍一些初步知识并定义必要的术语。
现代单级探测器的总体结构。现代单级探测器[7,20,26,31,38]设计有不同的模块和设置,但它们共享一个通用的架构。总体结构可以概括为三个部分:脊柱、颈部和检测头。具体来说,骨干网从输入图像中提取特征图,例如ResNet-50/101[12]、DarkNet-53[24]和HGNet[23]。然后,将特征映射{C}转发到颈部模块,如FPN[19]和PAN[21],进行多级特征聚合。最后,在所有特征层{P}上执行检测头以生成检测。详细的总体架构如图1所示,其中s表示特征图相对于输入图像的步进或下采样比。
图1所示。现代一级检测器的一般架构,其中H、W、s分别为特征映射的高度、宽度和步幅(下采样比)。C3、C4、C5表示主干的输出特征图。P3、P4、P5等表示颈部的特征电平,如FPN。解耦的检测头通常包含一个分类分支和一个回归分支,在所有特征层上共享。最好以彩色观看。
注意模块的复杂性。由于关注模块是设计一种高效的单阶段视频目标方法的关键,所以我们引入了关注模块的复杂性。给定一个查询集Q = {qi}∈R Nq×C和一个键集K = {ki}∈R Nk×C,注意模块通过度量关系特征为K中所有键的加权和来增强每个查询qi,其中N和C分别表示查询或键元素的数量和维度。为简单起见,我们使用单头注意力进行演示。具体来说,qi的增强特征是:
式中,W为线性变换矩阵,wij为根据所有q-k对的相似度计算的相关矩阵中的一个元素。由于关键元素的数量Nk通常与查询元素的数量Nq相等或线性相关,并且关注模块的复杂度为0 (Nq 2 × C),因此关注模块的计算成本对Nq非常敏感。
基于注意力的单阶段视频目标检测简单迁移
在SOTA VOD方法中,在两阶段检测器的第二阶段中引入了关注模块[3,27],其中将对象建议作为查询元素。
具体来说,当前帧的建议被视为查询Q,参考框架的建议被视为关注模块的关键K。然后,通过关注模块将Q与K进行增强,如Eq.(1)所示。由于单阶段检测器生成建议,SOTA方法对单阶段VOD的朴素适应是在单阶段检测器的特征映射上进行基于关注的特征聚合。虽然这个想法很简单,但由于提案数量和特征图上的像素数量之间的差异,问题就出现了。例如,提案的数量非常少,例如FasterRCNN[27]中的300个,而一级检测器的像素数量通常为数千个,例如FCOS[31]中的~ 13K。这种幼稚的自适应极大地增加了注意力模块的计算成本。
我们设计了几个模型来定量地证明朴素自适应方法的计算成本增加问题。具体来说,我们使用SELSA[33]作为基准,因为它简单且具有良好的性能。本节的分析和结论也适用于其他基于注意力的VOD方法,因为它们的计算成本与SELSA相似。在SELSA之后,通过对当前视频中的nr参考帧随机采样生成密钥集K。朴素的自适应是将特征映射上的所有像素视为查询或关键元素。对于每一个时间步,Q和K分别由当前帧和随机采样的参考帧的特征映射上的像素组成。
在接下来的两个小节中,我们将分析实验结果并总结计算问题的两个瓶颈。
表1。SELSA与直接应用注意力机制在单级检测器、FCOS、CenterNet和YOLOX上的Nq和计算成本比较
瓶颈1:Nq急剧增加
在表1中,我们显示了使用三个一级检测器(分别表示为FCOSA、CenterNetA和YOLOXA)的SELSA基线和朴素自适应的计算成本。虽然大多数SOTA VOD方法在推理过程中使用超过10个参考帧,但我们只使用2个参考帧进行测试,因为如果在Tesla V100 (32GB) GPU上使用超过2个参考帧用于幼稚的单阶段自适应模型,我们会遭受GPU内存不足的错误。例如,在SELSA[33]中,Nq = 300是当前帧的提议数。
不同的是,在朴素的单阶段自适应模型中,Nq与输入图像的大小有关。对于FCOSA,我们遵循SOTA VOD方法中的协议[1,5,33],将输入图像调整为短边为600,长边小于或等于1000,因此Nq为~ 13K。对于CenterNetA[38]和YOLOXA[7],根据原始论文,输入图像被调整为512 × 512和640 × 640,因此Nq分别为~ 16.4K和8.4 4k。与SELSA相比,朴素适应模型的Nq急剧增加了近50倍。如§3.1所分析,注意模块的计算复杂度是Nq的二次元。
因此,基于注意力的单阶段检测器的GPU内存使用量和运行时速度比SELSA大得多,也慢得多,这使得它们无法在实际应用中工作。
为了克服这个问题,一个直接的解决方案是降低一级检测器的Nq。在两阶段检测器中,RPN预测目标区域周围的提案以去除背景区域,从而产生少量提案。然而,在一级检测器中,RPN被去除,导致了沉重的计算成本。在这里,我们提出了一个问题:我们能否利用视频中的时间信息来过滤掉一帧中的背景区域并降低Nq?这个问题促使我们设计位置先验网络,利用前一帧的检测结果在当前帧上找到可能的前景区域。
瓶颈2:低特征级别的检测头
为了进一步提高速度并执行有效的一级视频目标检测器,我们剖析了一级检测器的每个部分的运行时间消耗。
我们以FCOS为代表进行演示。如表2所示,骨干和颈部模块可以跑得比较快。近80%的运行时间花在检测头上。然后,根据特征级别对检测头的运行时消耗进行剖析。具体来说,大约65%的运行时间花在检测头的第一个特征级别上。
造成这种计算瓶颈的原因是低层次的特征映射具有非常高的分辨率。因此,解码过程,即为每个位置生成检测,是非常耗时的。高分辨率特征图被证明对小物体的检测很有用[19,21,31],但不可避免地会消耗大量的计算成本。
然而,通过利用视频的大小先验知识,可以减少低级特征映射的计算瓶颈。具体来说,由于连续帧中物体的大小是逐渐变化的,如果前一帧中没有任何小物体,我们可以跳过几帧低级特征映射上的检测头。受此启发,我们设计了尺寸先验网络,实现了非常快速的单级视频点播。
Methodology
我们引入了位置优先网络(LPN)和大小优先网络(SPN)两个模块来分别解决这两个计算瓶颈。在本节中,我们将详细说明LPN、SPN和FCOS[31]作为代表性的一级检测器进行演示。
位置先验网络
如3.3所分析,降低Nq是使用基于注意力的多帧聚合执行有效的单阶段视频目标检测的关键。我们提出了一种位置先验网络(LPN)来选择当前帧中的前景区域进行部分特征聚合。LPN分为两个步骤:首先,根据前一帧检测到的边界框进行前景区域选择;其次,利用注意力模块对所选前景像素进行局部特征聚合增强。
图2所示。(a)为直接进行基于注意的特征聚合的过程,其中紫色圆角矩形表示注意模块。在(a)中,注意模块的输入是当前帧和参考帧上的所有像素。
(b)为使用位置先验网络进行特征聚合的流水线,其中红色边界框表示前一帧传播的边界框。
在(b)中,注意力的输入是当前帧和参考帧上的前景像素。最好以彩色观看。
我们遵循SELSA的开源实现[33],并使用14个随机选择的参考帧。使用和不使用LPN进行特征聚合的对比如图2所示。
前景区域选择。给定前一帧检测到的边界框,验证的边界框{Dv}内的像素被视为前景像素,用于部分特征聚合。其中,验证的边界框{Dv}表示检测到的分类分数大于0.5的框。如果没有经过验证的边界框,则跳过部分特征聚合。具体来说,我们通过划分关卡的步幅s(例如4和8),将{Dv}中的框投影到每个特征关卡。然后,我们为每一层生成前景区域的二进制掩码M∈R 1×H×W。如果(x, y)属于任何经过验证的边界框,则位置(x, y)的掩码值被赋值为1。
否则,设置为0。此外,在生成M之前,{Dv}中的盒子以调整比率r调整大小,以控制计算开销。
部分特征聚合。给定二进制掩码M,如果M(x, y) = 1,则将位置(x, y)的像素视为前景像素。然后,通过注意力模块,利用参考帧F的特征增强前景像素。最后,用增强像素替换特征图F中相同位置的像素。具体来说,增强特征映射F的计算如下:
其中A(·,·)定义如式(1)所示,(x, y)列举了特征映射上的所有位置。最后,利用当前帧的新特征映射作为检测头来预测边界框。
训练和推理。在训练阶段,我们采用[41]中使用的时间dropout策略,在当前帧It的同一视频中随机选择两个支持帧。然后使用地面真值框生成前景掩码,并选择查询和关键像素。整个网络以端到端方式在当前帧上计算检测损失进行优化。在推理阶段,在一个时间步长,从前一帧It−1的检测结果中传播当前帧It的前景掩码。键集由参考帧上检测到的边界框内的像素组成。
尺寸先验网络
高效单阶段检测的第二个计算瓶颈是低级特征映射的计算。我们引入了大小优先网络(SPN)来跳过不必要帧中低级特征映射的计算。
具体来说,在时间步长t的帧检测过程后,SPN选择经过验证的边界框{Dv t}。这里,验证框的获得方式与我们的LPN§4.1(分类分数> 0.5)中提到的相同。对于接下来的T个时间步,检测头只在{Dv T}中的方框生成的特征层上进行。
例如,在视频帧中,验证的边界框{Dv t}是从最上面的特征层生成的,例如P5,这表明在接下来的帧中可能没有小物体,因此不需要在低级特征图上进行检测过程。对于这些帧,跳过低级特征映射的大量计算并不影响检测精度。在实践中,我们将检测帧间隔设置为T=7,以获得良好的速度精度权衡。有无SPN的检测过程对比如图3所示。
图3所示。(a)显示了在多级特征映射上的正常检测过程,其中所有级别的特征映射都被传递到检测头。(b)为尺寸先验网络引导下的检测过程。粉色框表示生成前一帧边界框的特征级别。在当前帧中,跳过不在粉色框内的特征层的计算,用透明框和虚线表示。最好以彩色观看。