Abstract
在图像目标检测任务中,生成很多的候选区域和很少的真实边框进行匹配,通过这种方法可以建立学习样本。但是在实际训练和网络评价时大多数不包含目标实体的候选框应该被舍弃和拒绝。这会导致额外增加计算负担在目标和非目标采样之间产生严重的不平衡问题。从而阻碍算法的性能。这里我们通过两级目标检测算法提出一种新的启发式采样方法去生成候选框。这种方法在两级目标检测中通用可以提高他们的检测性能。在COCO数据集上实验,相对于基础模型这种方法能够显著地提高检测精度和效率。
Introduction
图像目标检测是一个非常经典和传统的计算机视觉任务,已经被学习很多年,并且一直吸引了非常多的关注。它相对我们了解的图像分类任务更加复杂,因为在一副图像上潜在的目标对象不仅仅是包含各种各样的种类而切还有不同的尺寸和不确定的位置。目标检测的目标不仅是将这些目标分类而且要去确定他们的位置,因此它实际包含两个子任务。分类和定位。这个任务被应用于很多场景,比如行人检测、水果检测、音乐符号检测、可视化测量、3D形状恢复等。在早些年,这个任务主要依靠手工特征所以性能相对较低。但是在最近几年,基于深度神经网络这是重大的发展。当前主流的方法可以被分为两类:the region-based methods and the region-free methods.
The region-based methods 经常采用两级通道。首先候选区域网络将候选区域像素分为前景和背景,之后在前景色边框选择创建正样本在背景色边框中选择创建负样本。第二,设计一个候选区域子网将这些样本分类并精炼候选区域边框。候选区域网络可以在第一步将大部分背景样本过滤,因此在第二步最终的搜索空间会相当的小,从而得到很好的检测性能。Fast R-CNN(R-CNN指的是区域卷积神经网络)在主要的目标检测基准上展现出很高的准确率。受此启发,很多其他有效的目标检测方法应运而生,包括Faster R-CNN ,R-FCN ,Mask R-CNN, RON等。然而由于两级检测出现,这种类型的计算能力和效率还远远不是最优的。
全卷积网络FCN The region-free methods基于CNN特征图像的每个像素直接计算最终的bounding box,因此他们经常被称为one-stage方法。YOLO SSD和他们的变形是这一类的典型例子。由于忽略了候选框的预选择过程这种方法到来了很高的效率,但是也产生了前景-背景分类不平衡的问题。虽然hard example mining(HEM)技术可以抑制背景样本,但是检测精度一直没有很好地竞争力。
考虑到两级方法,例如Faster RCNN 和 Light Head RCNN在特征图像上产生候选边框在整个过程中是不可缺少的和重要的过程。由于检测目标可能出现在图像的任何位置,候选框的位置是完全未知的。因此,所有这些方法都采用均匀采样策略,其中所有候选框都是通过对feature map上的像素进行固定像素间隔的采样而生成的。该策略将所有候选框均匀分布在特征图上,称为均匀锚点。
但是均匀锚点是最优的吗?显然,如果我们能够优化锚点采样的操作,检测过程中后续的所有操作都将从中受益,从而进一步优化整个网络。在本文中,我们将研究这个问题,并提出一种更好的锚点采样方法,称为热锚点,在基于cnn的feature map上生成锚点。该方法普遍适用于目前的两阶段检测算法,可用于提高其性能。
综上所述,我们在本文中做出了以下贡献:
提出了在目标检测过程中优化锚点采样方法的准则。最佳的抽样方法应具有最大的目标命中率和最小的抽样覆盖率。
提出了一种改进的基于特征图的锚点采样方法——热锚点。它是一种启发式的采样方法,充分利用基于cnn的图像特征信息来定位目标对象的中心像素。对测试任务的实验表明,我们的方法可以与现有的两阶段算法相结合,提高算法的准确率和效率。
Realated Works
目标检测在计算机视觉任务中是非常经典的工作。它的目的是在没有其他辅助信息的情况下找出图像中潜在的对象实例。为了达到这一目的,必须充分利用图像特征信息。因此,目标检测算法自然根植于图像特征提取算法中。
在早些年间,依赖于手工方法的图像特征,例如SIFT、SURF、HOG等,提出了很多经典的目标检测算法。这些算法使用人工设计的特征描述符来表示对象,然后使用滑动窗口扫描整个图像,找到具有特定于类的最大响应的区域。DPM及其变体是这类方法的典型例子,多年来一直是主流方法。
近年来,深度卷积神经网络(deep tional neural network, CNNs)逐渐占据了图像特征提取的主导地位,同时出现了许多成功的基于CNNs的检测算法。例如,R-CNN[29]及其变体通常组合一个区域建议方法(如选择搜索[30]、EdgeBoxes[31]、MCG[32]等,并采用后分类方法(如支持向量机)。这些方法在检测精度上有了显著的提高。在这之后,SPP-Net和Fast R-CNN分别提出了空间金字塔池化方法和roi池法,使得head-sub net能够重用CNN feature maps上计算的特征。此外,Faster R-CNN提出了一个区域建议网络(rpn),以达到更好的准确性和效率。对于这个过程,还提出了许多其他方法,这些方法都称为两阶段方法。其中,R-FCN试图通过位置敏感的分数图来减少计算时间。FPN结合多尺度CNN feature maps构建了feature pyramid,极大地提高了对小目标的检测精度。RON[18]提出了一种反向连接的方法来检测CNNs的多尺度特征图,并提出了一种减少目标搜索空间的目标优先方法。Mask R-CNN提出了RoIAlign方法,并创造性地在网络中增加了一个Mask预测分支,可以在一个推理中完成三个不同的任务。Light Head R-CNN提出了一个较细的feature map和一个小得多的subnetwork,在准确率和效率上都有了显著的提高。然而,这两阶段方法在训练和推理过程中,必须通过区域建议网络对大量锚点进行过滤,导致计算量大、时间成本高。
同时,其他方法如YOLO和SSD提供了一阶段解决方案,具有效率的优势,但精度较低的缺点。它们都面临样本不平衡的严重问题,这就导致了两个问题:(1)训练效率低下,因为大多数位置都是容易产生消极影响的,没有提供有用的学习信号;(2)整体而言,容易出现的负面影响会淹没训练,导致模型退化。一种常见的解决方案是执行某种形式的硬负挖掘,在训练期间对硬示例进行采样,或者在更复杂的采样/重称重方案中进行采样。最近,RetinaNet在准确性上有了显著的提高。它使用了一种新的焦损失函数,将训练集中在一组稀疏的困难的例子上,并在训练过程中防止了大量容易产生的负面影响压倒检测器。但是样本不平衡的问题仍然是这些方法进一步提高性能的障碍。
综上所述,单阶段方法存在采样不平衡导致的精度不高的局限性,而两阶段方法则存在特征图上采样锚点过多导致效率低下的问题。本文提出了一种新的启发式采样方法,即热锚点,在特征图上生成相对较少但质量较高的锚点,可以在精度和效率上提高目前已知的两阶段算法。
此外,不同于早期选择性搜索方法和边缘盒方法,使用原始图像的低层特征来定位潜在的对象,我们的方法重用深CNN特性作为启发式信息的多尺度特性生成锚地图和可以自然通道网络的端到端集成培训和推理。我们的方法也不同于YOLOv2、YOLOv3和T-CNN使用的锚点采样方法,它们关注的是如何优化锚点的尺度和比例,而我们关注的是如何优化锚点的位置。
Our Method:Hot Anchors
Detection Input Space
在图像目标检测中,图像上的潜在目标对象将构成算法的输入。但这些目标对象可能具有任意大小和比例,而且可能出现在图像的任何位置。这意味着检测算法的输入空间是完全未知的。因此,首先要估计输入空间,生成大量的候选框作为目标对象的估计值。
候选边框经常被称作锚点,可以表示三个参数:位置、规模和比例。Location表示图像上物体ground-truth box的中心坐标,scale和ratio分别表示物体的大小和形状。所有可能的位置值、比例值和比例值的组合通常构成检测输入空间,算法可以从输入空间选择适当的一个。输入空间可以被下面的等式表示:
InputSpace=Anchor(location,scale,ratio)
事实上,scale 和ratio可以是两个连续变量,因此数据的组合可能是无限的,从而导致无限的输入空间。在实际计算中,我们通常将比例和比值作为一些固定的离散值。它们通常被认为是算法的超参数,可以手动设置。例如,比较流行的设置是scale为[128,256,512],ratio为[1/2,1,2]。算法YOLOv2提供了一种数据驱动的方法来分析锚的规模和比例,在训练集上采用k - means聚类边界框自动找到好的先验(锚),然后减少锚的数量从9到5,但仍保持良好的性能。事实上,位置、尺度和比例是相互独立的,它们构成了锚点的三个不同的优化维度,本文仅选取位置进行研究。另外,得到的候选框的总数将是这三个参数的不同值的乘积。在这种情况下,InputSpace的大小(候选框的数量)主要由锚点位置决定。以102410243的图像为例,总位置(像素)的数量可以达到100万,但是目标对象的中心像素只占很小的一部分。
Anchors Sampling
显然,我们必须对原始输入空间进行采样,以减少候选框的数量,从而减少检测算法的搜索空间。考虑到尺度和比例通常被量化为固定值,可以作为超参数处理,我们只需要检查位置参数。因此,我们的分析将主要集中在如何有效地采样图像上的位置,以准确地定位目标对象。
目前已知的两阶段算法都采用一种常用的锚点采样方法:在固定像素区间内扫描一个或多个基于多尺度cnn的特征图,生成不同尺度和比例的锚点。该方法称为均匀采样,最终锚点均匀分布在特征映射平面上。锚点的位置只受feature map形状和固定像素区间的限制。固定的像素间隔,即采样步长,可以帮助控制锚点的密度。由于对于给定的CNN模型,原始图像与其CNN feature maps之间的size ratio是固定值,因此可以将feature maps上采样的锚点与size ratio相乘,转换为原始图像面板。这意味着CNN feature maps上的均匀采样相当于原始图像上的均匀采样。因此,潜在的假设是图像上的每个像素定位目标物体中心的概率是相等的。
均匀锚点是最好的策略吗?与图像中目标对象较少相比,大多数锚点是冗余的、无效的,锚点过多会增加计算负担,影响检测精度。显然,更有效的锚样方法是非常可取的。
在两阶段检测通道的训练过程中,我们需要计算锚点与ground-truth box之间的交并比(intersecover -union, IoU),来判断锚点是否能够与任何ground-truth box很好的匹配。由于锚点比例尺和纵横比被设定为所有锚点位置的固定值,且纵横比被对称设计(如[1/2,1,2]),匹配过程从预先设定的IoU阈值选择两个具有相似比例尺和纵横比的方框开始。在这种情况下,中心距离的减小通常(但不总是)导致IOU的增加。虽然中心距与借据的关系不是严格单调的,但一旦中心距达到最小值(零),无论两个box的scales和ratios如何,IOU都会达到最大值。因此,我们首先尝试对中心距离尽可能小的锚进行取样。锚点位置优化后,锚点的质量只取决于锚点的尺寸和纵横比,这将是另一个独立的优化问题。另一方面,我们通常将一个ground-truth box与多个锚点进行匹配,所以考虑到这些锚点作为一个整体,它们实际上分布在ground-truth box的中心。因此,平均中心距越小,通常意味着锚的分布越密集,进一步提示这些锚的平均IOU越大。因此,基于上述考虑,我们首先利用锚点与ground-truth boxes的中心距离来检验锚点的质量。这是在不受尺度和比例影响的情况下,对锚点定位参数的本质分析。
由于好的锚通常位于ground truth box的邻域,我们需要进一步定义一个距离临界值来判断锚是否合适。这相当于为两个方框定义一个IoU阈值,判断它们是否可以在训练中相互匹配。具体地说,如果ground-truth box与任意锚点之间的中心距离等于或小于距离临界值d0,则定义有效命中;如果ground-truth box与所有锚点之间的中心距离大于距离临界值d0,则无效命中。为简便起见,将ground-truth box表示为gt_box, gt_box_hit表示ground-truth box是否被锚点命中。d为ground-truth box与最近的锚点之间的中心距离,d0为距离临界值。1的结果表示ground-truth box被至少一个锚点击中,0表示ground-truth box没有被任何锚点击中。中心距离是ground-truth box中心和anchor center之间的欧式距离。
例如,距离临界值d0为5,ground-truth box与最近的锚点之间的中心距离为3时,该ground-truth box的gt_box_hit为1;而如果它们的中心距离是6,那么这个ground-truth box的gt_box_hit将为0。第一种情况意味着这个ground-truth box被一个距离为3的锚有效地击中。第二种情况是在阈值d0 = 5的条件下,ground-truth box没有被锚点击中。
对于给定的图像,我们首先将采样覆盖率定义为采样像素个数与总像素个数的比值,然后将目标命中率定义为有效命中目标像素个数与总目标像素个数的比值。目标像素是指图像中ground-truth box的中心像素。这可以用公式(3)和(5)表示,其中一幅图像共有N个ap像素和N个tp目标像素(即N个tp ground-truth boxes)。采样像素个数为Nsp,有效命中像素个数为Nhp。有效命中是指目标像素(ground-truth box的中心)与采样像素(anchor的中心)之间的欧式距离小于距离阈值d0。有效命中像素N hp的个数可以通过将gt_box_hit累加到图像的所有ground-truth box中来计算,如式(4)所示。
如果我们对一幅图像的所有像素进行采样,就可以确定我们可以命中图像上的每个目标像素。这是密度最大的均匀抽样。在这种情况下,采样覆盖率为100%,目标命中率也为100%。这是最简单但不是最优的抽样方法。
最优采样方法是用最小的采样像素达到最大的目标像素。
也就是说,我们必须考虑采样效率,将锚点采样视为一个优化问题,这是目前采用均匀采样的两阶段方法所缺少的。
Hot Anchors and Hot Feature Map
均匀锚点实际上只利用图像的形状信息,而忽略了图像的特征信息。当图像通过卷积神经网络时,会生成多尺度特征图。这些特征图的像素值对于锚点采样也是有价值的信息。图1为ResNet50生成的COCO2014数据集及其多尺度特征图中的图像,我们可以清晰地观察到目标对象的演化过程。显然,像素值对于锚点采样是非常有用的。具体来说,对象通常占据高激活值区域,背景像素通常占据低激活值区域。在此基础上,我们提出了一种启发式采样方法,在特征图上生成锚点,称为热锚点。从颜色编码的温度图中提取的单词Hot表示我们使用的启发式信息是CNN feature maps的像素激活值,这也暗示了激活值高的像素定位目标对象的概率更高。
图1所示。ResNet50[38]生成的多尺度特征映射。(A)为原始输入图像,尺寸为1024×1024×3。(B-F)分别来自多尺度卷积神经网络(CNN) feature map的五个不同阶段,其面板大小分别为512×512、256 ×256、128×128、64×64、32×32。在这个图中,为了方便显示,它们都被调整为相同的大小。
由于CNN生成的feature maps是多尺度的,每个阶段的尺寸不同,因此需要一些预处理步骤。考虑到锚点采样的计算成本较低,预处理方法不能过于复杂。假设feature map size被捐赠为[batch, channel, height, width],我们直接沿着feature map的channel轴对feature map求和,生成一个新的feature map,称为hot feature map。Hot是指我们希望该feature map能够忠实地反映feature空间中的高激活区域,从而能够对Hot anchor进行采样。Hot feature map与原始feature map具有相同的高度和宽度,但其通道尺寸为1,因此其大小可以捐赠为[batch,1, height, width]。batch是每次计算CNN时输入图像的数量。我们可以计算多尺度CNN feature maps每个阶段的hot feature map,最终得到多尺度的hot feature maps。
我们还需要一个阈值来判断hot feature map上的哪个像素应该被选择为锚点位置。由于每个图像的热特征映射是不同的,所以我们使用热特征映射的平均像素值作为阈值,对每个图像进行自适应判断。如果一个像素的值大于阈值,它将被视为一个积极的热锚。但这可能导致不同图像上的热锚数量不同,为了保证不同图像上的热锚数量相同,便于程序处理,我们将平均像素值乘以系数k作为最终阈值。k可以初始化为1。如果热锚的数量小于预设值,将k乘以0.8,尝试重新采样,直到锚的数量足够。相反,如果热锚的数量大于预先设定的值,则随机剔除冗余的锚点。这可以表示为下列方程(6)和(7), hot feature map 是捐赠HFM,原特征图像的channel被捐赠为C、hot feature map的平均像素值捐赠是M像素,在HFM代表像素坐标(x, y)。
如果我们只想在CNN的多尺度feature maps上对锚点进行采样,我们可以从中选择中间的stage。一方面,the top stage太抽象,往往有一个非常小的尺寸,所以小的对象可能会被忽略,像素总数也可能太少,采样足够的锚。另一方面,bottom stage不够抽象,可能有太多的背景细节。中间阶段通常在图像细节信息和对象语义信息之间进行折衷,是一个不错的选择。然而,这只是一个一般的指导原则,实际情况应该根据用于特征提取的骨干网来确定。例如,如果我们使用ResNet50或ResNet101作为骨干网,总共会有6个阶段,可以将stage-3或stage-4视为中间阶段。
如果需要对CNN feature maps的几个阶段进行采样,我们可以对每个阶段分别执行相同的采样操作,然后将多尺度的结果整合在一起作为最终的采样结果。对于FPN[34]等一些特征融合体系结构,可以基于融合后的金字塔特征图创建 hot feature maps 。综上所述,hot feature maps可以在任何形式的多尺度CNN feature maps上创建。
Hit Distance Histogram
在锚点采样操作中,每个采样像素对应多对尺度和比例。换句话说,每个采样像素都有几个绑定到它的框。因此,每个ground-truth box都会有几个最近的锚点,这意味着ground-truth box与这些锚点之间的中心距离是所有锚点中最小的。因为sacles和ratios对于所有的锚来说都是相同的固定值,所以这些相邻的锚通常包含带有ground-truth box的最大IoU的锚。有最大IOU的相邻锚点为ground-truth box的最佳匹配锚点,其中心距离(捐赠为dhit)可称为ground-truth box的hit distance。这意味着这个ground-truth box会被锚点在dhit的距离处击中。每个ground-truth box都有其最匹配的锚点,相应地,它的hit distance dhit。
显然,图像上所有ground-truth boxes的命中距离将不相同,它们在一个区间内分布。原则上,我们希望所有这些命中距离都尽可能的小,这样每一个ground-truth box就可以得到一个更高质量的最佳匹配锚。因此,为了更全面地研究锚点采样质量,我们进一步研究了数据集中所有ground-truth boxes的命中距离分布形状。
当我们遍历数据集中的所有图像时,我们可以对每个图像上的锚点进行采样,并计算出这些图像上的所有ground-truth box的最佳匹配锚点,然后计算出它们对应的hit distance。最后,我们可以计算出数据集中所有ground-truth box的hit distance的分布直方图,即hit distance直方图
图2显示了COCO2014数据集迷你验证集计算的命中距离直方图,其中包含约4952幅图像和约36800个ground-truth box。命中距离直方图的水平x轴是距离容器,从0开始。垂直的y轴是落在每个距离容器中的ground-truth box的标准化数量比。当图像和ground-truth box的数量非常大时,y轴的数量比可以认为是目标命中概率,它反映了一个ground-truth box在任意距离被任意锚点命中的概率。
Experiments and Analysis
我们采用三种锚定采样方法进行对比实验。首先对目标命中率进行分析,检验我们的方法是否有效。然后通过比较锚点的命中距离直方图,对锚点的质量进行更全面的调查。最后,我们将把我们的方法结合到目前的两阶段目标检测算法中,来检验它是否能够提高它们的性能。
第一种方法是均匀锚点,所有锚点在原始图像上以固定的采样步长均匀采样。采样步长有助于调整锚点密度,采样步长越大对应的锚点越少。在目前使用的许多检测算法中,统一的锚点通常先在CNN feature maps上采样,然后归一化转换为图像域。因此,我们直接在原始图像上使用不同步幅的均匀采样来模拟特征图上的均匀采样。它们本质上是等价的。
第二种方法称为边缘锚点,是一种对原始图像进行启发式采样的方法。该方法直接利用原始图像的canny边缘作为启发式信息对锚点进行采样。其基本原理是,任何对象都必须有其边缘,因此直接对包含对象边缘的像素上的锚点进行采样是很自然的。首先计算图像的canny边缘,得到与原图像具有相同高度和宽度的二值边缘图像。然后在二值边缘图像上随机抽取一定数量的非零像素作为最终锚点。
第三种方法是我们提出的hot anchor,它利用原始图像的CNN特征作为启发式信息来指导采样操作。
Hit Rate Analysis
我们以COCO2014[15]数据集为基准,其训练集共包含约110k (1 k = 1000)图像和约860k ground-truth boxes,足够进行深度分析。我们将原始图像的大小调整为1024×1024×3,并保持图像内容区域的形状不变,所以像素总数为1024×1024,我们将从这些像素中采样锚点。在原始图像上以固定的像素间隔对均匀锚点进行采样,在原始图像精细边缘图像上对边缘锚点进行采样,在预处理卷积网络(ConvNet)生成的多尺度特征图上对热锚点进行采样。我们采用的ConvNet骨干是ResNet101[38],其feature map有五个阶段,对应的步幅为[2,4,8,16,32]。因此,每个阶段feature map的平面大小为[512 ×512,256 ×256,128× 128,64× 64,32×32]。
我们将遍历COCO2014训练集中的所有图像,通过公式(5)计算出所有图像的平均命中率。我们逐渐增加采样像素的数量,所以采样覆盖率也会逐渐增加。在此过程中,我们可以考察不同采样方法的平均命中率的变化趋势。此外,距离阈值d0将影响式(2)中gt_box_hit的计算,从而影响式(5)中目标命中率的结果,因此我们将距离阈值d0分别设为5和10进行实验。图3和图4显示了实验结果。
在图3和图4中,红色曲线代表热锚,蓝色曲线代表边缘锚,绿色曲线代表均匀锚。在图3中,当采样像素从1000个增加到10万个时,采样覆盖率从近0.10%增加到近10.00%,COCO2014-training-set的平均命中率也从近20%逐渐增加到近100%。在图4中,当采样像素个数从2000增加到20000时,采样覆盖率从近0.20%增加到近2.00%,COCO2014-training-set的平均命中率也从近40%和60%逐渐增加到近100%。对比图3和图4,我们可以看到,在相同的目标命中率下,命中距离阈值d0越大,采样覆盖率越小。
从上面两个图中,我们可以得到如下结果。首先,三种采样方法的目标命中率随着采样覆盖率的增加而逐渐提高,因此采样覆盖率是影响目标命中率的最关键因素。
其次,我们可以看到绿色曲线在开始阶段反映的命中率相对较低,而蓝色和红色曲线反映的命中率相对较高。这意味着在抽样覆盖率相对较低的情况下,启发式抽样确实比均匀抽样有很大的优势。这些启发式信息,包括原始图像上的精细的边缘和CNN feature maps上的激活值,确实有助于对更接近目标物体的像素进行采样。也就是说,启发式信息越多的像素定位目标对象的概率越大,说明启发式信息的有效性。
再次,当覆盖率提高到临界值时,均匀锚点(绿色曲线)优于边缘锚点(蓝色曲线)。这反映了启发式抽样方法的缺点。因为不同物体的边缘是不一样的,大的物体通常比小的物体有更多的边缘。换句话说,不同物体所包含的启发式信息是不相等的,它们在图像上的分布通常是不平衡的。因此,如果边缘过度累积在一些较大的物体上,采样像素也会累积在这些物体上,因此是区域不平衡的。特别是当图像中同时包含多个大对象和小对象时,小对象的启发式信息较少,在采样像素有限的情况下可能会被被动忽略。而均匀锚点则没有这个问题,它们在图像上的分布是完全区域均衡的。随着采样像素的逐渐增加,均匀锚点的采样步幅会越来越小,同时锚点的密度也会越来越大。最后,随着采样覆盖率的增加,均匀锚相对于边缘锚的优势逐渐显现。
第四,热锚方法具有均匀采样和启发式采样的优点。考虑到ConvNet的池化操作,池化操作中大小固定的滑动窗口可以等效于原始图像上的均匀网格,池化的feature map中的每个像素都来自这些均匀网格。换句话说,如果我们将feature map上的像素转换成原始图像,激活值就会分布在原始图像上的这些均匀网格中。因此,基于激活值的启发式采样实际上是由这些均匀网格控制的。这些均匀网格可以看作是均匀采样的另一种形式,有助于抑制启发式采样的区域不平衡。因此,热锚法实际上是一种由均匀网格控制的启发式抽样,是一种混合方法,具有两种方法的功能优势。由此可见,热锚的曲线总是最好的。
总的来说,均匀抽样和启发式抽样各有优缺点。前者可以抑制区域不平衡,但忽略有用的图像特征信息;后者利用图像特征信息,但启发式信息分布不均衡,可能导致忽略启发式信息较少的小目标。hot anchors 充分利用了CNN feature maps的特点,在这两个方面提供了很好的折中,使得其性能比统一的启发式采样方法要好得多。
结果(图3和图4)显示,在整个采样覆盖率的测试范围内,边缘锚点的性能都不如热锚点,只有在采样覆盖率非常小的情况下,边缘锚点的性能才优于均匀锚点。因此,与其他两种方法相比,边缘锚定方法明显存在不足。为了进一步简化后续实验的分析,我们将重点对热锚与均匀锚进行对比。
Hit Distance Histogram Analysis
在本实验中,我们分析了性能较好的均匀锚点和热锚点两种采样方法命中距离直方图的分布特征。我们将采样像素的个数分别设置为5k, 10k, 30k, 50k来计算距离直方图。我们仍然使用COCO2014培训集作为基准。
从图5中可以看出,在采样像素数相同的情况下,均匀锚点分布范围更广,平均距离值更大,而热锚点分布范围相对较小,平均命中距离相对较小。另外,随着采样像素的增加,两种方法的直方图都逐渐向左移动,更接近y轴。这些结果说明,采样像素的数量是决定锚点质量的关键因素,但重要的是,在相同采样像素的情况下,热锚点总是表现出更好的效果,显示出更高的采样效率。
命中距离直方图的计算覆盖了COCO2014训练集中约110k图像中包含的860k ground-truth box的全部内容。从如此大的数据集中获得的结果为不同方法下锚点的质量提供了全面的图像。ground-truth boxes及其对应的将构成学习样本,进行监督学习过程,学习目标是将这些估计出来的anchor回归到对应的ground-truth boxes中。因此可以想象,如果锚点与对应的ground-truth box的重叠区域更大,回归学习将会更加容易和准确。在比例比例固定的情况下,位置是调整ground-truth boxes和anchor之间重叠区域的唯一参数,好的anchor 采样方法是让所有的anchor尽可能的靠近它们对应的ground-truth boxes。基于此考虑,命中距离直方图在y轴上的分布越接近,锚点与其对应的ground-truth box之间的偏差就越小,因此在网络训练和推理中锚点的回归就越容易。从图5可以看出,热锚点命中距离直方图明显优于目前使用的均匀锚点,为两阶段检测算法提供了更好的选择。
Recall-to-IOU Analysis
如式(1)所示,规模和比例也是影响锚点性能的关键因素,因此有必要利用这两个参数对热锚的最终性能进行分析。通常将scale和ratio手动设置为hyper参数,我们分别将scale设置为[512,256,128]和ratio设置为[1/2,1,2]。在此设置下,每个采样点的锚点个数为9。
在两阶段方法中,首先对锚点进行rpn(region proposal network[7])处理生成建议,然后利用这些建议从feature map中裁剪roi,最后将这些roi用于对象分类和定位。所以锚点的质量会影响建议书的质量,进而影响roi的质量,最终影响检测性能。通常,我们使用union上的交集(IoU)来度量两个框之间的重叠区域,而ground-truth box的IoU值越高,表示锚点或提案的质量越好。换句话说,对于锚点和提案,我们都希望它们能够完美的覆盖图像上由目标对象构成的输入空间。这种覆盖能力可以通过召回anchors或召回提案来衡量。给定一个IoU阈值,锚点的收回或提案的收回可以通过符合条件的锚点数量(由IoU判断)与图像上ground-truth box总数的比值来计算。通过遍历数据集中的所有图像,我们可以计算出具有不同IoU阈值的回忆曲线。我们使用包含约5000张图片的COCO2014 minival set进行实验,结果如图6和图7所示。
从以上两张图可以看出,随着IOU从0.5增加到1,无论是均匀型锚还是热锚,召回的数量都迅速从0.7减少到0。在相同的IoU阈值下,当锚的数量增加时,两种方法的性能交替优于其他两种方法,说明锚的数量始终是召回锚的关键因素,因此是决定锚质量的关键因素。但在相同的IoU阈值和相同的锚数目下,热锚的召回值始终高于均匀锚。
图7反映了COCO2014数据集上训练过的fast - rcnn模型中rpn生成的候选区的质量,其中使用了两种anchors采样方法。图中显示了300个、1000个和2000个候选区的结果。根据这些方法产生的置信度,N个建议是排名前N的。从图中可以看出,在IoU阈值相同、候选区数量相同的情况下,热锚计算的提案召回率比均匀锚计算的提案召回率相对较高。但是随着提案数量的增加,这两种方法的表现会更好,说明提案数量对它们的质量非常重要。总的来说,从图6和图7可以看出,对于rpn来说,热锚是产生相对高质量提案的更好选择。
Detection Algorithms Analysis
最后,我们将热锚采样方法应用于两种典型的两阶段算法来测试其性能,即速度更快的RCNN[7]和光头RCNN[10]。在以上分析中,我们采用CNN feature maps的激活值作为启发式信息,判断哪一个像素在图像上定位目标物体的概率更大。基于这些像素的锚点会形成正样本,同时我们需要选择负样本。
负样本引用图像的背景区域,这些区域不包含有效的对象实例。由于ConvNets 特征提取本质上起到了抑制图像背景信息、增强前景对象信息的作用,因此feature map上的对象语义信息在网络的更深层次上会更加明显。这也意味着背景区域的激活值将低于前景区域。因此,我们可以再次使用激活值作为启发式信息来定位属于背景区域的像素。与我们对正向锚点所做的类似,我们将设置另一个阈值来选择激活值较低的像素作为负向锚点。该阈值的计算方法是将另一个系数k乘以热特征图的平均激活值。如果一个像素的激活值小于阈值,它将被视为一个负锚点位置。在接下来的实验中,我们将k0初始化为0.4。因此,通过该方法,可以分别通过较高的正阈值和较低的负阈值同时获得正锚和负锚的位置。然后,我们可以在这些位置上生成不同比例的锚。由于每个像素位置上有多个锚点,我们需要进一步应用交并比(IoU)来过滤锚点。具体来说,如果IoU大于0.7,则锚点为正锚点,如果IoU小于0.5,则锚点为负锚点。
在这些实验中,我们将每个图像上的锚点数量限制为几个固定值(5k、20k、50k),然后比较它们在基准数据集上的性能。我们改变锚的数量只是通过调整位置的数量,但保持规模和比例是固定的。对于Faster-RCNN,我们将锚定标度设为[128,256,512],锚定比设为[1/2,1,2]。对于Light Head RCNN,我们将锚定标度设为[32,64,128,256,512],锚定比设为[1/2,1,2]。对于两者,在将rpn (region proposal network[7])生成的提案输入到roi预测子网之前,我们需要使用非最大抑制(non-maximum suppression, NMS)来过滤一些过度重叠的提案,因此我们将NMS的交并比(intersecation -over-union, IoU)阈值设为0.7。
这些实验是进行COCO2014[15]数据集,拥有80对象类别,80 k图像训练集,和40 k图像验证集。40 k图像验证集将被进一步分成35 k val-minusmini组和5 k mini-validation集。一般设置后,我们将训练集和val-minusmini集获取115 k图像用于培训和5 k mini-validation图像进行验证。优化器是同步SGD(随机梯度下降),其力矩为0.09,权值衰减为0.0002。对于Faster RCNN,先将学习率初始化为0.001,然后每5个迭代衰减0.1(一个迭代覆盖所有115,000个训练图像)。对于Light Head RCNN,前1.5 M迭代的学习率设置为0.01,后1 M迭代的学习率设置为0.001(一次迭代覆盖一批数据)。实验在4个NVIDIA GTX1080Ti GPU, CUDA 8.0, cuDNN v6的平台上进行,每个微批处理每个GPU有2张图像。图8和图9显示了一些检测结果。
图8。Light Head RCNN与使用 Hot Anchors Light Head RCNN检测结果的比较。(A C)为Light Head RCNN(简称L.H. RCNN)检测结果,(D F)为Hot Anchors Light Head RCNN检测结果。由class label和classification score标记的绿色方框为检测结果,红色方框为ground-truth方框。所有的图片都来自coco2014 - minivalo -set,为了方便显示,所有图片都经过了调整。
实验结果如表1和表2所示,括号中带正号的数字为相同采样像素数下两种方法的差值。特征金字塔是指FPN[34]架构。mAP[15]表示平均精度,f ps表示帧/秒。我们可以看到,当锚的数量相对较小时,热锚的性能要好得多。这也可以从图3和图4中看出,其中热锚的命中率要高得多,最匹配的锚与ground-truth box之间的距离要短得多,因此可以方便后期的锚回归过程。与均匀锚相比,锚越少,热锚在定位潜在目标物方面的优势就越明显。当锚点数量足够大时,准确率差距(5.3,4.1,3.0 for Faster RCNN;3.9, 2.6, 0.9 for Light Head RCNN)这两种方法之间会变得非常小。这是因为现在的采样覆盖率大到足以导致锚点密度非常大,因此启发式信息的作用相对减弱。因此,在只能产生少量锚的情况下,热锚的优势将是最有价值的。
此外,热锚也提高了推理速度。因为我们可以在网络训练阶段和热主播推理阶段使用两种不同的策略。在训练阶段,热锚同时包含正锚和负锚,而在推理阶段,热锚只包含正锚。利用CNN feature uremaps的激活值,我们可以对像素进行预判断,只选择激活值高的像素,在网络推理阶段生成锚点,用于后续计算。其他激活值相对较低的锚点均不参与推理计算,大大减轻了计算负担。由于这些低激活锚的数量实际上是非常大的,这种减少是相当显著的。这与均匀采样法相比是一个重要的不同,均匀采样法对每个像素上的锚点都一视同仁,同等重要,并将其全部传递给后续的推理计算。综上所述,与均匀采样相比,启发式采样充分利用图像特征信息,减少了无效采样,从而降低了检测过程后续操作的计算负担。
Conclusions
本文提出了一种新的有效的检测算法特征图上生成候选框的采样方法——热锚。该方法利用CNN feature maps的激活值作为启发式信息,对具有较高定位目标对象概率的像素进行采样。这与目前主流的方法不同,目前的方法只使用图像大小信息对图像面板进行均匀采样。在COCO基准测试上的实验表明,该方法在推理精度和推理效率上都具有优势。我们的方法可以应用于广泛使用的两阶段法来提高其性能。由于候选框在一些单阶段算法中也有使用,我们希望热锚方法在未来也能对这些算法有所帮助。