MMDetection

  • For object detection & instance segmentation
  • MMDetection 是商汤(SenseTime)和港中文多媒体实验室(mmLab)合作的开源目标检测库。以前类似的库有Detectron、SimpleDet、maskrcnn-benchmark等等

高度模块化设计

对不同检测方法进行了分解,形成了一系列可定制模块。模块组合可以搭建不同的检测框架

多种算法框架支持

支持多种主流的目标检测与实例分割的算法框架,包括single-stage、two-stage、multi-stage等多种架构;还提供了200多个预训练模型

高性能计算

均支持GPU,速度快。支持混合精度训练和多卡联合训练

先进算法

随时同步最新算法

  • 用一个月的时间,过一遍mmdetection的baseline,过一遍detection领域的经典paper和model,用mmdetection框架实现一遍

mmdetection\docs

  • mmdetection\docs:帮助文档,开始文档

mmdetection\tools

  • mmdetection\tools:一些工具脚本和测试脚本
  • test.py:测试脚本;
    1.模型训练好后,下一步是保存(save)和恢复(restore)模型。checkpoints和savedmodel是模型两种存储格式,checkpoints dependent on the code,savedmodel independent on the code.
    checkpoint1
    checkpoint2
    可以理解成必须有checkpoints,TF就会在每次调用train(),predict()时重建模型
    创建checkpoint文件
    用checkpoint恢复 2.argparse是命令行参数解析模块
    3.test.py定义4个函数:single gpu test,multi gpu test,collect results,parse args,main
    4.parse args函数用于解析命令行(三步操作):
    parser = argparse.ArgumentParser(description='MMDet test detector')导入argparse包,用ArgumentParser类生成一个paser对象,description是描述这个paser是干啥用的,通过 -h 命令可以调用显示python test.py -hparser.add_argument('config', help='test config file path')用add argument来增加参数;args = parser.parse_args()用paser的parse args函数获取解析的参数;返回args,就是命令行里解析出来的参数args
    返回的args是‘argparse.Namespace’类,用args.config 就可以调用命令行里参数赋的值,比如调用--eval,前面的--省略掉
    5.main函数执行整体:assertendswithpickle模块保存模型(dump保存、load读取)、mmcv(CV的基础库)、mmcv.Config导入配置模型文件、dict.get()方法

mmdetection\configs

  • fast_recnn_r50_fpn_1x.py:定义模型的配置
    1.组成部分:modeltrain_cfg;test_cfg;dataset_type;data_root;img_norm_cfg;train_pipeline;test_pipeline;data;optimizer;optimizer_config;lr_config;checkpoingt_configlog_configtotal_epochsdist_paramslog_levelwork_dirload_fromresume_from
    2.model settings:type、pretrained(在torchvision.models包里)、backbone、neck、bbox_roi_extractor、bbox_head
    3.model training and testing settings:
    4.dataset settings:
    5.optimizer:
    6.learning policy:
    7.yapf:disable:
    8.runtime settings:

torchvision

pytorch框架中一个非常重要且好用的包,主要包括三个子包:torchvision.datasets、torchvision.models、torchvision.transforms

  • torchvision.models:github地址,导入预训练好的网络和参数注意这里模型下载到了.cache/torch/checkpoints,checkpoints就是模型存储的格式