AdaptSegNet:学习调整结构化输出空间进行语义分割_副本
基于GTA5数据集进行域适应训练,在Cityscapes的gtFine训练集上进行预测
转载自AI Studio
标题项目链接https://aistudio.baidu.com/aistudio/projectdetail/3056745
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 |
---|---|---|---|
Target | 42.35 | Best | 42.72 |
5000 | 34.29 | 10000 | 37.59 |
15000 | 38.84 | 20000 | 38.5 |
25000 | 39.07 | 30000 | 40.52 |
35000 | 40.22 | 40000 | 39.88 |
45000 | 39.88 | 50000 | 41.47 |
55000 | 41.13 | 60000 | 41.74 |
65000 | 40.98 | 70000 | 42.24 |
75000 | 41.47 | 80000 | 42.23 |
85000 | 42.11 | 90000 | 42.14 |
95000 | 40.72 | 100000 | 41.58 |
105000 | 40.82 | 110000 | 42.72 |
115000 | 40.96 | 120000 | 39.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
预训练模型
注:使用这个方式需要挂载aistudio数据集
构建数据集目录树
import os
os.makedirs('AdaptSegNet-Paddle/data/GTA5',exist_ok=True)
os.makedirs('AdaptSegNet-Paddle/data/Cityscapes', exist_ok=True)
解压数据集到指定目录
数据集分三个:
- GTA5数据集-part1
- GTA5数据集-part2
- Cityscapes-valmini
注意:由于训练集过大,所以需要三次挂载->解压->解除挂载步骤。
# 解压数据集 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
# 解压数据集 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
# 解压数据集 Cityscapes-valmini 解压完之后取消挂载数据集 删除data当中的数据集文件!解除占用空间
# !unzip /home/aistudio/data/data118666/data.zip -d AdaptSegNet-Paddle/data/Cityscapes
进入到工作目录
%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
!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
!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
目录下
!python train_gta2cityscapes_multi.py --checkpoint-dir ./checkpoint/GTA2Cityscapes_multi \
--lambda-seg 0.1 \
--lambda-adv-target1 0.0002 --lambda-adv-target2 0.001
# !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
更多推荐
所有评论(0)