STDN: Scale-Transferrable Object Detection论文总结
概述
STDN是收录于CVPR 2018的一篇目标检测论文,提出STDN网络用于提升多尺度目标的检测效果。要点包括:(1)使用DenseNet-169作为基础网络提取特征;(2)提出Scale-transfer Layer,在几乎不增加参数量和计算量的情况下生成大尺度的feature map。
STDN介绍
Figure 1回顾了目标检测算法对feature map的利用情况:
(a)是只使用单一尺度的feature map进行检测,这种方法利用的特征层较少,检测效果一般,代表性的算法如Faster RCNN;
(b)是FPN的做法,将不同尺度的feature map自顶向下进行融合,并基于融合后的不同尺度的feature map分别进行检测,对小目标的检测效果提升明显,构建特征金字塔的方式可以充分利用多个层次的feature map信息,但是需要添加一些额外的网络层,增加了计算量和时间;
(c)是SSD算法的做法,对不同尺度的feature map分别检测,虽然浅层专用于小目标的目标检测,但是由于没有使用到高层的语义信息,所以对小目标的检测效果一般;
(d)是本文的做法,检测方式类似于SSD,但是通过基础网络DenseNet将高低层特征融合,因此可以达到类似FPN的效果。

网络结构如下图所示,可以看做是SSD的一个改进版,将原SSD中基础网络VGG替换为DenseNet-169,通过DenseNet提取特征在最后一个Dense Block获得一系列9*9大小的feature map,然后通过Scale-transfer Module对feature map进行放大或缩小。最后分别对不同尺度的feature map做目标检测。
各层的结构如表3所示,论文所用的DenseNet对原DenseNet的输入层进行了调整,具体为:将7*7卷积层(stride=2)和其后的3*3 max pooling层(stride=2,stride=1,stride=1)替换为3个3*3卷积层(stride=2)和1个2*2 mean pooling层(stride=2)。调整称为stem block。这样做提升了检测精度。


文中提出Scale-Transferrable Module(STM)用于进行feature map的尺度变换,具体为:
(1)获取小feature map :mean pooling
(2)获取大feature map:Scale-Transfer Layer(STL)
STL是利用多个通道的feature map来增大feature map尺寸,也就是压缩通道数增大map尺寸。

以网络的最后一个预测层为例,DenseNet-169的输出维度为9*9*1664,经过一个4X的scale-transfer后变为36*36*104。整个过程是像素值周期排列的过程,在此次变换中r=4,变换后的第一个通道上一个r*r像素块的像素值相当于是原来前r*r个通道上1*1的像素值的重新排列。
训练和损失函数
Anchor Box设置尺度同SSD,aspect ratio同DSSD,负样本挖掘、数据扩增、损失函数等等都跟SSD没差。
实验结果
(1)PASCAL VOC 2007

STDN相比SSD提升较为明显,与DSSD也有的一拼,作者认为STDN比DSSD稍差的原因是DSSD的基础网络Residual-101网络参数具有压制力(Residual-101有42M,而DenseNet-169只有14M)。
(2)COCO test-dev 2015
见表4。可以看出对中小型目标的检测效果优于其他主流算法,IoU 在0.5~0.95之间的目标检测效果也很不错,比Faster RCNN和R-FCN差(他们输入图像大,1000*600),比DSSD差(参数碾压),但是STDN不仅mAP高而且运行速度快(是DSSD的5倍多)。

主流算法的精度、速度对比如下:


可见,STDN的表现很好,速度非常快,而且精度高,输入图像小,在取得较高准确率的同时又兼顾了速度。例如STDN321和513两个模型相比于Faster-RCNN、YOLOv2、SSD、DSSD等,首先在正确率上已具有相同或者更高的水平,但是在速度上优势很大,特别是对于准确率较高的R-FCN和DSSD513简直是碾压。
记:1.开头那个7*7改成3*3卷积的可以试试;2.这种方法用作上采样可以减少一定的计算量
STDN: Scale-Transferrable Object Detection论文总结的更多相关文章
- PVANET----Deep but Lightweight Neural Networks for Real-time Object Detection论文记录
arxiv上放出的物体检测的文章,在Pascal voc数据集上排第二.源码也已放出(https://github.com/sanghoon/pva-faster-rcnn),又可以慢慢把玩了.这篇文 ...
- Flow-Guided Feature Aggregation for Video Object Detection论文笔记
摘要 目前检测的准确率受物体视频中变化的影响,如运动模糊,镜头失焦等.现有工作是想要在框的级别上寻找时序信息,但这样的方法通常不能端到端训练.我们提出了flow-guided feature aggr ...
- Focal Loss for Dense Object Detection 论文阅读
何凯明大佬 ICCV 2017 best student paper 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确 ...
- 【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)
目录 0. 前言 1. 博客一 2.. 博客二 0. 前言 这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里 ...
- 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection
论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- 目标检测 | 经典算法 Cascade R-CNN: Delving into High Quality Object Detection
作者从detector的overfitting at training/quality mismatch at inference问题入手,提出了基于multi-stage的Cascade R-CNN ...
- 目标检测 | RetinaNet:Focal Loss for Dense Object Detection
论文分析了one-stage网络训练存在的类别不平衡问题,提出能根据loss大小自动调节权重的focal loss,使得模型的训练更专注于困难样本.同时,基于FPN设计了RetinaNet,在精度和速 ...
- 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读
前言 本来想按照惯例来一个overview的,结果看到1篇十分不错而且详细的介绍,因此copy过来,自己在前面大体总结一下论文,细节不做赘述,引用文章讲得很详细,另外这篇paper引用十分详细,如果做 ...
随机推荐
- Java基础(37)ArrayList的remove方法
1.问题描述 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 输入: s = "abcd& ...
- background-origin背景图片定位
语法 background-origin: padding-box|border-box|content-box; background-Origin属性指定background-position属性 ...
- C语言知识体系
吾尝终日而思矣,不如须臾之所学也: 吾尝跂而望矣,不如登高之博见也. 登高而招,臂非加长也,而见者远: 顺风而呼,声非加疾也,而闻者彰. 假舆马者,非利足也,而致千里: 假舟楫者,非能水也,而绝江河. ...
- ProvisionedAppxPackage VS AppxPackage
正文 先来说说问题的由来. 在 Preinstall 的 component 中,有一支 component 叫做 MS_StartApp,这个 component 的行为是在预安装时为目标机器装入一 ...
- SpringBoot 整合 Elasticsearch深度分页查询
es 查询共有4种查询类型 QUERY_AND_FETCH: 主节点将查询请求分发到所有的分片中,各个分片按照自己的查询规则即词频文档频率进行打分排序,然后将结果返回给主节点,主节点对所有数据进行汇总 ...
- Theano基础
Theano是python的一个开源库,其解决大量数据问题时性能更好. 首先,给一个关于theano.function的demo: import theano from theano import t ...
- Unity4-用户输入
Input是一个类,可以接收用户的输入 使用AddComponentMenu("Demo1/InputTest1"),将脚本加入到工程中. //例子: void Update() ...
- C/C++ return *this和return this的区别
首先我们知道~ class Test { public: Test() { return this; //返回的当前对象的地址 } Test&() { return *this; //返回的是 ...
- Go服务监控
使用Golang可以开发出高性能的HTTP.GRPC服务.一般项目运行后,我们也需要监控服务的性能或者进行调试.除了打日志,还有没有其他可视化的方案呢?答案是有的. 本文将会介绍几种常用的监控方案. ...
- Kong03-Nginx、OpenResty、Kong 的基本概念和区别联系
Nginx.OpenRestry.Kong 这三个项目关系比较紧密: Nginx 是模块化设计的反向代理软件,C语言开发: OpenResty 是以 Nginx 为核心的 Web 开发平台,可以解析执 ...