目录

1.mmsegmentation之model

2.mmsegformer之datasets

2.1 data config

2.2 data class

2.3 total config

3.运行


1.mmsegmentation之model

mmsegmentation中有很多已经发布的模型供我们使用,这些模型可以在configs/models中找到。关于config的描述也在之前的博文中进行了描述。

2.mmsegformer之datasets

这里主要是讲述如何定义自己的数据集。主要包含三个文件①data config ② data class ③ total config。其中config文件就是Total config(顶层设置文件),也是train.py文件直接调用的config文件;Dataset Class文件是用来定义数据集的类别数和标签名称的;Dataset Config文件则是用来定义数据集目录、数据集信息(例如图片大小)、数据增强操作以及pipeline的。

2.1 data config

Dataset Config文件在 configs/__base__/ datasets目录下,需要自己新建一个xxx.py文件。我们以group_voc2012.py,我的数据格式是VOC的格式;

具体内容如下

# dataset settings
dataset_type = 'GroupVOCDataset'
data_root = '/data/dataset_VOC/VOC2012'
img_norm_cfg = dict(mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
crop_size = (512, 512)
train_pipeline = [dict(type='LoadImageFromFile'),dict(type='LoadAnnotations'),dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),dict(type='RandomFlip', prob=0.5),dict(type='PhotoMetricDistortion'),dict(type='Normalize', **img_norm_cfg),dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),dict(type='DefaultFormatBundle'),dict(type='Collect', keys=['img', 'gt_semantic_seg']),
]
test_pipeline = [dict(type='LoadImageFromFile'),dict(type='MultiScaleFlipAug',img_scale=(2048, 512),# img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],flip=False,transforms=[dict(type='Resize', keep_ratio=True),dict(type='RandomFlip'),dict(type='Normalize', **img_norm_cfg),dict(type='ImageToTensor', keys=['img']),dict(type='Collect', keys=['img']),])
]
data = dict(samples_per_gpu=4,workers_per_gpu=4,train=dict(type=dataset_type,data_root=data_root,img_dir='/datadataset_VOC/VOC2012/JPEGImages',ann_dir='/data/dataset_VOC/VOC2012/SegmentationClass',split='/data/dataset_VOC/VOC2012/ImageSets/Segmentation/train.txt',pipeline=train_pipeline),val=dict(type=dataset_type,data_root=data_root,img_dir='/data/dataset_VOC/VOC2012/JPEGImages',ann_dir='/data/dataset_VOC/VOC2012/SegmentationClass',split='/data//dataset_VOC/VOC2012/ImageSets/Segmentation/val.txt',pipeline=test_pipeline),test=dict(type=dataset_type,data_root=data_root,img_dir='/data/dataset_VOC/VOC2012/JPEGImages',ann_dir='/data/dataset_VOC/VOC2012/SegmentationClass',split='/data/dataset_VOC/VOC2012/ImageSets/Segmentation/val.txt',pipeline=test_pipeline))

 需要做以下修改:

dataset_type:更改为自己数据集的类型,可以自己命名,也可以不动;

data_root:更改为自己数据集的路径;

img_dir:更改为自己数据集图片路径;

ann_dir:更改为自己数据集标签的路径;

split:更改为自己的train.txt路径。

其他参数的含义:

img_norm_cfg:数据集的方差与均差

crop_size:数据增强时裁剪的大小

image_scale:原始图像大小

sample_per_gpu: batch size

works_per_gpu: dataloader的线程数目,一般设置为2,4,8

photoMetricDistortion:数据增强操作。分贝是亮度、对比度、饱和度喝色调。

2.2 data class

Dataset Class文件存放在 mmseg/datasets/ 目录下,需要自己新建一个xxx.py文件。我们以groupvoc.py,我的数据格式是VOC的格式;

config文件实际上是继承该目录下custom.py当中的CustomDataset父类。

修改的参数如下:

1.class GroupVOCDataset(类名,数据格式):这个类名可以更改为自己容易识别的,且与configs/__base__/ datasets/group_voc2012.py中dataset_type的名称一致;

2.CLASS:类型标签,更改为自己的类别种类标签;

3.PALETTE:色盘,更改为自己想要的的色盘颜色;色盘个数与标签个数一致;

4.super (GroupVOCDateset.self):调用父类的时候更改为自己的数据格式,与类名一致。

设置好之后,还需要设置一下该目录下的__init__文件:

修改部分如下:

import的时候要把自己的Dataset加载进来

__all__数组里面需要加入自己的Dataset类名称

2.3 total config

文件在 configs/目录下,以segformer为例,打开segformer/segformer_mit-b0_512x512_160k_ade20k.py的文件。

注意:

记住一件事,对于mmsegmentation来说,如果你向快速使用的话。config文件几乎是你唯一需要改动的东西。mmseg的模型使用,训练配置,数据地址都是靠config指明的。在mmseg的官网中,有关config的资料很清晰,但是细节并不到位。config是有继承关系的,根文件就是_base_中的一个个文件。虽如此,但我仍然不建议初次使用的小白按照官网提供简略写法。在mmsegmentation的configs下,存放了各式各样的模型的配置文件,这些配置文件大多数都是针对的大型开源数据集。我们需要改的不是网络结构,主要是你的数据集地址,你定义的类别数,以及必要的训练设置。

继承base数据集的文件,model=dict(修改自己修改的参数),例子是修改了预训练权重位置。

3.运行

运行文件在tools/train.py中,

修改的位置如下:

--config:模型的配置文件路径;

--work-dir:工作日志的保存路径;全部都更改自己想要的路径。

然后运行此文件就可以了。如果出错可能是环境配置的问题。

mmsegmentation自定义数据集相关推荐

  1. 【Python】mmSegmentation语义分割框架教程(自定义数据集、训练设定、数据增强)

    文章目录 0.mmSegmentation介绍 1.mmSegmentation基本框架 1.1.mmSegmentation的model设置 1.2.mmSegmentation的dataset设置 ...

  2. mmsegmentation自定义新数据集

    注册数据集类型 1.mmseg/datasets/中创建数据集类型py文件,指定CLASSES.PALETTE,修改__init__函数参数,更新影像和标注后缀. 2.mmseg/datasets/_ ...

  3. 【天池学习赛 语义分割】自定义数据集时报错处理

    项目场景: 在自定义数据集的MMSegmentation中,运行一个模型 是一个天池的练习赛:地表建筑物识别 问题描述: 对于数据集,在MMSeg中并没有和他对应的数据集格式,我就自己写了一个数据集, ...

  4. 三、如何搞自定义数据集?

    文章目录 前言 一.定义的数据集,未做预处理. 二.定义数据集,并做数据预处理. 1.预处理部分 2.定义数据过程 前言 MNIST数据这个最最基础的数据集已经被走在程序猿道路上的同学们玩坏了,所以今 ...

  5. PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet

    机器之心报道 作者:陈萍 距离 YOLO v4 的推出,已经过去 5 个多月.YOLO 框架采用 C 语言作为底层代码,这对于惯用 Python 的研究者来说,实在是有点不友好.因此网上出现了很多基于 ...

  6. Pytorch自定义数据集

    简述 Pytorch自定义数据集方法,应该是用pytorch做算法的最基本的东西. 往往网络上给的demo都是基于torch自带的MNIST的相关类.所以,为了解决使用其他的数据集,在查阅了torch ...

  7. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)

    ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...

  8. ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)

    ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征.利用featuretools工具实现自动特征生成) 目录 基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征 ...

  9. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)

    ML:基于自定义数据集利用Logistic.梯度下降算法GD.LoR逻辑回归.Perceptron感知器.支持向量机(SVM_Linear.SVM_Rbf).LDA线性判别分析算法进行二分类预测(决策 ...

  10. DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码

    DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...

最新文章

  1. Python--day64--内容回顾
  2. Recurrent Neural Network系列2--利用Python,Theano实现RNN
  3. MPlayer在ARM上的移植(S5PV210开发板)
  4. Abp框架准备加入.NET Foundation
  5. 转-Redis AOF 持久化详解
  6. 数据结构与算法 - 稀疏数组(理解+代码实现案例)
  7. live555 接收rtsp视频流流程分析
  8. 免费ftp网站服务器软件,免费ftp服务器软件,免费ftp服务器软件有哪些呢?好用推荐...
  9. 【Python笔记】集合
  10. erlang rebar 配置mysql_Centos6.4安装erlang并配置mysql数据库
  11. 【一分钟论文】轻松解读Semi-supervised Sequence Learning半监督序列学习
  12. html 表格单元格点击事件,bootstrap table onClickCell点击单元格事件
  13. 理解透彻!从单体式架构迁移到微服务架构
  14. 什么是全景(360全景、720全景、VR全景)?
  15. python纳甲装卦
  16. 扫地机器人朋友圈文案_最近,一台不务正业的愚大宝扫地机器人火遍朋友圈
  17. 是谁给我充的手机费?
  18. 【GZH逸佳君】答辩ppt模板-ppt模板免费下载-ppt模板下载免费版 100套
  19. HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】
  20. 《图书管理系统——“借书还书”模块》

热门文章

  1. 从四大造字法看文字所承载的文化_汉语汉字所承载的文化信息最好能举例说明...
  2. win10任务栏透明_5 款 Windows 任务栏增强工具推荐
  3. j2ee java是什么意思,j2ee是什么
  4. tablet2+android,z2tablet不开机了 怎么处理,索尼Sony Xperia 安卓平板论坛
  5. 东芝抢先一步,推出了全球首款16TB容量的硬盘MG08系列
  6. matlab fft函数画幅度谱,如何在FFT幅度谱上绘制掩模线
  7. epoll监听文件_Go 文件监控怎么实现?
  8. 微pe工具箱 系统安装教程_微PE工具箱安装系统教程(Win7或Win10)
  9. 搜索不到投屏设备怎么办_投屏,搜索不到电视设备解决方案
  10. 智慧城市顶层设计的“二十八”个问题模型(SCLM)