作者:Lukas Hoyer、Dengxin Dai和Luc Van Gool
:bell: 新闻:
**无监督域适应(UDA)**旨在将在合成数据上训练的模型适应到真实世界的数据,而无需对真实世界图像进行昂贵的标注。由于用于语义分割的UDA方法通常需要大量GPU 内存,大多数先前的方法仅在缩小尺寸的图像上操作。我们质疑这种设计,因为低分辨率预测常常无法保留精细细节。使用高分辨率图像的随机裁剪进行训练可以缓解这个问题,但在捕捉长距离、域鲁棒的上下文信息方面仍有不足。
因此,我们提出了HRDA,一种用于UDA的多分辨率训练方法,它结合了小型高分辨率裁剪以保留精细分割细节和大型低分辨率裁剪以捕捉长距离上下文依赖的优势,并通过学习的尺度注意力机制来实现,同时保持可控的GPU内存占用。

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

与之前最先进的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}
}
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.5 | 41.2 | 32.7 | 29.7 |
| BDL [2] | 48.5 | -- | 37.7 | 30.8 |
| FDA [3] | 50.5 | -- | 45.7 | -- |
| DACS [4] | 52.1 | 48.3 | -- | -- |
| ProDA [5] | 57.5 | 55.5 | -- | -- |
| MGCDA [6] | -- | -- | 48.7 | 42.5 |
| DANNet [7] | -- | -- | 50.0 | 45.2 |
| DAFormer (我们的) [8] | 68.3 | 60.9 | 55.4* | 53.8* |
| HRDA (我们的) | 73.8 | 65.8 | 68.0* | 55.9* |
* 我们扩展论文的新结果
参考文献:
HRDA和DAFormer在从GTA到真实街景的域泛化方面显著优于之前的工作。
| DG方法 | Cityscapes | BDD100K | Mapillary | 平均 |
|---|---|---|---|---|
| IBN-Net [1,5] | 37.37 | 34.21 | 36.81 | 36.13 |
| DRPC [2] | 42.53 | 38.72 | 38.05 | 39.77 |
| ISW [3,5] | 37.20 | 33.36 | 35.57 | 35.38 |
| SAN-SAW [4] | 45.33 | 41.18 | 40.77 | 42.43 |
| SHADE [5] | 46.66 | 43.66 | 45.50 | 45.27 |
| DAFormer (我们的) [6] | 52.65* | 47.89* | 54.66* | 51.73* |
| HRDA (我们的) | 57.41* | 49.11* | 61.16* | 55.90* |
* 我们扩展论文的新结果
参考文献:
本项目使用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 Images和Segmentation,并解压到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在不同基准测试上的检查点。 这些检查点附带了训练日志文件。 由于论文中的结果是三个随机种子的平均值,这里我们提供验证性能中位数的检查点。
检查点附带训练日志。请注意:
本项目基于mmsegmentation 0.16.0版本。 有关框架结构和配置系统的更多信息,请参阅mmsegmentation文档和mmcv文档。
HRDA最相关的文件有:
HRDA基于以下开源项目。我们感谢这些项目的作者公开源代码。
本项目基于Apache License 2.0发布,但本仓库中的一些特定功能使用其他许可证。如果您将我们的代码用于商业用途,请仔细查看LICENSES.md。


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


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


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自 适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一 站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号