简介

图1:论文原文

作者以COCO{\rm COCO}COCO数据集为例分析,并指出当前目标检测任务存在的一大挑战是数据集中目标尺寸的分布较大,尤其是对小目标的检测方法有待改进。由此论文提出ScaleNormalizationfor{\rm Scale\ Normalization\ for}Scale Normalization forImagePyramids,SNIP{\rm Image\ Pyramids,SNIP}Image Pyramids,SNIP方法以改善上述情况。实验结果为在COCO{\rm COCO}COCO数据集上单个模型的mAP{\rm mAP}mAP为45.7%45.7\%45.7%,集成三个模型的mAP{\rm mAP}mAP为48.3%48.3\%48.3%。
论文原文 源码


0. Abstract

作者通过对比在ImageNet{\rm ImageNet}ImageNet数据集上不同分类模型对于小目标的分类结果,指出卷积神经网络对输入尺度变化不具鲁棒性,即CNN{\rm CNN}CNN不能很好地处理尺度变化的问题。论文提出一种在相同尺度的图像金字塔上训练模型,即保持金字塔每一层的训练样本尺度在特定的范围内。
论文贡献:(一)指出不同数据集间的迁移学习会带来domain–shift{\rm domain–shift}domain–shift问题,即数据集分布差异带来的模型间的不吻合;(二)利用图像金字塔上训练模型,在金字塔的特定层上只处理特定尺寸范围内的样本,以此保证样本尺度的标准化。


1. Introduction

在引言部分,作者首先指出自AlexNet{\rm AlexNet}AlexNet以来,基于深度学习的分类模型的分类错误率由15%15\%15%降低至2%2\%2%,而目标检测模型的提升不如前者。随后,作者认为数据集中目标尺度的多样化,以及小目标检测是导致上述问题的主要因素。

图2:ImageNet和COCO的对比

上图是ImageNet{\rm ImageNet}ImageNet和COCO{\rm COCO}COCO的对比,其中横坐标表示目标占整幅图像的大小,纵坐标表示累计分布。可以看到,在COCO{\rm COCO}COCO数据集曲线上的(0.106,0.5)(0.106,0.5)(0.106,0.5)点可以得出近一半目标的尺寸仅占整幅图像的1/101/101/10左右,即小目标是COCO{\rm COCO}COCO数据集的主体。此外,在COCO{\rm COCO}COCO数据集中,尺寸最小的第9/109/109/10的目标占比是尺寸最小的第1/101/101/10的目标占比的202020倍,即在COCO{\rm COCO}COCO数据集中,目标尺寸的分布变化较大。由于在训练目标检测模型时通常使用基于ImageNet{\rm ImageNet}ImageNet数据集的分类模型,而由图可知二者目标分布差异较大,使用迁移学习会产生相关问题(文中称为domain–shift{\rm domain–shift}domain–shift问题)。针对上述问题,前人工作已提出相关解决方案:


2. Related Work

利用较大分辨率的特征图保留了更丰富的小目标信息的特点,SDP{\rm SDP}SDP、SSH{\rm SSH}SSH、MS–CNN{\rm MS–CNN}MS–CNN等采用在不同分辨率的特征图下独立地检测不同尺度目标的方法;FPN{\rm FPN}FPN、Mask–RCNN{\rm Mask–RCNN}Mask–RCNN、RetinaNet{\rm RetinaNet}RetinaNet等以特征金字塔的形式融合不同分辨率的特征图,使得检测特征图里包含不同尺度的上下文信息。总的来说,对于数据集中尺度变化的问题,主要使用图像金字塔特征金字塔两类方法。本文基于后者,使用SNIP+D–RFCN{\rm SNIP+D–RFCN}SNIP+D–RFCN模型在COCO{\rm COCO}COCO数据集上的AP50{\rm AP_{50}}AP50​达69.7%{\rm 69.7\%}69.7%,相比于原D–RFCN{\rm D–RFCN}D–RFCN模型提高7.4{\rm 7.4}7.4个百分点。


3. Image Classification at Multiple Scales

图3:对比实验设计

如上图,CNN–B{\rm CNN–B}CNN–B的过程是:首先使用ImageNet{\rm ImageNet}ImageNet数据集224×224{\rm 224×224}224×224的图片训练CNN{\rm CNN}CNN模型,然后通过下采样从ImageNet{\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、128128128×128×128×128的图片,最后通过上采样将其尺寸统一至224×224{\rm 224×224}224×224后作为测试集。可以看到此时的输入图像分辨率较低,该部分实验的目的是测试数据集和训练数据集使用不同分辨率图片的对比。依次得到的分类结果如下图(a)(a)(a):

图4:ImageNet上的分类结果

图(a){\rm (a)}(a)的横坐标表示测试数据集的分辨率,由图可知测试数据集的分辨率与训练数据集的分辨率相差越大,则效果越差。由此,作者进行了接下来的实验。CNN–B{\rm CNN–B}CNN–B和CNN–B–FT{\rm CNN–B–FT}CNN–B–FT中训练数据集和测试数据集的分辨率相同,分别为48×48{\rm 48×48}48×48和96×96{\rm 96×96}96×96。不同的是CNN–B–FT{\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大小数据集作为测试集的实验结果。由CNN–B{\rm CNN–B}CNN–B和CNN–B–FT{\rm CNN–B–FT}CNN–B–FT的实验结果可以得到,使用高分辨率的训练数据的确能够提高模型的分类准确率。


4. Background

由于论文实验大都是基于对D–RFCN{\rm D–RFCN}D–RFCN的改进,本部分首先介绍D–RFCN{\rm D–RFCN}D–RFCN的相关内容。RCNN{\rm RCNN}RCNN系列目标检测方法以RoI{\rm RoI}RoI池化层为界,被分为两个阶段。前一个阶段是CNN{\rm CNN}CNN提取特征,第二阶段是处理候选框。但这两个阶段基本上是独立计算的,即RoI{\rm RoI}RoI池化每次仅计算一个感兴趣区域,不能实现共享计算。作者为了将FCN{\rm FCN}FCN引入目标检测任务中,提出位置敏感得分图,使得池化操作的计算可以共享,从而得到了R–FCN{\rm R–FCN}R–FCN目标检测模型。

图5:position-sensitive score maps

上图展示了R–FCN{\rm R–FCN}R–FCN的核心模块。首先,输入图像经过卷积产生特征图,然后通过卷积产生一个k2(C+1)k^2(C+1)k2(C+1)维的位置敏感得分图,其中k=3k=3k=3表示位置敏感得分图的大小、CCC表示类别数。对于每一个由RPN{\rm RPN}RPN生成的RoI{\rm RoI}RoI区域,通过池化得到一个大小为k×k×(C+1)k×k×(C+1)k×k×(C+1)的特征图(池化的方式是,对于输出为橙色的位置,其根据特征图的对应颜色通道的池化得到;其余位置类似),得分图上每个位置的值分别对应于该方向上存在类别为ccc的目标的概率。九种不同颜色对应于左上、正上等共九个方向。然后根据对得到的特征图的值进行投票,判断该位置是否存在目标。下图是R–FCN{\rm R–FCN}R–FCN整体结构:

图6:R-FCN

R–FCN{\rm R–FCN}R–FCN是基于Faster–RCNN{\rm Faster–RCNN}Faster–RCNN得到的,上面分支使用RPN{\rm RPN}RPN模块产生感兴趣区域,然后通过论文提出的位置敏感得分图,结合FCN{\rm FCN}FCN完成目标检测。而D–RFCN{\rm D–RFCN}D–RFCN就是将可变形卷积模块集成到R–FCN{\rm R–FCN}R–FCN中,可变形卷积的知识可以参考这里。


5. Data Variation or Correct Scale?

首先来看一组实验结果:

图7:实验结果对比

首先上述实验结果是在使用1400×2000{\rm 1400×2000}1400×2000大小的图像训练的模型,800all800_{all}800all​表示测试集的大小为800×1400{\rm 800×1400}800×1400、1400all1400_{all}1400all​表示测试集的大小为1400×2000{\rm 1400×2000}1400×2000,有图可知后者的效果要好于前者,这与前面分类模型实验结果的对比一致。但同时也观察到,这里的提升非常小,作者猜测是由于对于原数据的分辨率进行放大(原为480×640{\rm 480×640}480×640)后,图像本来较大的目标变得更大而使得模型难以训练。对应于图888中的(1)(1)(1)。
图777中的1400<80px1400_{<80px}1400<80px​表示模型使用1400×2000{\rm 1400×2000}1400×2000大小的图像训练,同时忽略图中的大目标(大于808080像素)。但由图可知,其得到的结果不如前者。作者猜测是由于图像中的大目标约占总目标数的3/103/103/10左右,大量数据的损失带来了模型性能的下降。对应于图888中的(2)(2)(2)。
MST{\rm MST}MST表示传统意义上常用的多尺度训练,即在训练过程中随机采样输入图像的尺寸。但由图可知,该项的实验结果仅与800all800_{all}800all​相当。这与论文一直贯彻的数据集中目标尺度分布较大是影响目标检测方法性能的主要因素的观点一致。对应于图888中的(3)(3)(3)。图中最后一项实验是使用本文方法SNIP{\rm SNIP}SNIP所得到的结果,提升较为明显。对应于图888中的(4)(4)(4)。

图8:实验设计


6. Object Detection on Image Pyramid

千呼万唤始出来,经过前面大量对比实验作者验证了(1)(1)(1)训练数据集使用的尺寸与测试数据集使用尺寸不一致时会影响模型的性能;(2)(2)(2)较大的训练图像的分辨率的确能够提高模型的性能;(3)(3)(3)过大的输入图像分辨率中大目标会使得模型难以训练,可能不会带来想象中的提升;(4)(4)(4)传统使用的多尺度训练方法取得的效果可以单纯通过增大输入训练图像分辨率而达到等。然后给出SNIP{\rm SNIP}SNIP的细节信息:
SNIP{\rm SNIP}SNIP是对MST{\rm MST}MST的改进,在训练过程中,仅使用与预训练模型采用的数据的分辨率接近的样本参与训练。具体地,为了消除极端大或小的样本带来的影响,在SNIP{\rm SNIP}SNIP中,只对尺寸在特定范围内的目标反向传播训练。

图9:SNIP

上图描述了SNIP{\rm SNIP}SNIP的详细过程。由输入图像得到图像金字塔,对于图像金字塔的每一层通过RPN{\rm RPN}RPN产生候选区域。在此过程中,以图像金字塔中分辨率最大的图像为例,只选择位于该层所规定的范围内的标注框作为有效样本。如图中左侧的紫色虚线的标注框被视为无效,同时将与其交并比大于0.30.30.3的先验框视为无效,小于0.30.30.3的视为有效样本(即使用无效的标注框来筛选出无效的先验框)。在论文中,RCN{\rm RCN}RCN是一个分类网络,用于筛选出不符合规定范围的先验框(图中最右部分的紫色边界看)。这样,图像金字塔的每一层都有相应的有效标注框及有效先验框,规避了使用该层处理过大或过小的目标的问题。(这一段可以参考原文,具体实现细节可能要阅读源码了,有不适当的地方欢迎指正)


7. Experiments

图10:实验结果对比


8. Conclusion

作者从ImageNet{\rm ImageNet}ImageNet和COCO{\rm COCO}COCO数据集入手分析了数据集中目标分布的不平衡,指出目标检测性能受目标尺寸分布大的影响。同时采用一系列实验证明了训练模型数据集的分辨率同测试集的分辨率差异越大,检测的结果越差。根据前面实验的铺垫,作者提出了SNIP{\rm SNIP}SNIP,基于图像金字塔实现多尺度训练。同时,在金字塔的每层限制了在该层处理的标注框和先验框的尺寸。

由于没有阅读源码,本文只总结了SNIP{\rm SNIP}SNIP的大体结构和信息,详细内容请阅读论文原文。


参考

  1. 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.
  2. 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.
  3. https://blog.csdn.net/u014380165/article/details/80793334.


(十九)论文阅读 | 目标检测之SNIP相关推荐

  1. 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》

    深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...

  2. 深度学习论文阅读目标检测篇(五)中文版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> 摘要 1.引言 2. 更好 3. 更快 4. 更强 5. 结 ...

  3. 深度学习论文阅读目标检测篇(五)中英对照版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> Abstract 摘要 1. Introduction 1. ...

  4. 深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》

    深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1< You Only Look Once: Unified, Real-Time Object Detection> Abstra ...

  5. 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》

    深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...

  6. 深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4《Optimal Speed and Accuracy of Object Detection》

    深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4<Optimal Speed and Accuracy of Object Detection> Abstract 摘要 1. In ...

  7. 深度学习论文阅读目标检测篇(四)中文版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》

    深度学习论文阅读目标检测篇(四)中文版:YOLOv1<YouOnlyLookOnce:Unified,Real-TimeObjectDetection> 摘要 1.引言 2. 统一的检测 ...

  8. 深度学习论文阅读目标检测篇(二):Fast R-CNN《Fast R-CNN》

    深度学习论文阅读目标检测篇(二):Fast R-CNN<Fast R-CNN> Abstract 摘要 1. Introduction 引言 1.1 RCNN and SPPnet 1.2 ...

  9. 深度学习论文阅读目标检测篇(六)中文版:YOLOv3《 An Incremental Improvement》

    深度学习论文阅读目标检测篇(六)中文版:YOLOv3< An Incremental Improvement> 摘要 1. 引言 2. 方案 2.1. 边界框预测 2.2. Class P ...

  10. (三十二)论文阅读 | 目标检测之SEPC

    简介 图1:论文原文 本文介绍的是CVPR2020{\rm CVPR\ 2020}CVPR 2020的一篇关于目标检测的文章,SEPC{\rm SEPC}SEPC.它的主要关注点依旧是目标检测中常用的 ...

最新文章

  1. 1.java局部变量 实例变量 类变量(静态变量)
  2. 软件研发的这些误区,你中了吗?
  3. 记一次CentOS Install Docker 报错
  4. jquery实现导航栏鼠标点击后实行背景高亮,点击离开恢复(超级简单!!!!)...
  5. python默认参数举例_Python中的默认参数实例分析
  6. C语言和C++的区别整理详解!
  7. js中的数组基本知识
  8. 洛谷 P2879 [USACO07JAN]区间统计Tallest Cow
  9. DSP的CMD文件 RUN_START
  10. 知道创宇荣获“年度公益贡献安全企业”及“中国网安产业100强”
  11. 谷歌关闭中国地区音乐搜索服务与产品设计
  12. PS长投影文字制作教程
  13. 基于51单片机的电子记分牌的设计
  14. poi实现多线程大数据导出
  15. 火山火花代码编辑框(火花编辑框)Scintilla代码编辑框案例教程
  16. 毕设-SpringBoot学生请假系统
  17. leyou商城day7 构建商品索引库及查询
  18. matlab 单边频率谱,matlab求单边功率谱
  19. 读《Halting in Random Walk Kernels》
  20. 计算机网络 - 网络层

热门文章

  1. 服务器数据恢复建议_raid磁盘阵列OFFLINE后的应急处理方案
  2. @Resource和@Autowired注解的区别
  3. 如何强制App横屏或者竖屏显示应用
  4. 【攻略】淘宝前端智勇大闯关-第一季
  5. shell 下 时间 的傻狍子
  6. 【NUC980开发板DIY项目大挑战】串口服务器
  7. JSLint中常见报错提示
  8. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 1
  9. 作为“创业导师”的天使投资人
  10. python定时任务启动与停止_python定时任务最强框架APScheduler详细教程