# PaddleSeg
**Repository Path**: sml2/PaddleSeg
## Basic Information
- **Project Name**: PaddleSeg
- **Description**: PaddleSeg Matting
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: release/2.6
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2022-07-28
- **Last Updated**: 2024-03-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
简体中文 | [English](README.md)
**飞桨高性能图像分割开发套件,端到端完成从训练到部署的全流程图像分割应用。**
[](LICENSE)
[](https://github.com/PaddlePaddle/PaddleSeg/releases)



##
最新动态
* [2022-07-20] :fire: PaddleSeg 2.6版本发布!详细发版信息请参考[Release Note](https://github.com/PaddlePaddle/PaddleSeg/releases)。
* 发布实时人像分割模型[PP-HumanSeg v2](./contrib/PP-HumanSeg),推理速度提升45.5%,移动端达到64.26 FPS,分割精度更高、通用型更强、零成本开箱即用。
* 发布高性能智能标注工具[EISeg v1.0](./EISeg)正式版,实现一次训练万物可标,加速提升图像、视频、3D医疗影像等领域的分割标注效率。
* 发布120多万张ImageNet分割伪标签数据集,以及预训练方法[PSSL](./configs/pssl),全面提升分割模型在下游任务上的性能。
* 开源[PP-Matting](./Matting)代码和预训练模型,并新增5种传统机器学习抠图方法,无需训练可直接使用。
* 发布产业级语义分割模型,包括高精度、轻量级和超轻量级系列。
* [2022-04-20] PaddleSeg 2.5版本发布超轻量级语义分割模型[PP-LiteSeg](./configs/pp_liteseg),高精度抠图模型PP-Matting,3D医疗影像开发套件[MedicalSeg](./contrib/MedicalSeg),交互式分割工具EISeg v0.5。
* [2022-01-20] PaddleSeg 2.4版本发布交互式分割工具EISeg v0.4,超轻量级人像分割方案PP-HumanSeg,以及大规模视频会议数据集[PP-HumanSeg14K](./contrib/PP-HumanSeg/paper.md#pp-humanseg14k-a-large-scale-teleconferencing-video-dataset)。
##
简介
**PaddleSeg**是基于飞桨PaddlePaddle的端到端图像分割套件,内置**40+模型算法**及**140+预训练模型**,支持**配置化驱动**和**API调用**开发方式,打通数据标注、模型开发、训练、压缩、部署的**全流程**,提供**语义分割、交互式分割、Matting、全景分割**四大分割能力,助力算法在医疗、工业、遥感、娱乐等场景落地应用。
##
特性
* **高精度**:跟踪学术界的前沿分割技术,结合半监督标签知识蒸馏方案([SSLD](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/distillation/distillation.html#ssld))训练的骨干网络,提供40+主流分割网络、140+的高质量预训练模型,效果优于其他开源实现。
* **高性能**:使用多进程异步I/O、多卡并行训练、评估等加速策略,结合飞桨核心框架的显存优化功能,大幅度减少分割模型的训练开销,让开发者更低成本、更高效地完成图像分割训练。
* **模块化**:源于模块化设计思想,解耦数据准备、分割模型、骨干网络、损失函数等不同组件,开发者可以基于实际应用场景出发,组装多样化的配置,满足不同性能和精度的要求。
* **全流程**:打通数据标注、模型开发、模型训练、模型压缩、模型部署全流程,经过业务落地的验证,让开发者完成一站式开发工作。
##
技术交流
* 如果大家有使用问题、产品建议、功能需求, 可以通过[GitHub Issues](https://github.com/PaddlePaddle/PaddleSeg/issues)提issues。
* 欢迎大家扫码加入PaddleSeg微信群,和小伙伴们一起交流学习。
##
产品矩阵
模型
|
组件
|
特色案例
|
语义分割模型
交互式分割模型
图像抠图模型
全景分割
|
骨干网络
损失函数
评估指标
- mIoU
- Accuracy
- Kappa
- Dice
- AUC_ROC
|
支持数据集
数据增强
- Flipping
- Resize
- ResizeByLong
- ResizeByShort
- LimitLong
- ResizeRangeScaling
- ResizeStepScaling
- Normalize
- Padding
- PaddingByAspectRatio
- RandomPaddingCrop
- RandomCenterCrop
- ScalePadding
- RandomNoise
- RandomBlur
- RandomRotation
- RandomScaleAspect
- RandomDistort
- RandomAffine
|
模型选型工具
人像分割模型
3D医疗分割模型
Cityscapes打榜模型
CVPR冠军模型
领域自适应
|
##
产业级分割模型库
高精度语义分割模型
#### 高精度模型,分割mIoU高、推理算量大,适合部署在服务器端GPU和Jetson等设备。
| 模型名称 | 骨干网络 | Cityscapes精度mIoU(%) | V100 TRT推理速度(FPS) | 配置文件 |
|:-------- |:--------:|:---------------------:|:---------------------:|:--------:|
| FCN | HRNet_W18 | 78.97 | 24.43 | [yml](./configs/fcn/) |
| FCN | HRNet_W48 | 80.70 | 10.16 | [yml](./configs/fcn/) |
| DeepLabV3 | ResNet50_OS8 | 79.90 | 4.56 | [yml](./configs/deeplabv3/) |
| DeepLabV3 | ResNet101_OS8 | 80.85 | 3.2 | [yml](./configs/deeplabv3/) |
| DeepLabV3 | ResNet50_OS8 | 80.36 | 6.58 | [yml](./configs/deeplabv3p/) |
| DeepLabV3 | ResNet101_OS8 | 81.10 | *3.94* | [yml](./configs/deeplabv3p/) |
| OCRNet :star2: | HRNet_w18 | 80.67 | 13.26 | [yml](./configs/ocrnet/) |
| OCRNet | HRNet_w48 | 82.15 | 6.17 | [yml](./configs/ocrnet/) |
| CCNet | ResNet101_OS8 | 80.95 | 3.24 | [yml](./configs/ccnet/) |
测试条件:
* V100上测速条件:针对Nvidia GPU V100,使用PaddleInference预测库的Python API,开启TensorRT加速,数据类型是FP32,输入图像维度是1x3x1024x2048。
轻量级语义分割模型
#### 轻量级模型,分割mIoU中等、推理算量中等,可以部署在服务器端GPU、服务器端X86 CPU和移动端ARM CPU。
| 模型名称 | 骨干网络 | Cityscapes精度mIoU(%) | V100 TRT推理速度(FPS) | 骁龙855推理速度(FPS) | 配置文件 |
|:-------- |:--------:|:---------------------:|:---------------------:|:-----------------:|:--------:|
| PP-LiteSeg :star2: | STDC1 | 77.04 | 69.82 | 17.22 | [yml](./configs/pp_liteseg/) |
| PP-LiteSeg :star2: | STDC2 | 79.04 | 54.53 | 11.75 | [yml](./configs/pp_liteseg/) |
| BiSeNetV1 | - | 75.19 | 14.67 | 1.53 |[yml](./configs/bisenetv1/) |
| BiSeNetV2 | - | 73.19 | 61.83 | 13.67 |[yml](./configs/bisenet/) |
| STDCSeg | STDC1 | 74.74 | 62.24 | 14.51 |[yml](./configs/stdcseg/) |
| STDCSeg | STDC2 | 77.60 | 51.15 | 10.95 |[yml](./configs/stdcseg/) |
| DDRNet_23 | - | 79.85 | 42.64 | 7.68 |[yml](./configs/ddrnet/) |
| HarDNet | - | 79.03 | 30.3 | 5.44 |[yml](./configs/hardnet/) |
| SFNet | ResNet18_OS8 | 78.72 | *10.72* | - | [yml](./configs/sfnet/) |
测试条件:
* V100上测速条件:针对Nvidia GPU V100,使用PaddleInference预测库的Python API,开启TensorRT加速,数据类型是FP32,输入图像维度是1x3x1024x2048。
* 骁龙855上测速条件:针对小米9手机,使用PaddleLite预测库的CPP API,ARMV8编译,单线程,输入图像维度是1x3x256x256。
超轻量级语义分割模型
#### 超轻量级模型,分割mIoU一般、推理算量低,适合部署在服务器端X86 CPU和移动端ARM CPU。
| 模型名称 | 骨干网络 | Cityscapes精度mIoU(%) | V100 TRT推理速度(FPS) | 骁龙855推理速度(FPS)| 配置文件 |
|:-------- |:--------:|:---------------------:|:---------------------:|:-----------------:|:--------:|
| MobileSeg | MobileNetV2 | 73.94 | 67.57 | 27.01 | [yml](./configs/mobileseg/) |
| MobileSeg :star2: | MobileNetV3 | 73.47 | 67.39 | 32.90 | [yml](./configs/mobileseg/) |
| MobileSeg | Lite_HRNet_18 | 70.75 | *10.5* | 13.05 | [yml](./configs/mobileseg/) |
| MobileSeg | ShuffleNetV2_x1_0 | 69.46 | *37.09* | 39.61 | [yml](./configs/mobileseg/) |
| MobileSeg | GhostNet_x1_0 | 71.88 | *35.58* | 38.74 | [yml](./configs/mobileseg/) |
测试条件:
* V100上测速条件:针对Nvidia GPU V100,使用PaddleInference预测库的Python API,开启TensorRT加速,数据类型是FP32,输入图像维度是1x3x1024x2048。
* 骁龙855上测速条件:针对小米9手机,使用PaddleLite预测库的CPP API,ARMV8编译,单线程,输入图像维度是1x3x256x256。
##
使用教程
**教程**
* [快速体验](./docs/quick_start_cn.md)
* [20分钟快速上手PaddleSeg](./docs/whole_process_cn.md)
**文档**
* [安装说明](./docs/install_cn.md)
* 准备数据
* [准备公开数据集](./docs/data/pre_data_cn.md)
* [准备自定义数据集](./docs/data/marker/marker_cn.md)
* [EISeg 数据标注](./EISeg/README.md)
* [模型训练](/docs/train/train_cn.md)
* [模型评估](./docs/evaluation/evaluate/evaluate_cn.md)
* [模型预测](./docs/predict/predict_cn.md)
* 模型导出
* [导出预测模型](./docs/model_export_cn.md)
* [导出ONNX模型](./docs/model_export_onnx_cn.md)
* 模型部署
* [Paddle Inference部署(Python)](./docs/deployment/inference/python_inference_cn.md)
* [Paddle Inference部署(C++)](./docs/deployment/inference/cpp_inference_cn.md)
* [Paddle Lite部署](./docs/deployment/lite/lite_cn.md)
* [Paddle Serving部署](./docs/deployment/serving/serving.md)
* [Paddle JS部署](./docs/deployment/web/web_cn.md)
* [推理Benchmark](./docs/deployment/inference/infer_benchmark_cn.md)
* 模型压缩
* [量化](./docs/slim/quant/quant_cn.md)
* [蒸馏](./docs/slim/distill/distill_cn.md)
* [裁剪](./docs/slim/prune/prune_cn.md)
* [常见问题汇总](./docs/faq/faq/faq_cn.md)
**欢迎贡献**
* [API文档](./docs/apis/README_CN.md)
* 二次开发教程
* [配置文件详解](./docs/design/use/use_cn.md)
* [如何创造自己的模型](./docs/design/create/add_new_model_cn.md)
* 模型贡献
* [提交PR说明](./docs/pr/pr/pr_cn.md)
* [模型PR规范](./docs/pr/pr/style_cn.md)
##
实践案例
- [交互式分割](./EISeg)
- [图像抠图](./Matting)
- [人像分割](./contrib/PP-HumanSeg)
- [3D医疗分割](./contrib/MedicalSeg)
- [Cityscapes打榜模型](./contrib/CityscapesSOTA)
- [全景分割](./contrib/PanopticDeepLab)
- [CVPR冠军模型](./contrib/AutoNUE)
- [领域自适应](./contrib/DomainAdaptation)
## AI Studio第三方教程推荐
* [10分钟上手PaddleSeg](https://aistudio.baidu.com/aistudio/projectdetail/1672610?channelType=0&channel=0)
* [PaddleSeg实战之人像分割](https://aistudio.baidu.com/aistudio/projectdetail/2189481?channelType=0&channel=0)
* [PaddleSeg实战之小数据集3D椎骨分割](https://aistudio.baidu.com/aistudio/projectdetail/3878920)
* [PaddleSeg实战之车道线图像分割](https://aistudio.baidu.com/aistudio/projectdetail/1752986?channelType=0&channel=0)
* [PaddleSeg动态图API使用教程](https://aistudio.baidu.com/aistudio/projectdetail/1339458?channelType=0&channel=0)
## 许可证书
本项目的发布受Apache 2.0 license许可认证。
## 社区贡献
- 非常感谢[jm12138](https://github.com/jm12138)贡献U2-Net模型。
- 非常感谢[zjhellofss](https://github.com/zjhellofss)(傅莘莘)贡献Attention U-Net模型,和Dice loss损失函数。
- 非常感谢[liuguoyu666](https://github.com/liguoyu666)贡献U-Net++模型。
- 非常感谢[yazheng0307](https://github.com/yazheng0307) (刘正)贡献快速开始教程文档。
- 非常感谢[CuberrChen](https://github.com/CuberrChen)贡献STDC (rethink BiSeNet) PointRend,和 Detail Aggregate损失函数。
- 非常感谢[stuartchen1949](https://github.com/stuartchen1949)贡献 SegNet。
- 非常感谢[justld](https://github.com/justld)(郎督)贡献 UPerNet, DDRNet, CCNet, ESPNetV2, DMNet, ENCNet, HRNet_W48_Contrast, BiSeNetV1, FastFCN, SECrossEntropyLoss 和PixelContrastCrossEntropyLoss。
- 非常感谢[Herman-Hu-saber](https://github.com/Herman-Hu-saber)(胡慧明)参与贡献 ESPNetV2。
- 非常感谢[zhangjin12138](https://github.com/zhangjin12138)贡献数据增强方法 RandomCenterCrop。
- 非常感谢[simuler](https://github.com/simuler) 贡献 ESPNetV1。
- 非常感谢[ETTR123](https://github.com/ETTR123)(张恺) 贡献 ENet,PFPNNet。
##
学术引用
如果我们的项目在学术上帮助到你,请考虑以下引用:
```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}
}
```