English | 简体中文
- [2022-11-30] 🔥 PaddleSeg v2.7 is released! More details in Release Notes.
- Release PP-MattingV2, a real-time human matting model with SOTA performance. Compared to previous models, the mean error is reduced by 17.91%, the inference speed is accelerated by 44.6% on GPU.
- Release MedicalSegV2, a superior 3D medical image segmentation solution, including an intelligent annotation toolkit called EISeg-Med3D, several state-of-the-art models and an optimized nnUNet-D with high performance.
- Release RTFormer, a real-time semantic segmentation model accepted by NeurIPS 2022. RTFormer combines the advantages of CNN and Transformer modules, and it achieves SOTA trade-off between performance and efficiency on several datasets.
- [2022-07-20] PaddleSeg v2.6 released a real-time human segmentation SOTA solution PP-HumanSegV2, a stable-version semi-automatic segmentation annotation EISeg v1.0, a pseudo label pre-training method PSSL and the source code of PP-MattingV1.
- [2022-04-20] PaddleSeg v2.5 released a real-time semantic segmentation model PP-LiteSeg, a trimap-free image matting model PP-MattingV1, and an easy-to-use solution for 3D medical image segmentation MedicalSegV1.
- [2022-01-20] We release PaddleSeg v2.4 with EISeg v0.4, and PP-HumanSegV1 including open-sourced dataset PP-HumanSeg14K.
PaddleSeg is an end-to-end high-efficent development toolkit for image segmentation based on PaddlePaddle, which helps both developers and researchers in the whole process of designing segmentation models, training models, optimizing performance and inference speed, and deploying models. A lot of well-trained models and various real-world applications in both industry and academia help users conveniently build hands-on experiences in image segmentation.
-
High-Performance Model: Following the state of the art segmentation methods and use the high-performance backbone, we provide 40+ models and 140+ high-quality pre-training models, which are better than other open-source implementations.
-
High Efficiency: PaddleSeg provides multi-process asynchronous I/O, multi-card parallel training, evaluation, and other acceleration strategies, combined with the memory optimization function of the PaddlePaddle, which can greatly reduce the training overhead of the segmentation model, all this allowing developers to lower cost and more efficiently train image segmentation model.
-
Modular Design: We desigin PaddleSeg with the modular design philosophy. Therefore, based on actual application scenarios, developers can assemble diversified training configurations with data enhancement strategies, segmentation models, backbone networks, loss functions and other different components to meet different performance and accuracy requirements.
-
Complete Flow: PaddleSeg support image labeling, model designing, model training, model compression and model deployment. With the help of PaddleSeg, developers can easily finish all taskes.
- If you have any questions, suggestions and feature requests, please create an issues in GitHub Issues.
- Welcome to scan the following QR code and join paddleseg wechat group to communicate with us.
Models | Components | Special Cases | |
Semantic SegmentationInteractive SegmentationImage MattingPanoptic Segmentation |
BackbonesLossesMetrics
|
DatasetsData Augmentation
|
Model Selection ToolHuman SegmentationCityscapes SOTA ModelCVPR Champion ModelDomain Adaptation |
High Accuracy Semantic Segmentation Models
These models have good performance and costly inference time, so they are designed for GPU and Jetson devices.
Model | Backbone | Cityscapes mIoU(%) | V100 TRT Inference Speed(FPS) | Config File |
---|---|---|---|---|
FCN | HRNet_W18 | 78.97 | 24.43 | yml |
FCN | HRNet_W48 | 80.70 | 10.16 | yml |
DeepLabV3 | ResNet50_OS8 | 79.90 | 4.56 | yml |
DeepLabV3 | ResNet101_OS8 | 80.85 | 3.2 | yml |
DeepLabV3 | ResNet50_OS8 | 80.36 | 6.58 | yml |
DeepLabV3 | ResNet101_OS8 | 81.10 | 3.94 | yml |
OCRNet 🌟 | HRNet_w18 | 80.67 | 13.26 | yml |
OCRNet | HRNet_w48 | 82.15 | 6.17 | yml |
CCNet | ResNet101_OS8 | 80.95 | 3.24 | yml |
Note that:
- Test the inference speed on Nvidia GPU V100: use PaddleInference Python API, enable TensorRT, the data type is FP32, the dimension of input is 1x3x1024x2048.
Lightweight Semantic Segmentation Models
The segmentation accuracy and inference speed of these models are medium. They can be deployed on GPU, X86 CPU and ARM CPU.
Model | Backbone | Cityscapes mIoU(%) | V100 TRT Inference Speed(FPS) | Snapdragon 855 Inference Speed(FPS) | Config File |
---|---|---|---|---|---|
PP-LiteSeg 🌟 | STDC1 | 77.04 | 69.82 | 17.22 | yml |
PP-LiteSeg 🌟 | STDC2 | 79.04 | 54.53 | 11.75 | yml |
BiSeNetV1 | - | 75.19 | 14.67 | 1.53 | yml |
BiSeNetV2 | - | 73.19 | 61.83 | 13.67 | yml |
STDCSeg | STDC1 | 74.74 | 62.24 | 14.51 | yml |
STDCSeg | STDC2 | 77.60 | 51.15 | 10.95 | yml |
DDRNet_23 | - | 79.85 | 42.64 | 7.68 | yml |
HarDNet | - | 79.03 | 30.3 | 5.44 | yml |
SFNet | ResNet18_OS8 | 78.72 | 10.72 | - | yml |
Note that:
- Test the inference speed on Nvidia GPU V100: use PaddleInference Python API, enable TensorRT, the data type is FP32, the dimension of input is 1x3x1024x2048.
- Test the inference speed on Snapdragon 855: use PaddleLite CPP API, 1 thread, the dimension of input is 1x3x256x256.
Super Lightweight Semantic Segmentation Models
Model | Backbone | Cityscapes mIoU(%) | V100 TRT Inference Speed(FPS) | Snapdragon 855 Inference Speed(FPS) | Config File |
---|---|---|---|---|---|
MobileSeg | MobileNetV2 | 73.94 | 67.57 | 27.01 | yml |
MobileSeg 🌟 | MobileNetV3 | 73.47 | 67.39 | 32.90 | yml |
MobileSeg | Lite_HRNet_18 | 70.75 | 10.5 | 13.05 | yml |
MobileSeg | ShuffleNetV2_x1_0 | 69.46 | 37.09 | 39.61 | yml |
MobileSeg | GhostNet_x1_0 | 71.88 | 35.58 | 38.74 | yml |
Note that:
- Test the inference speed on Nvidia GPU V100: use PaddleInference Python API, enable TensorRT, the data type is FP32, the dimension of input is 1x3x1024x2048.
- Test the inference speed on Snapdragon 855: use PaddleLite CPP API, 1 thread, the dimension of input is 1x3x256x256.
Introductory Tutorials
Basic Tutorials
-
Data Preparation
-
Model Export
-
Model Deploy
Advanced Tutorials
-
Model Compression
Welcome to Contribute
-
Advanced Development
-
Pull Request
- Interactive Segmentation
- Image Matting
- PP-HumanSeg
- 3D Medical Segmentation
- Cityscapes SOTA
- Panoptic Segmentation
- CVPR Champion Solution
- Domain Adaptation
- Using PP-HumanSegV2 for Human Segmentation
- Using PP-HumanSegV1 for Human Segmentation
- Using PP-LiteSeg for Road Segmentation
- Using PaddleSeg for Mini-dataset Spine Segmentation
- Using PaddleSeg for Lane Segmentation
- PaddleSeg in APIs
- Learn Paddleseg in 10 Mins
- Application of Interactive Segmentation Technology in Smart Mapping
- Nail art preview machine based on PaddleSeg
PaddleSeg is released under the Apache 2.0 license.
- Thanks jm12138 for contributing U2-Net.
- Thanks zjhellofss (Fu Shenshen) for contributing Attention U-Net, and Dice Loss.
- Thanks liuguoyu666, geoyee for contributing U-Net++ and U-Net3+.
- Thanks yazheng0307 (LIU Zheng) for contributing quick-start document.
- Thanks CuberrChen for contributing STDC(rethink BiSeNet), PointRend and DetailAggregateLoss.
- Thanks stuartchen1949 for contributing SegNet.
- Thanks justld (Lang Du) for contributing UPerNet, DDRNet, CCNet, ESPNetV2, DMNet, ENCNet, HRNet_W48_Contrast, FastFCN, BiSeNetV1, SECrossEntropyLoss and PixelContrastCrossEntropyLoss.
- Thanks Herman-Hu-saber (Hu Huiming) for contributing ESPNetV2.
- Thanks zhangjin12138 for contributing RandomCenterCrop.
- Thanks simuler for contributing ESPNetV1.
- Thanks ETTR123(Zhang Kai) for contributing ENet, PFPNNet.
If you find our project useful in your research, please consider citing:
@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 Contributors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleSeg}},
year={2019}
}