对象检测的问题定义是确定对象在图像中的位置以及每个对象所属的类别。上面的定义给出了如何解决这个问题的线索:通过从图像(它们在哪里)生成对象提案,然后将每个提案分类成不同的对象类别(它属于哪个类别)。这个两步解决方案在某种程度上与人们看到事物的注意机制相匹配,首先给出整体场景的粗略扫描,然后重点关注我们感兴趣的区域。
事实上,上述直观的解决方案是研究界多年来一直在向前发展的方向。近来,通过计算机视觉的两个进步,两个步骤(提案生成和对象分类)都得到了令人满意的解决:首先是引入通用对象提案,其次是卷积神经网络(CNN)的复兴。通用对象提议算法(例如,Selective Search [34]和EdgeBox [38])可以为每个图像提供大约2000个提案,以覆盖大多数对象,并为每个提案使用更复杂的分类器。卷积神经网络(CNN)的繁荣来自于它的丰富表示能力和强大的图像识别泛化能力,这在挑战性的ImageNet分类任务中被证明[20,31,29]。利用现成的方法,开创性的工作R-CNN [15]表明,基于Selective Search的区域建议加上基于CNN的对象分类器可以在对象检测中取得非常有前途的表现。R-CNN框架由Fast R-CNN [14]和Faster R-CNN [27]进一步完善,前者实现了整个流水线的端到端学习,后者引入了RPN获得更高质量的对象提案。
虽然R-CNN框架在诸如PASCAL VOC之类的基准上实现了卓越的性能,但是在对每个任务(提案生成和分类)的结果进行详细分析之后,我们发现了很大的改进空间。我们声称目前的解决方案与任务要求之间存在偏差,这是流行的两步框架的核心问题。具体来说,在提案生成中,任务只需要对象的提案,但通用对象提议算法的输出仍然包含很大比例的背景区域。在对象分类中,任务要求在对象之间进行分类,而实际上在R-CNN中,它成为对象类别加背景之间的分类。 许多背景样本的存在使得特征表示捕获更少的类别内方差和更多的类别间差异(即主要在对象类别和背景之间),在不明确的对象类别中导致许多false positive(例如,将树分类为盆栽植物)。(不懂)
受到“分而治之”策略的启发,我们提出通过网络级联进一步划分每个任务,以缓解上述问题(见图1)。实际上,在提案生成任务中,我们添加另一个基于CNN的分类器,以便根据现成提案算法的输出(例如,区域提案网络)区分对象与背景。并且在对象分类任务中,由于N + 1类(N个对象类别加背景)交叉熵目标主要引导特征表示来学习类间方差,所以我们添加对于每个对象类别的二分类器,以便更多地关注类别内方差。通过每个任务中级联结构的精巧设计,我们发现它帮助了很多方面:对象建议更简洁和更好的定位,而检测更准确,在不明确的对象类别之间的false positive较少。(不懂)
结果,物体检测性能大大提高。 我们在对象检测基准PASCAL VOC 07/12以及更具挑战性的ILSVRC基准中比Faster R-CNN基线显示出一致和可观的增益。 本文的其余部分组织如下。 我们在第2节中回顾和分析相关工作。我们的CRAFT方法在第3节中说明,并在第4节中进行了验证。 第5节总结本文。
CRAFT可以被看作是基于最先进的两步对象检测框架的增量工作。为了让读者充分了解我们的工作和潜在的动机,在本节中,我们首先从“分而治之”的角度回顾两步框架的发展。我们分别介绍提案生成和对象分类的重大进展。 在总结了building stone之后,我们简要介绍一些相关的工作,它们也尝试改进最先进的两步框架,并展示我们与他们的联系。
提出了许多工作来获得更加简洁的提案,可以分为两种类型:无监督的分组风格和监督的分类风格。分组风格中最流行的方法是选择性搜索[34],其通过多层次划分[10]生成的超像素来形成通用对象提议。其他典型的分组风格提案方法包括更快的EdgeBox [38],更简洁的MCG [1]。每个图像保留约2000个提案,可以实现Pascal VOC上的召回率为98%,ImageNet上的召回率为92%。除了较少的提案数量外,分组风格的另一个相对滑动窗口方法的优点是可以生成任意尺度和纵横比的提案,这提供了更多的灵活性。已经提出了许多工作进行进一步改进,并且可以在[16]中找到评估。
在监督阵营中,提案生成问题被定义为分类和/或回归问题。典型的方法包括BING [4]和Multi-box [32,8]。 BING使用二值特征和SVM来有效地从背景中分类对象。 Multi-box使用CNN以端到端的方式回归对象位置。最近提出的有希望的解决方案是RPN[27],其中使用多任务全卷积网络来共同估计提案位置,并给每个提案分配一个置信度分数。 提案的数量也减少到不到300,召回率更高。我们使用RPN作为CRAFT中的baseline提议算法。 给定对象提案,检测问题成为对象分类任务,涉及表示和分类。纵观计算机视觉的历史,特征表示变得越来越复杂,从hand-crafted Haar [35]和HOG [7]到基于学习的CNN [15]。建立在这些特征表示之上,可以并入精心设计的模型。两个流行的模型是可形变部件模型(DPM [9])和Bag of Words(BOW [25,3])。给定特征表示,通常使用Boosting [11]和SVM [5]等分类器。Structural SVM [33,18]及其潜在版本[37]在问题具有结构性损失时被广泛使用。 近三年来,随着CNN的复兴[20],基于CNN的表示在各种计算机视觉任务中实现了卓越的性能,包括对象识别和检测。目前最先进的是R-CNN方法。R-CNN[15]是第一个显示选择性搜索区域提案和CNN可以产生较大的性能增益,其中CNN在诸如ImageNet的大型数据集进行了预训练,以获得鲁棒的特征表示,并在目标检测数据集上进行微调。 Fast R-CNN [14]通过在不同提案之间共享卷积来提高速度[19],并通过多任务丢失(区域分类和边界框回归)提高性能。 [27]使用RPN直接预测提案,通过与检测网络共享整个图像的卷积特征,使得整个流水线更快。我们使用Fast R-CNN作为CRAFT中的baseline对象分类模型。
基于两步对象检测框架,已经提出了许多工作来改进它。其中一些专注于提案部分。 [24,36]发现,使用CNN来收缩通过分组风格提案所产生的提案,可以提高性能。[12,21]使用CNN级联对滑动窗口进行排序或重新排列对象建议。 CRAFT与这些方法分享了相似之处和差异。共同的一个部分就是我们都是使用两个“级联”策略进一步缩小了提案数量,提高了提案质量。差异在于,这些方法是基于滑动窗口或分组风格提案,而我们的方法则基于已经具有更好提案质量的RPN。我们还表明,RPN提案和分组风格提案有些互补,可以通过我们的级联结构进行组合。 其他一些工作都在努力改进检测网络(R-CNN和Fast R-CNN是受欢迎的选择)。 [13]提出了multi-region pipeline来捕获细粒度对象表示。 [2]介绍了Inside - Outside网络,通过skip-connection并通过空间循环单元融入图像的上下文信息,以捕获多尺度表示。 这些工作可以被视为学习更好的表示,而学习目标并没有改变。在CRAFT中,我们确定了Fast R-CNN中的当前目标函数导致最终检测中的缺陷,并通过级联另一个互补目标函数来解决此问题。 换句话说,像[13,2]这样的旨在学习更好的表示的工作与我们的工作是正交的。 总而言之,在“分而治之”哲学的指导下,我们提出进一步划分当前最先进的对象检测框架的两个步骤,通过网络级联的精巧设计,两个任务都得到很大改进。我们的工作也是许多其他相关工作的补充。除了基于两步框架的改进之外,还有一些关于端到端检测框架的工作[22,30,26],这些框架丢弃了提案步骤。然而,这些方法在某些受限场景下运行良好,但在无约束环境中的通用对象检测中性能明显下降。
3.1.2 Cascade structure 为了在由RPN提供的对象区域和检测任务所要求的对象建议之间建立桥梁,我们引入了RPN之后的附加分类网络。 根据定义,我们需要的是在真实对象实例和背景/位置不佳的提案之间对象类区域进行分类。 因此,我们将附加网络作为二级检测网络(在图2中表示为FRCN网络),其使用RPN的输出作为训练数据。 在这样的级联结构中,RPN网络采用通用图像补丁作为输入,并负责捕获像纹理这样的一般模式,而FRCN网络将输入作为对象区域,并起到学习更精细细节的作用。 级联结构的优点是双重的:首先,额外的FRCN网络进一步提高了对象提案的质量,缩小了背景 区域,使提案更适合任务要求。 第二,来自多个来源的提案可以被合并为FRCN网络的输入,以便可以使用补充信息。 3.1.3实施 我们连续训练RPN和FRCN网。 RPN网络以滑动窗口方式定期训练,以图像中的各种尺度和纵横比对所有区域进行分类,具有与[27]中相同的参数。 RPN网络训练完毕后,我们将对整个训练集进行测试,以产生每个训练图像的2000个原始提案。 这些提案用作训练数据来训练二进制分类器FRCN网。请注意,当训练第二个FRCN网络时,我们使用与RPN相同的正和负采样标准(高于0.7 IoU的正值和低于0.3 IoU 为负面)。 在测试阶段,我们首先在图像上运行RPN网络,产生2000个原始提案,然后在同一图像上运行FRCN网络以及2000个RPN提案作为输入,以获得最终提案。 经过适当抑制或阈值处理后,我们可以得到少于300份较高质量的提案。 我们使用FRCN网而不是RPN网作为第二个二进制分类器,因为FRCN网在其较高级别的连接中具有更多的参数,使得它更能够处理更困难的分类问题。 如果我们使用RPN网络的模型定义作为第二个分类器,则性能下降。在我们目前的实现中,我们不会在RPN网络和FRCN网络之间共享全图像卷积特征。 如果我们分享它们,我们预计的很少的性能增益如[27]。
3.2。级联对象分类 3.2.1基线快速R-CNN 一个好的对象分类器应该将每个对象提议正确地分类到一定数量的类别中。 由于提案生成器的不完善,提案中存在相当多的背景区域和不正确的提案。 因此,当训练对象分类器时,通常会增加一个对象类别 添加为“背景”。 在成功的解决方案Fast R-CNN中,分类器通过softmax层通过多类横断面损失学习。 辅助辅助损失边界框回归,检测性能 在R-CNN方法中优于“softmax + SVM”范式。 为了获得一个端到端的系统,快速R-CNN将在R-CNN中丢弃一对一静态SVM,从而产生了解决方案与任务需求之间的差距。 给定作为输入和最终对象检测的对象提案作为输出,该任务不仅需要进一步区分感兴趣类别的对象与非对象,而且还将对象分类为不同类,特别是具有相似外观和/或属于语义相关类型的对象(汽车和公共汽车,植物和树)。 这就需要一个能够同时捕获类别间和类别间差异的特征表征。 在快速R-CNN的情况下,多类交叉熵损失负责帮助学习的特征层次结构捕获类别间差异,而在捕获类内方差方面较弱,因为“背景”类通常占用大比例的培训样本。 Fast R-CNN的示例检测结果如图3所示,其中错误分类误差是最终检测中的主要问题。 3.2.2级联结构 为了改善错误分类造成的太多误报的问题,我们将每个对象类别的额外的两级横断面损失的形式返回给一对休息分类器(如图4所示)。 本质上,增加的分类器在R-CNN框架中扮演SVM的角色。我们发现使用该特定类别的检测输出训练每个一对休分类器(意味着检测应该在该特定类别上具有最高分数)是重要的。 以这种方式,每一个对休息分类器看到一个特定对象类别(也包含一些假阳性)的提议,使其集中在捕获类内方差。 例如,在PASCAL VOC数据集中,“盆栽植物”附加分类器的培训样本通常是树木,草,盆栽植物和其他一些绿色的东西。 培训结束后,能够捕捉到各种植物之间的微小差异,从而减少与此类相关的误报。 这种效应几乎不能通过多类交叉熵损失来实现。
3.2.3实施 在培训阶段,首先使用来自级联发电机的对象建议对FRCN网络(FRCN-1)进行了一次训练。 此后,我们根据FRCN-1(我们称之为原始检测)的输出培训另一个FRCN网(FRCN-2)。 由于我们现在处理对象之间的分类任务,所以我们丢弃被归类为“背景”的原始检测。 FRCN-2的目标函数是N 2类横断面损失(N等于对象类别数)的总和,每个2类分类器仅依赖于分配有相应类标签的原始检测。 一对一分类器的正,负抽样标准与RPN相同。 实际上,FRCN-2训练每张图像大约有20个原始检测,这是非常有限的。 为了有效地训练FRCN-2并有效地从建议中检测物体,我们共享了FRCN-1和FRCN-2的卷积权重,使得全图像特征映射 只需要计算一次。 也就是说,FRCN-2的卷积权重从FRCN-1初始化,并在FRCN-2训练期间保持固定。 FRCN-2的全连接层也是从FRCN-1初始化的,也是新的 从高斯分布初始化产生2N分数和4N边界框回归目标的层。 在测试时间,以300个对象提案作为输入,FRCN-1输出约20个原始检测,每个具有N个原始分数。 然后,每个原始检测再次被FRCN-2分类,输出得分(N个类别)以类别方式乘以原始分数(N个类别),以获得该检测的最终N个分数。