HRDA

HRDA

突破性多分辨率域适应语义分割方法

HRDA是一种创新的多分辨率训练方法,用于无监督域适应的语义分割。它结合高分辨率裁剪保留细节和低分辨率裁剪捕获长程上下文,同时控制GPU内存占用。HRDA在多个基准测试中显著超越现有方法,并可扩展至域泛化。这种方法为自动驾驶等实际应用中的域适应问题提供新思路,推动了计算机视觉技术在复杂场景下的应用。

HRDA语义分割域适应高分辨率多尺度Github开源项目

HRDA:上下文感知的高分辨率域自适应语义分割

作者:Lukas HoyerDengxin DaiLuc Van Gool

[ECCV22 论文] [扩展论文]

:bell: 新闻:

  • [2024-07-03] 我们很高兴地宣布,我们的工作SemiVL,关于视觉语言引导的半监督语义分割,已被ECCV24接受。
  • [2024-07-03] 我们很高兴地宣布,我们的后续工作DGInStyle,关于用于域泛化语义分割的图像扩散,已被ECCV24接受。
  • [2023-09-26] 我们很高兴地宣布,我们的扩展论文,关于域泛化和晴朗到恶劣天气的UDA,已被PAMI接受。
  • [2023-08-25] 我们很高兴地宣布,我们的后续工作EDAPS,关于全景分割UDA,已被ICCV23接受。
  • [2023-04-27] 我们在扩展论文中进一步将HRDA扩展到域泛化和晴朗到恶劣天气的UDA。
  • [2023-02-28] 我们很高兴地宣布,我们的后续工作MIC,关于上下文增强的UDA,已被CVPR23接受。
  • [2022-07-05] 我们很高兴地宣布HRDA已被ECCV22接受。

概述

**无监督域适应(UDA)**旨在将在合成数据上训练的模型适应到真实世界的数据,而无需对真实世界图像进行昂贵的标注。由于用于语义分割的UDA方法通常需要大量GPU内存,大多数先前的方法仅在缩小尺寸的图像上操作。我们质疑这种设计,因为低分辨率预测常常无法保留精细细节。使用高分辨率图像的随机裁剪进行训练可以缓解这个问题,但在捕捉长距离、域鲁棒的上下文信息方面仍有不足。

因此,我们提出了HRDA,一种用于UDA的多分辨率训练方法,它结合了小型高分辨率裁剪以保留精细分割细节和大型低分辨率裁剪以捕捉长距离上下文依赖的优势,并通过学习的尺度注意力机制来实现,同时保持可控的GPU内存占用。

HRDA概览

HRDA能够适应小物体并保留精细的分割细节。它显著提高了最先进的性能,在GTA→Cityscapes上提高了5.5 mIoU在Synthia→Cityscapes上提高了4.9 mIoU,分别达到了73.8和65.8 mIoU的前所未有的性能。

UDA随时间变化

与之前最先进的UDA方法DAFormer相比,HRDA更详细的域自适应语义分割效果也可以在Cityscapes验证集的示例预测中观察到。

演示

https://user-images.githubusercontent.com/1277888/181128057-27b8039f-a4c9-4f6d-9aa8-9b7f364d8921.mp4

颜色调色板

HRDA可以进一步扩展到域泛化,消除了访问目标图像的需求。在域泛化中,HRDA也显著提高了最先进的性能,提高了4.2 mIoU

有关HRDA的更多信息,请查看我们的[ECCV论文][扩展论文]

如果您在研究中发现HRDA有用,请考虑引用:

@InProceedings{hoyer2022hrda,
  title={{HRDA}: Context-Aware High-Resolution Domain-Adaptive Semantic Segmentation},
  author={Hoyer, Lukas and Dai, Dengxin and Van Gool, Luc},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={372--391},
  year={2022}
}

@Article{hoyer2024domain,
  title={Domain Adaptive and Generalizable Network Architectures and Training Strategies for Semantic Image Segmentation},
  author={Hoyer, Lukas and Dai, Dengxin and Van Gool, Luc},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI)}, 
  year={2024},
  volume={46},
  number={1},
  pages={220-235},
  doi={10.1109/TPAMI.2023.3320613}
}

与最先进UDA的比较

HRDA在多个UDA基准测试上显著优于之前的工作。这包括GTA→Cityscapes和Synthia→Cityscapes的合成到真实适应,以及Cityscapes→ACDC和Cityscapes→DarkZurich的晴朗到恶劣天气适应。

GTA→CS(val)Synthia→CS(val)CS→ACDC(test)CS→DarkZurich(test)
ADVENT [1]45.541.232.729.7
BDL [2]48.5--37.730.8
FDA [3]50.5--45.7--
DACS [4]52.148.3----
ProDA [5]57.555.5----
MGCDA [6]----48.742.5
DANNet [7]----50.045.2
DAFormer (我们的) [8]68.360.955.4*53.8*
HRDA (我们的)73.865.868.0*55.9*

* 我们扩展论文的新结果

参考文献:

  1. Vu等人,"Advent: 语义分割中域适应的对抗熵最小化",CVPR 2019。
  2. Li等人,"语义分割域适应的双向学习",CVPR 2019。
  3. Yang等人,"FDA: 语义分割的傅里叶域适应",CVPR 2020。
  4. Tranheden等人,"DACS: 通过跨域混合采样进行域适应",WACV 2021。
  5. Zhang等人,"用于域自适应语义分割的原型伪标签去噪和目标结构学习",CVPR 2021。
  6. Sakaridis等人,"基于地图引导的课程域适应和不确定性感知评估,用于夜间图像语义分割",TPAMI,2020。
  7. Wu等人,"DANNet: 用于无监督夜间语义分割的一阶段域适应网络",CVPR,2021。
  8. Hoyer等人,"DAFormer: 改进域自适应语义分割的网络架构和训练策略",CVPR,2022。

与最先进域泛化(DG)的比较

HRDA和DAFormer在从GTA到真实街景的域泛化方面显著优于之前的工作。

DG方法CityscapesBDD100KMapillary平均
IBN-Net [1,5]37.3734.2136.8136.13
DRPC [2]42.5338.7238.0539.77
ISW [3,5]37.2033.3635.5735.38
SAN-SAW [4]45.3341.1840.7742.43
SHADE [5]46.6643.6645.5045.27
DAFormer (我们的) [6]52.65*47.89*54.66*51.73*
HRDA (我们的)57.41*49.11*61.16*55.90*

* 我们扩展论文的新结果

参考文献:

  1. Pan等人,"Two at once: Enhancing learning and generalization capacities via IBN-Net",ECCV,2018。
  2. Yue等人,"Domain randomization and pyramid consistency: Simulation-to-real generalization without accessing target domain data",ICCV,2019。
  3. Choi等人,"RobustNet: Improving Domain Generalization in Urban-Scene Segmentation via Instance Selective Whitening",CVPR,2021。
  4. Peng等人,"Semantic-aware domain generalized segmentation",CVPR,2022。
  5. Zhao等人,"Style-Hallucinated Dual Consistency Learning for Domain Generalized Semantic Segmentation",ECCV,2022。
  6. Hoyer等人,"DAFormer: Improving Network Architectures and Training Strategies for Domain-Adaptive Semantic Segmentation",CVPR,2022。

环境设置

本项目使用Python 3.8.5。我们建议设置一个新的虚拟环境:

python -m venv ~/venv/hrda source ~/venv/hrda/bin/activate

在该环境中,可以通过以下命令安装所需依赖:

pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html pip install mmcv-full==1.3.7 # 需要先安装其他包

请从SegFormer提供的OneDrive下载MiT-B5 ImageNet权重,并将其放入pretrained/文件夹。 此外,下载HRDA on GTA→Cityscapes的检查点并解压到work_dirs/文件夹。

数据集设置

Cityscapes: 请从这里下载leftImg8bit_trainvaltest.zip和gt_trainvaltest.zip,并解压到data/cityscapes

GTA: 请从这里下载所有图像和标签包,并解压到data/gta

Synthia (可选): 请从这里下载SYNTHIA-RAND-CITYSCAPES,并解压到data/synthia

ACDC (可选): 请从这里下载rgb_anon_trainvaltest.zip和gt_trainval.zip,并解压到data/acdc。然后,请使用以下命令将文件夹从condition/split/sequence/重组为split/

rsync -a data/acdc/rgb_anon/*/train/*/* data/acdc/rgb_anon/train/ rsync -a data/acdc/rgb_anon/*/val/*/* data/acdc/rgb_anon/val/ rsync -a data/acdc/gt/*/train/*/*_labelTrainIds.png data/acdc/gt/train/ rsync -a data/acdc/gt/*/val/*/*_labelTrainIds.png data/acdc/gt/val/

Dark Zurich (可选): 请从这里下载Dark_Zurich_train_anon.zip和Dark_Zurich_val_anon.zip,并解压到data/dark_zurich

BDD100K (可选): 请从这里下载10K ImagesSegmentation,并解压到data/bdd100k

Mapillary (可选): 请从这里下载mapillary-vistas-dataset_public_v1.2.zip,并解压到data/mapillary

最终的文件夹结构应如下所示:

HRDA ├── ... ├── data │ ├── acdc (可选) │ │ ├── gt │ │ │ ├── train │ │ │ ├── val │ │ ├── rgb_anon │ │ │ ├── train │ │ │ ├── val │ ├── bdd100k (可选) │ │ ├── images/10k/val │ │ ├── labels/sem_seg/masks/val │ ├── cityscapes │ │ ├── leftImg8bit │ │ │ ├── train │ │ │ ├── val │ │ ├── gtFine │ │ │ ├── train │ │ │ ├── val │ ├── dark_zurich (可选) │ │ ├── gt │ │ │ ├── val │ │ ├── rgb_anon │ │ │ ├── train │ │ │ ├── val │ ├── gta │ │ ├── images │ │ ├── labels │ ├── mapillary (可选) │ │ ├── validation/images │ │ ├── validation/labels │ ├── synthia (可选) │ │ ├── RGB │ │ ├── GT │ │ │ ├── LABELS ├── ...

数据预处理: 最后,请运行以下脚本以将标签ID转换为训练ID,并为RCS生成类别索引:

python tools/convert_datasets/gta.py data/gta --nproc 8 python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8 python tools/convert_datasets/synthia.py data/synthia/ --nproc 8 python tools/convert_datasets/mapillary.py data/mapillary/ --nproc 8

测试与预测

可以使用以下命令在Cityscapes验证集上测试提供的GTA→Cityscapes训练的HRDA检查点:

sh test.sh work_dirs/gtaHR2csHR_hrda_246ef

预测结果保存在work_dirs/gtaHR2csHR_hrda_246ef/preds以供检查,模型的mIoU会打印到控制台。提供的检查点应达到73.79 mIoU。请参阅work_dirs/gtaHR2csHR_hrda_246ef/20220215_002056.log末尾以获取更多信息,如各类别的IoU。

如果您想在验证集上可视化HRDA的LR预测、HR预测或尺度注意力,请参阅test.sh以获取更多说明。

训练

为方便起见,我们提供了最终HRDA的带注释配置文件。可以使用以下命令启动训练任务:

python run_experiments.py --config configs/hrda/gtaHR2csHR_hrda.py

日志和检查点存储在work_dirs/中。

对于我们论文中的其他实验,我们使用脚本自动生成和训练配置:

python run_experiments.py --exp <ID>

有关可用实验及其分配的ID的更多信息,请参见experiments.py。生成的配置将存储在configs/generated/中。

评估在Synthia→Cityscapes上训练的模型时,请注意评估脚本计算的是所有19个Cityscapes类别的mIoU。然而,Synthia只包含其中16个类别的标签。因此,在UDA中通常的做法是仅报告这16个类别的Synthia→Cityscapes mIoU。由于缺失的3个类别的IoU为0,您可以使用mIoU16 = mIoU19 * 19 / 16进行转换。 Cityscapes→ACDC和Cityscapes→DarkZurich的结果在目标数据集的测试集上报告。要生成测试集的预测结果,请运行:

python -m tools.test path/to/config_file path/to/checkpoint_file --test-set --format-only --eval-option imgfile_prefix=labelTrainIds to_label_id=False

预测结果可以提交到相应数据集的公开评估服务器以获取测试分数。

域泛化

HRDA/DAFormer用于域泛化(DG)的版本位于DG分支,可以通过以下命令检出:

git checkout dg

可以使用以下命令进行DG训练:

python run_experiments.py --exp 50

更多详细信息,请参阅experiment.py。该模型在训练过程中仅使用GTA数据直接在Cityscapes上进行评估。还可以使用tools/test.py在BDD100K和Mapillary上进行额外评估:

python -m tools.test path/to/config_file path/to/checkpoint_file --eval mIoU --dataset BDD100K python -m tools.test path/to/config_file path/to/checkpoint_file --eval mIoU --dataset Mapillary --eval-option efficient_test=True

检查点

以下我们提供了HRDA在不同基准测试上的检查点。 这些检查点附带了训练日志文件。 由于论文中的结果是三个随机种子的平均值,这里我们提供验证性能中位数的检查点。

检查点附带训练日志。请注意:

  • 日志提供19个类别的mIoU。对于Synthia→Cityscapes,需要将mIoU转换为16个有效类别。请阅读上面关于转换mIoU的部分。
  • 日志提供验证集上的mIoU。对于Cityscapes→ACDC和Cityscapes→DarkZurich,论文中报告的结果是在测试集上计算的。对于DarkZurich,验证集和测试集之间的性能差异显著。请阅读上面关于如何获得测试mIoU的部分。
  • 域泛化(DG)的日志提供Cityscapes上的验证性能。请参考上面的部分在BDD100K和Mapillary上评估检查点。

框架结构

本项目基于mmsegmentation 0.16.0版本。 有关框架结构和配置系统的更多信息,请参阅mmsegmentation文档mmcv文档

HRDA最相关的文件有:

致谢

HRDA基于以下开源项目。我们感谢这些项目的作者公开源代码。

许可证

本项目基于Apache License 2.0发布,但本仓库中的一些特定功能使用其他许可证。如果您将我们的代码用于商业用途,请仔细查看LICENSES.md

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多