论文阅读 | 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 ...
随机推荐
- HBase列族高级配置
转自:http://blog.sina.com.cn/s/blog_ae33b83901018euz.html ------------------ HBase有几个高级特性,在你设计表时可以使用.这 ...
- CentOS7.4配置SSH登录密码与密钥身份验证踩坑
简单记录,自用CentOS7.4虚拟机与ALiYunVPS,在配置ssh登录身份验证时碰到的问题. 阿里云VPS:因为在重置磁盘时选择了密钥对的身份验证方式,因此VPS中的CentOS7.4中的 /e ...
- 3.3.4深度剖析ConcurrentLinkedQueue
队列.链表之类的数据结构及其常用.Java中,ArrayList和Vector都是使用数组作为其内部实现.两者最大的不同在于:Vector是线程安全的,而ArrayList不是.此外LinkedLis ...
- python中return的用法
def testReturn(x): if x > 10000: return print "test return!!" #这句话永远不会得到执行 elif x > ...
- Alpha冲刺(五)
Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1 柯奇豪 过去两天完成了哪些任务 基于ssm框架的前后端交互测试,结合微信小 ...
- elasticsearch常用JAVA API 实例
1.引入dependency <dependency> <groupId>org.springframework.data</groupId> <artifa ...
- php 与java安卓客户端的查询交互
PHP 服务器端: function getids() { $this->output->set_header('Content-Type: application/json; chars ...
- Android-bindService远程服务(Aidl)-初步
之前上一篇讲解到本地服务,本地服务只能在自身APP中Activity访问Service,调用Service里面到方法等操作 如果想A应用访问B应用里面的方法,属于跨进程调用,如果Android不特供这 ...
- 虚拟化 - VirtualBox
安装 win10上如果要使用VirtualBox安装64位系统(如Ubuntu),那么就要: CPU.主板支持虚拟化技术 打开主板BIOS上的虚拟化开关(前提是前面说的CPU.主板支持虚拟化技术) 不 ...
- UML uml建模工具
UML建模工具 一.UML的概念: 参考百度百科: https://baike.baidu.com/item/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD ...