出发点

这篇文章的出发点,就是**「数据集」** 。如果将数据集按照图像中目标的尺寸除以图像尺寸的比例来排序的话,那么在ImageNet中这个比例的中位数是「0.5444」,而在COCO数据集中,这个比例的中位数是「0.106」 ,如下面的Figure1中两个「Median」 代表的点所示。

Figure1是针对ImageNet和COCO数据集中目标尺寸和图像尺寸比例的关系曲线,其中横坐标表示 「目标尺寸/图像尺寸」 的值,而纵坐标则表示比例。我们看到在COCO数据集中大部分目标的面积只有图像面积的1%以下,这「说明在COCO数据集中小目标占的比例比ImageNet多」。此外,在COCO数据集中,第90%(0.472)的倍数差不多是第10%的倍数(0.106)的20倍,这「说明COCO数据集中目标尺寸变化范围非常大」。

「那么这两种差异会对目标检测带来什么影响呢?」

在目标检测算法如Faster RCNN/SSD中常用基于ImageNet数据集预训练的模型来提取特征,也就是迁移学习,但是从Figure1发现ImageNet和COCO数据集在目标的尺寸分布上差异比较大,这样在做迁移学习时可能会存在一些问题,论文将其称为**「domain-shift」**,也可以简单理解为是训练集和测试集的分布有较大差异,后面也有实验来说明这一点。

创新点

在本文之前已经有一些算法针对数据集中目标尺度变化大进行入手了,例如FPN实现多尺度特征融合来提升效果,Dilated/Deformable卷积通过改变卷积核的感受野来提升效果,通过多尺度训练/测试引入图像金字塔来提升效果。不同于上面这些思路,基于对数据集的深入分析,本文提出了一种新的模型训练方式即:「Scale Normalization for Image Pyramids (SNIP)」 ,主要包含两个创新点:

「为了减少第二节提到的Domain-Shift,在梯度回传的时候只将和预训练模型所基于的训练数据尺寸相对应的ROI的梯度进行回传。」
「借鉴多尺度训练的思想,引入图像金字塔来处理数据集中不同尺寸的数据。」

核心实验

1.

我们来首先来看一下论文在ImageNet数据集上做的关于尺寸变化的实验,也就是去验证第二节提到的Domain-Shift对模型效果的影响。实验结果如Figure3和Figure4所示,这里主要是基于不同分辨率的图像来训练模型以及不同分辨率的图像作为验证集来验证模型的方式去评估训练集和测试集的尺度差异对模型效果的影响,首先来看Figure3:

Figure3中一共展示了3种模型,下面我们分别来描述一下:

「CNN-B」。分类模型基于ImageNet数据集常规的224*224大小来训练,但是验证数据集进行了尺度变化,即先将验证数据图片缩小到48*4864*6480*80128*128,然后再将这些图片放大到224*224作为模型的输入,这样放大后的图像分辨率较低。因此这个实验模拟的就是训练数据的分辨率和验证数据的分辨率不一致的时候对模型效果的影响,实验效果如Figure4(a)所示。
「CNN-S」。 这个实验中,训练数据的分辨率和验证数据的分辨率保持一致,这里主要针对的是48*4896*96的分辨率,并且对网络结构的第一层做了修改。例如对于48*48的数据进行训练,将卷积核大小为7*7的卷积层改成卷积核大小为3*3,滑动步长为1的卷积层。而基于96*96的数据训练时,将卷积核大小为7*7的卷积层变成卷积核尺寸为5*5,步长为2的卷积层。这个实验模拟的是训练数据和验证数据的分辨率一致的效果,实验结果如Figure4(b),(c)所示。
「CNN-B_FT」。这个模型是CNN-B在放大的低分辨率图像上fine-tune后的模型,并且输入图像也使用放大的低分辨率模型。可以看出这个实验验证的是基于高分辨率图像进行训练的模型是否可以有效提取低分辨率图像的特征,实验结果如Figure4(b),©所示。

Figure4是Figure3中三种实验的实验结果展示,从(a)可以看出如果验证集数据的分辨率和训练数据的分辨率差别越大,则实验效果越差,这说明CNN对数据的尺度变化的鲁棒性还不够好。而从(b),©的结果我们可以看出当训练数据的分辨率和验证数据的分辨率相同时,模型的效果会好很多,并且CNN-B-FT的效果更好,而二者的差别仅仅是模型是否在放大的低分辨率图像上做fine-tune,因此可以得出下面的结论:

基于高分辨率图像训练的模型也可以有效提取放大的低分辨率图像的特征。

2.

上面介绍了在ImageNet上的实验细节,下面来说说在COCO数据集上关于特定尺度检测器多尺度检测器的实验,如Table1和Figure5所示。

Table1是检测器在小目标验证集上的检测效果对比结果,用的验证图像尺寸都是[公式]。

800all1400all分别代表检测器基于800*14001400*2000两种尺寸的图像进行训练,从两者的mAP结果对比可以看出1400all的效果稍好,猜测原因是虽然基于放大图像 (原始图像大概640*480,放大成1400*2000)训练的模型在训练过程中可以提高对小目标物体的检测,但是由于训练数据中尺寸中等或较大的目标的尺寸太大所以难以训练,这就影响了模型最终的效果 。检测的效果如Figure5(1)所示。

1400<80ps表示训练数据尺寸是1400*2000,但是训练过程中忽略中等尺寸和大尺寸的目标,其中中等和大尺寸的标准是在原始图像中目标宽高的像素大于80,这样就可以减少Domain-Shift。所以,这个实验的目的是验证上面那个实验的猜想,即:**基于1400*2000大小的图像训练时由于训练数据中尺寸中等及较大的目标对模型训练有负作用,**因此这里直接在训练过程中忽略这样的数据。 但是从Table1的实验结果看出,这个模型的效果更差了,猜测原因是因为忽略这些训练数据(大概占比30%)所带来的的数据损失对模型的影响更大,具体的检测结果如Figure5(2)所示。
「MST」 表示训练一个检测器时采用不同尺度的图像进行训练,即前面说的多尺度检测器。按道理来说这个实验的效果应该会比前面2个实验好,可是结果却不是这样,这是为什么呢?主要原因是训练数据中的那些尺寸非常大或者非常小的目标会影响训练效果
因此,基于上面的实验结果,本文在引入MST思想的同时限定了不同尺寸的目标在训练过程中的梯度回传,这就是SNIP的核心思想。从Table1可以看出效果提升是比较明显的。

算法框架

SNIP算法

SNIP借鉴了多尺度训练的思想,在多尺度训练方法中,由于训练数据中尺寸极大或极小的目标会影响实验结果,因此SNIP的做法就是只对尺寸在指定范围内的目标回传损失(该范围需接近预训练模型的训练数据尺寸),这样就可以减少Domain-Shift的影响。又因为训练过程中采用了类似多尺度训练的方法,所以每个目标在训练时都会有几个不同的尺寸,那么总有一个尺寸在指定的尺寸范围内。

还需要注意的一点是在SNIP中,对目标的尺寸限制是在训练过程,而不是预先对训练数据进行过滤,训练数据仍然是基于所有的数据进行的。实验证明这种做法对小目标检测非常有效。

下面的Figure6是SNIP算法的示意图。

整个流程是基于Faster RCNN的,不管是训练ROI Head还是训练RPN网络,都是基于所有Ground Truth来定义候选框Anchor的标签。具体来说就是某个ROI在某次训练中是否进行梯度回传是和预训练模型的数据尺寸有关的,也就是说当某个ROI的面积在指定范围内时,该ROI就是valid,也就是会在此次训练中回传梯度,否则就是invalid(如Figure6的紫色框所示)。这些invalid 的ROI所对应的invalid ground truth会用来决定RPN网络中Anchor的有效性。具体来说,invalid Anchor就是和invalid ground truthIOU大于0.3的Anchor,如Figure6左边的黑色框所示。

另外,作者还分析了RPN网络中不同标签的Anchor比例(一共就2种Anchor,正负样本),我们知道在RPN网络中,一个Anchor的标签是根据Anchor和Ground Truth的IOU值来确定的,只有下面2种情况才会认为Anchor是正样本:

1.假如某个Anchor和某个ground truth的IOU超过某个阈值(默认[公式]),那么这个Anchor就是正样本。
2.假如一个ground truth和所有Anchor的IOU都没有超过设定的阈值,那么和这个ground truth的IOU最大的那个Anchor就是正样本。

遵循Faster RCNN的设定,将conv4的输出作为RPN网络的输入,然后在此基础上设定了15种Anchor(5种尺度,三种比例),然后作者介绍了一个有趣的发现,那就是在COCO数据集上(图像大小为800*1200)只有30%的Ground Truth满足Anchor是正样本的第一个条件,即使将阈值调节成0.5,也只有58%的Ground Truth满足Anchor是正样本的第一个条件。

这就说明,即使阈值等于0.5,仍然有42的正样本Anchor和Ground Truth的IOU值小于0.5。 显然,这种正样本的质量是不高的。所以SNIP引入的多种分辨率图像作为输入一定程度上可以缓解这种现象。

实验结果

下面的Table2展示了SNIP算法和其它算法的对比。

第二行的多尺度测试比第一行的单尺度效果好,而第三行是在多尺度测试的基础上加入了多尺度训练的情况,这个时候在大尺寸目标(APL)上的检测结果要比只有多尺度测试的时候差,主要是因为训练数据中那些极大和极小的目标对训练产生了负作用。

下面的Table3展示了优化RPN后的对比试验结果:

下面的Table4进一步展示了几个目标检测算法的对比结果。D-RFCN表示Deformable RFCN,D-RFCN+SNIP(RCN+RPN)表示在D「eformable RFCN」算法的检测模块和「RPN」网络中同时加入SNIP。

结论

总的来说,SNIP这个算法从数据集入手,证明了尺度和图像金字塔在目标检测中的重要性。然后针对性的提出SNIP算法,即我们不需要在高分辨率图像中对大型的目标进行反向传播,不需要在中分辨率图像中对中型目标进行反向传播,不需要在低分辨率图像中对小目标进行反向传播以更好的缓解预训练的尺寸空间中的Domain-Shift从而获得精度提升。

转载:
https://zhuanlan.zhihu.com/p/139371879
论文链接:
SNIP

小目标检测--SNIP相关推荐

  1. 小目标检测模型总结+SNIP+SNIPER

    小目标检测 在MS COCO数据集中,对于面积小于32*32的物体,MS COCO就认为它是小物体,在评测时,会对这个范围内的物体计算APsmall. 在行人库CityPerson中,原图大小为102 ...

  2. 基于改进SSD算法的小目标检测与应用

    人工智能技术与咨询 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者刘洋等 关键词: SSD:深度学习:小目标检测 摘要: 摘要: 针对通用目标检测方法在复杂环境下检测小目标时 ...

  3. 解决小目标检测问题的几个途径

    本文转载自AI公园. 作者:Nabil MADALI 编译:ronghuaiyang 导读 本文介绍了一些小目标物体检测的方法和思路. 在深度学习目标检测中,特别是人脸检测中,由于分辨率低.图像模糊. ...

  4. 小目标检测的福音:Stitcher,简单又有效

    向大家推荐一篇今天新出的目标检测相关论文 Stitcher: Feedback-driven Data Provider for Object Detection ,该文发明了一种简单方法改进业界老大 ...

  5. 理解目标检测中的老大难:小目标检测

    文章一: Stitcher: Feedback-driven Data Provider for Object Detection ,该文发明了一种简单方法改进业界老大难:小目标检测问题. 该文作者来 ...

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

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

  7. NWD-Based Model | 小目标检测新范式,抛弃IoU-Based暴力涨点(登顶SOTA)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 小目标检测是一个非常具有挑战性的问题,因为小目标只包含几个像素 ...

  8. 小目标检测算法 Stitcher 来龙去脉、方法与分析

    昨天向大家推荐了小目标检测的福音:Stitcher,简单又有效,引起了不少朋友的兴趣.这篇文章为 Stitcher 原作者所写,介绍了Stitcher的来龙去脉.方法和分析,欢迎参考. https:/ ...

  9. 目标检测之小目标检测和遮挡问题

    小目标检测trick 小目标难检测原因 小目标在原图中尺寸比较小,通用目标检测模型中,一般的基础骨干神经网络(VGG系列和Resnet系列)都有几次下采样处理: 导致小目标在特征图的尺寸基本上只有个位 ...

  10. 小目标检测相关技巧总结

    点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载自简书,仅用于学习交流,如有侵权请联系删除 编辑:Ch ...

最新文章

  1. RDKit | 基于相似图可视化原子贡献
  2. .NET经典资源站点汇总
  3. 【iOS-Cocos2d游戏开发之六】对触屏事件追加讲解,解决无法触发ccTouchMoved事件[重要!]...
  4. leetcode题解162-寻找峰值
  5. NSUserDefaults 添加与删除
  6. KinedEditor特性
  7. 安装与配置Flutter开发环境
  8. Java语言String字符串课后作业
  9. OopenCV复习及函数深入理解(轮廓查询及绘图)
  10. iChart--组件定制
  11. 解决 IDEA 导入项目 中文乱码
  12. 典型平面阵列分布的3D方向图
  13. Android微信抢红包服务源码
  14. 【kindle笔记】之 《犬夜叉》-2017-12-26
  15. HTML+CSS+JS零食官网网站设计——美食零食官网(6页) html网页制作期末美食作业成品_小吃类网页设计期末作业
  16. PacBio HiFi测序介绍及百迈客最新下机数据公布
  17. Git 分支篇之分支介绍
  18. 某电子计算机有400个终端,(概率四习题.doc
  19. 使用继承实现:“剪刀石头布的游戏”
  20. 信息安全数学基础(一):同余

热门文章

  1. 获取文件夹中所有图片文件
  2. 服务器选云主机还是VPS主机呢?
  3. css样式后面显示点点点
  4. 华为OD机考:0025-0028:黑板报数字涂色-十进制数字最低位排序-最大n个数和最小n个数之和
  5. C#_根据银行卡卡号判断银行名称
  6. 超好用的卸载软件 —— Geek
  7. Python之生成器练习
  8. wps转word WPS表格如何实现冻结窗格呢
  9. Python证件照背景自定义改色,带Tkinter界面,代码全文解释!
  10. net share列出了Windows的默认共享(包括C盘)