mmDetection 用 faster rcnn 网络训练自定义数据集

前言

先在train.py文件和test.py文件中,加入下面的代码,防止出 OMP: Error #15 这个错

import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

1. 生成完整的配置文件和工作目录

1.1 终端运行下面的代码

python ./tools/train.py ./configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py

会报错,但会生成work_dirs文件夹(2024年6月21日11点51分25秒运行的,生成了文件夹)

work_dirs 文件夹里的 faster-rcnn_r50_fpn_1x_coco.py 就是完整的配置文件,改代码在这个文件里改,不要去改 configs 文件夹里的文件

1.2 运行配置运行

报错,不知道为啥,错误里的那个文件也有,就是报错   而且也没有生成具体运行时间的文件夹

2. 添加数据集

3. 训练自定义数据集需要改的地方

1. 在 mmdetection-main\mmdet\datasets\coco.py 文件中
将原来的coco数据集的类别和调色板注释掉换成自定义数据集的类别和调色板

2. 在 mmdetection-main\mmdet\evaluation\functional\class_names.py 文件中
将原来的coco数据集的类别注释掉换成自定义数据集的类别,注意有两处

3. 本文的data文件夹布局和coco数据集的布局一样,只是将图片和标注文件的内容换成了自定义数据集的
  所以配置文件(上面的 mmdetection-main\work_dirs\faster-rcnn_r50_fpn_1x_coco\
  faster-rcnn_r50_fpn_1x_coco.py 文件)中的训练集测试集验证集路径都不需要改,只要改 num_classes
  coco数据集有 80 个类别,我的自定义数据集有 6 类

4. 训练

python .\tools\train.py .\work_dirs\faster-rcnn_r50_fpn_1x_coco\faster-rcnn_r50_fpn_1x_coco.py

因为我电脑配置低,所以改一下配置将训练时的设置 epoch=3,batch_size=1,

训练结果如下图

5. 测试

python .\tools\test.py .\work_dirs\faster-rcnn_r50_fpn_1x_coco\faster-rcnn_r50_fpn_1x_coco.py .\work_dirs\faster-rcnn_r50_fpn_1x_coco\epoch_3.pth --show-dir out

测试结果保存在 out 文件夹里

参考文档:MMDetection新手安装使用教程(无限踩坑)_mmdetection安装-CSDN博客

mmdetection自定义数据集训练_mmdetection训练自己的数据-CSDN博客

2024年6月21日,于笔记本电脑上

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
训练自己的数据集,你可以按照以下步骤进行操作: 1. 准备数据集:将自己的数据集按照特定的文件夹结构存放在VOCDevkit文件夹中。其中Annotations文件夹存放标签的XML文件,JPEGImages文件夹存放数据集的所有图片,ImageSets/Main文件夹下保存的是test.txt、train.txt、trainval.txt、val.txt,分别是测试集、训练集、训练验证集、验证集的标签文件名。\[4\] 2. 数据集划分:考虑到源码中没有数据集划分程序,你可以使用以下代码进行数据集划分。将代码中的文件路径替换成自己的路径后运行,即可生成所需的txt文件。\[5\] ```python import os import random trainval_percent = 0.0 train_percent = 0.0 xmlfilepath = 'data/Annotations' txtsavepath = 'data/ImageSets' total_xml = os.listdir(xmlfilepath) num = len(total_xml) list = range(num) tv = int(num * trainval_percent) tr = int(tv * train_percent) trainval = random.sample(list, tv) train = random.sample(trainval, tr) ftrainval = open('data/ImageSets/trainval.txt', 'w') ftest = open('data/ImageSets/test.txt', 'w') ftrain = open('data/ImageSets/train.txt', 'w') fval = open('data/ImageSets/val.txt', 'w') ``` 3. 加载预训练权重:根据你训练时加载的vgg16预训练权重是caffe框架的还是pytorch的,选择相应的代码进行预测。如果是pytorch的预训练权重,可以使用以下代码加载权重。\[2\] ```python trainer.load('训练好的权重路径') opt.caffe_pretrain = False _bboxes, _labels, _scores = trainer.faster_rcnn.predict(img, visualize=True) vis_bbox(at.tonumpy(img\[0\]), at.tonumpy(_bboxes\[0\]), at.tonumpy(_labels\[0\]).reshape(-1), at.tonumpy(_scores\[0\]).reshape(-1)) ``` 4. 训练模型:根据你的数据集和需求,使用相应的训练代码进行模型训练。可以参考提供的GitHub链接\[1\]中的源码进行训练。 请注意,以上步骤仅提供了一般的指导,具体的操作还需要根据你的数据集和需求进行调整。 #### 引用[.reference_title] - *1* *2* *4* *5* [【目标检测】用Faster R-CNN训练自己的数据集](https://blog.csdn.net/qq_41464279/article/details/124042614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [目标检测之FasterRcnn算法——训练自己的数据集(pytorch)](https://blog.csdn.net/weixin_42917352/article/details/121388638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值