(二十)论文阅读 | 目标检测之SNIPER


简介

在这里插入图片描述

图1:论文原文

论文是发表在 N I P S   2018 {\rm NIPS\ 2018} NIPS 2018上的一篇关于目标检测的论文。如标题所示,论文的主要贡献是提出一种高效的多尺度训练方法,实际上包含了对 S N I P {\rm SNIP} SNIP的改进。实验结果为在 C O C O {\rm COCO} COCO数据集上,基于 F a s t e r – R C N N + R e s – {\rm Faster–RCNN+Res–} FasterRCNN+Res N e t 101 {\rm Net101} Net101及论文提出的方法,其 m A P {\rm mAP} mAP可达 47.6 % {\rm 47.6\%} 47.6%。在速度方面,单 G P U {\rm GPU} GPU每秒可处理 5 {\rm 5} 5张输入图像。
论文原文 源码


0. Abstract

论文提出一种实例级的多尺度训练方法, S N I P E R {\rm SNIPER} SNIPER。与传统处理图像金字塔的方式(逐层逐像素处理)不同, S N I P E R {\rm SNIPER} SNIPER仅关注标注框附近的上下文区域(文中称之为 c h i p s chips chips,本文译为碎片)。同时,这里每层标注框的选取方式参考 S N I P {\rm SNIP} SNIP,即仅选择特定尺寸的标注框。在生成负样本时,碎片通过 R P N {\rm RPN} RPN网络生成。因此,在训练过程中,碎片是根据图像中场景的复杂性自适应生成的。最后, S N I P E R {\rm SNIPER} SNIPER打破了想要在实例级任务上获得好的结果,其模型输入必须是高分辨率图像的观点。
论文贡献:(一)提出一种高效的多尺度训练方法,可以有效减少模型的计算量,在获得 S N I P {\rm SNIP} SNIP相当精度的前提下,速度是其 3 {\rm 3} 3倍之多;(二)指出在训练高性能目标检测器时,我们不要仅关注输入图像的分辨率,而要更加注重采样的正负样本的质量。


1. Introduction

作者根据人类视觉系统的规律得出:当我们集中于附近的目标时,远处的目标会变得模糊 ,并且我们很难同时关注不同尺度的目标;同时在给定时间点,我们仅能够有效处理小范围视野的信息,自然而然地忽略掉视野中的其他内容。而当前实例级的视觉识别任务,如目标检测,偏离了这种处理视觉信息的方式。通常为了实现多尺度训练, R C N N {\rm RCNN} RCNN系列等方法基于金字塔结构逐层逐像素地处理,这带来了计算量的显著增加。

S N I P {\rm SNIP} SNIP所作的工作的就是在多尺度训练中,忽略掉极端尺寸目标的梯度,如高分辨率图中的大目标和低分辨率图中的小目标等。针对 S N I P {\rm SNIP} SNIP的工作,作者指出是否在金字塔上处理整幅图像(对应于文中提出的裁剪策略)?是否可以仅在目标周围采样(忽略掉图中的其余区域,对应于第一段的内容)?

同时作者也指出,忽略掉图像中的某些区域能够带来计算量的减少,但同时也有可能丢失重要信息。所以在多尺度训练过程中,应权衡计算量、上下文、负样本采样(如何高效地忽略掉图像的背景区域,同时不丢失重要信息)等方面。由此,作者提出 S N I P E R {\rm SNIPER} SNIPER,它基于图像内容在整幅图像中自适应地采样碎片。其中,正类碎片基于标注实例得到,使用 R P N {\rm RPN} RPN产生负类碎片(这两个方面后面会单独说明)。作者指出, S N I P E R {\rm SNIPER} SNIPER能够获得同 S N I P {\rm SNIP} SNIP相当的精度,同时大幅提升了模型的推理速度。


2. Background

我们首先来介绍文中大量提及的 R C N N {\rm RCNN} RCNN F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN
在这里插入图片描述

图2:RCNN

首先对于输入图像,使用 S e l e c t i v e   S e a r c h {\rm Selective\ Search} Selective Search算法产生约 2 k {\rm 2k} 2k个建议框。然后对于每个建议框,将其尺寸调整为 224 × 224 {\rm 224×224} 224×224(感觉是为了迎合 I m a g e N e t {\rm ImageNet} ImageNet数据集的预训练模型?)。对于每个调整尺寸后的建议框,使用 C N N {\rm CNN} CNN提取特征,最后进行回归操作和使用 S V M {\rm SVM} SVM分类。在 R C N N {\rm RCNN} RCNN中,由于所有的建议区域都会被调整为固定尺寸,检测模型只用适应这一种固定的尺寸,所以 R C N N {\rm RCNN} RCNN具有良好的尺度不变性。但同时我们也可以看到,由于没有共享卷积运算, R C N N {\rm RCNN} RCNN模型的计算量验证依赖于建议区域的数量。

在这里插入图片描述

图3:Fast RCNN

R C N N {\rm RCNN} RCNN最大的不同是, F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN将利用 S e l e c t i v e   S e a r c h {\rm Selective\ Search} Selective Search产生的建议区域映射到特征图上(如上图中的红色框所示),从而实现了卷积计算的共享。然后,使用 R o I {\rm RoI} RoI池化将映射后的建议区域调整为固定尺寸,最后进行回归操作和使用 S o f t m a x {\rm Softmax} Softmax分类。但同时我们注意到,不同大小的目标实质上是在同一尺度下的特征图上处理的,这破坏了 R C N N {\rm RCNN} RCNN原来的尺度不变性(即 F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN必须适应不同尺度图像的输入,即模型需要在多尺度条件下训练才能保证其检测效果的鲁棒性)。

作者综合分析 R C N N {\rm RCNN} RCNN F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN的优势和劣势,所提出的 S N I P E R {\rm SNIPER} SNIPER通过产生特定尺度的碎片保留了二者的优点,这些碎片涵盖了尽可能多的特定尺度的建议区域。像 F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN一样, S N I P E R {\rm SNIPER} SNIPER对在碎片内的所有建议区域进行高效的分类(将 S N I P E R {\rm SNIPER} SNIPER中的碎片类比为 F a s t {\rm Fast} Fast R C N N {\rm RCNN} RCNN的特征图,碎片内的建议区域即为 F a s t   R C N N {\rm Fast\ RCNN} Fast RCNN中映射到特征图上的建议区域)。同时,由于 S N I P E R {\rm SNIPER} SNIPER不对含大目标的图像进行上采样、忽略容易分类的背景区域,使其比 F a s t {\rm Fast} Fast R C N N {\rm RCNN} RCNN的训练速度更快。

作者指出在 S N I P {\rm SNIP} SNIP中,尽管极端尺寸目标的梯度被忽略(即不参与训练),它仍可被看做是几乎使用了图像金字塔的所有像素,这同样会产生大量的计算。( S N I P {\rm SNIP} SNIP仍基于图像金字塔,虽然每层上可能是仅处理了少量像素,但所有层合起来则几乎处理了图像中的所有像素)而 S N I P E R {\rm SNIPER} SNIPER的做法是:从多尺度的金字塔上固定地采样大小为 512 × 512 {\rm 512×512} 512×512的区域。因此在极端大的图像中, 512 × 512 {\rm 512×512} 512×512可能仅关注原图的 1 / 10 {\rm 1/10} 1/10的区域。但同时,由于 S N I P E R {\rm SNIPER} SNIPER中的碎片仅根据标注实例产生,其相对于原图分辨率可能很小(如根据一个小的标注实例产生一个较小的碎片,其中包含的背景区域即负样本数量有限)。所以,作者指出产生负类碎片的过程非常重要。论文的做法是首先训练一个 R P N {\rm RPN} RPN,而使用 R P N {\rm RPN} RPN产生可能包含目标的区域,将这些产生的区域定义为负类碎片。最后,相比于 S N I P {\rm SNIP} SNIP S N I P E R {\rm SNIPER} SNIPER的精度与其相当,但后者的速度是前者的 3 {\rm 3} 3倍之多!


3. SNIPER

3.1 Chip Generation

{ s 1 , s 2 , . . . , s i , . . . , s n } \{s_1,s_2,...,s_i,...,s_n\} {s1,s2,...,si,...,sn}表示图像的多个尺度,产生的碎片集合为 C i C^i Ci。在特定尺度下,首先图像的尺寸被调整为 W i × H i W^i×H^i Wi×Hi,然后以 d d d为间隔放置 K × K K×K K×K(上述提到的 512 × 512 512×512 512×512)的碎片(类似于滑动窗口的思路,即将原任何尺寸的图裁剪出 512 × 512 512×512 512×512大小的区域)。对于图像的每个尺度,均会产生正类碎片和父类碎片,其详细内容如下。

3.2 Positive Chip Selection

对于尺度 i i i,规定一个有效范围 R i = [ r m i n i , r m a x i ] , i ∈ [ 1 , n ] R^i=[r_{min}^i,r_{max}^i],i∈[1,n] Ri=[rmini,rmaxi],i[1,n],该范围决定了参与训练的标注框(这借鉴了 S N I P {\rm SNIP} SNIP的思想),有效的标注框集合记为 G i G^i Gi。然后,选择包含尽可能多标注实例的碎片作为正类碎片(标注框整体处于碎片内部称为包含),将所有尺度下产生的碎片集合记为 C p o s i C^i_{pos} Cposi,最后保证每个标注框至少处于至少一个碎片内。由于上述规定的范围可能存在重叠部分,一个标注框可能处于多个碎片内部。同时,某个标注框可能会被碎片截断,而剩余部分仍会保留在碎片内部。下图是正类碎片的选取过程:在这里插入图片描述

图4:Positive Chip Selective

如上图左侧:绿色边框为标注的实例框,而其他颜色边框表示根据原图产生的碎片,这些碎片集合包含了所有的标注框。右图是产生的碎片的细节,其中红色边框为无效的标注框,即在一个碎片内仅处理特定尺寸范围的目标。同时我们也可以看到,第二幅图和第三幅图中的电视均被视为有效标注、第四幅图中的椅子标注被截断。

注意这个过程同 R C N N {\rm RCNN} RCNN中处理候选区域的过程由异曲同工之妙,同样是根据原图裁剪得到固定大小的区域,这就使得 S N I P E R {\rm SNIPER} SNIPER具有 R C N N {\rm RCNN} RCNN的尺度不变性。这样,对于每一个碎片内部,由于碎片是通过不同尺度得到的,大目标和小目标的检测都得到了充分的保证。

3.3 Negative Chip Selection

由于上述过程产生的正类碎片包含了所有的标注实例,但同时由于背景区域没有参与训练,这会导致假阳率的增大(由于大量正样本而只包含极少数的负样本,模型倾向于产生正类结果,最终模型基本会将所有的输入当作正类结果)。所以,作者指出有效地产生父类碎片仍非常重要。同时由于图像中的绝大部分区域为背景,这些区域是容易被分类的,从而可以避免这部分区域的相关计算。

文中具体的做法是:首先使用一个预训练的 R P N {\rm RPN} RPN用于产生建议区域,这些区域可以大致指示其内部是否包含实例。如果某个某个碎片内不包含任何建议区域,那么它其中肯定不包含实例,即容易分类的样本,我们可以忽略这些区域的计算。接着,剔除那些被正类碎片包含的建议区域。然后同正类碎片的选取过程一致,将包含尽可能多的建议区域的碎片称为负类碎片,将所有尺度下产生的碎片集合记为 C n e g i C^i_{neg} Cnegi。下图是正类碎片的选取过程:在这里插入图片描述

图5:Negative Chip Selective

如上图第一行,图中的绿色边框为标注边界框。第二行中的橙色框表示由 S N I P E R {\rm SNIPER} SNIPER选取的负类碎片,其中红色圆点表示某个建议框的中心。

注意这个过程将可能包含假阳样本的区域作为负类碎片(由于该区域包含大量由 R P N {\rm RPN} RPN产生的候选区域),同时负样本根据负类碎片得到,这样得到的负样本是难分样本,这有利于增强模型检测鲁棒性。

3.4 Label Assignment

S N I P E R {\rm SNIPER} SNIPER的训练过程与 F a s t e r   R C N N {\rm Faster\ RCNN} Faster RCNN类似,即使用网络产生建议区域的同时对其分类。在训练过程中,通过 R P N {\rm RPN} RPN产生的建议区域根据碎片内的标注框分配类别标签和确定回归目标。具体地,将与任何标注框的交并比大于 0.5 {\rm 0.5} 0.5的建议区域确定为正样本。同时像 S N I P {\rm SNIP} SNIP一样,使用有效的标注框给 R P N {\rm RPN} RPN产生的区域分配标签,通过无效的标注框过滤掉无效的先验框。

3.5 Benefit

在训练过程中,从整个数据集中随机采样碎片以产生批训练数据。对于 C O C O {\rm COCO} COCO数据集,每幅图像平均产生 3 {\rm 3} 3 512 × 512 {\rm 512×512} 512×512大小的碎片。在训练 800 × 1333 {\rm 800×1333} 800×1333的图像时, S N I P E R {\rm SNIPER} SNIPER所处理的像素数仅为其他方法的 30 % {\rm 30\%} 30%。同时由于每个碎片的大小是固定的,这使得我们可以在增大训练批次的同时可以满足 G P U {\rm GPU} GPU的充分利用。

以此,我们可以得出:在实例级识别任务中使用 S N I P E R {\rm SNIPER} SNIPER可以消除输入图像分辨率的瓶颈,即我们可以通过再采样的碎片来训练模型。即前文提到的, S N I P E R {\rm SNIPER} SNIPER否定了想要在实例级任务上获得好的结果,其模型输入必须是高分辨率图像的观点。


4. Experiments Details

在这里插入图片描述

图6:召回率

上述给出是否采样负类碎片得到的模型的召回率的比较。由结果我们可以看到,是否使用负类碎片不会显著影响模型的召回率。作者指出这是由于假阳率的改变不会影响召回率。
在这里插入图片描述

图7:AP

上述给出是否采样负类碎片得到的模型的平均准确率的比较。由结果我们可以看到,是否使用负类碎片将会显著影响模型的精度,原因在上文已分析过了。在这里插入图片描述

图8:目标检测实验结果对比

上图中最后两行是 S N I P E R {\rm SNIPER} SNIPER用于实例分割的结果。

文章还包含许多实验设置的细节,以及是如何设计消融实验的,详细内容请参考原文。


5. Conclusion

论文提出一种高效的多尺度训练方案,在 S N I P {\rm SNIP} SNIP的基础上, S N I P E R {\rm SNIPER} SNIPER更加注重减少模型的计算量。 S N I P E R {\rm SNIPER} SNIPER通过从多尺度金字塔中裁剪固定的碎片用于训练,采样的正类碎片包含了图像中的有效信息、采样的负类碎片可以为模型提供高质量的负样本,从而提高了模型检测精度和鲁棒性。作者最后指出,以后可以在碎片尺寸(本文为 512 × 512 {\rm 512×512} 512×512)上开展相关研究工作。

由于没有阅读源码,本文只总结了 S N I P E R {\rm SNIPER} SNIPER的大体结构和信息,详细内容请阅读论文原文


参考

  1. Singh B, Najibi M, Davis L S. SNIPER: Efficient multi-scale training[C]//Advances in neural information processing systems. 2018: 9310-9320.
  2. https://blog.csdn.net/u014380165/article/details/82284128?utm_source=blogxgwz5.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值