Single-Shot Refinement Neural Network for Object Detection[CVPR2018]

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

作者: Shifeng Zhang, LongyinWen, Xiao Bian, Zhen Lei, Stan Z. Li

地址arXiv:1711.06897

源码https://github.com/sfzhang15/RefineDet

对于物体检测,双阶段检测方法(例如:Faster R-CNN)已经取得了最好的检测精度,而单阶段方法(如SSD)有着效率高的优势,为了继承这两者的优点并且克服它们的缺点,在这篇论文中提出了一个新型的单阶段检测方法,命名为RefineDet。这个方法既可以像单阶段方法一样获得超过双阶段方法的检测精度,并且获得可比的运行速度。

RefineDet包括两个内联模块,分别是the anchor refinement module(ARM)和the object dection module(ODM)。ARM的作用是:

  1. 滤除负样本来减少分类器的搜索空间
  2. 粗略的调整anchors的位置和大小,为后续的回归提供更好的初始化。

ODM的作用:

  1. 把上一个模块的输出作为输入,对微调的anchors进行进一步的回归和预测多分类标签
  2. 还设计了一个transfer connection block来连接ARM和ODM。
  3. 同时还采用了多任务损失函数使得整个网络可以端对端训练。

该网络架构如下图所示:


上面的模块就是anchor refinement module,这个部分就是采用VGG16和Resnet101的网络进行卷积运算,然后抽取几层的卷积结果进行损失函数计算,下面的模块是object detection module,这个模块将anchor refinement module每一层feature maps的输出作为输入进行回归运算,在这个架构里相互平行的层尺度是一致的,两个模块通过transfer connection block(TCB)连接,这个模块非常重要,它的结构示意图如下图所示:


可以看到这个模块就是一些卷积激活函数的运算,整个运算不改变feature maps的尺度,比较出彩的地方是在这个模块结合了多尺度信息,可以看到每个blok之间都是相连的,后一层的feature maps经过反卷积运算将高尺度信息传递到上一层,一层一层的传递,最后能够整个多个尺度信息,这使得回顾和分类判断更加有效。这样使得整个网络下来效果非常好。

针对小目标的识别,作者这里采用了两步级联回归。在ARM中先调整anchor的位置和大小,然后用这种粗略的操作作为ODM的输入,最后ODM再进一步检测和识别物体,这种做法会有更加精确的检测结果。


论文翻译:


初始化方法:xavier

CNN数值——xavier(上):https://zhuanlan.zhihu.com/p/22028079

CNN数值——xavier(下): https://zhuanlan.zhihu.com/p/22044472

深度学习——Xavier初始化方法:https://blog.csdn.net/shuzfan/article/details/51338178

深度学习中Xavier初始化


猜你喜欢

转载自blog.csdn.net/julialove102123/article/details/80482216