0

0

PaddleSeg:使用Transformer模型对航空遥感图像分割

P粉084495128

P粉084495128

发布时间:2025-07-17 10:30:54

|

825人浏览过

|

来源于php中文网

原创

本项目借助PaddleSeg模块训练Transformer类的Segformer_b3语义分割模型,为航空遥感图像特征点匹配提供语义约束以提升三维重建精度。使用UDD6数据集,经裁剪处理后训练,40000次迭代耗时12小时,mIOU达74.50%,较原论文DeepLabV3+高1.32%。模型可对指定图像预测,结果存于指定文件夹,能助力提升SfM三维重建精度与速度。

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

paddleseg:使用transformer模型对航空遥感图像分割 - php中文网

PaddleSeg:使用Transfomer模型对航空遥感图像分割,给特征点匹配提供语义约束

一、项目背景

  • SfM(Structure from motion) 是一种三维重建的方法,用于从motion中实现3D重建。也就是从时间系列的2D图像中推算3D信息。但SfM算法受传统特征检测方法精度的限制,尤其是在复杂场景中

  • 语义分割领域发展迅速,现在可以达到比较高的mIOU,可以考虑使用语义分割模型提取待匹配图像的语义信息,给特征点匹配提供语义约束,提高最后三维重建的精度

  • 《Large-Scale Structure from Motion with Semantic Constraints of Aerial Images》论文就是介绍了这种方法,该论文使用语义约束进行三维点云的重建,精度提高的同时速度也变快了

    Convai Technologies Inc.
    Convai Technologies Inc.

    对话式 AI API,用于设计游戏和支持端到端的语音交互

    下载
  • 本项目利用PaddleSeg模块训练Transfomer类的语义分割模型,在UDD数据集中mIOU达到74.50% ,原论文使用DeepLabV3+的mIOU为73.18%,高1.32%

二、数据集介绍

  • UDD数据集是北京大学图形与交互实验室采集并标注的,面向航拍场景理解、重建的数据集。

Benchmark

dataset model OA mIoU size
UDD5 GCN 88.57% 73.17% 302M
UDD5 ENet 88.14% 71.38% 5.5M
UDD6 GCN 86.54% 72.58% 302M
UDD6 ENet 85.20% 69.44% 5.5M
UDD6 DeepLab V3+ 86.90% 73.18% 721M
  • 该数据集包含以下类别:
    • UDD6 (Released on 28 Jun 2020)
Class Gt Label RGB
Other 0 (0,0,0)
Facade 1 (102,102,156)
Road 2 (128,64,128)
Vegetation 3 (107,142,35)
Vehicle 4 (0,0,142)
Roof 5 (70,70,70)
  • 数据示例PaddleSeg:使用Transformer模型对航空遥感图像分割 - php中文网

三、准备工作

  • 开始训练前需要克隆仓库,然后准备数据,最后安装依赖
  • 注意:UDD6,图像大小为 (4096, 2160) 所以训练之前先进行crop处理成(1024, 1024)小块的图像以减少IO的占用
In [4]
# clone PaddleSeg的项目!git clone https://gitee.com/paddlepaddle/PaddleSeg
正克隆到 'PaddleSeg'...
remote: Enumerating objects: 16439, done.
remote: Counting objects: 100% (1402/1402), done.
remote: Compressing objects: 100% (811/811), done.
remote: Total 16439 (delta 710), reused 1166 (delta 573), pack-reused 15037
接收对象中: 100% (16439/16439), 341.09 MiB | 4.75 MiB/s, 完成.
处理 delta 中: 100% (10574/10574), 完成.
检查连接... 完成。
In [1]
#解压数据集,有两个数据集,本项目使用UDD6!mkdir work/UDD6
!unzip -oq data/data75675/UDD6.zip -d work/UDD6/
In [2]
# 对数据进行crop,具体细节可查看process_data.py的代码%cd work/
!python process_data.py --tag val #处理验证集!python process_data.py --tag train #处理训练集
/home/aistudio/work
mkdir UDD6/val_sub ...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 35/35, 6.0 task/s, elapsed: 6s, ETA:     0sAll processes done.
mkdir UDD6/val_labels_sub ...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 35/35, 25.0 task/s, elapsed: 1s, ETA:     0sAll processes done.
mkdir UDD6/train_sub ...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 106/106, 6.0 task/s, elapsed: 18s, ETA:     0sAll processes done.
mkdir UDD6/train_labels_sub ...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 106/106, 26.4 task/s, elapsed: 4s, ETA:     0sAll processes done.
In [ ]
# 安装依赖%cd /home/aistudio/PaddleSeg
!pip install  -r requirements.txt
In [ ]
# 训练数据集txt生成!python tools/split_dataset_list.py \
        ../work/UDD6 train_sub train_labels_sub \
        --split 1.0 0.0 0.0 \
        --format JPG png \
        --label_class Other Facade Road Vegetation Vehicle Roof
In [8]
!mv ../work/UDD6/train.txt ../work/UDD6/train_true.txt # 修改文件名
In [ ]
# 验证数据集txt生成!python tools/split_dataset_list.py \
        ../work/UDD6 val_sub val_labels_sub \
        --split 0.0 1.0 0.0 \
        --format JPG png \
        --label_class Other Facade Road Vegetation Vehicle Roof
In [10]
!rm ../work/UDD6/train.txt #删除第二次运行生成的train.txt!mv ../work/UDD6/train_true.txt ../work/UDD6/train.txt # 将文件名改回来

四、模型训练与预测

  • 使用的模型为Transfomer系列的Segformer_b3
  • 训练40000次迭代,共12个小时
In [25]
# 新建.yml文件,然后将以下信息写入#!touch configs/segformer_b3_UDD.yml# 也可以直接复制准备好的文件放入该文件夹下!cp ../work/segformer_b3_UDD.yml configs/
  • 在文件中插入以下信息
batch_size: 2iters: 40000train_dataset:
  type: Dataset
  dataset_root: ../work/UDD6/
  train_path: ../work/UDD6/train.txt
  num_classes: 6
  transforms:
    - type: ResizeStepScaling
      min_scale_factor: 0.5
      max_scale_factor: 2.0
      scale_step_size: 0.25
    - type: RandomPaddingCrop
      crop_size: [1024, 1024]    - type: RandomHorizontalFlip
    - type: RandomDistort
      brightness_range: 0.4
      contrast_range: 0.4
      saturation_range: 0.4
    - type: Normalize
  mode: trainval_dataset:
  type: Dataset
  dataset_root: ../work/UDD6/
  val_path: ../work/UDD6/val.txt
  num_classes: 6
  transforms:
    - type: Normalize
  mode: valmodel:
  type: SegFormer_B3
  num_classes: 6
  pretrained: https://bj.bcebos.com/paddleseg/dygraph/mix_vision_transformer_b3.tar.gzoptimizer:
    type: sgdlr_scheduler:
  type: PolynomialDecay
  learning_rate: 0.001
  power: 0.9loss:
  types:
    - type: CrossEntropyLoss
  coef: [1]
In [ ]
# 开始训练,模型权重保存在output文件夹中,output/best_model 文件夹中为性能最好的模型!export CUDA_VISIBLE_DEVICES=0 # 设置1张可用的卡# windows下请执行以下命令# set CUDA_VISIBLE_DEVICES=0!python train.py \
       --config configs/segformer_b3_UDD.yml \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output
  • 模型预测
    • 整体结果:Acc:87.46%,mIOU:74.50%
    • 每一类别结果:IOU:[0.8912 0.7263 0.6874 0.6746 0.8854 0.6053], Acc:[0.944 0.8343 0.8223 0.807 0.9314 0.7634]
In [ ]
!python val.py \
       --config configs/segformer_b3_UDD.yml \
       --model_path output/best_model/model.pdparams \
代码解释

五、快速使用

  • 已经将性能最好的模型以及.yml文件放在work文件夹下
  • 运行以下命令可对指定的文件夹下的图像进行预测
  • 本项目以work/val文件夹下的图像作为待预测的图像,预测结果保存在work/val/result文件夹中
In [12]
!mv ../work/UDD6/val ../work/
In [ ]
!python predict.py \
       --config ../work/segformer_b3_UDD.yml \
       --model_path ../work/best_model/model.pdparams \
       --image_path ../work/val/src \
       --save_dir ../work/val/result \
       --is_slide \
       --crop_size 1024 1024 \
       --stride 512 512
In [16]
# 展示预测的结果import matplotlib.pyplot as pltfrom PIL import Image

output = Image.open(r"../work/val/result/added_prediction/000061.JPG")

plt.figure(figsize=(20,24))#设置窗口大小plt.imshow(output), plt.axis('off')
(, (-0.5, 4095.5, 2159.5, -0.5))

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

400

2023.08.14

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

61

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

31

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

71

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

20

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

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

7

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

4

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

49

2026.01.13

热门下载

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

精品课程

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

共4课时 | 0.7万人学习

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号