高精度目标检测算法-RFBNet

高精度目标检测算法-RFBNet

向AI转型的程序员都关注了这个号????????????

机器学习AI算法工程  公众号: datayx

论文:Receptive Field Block Net for Accurate and Fast Object Detection  (CVPR2017)

链接:https://arxiv.org/abs/1711.07767

代码地址:https://github.com/ruinmessi/RFBNet

1 绪论部分:

       当前*目标检测器依赖于非常深的CNN主干网络,例如ResNet-101和Inception,优点是它们具有强大的特征表现能力,但是耗时严重。相反地,一些基于轻量级模型的检测器满足实时处理,但是精度是诟病。

       在RFBNet这篇论文中,主要想利用一些技巧使用轻量级模型达到速度和精度并举的检测器。灵感来自人类视觉的感受野结构Receptive Fields (RFs) ,提出了新奇的RF block(RFB)模块,来验证感受野尺寸和方向性的对提高有鉴别鲁棒特征的关系。RFBNet是以主干网络(backbone)为VGG16的SSD来构建的。下面是讨论其有效性,两项基准测试实验和结果显示。RFBNet具备同非常深的主干网络检测器的精度,但是保持了实时性。

2 相关工作:

      这部分就不介绍了,主要是对目前一步法和两步法的一些利弊总结。有个比喻挺形象:YOLO定位精度差,小目标检出率低;SSD是YOLO的多尺度版本,对小目标检出有改善。

3.2 感受野模块:

      RFB是一个类似Inception模块的多分支卷积模块,它的内部结构可分为两个组件:多分支卷积层以及随后的膨胀卷积层。如下图

高精度目标检测算法-RFBNet

3.2.1.多分支卷积层:


访问AI图谱 技术分享社区 

https://loveai.tech


3.2.2.膨胀卷积层:

      最初来自Deeplab,在保持参数量和同样感受野的情况下,用来获取更高分辨率的特征。图4,5展示两种RFB结构,每个分支都是一个正常卷积后面加一个膨胀卷积,主要是尺寸和膨胀因子不同。没有使用膨胀池化,主要是在组织不同RFs尺寸的时候,不够灵活。对于RFB,卷积核尺寸kernel size和膨胀因子dilate对检测器有细微影响,下面会讲。

高精度目标检测算法-RFBNet

高精度目标检测算法-RFBNet

3.3 RFBNet检测结构

高精度目标检测算法-RFBNet

RFBNet检测器利用多尺度一步检测框架SSD,在其中嵌入RFB模块,使得轻量级主干SSD网络也能更快更准。RFB结构可以很容易集成到CNNs中,所以RFBNet检测网络保留了大部分SSD结构。主要修改是替换顶层卷积层为RFB,这些改动小但有用。如下图。

高精度目标检测算法-RFBNet

3.3.1.轻量级主干

      为了便于比较直接使用SSD原始的主干网络,也就是VGG16。它是将fc6和fc7层转换成卷积层用于下采样参数,并且将pool5从2x2-s2改成3x3-s1.膨胀卷积用来填充空缺和所有dropout层,并移除fc8层。

3.3.2.多尺度特征图RFB

     原始SSD,基础主干网络后面接着一系列重叠的卷积层,得到一系列空间分辨率减小而感受野增大的特征图。RFBNet保持了这种结构,也做了些改进,用RFB-b模块替换了原来L2归一化,达到从前面卷积层获取包含小目标的底层特征图。早期版本的RFB,使用的是膨胀max pool来模拟感受野方向性的影响。由于特征图太小,最后的卷积层只保留了部分,像5x5卷积核过大,无法使用而去掉。

3.3.3微调RFB参数

     主要就是调节RFB模块中卷积核kernel size以及膨胀因子dilate。RFB-a是调整后的结构,然后从conv4_3层连出。再在后面接一些小的滤波器,对性能有一定提升。

高精度目标检测算法-RFBNet

高精度目标检测算法-RFBNet

高精度目标检测算法-RFBNet


阅读过本文的人还看了以下:

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

高精度目标检测算法-RFBNet

长按图片,识别二维码,点关注

访问AI图谱  

https://loveai.tech

高精度目标检测算法-RFBNet

高精度目标检测算法-RFBNet