F a s t e r R − C N N : T o w a r d s R e a l − T i m e O b j e c t D e t e c t i o n Faster\ _{}R-CNN: Towards\ _{}Real-Time\ _{}Object\ _{}Detection Faster R−CNN:Towards Real−Time Object Detection
w i t h R e g i o n P r o p o s a l N e t w o r k s with \ _{}Region\ _{}Proposal\ _{}Networks with Region Proposal Networks
S h a o q i n g R e n , K a i m i n g H e , R o s s G i r s h i c k , a n d J i a n S u n Shaoqing\ _{}Ren, Kaiming\ _{}He, Ross\ _{}Girshick, and\ _{}Jian\ _{}Sun Shaoqing Ren,Kaiming He,Ross Girshick,and Jian Sun
F a s t e r R − C N N : 基 于 区 域 生 成 网 络 的 实 时 目 标 检 测 Faster\ _{}R-CNN:基于区域生成网络的实时目标检测 Faster R−CNN:基于区域生成网络的实时目标检测
摘要:最新的目标检测网络依靠候选区域算法来假设目标的位置。 SPPnet[1]和Fast R-CNN[2]等研究的进展减少了这些检测网络的运行时间,暴露了候选区域计算的瓶颈。在这项工作中,我们引入了一个区域生成网络(RPN),与检测网络共享完整图像的卷积特征,从而实现几乎不需要代价的候选区域。 RPN是一个完全卷积的网络,可以同时预测每个位置的目标边界和目标得分。对RPN进行了端到端的训练以生成高质量的候选区域,Fast R-CNN使用这些候选区域进行检测。通过共享RPN和Fast R-CNN的卷积特征,我们将RPN和Fast R-CNN进一步合并为一个网络——使用最近流行的带有“注意力”机制的神经网络术语,RPN组件告诉统一网络在哪里寻找。对于非常深的VGG-16模型[3],我们的检测系统在GPU上具有5fps(包括所有步骤)的帧频,同时在PASCAL VOC 2007、2012和MS COCO数据集上,每个图像仅包含300个候选框。在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是在多个赛道中获得第一名的作品的基础。代码已公开提供。
关键词:目标检测,候选区域,卷积神经网络
1 引言
候选区域方法(region proposal methods)(例如[4])和基于区域的卷积神经网络(RCNN)[5]的成功推动了目标检测的最新进展。尽管基于区域的CNN在计算上很昂贵,如最初在[5]中开发的,但由于在候选框之间共享卷积,因此其成本已大大降低[1],[2]。最近的典型,Faster R-CNN [2],在忽略候选区域花费的时间的情况下,使用非常深的网络实现了近乎实时的速度[3]。现在,候选框是最先进的检测系统中测试时间计算的瓶颈。
候选区域方法通常依赖廉价的特征和经济的推理方案。选择性搜索[4]是最流行的方法之一,它根据设计的底层特征贪婪地合并超像素。然而,与有效的检测网络相比[2],选择性搜索的速度要慢一个数量级,在CPU实现中每幅图像2秒。 EdgeBoxes [6]当前提供候选框质量和速度之间的最佳权衡,每张图像0.2秒。尽管如此,候选区域步骤仍然消耗与检测网络一样多的运行时间。
可能有人会注意到,基于区域的快速CNN充分利用了GPU的优势,而研究中使用的候选区域方法是在CPU上实现的,因此这种运行时间的比较是不公平的。加速候选框计算的一种明显方法是为GPU重新实现。这可能是一种有效的工程解决方案,但是重新实现会忽略下游的检测网络,因此会错过共享计算的重要机会。
在本文中,我们证明了算法上的改变(使用深度卷积神经网络来计算候选框)会带来一种简洁而有效的解决方案,考虑到检测网络的计算,候选框的计算几乎是不需要代价的。为此,我们介绍了与最先进的目标检测网络共享卷积层的新的区域生成网络(RPN)[1],[2]。通过在测试时共享卷积,计算候选框的边际成本很小(例如,每张图片10毫秒)。
我们的观察是基于区域的检测器(如Fast R-CNN)使用的卷积特征图也可用于生成候选区域。在这些卷积特征之上,我们通过添加一些其他卷积层来构造RPN,这些卷积层同时回归在常则网格上的每个位置的区域边界和客观性得分。因此,RPN是一种全卷积网络(FCN)[7],可以专门针对生成检测候选框的任务进行端到端训练。
RPN旨在以各种尺度和纵横比有效预测候选区域。与使用图像金字塔(图1,a)或过滤器金字塔(图1,b)的流行方法[8],[9],[1],[2]相比,我们引入了新的“anchor”框可以在多个尺度和纵横比下用作参考。我们的方案可以看作是回归参考的金字塔(图1,c),它避免了枚举具有多种尺度或纵横比的图像或过滤器。当使用单尺度图像进行训练和测试时,该模型表现良好,从而提高了运行速度。
为了将RPN与Fast R-CNN [2]目标检测网络统一起来,我们提出了一种训练方案,该方案在对在候选区域任务进行微调与对目标检测进行微调之间交替,同时保持候选框不变。该方案可以快速收敛并生成具有在两个任务之间共享的卷积特征的统一网络。
我们在PASCAL VOC检测基准[11]上全面评估了我们的方法,其中具有Fast R-CNN的RPN产生的检测精度要优于具有Fast R-CNN的选择性搜索的强基准。同时,我们的方法在测试时几乎免除了选择性搜索的所有计算负担——候选框的有效运行时间仅为10毫秒。使用昂贵的非常深的模型[3],我们的检测方法在GPU上仍然具有5fps的帧速率(包括所有步骤),因此从速度和准确性方面来说是实用的目标检测系统。我们还报告了MS COCO数据集的结果[12],并使用COCO数据研究了PASCAL VOC的改进。代码已在https://github.com/shaoqingren/faster_ rcnn(MATLAB)和https://github.com/rbgirshick/py-faster-rcnn(Python)中公开提供。
该手稿的初步版本先前已发布[10]。从那时起,RPN和Faster R-CNN的框架已被采用并推广到其他方法中,例如3D目标检测[13],基于部件的检测[14],实例分割[15]和图像描述[16]。我们快速有效的目标检测系统也已经建立在商业系统中,例如Pinterests [17],据报道用户参与度有所提高。
在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是ImageNet检测、ImageNet定位,COCO检测和COCO分割中几个第一名的基础[18]。 RPN完全学会了根据数据候选区域,因此可以很容易地从更深、更具表现力的特征(例如[18]中采用的101层残差网络)中受益。在这些比赛中,其他一些领先的参赛者也使用了Faster R-CNN和RPN。这些结果表明,我们的方法不仅是一种经济实用的解决方案,而且是提高目标检测精度的有效途径。
2 相关工作
目标候选框(Object Proposals)。 关于目标候选方法的文献很多。可以在[19],[20],[21]中找到目标候选方法的综合研究和比较。广泛使用的目标候选方法包括基于超像素分组的方法(例如,选择性搜索[4],CPMC [22],MCG [23])和基于滑动窗口的方法(例如,窗口中的目标[24],EdgeBoxes [ 6])。采用目标候选方法作为独立于检测器的外部模块(例如,选择性搜索[4]目标检测器,RCNN [5]和Fast R-CNN [2])。
用于目标检测的深度网络(Deep Networks for Object Detection)。 R-CNN方法[5]端到端训练CNN将候选区域分类为目标类别或背景。 R-CNN主要充当分类器,它不预测目标边界(通过边界框回归进行精炼除外)。它的准确性取决于区域候选模块的性能(请参见[20]中的比较)。几篇论文提出了使用深度网络预测目标边界框的方法[25],[9],[26],[27]。在OverFeat方法[9]中,训练了一个全连接层来预测假设单目标的定位任务的框坐标。然后将全连接层转换为卷积层,以检测多个类特定的目标。 MultiBox方法[26],[27]从网络中生成候选区域,该网络的最后一个全连接层同时预测多个与类别无关的框,从而概括了OverFeat的“single-box”方式。这些与类别无关的框用作R-CNN的候选框[5]。与我们的全卷积方案相比,MultiBox生成网络适用于单幅图像作物或多个大图像作物(例如224×224)。 MultiBox在候选框和检测网络之间不共享特征。我们稍后将在我们的方法中更深入地讨论OverFeat和MultiBox。与我们的工作同时,开发了DeepMask方法[28],用于学习分割候选框。
卷积[9],[1],[29],[7],[2]的共享计算已吸引了越来越多的关注,来进行有效而准确的视觉识别。 OverFeat论文[9]从图像金字塔计算卷积特征,以进行分类、定位和检测。共享卷积特征图上的自适应大小池化(SPP)[1]被开发用于有效的基于区域的目标检测[1],[30]和语义分割[29]。 Fast R-CNN [2]可以对共享卷积特征进行端到端检测器训练,并显示出令人信服的准确性和速度。
3 Faster R-CNN
我们的目标检测系统称为Faster R-CNN,由两个模块组成。第一个模块是候选区域的深度全卷积网络,第二个模块是使用候选区域的Fast R-CNN检测器[2]。整个系统是用于目标检测的单个统一网络(图2)。 RPN模块使用最近流行的带有“注意力” [31]机制的神经网络术语,可以告诉Fast R-CNN模块在哪里寻找。在第3.1节中,我们介绍了用于候选区域的网络的设计和属性。在第3.2节中,我们开发了用于训练具有共享特征的两个模块的算法。
3.1 区域生成网络
区域生成网络(RPN)接收(任意大小的)图像作为输入,并输出一组矩形的目标候选框,每个候选框均具有客观得分。我们使用全卷积网络对该过程进行建模[7],我们将在此部分进行描述。因为我们的最终目标是与Fast R-CNN目标检测网络共享计算[2],所以我们假设两个网络共享一组共同的卷积层。在我们的实验中,我们研究了具有5个可共享卷积层的Zeiler和Fergus模型[32](ZF),以及具有13个可共享卷积层的Simonyan和Zisserman模型[3](VGG-16)。
为了生成候选区域,我们在最后共享的卷积层输出的卷积特征图上滑动一个小型网络。这个小型网络将输入卷积特征图的n×n空间窗口作为输入。每个滑动窗口都映射到一个较低维的特征(ZF为256维,VGG为512维,后面是ReLU [33])。此特征被喂入两个同级的全连接层——框回归层(reg)和框分类层(cls)。在本文中,我们使用n = 3,注意输入图像上的有效感受野很大(ZF和VGG分别为171和228像素)。在图3的单个位置(左)显示了此微型网络。请注意,由于微型网络以滑动窗口的方式运行,因此全连接层将在所有空间位置上共享。自然地,该架构由n×n卷积层和两个同级1×1卷积层(分别用于reg和cls)实现。
3.1.1 Anchors
在每个滑动窗口位置,我们同时预测多个候选区域,其中每个位置的最大可能候选框数目表示为k。因此,reg层有4k个输出,对k个框的坐标进行编码,而cls层则输出2k个得分,这些得分评估每个候选框的目标或非目标的概率。相对于k个参考框(称为anchor),对k个候选框进行了参数化。anchor位于相关滑动窗口的中心,并与尺度和长宽比相关(图3,左)。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置产生k = 9个anchor。对于大小为W×H(通常约为2400)的卷积特征图,总共有WHk个anchor。
平移不变的anchor
我们的方法的一个重要特性是,在anchor和计算相对于anchor的候选框的函数方面,它都是平移不变的。如果平移了图像中的一个目标,则该候选框应进行平移,并且相同的函数应能够在任一位置预测该候选框。此平移不变性由我们的方法保证。作为比较,MultiBox方法[27]使用k均值生成800个不是平移不变的anchor。因此,MultiBox不保证平移目标时会生成相同的候选框。
平移不变性还减小了模型大小。 MultiBox具有(4 +1)×800维的全连接输出层,而在k = 9 anchor的情况下,我们的方法具有(4 + 2)×9维的卷积输出层。结果,我们的输出层具有
2.8
×
1
0
4
2.8×10^4
2.8×104个参数(VGG-16为512×(4 + 2)×9),比具有
6.1
×
1
0
6
6.1×10^6
6.1×106个参数(1536×(4 + 1)× 800 适用于MultiBox [27]中的GoogleNet [34])。如果考虑特征投影层,我们的候选层的参数仍然比MultiBox少一个数量级。我们希望我们的方法在较小的数据集(如PASCAL VOC)上有较小的过拟合风险。
多尺度anchor作为回归参考
我们anchor的设计提出了一种解决多种尺度(和纵横比)的新方案。如图1所示,有两种流行的多尺度预测方法。第一种方法是基于图像/特征金字塔的,例如在DPM [8]和基于CNN的方法[9],[1],[2]中。图像会在多尺度上调整大小,并针对每个尺度计算特征图(HOG [8]或深度卷积特征[9],[1],[2])(图1(a))。这种方法通常有用但很费时。第二种方法是在特征图上使用多个尺度(和/或纵横比)的滑动窗口。例如,在DPM [8]中,使用不同大小的滤波器(例如5×7和7×5)分别训练不同长宽比的模型。如果使用这种方法处理多个尺度,则可以将其视为“滤波器金字塔”(图1(b))。第二种方法通常与第一种方法一起使用[8]。
相比之下,我们基于anchor的方法是构建anchor金字塔,这更具成本效益。我们的方法参照多个尺度和纵横比的anchor box对边界框进行分类和回归。它仅依赖单一尺度的图像和特征图,并使用单一大小的滤波器(在特征图上滑动窗口)。我们通过实验证明了该方案对解决多种尺度和尺寸的影响(表8)。
由于基于anchor的这种多尺度设计,我们可以在单尺度图像上简单地使用卷积特征计算,正如Fast R-CNN检测器所做的那样[2]。多尺度anchor的设计是共享特征而无需花费额外代价解决尺度的关键组成部分。
3.1.2 损失函数
为了训练RPN,我们为每个anchor分配一个二进制类标签(无论是不是目标)。我们为两种anchor分配一个正标签:(i)与地面真实框重叠中具有最高的交并比(IoU)的anchor,或(ii)与地面真实框重叠中具有高于0.7IoU的anchor。请注意,单个地面真实框可能为多个anchor分配正标签。通常,第二个条件足以确定正样本。但是我们仍然采用第一个条件是因为在极少数情况下,第二个条件可能找不到正样本。如果所有地面真实框的IoU值均低于0.3,则为非正anchor分配负标签。既非正也非负的anchor对训练目标没有帮助。
通过这些定义,我们在Fast R-CNN [2]中将多任务损失之后的目标函数减至最小。我们对图像的损失函数定义为:
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\left ( \left \{ p_{i} \right \}, \left \{ t_{i}\right \} \right )=\frac{1}{N_{cls}}\sum _{i}L_{cls}\left (p_{i}, p_{i}^{*} \right )+\lambda \frac{1}{N_{reg}}\sum _{i} p_{i}^{*}L_{reg}\left (t_{i}, t_{i}^{*} \right )
L({pi},{ti})=Ncls1i∑Lcls(pi,pi∗)+λNreg1i∑pi∗Lreg(ti,ti∗)
在这里,
i
i
i是小批量中anchor的索引,而
p
i
p_{i}
pi是anchor
i
i
i作为目标的预测概率。如果anchor为正,则地面真实标签
p
i
∗
p_{i}^*
pi∗为1;如果anchor为负,则为0。
t
i
t_{i}
ti是代表预测边界框的4个参数化坐标的向量,而
t
i
∗
t_{i}^*
ti∗是与正的anchor关联的地面真实框的参数化坐标。两类(目标与非目标)的分类损失
L
c
l
s
L_{cls}
Lcls是对数损失。对于回归损失,我们使用
L
r
e
g
(
t
i
,
t
i
∗
)
=
R
(
t
i
−
t
i
∗
)
L_{reg}\left (t_{i}, t_{i}^{*} \right )= R\left (t_{i}-t_{i}^{*} \right )
Lreg(ti,ti∗)=R(ti−ti∗),其中
R
R
R是在[2]中定义的鲁棒损失函数(平滑L1)。术语
p
i
∗
L
r
e
g
p_{i}^*L_{reg}
pi∗Lreg表示仅对正的anchor(
p
i
∗
p_{i}^*
pi∗ = 1)激活回归损失,否则就禁用(
p
i
∗
p_{i}^*
pi∗ = 0)。cls和reg层的输出分别由
{
p
i
}
\left \{p_{i}\right \}
{pi}和
{
t
i
}
\left \{t_{i}\right \}
{ti}组成。
两项通过
N
c
l
s
N_{cls}
Ncls和
N
r
e
g
N_{reg}
Nreg归一化,并通过平衡参数
λ
λ
λ加权。在我们当前的实现中(如在已发布的代码中),等式(1)中的
c
l
s
cls
cls项通过小批量尺寸(即
N
c
l
s
=
256
N_{cls} = 256
Ncls=256)进行归一化,而
r
e
g
reg
reg项通过anchor位置的数量(即,
N
r
e
g
〜
2
,
400
N_{reg}〜2,400
Nreg〜2,400)。默认情况下,我们将
λ
λ
λ设置为10,因此
c
l
s
cls
cls和
r
e
g
reg
reg项的权重大致相等。我们通过实验表明,结果对广泛范围内的
λ
λ
λ值不敏感(表9)。我们还注意到,上面的标准化不是必需的,可以简化。
对于边界框回归,我们采用如下的4个坐标的参数化[5]:
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{matrix} 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{matrix}
tx=(x−xa)/wa,ty=(y−ya)/ha tw=log(w/wa),th=log(h/ha) tx∗=(x∗−xa)/wa,ty∗=(y∗−ya)/hatw∗=log(w∗/wa),th∗=log(h∗/ha)
其中
x
x
x,
y
y
y,
w
w
w和
h
h
h表示框的中心坐标及其宽度和高度。变量
x
x
x,
x
a
x_{a}
xa和
x
∗
x^∗
x∗分别是预测框、anchor box和地面真实框(对于
y
y
y,
w
w
w,
h
h
h同样)。可以将其视为从anchor box到附近的地面真实框的边界框回归。
然而,我们的方法通过与以前基于RoI的(感兴趣区域)方法[1],[2]不同的方式实现边界框回归。在[1],[2]中,对从任意尺寸的RoIs合并的特征执行边界框回归,并且回归权重由所有区域大小共享。在我们的公式中,用于回归的特征在特征图上具有相同的空间大小(3×3)。为了说明变化的大小,学习了一组k个边界框回归器。每个回归器负责一个尺度和一个长宽比,而k个回归器不共享权重。这样,由于anchor的设计,即使特征具有固定的大小/尺度,仍然可以预测各种大小的anchor。
3.1.3 训练RPN
可以通过反向传播和随机梯度下降(SGD)端到端地训练RPN [35]。我们遵循[2]中的“以图像为中心”的采样策略来训练该网络。每个小批量均来自包含多个正负样本anchor的单个图像。可以针对所有anchor的损失函数进行优化,但是由于它们占主要地位,因此会偏向于负样本。取而代之的是,我们在图像中随机采样256个anchor,以计算小批量的损失函数,其中正样本和负样本的采样率之比最高为1:1。如果图像中的正样本少于128个,则用负样本填充小批量。
我们通过从零均值高斯分布中提取权重(标准偏差为0.01)来随机初始化所有新的层。通过预训练ImageNet分类模型[36],可以初始化所有其他层(即共享卷积层),这是标准做法[5]。我们调整ZF网络的所有层,并转换conv3_1以及VGG网络以节省内存[2]。对于PASCAL VOC数据集,我们对6万个小批量使用0.001的学习率,对接下来的2万小批量使用0.0001的学习率。我们使用0.9的动量和0.0005的权重衰减[37]。我们使用Caffe实现 [38]。
3.2 RPN和Fast R-CNN的共享功能
到目前为止,我们已经描述了如何训练网络以生成区域建议,而无需考虑将利用这些建议的基于区域的对象检测CNN。对于检测网络,我们采用快速R-CNN [2]。接下来,我们描述学习具有RPN和Fast R-CNN并具有共享卷积层的统一网络的算法(图2)。
经过独立训练的RPN和Fast R-CNN都将以不同的方式修改其卷积层。因此,我们需要开发一种技术允许在两个网络之间共享卷积层,而不是学习两个单独的网络。我们讨论了三种共享功能的网络训练方法:
(i)交替训练(Alternating training)。在此解决方案中,我们首先训练RPN,然后使用这些候选框来训练Fast R-CNN。然后,将使用Fast R-CNN调整的网络初始化RPN,然后重复此过程。这是本文所有实验中使用的解决方案。
(ii)近似联合训练(Approximate joint training)。在此解决方案中,如图2所示,在训练过程中将RPN和Fast R-CNN网络合并为一个网络。在每次SGD迭代中,前向传播生成的候选区域在训练Fast R-CNN检测器时都像固定的预先计算的候选框一样对待。反向传播照常进行,对于共享层,来自RPN损失和Fast R-CNN损失的反向传播信号被组合在一起。该解决方案易于实现。但是此解决方案忽略了导数w.r.t.候选框的坐标也是网络响应,因此是近似值。在我们的实验中,我们凭经验发现该求解器产生的结果接近,但与交替训练相比,训练时间减少了约25-50%。此求解器包含在我们发布的Python代码中。
(iii)非近似联合训练(Non-approximate joint training)。如上所述,RPN预测的边界框也是输入的函数。Fast R-CNN中的RoI池化层[2]接受卷积特征,并接受预测的边界框作为输入,因此,理论上有效的反向传播求解器也应包含梯度w.r.t.框坐标。这些梯度在上面的近似联合训练中被忽略。在一个非近似的联合训练解决方案中,我们需要一个w.r.t.框坐标。这是一个重要的问题,可以通过[15]中开发的“RoI warping”层来提供解决方案,这超出了本文的范围。
4步交替训练(4-Step Alternating Training)。在本文中,我们采用实用的4步训练算法来通过交替优化学习共享特征。第一步,我们按照3.1.3节所述训练RPN。该网络使用ImageNet预先训练的模型进行初始化,并针对区域候选任务端到端进行了微调。在第二步中,我们使用step-1 RPN生成的候选框,通过Fast R-CNN训练一个单独的检测网络。该检测网络也由ImageNet预训练模型初始化。此时,这两个网络不共享卷积层。第三步,我们使用检测器网络初始化RPN训练,但是我们修复了共享卷积层,并且仅微调了RPN特有的层。现在,这两个网络共享卷积层。最后,保持共享卷积层固定不变,我们对Fast R-CNN的唯一层进行微调。这样,两个网络共享相同的卷积层并形成统一的网络。可以进行类似的交替训练进行更多的迭代,但是我们观察到的改进微不足道。
3.3 实现细节
我们在单一尺度的图像上训练和测试候选区域和目标检测网络[1],[2]。我们重新缩放图像,使其短边为s = 600像素[2]。多尺度特征提取(使用图像金字塔)可能会提高准确度,但并不能表现出良好的速度精度权衡[2]。在重新缩放的图像上,最后一个卷积层上的ZF和VGG网络的总跨度为16像素,因此在调整大小之前,在典型的PASCAL图像上的总跨度为〜10像素(〜500×375)。尽管可以通过较小的步幅进一步提高精度,但即使是这样大的步幅也可以提供良好的结果。
对于anchor,我们使用3个尺度,框区域分别为1282、2562和5122像素,以及3个宽高比为1:1、1:2和2:1。这些超参数不是为特定的数据集精心选择的,我们将在下一部分中提供有关其影响的消融实验(ablation experiment)。如前所述,我们的解决方案不需要图像金字塔或滤波器金字塔即可预测多个尺度的区域,从而节省了可观的运行时间。图3(右)显示了我们的方法在各种尺度和纵横比下的性能。表1显示了使用ZF网络为每个anchor学习的平均候选框大小。我们注意到,我们的算法所允许的预测大于潜在的感受野。这样的预测并非没有可能-如果只有目标的中间可见,则仍可以大致推断出目标的范围。
跨图像边界的anchor box需要小心处理。在训练期间,我们将忽略所有跨边界anchor,因此它们不会造成损失。对于典型的1000×600图像,总共将有大约20000(≈60×40×9)个anchor。忽略跨边界anchor,每个图像大约有6000个anchor用于训练。如果在训练中不忽略边界异常值,则会在目标中引入较大且难以校正的误差项,并且训练不会收敛。但是,在测试过程中,我们仍将全卷积RPN应用于整个图像。这可能会生成跨边界候选框,我们会将其裁剪到图像边界。
一些RPN候选框彼此高度重叠。为了减少冗余,我们基于候选区域的cls分数采用非极大抑制(NMS)。我们将NMS的IoU阈值固定为0.7,这使每个图像有大约2000个候选区域。正如我们将显示的那样,NMS不会损害最终的检测准确性,但是会大大减少候选框的数量。在NMS之后,我们使用排名前N位的候选区域进行检测。在下文中,我们使用2000 RPN候选框训练Fast R-CNN,但在测试时评估不同数量的候选框。
4 实验
4.1 PASCAL VOC的实验
- Ablation Experiments on RPN
- Performance of VGG-16
- Sensitivities to Hyper-parameters
- Analysis of Recall-to-IoU
- One-Stage Detection vs. Two-Stage Proposal + Detection
4.2 MS COCO实验
4.3 从MS COCO到PASCAL VOC
5 结论
我们已经提出了高效、准确地生成候选区域的RPN。通过与下游检测网络共享卷积特征,候选区域步骤几乎是不需要代价的。我们的方法使统一的基于深度学习的目标检测系统,其能够以接近实时的帧速率运行。所学习的RPN还提高了候选区域质量,从而提高了总体目标检测精度。