Face Paper: 目标检测RSSD论文详解
转载: http://blog.csdn.net/u014380165/article/details/77130922
论文:Enhancement of SSD by concatenating feature maps for object detection
论文链接:https://arxiv.org/abs/1705.09587
算法详解:
SSD算法在object detection领域的效果有目共睹,是proposal-free方面的代表算法之一,如果你对SSD算法不大熟悉,可以看看这篇博客:SSD(single shot multibox detector)算法及Caffe代码详解,而本文提出的是对传统SSD算法的改进。虽然深度网络的效果会随着feature map数量的增加而更好,但是这并不代表简单地增加feture map数量就能有更好的效果(文章的实验部分有关于简单增加feature map数量和本文对特征的融合效果对比)。另外作者并未将原本的VGG主网络换成ResNet,而是通过改进特征融合方式提升原有SSD算法的效果,使其充分利用特征。虽然速度比传统的SSD慢一点,但是mAP比传统的SSD高。
先来看看文章中关于本文算法的效果:For the Pascal VOC 2007 test set trained with VOC 2007 and VOC 2012 training sets, the proposed network with the input size of 300*300 achieved 78.5% mAP (mean average precision) at the speed of 35.0 FPS (frame per second), while the network with a 512*512 sized input achieved 80.8% mAP at 16.6 FPS using Nvidia Titan X GPU.
传统的SSD通过利用不同层特征做object detection,使其对scale variation有较好的鲁棒性,同时兼顾了准确率和速度,但是传统的SSD有两个小问题:
1、因为在SSD中,不同层的feature map都是独立作为分类网络的输入,因此容易出现相同物体被不同大小的框同时检测出来。
2、对小尺寸物体的检测效果比较差(大多数object detection算法都有这个问题)。
因此这篇算法也主要从这两方面来改进传统的SSD算法:一方面利用分类网络增加不同层之间的feature map联系,减少重复框的出现;另一方面增加feature pyramid中feature map的个数,使其可以检测更多的小尺寸物体。Figure5(a)(b)分别表示传统的SSD算法的两个小问题,Figure(c)(d)表示改进后的SSD(Rainbow SSD或称为R-SSD)算法针对原有的两个小问题的改进情况。
Figure3表示几种不同的特征融合方式。(a)表示采用pooling的方式进行融合,什么意思呢?看(a)最左边的38*38的feature map,将其做pooling后和右边第二个的19*19的feature map做concate,这样就有两个19*19的feature map了(一个红色,一个橙色);然后再对这两个19*19的feature map做pooling,再和左边第三个黄色的10*10的feature map做concate……(b)表示采用deconvolution的方式进行特征融合,这次是从最右边的1*1的紫色feature map往左做concate,因为deconvolution是升维,所以从右至左;前面pooling是降维,所以是从左至右。concate方法和前面(a)的pooling类似,不再细讲。作者认为前两种特征融合方式的缺点在于信息的传递都是单向的,这样分类网络就没法利用其它方向的信息,因此就有了(c)。(c)表示同时采用pooling和deconvolution进行特征融合,这也是本文rainbow SSD所采用的。应该是同时从左至右(pooling,concate)和从右至左(deconvolution,concate)。(c)中用不同颜色的矩形框表示不同层的feature map,其融合后的结果很像rainbow,可能这就是算法名称Rainbow SSD的由来吧。一个细节是:在做caoncate之前都会对feature map做一个normalization操作,因为不同层的feature map的scale是不同的,文中的normalization方式采用 batch normalization。
由于Figure3(c)这种特征融合方式使得融合后每一层的feature map个数都相同(2816),因此可以共用部分参数,具体来讲就是default boxes的参数共享。最后和传统SSD算法的中的default boxes的数量对比如下表Table1:
实验结果:
不同算法的实验结果对比可以看Table3,这里还有Table2表示只在原来SSD基础上增加不同层的feature map的channel个数的I-SSD算法。通过Table3的实验可以看出I-SSD虽然效果不错,但是由于增加了feature map的数量会带来计算时间的消耗,所以FPS较低。R-SSD算法的效果和FPS都表现不错。R-FCN虽然效果不错,但是速度上不占优势。
Figure4是recall和AP的曲线图:
Table4是AP和mAP的对比:
Table5是关于不同scale的object的召回率情况对比:
总结:
总的来说,作者通过rainbow concatenation方式(pooling加deconvolution)融合不同层的特征,在增加不同层之间feature map关系的同时也增加了不同层的feature map个数。因此这种融合方式不仅解决了传统SSD算法存在的重复框问题,同时一定程度上解决了small object的检测问题。
Face Paper: 目标检测RSSD论文详解相关推荐
- 目标检测YOLOv3论文详解
第二节 YOLOv3 2.1 YOLOv3简介 YOLO系列的目标检测算法可以说是目标检测史上的宏篇巨作,YOLOv3是YOLO (You Only Look Once)系列目标检测算法中的第三版,v ...
- 深度篇——目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解
返回主目录 返回 目标检测史 目录 上一章:深度篇--目标检测史(六) 细说 YOLO-V3目标检测 下一章:深度篇--目标检测史(八) 细说 CornerNet-Lite 目标检测 论文地址:< ...
- 目标检测算法YOLOv4详解
YOLOv4是精度速度最优平衡, 各种调优手段是真香,本文主要从以下几个方面进行阐述: YOLOv4介绍 YOLOv4框架原理 BackBone训练策略 BackBone推理策略 检测头训练策略 检测 ...
- 论文阅读 || 目标检测系列 —— RCNN详解
目录 1. 相关概念 2 R-CNN的结构 2.1 候选框的提取 2.2 缩放候选区域 2.3 通过CNN提取特征向量 2.4 目标种类分类器 2.5 修正bbox 1) 候选框P 到预测框G'的平移 ...
- 目标检测 RCNN算法详解
原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...
- 目标检测算法——SSD详解
目录 一. 背景(基本介绍) 二. 网络结构 三. 具体过程 1. default box 匹配 2. 损失函数 3. 数据增广 4. Atrous Algothrim 5. NMS(非极大值抑制) ...
- 目标检测算法YOLO-V2详解
❝ 上期我们一起学习了YOLO-V1算法的框架原来和损失函数等知识,如下: 目标检测算法YOLO-V1算法详解 目标检测模型YOLO-V1损失函数详解 [文末领福利] ❞ 今天,我们一起学习下YOLO ...
- 目标检测算法——YOLOV7——详解
1.主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器. 当前目标检测主要的优化方向: ...
- 目标检测指标mAP详解
前言 相信刚刚接触目标检测的小伙伴也是有点疑惑吧,目标检测的知识点和模型属实有点多,想要工作找CV的话,目标检测是必须掌握的方向了.我记得在找实习的时候,面试官就问到了我目标检测的指标是什么,答:mA ...
最新文章
- 跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期
- linux安装显卡驱动的run文件,Linux系统下安装NVIDIA显卡驱动(run格式文件)
- 智能手环功能模块设计_基于STM32实现智能手环设计
- Ubuntu14.04安装wine QQ
- java实现闹钟功能_AlarmManager类的应用(实现闹钟功能)
- 2020年全球云服务规模将达3900亿美元
- Maximum XOR Sum 系列问题
- java并发编程代码示例_java并发编程之同步器代码示例
- excel图表交互联动_Excel图表联动的三种方法
- 计算机毕业设计jsp社区养老服务管理系统
- 《设计心理学 1 日常的设计》 唐纳德·A·诺曼 pdf下载
- 水晶报表java_JAVA水晶报表从环境搭建到创建动态水晶报表
- Photoshop将图片转为RGB颜色模式 您还不会吗?
- AR law : Privacy
- vb局域网连接mysql_VB 用代码进行局域网内数据库的连接
- 提取单元格中某字符最后出现位置之前的数据
- Vue之导出xlsx
- 微信公众号项目录音上传功能
- 服务器数据库异常MySQL_服务器 mysql数据库异常
- 【FederatedLearning】联邦学习类别详述(横向、纵向、迁移)
热门文章
- win7系统安装提示“很抱歉,程序无法在非MBR引导的分区上进行激活
- 月薪过万算中产吗?别听专家忽悠,算清这8本账:你这是骂我
- 前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS
- [转贴]“山寨”之现状分析
- 恶意软件及反病毒的一些知识
- 毕博携ETM.next解决方案亮相上海宝马工程机械展
- python3设置编码格式_python3编码调整
- enum java 赋值_java enum无法赋初始值
- Delphi中BPL包的使用,个人经验
- C语言的return用法