当前位置:   article > 正文

PadddleSeg_padddleseg github

padddleseg github

我主要玩儿了pp_liteseg。

做法如下:

一、配置文件

  1. batch_size: 6 # total: 4*6
  2. iters: 10000
  3. train_dataset:
  4. type: Dataset
  5. dataset_root: ./paddleseg/datasets/custom_dataset
  6. num_classes: 11
  7. mode: train
  8. train_path: ./paddleseg/datasets/custom_dataset/train.txt
  9. transforms:
  10. # - type: ResizeStepScaling
  11. # min_scale_factor: 0.9
  12. # max_scale_factor: 1.1
  13. # scale_step_size: 0.25
  14. # - type: RandomPaddingCrop
  15. # crop_size: [960, 720]
  16. # - type: RandomHorizontalFlip
  17. # - type: RandomDistort
  18. # brightness_range: 0.5
  19. # contrast_range: 0.5
  20. # saturation_range: 0.5
  21. # - type: Normalize
  22. - type: Resize # 送入网络之前需要进行resize
  23. target_size: [ 512, 512 ] # 将原图 resize 成 512*512 再送入网络
  24. val_dataset:
  25. type: Dataset
  26. dataset_root: ./paddleseg/datasets/custom_dataset
  27. num_classes: 11
  28. mode: val
  29. val_path: ./paddleseg/datasets/custom_dataset/val.txt
  30. transforms:
  31. - type: Resize # 送入网络之前需要进行resize
  32. target_size: [ 512, 512 ] # 将原图 resize 成 512*512 再送入网络
  33. optimizer:
  34. type: sgd
  35. momentum: 0.9
  36. weight_decay: 5.0e-4
  37. lr_scheduler:
  38. type: PolynomialDecay
  39. learning_rate: 0.01
  40. end_lr: 0
  41. power: 0.9
  42. warmup_iters: 200
  43. warmup_start_lr: 1.0e-5
  44. loss:
  45. types:
  46. - type: OhemCrossEntropyLoss
  47. min_kept: 250000 # batch_size * 960 * 720 // 16
  48. - type: OhemCrossEntropyLoss
  49. min_kept: 250000
  50. - type: OhemCrossEntropyLoss
  51. min_kept: 250000
  52. coef: [1, 1, 1]
  53. model:
  54. type: PPLiteSeg
  55. backbone:
  56. type: STDC1
  57. pretrained: https://bj.bcebos.com/paddleseg/dygraph/PP_STDCNet1.tar.gz
  58. arm_out_chs: [32, 64, 128]
  59. seg_head_inter_chs: [32, 64, 64]

二、自定义训练数据

这些数据怎么弄的?

如果你原来的图像是一堆bmp,现在想转化为一堆jpg,怎么办?因为这里必须用jpg!

代码如下:

  1. # coding:utf-8
  2. import os
  3. from PIL import Image
  4. # bmp 转换为jpg
  5. def bmpToJpg(file_path):
  6. for fileName in os.listdir(file_path):
  7. # print(fileName)
  8. newFileName = fileName[0:fileName.find(".")]+".jpg"
  9. print(newFileName)
  10. im = Image.open(file_path+"\\"+fileName)
  11. im.save(file_path+"\\"+newFileName)
  12. # 删除原来的位图
  13. def deleteImages(file_path, imageFormat):
  14. command = "del "+file_path+"\\*."+imageFormat
  15. os.system(command)
  16. def main():
  17. file_path = "D:\\BaiduNetdiskDownload\\PaddleSeg-release-2.8\\paddleseg\\datasets\\custom_dataset\\bmp"
  18. bmpToJpg(file_path)
  19. #deleteImages(file_path, "bmp")
  20. if __name__ == '__main__':
  21. main()
  1. python tools/data/split_dataset_list.py D:/BaiduNetdiskDownload/PaddleSeg-release-2.8/paddleseg/datasets/custom_dataset/ images labels

三、训练

  1. python tools/train.py --config configs\pp_liteseg\gao.yml --do_eval --use_vdl --save_interval 500 --save_dir output

竟然提示我,:Could not locate zlibwapi.dll.

Installation Guide - NVIDIA Docs

在这里,下载一个zlib,主要是那个dll,我放在了c:/windows/system32下面

四、预测

  1. python tools/predict.py --config configs\pp_liteseg\gao.yml --model_path output/iter_4500/model.pdparams --image_path paddleseg/datasets/custom_dataset/images/aWriteRectangle2ByWireEnd000.jpg --save_dir output/result

五、模型导出(从动态到静态)

  1. python tools/export.py --config configs/pp_liteseg/gao.yml --model_path output/iter_30000/model.pdparams --save_dir output/inference_model --output_op none

注意最后这个--with_softmax

没他,最后一层输出的就是整数,也就是类别。

有了他,如果11类,那么会输出共11维,第0维说的,第0类在每个像素点的概率,是浮点型小数。

下面是全部命令,注意正反斜杠。

  1. python tools/data/split_dataset_list.py /home/gao/PaddleSeg/paddleseg/datasets/custom_dataset/ images labels
  2. python tools/train.py --config configs/pp_liteseg/gao.yml --do_eval --use_vdl --save_interval 500 --save_dir output
  3. python tools/predict.py --config configs/pp_liteseg/gao.yml --model_path output/iter_30000/model.pdparams --image_path paddleseg/datasets/custom_dataset/test --save_dir output/result
  4. python tools/export.py --config configs/pp_liteseg/gao.yml --model_path output/iter_30000/model.pdparams --save_dir output/inference_model --output_op none

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/510354
推荐阅读
相关标签
  

闽ICP备14008679号