我们提出了FoveaBox,一个精确、灵活和完全无锚的目标检测框架。尽管几乎所有最先进的目标检测器都利用预定义的锚来列举用于目标搜索的可能位置、比例和纵横比,但是它们的性能和泛化能力也受限于锚的设计。相反,FoveaBox直接学习目标存在的可能性和边界框坐标,而不需要锚点引用。这是通过以下方式实现的:(a)预测目标存在可能性的类别敏感语义图,以及(b)为可能包含目标的每个位置生成类别不可知的边界框。目标框的比例自然与每个输入图像的特征金字塔表示相关联。在标准COCO检测基准上,FoveaBox没有花哨的功能,实现了42.1 AP的最先进的单模型性能。特别是对于任意纵横比的物体,FoveaBox与基于锚的探测器相比带来了显著的改进。更令人惊讶的是,当遇到测试图像缩放变换的挑战时,FoveaBox对边界框形状的变化分布表现出很强的鲁棒性和泛化能力。
目标检测需要解决两个主要任务:识别和定位。给定任意图像,目标检测系统需要确定是否存在来自预定义类别的语义目标的任何实例,如果存在,则返回空间位置和内容。为了给通用目标检测系统增加定位功能,多年来滑动窗口方法一直是首选方法。
然而,使用锚盒或(候选框)有一些缺点。首先,定位框引入了设计选择的额外超参数。设计锚框最重要的因素之一是它覆盖目标位置空间的密度。为了获得良好的召回率,锚是根据训练/验证集计算的统计数据精心设计的。其次,基于特定数据集的一种设计选择并不总是适用于其他应用,这损害了通用性。例如,锚通常是正方形的,用于面部检测。而行人检测需要更高的锚。第三,由于在一幅图像上有一大组规则采样的候选目标位置,密集目标检测器通常依赖于有效的技术来处理前景-背景类别不平衡的挑战。
改进锚点生成过程的一个选择是使其更加灵活。最近,有一些成功的工作试图提高锚框的容量。在meta-anchor中,锚函数是从任意定制的先前框中动态生成的。guided-anchor定方法联合预测物体中心可能存在的位置,以及不同位置的比例和纵横比。在[49]中,作者还建议动态学习锚的形状。然而,这些工作仍然依赖于枚举可能的比例和长宽比来优化模型。在meta-anchor中,锚函数的输入是具有不同纵横比和比例的规则采样锚。在引导锚定中,作者假设每个锚的中心是固定的,并对多对$(w,h)$进行采样,以近似以相应位置为中心的最佳形状。
相比之下,人类视觉系统可以识别空间中实例的位置,并在给定视觉皮层图的情况下预测边界,而无需任何预定义的形状模板。换句话说,我们人类不需要枚举候选框就能自然地识别视觉场景中的目标。受此启发,一个直观的问题是,锚框方案是指导搜索目标的最佳方式吗?如果答案是否定的,我们能否设计出一个不依赖锚点或候选框的精确的目标检测框架?如果没有候选定位框,可能需要复杂的方法来获得类似的结果。然而,我们表明,一个令人惊讶的简单和灵活的系统可以匹配现有技术水平的目标检测性能,而不需要候选框。为此,我们提出了FoveaBox,一个完全无锚的目标检测框架。FoveaBox是由人眼的中央凹激发的:视野(物体)的中心是视敏度最高的。FoveaBox联合预测目标中心区域可能存在的位置以及每个有效位置的边界框。得益于特征金字塔表示法[27],可以从多级特征中自然地检测出不同比例的物体。为了证明所提出的检测方案的有效性,我们结合特征金字塔网络的最新进展和我们的检测头来形成FoveaBox的框架。没有花哨的功能,FoveaBox可以在CO目标检测任务中获得最先进的单模型结果[29]。我们最好的单一模型,基于ResNeXt-101-FPN主干,达到了42.1的COCOtest-devAP,超过了大多数以前发布的基于锚点的单一模型结果。
由于FoveaBox在训练阶段和推理阶段都不依赖于默认锚点,因此它对边界框分布更加稳健。为了验证这一点,我们手动拉长图像以及验证集的注释,并将FoveaBox的鲁棒性与以前基于锚点的模型进行比较[28]。在这种设置下,FoveaBox比基于锚点的方法要好得多。我们相信简单的训练/推理方式,加上灵活性和准确性,将有利于未来的目标检测和相关课题的研究。
在深度CNN成功之前,广泛使用的检测系统都是基于独立分量的组合(HOG、SIFT等))DPM及其变体有助于将物体检测器扩展到更一般的物体类别,并多年来取得了领先的结果。滑动窗口方法是经典对象检测框架中搜索感兴趣目标的主要检测范例。
现代物体检测器通常分为两类:两级建议驱动检测器和一级无建议方法。对于两级检测器,第一级生成一组稀疏的物体建议,第二级对建议进行分类,并用滑动窗口的方式细化坐标。这种流程首先通过R-CNN证明了其有效性,并被广泛用于后来的两阶段方法。在Fast R-CNN中,第一阶段(RPN)使用轻量级网络同时预测每个预定义滑动窗口锚点处的目标边界和对象分数。为了提高检测器的性能,已经进行了一些尝试,包括特征金字塔、多尺度和目标关系等。与两阶段方法相比,一阶段流程跳过目标建议生成,并在一次评估中预测边界框和类分数。大多数顶级一级检测器依靠锚框来列举目标物体的可能位置(例如SSD、DSSD、YOLOv2/v3和RetinaNet)。在CornerNet中,作者提出将目标边界框检测为一对关键点。CornerNet采用关联嵌入技术来分离不同的实例。一些先前的作品与我们的作品有相似之处,我们将在第5章中更详细地讨论它们。
FoveaBox是一个单一的统一网络,由一个主干网络和两个特定任务的子网组成。主干负责计算整个输入图像的卷积特征图,是现成的卷积网络。第一个子网对主干的输出执行每像素分类;第二子网对相应的位置执行边界框预测。虽然这些组件的细节有许多可能的选择,但为了简单和公平的比较,我们采用了RetinaNet的设计。
我们采用特征金字塔网络(FPN) 作为后续检测的骨干网络。总的来说,FPN使用具有横向连接的自上而下的体系结构,从单个尺度的输入构建网络内特征金字塔。金字塔的每一层都可以用来探测不同比例的物体。我们构造了一个金字塔层次。其中指的是金字塔层次。是输入分辨率的。所有金字塔通道都有256个通道。
虽然我们的目标是预测目标对象的边界,但直接预测这些数字是不稳定的,因为目标的大尺度变化。 相反,我们将目标的比例分成几个框,根据特征金字塔级别的数量。 每个金字塔的基本面积分别在到级的到之间。 对于层,基本面积是由:
类似于基于ResNet的Faster R-CNN系统,使用C4作为单尺度特征地图,我们将设为16。 在FoveaBox中,每个特征金字塔学会对特定规模的对象作出反应。 金字塔第级目标盒的有效比例范围计算为:
在这里,是根据经验设定的,以控制每个金字塔的尺度范围。训练时忽略不属于相应尺度范围的目标物体。注意,一个目标可以被多个网络金字塔检测到,这与以前的实践不同,即目标只映射到一个特征金字塔。
每个金字塔热图输出集有K个通道,其中K为类别的数量,大小为H × W(图4)。每个通道是一个二进制掩模,表示一个类别的可能性。给定一个有效的ground-truth box,表示为。我们首先将盒子映射到目标特征金字塔,步幅为:
阳性区域(中央凹)的评分图上的四边形被设计成大致缩小的原始版本(见图3):
其中为收缩因子。阳性区域内的每个单元标有相应的训练目标类标签。对于负样本的定义,我们引入另一个收缩因子,利用Eq.(4)生成。负区域是除中的区域外的整个feature map。如果一个单元格未被分配,它将在训练期间被忽略。正区域通常只占整个feature map的一小部分,所以我们使用Focal Loss[28]来训练该分支的目标。
对象中心凹只编码目标对象存在的可能性。为了确定位置,模型必须预测每个潜在实例的边界框。每个ground-truth的边界框以。我们的目标是学习映射网络本地化输出在单元格特征映射到ground-truth box G:
其中为归一化因子,将输出空间投影到以1为中心的空间,使目标学习更容易、更稳定。这个函数首先映射坐标,然后计算投影坐标与g之间的归一化偏移量,最后利用对数空间函数对目标进行正则化处理。为了简单起见,我们采用广泛使用的平滑损失来训练箱体预测。优化目标后,我们可以为每个阳性细胞在输出特性映射上。我们注意到,在现代深度学习框架中,可以通过元素层次轻松实现Eq.(5)和逆变换。
FoveaBox采用随机梯度下降(SGD)训练。我们在4个GPU上使用同步SGD,每个小批总共8个图像(每个GPU 2个图像)。除非另有规定,所有模型都以初始学习率0.005进行270k次迭代训练,然后在180k次迭代时除以10,在240k次迭代时再除以10。重量衰减为0.0001,动量为0.9。除了标准的水平翻转图像,我们还利用随机宽高比抖动来减少过拟合。我们设,定义,。内的每个cell都被标注上相应的位置目标,用于边界框训练。
在推断过程中,我们首先使用0.05的置信阈值来过滤出低置信的预测。然后,我们从每个预测层中选择前1000个评分框。接下来,对每个类分别应用阈值为0.5的非最大抑制(non-maximum suppression, NMS)。最后,为每张图片选择得分前100的预测。此推理设置与Detectron基线中的推理设置完全相同。虽然有更智能的方法来执行后处理,如bbox投票,SoftNMS或测试时间图像增强,为了保持简单性和与基线模型进行公平比较,我们在这里不使用这些技巧。
我们给出了具有挑战性的COCO基准[29]的包围盒检测轨迹的实验结果。对于训练,我们遵循常见的实践并使用COCO trainval35k分割(来自train的80k图像和来自40k image val分割的随机35k图像子集的联合)。我们通过评估微小分裂(val的剩余5k图像)报道了病变和敏感性研究。对于我们的主要结果,我们在测试-开发分离上报告COCO AP,它没有公共标签,并且需要使用评估服务器。
FoveaBox和不同的anchor密度:在基于锚点的检测系统中,最重要的设计因素之一是它如何密集地覆盖可能的图像盒空间。由于基于锚点的探测器使用固定的采样网格,在这些方法中实现盒子高覆盖率的一种流行方法是在每个空间位置使用多个锚点[27][28]来覆盖不同比例和宽高比的盒子。我们可以期望,当我们把更紧密的锚固定在每个位置时,我们总是能得到更好的性能。为了验证这一假设,我们扫描了在每个空间位置和每个金字塔层上使用的尺度和宽高比锚的数量,包括每个位置上的一个方形锚到每个位置上的12个锚(表1(a))。超过6-9个锚点并不显示进一步的收益。饱和的性能w.r.t.密度意味着手工制作,超密度锚不提供优势。
过密度锚点不仅增加了前景背景优化的难度,而且容易造成位置定义不明确的问题。对于每个输出空间位置,都有一个锚,其标签由具有ground-truth的IoU定义。其中,一些锚点被定义为阳性样本,而另一些则被定义为阴性样本。然而,它们共享相同的输入特性。分类器不仅需要区分不同位置的样本,还需要在同一位置上区分不同的锚点。
相比之下,FoveaBox明确地预测每个位置上的一个目标,其性能并不比最好的基于锚的模型差。目标的标签是由是否在对象的边界框中定义的。与基于锚点的方案相比,FoveaBox有几个优点。(a)由于我们在每个位置只预测一个目标,所以锚点法的输出空间减少为1= a,其中a为每个位置的锚点数。由于前景-背景分类的挑战已经减轻,求解器更容易优化模型。(b)不存在模糊问题,优化目标比较直接。(c) FoveaBox更灵活,因为我们不需要广泛地设计锚点来看到一个相对更好的选择。
尺度分配的分析:
Eq.(2)中,η控制每个金字塔的标度分配范围。当时,将目标尺度划分为不重叠的箱子,每个箱子由相应的特征金字塔预测。随着η的增加,每个金字塔将对更多尺度的物体作出反应。表2显示了η对最终检测性能的影响。我们将所有其他实验设为η = 2。
FoveaBox比框分布更加鲁棒:
与传统的预定义锚点策略不同,FoveaBox的主要优点之一是对边界框的鲁棒预测。为了验证这一点,我们进行了两个实验来比较不同方法的定位性能。在第一个实验中,我们根据ground-truth aspect ratio ,其中N是数据集中的实例号。我们比较了不同宽高比阈值下的FoveaBox和RetinaNet。
见表1(b)。在这里,∗的意思是用高宽比抖动训练模型。我们可以看到,当u值较低时,两种方法都获得了最好的性能。虽然随着u的增加,FoveaBox的性能也会下降,但它比锚基视网膜网络要好得多。
为了进一步验证不同方法对边界框的鲁棒性,我们手动拉伸了图像和验证集中的标注,并检测了不同检测器的行为。图5为不同h/w拉伸阈值下的定位性能。在h/w = 1的评价标准下,两种检测器的性能差距相对较小。当我们增加拉伸阈值时,间隙开始增大。具体来说,当将h=w拉伸3倍时,FoveaBox得到21.3 AP,比retinaet高3.7点。基于锚点的方法依赖于锚点参考的框回归来生成最终的边界框。在实践中,回归因子被训练为正锚,这将损害预测更多任意形状的目标时的一般性。在FoveaBox中,每个预测位置与特定的参考形状无关,它直接预测目标ground-truth box。由于FoveaBox允许任意长宽比,因此它能够更好地捕捉那些超高或超高的物体。见图6中的一些定性例子。
每类的差别:
图2显示了FoveaBox和RetinaNet的每类AP差异。两者均采用ResNet-50-FPN骨干,800输入规模。纵轴为。FoveaBox显示了大多数类的改进,特别是对于边界框可能更加任意的类。对于牙刷,叉子,运动球,滑雪板,领带和火车类,AP改进大于5分。
产生高质量的区域建议:
将分类目标更改为类不可知的头是直接的,并且可以产生区域建议。我们将建议性能与区域建议网络(RPN)[40]进行比较,并在COCO最小集上评估不同建议个数下的平均召回率(AR),如表1(c)所示。令人惊讶的是,在所有标准中,我们的方法在很大程度上优于RPN基线。具体来说,在排名前100的地区提案中,FoveaBox得到了53.0 AR,比RPN高出8.5分。这验证了我们的模型在生成高质量区域建议方面的能力。
模型深度和尺度:
表3显示了FoveaBox利用不同的骨干网络和输入分辨率。推理设置与RetinaNet完全相同,速度也与相应的基线相当。如表3所示,FoveaBox在视网膜网络基线上持续改进了1到2个点。在分析小、中、大目标尺度上的性能时,我们发现这些改进来自于对象的各个尺度。
我们将FoveaBox与表4中最先进的目标检测方法进行了比较。我们模型的所有实例化都优于先前最先进模型的基线变量。表4中第一组检测器为两级检测器,第二组为一级检测器,最后一组为FoveaBox检测器。在所有评估指标下,FoveaBox优于ResNet-101主干网下的所有单级检测器。这包括最近的单阶段角网[26]。FoveaBox还优于大多数两级检测器,包括FPN[27]和Mask R-CNN[14]。两级检测器依赖于区域子网络来进一步分类稀疏区域建议。Cascade RCNN将两阶段方案扩展为多级方案,进一步细化区域。由于FoveaBox也可以通过将模型头改为类不可知方案来生成区域提案(表1(c)),我们认为它可以进一步提高两级检测器的性能,这超出了本文的重点。
在结题之前,我们研究了FoveaBox与之前的一些作品之间的一些关系和区别。
文本检测的分数Mask:
分数掩码技术已经广泛应用于文本检测领域。此类工作通常利用完全卷积网络[32]来预测目标场景文本和四边形的存在。与场景文本检测相比,通用目标检测面临更多的遮挡、多类分类和尺度问题,具有更大的挑战性。单纯地将文本检测方法应用到通用目标检测中,检测效果较差。
Guided-Anchoring:
它联合预测了感兴趣对象的中心可能存在的位置,以及以相应位置为中心的比例和宽高比。如果(x,y)不在目标中心,则被检测的方框将不是最佳方框。GuidedAnchoring依靠中心点给出最佳预测。相比之下,FoveaBox对每个前景位置的目标(左、上、右、下)边界进行预测,这更健壮。
FSAF:
这是与FoveaBox合作的当代作品。它还试图直接预测目标对象的边界框。FoveaBox与FSAF的区别是:(a) FSAF依赖在线特征选择模块为每个实例和锚点选择合适的特征。而在FoveaBox中,特定规模的实例同时通过公式(2)确定的相邻金字塔进行优化,更加简单和鲁棒。(b)对于box boundary的优化,FSAF利用IoU- loss[47]来最大化预测box与groundtruth之间的IoU。而在FoveaBox中,我们使用Smooth L1损耗直接预测四个边界,更简单直接。(c)与FSAF相比,FoveaBox的性能明显提高,如表5所示。
CornerNet:
CornerNet提出通过左上角和右下角的关键点对来检测目标。街角网的关键步骤是识别哪些关键点属于同一个实例,并正确地将它们分组。相反,实例类和边界框在FoveaBox中是关联在一起的。我们直接预测盒子和类,而不需要任何分组方案来分离不同的实例。
我们提出了用于通用目标检测的FoveaBox。通过同时预测目标的位置和相应的边界,FoveaBox为没有先验候选框的目标检测提供了一个干净的解决方案。我们在标准基准上证明了它的有效性,并报告了大量的实验分析。