【PaddleSeg】使用自己制作的CityScapes数据集训练模型

本文详细介绍了如何使用Labelme工具进行CityScapes格式的数据集制作,包括标注步骤、json文件转换及数据集目录结构。接着,讲述了模型训练的过程,包括配置文件设定、模型选择和训练启动。最后,提到了模型恢复训练、预测及结果可视化的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:CityScapes格式数据集制作

1:labelme安装指南  githublabelme

第一步:下载 安装 

 第二步:创建环境 安装依赖 基于Anaconda

 第三步:在终端输入命令激活环境  conda activate labelme  再输入labelme打开标注工具

 2:数据标注 

标注后生成的文件格式

 

 输入以下命令,将 .json文件转换为训练所需的mask

python tools/labelme2seg.py <PATH/TO/LABEL_JSON_FILE>

其中,<PATH/TO/LABEL_JSON_FILE>为图片以及LabelMe产出的json文件所在文件夹的目录,同时也是转换后的标注集所在文件夹的目录。如下图所示。

将.json文件另外存到一个文件夹备用 ,将图片和mask文件按照下面目录结构放置

 

gtFine: 图片标注

 --train:用来训练

 --val: 用来评估

leftImg8bit: 原始图片

 --train:用来训练

 --val: 用来评估

图片放置好以后 执行一下命令生成索引序列 用于训练

python tools/create_dataset_list.py  <your/dataset/dir>

--folder leftImg8bit gtFine   

--second_folder train val

--format bmp png

 

 最终生成的只有 train.txt  val.txt  test.txt可以自己制作 没有也不影响训练

 二:模型训练

第一步:配置文件

自己建立一个myselfdata.yml 下面是我自己建立的  不同的模型需要的配置文件不同根据报错可自行添加

batch_size: 1
iters: 8000

train_dataset:
  type: Dataset
  dataset_root: dataset/cityscapes
  train_path: dataset/cityscapes/train.txt
  num_classes: 19   #训练类别数目
  transforms:
    - type: ResizeStepScaling
      min_scale_factor: 0.5
      max_scale_factor: 2.0
      scale_step_size: 0.25
    - type: RandomPaddingCrop
      crop_size: [1624, 594]
    - type: RandomHorizontalFlip
    - type: RandomDistort
      brightness_range: 0.4
      contrast_range: 0.4
      saturation_range: 0.4
    - type: Normalize
  mode: train

val_dataset:
  type: Dataset
  dataset_root: dataset/cityscapes
  val_path: dataset/cityscapes/val.txt
  num_classes: 19
  transforms:
    - type: Resize
      target_size: [1624, 594] # [3096, 1100]
    - type: Normalize
  mode: val

optimizer:
  type: sgd
  momentum: 0.9
  weight_decay: 4.0e-5

lr_scheduler:
  type: PolynomialDecay
  learning_rate: 0.01
  end_lr: 0
  power: 0.9

loss:
  types:
    - type: CrossEntropyLoss
  coef: [1]

 第二步:下面以bisenet_cityscapes_1024x1024_160k.yml模型为例。

打开配置文件,修改_base_的配置文件引用,如下图所示

 

第三步:开始训练

 export CUDA_VISIBLE_DEVICES=0 # 设置1张可用的卡
# windows下请执行以下命令
# set CUDA_VISIBLE_DEVICES=0
python train.py \
       --config configs/bisenet/bisenet_cityscapes_1024x1024_160k.yml
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output

恢复训练

python train.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --resume_model output/iter_500 \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output

可视化预测

python predict.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --model_path output/iter_1000/model.pdparams \
       --image_path dataset/optic_disc_seg/JPEGImages/H0003.jpg \
       --save_dir output/result
 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值