论文阅读 | RefineDet:Single-Shot Refinement Neural Network for Object Detection
论文链接:https://arxiv.org/abs/1711.06897
代码链接:https://github.com/sfzhang15/RefineDet
摘要
RefineDet是CVPR 2018的一篇论文,文中提出了一个新的single-shot检测器RefineDet,实现了比二阶段方法更高的准确率而且具有与一阶段方法相当的效率。RefineDet包括两个互连模型ARM(anchor refinement module)和ODM(object detection module):前者用于滤除negative anchors来减少分类器的搜索空间,粗略调整anchors的位置和大小给之后的回归器更好的初始化;后者利用前者的anchors进一步回归和预测类别。
网络结构
RefineDet的网络结构如图1所示。ARM类似于Faster R-CNN的RPN,用于去除negative anchors并粗略调整anchors的位置和尺寸;ODM类似于SSD结构,对refined anchors进行进一步回归和分类。这两个互连模块(其实算是两个SSD)模拟了两级结构。此外,文中还设计了transfer connection block(TCB)来进行特征转换,也就是将ARM输出的feature map转换成ODM的输入。

TCB结构如图2所示。TCB通过在传输的特征中添加高层特征来集成大尺度的context,采用反卷积放大高层feature map然后进行element-wise sum,并在求和后加入一个卷积层,以保证特征的可识别性。

得益于TCB的特征融合,使得ODM低层的feature map融合了高层的feature map的语义信息,并基于每层的feature map进行预测,最后对各层的预测结果进行综合,相比于SSD,该部分的优势在于融合了多个层次的feature map,可以有效提升对小目标的检测效果。
为了缓解anchors的不平衡问题,文中设计了negative anchors过滤机制,对于ARM中产生的refined anchor boxes,如果其负的置信度大于预设值,在训练ODM时就丢掉。相应地,在预测阶段,如果产生的refined anchor boxes的负置信度大于阈值,在ODM的检测过程中就丢掉。
训练和预测
采用随机缩放、随机裁剪、随机光照变化、随机翻转等策略进行数据扩增。
使用基于VGG-16和ResNet-101的backbone网络(其他的也可以),移除了网络中的分类层,添加了几个辅助层。以VGG-16为例,通过下采样参数将vgg-16的fc6和fc7转换为卷积层。由于conv4_3和conv5_3具有与其它层不同的特征尺度,因此我们采用L2归一化对conv4_3和conv5_3的特征范数缩放到10和8。在截断的VGG-16的末尾增加了两个额外的卷积层(即conv6_1和conv6_2),在截断的ResNet-101的末尾添加了一个额外的残差块(即res6)实现在多尺度上获取高层信息驱动目标检测。
选取4个feature layer(步长8、16、32、64)处理不同尺度的目标,每个layer和特定尺度(尺度是对应层步长的4倍)的anchors和宽高比(0.5,1.0,2.0)相关联。
通过ARM部分过滤掉一些负样本,之后采用SSD的hard negative mining策略使得正负样本的比例维持在1:3。
损失函数如下:

损失函数包括两部分:ARM和ODM。ARM损失包括二分类的交叉熵和Smooth L1。ODM损失则是Softmax损失和Smooth L1。
实验结果
实验数据集:PASCAL VOC 2007,PASCAL VOC 2012,MS COCO。

在PASCAL VOC数据集上,单尺度输入的检测结果mAP达到0.818(VOC 2007)、0.801(VOC 2012),比faster R-CNN、R-FCN等绝大多数两阶段方法效果都好;而且检测速度大大提升,320*320输入图像检测速度达到40.3fps,512*512的检测速度为24.1fps。

在MS COCO数据集上,多尺度输入的检测结果高达41.8%,不仅优于单阶段检测算法,比绝大多数两阶段算法都高。
RefineDet应该是目前单阶段目标检测算法中效果最好的,检测效果甚至超过大多数的两阶段算法,而且检测速度很快。
论文阅读 | RefineDet:Single-Shot Refinement Neural Network for Object Detection的更多相关文章
- 论文阅读笔记五十七:FCOS: Fully Convolutional One-Stage Object Detection(CVPR2019)
论文原址:https://arxiv.org/abs/1904.01355 github: tinyurl.com/FCOSv1 摘要 本文提出了一个基于全卷积的单阶段检测网络,类似于语义分割,针对每 ...
- 论文阅读笔记六十三:DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling(CVPR2017)
论文原址:https://arxiv.org/abs/1703.10295 github:https://github.com/lachlants/denet 摘要 本文重新定义了目标检测,将其定义为 ...
- 三维目标检测论文阅读:Deep Continuous Fusion for Multi-Sensor 3D Object Detection
题目:Deep Continuous Fusion for Multi-Sensor 3D Object Detection 来自:Uber: Ming Liang Note: 没有代码,主要看思想吧 ...
- 论文阅读 | Towards a Robust Deep Neural Network in Text Domain A Survey
摘要 这篇文章主要总结文本中的对抗样本,包括器中的攻击方法和防御方法,比较它们的优缺点. 最后给出这个领域的挑战和发展方向. 1 介绍 对抗样本有两个核心:一是扰动足够小:二是可以成功欺骗网络. 所有 ...
- 【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation
R-CNN总结 不总结就没有积累 R-CNN的全称是 Regions with CNN features.它的主要基础是经典的AlexNet,使用AlexNet来提取每个region特征,而不再是传统 ...
- 梳理检测论文-Refinement Neural Network
Single-Shot Refinement Neural Network for Object Detection 目录 1. motivation 2. RefineDet 解析(Network ...
- Parallel Feature Pyramid Network for Object Detection
Parallel Feature Pyramid Network for Object Detection ECCV2018 总结: 文章借鉴了SPP的思想并通过MSCA(multi-scale co ...
- 论文笔记 SSD: Single Shot MultiBox Detector
转载自:https://zhuanlan.zhihu.com/p/33544892 前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-st ...
- 【论文阅读】DSDNet Deep Structured self-Driving Network
前言引用 [2] DSDNet Deep Structured self-Driving Network Wenyuan Zeng, Shenlong Wang, Renjie Liao, Yun C ...
随机推荐
- CentOS/RedHat安装Python3
CentOS/RedHat安装Python3 摘自:https://blog.csdn.net/mvpboss1004/article/details/79377019 CentOS/RedHat默认 ...
- [GO]空接口
package main import "fmt" //空接口的实际意义就在于在使用函数时,空接口可以接收任意类型的值,类似于python中的*args, **kwargs fun ...
- loadFileSystems error & ExceptionUtils错误原因分析
loadFileSystems error & ExceptionUtils错误原因分析 一见 2014/5/7 C/C++程序通过hdfs.h访问HDFS,运行时遇到如下错误,会是什么原因了 ...
- Android studio Maven仓库使用
原文:How to distribute your own Android library through jCenter and Maven Central from Android Studio ...
- ZookeeperGettingStarted
reference url: http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_FileManagement ZooKee ...
- Elasticsearch5.6.8 安装问题集锦
今天在内部linux环境安装Elasticsearch5.6.8时遇到一些问题,主要如下 使用Elasticsearch5.6.8 必须安装jdk1.8 [elsearch@vm-mysteel-dc ...
- Kernel-----EXPORT_SYMBOL使用
EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动 导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的. 2.6就必须用EX ...
- [转发]Oauth 1.0 1.0a 和 2.0 的之间的区别有哪些?
原文地址:http://www.zhihu.com/question/19851243
- android app启动就闪退怎么办?
开发过程中,如遇到android app启动就闪退,不要急,直接进入调试模式运行app,就会取得出错的原因. http://blog.sina.com.cn/s/blog_44fa172f0102wg ...
- android屏幕适配,生成不同分辨率的dimen.xml文件
一.在项目下新建moudle,选择Java Library 二.DimenUtils类 public class DimenUtils { //文件保存的路径 是在该项目下根路径下创建 比如该项目创建 ...