MMsegmentation语义分割(理论、环境配置、示例代码、资源文件:labelme2mask转化、训练集测试集合划分、自定义segmentation模型训练)

文章目录

  • 1mask文件的0-n代表什么?分类数目包不包括背景呢?
  • 2使用资源代码需要注意的部分
  • 3如何配置config文件
        • 点开K-NET
  • 4推荐几个常用模型和配置文件
  • 5需要注意的几个参数

1mask文件的0-n代表什么?分类数目包不包括背景呢?

答:几个预测类别填写几类,0被认为是背景。
我们所看到的mask格式是png,但请注意png3通道的值是一模一样的,只需要取出一个通道就可以了。
在这里插入图片描述

2使用资源代码需要注意的部分

1、首先环境是需要租赁服务器的。(本人下载linux结果结果无法使用中文,搜索一些网站和个人博客就很苦恼。还有就是配置windows环境真的很费劲。个人觉得只要能配置好租赁服务器的,其实也只要训练时间。3090的显卡10块钱5个小时,个人感觉用的就还行。)
2、3090的显卡,本人图片10241024,resize到640640,最大是batchsize=8。

3如何配置config文件

关于config配置文件,可以在下面文件夹中找到。
在这里插入图片描述
从Model Zoo中选择预训练语义分割模型的config文件和checkpoint权重文件

Model Zoo:https://github.com/open-mmlab/mmsegmentation/tree/main#benchmark-and-model-zoo
在这里插入图片描述

点开K-NET
  1. 配置文件
    我们可以看到预训练图片的大小,以及config的文件。通过我们的backbone查找到我们所选用的模型。点击config文件,得到网址:https://github.com/open-mmlab/mmsegmentation/blob/main/configs/knet/knet-s3_swin-l_upernet_8xb2-adamw-80k_ade20k-512x512.py这里的configs/knet/knet-s3_swin-l_upernet_8xb2-adamw-80k_ade20k-512x512.py就是我们所需要的配置文件
  2. 预训练权重
    右键model log,复制链接:https://download.openmmlab.com/mmsegmentation/v0.5/knet/knet_s3_upernet_swin-t_8x2_512x512_adamw_80k_ade20k/knet_s3_upernet_swin-t_8x2_512x512_adamw_80k_ade20k_20220303_133059-7545e1dc.pth

在这里插入图片描述
注意这里有一些模型miou精度高的,有一些则是偏向于检测速度高的。

4推荐几个常用模型和配置文件

一般我会使用k-net部署,其他的用作对比。

  • segformer
# 模型 config 配置文
config_file = 'configs/segformer/segformer_mit-b5_8xb1-160k_cityscapes-1024x1024.py'

# 模型 checkpoint 权重文件
checkpoint_file = 'https://download.openmmlab.com/mmsegmentation/v0.5/segformer/segformer_mit-b5_8x1_1024x1024_160k_cityscapes/segformer_mit-b5_8x1_1024x1024_160k_cityscapes_20211206_072934-87a052ec.pth'

  • Mask2Former
config_file = 'configs/mask2former/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640.py'
checkpoint_file = 'https://download.openmmlab.com/mmsegmentation/v0.5/mask2former/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640/mask2former_swin-l-in22k-384x384-pre_8xb2-160k_ade20k-640x640_20221203_235933-7120c214.pth'
  • K-Net(精度比较高)
config_file = 'configs/knet/knet-s3_swin-l_upernet_8xb2-adamw-80k_ade20k-640x640.py'
checkpoint_file = 'https://download.openmmlab.com/mmsegmentation/v0.5/knet/knet_s3_upernet_swin-l_8x2_640x640_adamw_80k_ade20k/knet_s3_upernet_swin-l_8x2_640x640_adamw_80k_ade20k_20220301_220747-8787fc71.pth'
config_file = 'configs/fastscnn/fast_scnn_8xb4-160k_cityscapes-512x1024.py'
checkpoint_file = 'https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_lr0.12_8x4_160k_cityscapes/fast_scnn_lr0.12_8x4_160k_cityscapes_20210630_164853-0cec9937.pth'

5需要注意的几个参数

crop_size = (512,512),这个参数越小模型精度就大打折扣。
scale=(2048,1024)缩放参数默认是这样自己,原图的2-3倍。
image_path:藏得比较深,容易忘记修改
在这里插入图片描述