使用mmsegmentation训练自己的数据集全流程

目录

一、训练自己的数据集全流程

1.1环境配置

1.2准备数据集

1.3修改配置

1.3.1修改数据集配置

1.3.2修改模型配置

1.4 开始训练

二、测试验证模型效果

一、训练自己的数据集全流程

1.1环境配置

(1)下载github项目源码,地址为https://github.com/open-mmlab/mmsegmentation,可以直接点击下载压缩包,或者使用git clone到本地文件夹

(2)在pycharm或者其他IDE中以mmsegmentation这个文件夹(如果是zip下载的项目,可以重命名把”-main”去掉)为项目根目录打开项目,打开终端,准备安装相关的python库

提前安装好pytorch环境,这里就不再介绍torch如何安装,下面需要安装mmcv相关的库,在终端输入:

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"

至此所有环境已经配置完毕(注意python版本需要>=3.8,本人使用的3.9.10版本)

1.2准备数据集

(1)mmsegmentation支持多种数据集格式,首先需要在根目录下新建一个”data”文件夹,然后把具体的数据集放在data文件夹下,如下格式:

mmsegmentation
├── mmseg
├── tools
├── configs
├── data
│   ├── cityscapes
│   │   ├── leftImg8bit
│   │   │   ├── train
│   │   │   ├── val
│   │   ├── gtFine
│   │   │   ├── train
│   │   │   ├── val
│   ├── VOCdevkit
│   │   ├── VOC2012
│   │   │   ├── JPEGImages
│   │   │   ├── SegmentationClass
│   │   │   ├── ImageSets
│   │   │   │   ├── Segmentation
│   │   ├── VOC2010
│   │   │   ├── JPEGImages
│   │   │   ├── SegmentationClassContext
│   │   │   ├── ImageSets
│   │   │   │   ├── SegmentationContext
│   │   │   │   │   ├── train.txt
│   │   │   │   │   ├── val.txt
│   │   │   ├── trainval_merged.json
│   │   ├── VOCaug
│   │   │   ├── dataset
│   │   │   │   ├── cls
│   ├── ade
│   │   ├── ADEChallengeData2016
│   │   │   ├── annotations
│   │   │   │   ├── training
│   │   │   │   ├── validation
│   │   │   ├── images
│   │   │   │   ├── training
│   │   │   │   ├── validation
│   ├── CHASE_DB1
│   │   ├── images
│   │   │   ├── training
│   │   │   ├── validation
│   │   ├── annotations
│   │   │   ├── training
│   │   │   ├── validation
│   ├── DRIVE
│   │   ├── images
│   │   │   ├── training
│   │   │   ├── validation
│   │   ├── annotations
│   │   │   ├── training
│   │   │   ├── validation
│   ├── HRF
│   │   ├── images
│   │   │   ├── training
│   │   │   ├── validation
│   │   ├── annotations
│   │   │   ├── training
│   │   │   ├── validation
│   ├── STARE
│   │   ├── images
│   │   │   ├── training
│   │   │   ├── validation
│   │   ├── annotations
│   │   │   ├── training
│   │   │   ├── validation

具体所有的数据集目录格式,可以直接在项目的“user guide”文件中查找,具体位置为:docs/zh_cn/user_guides/2_dataset_prepare.md

(2)参考上述各种数据集的目录格式,选择一种自己熟悉的数据集摆放格式,这里我选择的是postdam数据集,大概是这个目录结构:

这里我的数据集叫做“ganzhe_dataset”,按照postdam数据集的格式,我的数据集目录结构如下:

其中img_dir下面的train和val文件夹下放的就是训练集和测试集的所有原图数据,ann_dir下面就是标签文件数据

(3)在根目录下创建data文件夹(前面已经说过了),再把自己的数据集拷贝到data文件夹下面:

至此,数据集准备完毕。

1.3修改配置

1.3.1修改数据集配置

(1)在mmseg/datasets目录下找到postdam.py,这是对应于postdam数据集的类文件,直接将其复制一份,新命名为mydataset.py或者其他名字(我这里是ganzhe_dataset.py)

在ganzhe_dataset.py中修改类名分类信息数据集图片后缀是否忽略0标签这四个地方,由于我的数据集只需要对背景和甘蔗这两个类别进行分割,所以只需要写两个类即可。不同的数据集对应着不同的类,要修改的地方都是大同小异,针对postdam这个数据类会配置以后就可以举一反三。

注意:是否忽略0标签(reduce_zero_label)这个参数,该参数设置为true后,数值为0的标签(通常设置为背景类)不会参与loss计算,由于我的数据集就只有两个类别,所以我默认还是计算背景损失的

(2)将自己新建的ganzhe_dataset.py进行注册,通俗的讲就是修改mmseg/datasets/_init_.py这个文件,只需要将对应的py文件import一下,并在数据集支持列表中添加自己新建的数据集类即可,即新增红色框圈起来的两个位置:

(3)在configs/_base_/datasets文件夹下新建一个数据集配置文件(.py),方法也是先找到postdam.py这个文件直接复制粘贴,然后重命名为ganzhe_dataset.py,并修改相关的配置信息,包括数据集的位置、数据增强方法等信息,这里我主要修改数据集的位置信息,其他参数默认不变,还是那句话,不同的数据集配置文件可能配置信息有差异,但是都是大同小异,学会一个后举一反三。

1.3.2修改模型配置

(1)configs/_base_/models文件夹下面是mm目前支持的所有模型的结构定义文件,选择一个你打算使用的模型,目前暂时只修改一个地方就行:

SyncBN代表分布式训练,单卡训练将其改成BN,基本上大多数人都是单卡,所以需要修改一下

(2)在configs/twins文件夹下选一个预训练模型的配置文件(.py),作为教程这里也只修改__base__这一个属性,高级的配置修改后续再说。这里只需要修改数据集的配置文件路径即可

1.4 开始训练

(1)在项目根目录的终端中输入“python tools/train.py 你刚刚修改的预训练模型配置文件”,比如我这里输入的就是

python tools/train.py configs/twins/twins_pcpvt-s_fpn_fpnhead_8xb4-80k_ade20k-512x512.py

回车开始训练,之后会自动下载预训练权重文件到C盘user/.cache文件夹下,等待即可。如果下载实在太慢,可以用浏览器打开下载链接,下好后放进相应的文件夹即可。具体的下载链接和文件夹位置,在控制台都会显示,仔细找找即可。

(2)如果你出现了“xxxDataset is not in the dataset registry”的报错提示,在终端运行下面两行指令:

python setup.py install
pip install -v -e . 

然后重新运行train.py文件开始训练即可。这两句命令的具体含义可以自行百度。

二、测试验证模型效果

我也是今天才学,后续再发哈哈

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值