首页 游戏 软件 资讯 排行榜 专题
首页
AI
PaddleSeg:使用Transformer模型对航空遥感图像分割

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

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

paddleseg:使用transformer模型对航空遥感图像分割 - 游乐网

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

一、项目背景

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

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

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

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

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

二、数据集介绍

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

Benchmark

该数据集包含以下类别:UDD6 (Released on 28 Jun 2020)数据示例PaddleSeg:使用Transformer模型对航空遥感图像分割 - 游乐网

三、准备工作

开始训练前需要克隆仓库,然后准备数据,最后安装依赖注意: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/workmkdir 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 Imageoutput = 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))
登录后复制
登录后复制
来源:https://www.php.cn/faq/1411365.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

openclaw在飞书测试报错access not configured.
AI
openclaw在飞书测试报错access not configured.

常见报错解析:“Access Not Configured”故障排除指南 许多开发者和团队成员在使用OpenClaw集成飞书时,都曾遭遇过一个典型的中断提示:“access not configured”(访问未配置)。该提示会明确显示您的飞书账户ID及一组唯一的配对验证码,并指出需要联系机器人所有

热心网友
04.02
OpenClaw 常用指令速查
AI
OpenClaw 常用指令速查

OpenClaw 常用指令大全与使用详解 openclaw status:此命令是查看OpenClaw系统整体健康状态的核心指令,执行后即获取服务运行状况的全面报告,是日常运维的首要诊断工具。 openclaw gateway restart:在修改网关配置后,必须运行此指令以重启网关服务,使配置文

热心网友
04.02
OpenClaw 操控浏览器
AI
OpenClaw 操控浏览器

如何通过 OpenClaw 实现 Chrome 浏览器自动化操控 在软件开发与自动化测试领域,持续学习是常态。本文旨在详细介绍如何利用 OpenClaw 连接并控制一个已开启的 Chrome 浏览器实例,实现点击、文本输入、文件上传、页面滚动、屏幕截图以及执行 JavaScript 等自动化操作。整

热心网友
04.01
# OpenClaw QQ 机器人接入完整指南
AI
# OpenClaw QQ 机器人接入完整指南

项目概述 你是否希望将强大的 AI 助手带入日常聊天?本教程将指导你完成搭建流程,让你能在 QQ 上直接调用 OpenClaw 智能助手,实现无门槛的 AI 对话体验。 架构说明 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ QQ 用户 │ ─

热心网友
04.01
OpenClaw 保姆级 window部署
AI
OpenClaw 保姆级 window部署

一 下载并安装Node js,全程保持默认设置 首先,请前往Node js官方网站的下载中心:https: nodejs org zh-cn download。根据您的操作系统(Windows Mac Linux)下载对应的安装程序。运行安装向导时,整个过程非常简单,您只需连续点击“下一步”按钮

热心网友
04.01

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

OPPO A6k 手机上市:天玑 6300 + LCD 直屏 + 7000mAh 电池,定价 1999 元起
科技数码
OPPO A6k 手机上市:天玑 6300 + LCD 直屏 + 7000mAh 电池,定价 1999 元起

OPPO A6k手机重磅发布:天玑6300处理器、高清LCD直屏、7000mAh超大电池,售价仅1999元起 OPPO旗下广受欢迎的A系列再添实力新机。近日,备受期待的OPPO A6k正式上市发售。这款新品搭载了备受好评的天玑6300八核处理器,并配备了一块容量高达7000mAh的耐用长寿电池,成为

热心网友
04.06
《红色沙漠》熔化锁链的火焰任务攻略-支线任务完成方法详解
游戏攻略
《红色沙漠》熔化锁链的火焰任务攻略-支线任务完成方法详解

速览 在《红色沙漠》的广阔世界中,数量丰富的支线任务与主线剧情共同构筑了沉浸式的冒险体验。其中,“熔化锁链的火焰”任务作为瑟金斯家族剧情线的关键环节,其触发机制与主线进程紧密相连。任务并非随时可用,玩家需将主线故事推进到特定阶段后,任务才会自动添加至任务日志。本篇攻略将为你详解此支线任务的接取条件与

热心网友
04.06
《异种航员2》运动机制详解-战术移动与时间单位消耗
游戏攻略
《异种航员2》运动机制详解-战术移动与时间单位消耗

《异种航员2》运动机制深度解析 在《异种航员2》(Xenonauts 2)的策略战斗中,对“时间单位”(TU)的高效运用是取胜的核心。每个士兵的移动、射击乃至战术配合,都依赖于玩家对TU的精确规划。操作上手简单:选中单位后,直接使用鼠标左键点击目的地方格,系统便会清晰显示移动所需消耗的时间单位,帮助

热心网友
04.06
《异种航员2》封面机制详解-掩体闪避效果介绍
游戏攻略
《异种航员2》封面机制详解-掩体闪避效果介绍

速览 在《异种航员2》(Xenonauts 2)的战局中,掌握“战术规避”与精通“火力输出”同等关键。游戏全新设计的掩体系统,是提升你作战小队生存几率的战略性核心。简言之,战场上绝大多数可见的物体都能转化为你的战术屏障。无论是散落的木箱、残缺的矮墙,还是茂密的灌木丛与坚实的建筑物,巧妙地利用它们,就

热心网友
04.06
《红色沙漠》超凡建造物任务攻略-任务流程详解
游戏攻略
《红色沙漠》超凡建造物任务攻略-任务流程详解

速览 在开放世界大作《红色沙漠》中,庞大的支线任务系统为玩家提供了丰富的探索体验。其中,“超凡建造物”任务是阿方索家族势力任务线中的重要一环。要成功接取此任务,玩家必须首先完成其前置任务【枪械名门】。在此之后,任务的下一步关键操作是前往游戏中标注的特定建筑地点进行互动调查——这本质上是一个用于快速移

热心网友
04.06