README.md 5.4 KB
Newer Older
Z
Zeyu Chen 已提交
1
# PaddleSeg 图像分割库
W
wuzewu 已提交
2

W
wuzewu 已提交
3
[![Build Status](https://travis-ci.org/PaddlePaddle/PaddleSeg.svg?branch=master)](https://travis-ci.org/PaddlePaddle/PaddleSeg)
Z
Zeyu Chen 已提交
4
[![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE)
W
wuzewu 已提交
5
[![Version](https://img.shields.io/github/release/PaddlePaddle/PaddleSeg.svg)](https://github.com/PaddlePaddle/PaddleSeg/releases)
Z
Zeyu Chen 已提交
6

W
wuzewu 已提交
7 8 9 10
## 简介

PaddleSeg是基于[PaddlePaddle](https://www.paddlepaddle.org.cn)开发的语义分割库,覆盖了DeepLabv3+, U-Net, ICNet三类主流的分割模型。通过统一的配置,帮助用户更便捷地完成从训练到部署的全流程图像分割应用。

W
wuzewu 已提交
11
PaddleSeg具备高性能、丰富的数据增强、工业级部署、全流程应用的特点:
W
wuzewu 已提交
12 13 14 15


- **丰富的数据增强**

Z
Zeyu Chen 已提交
16
基于百度视觉技术部的实际业务经验,内置10+种数据增强策略,可结合实际业务场景进行定制组合,提升模型泛化能力和鲁棒性。
W
wuzewu 已提交
17

W
wuzewu 已提交
18 19
- **主流模型覆盖**

Z
Zeyu Chen 已提交
20
支持U-Net, DeepLabv3+, ICNet三类主流分割网络,结合预训练模型和可调节的骨干网络,满足不同性能和精度的要求。
W
wuzewu 已提交
21 22 23

- **高性能**

Z
Zeyu Chen 已提交
24
PaddleSeg支持多进程IO、多卡并行、跨卡Batch Norm同步等训练加速策略,结合飞桨核心框架的显存优化功能,可以大幅度减少分割模型的显存开销,更快完成分割模型训练。
W
wuzewu 已提交
25

W
wuzewu 已提交
26 27
- **工业级部署**

Z
Zeyu Chen 已提交
28
基于[Paddle Serving](https://github.com/PaddlePaddle/Serving)和PaddlePaddle高性能预测引擎,结合百度开放的AI能力,轻松搭建人像分割和车道线分割服务。
W
wuzewu 已提交
29

W
wuzewu 已提交
30
</br>
W
wuzewu 已提交
31

W
wuzewu 已提交
32
## 使用教程
W
wuzewu 已提交
33

Z
Zeyu Chen 已提交
34
我们提供了一系列的使用教程,来说明如何使用PaddleSeg完成语义分割模型的训练、评估、部署。
W
wuzewu 已提交
35

Z
Zeyu Chen 已提交
36
这一系列的文档被分为**快速入门****基础功能****预测部署****高级功能**四个部分,四个教程由浅至深地介绍PaddleSeg的设计思路和使用方法。
W
wuzewu 已提交
37

W
wuzewu 已提交
38
### 快速入门
W
wuzewu 已提交
39

W
wuzewu 已提交
40 41
* [安装说明](./docs/installation.md)
* [训练/评估/可视化](./docs/usage.md)
W
wuzewu 已提交
42

W
wuzewu 已提交
43
### 基础功能
W
wuzewu 已提交
44

Z
Zeyu Chen 已提交
45
* [分割模型介绍](./docs/models.md)
W
wuzewu 已提交
46 47 48
* [预训练模型列表](./docs/model_zoo.md)
* [自定义数据的准备与标注](./docs/data_prepare.md)
* [数据和配置校验](./docs/check.md)
Z
Zeyu Chen 已提交
49 50 51
* [如何训练DeepLabv3+](./turtorial/finetune_deeplabv3plus.md)
* [如何训练U-Net](./turtorial/finetune_unet.md)
* [如何训练ICNet](./turtorial/finetune_icnet.md)
W
wuzewu 已提交
52

W
wuzewu 已提交
53
### 预测部署
W
wuzewu 已提交
54

W
wuzewu 已提交
55
* [模型导出](./docs/model_export.md)
Z
Zeyu Chen 已提交
56 57
* [C++预测库使用](./inference)
* [PaddleSeg Serving服务化部署](./serving)
W
wuzewu 已提交
58 59 60 61 62 63 64

### 高级功能

* [PaddleSeg的数据增强](./docs/data_aug.md)
* [特色垂类模型使用](./contrib)

</br>
W
wuzewu 已提交
65 66 67

## FAQ

W
wuzewu 已提交
68 69
#### Q: 安装requirements.txt指定的依赖包时,部分包提示找不到?

Z
Zeyu Chen 已提交
70
A: 可能是pip源的问题,这种情况下建议切换为官方源,或者通过`pip install -r requirements.txt -i `指定其他源地址。
W
wuzewu 已提交
71

Z
Zeyu Chen 已提交
72
#### Q:图像分割的数据增强如何配置,Unpadding, StepScaling, RangeScaling的原理是什么?
W
wuzewu 已提交
73

Z
Zeyu Chen 已提交
74
A: 更详细数据增强文档可以参考[数据增强](./docs/data_aug.md)
W
wuzewu 已提交
75

Z
Zeyu Chen 已提交
76 77
#### Q: 训练时因为某些原因中断了,如何恢复训练?

Z
Zeyu Chen 已提交
78
A: 启动训练脚本时通过命令行覆盖TRAIN.RESUME_MODEL_DIR配置为模型checkpoint目录即可, 以下代码示例第100轮重新恢复训练:
Z
Zeyu Chen 已提交
79 80 81 82
```
python pdseg/train.py --cfg xxx.yaml TRAIN.RESUME_MODEL_DIR /PATH/TO/MODEL_CKPT/100
```

W
wuzewu 已提交
83 84
#### Q: 预测时图片过大,导致显存不足如何处理?

Z
Zeyu Chen 已提交
85
A: 降低Batch size,使用Group Norm策略;请注意训练过程中当`DEFAULT_NORM_TYPE`选择`bn`时,为了Batch Norm计算稳定性,batch size需要满足>=2
W
wuzewu 已提交
86

W
wuzewu 已提交
87
</br>
Z
Zeyu Chen 已提交
88

Z
Zeyu Chen 已提交
89 90 91 92
#### Q: 出现错误 ModuleNotFoundError: No module named 'paddle.fluid.contrib.mixed_precision'

A: 请将PaddlePaddle升级至1.5.2版本或以上。

Z
Zeyu Chen 已提交
93 94
## 在线体验

Z
Zeyu Chen 已提交
95
PaddleSeg在AI Studio平台上提供了在线体验的教程,欢迎体验:
Z
Zeyu Chen 已提交
96 97 98 99 100

|教程|链接|
|-|-|
|U-Net宠物分割|[点击体验](https://aistudio.baidu.com/aistudio/projectDetail/102889)|
|DeepLabv3+图像分割|[点击体验](https://aistudio.baidu.com/aistudio/projectDetail/101696)|
Z
Zeyu Chen 已提交
101
|PaddleSeg特色垂类模型|[点击体验](https://aistudio.baidu.com/aistudio/projectdetail/115541)|
Z
Zeyu Chen 已提交
102

W
wuzewu 已提交
103 104
</br>

Z
Zeyu Chen 已提交
105 106 107
##  交流与反馈
* 欢迎您通过Github Issues来提交问题、报告与建议
* 微信公众号:飞桨PaddlePaddle
W
wuzewu 已提交
108
* QQ群: 796771754 
Z
Zeyu Chen 已提交
109

Z
Zeyu Chen 已提交
110
<p align="center"><img width="200" height="200"  src="https://user-images.githubusercontent.com/45189361/64117959-1969de80-cdc9-11e9-84f7-e1c2849a004c.jpeg"/>&#8194;&#8194;&#8194;&#8194;&#8194;<img width="200" height="200" margin="500" src="./docs/imgs/qq_group2.png"/></p>
Z
Zeyu Chen 已提交
111 112 113 114
<p align="center">  &#8194;&#8194;&#8194;微信公众号&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;&#8194;官方技术交流QQ群</p>

* 论坛: 欢迎大家在[PaddlePaddle论坛](https://ai.baidu.com/forum/topic/list/168)分享在使用PaddlePaddle中遇到的问题和经验, 营造良好的论坛氛围

W
wuzewu 已提交
115 116
## 更新日志

Z
Zeyu Chen 已提交
117
* 2019.09.10
W
wuzewu 已提交
118

W
wuzewu 已提交
119 120
  **`v0.1.0`**
  * PaddleSeg分割库初始版本发布,包含DeepLabv3+, U-Net, ICNet三类分割模型, 其中DeepLabv3+支持Xception, MobileNet两种可调节的骨干网络。
Z
Zeyu Chen 已提交
121
  * CVPR19 LIP人体部件分割比赛冠军预测模型发布[ACE2P](./contrib/ACE2P)
W
wuzewu 已提交
122
  * 预置基于DeepLabv3+网络的[人像分割](./contrib/HumanSeg/)[车道线分割](./contrib/RoadLine)预测模型发布
W
wuzewu 已提交
123

W
wuzewu 已提交
124
</br>
W
wuzewu 已提交
125 126 127 128

## 如何贡献代码

我们非常欢迎您为PaddleSeg贡献代码或者提供使用建议。