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

一:CityScapes格式数据集制作

1:labelme安装指南  github:labelme

第一步:下载 安装 

【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第1张图片

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

【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第2张图片

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

 2:数据标注 

标注后生成的文件格式

 【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第3张图片

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

python tools/labelme2seg.py 

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

【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第4张图片

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

 【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第5张图片

gtFine: 图片标注

 --train:用来训练

 --val: 用来评估

leftImg8bit: 原始图片

 --train:用来训练

 --val: 用来评估

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

python tools/create_dataset_list.py  

--folder leftImg8bit gtFine   

--second_folder train val

--format bmp png

 【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第6张图片

 最终生成的只有 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_的配置文件引用,如下图所示

 【PaddleSeg】使用自己制作的CityScapes数据集训练模型_第7张图片

第三步:开始训练

 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
 

你可能感兴趣的:(Paddle,机器学习,计算机视觉,神经网络,深度学习,paddlepaddle)