文章目录
- Abstract
- 1. Introduction
- 2. Related works
- 3. Our Approach
- 3.1. Light-Head R-CNN
- 3.1.1. R-CNN subnet
- 3.1.2. Thin feature maps for RoI warping
- 3.2. Light-Head R-CNN for Object Detection
- Conclusion
原文链接
Abstract
在本文中,我们首先研究了为什么典型的两阶段方法不如单阶段快速检测器(如YOLO[26,27]和SSD[22])快。我们发现Faster R- CNN[28]和R- FCN[17]在RoI扭曲之后或之前进行了密集的计算。Faster R-CNN涉及两个完全连接的层来进行RoI识别,而R-FCN则产生一个大的分数图。因此由于结构上的沉重设计,这些网络的速度很慢。即使我们大幅度降低基本模型,计算成本也不能相应大幅度降低
我们提出了一种新的两级检测器,Light-Head R- CNN,以解决目前两级方法的缺点。在我们的设计中,我们通过使用薄特征映射和便宜的R-CNN子网(池化和单个全连接层),使网络头部尽可能轻。我们基于ResNet-101的light-head R-CNN在保持时间效率的同时,在COCO上优于最先进的目标检测器。更重要的是,简单地用一个微小的网络(例如,Xception)替换主干,我们的Light- Head R-CNN在COCO上以102 FPS的速度获得30.7 mmAP,在速度和精度上都显著优于单级快速检测器,如YOLO[26,27]和SSD[22]
1. Introduction
最近基于cnn的目标检测器可分为单级检测器[26、27、22、20、4]和两级检测器[5、28、19、7]。单级探测器通常瞄准速度非常快、精度相当好的最佳点。两阶段检测器将任务分为两步:第一步(body)生成许多建议,第二步(head)专注于对建议的识别。通常,为了达到最佳精度,机头的设计很重。双级检测器具有(相对)缓慢的速度和非常高的精度的最佳点。
两级检测器能否在效率和准确性上击败单级检测器?我们发现,Faster R- cnn[5]和R- FCN[17]等典型的两级目标检测器具有相似的特征:主干网络附加了一个沉重的头部。此外,ROI池化后的特征通道数量很大,这使得第一个完全连接的通道消耗大量内存,并可能影响计算速度。
与Fast/Faster R-CNN多次应用每个区域的子网不同,基于区域的全卷积网络(R-FCN)[17]试图在所有ROI之间共享计算。然而,R-FCN需要使用#classes×p×p (p是后续池大小)通道生成非常大的额外分数映射,这也会消耗内存和时间。如果我们使用小型骨干网络,Faster R-CNN或R-FCN的重头设计使两阶段方法的竞争力降低。
在本文中,我们提出了一种light-head设计,以建立一个高效而精确的两级探测器。具体来说,我们应用大核可分离卷积来产生具有小通道数的“薄”特征映射(我们的实验中使用α × p × p, α≤10)。该设计大大减少了后续RoI-wise子网的计算量,使检测系统内存友好。池化层附加了一个便宜的全连接层,很好地利用了特征表示进行分类和回归。
由于我们的light-head结构,我们的检测器能够达到速度和准确性的最佳权衡,无论使用大型或小型骨干网络。如图1所示,我们的算法(点画为Light-Head R-CNN)可以明显优于SSD[22]和YOLOv2[27]等快速单级检测器,并且计算速度更快。此外,该算法对大型骨干网也具有一定的灵活性。基于ResNet-101骨干网,我们可以胜过最先进的算法,包括两级检测器,如Mask R-CNN[7]和一级检测器,如RetinaNet[20]。
2. Related works
简要回顾一下最近的一些二维目标检测工作:
准确性的角度来看: R-CNN[6]是最早将深度神经网络特征应用到检测系统中的。手工设计的方法,如选择性搜索[37],边缘盒[40],MCG[1],被用于生成R-CNN的提案。然后提出Fast R-CNN[5],将训练对象分类和边界盒回归结合起来,通过多任务训练提高性能。继Fast R-CNN之后,Faster R-CNN[28]引入了区域提案网络(Region Proposal Network, RPN),利用网络特征生成提案。得益于更丰富的建议,它略微提高了准确性。Faster R-CNN被视为R-CNN系列探测器的里程碑。以下大部分工作都是通过在网络中引入更多的计算来加强Faster R- CNN。Dai等人提出了可变形卷积网络[3],通过在没有监督的情况下学习额外的偏移量来建模几何变换。Lin等人提出了特征金字塔网络(FPN)[19],它利用深度卷积网络固有的多尺度、金字塔层次结构来构建特征金字塔。在FPN的基础上,Mask R- CNN[7]通过在边界框识别的同时增加一个额外的分支,进一步扩展了Mask预测器。RetinaNet[20]是另一种基于FPN的单级检测器,它采用Focal-Loss来解决极端前景背景比导致的类不平衡问题。
从速度的角度来看:目标检测的文献也一直在努力提高检测器的速度。回到最初的R-CNN,它通过整个网络单独转发每个提案。He等人提出SPPnet[8]在候选框之间共享计算。Fast/Faster R-CNN[5,28]都通过统一检测管道来加速网络。R-FCN[17]在RoI子网之间共享计算,当使用大量提案时,这加快了推断速度。另一个研究热点是无提议检测器。YOLO和YOLO v2[26,27]将目标检测简化为一个回归问题,直接预测边界框和相关的类概率,而不需要生成提议。SSD[22]通过从不同层产生不同尺度的预测进一步提高了性能。与基于盒中心的检测器不同,DeNet[36]首先预测所有盒角,然后快速搜索非平凡边界盒的角分布。
总之,从精度角度来看,一级和二级探测器都以接近速度的精度达到了最先进的水平。然而,从速度的角度来看,文献中缺乏与单阶段方法相比具有竞争力的快速两阶段检测器。在本文中,我们尝试设计一种更好和更快的两级检测器,称为light-head R-CNN来填补这一空白。
3. Our Approach
3.1. Light-Head R-CNN
传统的两级目标检测器通常涉及沉重的头部,这对计算速度有负面影响。在我们的论文中,“头”指的是附着在我们的骨干基础网络上的结构。更具体地说,将有两个组成部分:R-CNN子网和ROI扭曲
3.1.1. R-CNN subnet
Faster R-CNN采用了功能强大的R-CNN,它利用两个大的完全连接层或整个Resnet stage[28,29]作为第二级分类器,这有利于检测性能。因此,Faster R-CNN及其扩展在COCO等最具挑战性的基准中执行领先的准确性。但是,当目标建议数量较大时,计算量较大。
为了加速RoI-wisesubnet, R-FCN首先为每个区域生成一组得分图,其通道号将为#classes × p × p (p是接下来的池大小),然后沿着每个RoI池并平均投票最终预测。使用免计算的R-CNN子网,R-FCN通过在RoI共享计分图生成上涉及更多的计算来获得可比的结果。
如前所述,Faster R-CNN和R-FCN头部较重,但位置不同。从精度角度来看,Faster R-CNN虽然在RoI分类方面比较好,但为了减少第一层全连接层的计算量,通常需要全局平均池化,不利于空间定位。对于R-FCN,它在位置敏感池化之后直接将预测结果池化,性能通常不如没有RoI-wise计算层的Faster R-CNN强。从速度的角度来看,更快的R-CNN通过一个昂贵的R-CNN子网独立地传递每个RoI,这降低了网络速度,特别是当提案数量很大时。R-FCN采用免费的R-CNN子网作为二级检测器。但由于R-FCN需要生成一个非常大的RoI池得分图,整个网络仍然消耗时间/内存。
考虑到这些问题,在我们的新Light-Head R-CNN中,我们建议为我们的R-CNN子网使用一个简单,廉价的全连接层,这在性能和计算速度之间做出了很好的权衡。图2 ©提供了我们的Light-Head R- CNN的概述。由于全连接层的计算和内存成本也取决于ROI操作后的通道映射数,我们接下来讨论如何设计ROI翘曲。
3.1.2. Thin feature maps for RoI warping
在将提案馈送到R-CNN子网之前,涉及到RoI warping,使特征映射的形状固定
在我们的Light-Head R-CNN中,我们建议生成具有小通道数的特征映射(薄特征映射),然后进行常规的RoI扭曲。在我们的实验中,我们发现在薄特征映射上的RoI扭曲不仅可以提高精度,而且可以节省训练和推理过程中的内存和计算量。在薄特征映射上考虑PSRoI池化,可以带来更多的计算量来增强R-CNN,减少信道。此外,如果我们在我们的瘦特征映射上应用RoI池,我们可以减少R-CNN开销并放弃全局平均池来同时提高性能。此外,在不损失时间效率的情况下,大卷积可以用于薄特征映射的生成。
3.2. Light-Head R-CNN for Object Detection
在上述讨论之后,我们给出了一般目标检测的实现细节。我们的方法的流水线如图2 ©所示。我们有两个设置:1)设置“L”来验证我们的算法在与大型骨干网络集成时的性能;2)设置“S”,验证算法在小型骨干网下的有效性和效率。除非另有说明,否则设置L和设置S共享相同的其他设置。
基本特征提取器:对于设置L,我们采用ResNet 101[9]作为基本特征提取器。另一方面,我们利用类似于exception的小基模型进行设置s。Xception模型的网络结构如表7所示。在图2中,“转换层”表示我们的基本模型。conv4和conv5的最后一个卷积块记为c4, c5。
Thin feature maps. 我们在c5上应用了大的可分离卷积层[35,25],结构如图3 C所示。在我们的方法中,我们让k为15,设置S为C mid = 64,设置l为C mid = 256。我们还将C out减少到10×p×p,这与R-FCN中使用的有限#类×p×p相比是非常小的。得益于大内核带来的更大的有效接受域,我们所汇集的特征映射更加强大。
R-CNN subnet. 这里我们只在R-CNN子网中使用一个具有2048个通道(无辍学)的全连接层,然后是两个兄弟的全连接层来预测RoI分类和回归。每个边界框位置只应用了4个通道,因为我们在不同的类之间共享回归。得益于强大的RoI扭曲特征图,一个简单的Light- Head R-CNN也可以在保持效率的情况下取得显著的效果。
RPN(区域建议网络) 是一种滑动窗口类无关的目标检测器,它使用了c4的特征。RPN预先定义了一组锚,这些锚由几个特定的尺度和纵横比控制。在我们的模型中,我们设置了三种纵横比{1:2,1:1,2:1}和五种比例尺{32 2,64 2,128 2,256 2,512 2}来覆盖不同形状的物体。由于存在大量相互严重重叠的提案,因此采用非最大抑制(NMS)来减少提案的数量。然后将其输入RoI预测子网。我们将NMS的IoU阈值设置为0.7。然后,我们根据锚点的IoU比和真值边界框对锚点训练标签进行签名。如果锚的IoU超过0.7,任何接地真值框,它将被设置一个积极的标签。对于ground-truth box具有最高IoU的锚也将被分配一个正面标签。同时,如果所有接地真值框的IoU小于0.3,则其标签为负。更多细节可参考[28]。
Conclusion
在本文中,我们提出了Light Head R-CNN,它涉及到一个更好的两级目标检测器的设计原则。与传统的两级检测器(如Faster R-CNN和R-FCN)通常具有重头相比,我们的light-head设计使我们能够在不影响计算速度的情况下显著提高检测结果。更重要的是,与YOLO和SSD等快速单级检测器相比,我们在计算速度更快的情况下获得了更优越的性能。例如,我们的Light Head R-CNN加上小型的Xception-like基础模型可以在102 FPS的速度下实现30.7 mmAP。