目标检测——RefineDet(十一)

简介:

RefineDet——《single-shot refinement neural network for object detection》是CVPR2018的论文,大致上是SSD和RPN、FPN的结合,可以在保持SSD高效的前提下提高检测效果。主要思想:一方面引入two stage类型的object detection算法中对box的由粗到细的回归思想,另一方面引入类似FPN网络的特征融合操作用于检测网络,可以有效提高对小目标的检测效果。
原论文地址:https://arxiv.org/pdf/1711.06897.pdf
Github代码地址:https://github.com/sfzhang15/RefineDet

网络结构:

在这里插入图片描述
由上图可以看出,该框架由两个模块组成,即上面的Anchor Refinement Module(ARM)和下面的Object Detection Module(ODM),它俩是由Transfer Connection Block(TCB)连接。
1、anchor refinement module (ARM)部分类似Faster RCNN算法中的RPN网络,主要用来得到bbox(类似Faster RCNN中的ROI或proposal)和去除一些负样本(这是因为负样本数量远大于正样本)。因此基于4层特征最后得到的还是两条支路,一个bbox的坐标回归支路,另一个是bbox的二分类支路。我们知道在Faster RCNN算法中RPN网络存在的意义就是生成proposal(或者叫ROI),这些proposal会给后续检测网络提供较好的初始信息,这也是one stage的object detection算法和two stage的object detection算法的重要区别,这里的anchor refinement module基本上扮演了RPN网络的角色,如果一定要说不同点的话,那应该就是这里的输入利用了多层特征,而RPN网络的输入是单层特征。
2、transfer connection block (TCB)部分是做特征的转换操作,也就是将ARM部分的输出feature map转换成ODM部分的输入,这部分其实和FPN算法的特征融合很像,FPN也是这样的upsample后融合的思想。
3、object detection module (ODM)部分和就基本上是SSD了,也是融合不同层的特征,然后做multi class classification和regression。主要的不同点一方面在于这部分的输入anchors是ARM部分得到的refined anchors,类似RPN网络输出的proposal。另一方面和FPN算法类似,这里的浅层feature map(size较大的蓝色矩形块)融合了高层feature map的信息,然后预测bbox是基于每层feature map(每个蓝色矩形块)进行,最后将各层结果再整合到一起。而在SSD中浅层的feature map是直接拿来用的(并没有和高层的feature map融合),也就是对bbox的预测是在每一层上进行的,预测得到结果后再将各层结果整合在一起,这是非常重要的区别。这样做的好处就是对小目标物体的检测效果更好,这在FPN和RON等算法中已经证明过了。
因此整体来看该网络和tow stage的结构很像(都可以概括为two-step cascaded regression),一个子模块做RPN的事,另一个子模块做SSD的事。因此SSD是直接在default box的基础上进行回归的,而在RefineDet中是先通过ARM部分生成refined anchor boxes(类似RPN网络输出的propsoal),然后在refined anchor boxes基础上进行回归,所以能有更高的准确率,而且得益于特征融合,该算法对于小目标物体的检测更有效。

系列传送门:
目标检测——R-CNN(一)
目标检测——Fast R-CNN(二)
目标检测——Faster R-CNN(三)
目标检测——Mask R-CNN(四)
目标检测——R-FCN(五)
目标检测——YOLOv3(六)
目标检测——YOLOv4(七)
目标检测——YOLOv5(八)
目标检测——SSD(九)
目标检测——RetinaNet(十)
目标检测——RefineDet(十一)

猜你喜欢

转载自blog.csdn.net/qq_42823043/article/details/109471987