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》论文就是介绍了这种方法,该论文使用语义约束进行三维点云的重建,精度提高的同时速度也变快了

    Pebblely
    Pebblely

    AI产品图精美背景添加

    下载
  • 本项目利用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))

相关专题

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

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

403

2023.08.14

Java编译相关教程合集
Java编译相关教程合集

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

11

2026.01.21

C++多线程相关合集
C++多线程相关合集

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

4

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

16

2026.01.21

Python多线程合集
Python多线程合集

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

1

2026.01.21

java多线程相关教程合集
java多线程相关教程合集

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

3

2026.01.21

windows激活码分享 windows一键激活教程指南
windows激活码分享 windows一键激活教程指南

Windows 10/11一键激活可以通过PowerShell脚本或KMS工具实现永久或长期激活。最推荐的简便方法是打开PowerShell(管理员),运行 irm https://get.activated.win | iex 脚本,按提示选择数字激活(选项1)。其他方法包括使用HEU KMS Activator工具进行智能激活。

2

2026.01.21

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

6

2026.01.21

毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm
毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm

毒蘑菇VOLUMESHADER_BM测试网站网址为https://toolwa.com/vsbm/,该平台基于WebGL技术通过渲染高复杂度三维分形图形评估设备图形处理能力,用户可通过拖动彩色物体观察画面流畅度判断GPU与CPU协同性能;测试兼容多种设备,但中低端手机易卡顿或崩溃,高端机型可能因发热降频影响表现,桌面端需启用独立显卡并使用支持WebGL的主流浏览器以确保准确结果

23

2026.01.21

热门下载

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

精品课程

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

共4课时 | 11.1万人学习

Django 教程
Django 教程

共28课时 | 3.3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

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

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