聊聊目标检测中的多尺度检测(Multi-Scale),从YOLO,ssd到FPN,SNIPER,SSD填坑贴和极大极小目标识别
转自: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中都用到了重点关注区域。
参考文献:
- 机器视觉 目标检测补习贴之SSD实时检测, Multibox Single Shot Detector
- Feature Pyramid Networks for Object Detection
- https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c
- SNIPER: Efficient Multi-Scale Training
- https://github.com/mahyarnajibi/SNIPER
聊聊目标检测中的多尺度检测(Multi-Scale),从YOLO,ssd到FPN,SNIPER,SSD填坑贴和极大极小目标识别相关推荐
- 检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法
↑ 点击蓝字 关注极市平台作者丨SFXiang来源丨AI算法修炼营编辑丨极市平台 极市导读 本文从降低下采样率与空洞卷积.多尺度训练.优化Anchor尺寸设计.深层和浅层特征融合等多个方面入手,对目标 ...
- 综述 | 目标检测中的多尺度检测方法
本文从降低下采样率与空洞卷积.多尺度训练.优化Anchor尺寸设计.深层和浅层特征融合等多个方面入手,对目标检测中的多尺度检测方法进行了全面概述,并介绍了多尺度检测相关方法. 前面的话 传统卷积网络通 ...
- 缺陷检测中的分类、检测与分割网络
缺陷检测中的分类.检测与分割网络 前言 1. 分类网络 2. 检测网络 3. 分割网络 前言 根据缺陷检测的三个阶段其方法大致可以分为三类分别是分类网络.检测网络.分割网络. 1. 分类网络 由于CN ...
- 目标检测中的多尺度特征
目录 1. 图像金字塔(image pyramid) 1.1 多尺度训练/测试(multi-scale training/testing) 1.2 SNIP(Scale Normalization f ...
- 目标检测中的Two-stage的检测算法
比较详细,作个备份 什么是目标检测(object detection): 目标检测(object detection),就是在给定的一张图片中精确找到物体所在的位置,并标注出物体的类别.所以,目标检测 ...
- 关于充电桩绝缘检测中判断标准以及检测电压的选取
参照GBT 18487.1-2015 附录B.4.1中说明: "充电直流回路DC+.PE之间的绝缘电阻,与DC-.PE之间的绝缘电阻(两者取小值R),当R>500Ω/V视为安全:100 ...
- 视觉SLAM中的公制尺度(metric scale)
在很多视觉SLAM相关的文献中,都能看到一个词:metric scale,翻译为公制尺度.搜索这个词,得到的结果都是关于公制单位的. 其实在SLAM中公制尺度可以理解为"现实中的尺度&quo ...
- 目标检测中的性能提升方法综述
文章目录 一.多尺度检测 1.什么是多尺度检测? 2.降低下采样率与空洞卷积 3.多尺度训练 4.优化Anchor尺寸训练 5.深层与浅层特征融合 6.SNIP,尺度归一化 7.TridentNet, ...
- 对于目标检测中mAP@0.5的理解
文章目录 前言 mAP@0.5 AP是Precision-Recall Curve(PRC)下面的面积!!! 理一下思路 参考 前言 一直不是很理解目标检测中的mAP是如何的,今天具体来写一下,加深一 ...
最新文章
- pycharm连接远程服务器并进行代码上传+远程调试
- 用Git上传删除本地项目到gitlab---图文解析
- pku 1486 求出二分匹配图中的必须边
- glob及IO重定向
- 《漫画算法2》源码整理-5 二维数组螺旋输出
- vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...
- hihocoder-Week200-Shorteniring Sequence
- axis2开发webservice之编写Axis2模块(Module)
- python房地产爬虫_房产中介网站爬虫实战(Python BS4+多线程)(一)
- python携程gevent_Python协程介绍以及优缺点 Greentlet和Gevent的使用
- 33muduo_net库源码分析(九)
- DataType--数值类型
- 多层线性模型和面板数据模型笔记(待完善,持续更)
- 2017年蓝桥杯软件B组省赛试题
- med4way:中介效应和交互效应分析
- 你真的了解SEO搜索引擎优化吗?
- FPGA基础知识1(FPGA芯片结构)
- 如何成为一个很厉害的人(时间之尺)
- PTA A1007A1008
- AW笔记本升级SSD,外接双屏中的一些注意事项