论文:Single-Shot Refinement Neural Network for Object Detection
论文链接:https://arxiv.org/abs/1711.06897
RefineDet网络的设计初衷是在保持one-stage目标检测速度的同时提高检测效果.RefineDet网络结构在我看来可以理解为FPN+ARM(类RPN)+ODM.
RefineDet网络结构
FPN:
FPN网络首先通过一个backbone产生特征金字塔(对应图中上半部分的特征层),然后通过自顶向下的上采用和横向连接构造用于检测的特征层(对应图中下半部分蓝色的特征层),自顶向下的上采样和横向连接相当于图中的Transfer Connection Block(后面会详细讲解),所以我将上下特征层的构建理解为FPN(参考博客FPN网络解析)
anchor refinement module (ARM)
ARM模块的作用就是在图中上半部分的特征层,对密集的anchor进行一个粗略的筛选(类似faster rcnn的RPN思想).具体来说就是对anchor进行二分类:背景还是目标,同时对anchor进行一个简单的回归调整其位置;目的是为了获取一个较好的anchor初始状态,传送到下半部分中相对应蓝色特征层中去进行进一步的精细处理(这一步对应图中的虚线部分)
object detection module (ODM)
ODM模块和SSD中的检测层一样,在多个特征层上进行检测,最后将结果汇聚到一起,通过NMS得到最终的检测结果,该结构很普通在很多目标检测网络中都可以看到
Transfer Connection Block
前面说过Transfer Connection Block相当于FPN中的自顶向下的上采样和横向连接,图中上半部分的conv相当于横向连接,右边的Deconv相当于自顶向下的上采样,如果了解FPN结构,那么这里将很容易理解
为什么RefineDet有效
相信大家都指导two-stage检测网络的效果要比one-stage检测网络好,究其原因主要是RPN先对anchor进行了一次初步的筛选,这样既避免了正负样本不平衡的问题又能给下一步的检测结构提供一个具有良好初始状态的anchor,在这种情况下自然会使得检测效果好,RefineDet就是借鉴RPN的思想,设计了ARM结构;RefineDet检测效果好的另外一个原因在于,它是在多层的特征金字塔上对anchor进行分类和回归,无论是粗粒度的筛选ARM还是精细的检测ODM,多层特征的融合使用,使得检测效果明显提高