Mmdetection用自己的数据集训练Mask_RCNN

环境

显卡A10 23G
cuda11.6
torch1.8
mmcv_full1.5.0
mmdeteciton2.2.0

Ps:如果MMCV版本不对可以根据自己的cuda和torch版本去下面网站下载 https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html

1.标注数据,我这里使用的是labelme标注
在这里插入图片描述
2.标注完的数据如下图所示,图片和json文件在一个目录下:

在这里插入图片描述
3.将标注完的数据转为Mask_rcnn训练所需的数据集格式
PS格式转换参考https://blog.csdn.net/m0_64298393/article/details/134733964
转换完毕后为以下格式,annotations中全是json文件,其他三个文件夹目录下直接放置图片:

在这里插入图片描述
在这里插入图片描述
4.将数据集放到训练代码文件夹中
在这里插入图片描述
5.修改配置文件,我这里要训练Mask_Rcnn,所以以Mask_Rcnn为例:
所有算法的配置文件都放在./configs文件目录下,文件夹名字就是各种算法名字
在这里插入图片描述
6.找到Mask_rcnn,可以看到文件夹下有很多配置文件,各字段释意如下:

  • Mask_rcnn表示算法名称
  • r50 等表示骨架网络名
  • caffe 和 PyTorch 是指 Bottleneck 模块的区别,省略情况下表示是 PyTorch
  • fpn 表示 Neck 模块采用了 FPN 结构
  • mstrain 表示多尺度训练,一般对应的是 pipeline 中 Resize
  • 1x 表示 1 倍数的 epoch 训练即 12 个 epoch,2x 则表示 24 个 epcoh
  • coco 表示在 COCO 数据集格式上训练
    在这里插入图片描述
    7.这里以mask_rcnn_r50_fpn_1x_coco.py为例,可以看到配置文件中有4个目录,需要依次修改
    在这里插入图片描述
    1.打开mask_rcnn_r50_fpn.py,将init_cfg 地址改为预训练模型地址(预训练模型下载地址可由项目README.md中Model zoo找到,也可在官方Github找到。),并将num_classes修改为所标注缺陷的种类数
    在这里插入图片描述
    在这里插入图片描述

2.打开第二个文件coco_instance.py,将data_root路径改为你自己coco数据集的位置(注意一定要以/结尾),修改输出图片尺寸(根据自己的数据集决定)
在这里插入图片描述
将自己数据的标签写入配置文件,在data前一行添加自己的标签列表,同时在train,val,test中添加classes = classes,如果不添加,模型就会默认读取coco原始数据集的80个标签,与自己的数据集对应不上就会报错。
在这里插入图片描述
在这里插入图片描述

3.打开第三个文件修改学习率和训练轮数以及学习率衰减轮数(学习率也可以不改,具体根据batchsize和显卡数量决定)
在这里插入图片描述
4.打开最后一个文件,各项参数如下图,根据自己需要修改

在这里插入图片描述
8.开始训练:
在终端CD 到mmdetection_2_20_0目录下输入,即可开始训练

python tools/train.py configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py
  • 21
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
mask_rcnn_inception_v2_spot.config是TensorFlow的Object Detection API模块中的一个配置文件,用于配置Mask R-CNN模型的训练和推理参数。下面是一些常见参数及其含义: 1. num_classes:指定目标类别的数量,包括背景类。例如,如果要检测20个类别,则num_classes设置为21。 2. image_resizer:设置图像预处理的方式,如通过保持宽高比进行缩放或裁剪。 3. feature_extractor:指定特征提取器的类型,例如InceptionV2、ResNet等。 4. first_stage_anchor_generator:设置第一阶段锚框生成器的参数,包括尺度、宽高比等。 5. first_stage_box_predictor:设置第一阶段边界框预测器的参数,如使用的卷积核大小、激活函数等。 6. first_stage_nms_iou_threshold:指定第一阶段非极大值抑制(NMS)的IoU(Intersection over Union)阈值。 7. second_stage_box_predictor:设置第二阶段边界框预测器的参数,如使用的卷积核大小、激活函数等。 8. second_stage_post_processing:设置第二阶段后处理的参数,如使用的非极大值抑制(NMS)的IoU阈值和置信度阈值。 9. second_stage_batch_size:设置第二阶段的批量大小,用于训练和推理。 10. use_dropout:设置是否在特征提取器中使用dropout正则化。 11. detection_score_converter:设置检测分数转换器的类型和参数,用于将检测分数转换为最终的置信度。 以上仅是一些常见的参数,实际上,mask_rcnn_inception_v2_spot.config文件中还包含了其他许多参数,用于配置模型的各个方面,如学习率、优化器、训练和推理的路径等。通过修改这些参数,我们可以根据需求来定制和优化Mask R-CNN模型的训练和推理过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值