去噪视觉 Transformer
杨佳伟1*† · Katie Z Luo2* · 李杰峰3 · 邓聪越4
Leonidas Guibas4 · Dilip Krishnan5 · Kilian Q. Weinberger2
田永龙5 · 王跃1
1南加州大学 2康奈尔大学
3上海交通大学 4斯坦福大学
5谷歌研究院
†项目负责人 *技术贡献相同
已被 ECCV 2024 接收
摘要
本工作提出了去噪视觉 Transformer (DVT)。它消除了 ViT 特征图中常见的视觉上令人不快的伪影,并显著提高了密集识别任务的下游性能。
引用
@article{yang2024denoising,
author = {Yang, Jiawei and Luo, Katie Z and Li, Jiefeng and Deng, Congyue and Guibas, Leonidas J. and Krishnan, Dilip and Weinberger, Kilian Q and Tian, Yonglong and Wang, Yue},
title = {DVT: Denoising Vision Transformers},
journal = {arXiv preprint arXiv:2401.02957},
year = {2024},
}
此 README 文件和代码库为旧版。我们将尽快更新。
安装
- 创建一个 conda 环境。
conda create -n dvt python=3.10 -y
- 激活环境。
conda activate dvt
- 从 requirements.txt 安装依赖项。
pip install -r requirements.txt
- 手动安装
tiny-cuda-nn
:
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
如果遇到错误 nvcc fatal : Unsupported gpu architecture compute_89
,请尝试以下命令:
TCNN_CUDA_ARCHITECTURES=86 pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
如果遇到 error: parameter packs not expanded with '...'
错误,请参考 GitHub 上的这个解决方案。
数据准备
- PASCAL-VOC 2007 和 2012:
请下载 PASCAL VOC07 和 PASCAL VOC12 数据集(链接)并将数据放在
data
文件夹中,例如:
mkdir -p data
cd data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
tar -xf VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
tar -xf VOCtrainval_11-May-2012.tar
在我们论文中报告的实验中,我们使用了 data/voc_train.txt
中的前 10,000 个示例进行第一阶段去噪。这个文本文件是通过收集 data/VOC2007/JPEGImages
和 data/VOC2012/JPEGImages
中的所有 JPG 图像,排除验证图像,然后随机打乱生成的。
-
ADE20K:[旧版,需要检查] 请下载 ADE20K 数据集 并将数据放在
data/ADEChallengeData2016
中。 -
NYU-D: 请下载 NYU-depth 数据集 并将数据放在
data/nyu
中。结果是基于 2014 年注释提供的,遵循先前的工作。 -
ImageNet(可选):
- 从 http://www.image-net.org/ 下载 ImageNet 数据集
- 按照这里的说明提取数据。
- 将数据放在
data/imagenet
中。
运行代码
查看 sample_scripts
获取运行代码的示例。
我们在demo/demo_outputs中提供了一些演示输出。例如,这张图像展示了我们对一张猫咪图片的去噪结果:
从左到右,我们展示了:(1)输入裁剪,(2)原始DINOv2 base输出,(3)原始输出的K均值聚类,(4)原始输出的L2特征范数,(5)原始输出中中心块与其他块之间的相似度,(6)我们的去噪输出,(7)去噪输出的K均值聚类,(8)去噪输出的L2特征范数,(9)去噪输出中中心块与其他块之间的相似度,(10)分解出的共享伪影,(11)共享伪影的L2范数,(12)真实残差误差,(13)预测的残差项,以及(14)共享伪影和预测残差项的组合。
主要结果和检查点
VOC评估结果
mIoU | aAcc | mAcc | 日志文件 | |
---|---|---|---|---|
MAE | 50.24 | 88.02 | 63.15 | 日志 |
MAE + DVT | 50.53 | 88.06 | 63.29 | 日志 |
DINO | 63.00 | 91.38 | 76.35 | 日志 |
DINO + DVT | 66.22 | 92.41 | 78.14 | 日志 |
Registers | 83.64 | 96.31 | 90.67 | 日志 |
Registers + DVT | 84.50 | 96.56 | 91.45 | 日志 |
DeiT3 | 70.62 | 92.69 | 81.23 | 日志 |
DeiT3 + DVT | 73.36 | 93.34 | 83.74 | 日志 |
EVA | 71.52 | 92.76 | 82.95 | 日志 |
EVA + DVT | 73.15 | 93.43 | 83.55 | 日志 |
CLIP | 77.78 | 94.74 | 86.57 | 日志 |
CLIP + DVT | 79.01 | 95.13 | 87.48 | 日志 |
DINOv2 | 83.60 | 96.30 | 90.82 | 日志 |
DINOv2 + DVT | 84.84 | 96.67 | 91.70 | 日志 |
ADE20K评估结果
mIoU | aAcc | mAcc | 日志文件 | |
---|---|---|---|---|
MAE | 23.60 | 68.54 | 31.49 | 日志 |
MAE + DVT | 23.62 | 68.58 | 31.25 | 日志 |
DINO | 31.03 | 73.56 | 40.33 | 日志 |
DINO + DVT | 32.40 | 74.53 | 42.01 | 日志 |
Registers | 48.22 | 81.11 | 60.52 | 日志 |
Registers + DVT | 49.34 | 81.94 | 61.70 | 日志 |
DeiT3 | 32.73 | 72.61 | 42.81 | 日志 |
DeiT3 + DVT | 36.57 | 74.44 | 49.01 | 日志 |
EVA | 37.45 | 72.78 | 49.74 | 日志 |
EVA + DVT | 37.87 | 75.02 | 49.81 | 日志 |
CLIP | 40.51 | 76.44 | 52.47 | 日志 |
CLIP + DVT | 41.10 | 77.41 | 53.07 | 日志 |
DINOv2 | 47.29 | 80.84 | 59.18 | 日志 |
DINOv2 + DVT | 48.66 | 81.89 | 60.24 | 日志 |
NYU-D 评估结果
RMSE | 相对误差 | 日志文件 | |
---|---|---|---|
MAE | 0.6695 | 0.2334 | 日志 |
MAE + DVT | 0.7080 | 0.2560 | 日志 |
DINO | 0.5832 | 0.1701 | 日志 |
DINO + DVT | 0.5780 | 0.1731 | 日志 |
Registers | 0.3969 | 0.1190 | 日志 |
Registers + DVT | 0.3880 | 0.1157 | 日志 |
DeiT3 | 0.588 | 0.1788 | 日志 |
DeiT3 + DVT | 0.5891 | 0.1802 | 日志 |
EVA | 0.6446 | 0.1989 | 日志 |
EVA + DVT | 0.6243 | 0.1964 | 日志 |
CLIP | 0.5598 | 0.1679 | 日志 |
CLIP + DVT | 0.5591 | 0.1667 | 日志 |
DINOv2 | 0.4034 | 0.1238 | 日志 |
DINOv2 + DVT | 0.3943 | 0.1200 | 日志 |
降噪器检查点
[ ] 即将发布。