/PaddleSeg

A high performance semantic segmentation toolkit based on PaddlePaddle. (『飞桨』图像分割库)

Primary LanguagePythonApache License 2.0Apache-2.0

PaddleSeg 图像分割库

Build Status License Version

简介

PaddleSeg是基于PaddlePaddle开发的语义分割库,覆盖了DeepLabv3+, U-Net, ICNet三类主流的分割模型。通过统一的配置,帮助用户更便捷地完成从训练到部署的全流程图像分割应用。

PaddleSeg具备高性能、丰富的数据增强、工业级部署、全流程应用的特点:

  • 丰富的数据增强

基于百度视觉技术部的实际业务经验,内置10+种数据增强策略,可结合实际业务场景进行定制组合,提升模型泛化能力和鲁棒性。

  • 模块化设计

支持U-Net, DeepLabv3+, ICNet, PSPNet四种主流分割网络,结合预训练模型和可调节的骨干网络,满足不同性能和精度的要求;选择不同的损失函数如Dice Loss, BCE Loss等方式可以强化小目标和不均衡样本场景下的分割精度。

  • 高性能

PaddleSeg支持多进程IO、多卡并行、跨卡Batch Norm同步等训练加速策略,结合飞桨核心框架的显存优化功能,可以大幅度减少分割模型的显存开销,更快完成分割模型训练。

  • 工业级部署

基于Paddle Serving和PaddlePaddle高性能预测引擎,结合百度开放的AI能力,轻松搭建人像分割和车道线分割服务。


环境依赖

  • PaddlePaddle >= 1.6.1
  • Python 2.7 or 3.5+

通过以下命令安装python包依赖,请确保在该分支上至少执行过一次以下命令

$ pip install -r requirements.txt

其他如CUDA版本、cuDNN版本等兼容信息请查看PaddlePaddle安装


使用教程

我们提供了一系列的使用教程,来说明如何使用PaddleSeg完成语义分割模型的训练、评估、部署。

这一系列的文档被分为快速入门基础功能预测部署高级功能四个部分,四个教程由浅至深地介绍PaddleSeg的设计思路和使用方法。

快速入门

基础功能

预测部署

高级功能


FAQ

Q: 安装requirements.txt指定的依赖包时,部分包提示找不到?

A: 可能是pip源的问题,这种情况下建议切换为官方源,或者通过pip install -r requirements.txt -i 指定其他源地址。

Q:图像分割的数据增强如何配置,Unpadding, StepScaling, RangeScaling的原理是什么?

A: 更详细数据增强文档可以参考数据增强

Q: 训练时因为某些原因中断了,如何恢复训练?

A: 启动训练脚本时通过命令行覆盖TRAIN.RESUME_MODEL_DIR配置为模型checkpoint目录即可, 以下代码示例第100轮重新恢复训练:

python pdseg/train.py --cfg xxx.yaml TRAIN.RESUME_MODEL_DIR /PATH/TO/MODEL_CKPT/100

Q: 预测时图片过大,导致显存不足如何处理?

A: 降低Batch size,使用Group Norm策略;请注意训练过程中当DEFAULT_NORM_TYPE选择bn时,为了Batch Norm计算稳定性,batch size需要满足>=2


Q: 出现错误 ModuleNotFoundError: No module named 'paddle.fluid.contrib.mixed_precision'

A: 请将PaddlePaddle升级至1.5.2版本或以上。

在线体验

PaddleSeg在AI Studio平台上提供了在线体验的教程,欢迎体验:

教程 链接
U-Net宠物分割 点击体验
DeepLabv3+图像分割 点击体验
PaddleSeg特色垂类模型 点击体验

交流与反馈

  • 欢迎您通过Github Issues来提交问题、报告与建议
  • 微信公众号:飞桨PaddlePaddle
  • QQ群: 796771754

     

   微信公众号                官方技术交流QQ群

更新日志

  • 2019.11.04

    v0.2.0

  • 2019.09.10

    v0.1.0

    • PaddleSeg分割库初始版本发布,包含DeepLabv3+, U-Net, ICNet三类分割模型, 其中DeepLabv3+支持Xception, MobileNet v2两种可调节的骨干网络。
    • CVPR19 LIP人体部件分割比赛冠军预测模型发布ACE2P
    • 预置基于DeepLabv3+网络的人像分割车道线分割预测模型发布

如何贡献代码

我们非常欢迎您为PaddleSeg贡献代码或者提供使用建议。