转载自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)meanIOUiterations/(Batch_size=2)meanIOU
Target42.35Best42.72
500034.291000037.59
1500038.842000038.5
2500039.073000040.52
3500040.224000039.88
4500039.885000041.47
5500041.136000041.74
6500040.987000042.24
7500041.478000042.23
8500042.119000042.14
9500040.7210000041.58
10500040.8211000042.72
11500040.9612000039.86

Quantitative Reuslts

图片2

结果展示

对于如下的真实图片,我们展示经过我们的算法最佳模型的语义分割效果图

数据集

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.txtval.txtlabel.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数据集

构建数据集目录树

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

解压数据集到指定目录

数据集分三个:

  1. GTA5数据集-part1
  2. GTA5数据集-part2
  3. 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

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐