AdaptSegNet:学习调整结构化输出空间进行语义分割

本文介绍AdaptSegNet的PaddlePaddle实现,该方法将语义分割从合成数据集(如GTA5)适配到真实数据集(如Cityscapes)。给出了复现指标、训练过程,说明数据集下载与目录结构,提供预训练模型链接,还详述了测试和训练的启动方式及相关参数,展示了模型在真实图片上的分割效果。

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

adaptsegnet:学习调整结构化输出空间进行语义分割 - 创想鸟

AdaptSegNet:学习调整结构化输出空间进行语义分割

英文名:Learning to Adapt Structured Output Space for Semantic Segmentation

将语义分割从合成数据集(源域)调整到真实数据集(目标域)的方法的PaddlePaddle实现。

Paper

Learning to Adapt Structured Output Space for Semantic Segmentation
Yi-Hsuan Tsai*, Wei-Chih Hung*, Samuel Schulter, Kihyuk Sohn, Ming-Hsuan Yang and Manmohan Chandraker
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018 (spotlight) (* indicates equal contribution).

复现指标及训练过程

iterations/(Batch_size=2) meanIOU iterations/(Batch_size=2) meanIOU

Target42.35Best42.72500034.291000037.591500038.842000038.52500039.073000040.523500040.224000039.884500039.885000041.475500041.136000041.746500040.987000042.247500041.478000042.238500042.119000042.149500040.7210000041.5810500040.8211000042.7211500040.9612000039.86

Quantitative Reuslts

AdaptSegNet:学习调整结构化输出空间进行语义分割 - 创想鸟        

结果展示

对于如下的真实图片,我们展示经过我们的算法最佳模型的语义分割效果图AdaptSegNet:学习调整结构化输出空间进行语义分割 - 创想鸟        

数据集

1.官网下载

下载源域数据集 -GTA5数据集GTA5 Dataset 。放置在 data/GTA5 文件夹下下载目标域数据集-城市景观数据集 Cityscapes Dataset ,放置在 data/Cityscapes 文件夹下

注意:

(1)GTA5数据集需要全部下载并且解压至同一个文件下,可通过这个repo当中所提供的unzips.py脚本进行数据集的批量解压

(2)下载Cityscapes数据集包括gtFine和leftimg8bit两个数据集,但是仅用到gtFine的验证集部分的灰度图和在leftimg8bit中对应验证集的原始照片和训练照片, 可以通过这个repo当中所提供的copy_by_txt.py脚本进行数据集的制作。详细使用图片可通过dataset/cityscapes_list当中train.txt、val.txt、label.txt文件进行查看

2. 通过aistudio开源数据集获取数据集

(1)GTA5数据集-part1

(2)GTA5数据集-part2

(3)Cityscapes-valmini

3.数据集结构目录

data╠═══Citycapes║   ╚═══data║       ╠═══gtFine║       ║   ╠═══test  ║       ║   ╠═══train  ║       ║   ╚═══val  ║       ╚═══leftimg8bit  ║           ╠═══test  ║           ╠═══train  ║           ╚═══val  ╚═══GTA5      ╠═══images      ╚═══labels

   

预训练模型

原始预训练模型链接,可用于模型从头开始训练。已训练Best模型链接,可用于作为继续训练的预训练模型和持续训练每隔5000iteration的模型链接,可用于测试每个阶段的模型效果

注:使用这个方式需要挂载aistudio数据集

构建数据集目录树

In [1]

import osos.makedirs('AdaptSegNet-Paddle/data/GTA5',exist_ok=True)os.makedirs('AdaptSegNet-Paddle/data/Cityscapes', exist_ok=True)

   

解压数据集到指定目录

数据集分三个:

GTA5数据集-part1GTA5数据集-part2Cityscapes-valmini

注意:由于训练集过大,所以需要三次挂载->解压->解除挂载步骤。

In [ ]

# 解压数据集 GTA5数据集-part1 解压完之后取消挂载数据集 删除data当中的数据集文件!解除占用空间# !unzip /home/aistudio/data/data106349/01_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/02_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/03_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/04_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/05_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/01_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/02_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/03_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/04_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106349/05_images.zip -d AdaptSegNet-Paddle/data/GTA5

   In [ ]

# 解压数据集 GTA5数据集-part2 解压完之后取消挂载数据集 删除data当中的数据集文件!解除占用空间# !unzip /home/aistudio/data/data106372/06_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/07_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/08_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/09_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/10_labels.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/06_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/07_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/08_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/09_images.zip -d AdaptSegNet-Paddle/data/GTA5# !unzip /home/aistudio/data/data106372/10_images.zip -d AdaptSegNet-Paddle/data/GTA5

   In [ ]

# 解压数据集 Cityscapes-valmini 解压完之后取消挂载数据集 删除data当中的数据集文件!解除占用空间# !unzip /home/aistudio/data/data118666/data.zip -d AdaptSegNet-Paddle/data/Cityscapes

   

进入到工作目录

In [6]

%cd AdaptSegNet-Paddle/

       

/home/aistudio/AdaptSegNet-Paddle

       

测试启动

挂载已有的训练模型AdaptSegNet-ModelAndLog下载测试模型(可选Best模型、各阶段模型、中途训练模型 )并且放置在model路径下使用以下代码测试模型,并且模型将会保存在result文件夹下(restore-from:模型文件路径)

python evaluate_cityscapes.py --restore-from '../data/data119256/GTA5_Best.pdparams

   In [ ]

!python evaluate_cityscapes.py --restore-from '../data/data119256/GTA5_Best.pdparams'

   如果您想单独对已生成的result结果计算iou,可使用例如以下代码。(thanks to the code from VisDA Challenge)

python compute_iou.py ./data/Cityscapes/data/gtFine/val result/cityscapes

   In [ ]

!python compute_iou.py ./data/Cityscapes/data/gtFine/val result/cityscapes

   

训练启动

重新训练GTA5-to-Cityscapes模型 (multi-level)

python train_gta2cityscapes_multi.py --checkpoint-dir ./checkpoint/GTA2Cityscapes_multi                                      --lambda-seg 0.1                                      --lambda-adv-target1 0.0002 --lambda-adv-target2 0.001

       继续训练GTA5-to-Cityscapes模型 (multi-level)

python train_gta2cityscapes_multi.py --checkpoint-dir ./checkpoint/GTA2Cityscapes_multi                                      --lambda-seg 0.1                                      --lambda-adv-target1 0.0002 --lambda-adv-target2 0.001                                      --start-iter latest                                      --continue-train

       重点参数解释

重点参数 含义

checkpoint-dir模型结果及日志保存位置continue-train是否启用持续学习策略(触发有效)start-iter持续学习开始的iter数,默认为latest,即从上次保存点开始,启动持续学习时有效

注意: 训练日志存放在checkpoint-dir目录下

In [ ]

!python train_gta2cityscapes_multi.py --checkpoint-dir ./checkpoint/GTA2Cityscapes_multi                                      --lambda-seg 0.1                                      --lambda-adv-target1 0.0002 --lambda-adv-target2 0.001

   In [ ]

# !python train_gta2cityscapes_multi.py --checkpoint-dir ./checkpoint/GTA2Cityscapes_multi #                                      --lambda-seg 0.1 #                                      --lambda-adv-target1 0.0002 --lambda-adv-target2 0.001 #                                      --start-iter latest #                                      --continue-train

   

以上就是AdaptSegNet:学习调整结构化输出空间进行语义分割的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/52310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Debian swapper如何进行性能调优
上一篇 2025年11月9日 03:40:46
抖音网页版如何发表评论_抖音网页版视频评论互动教学
下一篇 2025年11月9日 03:40:50

相关推荐

发表回复

登录后才能评论
关注微信