# PaddleSeg
**Repository Path**: zhaohjie/PaddleSeg
## Basic Information
- **Project Name**: PaddleSeg
- **Description**: End-to-End Image Segmentation Suite Based on PaddlePaddle. (『飞桨』图像分割开发套件)
- **Primary Language**: Python
- **License**: Apache-2.0
- **Default Branch**: zhaohj
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 100
- **Created**: 2021-06-07
- **Last Updated**: 2021-06-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
简体中文 | [English](README.md)
# PaddleSeg
[](https://travis-ci.org/PaddlePaddle/PaddleSeg)
[](LICENSE)
[](https://github.com/PaddlePaddle/PaddleSeg/releases)


*[2021-02-26] PaddleSeg发布2.0动态图正式版。静态图已经被移至[legacy](./legacy)子目录下。更多信息请查看详细[更新日志](./docs/release_notes_cn.md)。*

PaddleSeg是基于飞桨[PaddlePaddle](https://www.paddlepaddle.org.cn)开发的端到端图像分割开发套件,涵盖了**高精度**和**轻量级**等不同方向的大量高质量分割模型。通过模块化的设计,提供了**配置化驱动**和**API调用**两种应用方式,帮助开发者更便捷地完成从训练到部署的全流程图像分割应用。
## 特性
* **高精度模型**:基于百度自研的[半监督标签知识蒸馏方案(SSLD)](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/distillation/distillation.html#ssld)训练得到高精度骨干网络,结合前沿的分割技术,提供了50+的高质量预训练模型,效果优于其他开源实现。
* **模块化设计**:支持15+主流 *分割网络* ,结合模块化设计的 *数据增强策略* 、*骨干网络*、*损失函数* 等不同组件,开发者可以基于实际应用场景出发,组装多样化的训练配置,满足不同性能和精度的要求。
* **高性能**:支持多进程异步I/O、多卡并行训练、评估等加速策略,结合飞桨核心框架的显存优化功能,可大幅度减少分割模型的训练开销,让开发者更低成本、更高效地完成图像分割训练。
## 模型库
|模型\骨干网络|ResNet50|ResNet101|HRNetw18|HRNetw48|
|-|-|-|-|-|
|[ANN](./configs/ann)|✔|✔|||
|[BiSeNetv2](./configs/bisenet)|-|-|-|-|
|[DANet](./configs/danet)|✔|✔|||
|[Deeplabv3](./configs/deeplabv3)|✔|✔|||
|[Deeplabv3P](./configs/deeplabv3p)|✔|✔|||
|[Fast-SCNN](./configs/fastscnn)|-|-|-|-|
|[FCN](./configs/fcn)|||✔|✔|
|[GCNet](./configs/gcnet)|✔|✔|||
|[GSCNN](./configs/gscnn)|✔|✔|||
|[HarDNet](./configs/hardnet)|-|-|-|-|
|[OCRNet](./configs/ocrnet/)|||✔|✔|
|[PSPNet](./configs/pspnet)|✔|✔|||
|[U-Net](./configs/unet)|-|-|-|-|
|[U2-Net](./configs/u2net)|-|-|-|-|
|[Att U-Net](./configs/attention_unet)|-|-|-|-|
|[U-Net++](./configs/unet_plusplus)|-|-|-|-|
|[U-Net3+](./configs/unet_3plus)|-|-|-|-|
|[DecoupledSegNet](./configs/decoupled_segnet)|✔|✔|||
|[EMANet](./configs/emanet)|✔|✔|-|-|
|[ISANet](./configs/isanet)|✔|✔|-|-|
|[DNLNet](./configs/dnlnet)|✔|✔|-|-|
|[SFNet](./configs/sfnet)|✔|-|-|-|
|[ShuffleNetV2](./configs/shufflenetv2)|-|-|-|-|
## 数据集
- [x] Cityscapes
- [x] Pascal VOC
- [x] ADE20K
- [x] Pascal Context
- [x] COCO stuff
## 安装
#### 1. 安装PaddlePaddle
版本要求
* PaddlePaddle >= 2.0.0
* Python >= 3.6+
由于图像分割模型计算开销大,推荐在GPU版本的PaddlePaddle下使用PaddleSeg。推荐安装10.0以上的CUDA环境。安装教程请见[PaddlePaddle官网](https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/)。
#### 2. 安装PaddleSeg
支持用**API调用**的方式构建定制化的分割框架,灵活开发。
```shell
pip install paddleseg
```
#### 3. 下载PaddleSeg仓库
支持用**配置化驱动**的方式完成全流程分割应用,简单快捷。
```shell
git clone https://github.com/PaddlePaddle/PaddleSeg
```
#### 4. 验证安装
运行以下命令,如果可以正常进行训练,说明您已经安装成功。
```shell
python train.py --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml
```
## 使用教程
* [快速入门](./docs/quick_start.md)
* [API使用教程](https://aistudio.baidu.com/aistudio/projectdetail/1339458)
* [数据集准备](./docs/data_prepare.md)
* [配置项](./configs/)
* [Loss使用](./docs/loss_usage.md)
* [API参考](./docs/apis)
* [添加新组件](./docs/add_new_model.md)
* [模型压缩](./slim)
* [模型导出](./docs/model_export.md)
## 实践案例
* [人像分割HumanSeg](./contrib/HumanSeg)
* [Cityscapes SOTA](./contrib/CityscapesSOTA)
## 联系我们
* 如果你发现任何PaddleSeg存在的问题或者是建议, 欢迎通过[GitHub Issues](https://github.com/PaddlePaddle/PaddleSeg/issues)给我们提issues。
* 同时欢迎加入PaddleSeg技术交流群:1004738029 (QQ群3) 或者 850378321(QQ群1已满)或者793114768(QQ群2已满)。
## 代码贡献
* 非常感谢[jm12138](https://github.com/jm12138)贡献U2-Net模型。
* 非常感谢[zjhellofss](https://github.com/zjhellofss)(傅莘莘)贡献Attention U-Net模型,和Dice loss损失函数。
* 非常感谢[liuguoyu666](https://github.com/liguoyu666),[geoyee](https://github.com/geoyee)贡献U-Net++和U-Net3+模型。
* 非常感谢[yazheng0307](https://github.com/yazheng0307) (刘正)贡献快速入门文档。
## 学术引用
如果我们的项目在学术上帮助到你,请考虑以下引用:
```latex
@misc{liu2021paddleseg,
title={PaddleSeg: A High-Efficient Development Toolkit for Image Segmentation},
author={Yi Liu and Lutao Chu and Guowei Chen and Zewu Wu and Zeyu Chen and Baohua Lai and Yuying Hao},
year={2021},
eprint={2101.06175},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{paddleseg2019,
title={PaddleSeg, End-to-end image segmentation kit based on PaddlePaddle},
author={PaddlePaddle Authors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleSeg}},
year={2019}
}
```