0

0

【PaddleSeg实践范例】使用PP-LiteSeg进行遥感道路分割

P粉084495128

P粉084495128

发布时间:2025-07-17 09:41:24

|

958人浏览过

|

来源于php中文网

原创

本教程介绍使用PP-LiteSeg模型对遥感图像道路进行分割的全流程。先配置含PaddlePaddle(不低于2.0.2)和PaddleSeg的环境,再用DeepGlobe数据集(分训练、验证、测试集),通过指定配置文件训练PP-LiteSeg和OCRNet模型,两者精度相近但前者速度快7倍。还涵盖模型预测、结果可视化及部署相关内容。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【paddleseg实践范例】使用pp-liteseg进行遥感道路分割 - php中文网

1 简介

本教程使用PP-LiteSeg模型对遥感图像中的道路进行分割。

【PaddleSeg实践范例】使用PP-LiteSeg进行遥感道路分割 - php中文网

PP-LiteSeg模型是PaddleSeg团队自研的轻量级语义分割模型,结构如下。

PP-LiteSeg模型的具体介绍请参考链接,欢迎Star收藏,关注最新消息。

下面教程,将带大家完整的跑通模型训练、预测、可视化全流程。

【PaddleSeg实践范例】使用PP-LiteSeg进行遥感道路分割 - php中文网

2 环境准备

请按照以下步骤配置相应的环境。

准备PaddlePaddle

PaddlePaddle版本要求不低于 2.0.2, 本教程在PaddlePaddle 2.2.2下验证通过。

由于图像分割模型计算开销大,推荐安装GPU版本的PaddlePaddle。

如果在AI Studio上运行此项目,请选择使用GPU版本的环境,默认已经安装了PaddlePaddle。

如果在本地运行此项目,需要自行安装PaddlePaddle,详细安装教程请参考PaddlePaddle官网。

准备PaddleSeg

由于本教程使用的演示代码不是PaddleSeg核心功能,所以相关代码没有合入到PaddleSeg。

我们在~/work/目录下存放了PaddleSeg代码和本教程使用到的代码,可以直接解压使用。

In [ ]
%cd ~/work
!rm -rf PaddleSeg
!tar xf PaddleSeg.tar

安装PaddleSeg依赖

执行如下命令,在环境中安装PaddleSeg需要的依赖库。

In [ ]
%cd ~/work/PaddleSeg
!pip install -r requirements.txt

3 数据准备

我们使用DeepGlobe开源数据集作为本教程的演示数据集。

DeepGlobe数据集已经整理成如下格式。

deepglobe
├── readme.md├── test.txt├── train
├── train.txt├── valid
└── val.txt

我们将标注的遥感图片划分为训练集、验证集和测试集。

  • 训练集图片:4980张
  • 验证集图片:622张
  • 测试集图片:624张

train.txt、val.txt、test.txt分别表示训练集、验证集和测试的划分,保存的内容如下。

知了追踪
知了追踪

AI智能信息助手,智能追踪你的兴趣资讯

下载
train/81456_sat.jpg train/81456_mask.pngtrain/814574_sat.jpg train/814574_mask.pngtrain/814591_sat.jpg train/814591_mask.pngtrain/814649_sat.jpg train/814649_mask.png

整理好的Deepglobe数据集已经在~/data目录下,我们进行解压,然后链接到PaddleSeg/data目录下,用于后续训练测试使用。

In [ ]
# 解压数据%cd ~/data/data141168
!tar xf deepglobe.tar# 链接数据!mkdir -p ~/work/PaddleSeg/data
!ln -s ~/data/data141168/deepglobe ~/work/PaddleSeg/data
!ls ~/work/PaddleSeg/data

4 模型训练

配置文件

遥感道路分割的所有配置文件都在PaddleSeg/configs/road_seg/目录下。

PaddleSeg/configs/road_seg
├── deepglobe.yml├── ocrnet_hrnetw18_deepglobe_1024x1024_80k.yml├── pp_liteseg_stdc1_deepglobe_1024x1024_80k.yml└── pp_liteseg_stdc2_deepglobe_1024x1024_80k.yml

其中,deepglobe.yml文件定义了基础信息,比如训练集、测试集、优化器、学习率等。

其他文件定义了模型相关的信息,比如pp_liteseg_stdc1_deepglobe_1024x1024_80k.yml的内容如下。

_base_: './deepglobe.yml'model:
  type: PPLiteSeg
  backbone:    type: STDC1
    pretrained: https://bj.bcebos.com/paddleseg/dygraph/PP_STDCNet1.tar.gz
  arm_out_chs: [32, 64, 128]
  seg_head_inter_chs: [32, 64, 64]

loss:
  types:
    - type: OhemCrossEntropyLoss
      min_kept: 260000
    - type: OhemCrossEntropyLoss
      min_kept: 260000
    - type: OhemCrossEntropyLoss
      min_kept: 260000
  coef: [1, 1, 1]

训练

进入~/work/PaddleSeg目录,后续所有命令都在该目录下执行,结果也保存在该目录下。

在PaddleSeg目录下执行如下命令,开始训练PP-LiteSeg和OCRNet两个模型。 其中,输入参数config为配置文件的路径,如果需要训练其他模型,可以修改为其他配置文件。PaddleSeg完整的训练文档,请参考链接。

训练过程比较久,可以通过log输出查看需要的时间。训练结束后,模型权重保存在output对应的目录下。

注意:默认提供的配置文件是使用4卡进行训练,如果使用单卡训练,需要将学习率减小为1/4、iters增大4倍。

In [ ]
# train pp_liteseg%cd ~/work/PaddleSeg/
!python train.py \
       --config configs/road_seg/pp_liteseg_stdc1_deepglobe_1024x1024_80k.yml \
       --do_eval \
       --num_workers 3 \
       --save_interval 1000 \
       --save_dir output/pp_liteseg_stdc1_deepglobe
In [ ]
# train ocrnet%cd ~/work/PaddleSeg/
!python train.py \
       --config configs/road_seg/ocrnet_hrnetw18_deepglobe_1024x1024_80k.yml \
       --do_eval \
       --num_workers 3 \
       --save_interval 1000 \
       --save_dir output/ocrnet_hrnetw18_deepglobe

完成PP-LiteSeg和OCRNet模型的训练后,精度和速度如下表。

可以看到,PP-LiteSeg和OCRNet模型的精度基本相同,但是PP-LiteSeg的推理速度比OCRNet快了7倍。

模型 Backbone 精度mIoU (%) 推理速度 FPS
PP-LiteSeg STDC1 83.08 207.0
OCRNet HRNet_w18 83.15 26.8

5 模型预测

预测

加载训练好的模型权重,或者使用提供的模型权重,可以对测试集进行测试。

执行如下命令,下载已经训练好的模型权重,对deepglobe的测试集进行预测。

In [ ]
%cd ~/work/PaddleSeg
!mkdir pretrained
%cd pretrained
!wget https://paddleseg.bj.bcebos.com/dygraph/demo/pp_liteseg_stdc1_deepglobe.pdparams
!wget https://paddleseg.bj.bcebos.com/dygraph/demo/ocrnet_hrnetw18_deepglobe.pdparams

%cd ~/work/PaddleSeg
!python  predict.py \
    --config configs/road_seg/pp_liteseg_stdc1_deepglobe_1024x1024_80k.yml \
    --model_path pretrained/pp_liteseg_stdc1_deepglobe.pdparams \
    --image_path data/deepglobe/test.txt \
    --save_dir output/pp_liteseg_stdc1_deepglobe_1024x1024_80k/pred_test

结果可视化

预测执行结束后,在output/pp_liteseg_stdc1_deepglobe_1024x1024_80k/pred_test目录下,可以查看预测结果。

【PaddleSeg实践范例】使用PP-LiteSeg进行遥感道路分割 - php中文网 【PaddleSeg实践范例】使用PP-LiteSeg进行遥感道路分割 - php中文网

6 模型部署

导出预测模型进行部署,可以加载模型的推理速度。

PaddleSeg提供了详细教程,指导进行模型导出和模型部署,具体请参考链接。

请点击此处查看本环境基本用法. 
Please click here for more detailed instructions.

相关专题

更多
java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

5

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

27

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

2

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

3

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

16

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.9万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号