论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

文章目录

    • 摘要
    • 1、介绍
    • 2、相关工作
    • 3、Faster R-CNN
      • 3.1、RPN
        • 3.1.1、Anchors
        • 3.1.2、损失函数
        • 3.1.3、训练RPN
      • 3.2、RPN和Faster R-CNN共享特征
      • 3.3、实现细节
    • 4、实验
      • 4.1、PASCAL VOC上的实验结果
      • 4.2、MS COCO上的实验结果
      • 4.3、从MS COCO到PASCAL VOC
    • 5、总结
    • [References]

摘要

当前最优的目标检测算法依赖区域提议算法假设目标位置。尽管 S P P n e t SPPnet SPPnet[1] 和 F a s t   R − C N N Fast~R-CNN Fast RCNN[2] 已经减少了网络的运行时间,但是区域提议的计算仍然是一个技术瓶颈。本文中作者提出了 R P N RPN RPN ,与检测网络共享整幅图的卷积特征,从而提升算法速度。 R P N RPN RPN 是一个全卷积网络,持续预测目标边缘及每个位置的目标置信度。 R P N RPN RPN 通过端到端训练,生成高质量目标提议用于 F a s t   R − C N N Fast~R-CNN Fast RCNN 目标检测。作者通过共享卷积特征将 R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 合并在单一网络中—使用最近流行的具有“注意力”机制的神经网络术语, R P N RPN RPN 组件告诉统一网络在哪里寻找目标。对于深度 V G G 16 VGG16 VGG16[3] 模型该检测网络在 G P U GPU GPU 上达到 5 f p s 5fps 5fps 帧率(包含所有步骤),并且在 P A S C A L   V O C   2007 , 2012 PASCAL~VOC~2007, 2012 PASCAL VOC 2007,2012 M S   C O C O MS~COCO MS COCO 数据集上实现当前最优精度(每幅图只有300个提议)。

1、介绍

区域提议是检测系统计算耗时的瓶颈问题,通常依赖于廉价的特征和经济的推理方案。“ S e l e c t i v e   S e a r c h Selective~Search Selective Search” [4] 是最流行的方法之一,它贪婪地融合了基于设计的低级特征的超像素。然而,与高效检测网络相比,在 C P U CPU CPU 实现中,选择性搜索的速度慢一个数量级,每幅图像需要 2 2 2 秒。 E d g e B o x EdgeBox EdgeBox[5] 目前在提议质量和速度之间提供了最佳折衷,每张图像 0.2 0.2 0.2 秒。但是区域提议步骤仍然占据检测网络大量运行时间。

F a s t   R − C N N Fast~R-CNN Fast RCNN 运行在 G P U GPU GPU 上,但是用于搜索的区域提议方法运行在 C P U CPU CPU 上,这样导致了运行时间的不平衡。显然,在 G P U GPU GPU 上重新实现区域提议方法能够加速提议计算速度。这可能是一个有效的工程解决方案,但是重新实现忽略了下游检测网络,因此错过了共享计算的机会。

本文中作者使用深度卷积神经网络计算提议,将检测网络的计算考虑在内,区域提议几乎不会增加额外的计算。作者提出了 R P N RPN RPN 网络,能够和最好的检测网络共享卷积层,测试时通过共享卷积能够将计算提议的时间降到很小。

作者认为类似 F a s t   R − C N N Fast~R-CNN Fast RCNN 的基于区域的检测器也可以用于产生区域提议。在卷积特征的顶部通过添加一些额外的卷积层来构建 R P N RPN RPN,这些卷积层同时回归规则网格上每个位置的区域边界和目标置信度。因此, R P N RPN RPN 是一种全卷积网络 F C N FCN FCN [6],可以进行端到端的训练,以完成生成检测提议的特定任务。

R P N s RPNs RPNs 旨在以大范围的尺度和长宽比有效预测区域提议。与使用图像金字塔(图1,a)或滤波器金字塔(图 1,b)的主流方法相比, R P N RPN RPN 引入了新的“锚”框,作为多尺度和宽高比的参考。该方案可以被认为是回归参考金字塔(图1,c),这避免了列举多尺度或宽高比的图像或滤波器。当使用单尺度图像进行训练和测试时,该模型表现良好,从而有助于提高运行速度。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第1张图片
为了将 R P N s RPNs RPNs F a s t   R − C N N Fast~R-CNN Fast RCNN 目标检测网络统一起来,作者提出了一种训练方案,区域提议任务的微调和目标检测任务的微调交替进行,目标检测任务微调时,保持提议不变。该方案收敛迅速,并且两个任务共享卷积特征产生统一网络。

作者在 P A S C A L   V O C PASCAL~VOC PASCAL VOC 检测基准上全面评估了该方法,在该基准下,具有 F a s t   R − C N N Fast~R-CNN Fast RCNN R P N s RPNs RPNs 比具有 F a s t   R − C N N Fast~R-CNN Fast RCNN 的选择性搜索的强基线具有更高的检测精度。同时,该方法免除了测试时选择性搜索的几乎所有计算负担——提议的有效运行时间仅为 10 m s 10ms 10ms。使用昂贵的深层模型 [3],该检测方法在 G P U GPU GPU 上仍然有 5 f p s 5fps 5fps 的帧率(包括所有步骤),因此在速度和精度方面都是一个实用的目标检测系统。作者还报告了在 M S   C O C O MS~COCO MS COCO 数据集上的结果,并利用 C O C O COCO COCO 数据研究了在 P A S C A L   V O C PASCAL~VOC PASCAL VOC 上的性能改进。代码已公布 MATLAB版本 和 Python版本 。


2、相关工作

目标提议

有大量关于目标提议方法的文献,目标提议方法的全面研究和比较可以参考[19][20][21]。广泛使用的目标提议方法包括基于分组超像素的方法(例如, S e l e c t i v e   S e a r c h Selective~Search Selective Search[4]、 C P M C CPMC CPMC[22]、 M C G MCG MCG[23] )和基于滑动窗口的方法(例如, o b j e c t n e s s   i n   w i n d o w s objectness~in~windows objectness in windows[24]、 E d g e B o x e s EdgeBoxes EdgeBoxes[6] )。目标提议方法被看作独立于检测器的外部模块(例如, S e l e c t i v e   S e a r c h Selective~Search Selective Search[4] 目标检测器、 R C N N RCNN RCNN[5] 和 F a s t   R − C N N Fast~R-CNN Fast RCNN[2])。

目标检测的深度网络

R C N N RCNN RCNN[5] 端到端训练 C N N s CNNs CNNs 将提议区域分类为目标类或者背景。 R C N N RCNN RCNN 主要扮演分类器的角色,并不预测目标边界(除了通过边界框回归细化)。它的精度依赖于区域提议模块的性能(参考 [20] 中的比较)。好几篇论文已经提出使用深度网络预测目标边界框 [25]、[9]、[26]、[27]。在 O v e r F e a t OverFeat OverFeat[9] 方法中,训练一个全连接层预测边界框坐标,用于单一目标的定位任务中。全连接层然后转变为卷积层用于检测多个特定类目标。 M u l t i B o x MultiBox MultiBox[26],[27] 方法从一个网络中产生区域提议,该网络的最后一个全连接层同时预测多个未知类的边界框,囊括了 O v e r F e a t OverFeat OverFeat 的 “单盒” 方式。这些未知类边界框用作 R C N N RCNN RCNN[5] 的提议。与本文的全卷积方案相反, M u l t i B o x MultiBox MultiBox 提议网络应用于单个图像裁剪或多个大图像裁剪(例如, 224 × 224 224×224 224×224)。 M u l t i B o x MultiBox MultiBox 在提议和检测网络之间不共享特征。与此同时, D e e p M a s k DeepMask DeepMask[28] 被开发用来学习分割提议。

卷积的共享计算 [9]、[1]、[29]、[7]、[2] 已经吸引了越来越多的注意力,用于高效、准确的视觉识别。 O v e r F e a t OverFeat OverFeat[9] 从图像金字塔中计算卷积特征,用于分类、定位和检测。共享卷积特征图上的自适应大小池( S P P SPP SPP[1])是为高效的基于区域的目标检测 [1]、[30] 和语义分割 [29]而开发的。 F a s t   R − C N N Fast~R-CNN Fast RCNN[2] 支持在共享卷积特征上进行端到端的检测器训练,并显示出令人信服的准确性和速度。

3、Faster R-CNN

F a s t e r   R − C N N Faster~R-CNN Faster RCNN 由两个模块组成。第一个模块是深度全卷积网络进行区域提议,第二个模块是使用区域提议的 F a s t   R − C N N Fast~R-CNN Fast RCNN[2] 检测器。整个系统是单一、统一的目标检测网络(如图 2 2 2)。使用最近流行的具有 “注意力”[31] 机制的神经网络术语, R P N RPN RPN 模块告诉 F a s t   R − C N N Fast~R-CNN Fast RCNN 模块去哪里寻找目标。在第 3.1 3.1 3.1 节中,作者介绍了区域提议网络的设计和特性。在第 3.2 3.2 3.2 节中,作者开发了用于训练两个具有共享特征的模块的算法。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第2张图片

3.1、RPN

R P N RPN RPN 网络输入任意尺寸的图像,输出一组矩形目标提议以及目标置信度。作者用全卷积网络对这个过程进行建模,本节对此进行了描述。因为最终目标是与 F a s t   R − C N N Fast~R-CNN Fast RCNN 目标检测网络共享计算,所以作者假设这两个网络共享一组共同的卷积层。在作者的实验中,研究了 Z e i l e r Zeiler Zeiler F e r g u s Fergus Fergus 模型 [32] ( Z F ZF ZF),它有 5 5 5 个可共享的卷积层。 S i m o n y a n Simonyan Simonyan Z i s s e r m a n Zisserman Zisserman 模型 [3] ( V G G − 16 VGG-16 VGG16) 有 13 13 13 个可共享的卷积层。

为了生成区域提议,作者在最后一个共享卷积层输出的卷积特征图上滑动一个小网络。这个小网络将输入卷积特征图的 n × n n×n n×n 个空间窗口作为输入。每个滑动窗口映射到一个低维特征( Z F ZF ZF 256 − d 256-d 256d V G G VGG VGG 512 − d 512-d 512d,后面连接 R e L U ReLU ReLU [33])。这个特征被送到两个并列全连接层——一个边界框回归层 ( r e g reg reg) 和一个边界框分类层 ( c l s cls cls) 。本文中使用 n = 3 n=3 n=3,注意输入图像上的有效感受野很大( Z F ZF ZF V G G VGG VGG 分别为 171 171 171 228 228 228 像素)。这个小型网络在图 3 3 3 (左)中显示。注意,因为微型网络以滑动窗口的方式运行,所以全连接层在所有空间位置共享。这种体系结构自然是由 n × n n×n n×n 卷积层后面连接两个同级 1 × 1 1×1 1×1 卷积层(分别用于 r e g reg reg c l s cls cls)实现的。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第3张图片


3.1.1、Anchors

在每个滑动窗口位置,同时预测多个区域提议,其中每个位置的最大可能提议数表示为 k k k。因此, r e g reg reg 层有 4 k 4k 4k 个输出,编码 k k k 个框的坐标, c l s cls cls 层输出 2 k 2k 2k 个分数,估计每个提议的目标或非目标概率。 k k k 个提议相对于 k k k 个参考框是参数化的,参考框称为锚。锚定位于所讨论的滑动窗口的中心,并且与尺寸和纵横比相关联(图 3 3 3,左侧)。默认情况下,使用 3 3 3 个尺寸和 3 3 3 个纵横比,在每个滑动位置产生 k = 9 k=9 k=9 个锚。对于大小为 W × H W×H W×H (通常为 2400 2400 2400)的卷积特征图,总共有 W H k WHk WHk 个锚。

平移不变锚

本文方法的一个重要特性是,就锚和计算与锚相关的提议的函数而言,具有平移不变性。如果平移了图像中的一个目标,提议应该被平移,并且同一函数应该能够在任何一个位置预测提议。本文的方法保证了这种平移不变性。相比之下, M u l t i B o x MultiBox MultiBox[27] 方法使用 k − m e a n s k-means kmeans 生成 800 800 800 个锚,这些锚不是平移不变的。因此,如果目标被平移, M u l t i B o x MultiBox MultiBox 不能保证生成相同的提议。

平移不变特性也减小了模型的大小。 M u l t i B o x MultiBox MultiBox 具有 ( 4 + 1 ) × 800 (4+1)×800 (4+1)×800 维全连接输出层,而在 k = 9 k=9 k=9 个锚的情况下,本文的方法具有 ( 4 + 2 ) × 9 (4+2)×9 (4+2)×9 维卷积输出层。因此,输出层有 2.8 × 1 0 4 2.8×10^4 2.8×104 个参数( V G G − 16 VGG-16 VGG16 512 × ( 4 + 2 ) × 9 512×( 4 + 2 )×9 512×(4+2)×9),比 M u l t i B o x MultiBox MultiBox 的输出层少了两个数量级, M u l t i B o x MultiBox MultiBox[27] 有 6.1 × 1 0 6 6.1×10^6 6.1×106 个参数( 1536 × ( 4 + 1 ) × 800 1536×(4+1)×800 1536×(4+1)×800)。如果考虑特征投影层,本文的提议层的参数仍然比 M u l t i B o x MultiBox MultiBox 少一个数量级。本文的方法在小数据集上过拟合的风险更小,比如 P A S C A L   V O C PASCAL~VOC PASCAL VOC

多尺度锚作为回归参考

本文锚的设计采用了新的处理多尺度(长宽比)的方案。图 1 1 1 展示了处理多尺度两种常见的方法。第一种方法基于图像/特征金字塔,比如, D P M DPM DPM[8]、 C N N − b a s e d   m e t h o d s CNN-based~methods CNNbased methods [9][1][2]。图像被 r e s i z e d resized resized 为多尺度,特征图( H O G HOG HOG [8]、深度卷积特征 [9][1][2])在每个尺度下进行计算(图 1 a 1a 1a)。这种方式通常有用但是过于耗时第二种方法在特征图上使用多尺度滑动窗口(以及或者长宽比)。比如, D P M DPM DPM[[8]] 中使用不同尺寸的滤波器(比如 5 × 7 5\times7 5×7 或者 7 × 5 7\times5 7×5)分别训练不同长宽比的模型。如果用这种方式来解决多尺度问题,它可以被认为是一个“滤波器金字塔”(图 1 b 1b 1b)。第二种方式通常与第一种方式联合使用,比如 D P M DPM DPM[[8]] 。

相比之下,本文基于锚的方法是建立在一个锚金字塔上的,这更具成本效益。本文的方法参照多个尺度和长宽比的锚框对边界框进行分类和回归。它只依赖单一尺度的图像和特征图,并使用单一尺寸的滤波器(特征图上的滑动窗口)。本文通过实验展示了这种解决多尺度和多尺寸问题的方案的效果(表 8 8 8)。

由于这种基于锚的多尺度设计,正如 F a s t   R − C N N Fast~R-CNN Fast RCNN 检测器所做的那样,我们可以简单地使用在单尺度图像上计算出的卷积特征。多尺度锚的设计是共享特征的关键组成部分,而无需额外计算成本来解决尺度问题。


3.1.2、损失函数

为了训练 R P N RPN RPN, 给每个锚分配一个二进制类标签(是否为目标)。作者为两类锚分配正标签:(1)和一个 G r o u n d   t r u t h Ground~truth Ground truth 框有最大 I o U IoU IoU 的锚框。(2)和任意 G r o u n d   t r u t h Ground~truth Ground truth 框的 I o U IoU IoU 大于 0.7 0.7 0.7。注意,一个 G r o u n d   t r u t h Ground~truth Ground truth 框可能为多个锚框分配正标签。通常第二种情况足以确定正样本,但是仍然采用第一种情况,是因为在一些少见的情况下,第二种情况无法找到正样本。将负标签分配给与任一 G r o u n d   t r u t h Ground~truth Ground truth 框的 I o U IoU IoU 均小于 0.3 0.3 0.3 的非正锚框。非正非负的锚框对训练目标没有帮助。

根据以上定义,最小化多任务损失目标函数。一张图像的损失函数定义为:
(1) L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) L(\{p_i\},\{t_i\})=\frac1{N_{cls}}\underset{i}{\sum}L_{cls}(p_i,p^*_i)+\lambda\frac1{N_{reg}}\underset{i}{\sum}p^*_iL_{reg}(t_i,t^*_i)\tag1 L({pi},{ti})=Ncls1iLcls(pi,pi)+λNreg1ipiLreg(ti,ti)(1)
其中, i i i 表示在一个 m i n i − b a t c h mini-batch minibatch 中锚的索引值, p i p_i pi 表示预测锚 i i i 为目标的概率。 G r o u n d   t r u t h Ground~truth Ground truth 标签 p i ∗ p^*_i pi 1 1 1 (锚为正样本)或者 0 0 0 (锚为负样本)。 t i t_i ti 表示预测边界框的 4 4 4 个参数化坐标的向量。 t i ∗ t^*_i ti 是与正锚框相关联的 G r o u n d   t r u t h Ground~truth Ground truth 框的坐标向量。 L c l s L_{cls} Lcls 是两类的对数损失(目标或非目标)。回归损失 L r e g ( t i , t i ∗ ) = R ( t i − t i ∗ ) L_{reg}(t_i,t^*_i)=R(t_i-t^*_i) Lreg(ti,ti)=R(titi) 其中 R R R 是鲁棒损失函数( S m o o t h   L 1 Smooth~L_1 Smooth L1)如 [2] 中定义。 p i ∗ L r e g p^*_iL_{reg} piLreg 意味着回归损失只有在正锚框( p i ∗ = 1 p^*_i=1 pi=1)时被激活。 c l s cls cls r e g reg reg 层的输出分别组成 { p i } \{p_i\} {pi} { t i } \{t_i\} {ti}

这两个项由 N c l s N_{cls} Ncls N r e g N_{reg} Nreg 归一化,并由平衡参数 λ λ λ 加权。在当前的实现中(如在发布的代码中),等式(1)中的 c l s cls cls m i n i − b a t c h mini-batch minibatch 的大小标准化(即 N c l s = 256 N_{cls}=256 Ncls=256), r e g reg reg 项由锚位置的数量标准化(即 N r e g   2400 N_{reg}~2400 Nreg 2400 )。默认情况下,设置 λ = 10 λ= 10 λ=10,因此 c l s cls cls r e g reg reg 项的权重大致相等。实验表明,结果在很宽的范围内对 λ λ λ 值不敏感(表 9 9 9)。还注意到,上述标准化不必要,可以进行简化

对于边界框回归,采用以下四个坐标参数:
(2) { t x = ( x − x a ) / w a , t y = ( y − y a ) / h a , t w = l o g ( w / w a ) , t h = l o g ( h / h a ) , t x ∗ = ( x ∗ − x a ) / w a , t y ∗ = ( y ∗ − y a ) / h a , t w ∗ = l o g ( w ∗ / w a ) , t h ∗ = l o g ( h ∗ / h a ) , \begin{cases} t_x=(x-x_a)/w_a,&t_y=(y-y_a)/h_a,\\ t_w=log(w/w_a),&t_h=log(h/h_a),\\ t^*_x=(x^*-x_a)/w_a,&t^*_y=(y^*-y_a)/h_a,\\ t^*_w=log(w^*/w_a),&t^*_h=log(h^*/h_a),\\ \end{cases}\tag2 tx=(xxa)/wa,tw=log(w/wa),tx=(xxa)/wa,tw=log(w/wa),ty=(yya)/ha,th=log(h/ha),ty=(yya)/ha,th=log(h/ha),(2)
其中, x , y , w , h x,y,w,h x,y,w,h 分别定义为锚框的中心坐标以及宽度和高度。变量 x , x a , x ∗ x,x_a,x^* x,xa,x 分别对应预测框,锚框和 G r o u n d   t r u t h Ground~truth Ground truth 框。这可以看作从锚框到邻近的 G r o u n d   t r u t h Ground~truth Ground truth 框的边界框回归。

然而,作者的方法以不同于以前基于感兴趣区域的方法 [1][2] 实现了边界框回归。在 [1][2] 中,边界框回归是在任意大小的 R o I s RoIs RoIs 池化的特征上进行的,回归权重由所有区域共享。在作者的阐述中,用于回归的特征在特征图上具有相同的空间大小( 3 × 3 3×3 3×3)。为了处理不同的尺度,学习了一组 k k k 个边界框回归器。每个回归器负责一个尺度和一个纵横比, k k k 个回归器不共享权重。因此,由于锚的设计,即使特征具有固定的尺寸/比例,仍然可以预测各种尺寸的边界框。


3.1.3、训练RPN

R P N RPN RPN 可以通过反向传播和随机梯度下降进行端到端的训练。作者遵循 [2] 中的 “以图像为中心” 的采样策略来训练这个网络。每一个 m i n i − b a t c h mini-batch minibatch 产生于包含许多正负样本锚的单个图像。可以优化所有锚的损失函数,但这将偏向负样本,因为它们占主导地位。因此作者随机抽取图像中的 256 256 256 个锚来计算一个 m i n i − b a t c h mini-batch minibatch 的损失函数,其中抽取的正锚和负锚的比例高达1 : 1。如果图像中正样本少于 128 128 128 个,用负样本填充 m i n i − b a t c h mini-batch minibatch

作者通过从标准差为 0.01 0.01 0.01 的零均值高斯分布中提取权重来随机初始化所有新层。所有其他层(即共享卷积层)都是通过用于 I m a g e N e t ImageNet ImageNet 分类 [36] 任务的预训练模型进行初始化的,这是标准实践 [5]。作者调整 Z F ZF ZF 网络的所有层, c o n v 3 _ 1 conv3\_1 conv3_1 层,并向上调整 V G G VGG VGG 网络,以节省内存 [2]。 P A S C A L   V O C PASCAL~VOC PASCAL VOC 数据集上, 60 k   m i n i − b a t c h 60k~mini-batch 60k minibatch 的学习率为 0.001 0.001 0.001,接下来的 20 k   m i n i − b a t c h 20k~mini-batch 20k minibatch 的学习率为 0.0001 0.0001 0.0001。作者使用的动量为 0.9 0.9 0.9,权重衰减为 0.0005 0.0005 0.0005 [37]。


3.2、RPN和Faster R-CNN共享特征

到目前为止,已经描述了如何训练一个区域提议生成网络,而没有考虑到基于区域的目标检测 C N N CNN CNN 将利用这些提议。对于检测网络,作者采用 F a s t   R − C N N Fast~R-CNN Fast RCNN [2]。接下来,描述学习由 R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 组成的具有共享卷积层的统一网络的算法(图 2 2 2)。

独立训练的 R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 将以不同的方式修改它们的卷积层。因此需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个单独的网络。作者讨论了训练共享特征的网络的三种方式:

  1. 交替训练。在这个解决方案中,首先训练 R P N RPN RPN,并使用这些提议来训练 F a s t   R − C N N Fast~R-CNN Fast RCNN 。由 F a s t   R − C N N Fast~R-CNN Fast RCNN 微调的网络然后被用于初始化 R P N RPN RPN,并且重复这个过程。这是本文所有实验中使用的解决方案。
  2. 近似联合训练。在这个解决方案中, R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 网络在训练期间合并成一个网络,如图 2 2 2 所示。在每次 S G D SGD SGD 迭代中,前向传播生成区域提议,在训练 F a s t   R − C N N Fast~R-CNN Fast RCNN 检测器时,这些提议被看作固定的、预先计算的。反向传播照常发生,其中对于共享层,来自 R P N RPN RPN 损失和 F a s t   R − C N N Fast~R-CNN Fast RCNN 损失的反向传播信号被组合。此解决方案易于实施,但是这个解决方案忽略了提议框坐标的导数 w . r . t . w.r.t. w.r.t.,提议框坐标也是网络响应,所以是近似的。在作者的实验中,根据经验发现,这种解算器产生了近似的结果,但与交替训练相比,训练时间减少了大约 25 − 50 % 25-50\% 2550%。这个解算器包含在作者发布的 P y t h o n Python Python 代码中。
  3. 非近似联合训练。如上所述, R P N RPN RPN 预测的边界框也是输入的函数。 F a s t   R − C N N Fast~R-CNN Fast RCNN 中的 R o I RoI RoI 池化层 [2] 接受卷积特征以及预测的边界框作为输入,因此,理论上有效的反向传播求解器也应该包括相对于框坐标的梯度 w . r . t . w.r.t. w.r.t. 。这些梯度在上述近似联合训练中被忽略。在一个非近似的联合训练解决方案中,需要一个 R o I RoI RoI 池化层,该层在框坐标 w . r . t . w.r.t. w.r.t. 下是可区分的。这是一个不寻常的问题,可以通过 [15] 中开发的 ‘ R o I   w a r p i n g RoI~warping RoI warping’ 层给出解决方案,这超出了本文的范围。

4步交替训练 在本文中,作者采用实用的四步训练算法,通过交替优化学习共享特征。在第一步中,按照第 3.1.3 3.1.3 3.1.3 节所述训练 R P N RPN RPN。这个网络是用 I m a g e N e t ImageNet ImageNet 预训练的模型初始化的,并针对区域提议任务进行了端到端的微调。在第二步,使用步骤 1 1 1 R P N RPN RPN 产生的提议,通过 F a s t   R − C N N Fast~R-CNN Fast RCNN 训练一个独立的检测网络。该检测网络也由 I m a g e N e t ImageNet ImageNet 预训练模型初始化。此时,这两个网络不共享卷积层。在第三步中,使用检测器网络来初始化 R P N RPN RPN 训练,但是将共享卷积层固定,只对 R P N RPN RPN 特有的层进行了微调。现在这两个网络共享卷积层。最后,保持共享卷积层固定,微调了 F a s t   R − C N N Fast~R-CNN Fast RCNN 的特有层。因此,两个网络共享相同的卷积层,并形成统一的网络。类似的交替训练可以进行更多的迭代,但是观察到的改进微不足道。


3.3、实现细节

作者在单一尺度 [1] [2] 图像上训练和测试区域提议和目标检测网络。重新缩放图像,使其较短边为 s = 600 s = 600 s=600 [2] 像素。多尺度特征提取(使用图像金字塔)可以提高精度,但不能在速度和精度之间做出很好的权衡。在重新缩放的图像上,最后一个卷积层上 Z F ZF ZF V G G VGG VGG 网络的总步长均为 16 16 16 像素,因此在调整尺寸前,典型 P A S C A L PASCAL PASCAL 图像( 500 × 375 500×375 500×375)上的总步长为 10 10 10 像素。即使如此大的步长也能提供良好的结果,采用较小的步长可以进一步提高精度。

对于锚,作者使用 3 3 3 个尺度,框面积为 12 8 2 128^2 1282 25 6 2 256^2 2562 51 2 2 512^2 5122 像素, 3 3 3 个长宽比为 1 : 1 1:1 1:1 1 : 2 1:2 1:2 2 : 1 2:1 2:1。这些超参数不是针对特定数据集精心选择的,将在下一节中提供关于它们效果的切除实验。如上所述,该解决方案不需要图像金字塔或滤波器金字塔来预测多尺度区域,从而节省了大量运行时间。图 3 3 3 (右)显示了本文的方法在各种比例和纵横比下的能力。表 1 1 1 显示了使用 Z F ZF ZF 网络的每个锚的平均提议大小。注意到,本算法允许比潜在感受野更大的预测。这种预测并非不可能——如果只有物体的中部可见,仍可以粗略推断出物体的范围。
表

需要小心处理跨越图像边界的锚框。在训练过程中,忽略了所有跨境锚,因此它们不会影响损失。对于典型的 1000 × 600 1000×600 1000×600 图像,总共大约有 20000 20000 20000 个( ≈ 60 × 40 × 9 ≈60×40×9 60×40×9)锚。忽略跨界锚后,每张图片大约有 6000 6000 6000 个锚用于训练。如果在训练中不忽略跨界异常值,它们会给纠正目标中的错误项带来很大困难,而且训练也不会收敛。然而,在测试期间,作者仍然在整个图像上使用全卷积 R P N RPN RPN 。这可能会生成跨界提议框,然后将其裁剪到图像边界。

一些 R P N RPN RPN 提议彼此高度重叠。基于提议区域的 c l s cls cls 分数,采用非最大抑制( N M S NMS NMS),减少提议区域上的冗余。作者将 N M S NMS NMS I o U IoU IoU 阈值定为 0.7 0.7 0.7,这样每张图像就有大约 2000 2000 2000 个提议区域。 N M S NMS NMS 不会损害最终的检测精度,但会大大减少提议的数量。 N M S NMS NMS 之后,使用排名前 N N N 的提议区域进行检测。在下文中,作者使用 2000 2000 2000 R P N RPN RPN 提议训练 F a s t   R − C N N Fast~R-CNN Fast RCNN ,但是在测试时评估不同数量的提议。

4、实验

4.1、PASCAL VOC上的实验结果

作者在 P A S C A L   V O C   2007 PASCAL~VOC~2007 PASCAL VOC 2007 上评估本文的方法。该数据集有大约 5 k 5k 5k 训练验证图像, 5 k 5k 5k 测试图像,超过 20 20 20 个目标类。作者也提供了一些模型在 P A S C A L   V O C   2012 PASCAL~VOC~2012 PASCAL VOC 2012 数据集上的结果。对于 I m a g e N e t ImageNet ImageNet 预训练网络,作者使用 Z F ZF ZF 网络的 f a s t fast fast 版本,该网络有 5 5 5 个卷积层和 3 3 3 个全连接层,以及公开的 V G G − 16 VGG-16 VGG16 模型,该模型有 13 13 13 个卷积层和 3 3 3 个全连接层。 作者主要评估了检测的 m A P mAP mAP ,因为这是目标检测任务的实际标准(而不是关注目标提议度量)。

2 2 2 (上)展示了使用不同目标提议方法, F a s t   R − C N N Fast~R-CNN Fast RCNN 训练和测试的结果。那些结果使用 Z F ZF ZF 网络。对于选择性搜索,通过 f a s t fast fast 模型生成大约 2000 2000 2000 个提议。对于 E d g e B o x e s EdgeBoxes EdgeBoxes,默认 E B EB EB 设置调节为 0.7   I o U 0.7~IoU 0.7 IoU。在 F a s t   R − C N N Fast~R-CNN Fast RCNN 框架下, S S SS SS m A P mAP mAP 58.7 % 58.7\% 58.7% E B EB EB m A P mAP mAP 58.6 % 58.6\% 58.6% R P N + F a s t   R − C N N RPN+Fast~R-CNN RPN+Fast RCNN 使用多达 300 300 300 个提议时,实现 59.9 % 59.9\% 59.9% m A P mAP mAP。由于共享卷积层,使用 R P N RPN RPN 比另外两种方法产生的检测系统更加快速。更少的提议也减少了区域级全连接层的损失。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第4张图片

RPN切除实验 为了证明 R P N RPN RPN 作为区域提议方法的有效性,作者设计了几个切除实验。首先,作者展示了 R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 共享卷积层的效果。 为了实现这一目的,在 4 4 4 步训练过程的第二步以后,停止训练。使用独立的网络,结果轻微的下降到 58.7 % 58.7\% 58.7% R P N + Z F RPN+ZF RPN+ZF 不共享,表 2 2 2)。产生这一结果的原因是,在第三步,调节后的检测器特征用于微调 R P N RPN RPN ,将会提升提议的质量。

接下来,解除 R P N RPN RPN 对训练 F a s t   R − C N N Fast~R-CNN Fast RCNN 检测网络的影响。 为了实现这一目的,作者通过使用 2000   S S 2000~SS 2000 SS 提议以及 Z F ZF ZF 网络来训练 F a s t   R − C N N Fast~R-CNN Fast RCNN 模型。固定检测器,通过改变测试时的提议区域来评估检测 m A P mAP mAP 。在这个切除实验中, R P N RPN RPN 不和检测器共享特征。

在测试时,用 300 300 300 R P N RPN RPN 提议取代 S S SS SS 取得 56.8 % 56.8\% 56.8% m A P mAP mAP m A P mAP mAP 的下降是因为训练和测试提议不一致。这一结果将作为接下来比较的基线。

令人惊讶的是,测试时,使用排名前 100 100 100 的提议 R P N RPN RPN 仍然有比较理想的结果( 55.1 % 55.1\% 55.1%),表明排名靠前的提议比较精确。在另一个极端,使用前 6000 6000 6000 R P N RPN RPN 提议(无 N M S NMS NMS)取得相近的 m A P mAP mAP 55.2 % 55.2\% 55.2%),表明 N M S NMS NMS 不会损害检测的 m A P mAP mAP ,并且可能减少误检。

接下来,测试时,通过关闭 R P N RPN RPN c l s cls cls r e g reg reg 输出中的任意一个来分别研究它们的作用。 测试时,移除 c l s cls cls 层(无 N M S NMS NMS 和排序)从未打分的区域中随机采集 N N N 个提议。 N = 1000 N=1000 N=1000 时, m A P mAP mAP 几乎不变( 55.8 % 55.8\% 55.8%),但是当 N = 100 N=100 N=100 时, m A P mAP mAP 显著降低到 44.6 % 44.6\% 44.6%这表明: c l s cls cls 分数能够解释排名最高的提议的精度。

另一方面,测试时移除 r e g reg reg 层(提议变为锚框), m A P mAP mAP 下降到 52.1 % 52.1\% 52.1%这表明:高质量的提议主要是由于边界框回归。锚框虽然具有多个尺度和长宽比,但不足以准确检测。

作者还评估了更强大的网络对 R P N RPN RPN 提议质量的影响。使用 V G G − 16 VGG-16 VGG16 来训练 R P N RPN RPN,并且仍然使用上述 S S + Z F SS+ZF SS+ZF 检测器。 m A P mAP mAP 56.8 % 56.8\% 56.8% (使用 R P N + Z F RPN+ZF RPN+ZF)提高到 59.2 % 59.2\% 59.2% (使用 R P N + V G G RPN+VGG RPN+VGG)。这是一个有希望的结果,因为它表明 R P N + V G G RPN+VGG RPN+VGG 的提议质量优于 R P N + Z F RPN+ZF RPN+ZF 的提议质量。 因为 R P N + Z F RPN+ZF RPN+ZF 的提议与 S S SS SS 有竞争力(当一致用于训练和测试时,两者都是 58.7 % 58.7 \% 58.7%),可以期望 R P N + V G G RPN+VGG RPN+VGG S S SS SS 更好。 以下实验证明了这一假设。

VGG-16性能 3 3 3 显示了 V G G − 16 VGG-16 VGG16 的提议和检测结果。使用 R P N + V G G RPN+VGG RPN+VGG,非共享特征的结果为 68.5 % 68.5\% 68.5%,略高于 S S SS SS 基线。如上所示,这是因为 R P N + V G G RPN+VGG RPN+VGG 生成的提议比 S S SS SS 更准确。与预先定义的 S S SS SS 不同, R P N RPN RPN 受到了积极的训练,并受益于更好的网络。对于特征共享变体,结果是 69.9 % 69.9\% 69.9%——比 S S SS SS 强基线好,但几乎没有提议成本。作者进一步在 P A S C A L V O C   2007 / 2012   t r a i n v a l PASCAL VOC~2007/2012~trainval PASCALVOC 2007/2012 trainval 联合集上训练了 R P N RPN RPN 和检测网络。 m A P mAP mAP 73.2 % 73.2\% 73.2%。图 5 5 5 显示了 P A S C A L   V O C   2007 PASCAL~VOC~2007 PASCAL VOC 2007 测试集的一些结果。在 P A S C A L   V O C   2012 PASCAL~VOC~2012 PASCAL VOC 2012 测试集(表 4 4 4)上,本文的方法通过在 V O C   2007   t r a i n v a l + t e s t VOC~2007~trainval+test VOC 2007 trainval+test V O C   2012   t r a i n v a l VOC~2012~trainval VOC 2012 trainval 的联合集上训练,取得了 70.4 % 70.4\% 70.4% m A P mAP mAP。表 6 6 6 和表 7 7 7 显示了详细的数字。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第5张图片
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第6张图片
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第7张图片
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第8张图片
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第9张图片
在表 5 5 5 中,作者总结了整个目标检测系统的运行时间。 S S SS SS 根据内容需要 1 − 2 1-2 12 秒(平均约 1.5 1.5 1.5 秒),而带有 V G G − 16 VGG-16 VGG16 F a s t   R − C N N Fast~R-CNN Fast RCNN 2000   S S 2000~SS 2000 SS 提议中需要 320 320 320 毫秒(如果在全连接层 [2] 中使用 S V D SVD SVD,则需要 223 223 223 毫秒)。本文的 V G G − 16 VGG-16 VGG16 系统总共需要 198 198 198 毫秒的提议和检测时间。共享卷积特性后, R P N RPN RPN 单独计算附加层只需 10 10 10 毫秒。由于提议较少(每张图片 300 300 300 个),本文的区域计算也较低。本系统使用 Z F ZF ZF 网络达到 17   f p s 17~fps 17 fps 的帧率。

对超参数的敏感性 8 8 8 中作者研究了锚的设置。默认使用 3 3 3 尺度和 3 3 3 长宽比(表 8 8 8 69.9 %   m A P 69.9\%~mAP 69.9% mAP )。如果每个位置只使用一个锚, m A P mAP mAP 下降 3 − 4 % 3-4\% 34% m A P mAP mAP 将会更高,如果使用 3 3 3 个尺度( 1 1 1 个长宽比)或者 3 3 3 个长宽比, 1 1 1 个尺度。这表明,使用多个尺寸锚作为回归参考是一个有效的方法。 在这个数据集上,仅使用具有 1 1 1 个纵横比 3 3 3 个尺度( 69.8 % 69.8\% 69.8%)的锚,效果相当于使用具有 3 3 3 个纵横比 3 3 3 个尺度的锚,这表明尺度和纵横比对于检测精度来说是相关的维度。 但是在设计中仍然采用这两个维度来保持系统的灵活性。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第10张图片
在表 9 9 9 中,作者比较了等式( 1 1 1)中 λ λ λ 的不同值。默认情况下,使用 λ = 10 λ= 10 λ=10,这使得标准化后等式( 1 1 1)中的两项的权重大致相等。表 9 9 9 显示,当 λ λ λ 在大约两个数量级( 1 1 1 100 100 100)范围内时,结果受到轻微影响(大约 1 % 1\% 1%)。这表明结果在很宽的范围内对 λ λ λ 不敏感。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第11张图片

Recall-to-IoU 分析 接下来,计算不同 I o U IoU IoU 值的提议召回率。值得注意的是,与最终检测精度相关的召回率度量是宽松的 [19]、[20]、[21]。使用这个度量来诊断提议方法比评估它更合适。

在图 4 4 4 中,展示了使用 300 300 300 1000 1000 1000 2000 2000 2000 个提议的结果。和 S S SS SS 以及 E B EB EB 进行比较, N N N 个提议是基于这些方法产生的置信度进行排名后取前 N N N 个提议得到的。图表显示,当提议数量从 2000 2000 2000 下降到 300 300 300 时, R P N RPN RPN 方法表现良好。这解释了为什么 R P N RPN RPN 在使用少至 300 300 300 个提议时具有良好的最终检测 m A P mAP mAP。正如之前分析的,这个属性主要归因于 R P N RPN RPN c l s cls cls 项。当提议较少时, S S SS SS E B EB EB 的召回率比 R P N RPN RPN 下降得更快。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第12张图片

一阶段检测vs两阶段提议+检测 O v e r F e a t OverFeat OverFeat 提出了一种新的检测方法,在通过卷积特征图的滑动窗口上使用分类器和回归器。它是一阶段,特定类检测管道,本文的方法由两阶段级联,由未知类提议和特定类的检测组成。在 O v e r F e a t OverFeat OverFeat 中,区域特征来自于尺度金字塔上一个长宽比的滑动窗口。这些特征用于同时确定对象的位置和类别。在 R P N RPN RPN 中,特征来自方形( 3 × 3 3×3 3×3)滑动窗口,并预测与拥有不同尺度和长宽比的锚相关的提议。尽管这两种方法都使用滑动窗口,但区域提议任务只是 F a s t   R − C N N Fast~R-CNN Fast RCNN 的第一阶段——下游 F a s t   R − C N N Fast~R-CNN Fast RCNN 检测器负责精炼它们的提议。在级联的第二阶段,来自提议框的区域特征被自适应池化,更忠实地覆盖了区域特征。作者认为这些特征会导致更准确的检测。

为了比较一级和两级系统,通过一级 F a s t   R − C N N Fast~R-CNN Fast RCNN 模拟了 O v e r F e a t OverFeat OverFeat 系统(因此也避免了实现细节的其他差异)。在这个系统中,提议是 3 3 3 个尺度( 128 128 128 256 256 256 512 512 512)和 3 3 3 个纵横比( 1 : 1 1:1 1:1 1 : 2 1:2 1:2 2 : 1 2:1 2:1)的密集滑动窗口。 F a s t   R − C N N Fast~R-CNN Fast RCNN 经过训练,可以预测特定类别的分数,并从这些滑动窗口中回归框的位置。因为 O v e r F e a t OverFeat OverFeat 系统采用图像金字塔,所以作者也使用从 5 5 5 个尺度提取的卷积特征进行评估。

10 10 10 比较了两阶段系统和两个一阶段系统的变体。使用 Z F ZF ZF 模型一阶段系统 m A P mAP mAP 达到 53.9 % 53.9\% 53.9%。比两阶段系统的 58.7 % 58.7\% 58.7% 4.8 % 4.8\% 4.8%。这个实验证明了级联区域提议和目标检测的有效性。类似的观察发布在 [2],[39] 中,用滑动窗口代替 S S SS SS 区域提议导致两篇论文中 m A P mAP mAP 大约下降 6 % 6\% 6%。还注意到,单阶段系统速度较慢,因为它有更多的提议需要处理。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第13张图片

4.2、MS COCO上的实验结果

M i c r o s o f t   C O C O Microsoft~COCO Microsoft COCO 80 80 80 个目标类,作者用训练集 80 k 80k 80k 图像,验证集 40 k 40k 40k 图像,测试集 20 k 20k 20k 图像进行了实验。在 I o U ∈ [ 0.5 : 0.05 : 0.95 ] IoU\in[0.5:0.05:0.95] IoU[0.5:0.05:0.95] 下评估 m A P mAP mAP m A P @ [ . 5 , . 95 ]   f o r   C O C O mAP@[.5,.95]~for~COCO mAP@[.5,.95] for COCO/ m A P @ 0.5   f o r   P A S C A L   V O C [email protected]~for~PASCAL~VOC mAP@0.5 for PASCAL VOC)。

作者做出了一些小的改动。模型在 8 − G P U 8-GPU 8GPU 上训练, R P N RPN RPN m i n i b a t c h mini_batch minibatch 大小为 8 8 8 1   p e r   G P U 1~per~GPU 1 per GPU), F a s t   R − C N N Fast~R-CNN Fast RCNN m i n i b a t c h mini_batch minibatch 大小为 16 16 16 2   p e r   G P U 2~per~GPU 2 per GPU)。 R P N RPN RPN F a s t   R − C N N Fast~R-CNN Fast RCNN 均使用学习率 0.003 0.003 0.003 训练 240 k 240k 240k 代,使用学习率 0.0003 0.0003 0.0003 训练 80 k 80k 80k 代。修改学习率是因为 m i n i b a t c h mini_batch minibatch 大小发生改变。锚使用 4 4 4 个尺度, 3 3 3 个长宽比(增加 6 4 2 64^2 642),主要是为了处理数据集中的小目标。而且在 F a s t   R − C N N Fast~R-CNN Fast RCNN 步,将负样本定义为在区间 [ 0 , 0.5 ) [0,0.5) [0,0.5) g r o u n d   t r u t h ground~truth ground truth 有最大交并比的样本。在 S P P n e t SPPnet SPPnet [ 0.1 , 0.5 ) [0.1,0.5) [0.1,0.5) 的负样本用于网络微调,但是 [ 0 , 0.5 ) [0,0.5) [0,0.5) 的负样本在采取难分负样本挖掘的 S V M SVM SVM 步仍然会被访问。但是 F a s t   R − C N N Fast~R-CNN Fast RCNN 舍弃了 S V M SVM SVM 步骤,所以 [ 0 , 0.1 ) [0,0.1) [0,0.1) 的负样本不会被访问。包含这一部分负样本将 F a s t   R − C N N Fast~R-CNN Fast RCNN F a s t e r   R − C N N Faster~R-CNN Faster RCNN C O C O COCO COCO 数据集提升 m A P @ 0.5 [email protected] mAP@0.5(但是对于 P A S C A L   V O C PASCAL~VOC PASCAL VOC 的影响可以忽略不计)。

11 11 11 公布了相关的结果, F a s t   R − C N N Fast~R-CNN Fast RCNN 基线比 [2] 中更高。推测导致这一差距的原因可能是负样本的定义不同,而且 m i n i b a t c h mini_batch minibatch 大小发生改变。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第14张图片


4.3、从MS COCO到PASCAL VOC

12 12 12 公布训练数据集对测试精度的影响。
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第15张图片
论文笔记:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks_第16张图片

5、总结

本文提出了 R P N s RPNs RPNs,用于高效、准确地生成区域提议。通过与下游检测网络共享卷积特征,区域提议步骤几乎是免费的。本文的方法使基于深度学习的单一目标检测系统能够以接近实时的帧率运行。学习的 R P N RPN RPN 还提高了区域提议质量,从而提高了整体目标检测精度。

[References]

(https://blog.csdn.net/weixin_41665360/article/details/86555723)

你可能感兴趣的:(目标检测论文,深度学习,计算机视觉经典论文笔记)