论文: 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的作用是:
- 滤除负样本来减少分类器的搜索空间
- 粗略的调整anchors的位置和大小,为后续的回归提供更好的初始化。
ODM的作用:
- 把上一个模块的输出作为输入,对微调的anchors进行进一步的回归和预测多分类标签。
- 还设计了一个transfer connection block来连接ARM和ODM。
- 同时还采用了多任务损失函数使得整个网络可以端对端训练。
该网络架构如下图所示:
上面的模块就是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