Python语义分割与街景识别(4):程序运行

前言

本文主要用于记录我在使用python做图像识别语义分割训练集的过程,由于在这一过程中踩坑排除BUG过多,因此也希望想做这部分内容的同学们可以少走些弯路。

本文是python语义分割与街景识别第四篇,关于程序的内容,也是差不多最后一部分的内容,后续可能还会更新几个相关后续操作的文档。

一、使用PaddlePaddle框架训练

框架下载地址

https//github.com/PaddlePaddle/PaddleSeg/blob/release/2.4/README_CN.md

笔者的文件夹是PaddleSeg-release-2.8打开如下

(1)configs文件夹下是不同的网络模型配置文件

(2)deploy文件夹下是不同模型部署

二、程序

将dataset文件夹放到paddlepaddle的文件夹下

2.1 配置yml文件

新建一个名为my.yml的文件放在PaddleSeg-release-2.8文件夹下,代码如下

batch_size: 4

iters: 1000

train_dataset:

  type: Dataset

  dataset_root: dataset

  train_path: dataset/train.txt

  num_classes: 30

  transforms:

    - type: Resize

      target_size: [512,512]

    - type: RandomHorizontalFlip

    - type: Normalize

  mode: train

val_dataset:

  type: Dataset

  dataset_root: dataset

  val_path: dataset/val.txt

  num_classes: 30

  transforms:

    - type: Resize

      target_size: [512,512]

    - type: RandomHorizontalFlip

    - 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,1,1,1,1]

model:

  type: BiSeNetV2

  pretrained: Null

说明:

(1)batch_size可根据显存大小自行更改 

(2)iters是迭代多少次

(3)train_dataset和val_dataset的路径需要根据实际文件位置修改

(4)model的type这里选择是BisNetV2,可根据需要自行更改其他模型

2.2 运行程序

在PaddleSeg-release-2.8文件夹下按住shift右键打开命令行输入

训练代码

python ./tools/train.py --config my.yml --do_eval --use_vdl --save_interval 200 --save_dir output

说明:

(1)找到train.py的路径,不同版本不太一样,这里是在tools文件夹下;

(2)--save_interval 200是指每迭代200次保存一次

(3)--save_dir output是运行结果的保存位置,若没有output文件夹手动新建一个

脚本开始运行则表明正常,可以查看最后的准确度指标检测训练程度,一般在60%~70%,加大训练量和迭代数量能大幅提高准确度

验证精确度代码

python tools/val.py --config my.yml --model_path output/iter_10000/model.pdparams

调用训练集预测代码

python tools/predict.py --config my.yml --model_path output/iter_10000/model.pdparams --image_path dataset/predict --save_dir output/result

到这里就结束啦,等待运行结果吧

猜你喜欢

转载自blog.csdn.net/qq_41904236/article/details/132819440