转自:http://nooverfit.com/wp/%E8%81%8A%E8%81%8A%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E4%B8%AD%E7%9A%84%E5%A4%9A%E5%B0%BA%E5%BA%A6%E6%A3%80%E6%B5%8B%EF%BC%88multi-scale%EF%BC%89%EF%BC%8C%E4%BB%8Eyolo%EF%BC%8Cssd%E5%88%B0fpn/

狙击手在放大倍焦前已经经历了大量的小目标训练,这样看似乎是RPN做的好 — David 9

之前在讲SSD时我们聊过SSD的目标检测是如何提高多尺度(较大或较小)物体检测率的。我们来回顾一下,首先,较大的卷积窗口可以卷积后看到较大的物体, 反之只能看到较小的图片. 想象用1*1的最小卷积窗口, 最后卷积的图片粒度和输入图片粒度一模一样. 但是如果用图片长*宽 的卷积窗口, 只能编码出一个大粒度的输出特征.

对于yolov1,每层使用同样大小的卷积窗口, 识别超大物体或者超小物体就变得无能为力(最后一层的输出特征图是固定7*7):

YOLO架构示意图

SSD就更进一步,最后一层的检测是由之前多个尺度(Multi-Scale)的特征图共同生成的:

SSD架构示意图

这样SSD在计算复杂度允许的情况下,在多尺度物体的检测上有所提高。但是SSD也有明显缺陷,其最后几层的所谓“多尺度”是有限的(如上图特征图尺寸越小,可以识别的物体越大)。对于极小的目标识别,SSD就显得无能为力了

来自:https://techcrunch.com/2017/06/16/object-detection-api/

假设“风筝”只占原始图片的几十个像素,SSD的高层特征图已经无法捕捉如此小的物体。

为了解决上述问题facebook的老兄们开发出了FPN(特征金字塔网络),这种网络不是一味地进行下采样提取语义特征去识别物体,而是从顶层(自上而下)的每一层都进行上采样获取更准确的像素位置信息(有些类似残差网络的跳层连接)

来自:https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c

我们知道卷积操作虽然能高效地向上提取语义,但是也存在像素错位的问题(到了最上层特征图中,你早已分不清某个像素对应原图的哪些像素)。这种上采样还原特征图的方式很好地缓解了像素不准的问题(使得高层特征图的像素也有据可查):

来自:https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c

所以为了小目标的检测FPN也是拼了,带来的问题也显而易见:计算量的增多额外的上采样和跳层计算)。

为了缓解这样的计算压力并且对多尺度物体更精准地识别,SNIPER另辟蹊径,对每个尺度大类下都维护一个重点关注区域(region)。就像狙击手每次调节倍焦时,框中区域的关注目标都在最佳尺度:

来自:SNIPER: Efficient Multi-Scale Training

上图虚线框就是某个尺度下的重点关注区域,实线框是ground truth的目标物体框,可见SNIPER试图把ground truth都圈围在重点关注区域的合适尺度下。此外,SNIPER还在重点关注区域中加入了重点排除区域,在许多背景中,许多目标是无须识别的:

来自:SNIPER: Efficient Multi-Scale Training

上图中的绿色框是groud truth,而红色框就是重点排除区域,其中的对象实际上是不需要识别的,SNIPER把这部分误检也排除了。与FPN不同的是,SNIPER不再需要处理每一层特征图的像素进行上采样,计算量下降了不少,据说只比普通的类似yolo的one shot模型多处理30%的像素(重点关注区域中的重叠部分)。并且对于较简单图像,SNIPER理论上应该允许退化到类似yolo的one shot模型(通过维护的重点关注区域)。实现上,SNIPER在RPN网络和Faster-RCNN中都用到了重点关注区域。

参考文献:

  1. 机器视觉 目标检测补习贴之SSD实时检测, Multibox Single Shot Detector
  2. Feature Pyramid Networks for Object Detection
  3. https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c
  4. SNIPER: Efficient Multi-Scale Training
  5. https://github.com/mahyarnajibi/SNIPER

聊聊目标检测中的多尺度检测(Multi-Scale),从YOLO,ssd到FPN,SNIPER,SSD填坑贴和极大极小目标识别相关推荐

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

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

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

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

  3. 缺陷检测中的分类、检测与分割网络

    缺陷检测中的分类.检测与分割网络 前言 1. 分类网络 2. 检测网络 3. 分割网络 前言 根据缺陷检测的三个阶段其方法大致可以分为三类分别是分类网络.检测网络.分割网络. 1. 分类网络 由于CN ...

  4. 目标检测中的多尺度特征

    目录 1. 图像金字塔(image pyramid) 1.1 多尺度训练/测试(multi-scale training/testing) 1.2 SNIP(Scale Normalization f ...

  5. 目标检测中的Two-stage的检测算法

    比较详细,作个备份 什么是目标检测(object detection): 目标检测(object detection),就是在给定的一张图片中精确找到物体所在的位置,并标注出物体的类别.所以,目标检测 ...

  6. 关于充电桩绝缘检测中判断标准以及检测电压的选取

    参照GBT 18487.1-2015 附录B.4.1中说明: "充电直流回路DC+.PE之间的绝缘电阻,与DC-.PE之间的绝缘电阻(两者取小值R),当R>500Ω/V视为安全:100 ...

  7. 视觉SLAM中的公制尺度(metric scale)

    在很多视觉SLAM相关的文献中,都能看到一个词:metric scale,翻译为公制尺度.搜索这个词,得到的结果都是关于公制单位的. 其实在SLAM中公制尺度可以理解为"现实中的尺度&quo ...

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

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

  9. 对于目标检测中mAP@0.5的理解

    文章目录 前言 mAP@0.5 AP是Precision-Recall Curve(PRC)下面的面积!!! 理一下思路 参考 前言 一直不是很理解目标检测中的mAP是如何的,今天具体来写一下,加深一 ...

最新文章

  1. pycharm连接远程服务器并进行代码上传+远程调试
  2. 用Git上传删除本地项目到gitlab---图文解析
  3. pku 1486 求出二分匹配图中的必须边
  4. glob及IO重定向
  5. 《漫画算法2》源码整理-5 二维数组螺旋输出
  6. vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...
  7. hihocoder-Week200-Shorteniring Sequence
  8. axis2开发webservice之编写Axis2模块(Module)
  9. python房地产爬虫_房产中介网站爬虫实战(Python BS4+多线程)(一)
  10. python携程gevent_Python协程介绍以及优缺点 Greentlet和Gevent的使用
  11. 33muduo_net库源码分析(九)
  12. DataType--数值类型
  13. 多层线性模型和面板数据模型笔记(待完善,持续更)
  14. 2017年蓝桥杯软件B组省赛试题
  15. med4way:中介效应和交互效应分析
  16. 你真的了解SEO搜索引擎优化吗?
  17. FPGA基础知识1(FPGA芯片结构)
  18. 如何成为一个很厉害的人(时间之尺)
  19. PTA A1007A1008
  20. AW笔记本升级SSD,外接双屏中的一些注意事项

热门文章

  1. 【obs】发送前丢帧算法及帧优先级设置
  2. 待办事项Windows软件推荐
  3. 太赞了!Python 开发神器Jupyter竟然还有可视化debug功能!
  4. Android 通用流行框架梳理
  5. 练习1(华为交换机忘记console口密码)
  6. 正向代理和反向代理定义和区别
  7. MySQL中如何定义一个自己写的函数
  8. coredump简介与coredump原因总结
  9. Dreamweaver2019版安装教程
  10. 为什么要配置环境变量,配置环境变量有什么好处?