前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SNIPER: Efficient Multi-Scale Training

SNIPER: Efficient Multi-Scale Training

作者头像
狼啸风云
修改2022-09-02 22:18:58
9100
修改2022-09-02 22:18:58
举报
文章被收录于专栏:计算机视觉理论及其实现

1、Introduction

SNIP采用图像金字塔的方式需要对每一个像素进行处理,就会导致运行速递慢,SNIPER则对次进行了改进,而是以适当的比例处理gt(称为chips)周围的上下文区域,在训练期间每个图像生成的chips的数量会根据场景复杂度而自适应地变化,由于SNIPER在冲采样后的低分辨率的chips上运行,故其可以在训练期间收益于Batch Normalization,而不需要在GPU之间再用同步批量标准化进行统计信息。实验证明,BN有助于最后性能的提升。我认为这篇文章反映出了目标检测的根本之处-----正负例的选取,我们不需要将整张图片都送入网络,而是将target所在的部分上下文区域crop出来,再加以一定的数据增强,同时不能忘记对负例的sample,这也是文章后面通过实验加以验证的。

2、Background

RCNN的设计是具有很好的尺度不变性的,因为首先它从图片中提取proposal,然后都resize到224去提取特征,但是这样每个proposal都不共享特征的计算很慢,而Fast系列为了解决这个问题,输入大小不固定,不同尺度的图片都经过同一个的cnn提取特征然后拿proposal去对应位置扣特征,这就破坏了RCNN原来的尺度不变形,但是它很快且整体做特征提取能捕捉更多的context。

在SNIP中,作者忽略掉了大图中的大proposal和小图中的小proposal,也就是把一些极端的情况都忽略掉了,相对来说只保留了尺度大致一致(和imagenet的预训练模型的尺度差不多)的proposal参与训练,但是训练非常慢(采用图像金字塔的方式,每个尺度的图片的每个像素都要参与训练)。

因此本文提出了SNIPER,通过生成scale specific context-regions,不管哪个尺度都采样到512*512,这样既保留了RCNN的尺度不变性和Fast系列的速度,也由于过滤掉了一大部分背景而比SNIP快很多。

3、SNIPER

3.1 Chip Generation

假设一张图像有n个尺度{s1,…sn},,每个尺度上产生chips,用 Ci 表示。对于每个图像,首先被resize成宽度Wi、高度Hi,然后K×K大小的chip(对于COCO数据集,论文用的512×512)以等间隔(d pixels)的方式排布,注意是每个scale都会生成这些chips,而且chip的大小是固定的,变化的是图片的尺寸。通俗理解:chips是某个图片的某个scale上的一系列固定大小的(比如KxK个像素)的以恒定间隔(比如d个像素)排布的小窗(window) ,每个window都可能包含一个或几个objects。跟滑动窗口有些相似之处。

一张图的每个scale,会生成若干个Positive Chips 和 若干个 Negative Chips 。每个Positive Chip都包含若干个ground truth boxes,所有的Positive Chips则覆盖全部有效的ground truth boxes。每个 Negative Chips 则包含若干个 false positive cases。

3.2 Positive Chip Selection

每个scale,都会有个area range Ri=[rimin,rimax],i∈[1,n],这个范围决定了这个scale上哪些ground truth box是用来训练的。所有ground truth box中落在 Ri 范围内的ground truth box 称为有效的(对某个scale来说),其余为无效的,有效的gt box集合表示为 Gi 。从所有chips中选取包含(完全包含)有效 gt box最多的chip,作为Positive Chip,其集合称为Cposi,每一个gt box都会有chip包含它。因为 Ri 的区间会有重叠,所以一个gt box可能会被不同scale的多个chip包含,也有可能被同一个scale的多个chip包含。被割裂的gt box(也就是部分包含)则保持残留的部分。

这个地方很巧妙,在不同的scale上截取相同大小的chip,而且包含的是不完全相同的目标。这个方式很接近 RCNN。对较小的目标起到一种 zoom in 的作用,而对较大的目标起到一种 zoom out的作用。而对于网络来说,输入的还是固定大小的chip,这样的结构更加接近于分类问题网络的拓扑。

所以说 SNIPER 相当于综合了R-CNN 在scale上的优点 和Fast R-CNN在速度上的优点。

3.3 Negative Chip Selection

Positive Chip包含了所有的正样本,但是包含的背景很少,这样网络见到的都是易于识别出物体的chip,这样难免就会出现很多False Positive(误警/误报),所以需要生成一些Negative Chip来参与训练,这些Negative Chip代表的就是那些带有挑战性的,很难确定有木有物体的chip。

作者训练一个简单的RPN生成很多proposal,接着剔除那些被positive chip cover的proposal,这首先会把那些和gt box和接近的proposal给扔了,也就是把易于区分前背景的给扔了。然后像Positive Chip生成时一样,chip逐渐扩大包含一定数量的proposal,然后形成一个Negative Chip Pool,训练时随机挑选一定数量的Negative Chip。(图中红色点是rpn生成的被过滤过的negative proposal,然后红色框就是包含一定数量negative proposal的negative chip,可以看到这些都是很有调整性,易出现false positive情况的chip)

这个做法和多尺度的训练相比,大大减少了需要训练的像素,只处理经过RPN确认过的最可能出现false positive的区域,大大提升了训练速度。

3.4 Label Assignment

由RPN网络产生的proposals,与gt bbox等IOU大于0.5,即标注为正例。在训练时,gt box不受Ri的约束,而产生的proposal受Ri的约束,proposal没有落在Ri区间内的,在训练时会被忽略。每一个chip会产生300个proposals。

4、Experiments

Chips大小在COCO都设置为512*512,且每张图片大概有5个chips,这样就乐意增大batch size充分利用batch Normalization。

在COCO上,我们训练SNIPER的Batch size大小为128,学习率为0.015。总共进行了6个epoch的训练,其中在第5个epoch结束时进行step-down。采用图像翻转作数据增强。每个epoch需要11,000次迭代。对于训练无负chips的RPN,每个epoch只需要7000次迭代。我们使用RPN生成负chips,并将其训练2个epoch,固定学习率为0.015,不进行step-down。

我们使用流行的检测器Faster-RCNN和ResNets和MobileNetV2对SNIPER进行评估。 在conv4后的特征上使用RPN生成建议,并在conv4和conv5 特征拼接后进行分类。 在conv5分支中,我们使用可变形卷积、跨度为1。在RPN中使用512维特征图。 对于分类分支,我们首先将拼接的特征图映射为256维,然后添加2个具有1024个隐藏单元的全连接层。 对于像MobileNetv2这样的轻量级网络,为了保留网络的计算处理能力,我们没有对网络进行任何体系结构更改,例如更改网络跨度或添加可变形卷积。 我们将RPN的尺寸从1024减小到256,并将fc层的尺寸从1024减小到512。RPN和分类分支都应用于MobileNetv2,步幅为32。

(1)

从上表可以看出,negative chips对recall没有影响,但是对整体的AR有提升

(2)

采用多尺度可以提升AP,同样也可以看出negative chips对提升AP起作用

(3)

从上表可以看出,当SNIPER fixed BN时其精度和SNIP是差不多的,但是训练速度可以提升3倍。但当chips尺度小可以增大batch size,充分利用BN,这样就可以看到有较大的提升 46.1vs44.4。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Introduction
  • 2、Background
  • 3、SNIPER
  • 3.4 Label Assignment
  • 4、Experiments
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档