简介
作者以
C
O
C
O
{\rm COCO}
COCO数据集为例分析,并指出当前目标检测任务存在的一大挑战是数据集中目标尺寸的分布较大,尤其是对小目标的检测方法有待改进。由此论文提出
S
c
a
l
e
N
o
r
m
a
l
i
z
a
t
i
o
n
f
o
r
{\rm Scale\ Normalization\ for}
Scale Normalization for
I
m
a
g
e
P
y
r
a
m
i
d
s
,
S
N
I
P
{\rm Image\ Pyramids,SNIP}
Image Pyramids,SNIP方法以改善上述情况。实验结果为在
C
O
C
O
{\rm COCO}
COCO数据集上单个模型的
m
A
P
{\rm mAP}
mAP为
45.7
%
45.7\%
45.7%,集成三个模型的
m
A
P
{\rm mAP}
mAP为
48.3
%
48.3\%
48.3%。
论文原文 源码
0. Abstract
作者通过对比在
I
m
a
g
e
N
e
t
{\rm ImageNet}
ImageNet数据集上不同分类模型对于小目标的分类结果,指出卷积神经网络对输入尺度变化不具鲁棒性,即
C
N
N
{\rm CNN}
CNN不能很好地处理尺度变化的问题。论文提出一种在相同尺度的图像金字塔上训练模型,即保持金字塔每一层的训练样本尺度在特定的范围内。
论文贡献:(一)指出不同数据集间的迁移学习会带来
d
o
m
a
i
n
–
s
h
i
f
t
{\rm domain–shift}
domain–shift问题,即数据集分布差异带来的模型间的不吻合;(二)利用图像金字塔上训练模型,在金字塔的特定层上只处理特定尺寸范围内的样本,以此保证样本尺度的标准化。
1. Introduction
在引言部分,作者首先指出自
A
l
e
x
N
e
t
{\rm AlexNet}
AlexNet以来,基于深度学习的分类模型的分类错误率由
15
%
15\%
15%降低至
2
%
2\%
2%,而目标检测模型的提升不如前者。随后,作者认为数据集中目标尺度的多样化,以及小目标检测是导致上述问题的主要因素。
上图是 I m a g e N e t {\rm ImageNet} ImageNet和 C O C O {\rm COCO} COCO的对比,其中横坐标表示目标占整幅图像的大小,纵坐标表示累计分布。可以看到,在 C O C O {\rm COCO} COCO数据集曲线上的 ( 0.106 , 0.5 ) (0.106,0.5) (0.106,0.5)点可以得出近一半目标的尺寸仅占整幅图像的 1 / 10 1/10 1/10左右,即小目标是 C O C O {\rm COCO} COCO数据集的主体。此外,在 C O C O {\rm COCO} COCO数据集中,尺寸最小的第 9 / 10 9/10 9/10的目标占比是尺寸最小的第 1 / 10 1/10 1/10的目标占比的 20 20 20倍,即在 C O C O {\rm COCO} COCO数据集中,目标尺寸的分布变化较大。由于在训练目标检测模型时通常使用基于 I m a g e N e t {\rm ImageNet} ImageNet数据集的分类模型,而由图可知二者目标分布差异较大,使用迁移学习会产生相关问题(文中称为 d o m a i n – s h i f t {\rm domain–shift} domain–shift问题)。针对上述问题,前人工作已提出相关解决方案:
2. Related Work
利用较大分辨率的特征图保留了更丰富的小目标信息的特点, S D P {\rm SDP} SDP、 S S H {\rm SSH} SSH、 M S – C N N {\rm MS–CNN} MS–CNN等采用在不同分辨率的特征图下独立地检测不同尺度目标的方法; F P N {\rm FPN} FPN、 M a s k – R C N N {\rm Mask–RCNN} Mask–RCNN、 R e t i n a N e t {\rm RetinaNet} RetinaNet等以特征金字塔的形式融合不同分辨率的特征图,使得检测特征图里包含不同尺度的上下文信息。总的来说,对于数据集中尺度变化的问题,主要使用图像金字塔和特征金字塔两类方法。本文基于后者,使用 S N I P + D – R F C N {\rm SNIP+D–RFCN} SNIP+D–RFCN模型在 C O C O {\rm COCO} COCO数据集上的 A P 50 {\rm AP_{50}} AP50达 69.7 % {\rm 69.7\%} 69.7%,相比于原 D – R F C N {\rm D–RFCN} D–RFCN模型提高 7.4 {\rm 7.4} 7.4个百分点。
3. Image Classification at Multiple Scales
如上图,
C
N
N
–
B
{\rm CNN–B}
CNN–B的过程是:首先使用
I
m
a
g
e
N
e
t
{\rm ImageNet}
ImageNet数据集
224
×
224
{\rm 224×224}
224×224的图片训练
C
N
N
{\rm CNN}
CNN模型,然后通过下采样从
I
m
a
g
e
N
e
t
{\rm ImageNet}
ImageNet数据集中分别获得分辨率为
48
×
48
{\rm 48×48}
48×48、
64
×
64
{\rm 64×64}
64×64、
80
×
80
{\rm 80×80}
80×80、
96
×
96
{\rm 96×96}
96×96、
128
128
128
×
128
×128
×128的图片,最后通过上采样将其尺寸统一至
224
×
224
{\rm 224×224}
224×224后作为测试集。可以看到此时的输入图像分辨率较低,该部分实验的目的是测试数据集和训练数据集使用不同分辨率图片的对比。依次得到的分类结果如下图
(
a
)
(a)
(a):
图 ( a ) {\rm (a)} (a)的横坐标表示测试数据集的分辨率,由图可知测试数据集的分辨率与训练数据集的分辨率相差越大,则效果越差。由此,作者进行了接下来的实验。 C N N – B {\rm CNN–B} CNN–B和 C N N – B – F T {\rm CNN–B–FT} CNN–B–FT中训练数据集和测试数据集的分辨率相同,分别为 48 × 48 {\rm 48×48} 48×48和 96 × 96 {\rm 96×96} 96×96。不同的是 C N N – B – F T {\rm CNN–B–FT} CNN–B–FT所使用的是在低分辨率图像上上采样后的数据。实验结果如图 ( b ) {\rm (b)} (b)和 ( c ) {\rm (c)} (c)所示,图 ( b ) {\rm (b)} (b)表示均使用 48 × 48 {\rm 48×48} 48×48大小数据集作为测试集的实验结果,可以得到当训练数据集的分辨率同测试数据集的分辨率一致时可以提高检测分类准确率;图 ( c ) {\rm (c)} (c)表示均使用 96 × 96 {\rm 96×96} 96×96大小数据集作为测试集的实验结果。由 C N N – B {\rm CNN–B} CNN–B和 C N N – B – F T {\rm CNN–B–FT} CNN–B–FT的实验结果可以得到,使用高分辨率的训练数据的确能够提高模型的分类准确率。
4. Background
由于论文实验大都是基于对
D
–
R
F
C
N
{\rm D–RFCN}
D–RFCN的改进,本部分首先介绍
D
–
R
F
C
N
{\rm D–RFCN}
D–RFCN的相关内容。
R
C
N
N
{\rm RCNN}
RCNN系列目标检测方法以
R
o
I
{\rm RoI}
RoI池化层为界,被分为两个阶段。前一个阶段是
C
N
N
{\rm CNN}
CNN提取特征,第二阶段是处理候选框。但这两个阶段基本上是独立计算的,即
R
o
I
{\rm RoI}
RoI池化每次仅计算一个感兴趣区域,不能实现共享计算。作者为了将
F
C
N
{\rm FCN}
FCN引入目标检测任务中,提出位置敏感得分图,使得池化操作的计算可以共享,从而得到了
R
–
F
C
N
{\rm R–FCN}
R–FCN目标检测模型。
上图展示了
R
–
F
C
N
{\rm R–FCN}
R–FCN的核心模块。首先,输入图像经过卷积产生特征图,然后通过卷积产生一个
k
2
(
C
+
1
)
k^2(C+1)
k2(C+1)维的位置敏感得分图,其中
k
=
3
k=3
k=3表示位置敏感得分图的大小、
C
C
C表示类别数。对于每一个由
R
P
N
{\rm RPN}
RPN生成的
R
o
I
{\rm RoI}
RoI区域,通过池化得到一个大小为
k
×
k
×
(
C
+
1
)
k×k×(C+1)
k×k×(C+1)的特征图(池化的方式是,对于输出为橙色的位置,其根据特征图的对应颜色通道的池化得到;其余位置类似),得分图上每个位置的值分别对应于该方向上存在类别为
c
c
c的目标的概率。九种不同颜色对应于左上、正上等共九个方向。然后根据对得到的特征图的值进行投票,判断该位置是否存在目标。下图是
R
–
F
C
N
{\rm R–FCN}
R–FCN整体结构:
R – F C N {\rm R–FCN} R–FCN是基于 F a s t e r – R C N N {\rm Faster–RCNN} Faster–RCNN得到的,上面分支使用 R P N {\rm RPN} RPN模块产生感兴趣区域,然后通过论文提出的位置敏感得分图,结合 F C N {\rm FCN} FCN完成目标检测。而 D – R F C N {\rm D–RFCN} D–RFCN就是将可变形卷积模块集成到 R – F C N {\rm R–FCN} R–FCN中,可变形卷积的知识可以参考这里。
5. Data Variation or Correct Scale?
首先来看一组实验结果:
首先上述实验结果是在使用
1400
×
2000
{\rm 1400×2000}
1400×2000大小的图像训练的模型,
80
0
a
l
l
800_{all}
800all表示测试集的大小为
800
×
1400
{\rm 800×1400}
800×1400、
140
0
a
l
l
1400_{all}
1400all表示测试集的大小为
1400
×
2000
{\rm 1400×2000}
1400×2000,有图可知后者的效果要好于前者,这与前面分类模型实验结果的对比一致。但同时也观察到,这里的提升非常小,作者猜测是由于对于原数据的分辨率进行放大(原为
480
×
640
{\rm 480×640}
480×640)后,图像本来较大的目标变得更大而使得模型难以训练。对应于图
8
8
8中的
(
1
)
(1)
(1)。
图
7
7
7中的
140
0
<
80
p
x
1400_{<80px}
1400<80px表示模型使用
1400
×
2000
{\rm 1400×2000}
1400×2000大小的图像训练,同时忽略图中的大目标(大于
80
80
80像素)。但由图可知,其得到的结果不如前者。作者猜测是由于图像中的大目标约占总目标数的
3
/
10
3/10
3/10左右,大量数据的损失带来了模型性能的下降。对应于图
8
8
8中的
(
2
)
(2)
(2)。
M
S
T
{\rm MST}
MST表示传统意义上常用的多尺度训练,即在训练过程中随机采样输入图像的尺寸。但由图可知,该项的实验结果仅与
80
0
a
l
l
800_{all}
800all相当。这与论文一直贯彻的数据集中目标尺度分布较大是影响目标检测方法性能的主要因素的观点一致。对应于图
8
8
8中的
(
3
)
(3)
(3)。图中最后一项实验是使用本文方法
S
N
I
P
{\rm SNIP}
SNIP所得到的结果,提升较为明显。对应于图
8
8
8中的
(
4
)
(4)
(4)。
6. Object Detection on Image Pyramid
千呼万唤始出来,经过前面大量对比实验作者验证了
(
1
)
(1)
(1)训练数据集使用的尺寸与测试数据集使用尺寸不一致时会影响模型的性能;
(
2
)
(2)
(2)较大的训练图像的分辨率的确能够提高模型的性能;
(
3
)
(3)
(3)过大的输入图像分辨率中大目标会使得模型难以训练,可能不会带来想象中的提升;
(
4
)
(4)
(4)传统使用的多尺度训练方法取得的效果可以单纯通过增大输入训练图像分辨率而达到等。然后给出
S
N
I
P
{\rm SNIP}
SNIP的细节信息:
S
N
I
P
{\rm SNIP}
SNIP是对
M
S
T
{\rm MST}
MST的改进,在训练过程中,仅使用与预训练模型采用的数据的分辨率接近的样本参与训练。具体地,为了消除极端大或小的样本带来的影响,在
S
N
I
P
{\rm SNIP}
SNIP中,只对尺寸在特定范围内的目标反向传播训练。
上图描述了 S N I P {\rm SNIP} SNIP的详细过程。由输入图像得到图像金字塔,对于图像金字塔的每一层通过 R P N {\rm RPN} RPN产生候选区域。在此过程中,以图像金字塔中分辨率最大的图像为例,只选择位于该层所规定的范围内的标注框作为有效样本。如图中左侧的紫色虚线的标注框被视为无效,同时将与其交并比大于 0.3 0.3 0.3的先验框视为无效,小于 0.3 0.3 0.3的视为有效样本(即使用无效的标注框来筛选出无效的先验框)。在论文中, R C N {\rm RCN} RCN是一个分类网络,用于筛选出不符合规定范围的先验框(图中最右部分的紫色边界看)。这样,图像金字塔的每一层都有相应的有效标注框及有效先验框,规避了使用该层处理过大或过小的目标的问题。(这一段可以参考原文,具体实现细节可能要阅读源码了,有不适当的地方欢迎指正)
7. Experiments
8. Conclusion
作者从 I m a g e N e t {\rm ImageNet} ImageNet和 C O C O {\rm COCO} COCO数据集入手分析了数据集中目标分布的不平衡,指出目标检测性能受目标尺寸分布大的影响。同时采用一系列实验证明了训练模型数据集的分辨率同测试集的分辨率差异越大,检测的结果越差。根据前面实验的铺垫,作者提出了 S N I P {\rm SNIP} SNIP,基于图像金字塔实现多尺度训练。同时,在金字塔的每层限制了在该层处理的标注框和先验框的尺寸。
由于没有阅读源码,本文只总结了 S N I P {\rm SNIP} SNIP的大体结构和信息,详细内容请阅读论文原文。
参考
- Singh B, Davis L S. An analysis of scale invariance in object detection snip[C]// Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3578-3587.
- Dai J, Li Y, He K, et al. R-fcn: Object detection via region-based fully convolutional networks[C]//Advances in neural information processing systems. 2016: 379-387.
- https://blog.youkuaiyun.com/u014380165/article/details/80793334.