RefineDet Summary

RefineDet总结

论文背景

论文全称:Single-Shot Refinement Neural Network for Object Detection

论文链接:https://arxiv.org/abs/1711.06897

论文日期:2018.1.3

论文代码:https://github.com/sfzhang15/RefineDet

本文提出了一个新型单一神经网络检测算法,既保证了准确率又保障了效率。

算法简介

RefineDet包含两个连接模型,命名为提炼锚模型(ARM)目标检测模型(ODM)
前者旨在滤除负样本锚以减少分类器的搜索空间,以及粗略调整锚的位置和大小,以便为后续的回归器提供更好的初始化。后者使用前者提炼的精确锚作为输入来进一步提高回归和对多类标签的预测。

其中,本文设计了一个转换连接块使用了多任务联合损失函数,将前者的特征转化为后者中预测定位、尺寸、类别标签。使得整体算法是一个端到端的算法

网络采用了类似FPN的思想, 通过 Transfer Connection Block 将特征图谱在两个模块之间传送, 不仅提升了的精度, 同时还在速度方面取得了与one-stage方案相媲美的表现

主流目标检测算法:

  • 两阶段的目标检测算法:先提取稀疏的候选区域,然后进行分类与回归。e.g:fast R CNNfaster R CNN

  • 一阶段的目标检测算法:在整张图片中采用不同的尺寸与比例进行常规密集的采样。e.g:ssd

目前两阶段的算法在准确率是表现优于一阶段的算法,最主要的原因是样本不平衡的问题

Z64Nlt.png

图片仅显示了用于检测的层,灰青色的平行四边形表示与不同特征层相关联的精炼的锚框,星星代表精炼的锚框的中心,这些锚框在图像上没有常规的铺设。

实验结果

准确率:
RefineDet算法使用VGG16神经网络在VOC2007与2012数据集上准确率分别达到了85.8%和86.8% mAPs。
效率:
在 NVIDIA Titan X GPU上使用320×320和512×512尺寸的输入,速度分别达到了40.2 FPS和24.1 FPS。

算法细节

主要元素

  1. 使用TCB将ARM中的特征传递到ODM中;
  2. 使用两步的级联回归,对于不同位置尺寸的目标进行准确回归;
  3. 负样本锚过滤,删除良好分类的负样本锚来缓解不平衡样本问题。

TCB(Transfer Connection Block)

通过TCB,ARM与ODM可以共享特征;
通过添加高等级特征来传递特征使大规模的文本信息成为一个整体,从而提高检测精度。
Z6I8xI.png
为了匹配维度,论文使用逆卷积操作来使高层的特征图变大,然后使用像素级的方式相加, 然后,论文在求和之后添加卷积层以确保用于检测的特征的可辨别性。
ARM会精炼边界框,返回相对于对应单元格的四个偏移量和两个置信度分数。
浅层feature map(size较大的蓝色矩形块)融合了高层feature map的信息,然后预测bbox是基于每层feature map(每个蓝色矩形块)进行,最后将各层结果再整合到一起。而在SSD中浅层的feature map是直接拿来用的(并没有和高层的feature map融合),也就是对bbox的预测是在每一层上进行的,预测得到结果后再将各层结果整合在一起。

负样本过滤

在训练过程中,负样本中置信度大于0.99的丢弃,
在推测阶段,超过0.99的也有丢弃。

训练

数据增强

拉伸,裁剪,翻转。

锚的设计与匹配

为了处理不同大小的目标,论文选择了四个特征图层,对于VGG-16和ResNet1015,其总步幅大小为8,16,32和64像素,结合用于预测的几种不同尺度与比例的锚点。 每个特征层与一个特定尺度的锚(即,尺寸是相应层的总步幅尺寸的4倍)和三个纵横比(即,0.5,1.0和2.0)相关联。 论文按照[53]中不同层次的锚点尺度设计,确保不同尺度的锚点在图像上具有相同的平铺密度。 同时,在训练阶段,论文根据jaccard重叠确定锚点与地面实例框之间的对应关系,并据此对整个网络进行跟踪。 具体而言,论文首先将每个地面实况与具有最佳重叠分数的锚框匹配,然后将锚框与任何重叠高于0.5的地面实况相匹配。

Hard Negative Mining

与SSD相同,论文选择一些具有最高损失值的负锚箱,使得负数和正数之间的比率低于3:1,而不是使用所有负数锚或在训练中随机选择负锚。

损失函数

Z6oKO0.png

在ARM部分包含binary classification损失Lb和回归损失Lr;

同理在ODM部分包含multi-class classification损失Lm和回归损失Lr。
Lb是交叉熵损失函数
Lm是softmax
Lr是L1损失函数
N是正样本的数量

优化

本文对基于RefineDet的VGG-16的额外添加的两层卷积层(例如conv6 1 and conv6 2)利用xaVier方法进行了初始化;
然后对于基于RefineDet的ResNet-101的额外的残差块(res6)进行归一化;
训练利用默认 batch size 设置为32;
微调使用0.9 momentum and 0.0005 weight decay的SGD;
初始化学习率为0.001.

推断

对于所有提炼的框,对于每张图片输出400个高置信度检测器,对于每个类别使用阈值为0.45的非极大值抑值,保留200个框。

-------------本文结束感谢您的阅读-------------
undefined