欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

【目标检测】FPN论文理解

程序员文章站 2022-07-10 21:07:49
摘要  特征金字塔:是检测系统中用于检测不同尺度目标的基本组件,但最近的深度学习目标检测器避免了使用金字塔特征,原因是计算代价高昂和消耗。  本文:利用深度卷积网络固有的多尺度、金字塔层次结构,构建特征金字塔,提出了一种具有横向连接的自顶向下的结构,用于构建各种尺度的高层语义特征图。这种架构被称为特征金字塔网络(FPN),是一种通用的特征抽取器。  在基本Faster R-CNN系统中使用FPN,在COCO检测基准上实现了最先进的结果。此外该方法可以在GPU上以6fps的速度运行,因此是一种实用而精确...

摘要

  特征金字塔:是检测系统中用于检测不同尺度目标的基本组件,但最近的深度学习目标检测器避免了使用金字塔特征,原因是计算代价高昂和消耗。
  本文:利用深度卷积网络固有的多尺度、金字塔层次结构,构建特征金字塔,提出了一种具有横向连接的自顶向下的结构,用于构建各种尺度的高层语义特征图。这种架构被称为特征金字塔网络(FPN),是一种通用的特征抽取器。
  在基本Faster R-CNN系统中使用FPN,在COCO检测基准上实现了最先进的结果。此外该方法可以在GPU上以6fps的速度运行,因此是一种实用而精确的多尺度目标检测方法。

一、引言

  在计算机视觉中,识别大范围尺度的物体是一个基础挑战:
  (1)特征图像金字塔
  建立在图像金字塔上的特征金字塔(称之为特征图像金字塔)是一种解决多尺度检测的标准方案(图a)。这些金字塔是尺度(比例)不变的,也就是说对象的比例变化是通过改变金字塔中的层来抵消的。直观地说,此属性使模型能够通过扫描位置和金字塔层检测大范围尺度的对象。
  优点:特征图像金字塔在手工设计特征的时代被大量使用,它们是关键的组件,像DPM这样的目标检测器需要密集的尺度采样才能获得良好的结果。ImageNet和COCO检测挑战中的所有最新算法都使用特征化图像金字塔进行多尺度测试。特征图像金字塔的主要优点是它产生一个多尺度的特征表示,所有层(包括高分辨率的层)的语义都很强。
  缺点:对图像金字塔的每个层次进行特征化处理有明显的局限性,推理时间大大增加,使得这种方法在实际应用中不切实际。此外训练端到端的深度网络在内存方面是不可行的,因此如果使用图像金字塔,也仅仅是在测试时间,这造成了训练/测试推断时间的不一致。基于这些原因,Fast和 Faster R-CNN默认不使用特征图像金字塔。

                  【目标检测】FPN论文理解
  (2)单一特征图
  用于识别任务的手工特征被深度卷积网络(ConvNets)计算的特征所取代。深度卷积网络(ConvNets)计算的特征除了能够表示更高层次的语义之外,对尺度上的变化也更为健壮,因此有助于从单个输入尺度上计算的特征进行识别(图b)。但即使有了这种稳健性,仍然需要金字塔特征得到最精确的结果。
                      【目标检测】FPN论文理解
  (3)金字塔特征层次
  图像金字塔并不是计算多尺度特征的唯一方法。深度卷积网络逐层计算特征,通过子采样自然的产生特征层次(固有多尺度、金字塔形状)。图c这种网络特征层次结构产生了不同空间分辨率的特征图,但由于深度同引入了较大的语义鸿沟。高分辨率特征图具有的低层次特征损害了它们目标识别的能力。
  SSD是第一个尝试使用ConvNet固有的金字塔特征层次结构的网络,就像是一个特征化的图像金字塔(图c)。理想情况下,SSD类型的金字塔重用前向传播过程计算的不同层的多尺度特征图(产生特征层次结构几乎‘免费’)。但是为了避免使用低层特征,SSD放弃了重用前向计算已经得到的特征层次,而是从网络的高层开始构建金字塔,并添加几个新的层。因此它错过了重用特征层次的高分辨率特征的机会,这些对于检测小物体很重要。
                  【目标检测】FPN论文理解
  (4)特征金字塔网络
  本文的目标是自然的利用ConvNet特征层次的金字塔形状,创建一个在所有尺度上都具有强大语义的特征金字塔。为了实现这一目标,设计了一种通过自上而下路径和横向连接将低分辨率、语义强的特征和分辨率高、语义弱的特征相结合的架构(图d)——特征金字塔,它在所有层上都有丰富的语义,并且可以从单个输入图像快速构建。换言之特征金字塔是在不牺牲表现、速度和内存的可用于替换特征化图像金字塔的网络。
  1.采用自顶向下和跳跃连接的类似架构在最近的研究中很流行。他们的目标是产生一个单一的高层次、低分辨率的的特征图并进行预测(下图)。
           【目标检测】FPN论文理解
  2.本文方法将架构作为一个特征金字塔,在每个特征层上独立地进行预测。我们的模型与一个特征化的图像金字塔相呼应。
               【目标检测】FPN论文理解
  评估特征金字塔网络(FPN):金字塔结构可以用所有尺度输入进行端到端训练,并且在训练/测试时都可以使用。FPN能够获得比所有现有的最先进的方法更高的精度。此外这种改进是在不增加单尺度测试时间的情况下实现的。

二、相关工作

  手工设计的特征和早期神经网络
  SIFT特征最初在尺度空间极值处提取,用于特征点匹配;HOG特征以及后来的SIFT特征是在整个图像金字塔上密集计算的,在图像分类、目标检测、人体姿态估计等领域有着广泛的应用。
  深度卷积网络目标检测器
  随着现代深度 ConvNets的发展,像OverFeat和R-CNN这样的目标检测器在精度上有了显著的提高。OverFeat将ConvNet作为图像金字塔上的滑动窗口检测器;R-CNN采用了一种基于区域提案的策略,在使用ConvNet分类之前对每个提案进行标准化;SPPnet证明了基于区域的检测器可以更有效地应用于在单个图像尺度上提取的特征图;最近更精确的检测方法,如Fast R-CNN和Faster R-CNN提倡使用从单一尺度计算的特征,因为它在精度和速度之间提供了很好的折衷。然而,多尺度检测仍然表现得更好,特别是对于小目标。
  使用多层的方法
  最近的一些方法通过在ConvNet中使用不同的层来改进检测和分割。FCN将每个类别在多个尺度上的部分分数相加来计算语义分段;Hypercolumns使用类似的方法来分割对象实例;其他几种方法(HyperNet、ParseNet和ION)在计算预测之前将多层特征串联起来,这相当于对转换后的特征进行求和;SSD和MS-CNN在特征层次的多个层次上预测对象,而不结合特征或分数。
  最近有一些方法利用横向/跳跃连接,跨分辨率将低层和语义层关联起来,包括用于分割的U-Net和SharpMask、用于人脸检测的Recombinator 网络,、用于关键点估计的Stacked Hourglass网络、Ghiasi等人提出了用于FCN的拉普拉斯金字塔特征进一步细化了分割。尽管这些方法采用金字塔形状的结构,但它们不同于特征化图像金字塔,在这些金字塔中,预测是在所有级别独立进行的。

三、特征金字塔网络

  本文的目标是自然的利用ConvNet特征层次的金字塔形状,创建一个在所有尺度上都具有强大语义的特征金字塔。这种特征金字塔网络是通用的。
  在本文中我们重点研究RPN网络(生成提案的网络)和基于区域的检测器Fast R-CNN。(FPN还可以用于实例分割)。
  我们的方法以任意大小的单尺度图像作为输入,以一种全卷积的方式输出相应比例大小的多尺度特征图。这个过程独立于主干架构,在本文中我们使用resnet。金字塔的构建包括一个自下而上的路径,一个自上而下的路径和横向连接,如下所述。
  自下而上的路径:自下而上的路径是主干ConvNet的前向计算,特征层次结构是由前向计算的多个尺度的特征图组成。通常许多卷积层生成相同大小的特征图,我们称这些层处于同一网络阶段。对于我们的特征金字塔,我们选择每个阶段最后一层的输出用来创建金字塔。这种选择是自然的,因为每个阶段的最深层应该具有最强的特性。
  具体来说:对于resnet,使用每个网络阶段最后一个残差块的特征激活输出。对于conv2、conv3、conv4和conv5,将最后残差块的输出表示为{C2、C3、C4、C5},它们相对于输入图像具有{4、8、16、32}像素的步长。由于conv1占用大量内存,不将conv1包含在金字塔中。
  自上而下的路径和横向连接:自上而下的路径上采样空间较粗但语义强的特征图(来自特征金字塔的高层),产生更高分辨率的特征图s,这些特征通过横向连接自底向上路径的特征得到增强。每个横向连接合并了自下而上路径和自顶向下路径的相同空间尺寸的特征图。
  下图显示了自顶向下特征图的构建块。对于较粗分辨率的特征图,我们将空间分辨率提高2倍(为简单起见,使用最近邻上采样),上采样得到的特征图通过元素加法与相应的自底向上特征图(经过1×1的卷积层以减小信道尺寸)合并。这个过程会反复进行,直到生成最精细分辨率的特征图。为了开始迭代,需在C5上附加一个1×1的卷积层来生成最粗的分辨率图。最后在每个合并后的特征图上插入一个3×3卷积生成最后的特征图,用来减少上采样的影响。最终的特征图称为{P2,P3,P4,P5},分别对应于空间大小相同的{C2、C3、C4、C5}。
  金字塔的所有层都像传统的特征图像金字塔一样使用共享的分类器/回归器,没有非线性层。
        【目标检测】FPN论文理解

四、应用

  我们的方法是在深度ConvNets中构建特征金字塔的通用解决方案。下面我们将我们的方法应用在RPN中生成包围盒建议、Fast R-CNN中进行目标检测。

4.1 特征金字塔网络用于RPN

  原始RPN设计: 在单尺度卷积特征图的顶部,应用3×3滑动窗口——一个3×3卷积的小型子网络,以及随后的两个同级的1×1卷积进行分类和回归,我们称之为网络头。对象/非对象定义的标准和边界框回归的目标根据锚(anchor)定义的,anchor具有多个预定义的比例和纵横比,以便覆盖不同形状的对象。
  使用FPN的RPN网络:用FPN特征代替单尺度特征图来构建新型RPN。在特征金字塔的每一层都附加一个相同设计的头部(3×3 conv和两个同级的1×1 conv)。因为头部会在所有金字塔级别的所有位置上密集滑动,所以不必在特定层上使用多尺度anchor,只需将一种比例的anchor指定给一个特征层。我们定义{P2,P3,P4,P5,P6}层上分别具有【目标检测】FPN论文理解像素的尺度。如果想在每个层使用多个纵横比{1:2,1:1,2:1}的anchor,那么所有金字塔上总共有15个anchor。
  根据anchor与真实边界框的交并比(IoU)为anchor分配训练标签。如果anchor与给定真值框或任意真值框有最高的IoU或IoU值大于0.7,则为其分配一个正标签;如果anchor与所有真值框的IoU低于0.3,则为其分配负标签。请注意,真相框与anchor关联,anchor与金字塔层关联。
  头部的参数在所有特征金字塔层上是共享的,我们还评估了没有共享参数的替代方案,并观察到类似的精度。共享参数的良好性能表明金字塔的各个层次共享相似的语义层次,这一优势类似于使用特征化图像金字塔,其中一个共同的头部分类器可以应用于在任何图像尺度上计算的特征。

4.2 特征金字塔网络用于Fast R-CNN

  Fast R-CNN是一种基于区域的目标检测器,其中使用感兴趣区域(RoI)池提取特征。Fast R-CNN通常是在单一尺度的特征图上执行的。若将Fast R-CNN与FPN一起使用,需要将不同比例的RoI分配到金字塔各层。
  从形式上讲,将宽度为w、高度为h的RoI(在网络的输入图像上)分配给特征金字塔层Pk,方法是:
                  【目标检测】FPN论文理解
  这里224是典型的ImageNet预训练大小,k0是【目标检测】FPN论文理解的RoI应该映射到的目标层。我们将k0设置为4,等式意味着如果RoI的比例变小(例224的1/2),它应该映射到更精细的分辨率层(比如k=3)。
  我们将预测头(在Fast R-CNN中,头是类特定的分类器和边界盒回归器)附加到所有层的所有RoI,同样头部都共享参数,而不考虑它们的层。

五、在目标检测器上的实验

  数据集:在80类COCO检测数据集上进行了实验。使用80k训练图像和35k验证图像子集的联合进行训练,并报告val图像的5k子集(minival)上的消融实验。
  训练:所有网络主干都在ImageNet1k分类集上进行预训练,然后在检测数据集上进行微调。

5.1 RPN区域建议

【目标检测】FPN论文理解

  与基线比较: 在RPN中加入FPN提高了原始RPN的各项指标。
  自上而下特征的重要性: (d)显示了没有自顶向下路径的特征金字塔的结果。通过这种修改,1×1横向连接和3×3卷积连接到自下而上的金字塔上。该架构模拟金字塔特征层次的效果(类似SSD)。(d)中的结果与RPN基线相当,远远落后于我们FPN结果。我们推测这是因为在自下而上的金字塔的不同层次之间存在着很大的语义差距,特别是对于非常深的resnet。
  横向连接的重要性: (e)显示了没有1×1横向连接的自上而下特征金字塔的结果。这种自上而下的金字塔具有很强的语义特征和精细的分辨率,但我这些特征的位置并不精确,因为这些特征已经被多次下取样和上取样。更精确的位置可以通过横向连接从自下而上特征图水平传递到自上而下特征图图。
  金字塔特征的重要性: RPN是一种窗口大小固定的滑动窗口检测器,因此在金字塔层上扫描可以提高其对尺度变化的鲁棒性。

5.2 Fast/Faster R-CNN目标检测器

5.2.1 Fast R-CNN

【目标检测】FPN论文理解
  与基线比较: 通过比较表明,对于基于区域的目标检测器,我们的特征金字塔优于单尺度特征。
  **自上而下特征和横向连接的重要性:**表(d)和(e)表明移除自上而下连接和移除横向连接会导致较差的结果,类似于我们在上述小节中观察到的RPN。值得注意的是,删除自上而下的连接(d),会显著降低准确性,这表明Fast R-CNN在高分辨率特征图上使用低层特征会受到影响。

5.2.2 Faster R-CNN

【目标检测】FPN论文理解

  在Faster R-CNN中,RPN和Fast R-CNN必须使用相同的网络主干,实现特征共享。表3显示了我们的方法与两个基线之间的比较,这两个基线都使用RPN和Fast R-CNN的一致主干架构。
  与基线比较: (a)显示了我们基线Faster R-CNN,(c)另外添加了FPN比这个强基线性能更好。
  共享特征: 为了简单起见,不共享RPN和Fast R-CNN之间的特性,共享特征在一定程度上提高了准确性,也减少了测试时间。
  运行时间: 通过特征共享,基于FPN的Faster R-CNN系统通过在FPN中添加额外的层来引入少量的额外成本,但是具有更轻的头部重量。总的来说,我们的系统比基于ResNet的Faster R-CNN系统更快。
  我们的方法的效率和简单性将有助于未来的研究和应用。

5.2.3 与coco其他竞争算法的比较

  将我们的方法与COCO竞赛获奖者的单模型结果进行了比较,在不增加额外开销的情况下,已经超越了这些实力强大、设计精良的竞争对手。
  我们的方法不依赖于图像金字塔,只使用单一的输入图像尺度,但对小尺度对象仍然具有突出的表现。
  此外,我们的方法没有利用许多流行的改进,如迭代回归、硬负挖掘[35]、上下文建模、更强的数据扩充等。这些改进是对FPNs的补充,应该会进一步提高精度。
  最近,FPN在COCO竞争的所有领域上都获得了新的最高结果,包括检测、实例分割和关键点估计。

六、总结

  我们提出了一个在ConvNets中构建特征金字塔的简洁框架。我们的方法为特征金字塔的研究和应用提供了一种实用的解决方案,而不需要使用图像金字塔。最后我们的研究表明,尽管深度ConvNets具有强大的表示能力和对尺度变化的隐式鲁棒性,但是使用金字塔表示来显式地解决多尺度问题仍然至关重要。

本文地址:https://blog.csdn.net/qq_36926037/article/details/107428364

相关标签: 目标检测