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

PaddleSeg:使用Transfomer模型对航空遥感图像分割,给特征点匹配提供语义约束
一、项目背景
SfM(Structure from motion) 是一种三维重建的方法,用于从motion中实现3D重建。也就是从时间系列的2D图像中推算3D信息。但SfM算法受传统特征检测方法精度的限制,尤其是在复杂场景中
语义分割领域发展迅速,现在可以达到比较高的mIOU,可以考虑使用语义分割模型提取待匹配图像的语义信息,给特征点匹配提供语义约束,提高最后三维重建的精度
《Large-Scale Structure from Motion with Semantic Constraints of Aerial Images》论文就是介绍了这种方法,该论文使用语义约束进行三维点云的重建,精度提高的同时速度也变快了
美图云修
商业级AI影像处理工具
50
查看详情
本项目利用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 2025)
| 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) |
- 数据示例
三、准备工作
- 开始训练前需要克隆仓库,然后准备数据,最后安装依赖
- 注意:UDD6,图像大小为 (4096, 2160) 所以训练之前先进行crop处理成(1024, 1024)小块的图像以减少IO的占用
# 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.txtIn [ ]
# 训练数据集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/UDD
6 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个小时
# 新建.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 \
--s*e_interval 500 \
--s*e_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]
!python val.py \
--config configs/segformer_b3_UDD.yml \
--model_path output/best_model/model.pdparams \
代码解释
五、快速使用
- 已经将性能最好的模型以及.yml文件放在work文件夹下
- 运行以下命令可对指定的文件夹下的图像进行预测
- 本项目以work/val文件夹下的图像作为待预测的图像,预测结果保存在work/val/result文件夹中
!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 \
--s*e_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')(<matplotlib.image.AxesImage at 0x7f2bdae02710>, (-0.5, 4095.5, 2159.5, -0.5))
<Figure size 1440x1728 with 1 Axes>
以上就是PaddleSeg:使用Transformer模型对航空遥感图像分割的详细内容,更多请关注其它相关文章!
# 可对
# 燃灯教育seo
# 天津手动网站建设配置
# 兰州站内优化网站
# 江西seo技巧有哪些企业
# 在线网络营销推广创新
# 京东品牌营销推广
# 宣化seo整站排名
# 拜城网站产品推广靠谱吗
# 江西拼多多网站建设公司
# 如何建设商业网站
# 北京大学
# 是一种
# 是在
# 迭代
# 官网
# python
# 最好的
# 中文网
# 美图
# 一言
# type
# fig
# udio
# deepl
# igs
# red
# ai
# cad
# windows
# git
相关栏目:
【
行业资讯67740 】
【
技术百科0 】
【
网络运营39195 】
相关推荐:
为什么夸克无法注销账户
春运抢票可以抢几张
苹果16如何预购
单片机蓝牙怎么开启设备
如何区别固态硬盘
怎么更新typescript
typescript怎么添加css样式
一帧是多少秒
市盈率中的19a是什么意思
单片机怎么进行排序操作
单片机是怎么计时的
win7旗舰版wifi怎么打开
typescript 如何解决 null
如何知道固态硬盘
苹果16粉色还有哪些机型
typescript的语法格式是什么
如何winpe cmd命令
固态硬盘如何检查
液位传感器power是什么意思
固态硬盘电脑如何设置
楔子是什么意思
苹果16会升级哪些
如何使用net命令
360n6锁屏壁纸怎么设置
nfc功能是什么意思怎么开启
mac如何使用vi命令
固态硬盘如何区分好坏
typescript中范围如何设定
夸克网盘是什么都有吗
xdm是什么意思
vue中datediff函数怎么用
如何把一个命令后台运行
苹果16有哪些黑科技
win10电脑如何使用命令提示符
春运抢票多久可以买到票
税负是什么意思
16苹果有哪些机型
市盈率300是什么意思
域名批量查询工具有哪些
电脑显示屏上power是什么意思
如何固态硬盘4k对齐
商誉是什么意思
typescript入门要多久
360f4怎么取消百变壁纸
12306放票时间规律(2025)
m*en repository的作用是什么
夸克搜题的原理是什么
没基础做单片机怎么样
vi命令如何退出编辑模式
rxjs和typescript什么意思


2025-07-17
浏览次数:次
返回列表
6 val_sub val_labels_sub \
--split 0.0 1.0 0.0 \
--format JPG png \
--label_class Other Facade Road Vegetation Vehicle Roof