如何在mmdetection框架下训练自己的voc数据集,可以看我的上一篇博客
在mmdetection上用自己的数据集训练了一个初级版本,发现结果不是很理想,分析了一下自己的数据集,需要调整数据增广方式,下面是在mmdetection上修改增广的方式:
一、需要了解配置文件进入代码之后怎么被解析的
1、在train.py的90行,代码如下;
cfg = Config.fromfile(args.config)
cfg中一个需要关注的结构是_cfg_dict**, 其结构如下:**
2、train.py的第165行,开始构建数据结构
datasets = [build_dataset(cfg.data.train)]
所有,我们需要关注的是_cfg_dict.data.train中的结构,
3、mmdet/datasets/builder.py 第80行
dataset = build_from_cfg(cfg, DATASETS, default_args)
该代码就会进入到mmcv/utils/registry.py的代码中,在registry的机制中,代码跳入到提前注册过代码中
因为dataset_type = ‘VOCDataset’,所以数据的构造是基于下面的类别的:
4、mmdet/datasets/custom.py 第 106行,正式开始解析pipeline
self.pipeline = Compose(pipeline)
下面是pipeline的结构,可以看到,pipeline是list结构,里面的每个元素是configDict结构