本文介绍AdaptSegNet的PaddlePaddle实现,该方法将语义分割从合成数据集(如GTA5)适配到真实数据集(如Cityscapes)。给出了复现指标、训练过程,说明数据集下载与目录结构,提供预训练模型链接,还详述了测试和训练的启动方式及相关参数,展示了模型在真实图片上的分割效果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

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).
复现指标及训练过程
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
结果展示
对于如下的真实图片,我们展示经过我们的算法最佳模型的语义分割效果图
数据集
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
微信扫一扫
支付宝扫一扫