它算是An Analysis of Scale Invariance in Object Detection-SNIP的增强版,依然在思考怎么能更好的解决检测中的多尺度问题

Introduction

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

现在大家为了解决Fast系列的问题,往往进行多尺度的训练。RCNN中只对扣出来的proposal进行放缩,小的proposal会放大,合适的proposal就会不怎么变,太大的proposal会放小,总之都会resize到一个固定的尺度,检测网络只用适应这一种尺度,而Fast系列多尺度训练时,不管图片中的proposal大还是小都要跟着图片整体做放大或者缩小,这样检测网络还是去适应这些尺度,而且上一篇中引用Naiyan Wang的说法: 这更多是通过CNN来通过capacity来强行memorize不同scale的物体来达到的,这其实浪费了大量的capacity。

上一篇的SNIP是忽略掉大图中的大proposal和小图中的小proposal,也就是把一些极端的情况都忽略掉,相对来说只保留了尺度大致一致(和Imagenet的预训练模型的尺度差不多)的proposal参与训练,但是它也有个缺点就是训练太慢了,每个尺度的图片的每个像素都要参与训练。

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

Chip Generation

Positive Chip Selection


在某一尺度下,指定一个aera范围来决定多大的proposal/gt box才能参与到训练,然后有了这些valid gt box,chip从最小cover每个box开始,逐渐扩大达到一个包含最多box数量时停止,这首先就保证了每个valid gt box都能被一个chip cover。然后多个尺度下或者单一尺度下,都有可能存在存在一个box被多个chip cover(见我标注的蓝色1号情况);某一box也可能被chip截断,截断也会保留用于后续过程(见我标注的蓝色2号情况)。

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)

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

Experiments

有了这些chips后,后面就和Faster RCNN一样的训练了,但是由于这些chips都是512x512,且每张图片只有大概只有5个chips,我们可以增大batch size充分利用batch normalization带来的好处。

SNIPER generates 1.2 million chips for the COCO dataset after the images are flipped. This results in around 5 chips per image. In some images which contain many object instances, SNIPER can generate as many as 10 chips and others where there is a single large salient object, it would only generate a single chip.

可以看出negative chips对recall没有影响,但是对整体AR有提升,说明它的作用

可以看到多尺度很重要,再次看到negative chips的作用

和其他Faster/Mask RCNN各种配置都不同,不太好比较,于是只和自己之前的SNIP比较,fixed BN(不用BN)时和SNIP差不多的精度43.5vs43.6,但是训练速度提升3倍,由于chips尺度小可以增大batch size充分利用BN,这样提升就很明显了46.1vs44.4

One more thing

是开头说的context的问题,论文里有好几次说到太大的context不一定有用

  • Since we are able to obtain similar performance by observing less than one tenth of the image, it implies that very large context during training is not important for training high-performance detectors but sampling regions containing hard negatives is.
  • Our results suggest that context beyond a certain field of view may not be beneficial during training. It is also possible that the effective receptive field of deep neural networks is not large enough to leverage far away pixels in the image
  • SNIPER brings training of instance level recognition tasks like object detection closer to the protocol for image classification and suggests that the commonly accepted guideline that it is important to train on high resolution images for instance level visual recognition tasks might not be correct.

SNIPER: Efficient Multi-Scale Training解读相关推荐

  1. SNIPER: Efficient Multi-Scale Training

    参考 SNIPER: Efficient Multi-Scale Training - 云+社区 - 腾讯云 摘要 我们提出了SNIPER算法,在实例级视觉识别任务中执行有效的多尺度训练. 与处理图像 ...

  2. 《MA‑CRNN: a multi‑scale attention CRNN for Chinese text line recognition in natural scenes》论文阅读

    参考博文: CRNN的一个变种,可以读一读,看看相对于CRNN来说有什么变化?以及为什么? 文章目录 make decision step1:读摘要 step2:读Introduction step3 ...

  3. [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN

    文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...

  4. 2021年小目标检测最新研究综述 很全面值得收藏

    摘要 小目标检测长期以来是计算机视觉中的一个难点和研究热点.在深度学习的驱动下,小目标检测已取得了重大突破,并成功应用于国防安全.智能交通和工业自动化等领域.为了进一步促进小目标检测的发展,本文对小目 ...

  5. 《小目标目标检测的解决方法及方式》

    <小目标目标检测的解决方法及方式> 最近在做小目标相关的项目,参考了一些博客.论文及书籍,在这里对小目标的方法和方式做了些总结.如果有哪些问题理解错误或补充欢迎讨论. 1.什么是小目标检测 ...

  6. 综述 | 目标检测中的多尺度检测方法

    本文从降低下采样率与空洞卷积.多尺度训练.优化Anchor尺寸设计.深层和浅层特征融合等多个方面入手,对目标检测中的多尺度检测方法进行了全面概述,并介绍了多尺度检测相关方法. 前面的话 传统卷积网络通 ...

  7. 检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法

    ↑ 点击蓝字 关注极市平台作者丨SFXiang来源丨AI算法修炼营编辑丨极市平台 极市导读 本文从降低下采样率与空洞卷积.多尺度训练.优化Anchor尺寸设计.深层和浅层特征融合等多个方面入手,对目标 ...

  8. YOLO系列知识点整理

    之前系列博客中,各类深度学习的框架,一些新东西的接触都是从官网去接触的,好的东西必然有详尽的资料去阐述,很多都是外文网站,老外讲一些东西不是那么抽象,逻辑也很清楚,能理解的更为透彻,也可以去看看一些帖 ...

  9. 目标检测中的性能提升方法综述

    文章目录 一.多尺度检测 1.什么是多尺度检测? 2.降低下采样率与空洞卷积 3.多尺度训练 4.优化Anchor尺寸训练 5.深层与浅层特征融合 6.SNIP,尺度归一化 7.TridentNet, ...

最新文章

  1. PAT甲级1047 Student List for Course:[C++题解] 哈希表
  2. Elasticsearch-03 CentOS7 / Windows上部署Elasticsearch5.6.16集群模式
  3. 华三DHCP分配ip
  4. $_post 数据上传到那个位置_如何实现图片上传并保存到数据库?
  5. Faiss优化:针对OMP_NUM_THREADS环境变量设置的测试验证
  6. java aop execution_Spring AOP -- execution表达式
  7. 《Essential C++》笔记之设计一个泛型算法(二)
  8. 【CSP】第20届CCF CSP计算机软件能力认证划水贴
  9. hive表指定分区字段搜索_hive导出分区表到mysql 分区字段值怎么取
  10. 大量字段表单在PHP便捷处理分享
  11. Java IO流读取中文文本文件乱码问题,完美解决
  12. solidworks拉伸凸台基体/基体
  13. laravel查询指定的一列数据 pluck
  14. nyoj71 独木舟上的旅行
  15. 大数据01:前置条件
  16. 总结-空洞卷积(Dilated/Atrous Convolution)、gridding问题以及解决方案、训练技巧BN和PReLU、CReLU
  17. React组件Component
  18. Centos启动界面:You are in emergency mode
  19. Proteus 运行出错,致命错误解决建议
  20. 常见的网络安全设备及功能汇总

热门文章

  1. 洛谷P2058 海港
  2. Dataway让Spring Boot不再需要Controller、Service、DAO、Mapper
  3. 华为解锁密码忘了怎么办用计算机,不记得手机锁屏密码怎么办_华为手机密码忘了的解决方法-系统城...
  4. html怎么把背景换成相片,怎么给照片换背景 图片后期处理把阴沉天空背景换成云彩背景...
  5. 狄克斯特拉算法——python实现
  6. linux下查看opencv安装路径以及版本号
  7. VN Studio环境的搭建
  8. 基于暗通道优先的单幅图像去雾算法(Matlab)
  9. [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍
  10. Java小游戏-幸运抽奖-进阶版(可多抽取多次)