Bladeren bron

add new models for semanticseg (#1843)

Sunflower7788 1 jaar geleden
bovenliggende
commit
d3baaeb645
28 gewijzigde bestanden met toevoegingen van 1205 en 4 verwijderingen
  1. 5 2
      README.md
  2. 17 0
      docs/tutorials/models/support_model_list.md
  3. 37 0
      paddlex/configs/semantic_segmentation/OCRNet_HRNet-W18.yaml
  4. 37 0
      paddlex/configs/semantic_segmentation/SeaFormer_base.yaml
  5. 37 0
      paddlex/configs/semantic_segmentation/SeaFormer_large.yaml
  6. 37 0
      paddlex/configs/semantic_segmentation/SeaFormer_small.yaml
  7. 37 0
      paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml
  8. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B0.yaml
  9. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B1.yaml
  10. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B2.yaml
  11. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B3.yaml
  12. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B4.yaml
  13. 37 0
      paddlex/configs/semantic_segmentation/SegFormer-B5.yaml
  14. 22 0
      paddlex/modules/base/predictor/utils/official_models.py
  15. 11 0
      paddlex/modules/semantic_segmentation/model_list.py
  16. 0 1
      paddlex/pipelines/base/pipeline.py
  17. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/OCRNet_HRNet-W18.yaml
  18. 69 0
      paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_base.yaml
  19. 67 0
      paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_large.yaml
  20. 70 0
      paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_small.yaml
  21. 70 0
      paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_tiny.yaml
  22. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B0.yaml
  23. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B1.yaml
  24. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B2.yaml
  25. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B3.yaml
  26. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B4.yaml
  27. 55 0
      paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B5.yaml
  28. 82 1
      paddlex/repo_apis/PaddleSeg_api/seg/register.py

+ 5 - 2
README.md

@@ -76,8 +76,11 @@ PaddleX 3.0 覆盖了 16 条产业级模型产线,其中 9 条基础产线可
     <td>基础产线</td>
     <td>通用语义分割</td>
     <td>语义分割</td>
-    <td>OCRNet_HRNet-W48<br/>PP-LiteSeg-T<details>
-    <summary><b>more</b></summary><br/>Deeplabv3-R50<br/>Deeplabv3-R101<br/>Deeplabv3_Plus-R50<br/>Deeplabv3_Plus-R101</details></td>
+    <td>OCRNet_HRNet-W48<br/>OCRNet_HRNet-W18<br/>PP-LiteSeg-T<details>
+    <summary><b>more</b></summary><br/>Deeplabv3-R50<br/>Deeplabv3-R101<br/>Deeplabv3_Plus-R50<br/>Deeplabv3_Plus-R101<br/>SeaFormer_tiny<br/
+    >SeaFormer_small<br/>SeaFormer_base<br/>SeaFormer_large<br/
+    >SegFormer-B0<br/>SegFormer-B1<br/>SegFormer-B2<br/
+    >SegFormer-B3<br/>SegFormer-B4<br/>SegFormer-B5</details></td>
   </tr>
   <tr>
     <td>基础产线</td>

+ 17 - 0
docs/tutorials/models/support_model_list.md

@@ -117,10 +117,27 @@
 | 模型名称 | config |
 | :--- | :---: |
 | OCRNet_HRNet-W48 | [OCRNet_HRNet-W48.yaml](../../../paddlex/configs/semantic_segmentation/OCRNet_HRNet-W48.yaml)|
+| OCRNet_HRNet-W18 | [OCRNet_HRNet-W18.yaml](../../../paddlex/configs/semantic_segmentation/OCRNet_HRNet-W18.yaml)|
 ### 3.PP-LiteSeg系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-LiteSeg-T | [PP-LiteSeg-T.yaml](../../../paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml)|
+### 4.SegFormer 系列
+| 模型名称 | config |
+| :--- | :---: |
+| SegFormer-B0 | [SegFormer-B0.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B0.yaml)|
+| SegFormer-B1 | [SegFormer-B1.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B1.yaml)|
+| SegFormer-B2 | [SegFormer-B2.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B2.yaml)|
+| SegFormer-B3 | [SegFormer-B3.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B3.yaml)|
+| SegFormer-B4 | [SegFormer-B4.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B4.yaml)|
+| SegFormer-B5 | [SegFormer-B5.yaml](../../../paddlex/configs/semantic_segmentation/SegFormer-B5.yaml)|
+### 5.SeaFormer 系列
+| 模型名称 | config |
+| :--- | :---: |
+| SeaFormer_tiny | [SeaFormer_tiny.yaml](../../../paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml)|
+| SeaFormer_small | [SeaFormer_small.yaml](../../../paddlex/configs/semantic_segmentation/SeaFormer_small.yaml)|
+| SeaFormer_base | [SeaFormer_base.yaml](../../../paddlex/configs/semantic_segmentation/SeaFormer_base.yaml)|
+| SeaFormer_large | [SeaFormer_large.yaml](../../../paddlex/configs/semantic_segmentation/SeaFormer_large.yaml)|
 ## 五、表格识别
 | 模型名称 | config |
 | :--- | :---: |

+ 37 - 0
paddlex/configs/semantic_segmentation/OCRNet_HRNet-W18.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: OCRNet_HRNet-W18
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SeaFormer_base.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SeaFormer_base
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.jpg"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SeaFormer_large.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SeaFormer_large
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.jpg"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SeaFormer_small.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SeaFormer_small
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 19
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.jpg"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SeaFormer_tiny
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.jpg"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B0.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B0
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B1.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B1
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B2.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B2
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B3.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B3
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B4.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B4
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 37 - 0
paddlex/configs/semantic_segmentation/SegFormer-B5.yaml

@@ -0,0 +1,37 @@
+Global:
+  model: SegFormer-B5
+  mode: check_dataset # check_dataset/train/evaluate/predict
+  dataset_dir: "/paddle/dataset/paddlex/seg/seg_optic_examples"
+  device: gpu:0,1,2,3
+  output: "output"
+
+CheckDataset:
+  convert: 
+    enable: False
+    src_dataset_type: null
+  split: 
+    enable: False
+    train_percent: null
+    val_percent: null
+
+Train:
+  epochs_iters: 500
+  num_classes: 2
+  batch_size: 2
+  learning_rate: 0.01
+  pretrain_weight_path: null
+  warmup_steps: 0
+  resume_path: null
+  log_interval: 10
+  eval_interval: 100
+
+Evaluate:
+  weight_path: "output/best_model/model.pdparams"
+  log_interval: 10
+
+Predict:
+  model_dir: "output/best_model/model"
+  input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
+  kernel_option:
+    run_mode: paddle
+    batch_size: 1

+ 22 - 0
paddlex/modules/base/predictor/utils/official_models.py

@@ -168,6 +168,28 @@ Deeplabv3_Plus-R101_infer.tar",
     "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/PP-LiteSeg-T_infer.tar",
     "OCRNet_HRNet-W48":
     "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/OCRNet_HRNet-W48_infer.tar",
+    "OCRNet_HRNet-W18":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/OCRNet_HRNet-W18_infer.tar",
+    "SegFormer-B0":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B0_infer.tar",
+    "SegFormer-B1":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B1_infer.tar",
+    "SegFormer-B2":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B2_infer.tar",
+    "SegFormer-B3":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B3_infer.tar",
+    "SegFormer-B4":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B4_infer.tar",
+    "SegFormer-B5":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SegFormer-B5_infer.tar",
+    "SeaFormer_tiny":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_tiny_infer.tar",
+    "SeaFormer_small":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_small_infer.tar",
+    "SeaFormer_base":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_base_infer.tar",
+    "SeaFormer_large":
+    "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/SeaFormer_large_infer.tar",
     "Mask-RT-DETR-H":
     "https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0/Mask-RT-DETR-H_infer.tar",
     "Mask-RT-DETR-L":

+ 11 - 0
paddlex/modules/semantic_segmentation/model_list.py

@@ -19,5 +19,16 @@ MODELS = [
     'Deeplabv3-R101',
     'Deeplabv3-R50',
     'OCRNet_HRNet-W48',
+    'OCRNet_HRNet-W18',
     'PP-LiteSeg-T',
+    'SegFormer-B0',
+    'SegFormer-B1',
+    'SegFormer-B2',
+    'SegFormer-B3',
+    'SegFormer-B4',
+    'SegFormer-B5',
+    'SeaFormer_base',
+    'SeaFormer_tiny',
+    'SeaFormer_small',
+    'SeaFormer_large'
 ]

+ 0 - 1
paddlex/pipelines/base/pipeline.py

@@ -32,7 +32,6 @@ def build_pipeline(
         BasePipeline: the pipeline, which is subclass of BasePipeline.
     """
     pipeline = BasePipeline.get(pipeline_name)(output=output, device=device)
-    pipeline.update_model_name(model_list)
     pipeline.update_model(model_list, model_dir_list)
     pipeline.load_model()
     return pipeline

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/OCRNet_HRNet-W18.yaml

@@ -0,0 +1,55 @@
+batch_size: 2
+iters: 80000
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+model:
+  type: OCRNet
+  backbone:
+    type: HRNet_W18
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/hrnet_w18_ssld.tar.gz
+  backbone_indices: [0]
+
+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
+    - type: CrossEntropyLoss
+  coef: [1, 0.4]

+ 69 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_base.yaml

@@ -0,0 +1,69 @@
+batch_size: 8
+iters: 80000
+
+model:
+  type: SeaFormerSeg
+  backbone: 
+    type: SeaFormer_base
+    pretrained: https://paddleseg.bj.bcebos.com/dygraph/backbone/seaformer_base_imagenet_pretrained.zip
+  head_channels: 160
+  embed_dims: [128, 160]
+  is_dw: True
+  dropout_ratio: 0.1
+  align_corners: False
+  input_transform: 'multiple_select'
+
+train_dataset:
+  type: Dataset
+  dataset_root: data/Cityscapes/
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+  custom_cfg:
+    - name: pos_emb
+      weight_decay_mult: 0.0
+    - name: head
+      lr_mult: 10.0
+    - name: norm
+      weight_decay_mult: 0.0
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00025
+  power: 1.0
+  warmup_iters: 1500
+  warmup_start_lr: 1.0e-6
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 67 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_large.yaml

@@ -0,0 +1,67 @@
+batch_size: 8
+iters: 80000
+
+model:
+  type: SeaFormerSeg
+  backbone: 
+    type: SeaFormer_large
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/ade20k/backbone/seaformer_large_imagenet_pretrained.pdparams
+  num_classes: 150
+  head_channels: 192
+  embed_dims: [128, 160, 192]
+  in_index: [0, 1, 2, 3]
+
+train_dataset:
+  type: Dataset
+  dataset_root: data/Cityscapes/
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+  custom_cfg:
+    - name: pos_emb
+      weight_decay_mult: 0.0
+    - name: head
+      lr_mult: 10.0
+    - name: norm
+      weight_decay_mult: 0.0
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00025
+  power: 1.0
+  warmup_iters: 1500
+  warmup_start_lr: 1.0e-6
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 70 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_small.yaml

@@ -0,0 +1,70 @@
+batch_size: 8
+iters: 80000
+
+model:
+  type: SeaFormerSeg
+  backbone: 
+    type: SeaFormer_small
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/ade20k/backbone/seaformer_small_imagenet_pretrained.pdparams
+  num_classes: 150
+  head_channels: 128
+  embed_dims: [96, 128]
+  is_dw: True
+  dropout_ratio: 0.1
+  align_corners: False
+  input_transform: 'multiple_select'
+
+train_dataset:
+  type: Dataset
+  dataset_root: data/Cityscapes/
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+  custom_cfg:
+    - name: pos_emb
+      weight_decay_mult: 0.0
+    - name: head
+      lr_mult: 10.0
+    - name: norm
+      weight_decay_mult: 0.0
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00025
+  power: 1.0
+  warmup_iters: 1500
+  warmup_start_lr: 1.0e-6
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 70 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SeaFormer_tiny.yaml

@@ -0,0 +1,70 @@
+batch_size: 8
+iters: 80000
+
+model:
+  type: SeaFormerSeg
+  backbone: 
+    type: SeaFormer_tiny
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/ade20k/backbone/seaformer_tiny_imagenet_pretrained.pdparams
+  num_classes: 150
+  head_channels: 96
+  embed_dims: [64, 96]
+  is_dw: True
+  dropout_ratio: 0.1
+  align_corners: False
+  input_transform: 'multiple_select'
+
+train_dataset:
+  type: Dataset
+  dataset_root: data/Cityscapes/
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+  custom_cfg:
+    - name: pos_emb
+      weight_decay_mult: 0.0
+    - name: head
+      lr_mult: 10.0
+    - name: norm
+      weight_decay_mult: 0.0
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00025
+  power: 1.0
+  warmup_iters: 1500
+  warmup_start_lr: 1.0e-6
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B0.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B0
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b0.tar.gz
+  embedding_dim: 256
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B1.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B1
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b1.tar.gz
+  embedding_dim: 256
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [1024, 1024]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B2.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B2
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b2.tar.gz
+  embedding_dim: 768
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B3.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B3
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b3.tar.gz
+  embedding_dim: 768
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B4.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B4
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b4.tar.gz
+  embedding_dim: 768
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 55 - 0
paddlex/repo_apis/PaddleSeg_api/configs/SegFormer-B5.yaml

@@ -0,0 +1,55 @@
+batch_size: 1
+iters: 80000
+
+model:
+  type: SegFormer
+  backbone:
+    type: MixVisionTransformer_B5
+    pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b5.tar.gz
+  embedding_dim: 768
+
+train_dataset:
+  type: Dataset
+  dataset_root: datasets/Cityscapes
+  train_path: datasets/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: [512, 512]
+    - 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: datasets/Cityscapes
+  val_path: datasets/Cityscapes/val.txt
+  num_classes: 19
+  transforms:
+    - type: Normalize
+  mode: val
+
+optimizer:
+  type: AdamW
+  beta1: 0.9
+  beta2: 0.999
+  weight_decay: 0.01
+
+lr_scheduler:
+  type: PolynomialDecay
+  learning_rate: 0.00006
+  power: 1
+  end_lr: 0
+
+loss:
+  types:
+    - type: CrossEntropyLoss
+  coef: [1]

+ 82 - 1
paddlex/repo_apis/PaddleSeg_api/seg/register.py

@@ -41,6 +41,13 @@ register_model_info({
     'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
 })
 
+register_model_info({
+    'model_name': 'OCRNet_HRNet-W18',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'OCRNet_HRNet-W18.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
 # PP-LiteSeg
 register_model_info({
     'model_name': 'PP-LiteSeg-T',
@@ -65,7 +72,79 @@ register_model_info({
     'supported_dataset_types': []
 })
 
-# OCRNet
+# seaformer
+register_model_info({
+    'model_name': 'SeaFormer_base',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SeaFormer_base.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SeaFormer_tiny',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SeaFormer_tiny.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SeaFormer_small',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SeaFormer_small.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SeaFormer_large',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SeaFormer_large.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+# SegFormer
+register_model_info({
+    'model_name': 'SegFormer-B0',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B0.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SegFormer-B1',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B1.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SegFormer-B2',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B2.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SegFormer-B3',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B3.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SegFormer-B4',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B4.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+register_model_info({
+    'model_name': 'SegFormer-B5',
+    'suite': 'Seg',
+    'config_path': osp.join(PDX_CONFIG_DIR, 'SegFormer-B5.yaml'),
+    'supported_apis': ['train', 'evaluate', 'predict', 'export', 'infer']
+})
+
+# deeplab
 register_model_info({
     'model_name': 'Deeplabv3-R50',
     'suite': 'Seg',
@@ -95,6 +174,7 @@ register_model_info({
 })
 
 
+
 # For compatibility
 def _set_alias(model_name, alias):
     from ...base.register import get_registered_model_info
@@ -106,4 +186,5 @@ def _set_alias(model_name, alias):
 
 
 _set_alias('OCRNet_HRNet-W48', 'ocrnet_hrnetw48')
+_set_alias('OCRNet_HRNet-W18', 'ocrnet_hrnetw18')
 _set_alias('PP-LiteSeg-T', 'pp_liteseg_stdc1')