mmdetection训练自己的COCO数据集

Posted 啊~小 l i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mmdetection训练自己的COCO数据集相关的知识,希望对你有一定的参考价值。

训练前的准备

  1. 训练数据的导入
    将自己的COCO数据集放入到下载的mmdetection的源码里,(如果没有data文件夹需要新建)data -> COCO -> 你的COCO数据集
    文件格式如下:
mmdetection
├── mmdet
├── tools
├── configs
├── data
│   ├── coco
│   │   ├── annotations
│   │   ├── train2017
│   │   ├── val2017
  1. 配置的修改
    1. configs/_base_/datasets
      • coco_detection.py
      • coco_instace.py
      • coco_instace_semantic.py
        修改里面的img_scale=(,):输入图片的最大长度和最小长度(GPU显存不够可以适量改动,上述的三个.py文件都要改)
    2. configs/_base_/models
      选择你需要的模型对应的配置文件进行修改
      修改的内容为:numclasses=**,修改为你自己训练时候的数据集的种类的个数(分类的个数)。
    3. 修改自己的COCO数据集的类别
      mmdet/evaluation/classnames.py
      def coco_classes():替换为自己的数据分类ID
      mmdet/datasets/coco.py
      class CoCoDataset(CustomDataset):替换为自己数据分类ID

准备训练

  1. 进入tools/train.py进行训练
    使用语句运行代码python tools/train.py configs/mask_rcnn/你训练前的准备的第2步修改的配置文件 --gpus 1 --work-dir demo1_test
  2. 一旦开始立即停止训练
    进入刚刚设置的工作空间进入新生成的配置文件,与你上一步使用的配置文件的名称一致
    找到log_config=dict(interval=50,hooks=....)
    interval=50:含义为每50此输出一次日志,不便于分析模型的训练情况,建议改小一些
  3. 进行训练此时使用自己的配置文件
    使用语句运行代码python tools/train.py configs/mask_rcnn/你准备训练的第2步修改的配置文件 --gpus 1 --work-dir demo1_test
  4. tools/analyze_logs.py
    运行代码可以将日志转化为折线图
    python tools/analuze_logs.py 日志的路径 --key loss_cls loss_bbox loss_mask
    还可以加上--out的配置,输出为jpg或者pdf

测试模型

  1. tools/test.py
    执行语句python tools/test.py 你的配置文件 指定模型的配置文件 --show
    此时展示出来的是ID而不是名字

展示出名字的修改

  1. 找到base.py
  2. 找到show = Flase
    在下面插入
# id对应的名字
real_names = ['data1', 'data2',.......]
  1. 找到class_names=self.CLASSES,修改为class_name=real_names,

以上是关于mmdetection训练自己的COCO数据集的主要内容,如果未能解决你的问题,请参考以下文章

使用MMDetection3.x训练自定义数据集和类别

使用MMDetection3.x训练自定义数据集和类别

一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集

自动驾驶感知算法实战5——MMdetection3d环境搭建使用MMdetection3d做3D目标检测训练自己的数据集测试可视化,以及常见的错误

自动驾驶感知算法实战5——MMdetection3d环境搭建使用MMdetection3d做3D目标检测训练自己的数据集测试可视化,以及常见的错误

Detectron2 maskRCNN训练自己的数据集