飞桨图像分割套件PaddleSeg初探

飞桨图像分割套件PaddleSeg初探

PaddleSeg是基于飞桨PaddlePaddle的端到端图像分割套件,内置45+模型算法及140+预训练模型,支持配置化驱动和API调用开发方式,打通数据标注、模型开发、训练、压缩、部署的全流程,提供语义分割、交互式分割、Matting、全景分割四大分割能力,助力算法在医疗、工业、遥感、娱乐等场景落地应用。

PaddleSeg环境安装

源码安装PaddleSeg

# 从Github下载PaddleSeg代码。

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

下载源码之后编译安装

cd PaddleSeg
pip install -r requirements.txt
pip install -v -e .

也可以

使用pip安装

pip install paddleseg

确认环境安装成功

在PaddleSeg目录下执行如下命令,会进行简单的单卡预测。查看执行输出的log,没有报错,则验证安装成功。

sh tests/install/check_predict.sh

 快速入门

使用眼底分割作为示例进行演示,实际应用中,可以根据自身的业务需求和场景进行相应的调整与适配。数据集可以用自己的,模型也可以选配其它的。

参考:https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.9/docs/whole_process_cn.md

准备数据

本示例将采用视盘分割(optic disc segmentation)数据集进行演示。数据集的原始图像和对应的分割效果图如下所展示。

 使用如下命令下载数据集

mkdir data
cd data
wget https://paddleseg.bj.bcebos.com/dataset/optic_disc_seg.zip
unzip optic_disc_seg.zip
cd ..

准备配置文件


在PaddleSeg中,我们常用配置化驱动的方式来进行开发,配置文件是模型训练、评估、预测和部署的关键所在。

配置文件中详细定义了分割模型、损失函数、训练超参数、训练数据集以及验证数据集等信息。

本示例使用的配置文件位于:PaddleSeg/configs/quick_start/pp_liteseg_optic_disc_512x512_1k.yml

模型训练


在PaddleSeg的根目录下,执行以下命令来启动单机训练。

python tools/train.py \
       --config configs/quick_start/pp_liteseg_optic_disc_512x512_1k.yml \
       --save_interval 500 \
       --do_eval \
       --use_vdl \
       --save_dir output

训练完成后,模型在验证集上的mIoU可能达到90.65%(具体数值可能会有所变动),精度最高的模型权重将保存在PaddleSeg/output/best_model目录下。

模型评估


在PaddleSeg根目录下,执行以下命令,使用val.py脚本来评估模型的精度,即计算验证数据集的精度。

python tools/val.py \  
       --config configs/quick_start/pp_liteseg_optic_disc_512x512_1k.yml \  
       --model_path output/best_model/model.pdparams

模型预测


在PaddleSeg根目录下,执行以下命令,使用predict.py脚本加载训练好的模型,对图像进行预测,并保存预测结果。

python tools/predict.py \  

       --config configs/quick_start/pp_liteseg_optic_disc_512x512_1k.yml \  

       --model_path output/best_model/model.pdparams \  

       --image_path data/optic_disc_seg/JPEGImages/H0002.jpg \  

       --save_dir output/result

预测完成后,可以在PaddleSeg/output/result目录下查看预测结果,具体图像如下所示。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 10:52:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 10:52:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 10:52:01       78 阅读
  4. Python语言-面向对象

    2024-03-15 10:52:01       88 阅读

热门阅读

  1. 【AI生成】军用无人机数据链路抗干扰研究

    2024-03-15 10:52:01       42 阅读
  2. 向内存安全语言迁移的五大挑战

    2024-03-15 10:52:01       44 阅读
  3. react 对Fiber架构的理解?解决了什么问题?

    2024-03-15 10:52:01       45 阅读
  4. 洛谷P5051 [COCI2017-2018#7] Timovi

    2024-03-15 10:52:01       45 阅读
  5. Hibernate的FlushMode类

    2024-03-15 10:52:01       39 阅读
  6. CSS 03

    CSS 03

    2024-03-15 10:52:01      26 阅读
  7. JVM对象创建与内存分配机制分析

    2024-03-15 10:52:01       39 阅读
  8. 开发Flutter项目的时候一般用什么版本?

    2024-03-15 10:52:01       46 阅读
  9. Mac 安装nvm

    2024-03-15 10:52:01       36 阅读
  10. hbase rowkey设计原则

    2024-03-15 10:52:01       35 阅读
  11. macOS 安装使用 python 虚拟机

    2024-03-15 10:52:01       50 阅读
  12. 在Spring Boot中使用Validation进行表单验证

    2024-03-15 10:52:01       43 阅读