mmrotate框架基本使用
1、如何将类交给mmrotate框架容器管理
- 容器:框架中现有基本容器包括DATASETS, BACKBONES, LOSSES, DETECTORS。
- 初始化容器:Registry(‘backbone’)中’backbone’为容器初始化配置文件。
from mmcv.utils import Registry,build_from_cfg
BACKBONES = Registry('backbone')
NECKS = Registry('neck')
ROI_EXTRACTORS = Registry('roi_extractor')
SHARED_HEADS = Registry('shared_head')
HEADS = Registry('head')
LOSSES = Registry('loss')
DETECTORS = Registry('detector')
- 容器管理类的形式:
Registry(name=dataset, items={
'CustomDataset': <class'mmdet.datasets.custom.CustomDataset'>,
'CocoDataset': <class'mmdet.datasets.coco.CocoDataset'>,
'CityscapesDataset': <class'mmdet.datasets.cityscapes.CityscapesDataset'>,
'ConcatDataset': <class'mmdet.datasets.dataset_wrappers.ConcatDataset'>,
'RepeatDataset': <class'mmdet.datasets.dataset_wrappers.RepeatDataset'>,
'XMLDataset': <class'mmdet.datasets.xml_style.XMLDataset'>,
'VOCDataset': <class'mmdet.datasets.voc.VOCDataset'>,
'WIDERFaceDataset': <class'mmdet.datasets.wider_face.WIDERFaceDataset'>})
- 通过注解@ROTATED_DATASETS.register_module()可将数据集类注册到ROTATED_DATASETS容器。同理@ROTATED_BACKBONES.register_module()可将主干网类注册到ROTATED_BACKBONES容器。
2、如何实例化mmrotate框架容器管理的类
- 通过build_dataset(cfg),build_backbone(cfg),build_neck(cfg),build_loss(cfg)实例化相应容器中的类对象。
loss = dict('type': 'L1Loss', 'loss_weight': 1.0)
import mmdet.models.builder.build_loss
import L1LossConfig
l1Loss = build_loss(L1LossConfig.loss)
- 以上几个build_xxx(cfg)仅仅只是构建一个模型中的组件。
3、如何组装实例化mmrotate类对象(组件)
- 通过build_detectors(cfg)就可以将各个组件组装起来。cfg如下:
model = dict(
type='MaskRCNN',
backbone=dict(
type='ResNet',
xxx
),
neck=dict(
type='FPN',
xxx
),
rpn_head=dict(
type='RPNHead',
xxx
loss_cls=dict(
type='CrossEntropyLoss', xxx),
loss_bbox=dict(type='L1Loss', xxx),
roi_head=dict(
xxx
mask_head=dict(
type='FCNMaskHead',
xxx
loss_mask=dict(
type='CrossEntropyLoss', xxx))))
4、各个组件之间是怎么进行耦合的。
5、怎么知道单个组件需要传入哪些参数,才能自适应构建我们想要的组件。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669934.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!