美文网首页
论文阅读_目标检测工具集MMDetection

论文阅读_目标检测工具集MMDetection

作者: xieyan0811 | 来源:发表于2020-05-20 19:59 被阅读0次

    论文地址:https://arxiv.org/pdf/1906.07155.pdf
    源码地址:https://github.com/open-mmlab/mmdetection

    2019年收集于cs.CV的论文《MMDetection: Open MMLab Detection Toolbox and Benchmark》介绍了具集MMDetection,该工具集支持物体检测,实例分割,它基于2018年COCO挑战赛冠军队MMDet的代码,程序由Pytorch编写,不仅提供了代码,还提供编译好的模型。论文偏重工程实践,还提供各种算法的测试对比。

    MMDetection有以下优势:

    • 模块化设计,开发者可快速构造自己的目标检测工具。
    • 支持多个当前最新的目标检测框架。
    • 可以在GPU上高效地运行,与当前最优秀的工具持平或更快。
    • 效果更好,赢得了2018年COCO挑战赛。

    支持框架

    MMDetection支持多种当前流行的目标识别框架,具体如下表所示:

    单级(One-Stage)方法

    • SSD:2015年提出的精典且使用广泛的单级目标检测模型。
    • RetinaNet:2017年提出的基于焦点损失的高性能单级模型。
    • GHM:2019年提出的调节梯度的单级模型。
    • FCOS:2019年提出的全卷积单级模型。
    • FSAF:2019年提出的基于特征选择(feature selective)的无锚点单级模型。

    两级(Two-Stage)方法

    • Fast R-CNN [9]:2015年提出的R-CNN的改进版本,它使用端到端的模型提高了训练和检测速度,由于目标检测被分为前期的计算备选区域和后期的分类以及精调,因此被认为两级方法。
    • Faster R-CNN:2015年提出的Fast R-CNN的改进版本,主要加强了备选区域的计算速度。
    • R-FCN:2016年提出的使用全卷积方法实现的目标检测和语义分割。
    • Mask R-CNN:2017年提出的目标检测和实例分割方法,可使用端到端的模型实现目标检测、实例分割、关键点检测等任务,且精度很高。
    • Grid R-CNN [20]:2018年提出的基于网格的精调目标位置的方法(类似YOLO)。
    • Mask Scoring R-CNN:2019年提出通过预测IoU掩码提升Mask R-CNN模型效果的方法。
    • Double-Head R-CNN:2019年提出的多头RNN,用不同的头分别实现分类和定位。

    多级(Multi-stage)方法

    • Cascade R-CNN:2017年提出的有效的多级目标检测方法。
    • Hybrid Task Cascade:2019年提出的多级多分枝的目标检测和实例分割方法。MMDetection工具集不仅支持目标检测的多种方法,还考虑到了更多的使用场景及扩展方法。

    通用的模块和方法

    • Mixed Precision Training:2018年提出的使用半精度浮点数训练深度模型的方法,此方法可以提高模型效率。
    • Soft NMS:2017年提出的NMS的替代方案,也用于目标区域去冗余。
    • OHEM:2016年提出的在线挖掘难采样的方法(用更难的实例训练,以便更快收敛)。
    • DCN:2017年提出的可变形卷积和可变形RoI池化。
    • DCNv2:2018年提出的调制变形算子。
    • Train from Scratch:2018年提出的用随机初始化方式替代预训练模型的方法。
    • ScratchDet:2018年提出的另一种从头训练模型的方法。
    • M2Det:2018年提出的更有效的构造特征金字塔的方法。
    • GCNet:2019年提出的全局上下文模型可以有效地对全局建模。
    • Generalized Attention:2019年提出的普适的注意力方法。
    • SyncBN:工具集中用Pytorch实现了,利用GPU执行同步批量规范化(batch normalization,BN)。
    • Group Normalization:2018年提出的BN的替代方法,在目标检测任务中batch_size比分类任务中的batch_size小很多,BN可能影响模型效果,可使用GN,在规范化时计算各个通道的均值和方差,以减轻上述问题的影响。
    • Weight Standardization:2019年提出的微批量训练卷积层权重标准化。
    • HRNet:2019年提出的针对高分辨率图像表示的基础网络(backbone)。
    • Guided Anchoring:2019年提出的预测稀疏和异形的锚点方法。
    • Libra R-CNN:2019年提出的一种平衡目标检测学习的新框架。

    此论文也是近两年目标识别技术的总览,MMDetection工具集实现了上述所有方法,截至目前, git项目仍在不断更新。

    结构

    虽然不同目标检测工具框架不同,但一般都由以下几部分(头、脖子、躯干……)构成:

    • Backbone(躯干) 底层网络用于提取图片特征,如VGG,Resnet等,常常由卷积网络构成,不包含最后的全连接层。它一般也是各种图像处理网络中体量最大的部分。
    • Neck(脖子) Neck衔接backbone和head,实现精调特征或者精细配置,如FPN(特征金字塔网络)就是典型Neck。
    • DenseHead(头) DenseHead用于处理带有位置信息的特征(一般是WxHxC),比如AnchorHead RPN-Head RetinaHead等等。
    • RoIExtractor
      RoI是感兴趣的区域,RoIExtractor用RoI池化或者类似的方法,从特征金字塔中提取某一区域的图像特征。
    • RoIHead
      RoIHead将区域特征作为输入,对于每一个区域执行预测任务,例如分类,精调边框,计算实例掩码(Mask)等等。

    单级和双级的框架如下图所示:

    工具集提供各个子模块的实现,开发者可以通过简单的装配,实现具体任务。一个典型的训练流程如下图所示:

    模型效果

    下面截取了一部分评测效果,论文中还提供更多的针对COCO数据集的测试,包括各种上层目标识别算法和下层特征提取模型,对比了各个模型的精度、速度以及内存占用量,详情请见论文。

    相关文章

      网友评论

          本文标题:论文阅读_目标检测工具集MMDetection

          本文链接:https://www.haomeiwen.com/subject/zlfoohtx.html