Detectron2 :
tutorials : detectron2.readthedocs.io/en/latest/t…
github : github.com/facebookres…
工程目录:
-
demo 下面是基于pretrained model的推理脚本,输入可以是图片和视频,输出可返回可视化结果
-
predictor.py 负责调用推理器DefaultPredictor和可视化工具,同时包含并行化推理的封装类AsyncPredictor
-
-
tools 是训练和测试的入口
- train_net.py / plain_train_net.py(简化版) 配合configs训练各类模型
./train_net.py --num-gpus 8 \ --config-fil ../configs/COCOInstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml-
README.md 里说明了该目录下各个脚本的用途和用法,包括训练、速度测试、模型参数量计算量分析、可视化等
-
deploy目录
-
子目录detectron2
- 核心组件均在此目录下,可被调用,包括但不限于:
- 优化器
- 模型结构
- 数据供给模块
- 模型存储加载
- modeling/meta_arch :
- META_ARCH_REGISTRY:
算法名 注册的class 备注 rcnn class GeneralizedRCNN(nn.Module) two-stage检测 retinanet class RetinaNet(nn.Module) one-stage检测 panoptic_fpn class PanopticFPN(GeneralizedRCNN) 全景分割 semantic_seg class SemanticSegmentor(nn.Module) 语义分割 Registry类 import 自fvcore模块,用于提供注册机制,便于用户自行添加和使用对应的模型, 具体的注册使用方法见 https://github.com/facebookresearch/fvcore/blob/master/fvcore/common/registry.py 简单来说其提供register()方法作为装饰器来注册其他类模块,并利用get()方法获取注册表中的方法,用户在自定义模块后可直接利用装饰器来注册,eg: create registry: BACKBONE_REGISTRY = Registry("BACKBONE") register an object: @BACKBONE_REGISTRY.register()#注意这里带了括号 class BackboneName(): ... get the object: model = BACKBONE_REGISTRY.get('BackboneName')(cfg)- modeling/backbone
-
BACKBONE_REGISTRY
-
- 核心组件均在此目录下,可被调用,包括但不限于: