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

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)数据示例
三、准备工作
开始训练前需要克隆仓库,然后准备数据,最后安装依赖注意: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))
登录后复制
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Workbuddy注册额外积分
角色定位与核心任务目标 明确了基本定位后,我们直接切入核心:作为一名专业的文章优化师,我的核心职责在于,将那些带有明显AI生成特征的文本,深度重塑为拥有个人特色与行业洞见的优质内容。 换句话说,这项任务的关键在于实施一次“精准的换血手术”。你必须严格保证原文所有的事实依据、核心观点、逻辑框架,以及每
我把 Anthropic 的 Harness 工程思想做成了一个 Skill
用AI写代码,难在哪儿? 用AI生成代码本身并不难,真正的挑战在于让它稳定地交付一个真正可用的东西。这篇文章,我们就来聊聊Anthropic工程团队是如何破解这个难题的,以及我如何将这套方法论落地成了一个可以复用的实战工具。 用 AI 写代码有多难?不是写不出来难,是让它稳定交付可用的东西很难。这篇
沃尔玛、塔吉特等美国零售巨头拥抱 AI,明确用户需为购物助手出错担责
美国零售巨头拥抱AI新玩法:功能归我,风险归你? 最近有件事挺有意思,美国那边的大型零售商们,正铆足了劲把AI往购物流程里塞。但你猜怎么着?一旦AI捅了娄子,买单的却很可能变成了消费者自己。 这不,就在当地时间4月5号,外媒Futurism的一篇报道就点破了这个现象。企业们一边热火朝天地推广AI功能
小米物流大件“当日达”服务上线 50 城
小米物流大家电“当日达”实现全国50城覆盖,上午11点前下单最快当日送达 对于大家电配送时效长的普遍困扰,小米物流带来了全新的解决方案。最新消息显示,小米旗下大件商品的“当日达”服务范围已成功拓展至全国50座重点城市。除了北京、上海、广州、深圳、杭州、成都等一线与新一线核心城市外,此次升级还囊括了天
为什么现在很多人觉得 OpenClaw 不好用
当前开源版本的定位 你得明白,当前的开源版本,本质上更偏向于一个**开发者工具链**,而非一个即开即用的完整产品。它的核心组件非常明确: 一个基于 Node js 的运行环境 (runtime) 一个网关 (gateway) 插件与技能 (plugins skills) JSON 配置文件 命令
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

