MMdetection训练自己的数据集(win10)

一、准备数据集

mmdetection默认使用coco数据集,这里我的原始数据集为PascalVOC格式,先进行数据集转换。各种数据转换项目里边都有现成的代码。

cmd到D:\mmdetection-master\tools\dataset_converters文件夹,激活环境,输入如下命令:

python pascal_voc.py D:\mmdetection-master\coco_data --out-dir D:\mmdetection-master\coco_data\VOC2007 --out-format coco

其中D:\mmdetection-master\coco_data 为你的voc数据集路径,我的里面是这种格式:

 D:\mmdetection-master\coco_data\VOC2007是你转换后coco的json文件保存路径,--out-format coco是转换为coco数据形式,运行命令生成如下四个文件:

 二、修改配置文件

mmdetection的配置文件为py文件,且采用继承的思想,意思就是你自己创建一个py配置文件,然后继承项目中已有的配置文件,根据需要修改一些特定参数即可,下面创建自己的配置文件。

打开mmdetection-master\configs\文件夹,可以看到里面有很多模型(每个文件夹就是一个模型)对应的配置文件,他们都是继承的_base_文件夹里面的配置。

 

我这里用的faster_rcnn模型演示,在faster_rcnn文件夹里面创建一个自己的demo_faster_rcnn_r50_fpn_2x_coco.py文件,我这里直接继承faster_rcnn_r50_fpn_2x_coco.py的配置文件,所以在这个py文件里输入如下代码:

# 这个新的配置文件继承自一个原始配置文件,只需要突出必要的修改部分即可
_base_ = './faster_rcnn_r50_fpn_2x_coco.py'

# 我们需要对头中的类别数量进行修改来匹配数据集的标注
model = dict(
    roi_head=dict(
        bbox_head=dict(num_classes=3)))

# 修改数据集相关设置
dataset_type = 'COCODataset'
classes = ('1', '2', '3')
data = dict(
    samples_per_gpu=2,  # batch size
    workers_per_gpu=2,  # num_workers
    train=dict(
        img_prefix='D:/mmdetection-master/coco_data/',
        classes=classes,
        ann_file='D:/mmdetection-master/coco_data/VOC2007/voc07_train.json'),
    val=dict(
        img_prefix='D:/mmdetection-master/coco_data/',
        classes=classes,
        ann_file='D:/mmdetection-master/coco_data/VOC2007/voc07_val.json'),
    test=dict(
        img_prefix='D:/mmdetection-master/coco_data/',
        classes=classes,
        ann_file='D:/mmdetection-master/coco_data/VOC2007/voc07_test.json'))

# 我们可以使用预训练的 Faster R-CNN 来获取更好的性能
load_from = 'D:/mmdetection-master/checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
# runner = dict(_delete_=True, type='IterBasedRunner', max_iters=90000)
# runner = dict(type='EpochBasedRunner', max_epochs=20)

 其中你需要做如下更改:

1 num_classes=3中改为你自己的类别数量;

2 classes = ('1', '2', '3')括号中改为你自己数据的类别名称;

3 samples_per_gpu=2与workers_per_gpu=2按需要修改(如果提示显存不足out of memory就修改这里);

4 train=dict(
        img_prefix='D:/mmdetection-master/coco_data/',修改为自己coco数据路径,注意路径层级;
        classes=classes,
        ann_file='D:/mmdetection-master/coco_data/VOC2007/voc07_train.json'),修改为自己coco数据训练的json文件路径(之前转换得到的文件路径)下面的val=与test=同样修改对应路径

5 load_from = 'D:/mmdetection-master/checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'修改为预训练模型路径。(在mmdetection-master文件夹下创建checkpoints文件夹,下载预训练权重文件faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth,放在checkpoints文件夹里面,权重链接

到此配置文件准备完毕。

三、训练数据

在D:\mmdetection-master\tools\train.py文件的第24行25行修改为:

parser.add_argument('--config', default='../configs/faster_rcnn/demo_faster_rcnn_r50_fpn_2x_coco.py',
                        help='train config file path')

default='../configs/faster_rcnn/demo_faster_rcnn_r50_fpn_2x_coco.py'为你自己创建的配置文件路径,往后不同的训练只需改这里路径即可。

最后运行在这个train.py文件开始训练。

 

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值