转载: 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论文详解相关推荐

  1. 目标检测YOLOv3论文详解

    第二节 YOLOv3 2.1 YOLOv3简介 YOLO系列的目标检测算法可以说是目标检测史上的宏篇巨作,YOLOv3是YOLO (You Only Look Once)系列目标检测算法中的第三版,v ...

  2. 深度篇——目标检测史(七) 细说 YOLO-V3目标检测 之 代码详解

    返回主目录 返回 目标检测史 目录 上一章:深度篇--目标检测史(六) 细说 YOLO-V3目标检测 下一章:深度篇--目标检测史(八) 细说 CornerNet-Lite 目标检测 论文地址:< ...

  3. 目标检测算法YOLOv4详解

    YOLOv4是精度速度最优平衡, 各种调优手段是真香,本文主要从以下几个方面进行阐述: YOLOv4介绍 YOLOv4框架原理 BackBone训练策略 BackBone推理策略 检测头训练策略 检测 ...

  4. 论文阅读 || 目标检测系列 —— RCNN详解

    目录 1. 相关概念 2 R-CNN的结构 2.1 候选框的提取 2.2 缩放候选区域 2.3 通过CNN提取特征向量 2.4 目标种类分类器 2.5 修正bbox 1) 候选框P 到预测框G'的平移 ...

  5. 目标检测 RCNN算法详解

    原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...

  6. 目标检测算法——SSD详解

    目录 一. 背景(基本介绍) 二. 网络结构 三. 具体过程 1. default box 匹配 2. 损失函数 3. 数据增广 4. Atrous Algothrim 5.  NMS(非极大值抑制) ...

  7. 目标检测算法YOLO-V2详解

    ❝ 上期我们一起学习了YOLO-V1算法的框架原来和损失函数等知识,如下: 目标检测算法YOLO-V1算法详解 目标检测模型YOLO-V1损失函数详解 [文末领福利] ❞ 今天,我们一起学习下YOLO ...

  8. 目标检测算法——YOLOV7——详解

    1.主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器. 当前目标检测主要的优化方向: ...

  9. 目标检测指标mAP详解

    前言 相信刚刚接触目标检测的小伙伴也是有点疑惑吧,目标检测的知识点和模型属实有点多,想要工作找CV的话,目标检测是必须掌握的方向了.我记得在找实习的时候,面试官就问到了我目标检测的指标是什么,答:mA ...

最新文章

  1. 跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期
  2. linux安装显卡驱动的run文件,Linux系统下安装NVIDIA显卡驱动(run格式文件)
  3. 智能手环功能模块设计_基于STM32实现智能手环设计
  4. Ubuntu14.04安装wine QQ
  5. java实现闹钟功能_AlarmManager类的应用(实现闹钟功能)
  6. 2020年全球云服务规模将达3900亿美元
  7. Maximum XOR Sum 系列问题
  8. java并发编程代码示例_java并发编程之同步器代码示例
  9. excel图表交互联动_Excel图表联动的三种方法
  10. 计算机毕业设计jsp社区养老服务管理系统
  11. 《设计心理学 1 日常的设计》 唐纳德·A·诺曼 pdf下载
  12. 水晶报表java_JAVA水晶报表从环境搭建到创建动态水晶报表
  13. Photoshop将图片转为RGB颜色模式 您还不会吗?
  14. AR law : Privacy
  15. vb局域网连接mysql_VB 用代码进行局域网内数据库的连接
  16. 提取单元格中某字符最后出现位置之前的数据
  17. Vue之导出xlsx
  18. 微信公众号项目录音上传功能
  19. 服务器数据库异常MySQL_服务器 mysql数据库异常
  20. 【FederatedLearning】联邦学习类别详述(横向、纵向、迁移)

热门文章

  1. win7系统安装提示“很抱歉,程序无法在非MBR引导的分区上进行激活
  2. 月薪过万算中产吗?别听专家忽悠,算清这8本账:你这是骂我
  3. 前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS
  4. [转贴]“山寨”之现状分析
  5. 恶意软件及反病毒的一些知识
  6. 毕博携ETM.next解决方案亮相上海宝马工程机械展
  7. python3设置编码格式_python3编码调整
  8. enum java 赋值_java enum无法赋初始值
  9. Delphi中BPL包的使用,个人经验
  10. C语言的return用法