forked from PaddlePaddle/PaddleSeg
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
183 changed files
with
11,059 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,83 @@ | ||
# PaddleSeg | ||
# PaddleSeg 语义分割库 | ||
|
||
## 简介 | ||
|
||
PaddleSeg是基于[PaddlePaddle](https://www.paddlepaddle.org.cn)开发的语义分割库,覆盖了DeepLabv3+, U-Net, ICNet三类主流的分割模型。通过统一的配置,帮助用户更便捷地完成从训练到部署的全流程图像分割应用。 | ||
具备高性能、丰富的数据增强、工业级部署、全流程应用的特点。 | ||
|
||
|
||
|
||
- **丰富的数据增强** | ||
|
||
- 基于百度视觉技术部的实际业务经验,内置10+种数据增强策略,可结合实际业务场景进行定制组合,提升模型泛化能力和鲁棒性。 | ||
|
||
- **主流模型覆盖** | ||
|
||
- 支持U-Net, DeepLabv3+, ICNet三类主流分割网络,结合预训练模型和可调节的骨干网络,满足不同性能和精度的要求。 | ||
|
||
- **高性能** | ||
|
||
- PaddleSeg支持多进程IO、多卡并行、多卡Batch Norm, FP16混合精度等训练加速策略,通过飞桨核心框架的显存优化算法,可以大幅度节约分割模型的显存开销,更快完成分割模型训练。 | ||
|
||
- **工业级部署** | ||
|
||
- 基于[Paddle Serving](https://github.com/PaddlePaddle/Serving)和PaddlePaddle高性能预测引擎, 结合百度开放的AI能力,轻松搭建人像分割和车道线分割服务。 | ||
|
||
|
||
|
||
|
||
更多模型信息与技术细节请查看[模型介绍](./docs/models.md)和[预训练模型](./docs/mode_zoo.md) | ||
|
||
## AI Studio教程 | ||
|
||
### 快速开始 | ||
|
||
通过 [PaddleSeg人像分割](https://aistudio.baidu.com/aistudio/projectDetail/100798) 教程可快速体验PaddleSeg人像分割模型的效果。 | ||
|
||
### 入门教程 | ||
|
||
入门教程以经典的U-Net模型为例, 结合Oxford-IIIT宠物数据集,快速熟悉PaddleSeg使用流程, 详情请点击[U-Net宠物分割](https://aistudio.baidu.com/aistudio/projectDetail/102889)。 | ||
|
||
### 高级教程 | ||
|
||
高级教程以DeepLabv3+模型为例,结合Cityscapes数据集,快速了解ASPP, Backbone网络切换,多卡Batch Norm同步等策略,详情请点击[DeepLabv3+图像分割](https://aistudio.baidu.com/aistudio/projectDetail/101696)。 | ||
|
||
### 垂类模型 | ||
|
||
更多特色垂类分割模型如LIP人体部件分割、人像分割、车道线分割模型可以参考[contrib](./contrib/README.md) | ||
|
||
## 使用文档 | ||
|
||
* [安装说明](./docs/installation.md) | ||
* [数据准备](./docs/data_prepare.md) | ||
* [数据增强](./docs/data_aug.md) | ||
* [预训练模型](./docs/model_zoo.md) | ||
* [训练/评估/预测(可视化)](./docs/usage.md) | ||
* [预测库集成](./inference/README.md) | ||
* [服务端部署](./serving/README.md) | ||
* [垂类分割模型](./contrib/README.md) | ||
|
||
|
||
## FAQ | ||
|
||
#### Q:图像分割的数据增强如何配置,unpadding, step scaling, range scaling的原理是什么? | ||
|
||
A:数据增强的配置可以参考文档[数据增强](./docs/data_aug.md) | ||
|
||
#### Q: 预测时图片过大,导致显存不足如何处理? | ||
|
||
A: 降低Batch size,使用Group Norm策略等。 | ||
|
||
## 更新日志 | ||
|
||
### 2019.08.25 | ||
|
||
#### v0.1.0 | ||
|
||
* PaddleSeg分割库初始版本发布,包含DeepLabv3+, U-Net, ICNet三类分割模型, 其中DeepLabv3+支持Xception, MobileNet两种可调节的骨干网络。 | ||
* CVPR 19' LIP人体部件分割比赛冠军预测模型发布[ACE2P](./contrib/ACE2P) | ||
* 预置基于DeepLabv3+网络的[人像分割](./contrib/HumanSeg/)和[车道线分割](./contrib/RoadLine)预测模型发布 | ||
|
||
## 如何贡献代码 | ||
|
||
我们非常欢迎您为PaddleSeg贡献代码或者提供使用建议。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
EVAL_CROP_SIZE: (2049, 1025) # (width, height), for unpadding rangescaling and stepscaling | ||
TRAIN_CROP_SIZE: (769, 769) # (width, height), for unpadding rangescaling and stepscaling | ||
AUG: | ||
AUG_METHOD: "stepscaling" # choice unpadding rangescaling and stepscaling | ||
FIX_RESIZE_SIZE: (640, 640) # (width, height), for unpadding | ||
INF_RESIZE_VALUE: 500 # for rangescaling | ||
MAX_RESIZE_VALUE: 600 # for rangescaling | ||
MIN_RESIZE_VALUE: 400 # for rangescaling | ||
MAX_SCALE_FACTOR: 2.0 # for stepscaling | ||
MIN_SCALE_FACTOR: 0.5 # for stepscaling | ||
SCALE_STEP_SIZE: 0.25 # for stepscaling | ||
MIRROR: True | ||
RICH_CROP: | ||
ENABLE: False | ||
ASPECT_RATIO: 0.33 | ||
BLUR: True | ||
BLUR_RATIO: 0.1 | ||
FLIP: True | ||
FLIP_RATIO: 0.2 | ||
MAX_ROTATION: 15 | ||
MIN_AREA_RATIO: 0.5 | ||
BRIGHTNESS_JITTER_RATIO: 0.5 | ||
CONTRAST_JITTER_RATIO: 0.5 | ||
SATURATION_JITTER_RATIO: 0.5 | ||
BATCH_SIZE: 4 | ||
MEAN: [0.5, 0.5, 0.5] | ||
STD: [0.5, 0.5, 0.5] | ||
DATASET: | ||
DATA_DIR: "./dataset/cityscapes/" | ||
IMAGE_TYPE: "rgb" # choice rgb or rgba | ||
NUM_CLASSES: 19 | ||
TEST_FILE_LIST: "dataset/cityscapes/val.list" | ||
TRAIN_FILE_LIST: "dataset/cityscapes/train.list" | ||
VAL_FILE_LIST: "dataset/cityscapes/val.list" | ||
IGNORE_INDEX: 255 | ||
FREEZE: | ||
MODEL_FILENAME: "model" | ||
PARAMS_FILENAME: "params" | ||
MODEL: | ||
DEFAULT_NORM_TYPE: "gn" | ||
MODEL_NAME: "deeplabv3p" | ||
DEEPLAB: | ||
ASPP_WITH_SEP_CONV: True | ||
DECODER_USE_SEP_CONV: True | ||
TEST: | ||
TEST_MODEL: "snapshots/cityscape_v5/final/" | ||
TRAIN: | ||
MODEL_SAVE_DIR: "snapshots/cityscape_v7/" | ||
PRETRAINED_MODEL: u"pretrain/deeplabv3plus_gn_init" | ||
RESUME: False | ||
SNAPSHOT_EPOCH: 10 | ||
SOLVER: | ||
LR: 0.001 | ||
LR_POLICY: "poly" | ||
OPTIMIZER: "sgd" | ||
NUM_EPOCHS: 700 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
EVAL_CROP_SIZE: (513, 513) # (width, height), for unpadding rangescaling and stepscaling | ||
TRAIN_CROP_SIZE: (513, 513) # (width, height), for unpadding rangescaling and stepscaling | ||
AUG: | ||
AUG_METHOD: u"stepscaling" # choice unpadding rangescaling and stepscaling | ||
FIX_RESIZE_SIZE: (640, 640) # (width, height), for unpadding | ||
INF_RESIZE_VALUE: 500 # for rangescaling | ||
MAX_RESIZE_VALUE: 600 # for rangescaling | ||
MIN_RESIZE_VALUE: 400 # for rangescaling | ||
MAX_SCALE_FACTOR: 2.0 # for stepscaling | ||
MIN_SCALE_FACTOR: 0.5 # for stepscaling | ||
SCALE_STEP_SIZE: 0.25 # for stepscaling | ||
MIRROR: True | ||
RICH_CROP: | ||
ENABLE: False | ||
ASPECT_RATIO: 0.33 | ||
BLUR: True | ||
BLUR_RATIO: 0.1 | ||
FLIP: True | ||
FLIP_RATIO: 0.2 | ||
MAX_ROTATION: 15 | ||
MIN_AREA_RATIO: 0.5 | ||
BRIGHTNESS_JITTER_RATIO: 0.5 | ||
CONTRAST_JITTER_RATIO: 0.5 | ||
SATURATION_JITTER_RATIO: 0.5 | ||
BATCH_SIZE: 8 | ||
MEAN: [104.008, 116.669, 122.675] | ||
STD: [1.0, 1.0, 1.0] | ||
DATASET: | ||
DATA_DIR: "./data/COCO2014/" | ||
IMAGE_TYPE: "rgb" # choice rgb or rgba | ||
NUM_CLASSES: 21 | ||
TEST_FILE_LIST: "data/COCO2014/VOC_ImageSets/val.txt" | ||
TRAIN_FILE_LIST: "data/COCO2014/ImageSets/train.txt" | ||
VAL_FILE_LIST: "data/COCO2014/VOC_ImageSets/val.txt" | ||
SEPARATOR: " " | ||
IGNORE_INDEX: 255 | ||
FREEZE: | ||
MODEL_FILENAME: "model" | ||
PARAMS_FILENAME: "params" | ||
MODEL: | ||
DEFAULT_NORM_TYPE: "bn" | ||
MODEL_NAME: "deeplabv3p" | ||
TEST: | ||
TEST_MODEL: "snapshots/coco_v1/final" | ||
TRAIN: | ||
MODEL_SAVE_DIR: "snapshots/coco_v1/" | ||
PRETRAINED_MODEL: "pretrain/xception65_pretrained/" | ||
RESUME: False | ||
SNAPSHOT_EPOCH: 5 | ||
SOLVER: | ||
LR: 0.007 | ||
WEIGHT_DECAY: 0.00004 | ||
NUM_EPOCHS: 40 | ||
LR_POLICY: "poly" | ||
OPTIMIZER: "SGD" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
TRAIN_CROP_SIZE: (513, 513) # (width, height), for unpadding rangescaling and stepscaling | ||
EVAL_CROP_SIZE: (513, 513) # (width, height), for unpadding rangescaling and stepscaling | ||
AUG: | ||
AUG_METHOD: u"unpadding" # choice unpadding rangescaling and stepscaling | ||
FIX_RESIZE_SIZE: (513, 513) # (width, height), for unpadding | ||
INF_RESIZE_VALUE: 513 # for rangescaling | ||
MAX_RESIZE_VALUE: 400 # for rangescaling | ||
MIN_RESIZE_VALUE: 513 # for rangescaling | ||
MAX_SCALE_FACTOR: 2.0 # for stepscaling | ||
MIN_SCALE_FACTOR: 0.5 # for stepscaling | ||
SCALE_STEP_SIZE: 0.25 # for stepscaling | ||
MIRROR: True | ||
RICH_CROP: | ||
ENABLE: True | ||
ASPECT_RATIO: 0 | ||
BLUR: True | ||
BLUR_RATIO: 0.1 | ||
FLIP: True | ||
FLIP_RATIO: 0.2 | ||
MAX_ROTATION: 45 | ||
MIN_AREA_RATIO: 0 | ||
BRIGHTNESS_JITTER_RATIO: 0.5 | ||
CONTRAST_JITTER_RATIO: 0.5 | ||
SATURATION_JITTER_RATIO: 0.5 | ||
BATCH_SIZE: 24 | ||
MEAN: [104.008, 116.669, 122.675] | ||
STD: [1.0, 1.0, 1.0] | ||
DATASET: | ||
DATA_DIR: u"./data/humanseg/" | ||
IMAGE_TYPE: "rgb" # choice rgb or rgba | ||
NUM_CLASSES: 2 | ||
TEST_FILE_LIST: u"data/humanseg/list/val.txt" | ||
TRAIN_FILE_LIST: u"data/humanseg/list/train.txt" | ||
VAL_FILE_LIST: u"data/humanseg/list/val.txt" | ||
IGNORE_INDEX: 255 | ||
SEPARATOR: "|" | ||
FREEZE: | ||
MODEL_FILENAME: u"model" | ||
PARAMS_FILENAME: u"params" | ||
SAVE_DIR: u"human_freeze_model" | ||
MODEL: | ||
DEFAULT_NORM_TYPE: u"bn" | ||
MODEL_NAME: "deeplabv3p" | ||
DEEPLAB: | ||
BACKBONE: "xception_65" | ||
TEST: | ||
TEST_MODEL: "snapshots/humanseg/aic_v2/final/" | ||
TRAIN: | ||
MODEL_SAVE_DIR: "snapshots/humanseg/aic_v2/" | ||
PRETRAINED_MODEL: u"pretrain/xception65_pretrained/" | ||
RESUME: False | ||
SNAPSHOT_EPOCH: 5 | ||
SOLVER: | ||
LR: 0.1 | ||
NUM_EPOCHS: 40 | ||
LR_POLICY: "poly" | ||
OPTIMIZER: "sgd" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
EVAL_CROP_SIZE: (1536, 576) # (width, height), for unpadding rangescaling and stepscaling | ||
TRAIN_CROP_SIZE: (1536, 576) # (width, height), for unpadding rangescaling and stepscaling | ||
AUG: | ||
AUG_METHOD: u"unpadding" # choice unpadding rangescaling and stepscaling | ||
FIX_RESIZE_SIZE: (1536, 576) # (width, height), for unpadding | ||
INF_RESIZE_VALUE: 1280 # for rangescaling | ||
MAX_RESIZE_VALUE: 1024 # for rangescaling | ||
MIN_RESIZE_VALUE: 1536 # for rangescaling | ||
MAX_SCALE_FACTOR: 2.0 # for stepscaling | ||
MIN_SCALE_FACTOR: 0.5 # for stepscaling | ||
SCALE_STEP_SIZE: 0.25 # for stepscaling | ||
MIRROR: True | ||
RICH_CROP: | ||
ENABLE: False | ||
ASPECT_RATIO: 0.33 | ||
BLUR: True | ||
BLUR_RATIO: 0.1 | ||
FLIP: True | ||
FLIP_RATIO: 0.2 | ||
MAX_ROTATION: 15 | ||
MIN_AREA_RATIO: 0.5 | ||
BRIGHTNESS_JITTER_RATIO: 0.5 | ||
CONTRAST_JITTER_RATIO: 0.5 | ||
SATURATION_JITTER_RATIO: 0.5 | ||
BATCH_SIZE: 1 | ||
MEAN: [127.5, 127.5, 127.5] | ||
STD: [127.5, 127.5, 127.5] | ||
DATASET: | ||
DATA_DIR: "./data/line/L4_lane_mask_dataset_app/L4_360_0_2class/" | ||
IMAGE_TYPE: "rgb" # choice rgb or rgba | ||
NUM_CLASSES: 2 | ||
TEST_FILE_LIST: "data/line/L4_lane_mask_dataset_app/L4_360_0_2class/val.txt" | ||
TRAIN_FILE_LIST: "data/line/L4_lane_mask_dataset_app/L4_360_0_2class/train.txt" | ||
VAL_FILE_LIST: "data/line/L4_lane_mask_dataset_app/L4_360_0_2class/val.txt" | ||
SEPARATOR: " " | ||
IGNORE_INDEX: 255 | ||
FREEZE: | ||
MODEL_FILENAME: "__model__" | ||
PARAMS_FILENAME: "__params__" | ||
SAVE_DIR: "line_freeze_model" | ||
MODEL: | ||
DEFAULT_NORM_TYPE: "bn" | ||
MODEL_NAME: "deeplabv3p" | ||
DEEPLAB: | ||
BACKBONE: "mobilenet" | ||
TEST: | ||
TEST_MODEL: "snapshots/line_v4/final/" | ||
TRAIN: | ||
MODEL_SAVE_DIR: "snapshots/line_v4/" | ||
PRETRAINED_MODEL: u"pretrain/MobileNetV2_pretrained/" | ||
RESUME: False | ||
SNAPSHOT_EPOCH: 10 | ||
SOLVER: | ||
LR: 0.01 | ||
LR_POLICY: "poly" | ||
OPTIMIZER: "sgd" | ||
NUM_EPOCHS: 40 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
TRAIN_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling | ||
EVAL_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling | ||
AUG: | ||
AUG_METHOD: "unpadding" # choice unpadding rangescaling and stepscaling | ||
FIX_RESIZE_SIZE: (512, 512) # (width, height), for unpadding | ||
|
||
INF_RESIZE_VALUE: 500 # for rangescaling | ||
MAX_RESIZE_VALUE: 600 # for rangescaling | ||
MIN_RESIZE_VALUE: 400 # for rangescaling | ||
|
||
MAX_SCALE_FACTOR: 1.25 # for stepscaling | ||
MIN_SCALE_FACTOR: 0.75 # for stepscaling | ||
SCALE_STEP_SIZE: 0.25 # for stepscaling | ||
MIRROR: True | ||
RICH_CROP: | ||
ENABLE: False | ||
ASPECT_RATIO: 0.33 | ||
BLUR: True | ||
BLUR_RATIO: 0.1 | ||
FLIP: True | ||
FLIP_RATIO: 0.2 | ||
MAX_ROTATION: 15 | ||
MIN_AREA_RATIO: 0.5 | ||
BRIGHTNESS_JITTER_RATIO: 0.5 | ||
CONTRAST_JITTER_RATIO: 0.5 | ||
SATURATION_JITTER_RATIO: 0.5 | ||
BATCH_SIZE: 4 | ||
MEAN: [104.008, 116.669, 122.675] | ||
STD: [1.0, 1.0, 1.0] | ||
DATASET: | ||
DATA_DIR: "./dataset/mini_pet/" | ||
IMAGE_TYPE: "rgb" # choice rgb or rgba | ||
NUM_CLASSES: 3 | ||
TEST_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt" | ||
TRAIN_FILE_LIST: "./dataset/mini_pet/file_list/train_list.txt" | ||
VAL_FILE_LIST: "./dataset/mini_pet/file_list/val_list.txt" | ||
VIS_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt" | ||
IGNORE_INDEX: 255 | ||
SEPARATOR: " " | ||
FREEZE: | ||
MODEL_FILENAME: "__model__" | ||
PARAMS_FILENAME: "__params__" | ||
MODEL: | ||
MODEL_NAME: "unet" | ||
DEFAULT_NORM_TYPE: "bn" | ||
TEST: | ||
TEST_MODEL: "./test/saved_model/unet_pet/final/" | ||
TRAIN: | ||
MODEL_SAVE_DIR: "./test/saved_models/unet_pet/" | ||
PRETRAINED_MODEL: "./test/models/unet_coco/" | ||
RESUME: False | ||
SNAPSHOT_EPOCH: 10 | ||
SOLVER: | ||
NUM_EPOCHS: 500 | ||
LR: 0.005 | ||
LR_POLICY: "poly" | ||
OPTIMIZER: "adam" |
Oops, something went wrong.