x12901 / PaddleSeg

End-to-end image segmentation kit based on PaddlePaddle.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

English | 简体中文

PaddleSeg

Build Status License Version python version support os

[2020-12-02] PaddleSeg has released the dynamic graph version, which supports PaddlePaddle 2.0rc. For the static graph, we only fix bugs without adding new features. See detailed release notes.

Introduction

PaddleSeg is an end-to-end image segmentation development kit based on PaddlePaddle, which aims to help developers in the whole process of training models, optimizing performance and inference speed, and deploying models. Currently PaddleSeg supports seven efficient segmentation models, including DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN, and OCRNet, which are extensively used in both academia and industry. Enjoy your Seg journey!

demo

Main Features

  • Practical Data Augmentation Techniques

PaddleSeg provides 10+ data augmentation techniques, which are developed from the product-level applications in Baidu. The techniques are able to help developers improve the generalization and robustness ability of their customized models.

  • Modular Design

PaddleSeg supports seven popular segmentation models, including U-Net, DeepLabv3+, ICNet, PSPNet, HRNet, Fast-SCNN, and OCRNet. Combing with different components, such as pre-trained models, adjustable backbone architectures and loss functions, developer can easily build an efficient segmentation model according to their practical performance requirements.

  • High Performance

PaddleSeg supports the efficient acceleration strategies, such as multi-processing I/O operations, and multi-GPUs parallel training. Moreover, integrating GPU memory optimization techniques in the PaddlePaddle framework, PaddleSeg significantly reduces training overhead of the segmentation models, which helps developers complete the segmentation tasks in a high-efficient way.

  • Industry-Level Deployment

PaddleSeg supports the industry-level deployment in both server and mobile devices with the high-performance inference engine and image processing ability, which helps developers achieve the high-performance deployment and integration of segmentation model efficiently. Particularly, using another paddle tool Paddle-Lite, the segmentation models trained in PaddleSeg are able to be deployed on mobile/embedded devices quickly and easily.

  • Rich Practical Cases

PaddleSeg provides rich practical cases in industry, such as human segmentation, mechanical meter segmentation, lane segmentation, remote sensing image segmentation, human parsing, and industry inspection, etc. The practical cases allow developers to get a closer look at the image segmentation area, and get more hand-on experiences on the real practice.

Installation

1. Install PaddlePaddle

System Requirements:

  • PaddlePaddle >= 1.7.0 and < 2.0
  • Python >= 3.5+

Note: the above requirements are for the static graph version. If you intent to use the dynamic one, please refers to here.

Highly recommend you install the GPU version of PaddlePaddle, due to 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

2. Download PaddleSeg

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

3. Install Dependencies

Install the python dependencies via the following commands,and please make sure execute it at least once in your branch.

cd PaddleSeg
pip install -r requirements.txt

Tutorials

For a better understanding of PaddleSeg, we provide comprehensive tutorials to show the whole process of using PaddleSeg on model training, evaluation and deployment. Besides the basic usages of PaddleSeg, the design insights will be also mentioned in the tutorials.

Quick Start

Basic Usages

Inference and Deployment

Advanced features

Online Tutorials

We further provide a few online tutorials in Baidu AI Studio:Get Started, U-Net, DeepLabv3+, Industry Inspection, HumanSeg, More.

Feedbacks and Contact

  • If your question is not answered properly in FAQ or you have an idea on PaddleSeg, please report an issue via Github Issues.
  • PaddleSeg User Group (QQ): 850378321 or 793114768

Contributing

All contributions and suggestions are welcomed. If you want to contribute to PaddleSeg,please summit an issue or create a pull request directly.

About

End-to-end image segmentation kit based on PaddlePaddle.

License:Apache License 2.0


Languages

Language:Python 92.2%Language:C++ 4.0%Language:Java 2.9%Language:CMake 0.9%Language:Shell 0.0%