/PaddleSeg

Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, etc.

Primary LanguagePythonApache License 2.0Apache-2.0

English | 简体中文

PaddleSeg

License Version python version support os

PaddleSeg has released the new version including the following features:

  • We published a paper on portrait segmentation named PP-HumanSeg, and release Semantic Connectivity-aware Learning (SCL) framework and a Large-Scale Teleconferencing Video Dataset.
  • We published a paper on interactive segmentation named EdgeFlow, in which the proposed approach achieved SOTA performance on several well-known datasets, and upgraded the interactive annotation tool, EISeg.
  • We released two Matting algorithms, DIM and MODNet, which achieve extremely fine-grained segmentation.
  • We provided advanced features on segmentation model compression, Knowledge Distillation and Model Quantization, which accelerate model inference on multi-devices deployment.

PaddleSeg Introduction

Welcome to PaddleSeg! PaddleSeg is an end-to-end image segmentation development kit developed based on PaddlePaddle, which covers a large number of high-quality segmentation models in different directions such as high-performance and lightweight. With the help of modular design, we provide two application methods: Configuration Drive and API Calling. So one can conveniently complete the entire image segmentation application from training to deployment through configuration calls or API calls.

  • PaddleSeg provides four image segmentation capabilities: semantic segmentation, interactive segmentation, panoptic segmentation and Matting.


  • PaddleSeg is widely used in autonomous driving, medical, quality inspection, inspection, entertainment, and other scenarios.


Core Features

  • High-Performance Model: Based on the high-performance backbone trained by Baidu's self-developed semi-supervised label knowledge distillation scheme (SSLD), combined with the state of the art segmentation technology, we provide 50+ high-quality pre-training models, which are better than other open-source implementations.

  • Modular Design: PaddleSeg support 15+ mainstream segmentation networks, developers can start based on actual application scenarios and assemble diversified training configurations combined with modular design of data enhancement strategies, backbone networks, loss functions and other different components to meet different performance and accuracy requirements.

  • 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.

Technical Communication

  • If you find any problems or have a suggestion with PaddleSeg, please send us issues through GitHub Issues.
  • Welcome to Join PaddleSeg QQ Group

Model Zoo Overview

See Model Zoo Overview for more infomation.

Dataset

  • Cityscapes
  • Pascal VOC
  • ADE20K
  • Pascal Context
  • COCO stuff

Tutorials

Installation

step 1. Install PaddlePaddle

System Requirements:

  • PaddlePaddle >= 2.0.0
  • Python >= 3.6+

Highly recommend you install the GPU version of PaddlePaddle, due to the large overhead of segmentation models, otherwise, it could be out of memory while running the models. For more detailed installation tutorials, please refer to the official website of PaddlePaddle

step 2. Install PaddleSeg

Support to construct a customized segmentation framework with the API Calling method for flexible development.

pip install paddleseg

step 3. Download PaddleSeg Repo

Support to complete the whole process segmentation application with Configuration Drive method, simple and fast.

git clone https://github.com/PaddlePaddle/PaddleSeg

step 4. Verify Installation

Run the following command. If you can train normally, you have installed it successfully.

python train.py --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml

Practical Cases

Feedbacks and Contact

  • The dynamic version is still under development, if you find any issue or have an idea on new features, please don't hesitate to contact us via GitHub Issues.
  • PaddleSeg User Group (QQ): 1004738029 or 850378321 or 793114768

Acknowledgement

  • 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.

Citation

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 Authors},
    howpublished = {\url{https://github.com/PaddlePaddle/PaddleSeg}},
    year={2019}
}