梳理检测论文-Refinement Neural Network

Single-Shot Refinement Neural Network for Object Detection

 

目录

1. motivation

2. RefineDet 解析(Network Architecture)

     2.1 backbone 的构造

     2.1 ARM的作用与构造

     2.2 ODM的作用与构造

     2.3 TCB 模块解析

     2.4 multi-task loss function:

     2.5 Two-Step Cascaded Regression(两步级联的回归)

     2.6 Negative Anchor Filtering

3. Training and Inference

      3.1 Data Augmentation

      3.2 Backbone Network

      3.3 Anchor的设计与匹配

4. 总结

    4.2 技术总结

    4.2.1 数据的处理(voc0712.py)

 

1. motivation

对于目标检测的方法按照处理流程可以分为:2-stage approach 和 1-stage approach; 两者在处理速度和准确率上各有千秋:

两步法(2-stage)[1],[2],[3] 先生成候选目标框集合(稀疏),然后进一步对它们进行分类和回归; 2-stage方法在一些比赛中取得了较好的性能;例如 faster R-CNN,往往具有很高的准确率,但速度相对而言并不快;

 

一步法(1-stage)[4],[5] 通过在位置、尺度和高宽比上的规则和密集抽样来检测物体.其主要优点是计算效率高,其检测精度通常落后于两阶段法,其主要原因之一是类别不平衡问题。例如 SSD,yolo,却可以获得很高的速度 为了克服两者缺点、继承双方的优点

基于此, 本篇论文提出的模型 RefineDet致力于将两者的优点结合起来, 弥补两者的缺点, 即:获得比2-stage 方法更好的准确率,并且具有与1 stage媲美的效率。

2. RefineDet 解析(Network Architecture)

 

本章主要讲解RefineDet每个模块的功能和实现方法;

RefineDet 的框架结构与SSD[4]有点类似, 总工作流程如下:

  1. 网络通过前馈生成固定数量的bounding box和分数;分数代表了这些box中某些类别的可能性。
  2. 使用non-maximum suppression产生最终的结果。

从结构上看,RefineDet主要由两个内部链接的模块组成:anchor强化模块(anchor refinement module, ARM)和物体检测模块(object detection module,ODM)。TCB模块是用于连接ARM和ODM的一个模块;

 

2.1 backbone 的构造

网络的主框架可以是VGG或者Resnet; 为了方便起见这里以VGG16为例,作为backbone.

backbone是通过删除VGG的分类层后,再添加两个基本网络的辅助结构(即,在ImageNet 上预训练的VGG-16 和ResNet-101 )来构建的; 为了表达方便,将删除分类层的VGG16称为base, 添加的辅助结构叫做extras,  网络的构造如下:

 

clipboard

 

实现代码: 1. base 的vgg

posted @ 2019-05-09 21:05  修雨轩陈  阅读(873)  评论(0编辑  收藏  举报