cvlab-kaist/GARD

Official implementation of "GARD: Geometry-Aware Representation Denoising for Robust Multi-view 3D Reconstruction"

Python

53

3 commits

updated Sep 28, 2026

See the code

README

GARD: Geometry-Aware Representation Denoising for
Robust Multi-view 3D Reconstruction

Jin Hyeon Kim1*,   Jaeeun Lee1*,   Claire Kim1,   Kyoungjin Oh1,   Paul Hyunbin Cho1,   Jaewon Min1,   Yeji Choi1,  
Jihye Park2,   Hyunhee Park2,   Minkyu Park2,   Seungryong Kim1†

1 KAIST AI · 2 Samsung Electronics

* Equal contribution. † Corresponding author.

🔈 News

  • 📄 [2026-05-25] GARD paper released in arxiv
  • 🔥 [2026-08-16] Initial release of the training/inferece code, data, and model weights
  • 🎉 [2026-09-29] GARD is accepted to NeurIPS 2026!

🚀 Overview

Feed-forward multi-view 3D reconstruction models perform well under clean, ideal imaging conditions, but degrade sharply on real-world captures corrupted by motion blur, noise, and other artifacts. GARD (Geometry-Aware Representation Denoising) addresses this by performing diffusion-based multi-view restoration directly in the feature space of a feed-forward 3D reconstruction model (Depth Anything 3), rather than restoring pixels first and reconstructing geometry afterward. By denoising geometry-aware feature representations, GARD recovers accurate scene geometry from degraded multi-view inputs; an accompanying RGB decoder then reconstructs high-quality images from the same denoised representations, enabling the simultaneous recovery of 3D scene geometry and high-quality imagery in a single restoration pass.

This repository provides:

  • The GARD denoiser implementation (src/gard/GARD.py) and its pretrained checkpoints
  • Training code and recipes on Hypersim + TartanAir with synthesized multi-view degradations
  • Evaluation code on DA3-BENCH (paired with our own synthesized degradations) and on real-world camera motion blur scenes from DeblurNeRF

👟 Installation Walkthrough

# clone the GARD repo 
git clone https://github.com/cvlab-kaist/GARD.git

# Move inside the GARD repo 
cd GARD/

# Set up the environment using uv 
uv sync 

# Activate the uv environment
source .venv/bin/activate

🚀 Inference

🎯 Checkpoint preparation

Download the GARD checkpoints from HuggingFace into ckpts/:

bash download_scripts/gard_ckpt/download_ckpts.sh
FileDescriptionSize
ckpts/gard_denoiser.ptGARD denoiser (DiT with a DDT head) that denoises DA3 feature representations5.6G
ckpts/mae_adapter_giant.ptRGB decoder that reconstructs high-quality images from the denoised representations2.0G

📁 Evaluation data preparation

GARD is evaluated on DA3-BENCH (7-Scenes, DTU, DTU64, ETH3D, HiRoom, ScanNet++) paired with our own synthesized degradations, and on the real-world camera motion blur scenes from DeblurNeRF. The clean DA3-BENCH images are re-downloaded from their official source (please review and comply with each dataset's original license); our synthesized degraded counterpart of DA3-BENCH and a mirror of the DeblurNeRF real captures (the original Google Drive folder download is unreliable at this file count) are hosted on our own HuggingFace dataset.

# downloads the clean + degraded DA3-BENCH images and the real camera motion blur scenes into data/eval/
bash download_scripts/eval_bench/download_eval_data.sh

🏃 Running Evaluation

# evaluate on DA3-BENCH (pose / depth / unposed reconstruction)
bash run_scripts/val/val_GARD_da3_bench.sh

# evaluate on the real-world camera motion blur scenes
bash run_scripts/val/val_GARD_real_bench.sh

Results are written to result_val/GARD_da3_bench/ and result_val/GARD_real_bench/ respectively.

🔥 Training

📁 Training data preparation

# download hypersim
bash download_scripts/hypersim/download_hypersim.sh

# download tartanair 
bash download_scripts/tartanair_tools/download_tartanair.sh

🛠️ Training Recipe

bash run_scripts/train/train_GARD.sh

Trains the GARD denoiser using run_configs/train/train_GARD.yaml — every field (model architecture, loss weights, data/degradation settings, logging, etc.) is documented inline as comments there.

GPU setup: set NUM_GPUS and CUDA (passed through as CUDA_VISIBLE_DEVICES) in run_scripts/train/train_GARD.sh to however many GPUs / which device(s) you want to train on.

Citation

@inproceedings{kim2026geometry,
  title={Geometry-Aware Representation Denoising for Robust Multi-view 3D Reconstruction},
  author={Kim, Jin Hyeon and Lee, Jaeeun and Kim, Claire and Oh, Kyoungjin and Cho, Paul Hyunbin and Min, Jaewon and Choi, Yeji and Park, Jihye and Park, Hyunhee and Park, Minkyu and Kim, Seungryong},
  booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
  year={2026}
}

Acknowledgement

We thank the authors of RAE, DepthAnything3, GLD, and Motionblur for their excellent work and code, which served as the foundation for this project.

3d-reconstruction
depth-estimation
diffusion-model
image-restoration
multi-view

cvlab-kaist/GARD

Official implementation of "GARD: Geometry-Aware Representation Denoising for Robust Multi-view 3D Reconstruction"

Python

53

3 commits

updated Sep 28, 2026

See the code

README

GARD: Geometry-Aware Representation Denoising for
Robust Multi-view 3D Reconstruction

Jin Hyeon Kim1*,   Jaeeun Lee1*,   Claire Kim1,   Kyoungjin Oh1,   Paul Hyunbin Cho1,   Jaewon Min1,   Yeji Choi1,  
Jihye Park2,   Hyunhee Park2,   Minkyu Park2,   Seungryong Kim1†

1 KAIST AI · 2 Samsung Electronics

* Equal contribution. † Corresponding author.

🔈 News

  • 📄 [2026-05-25] GARD paper released in arxiv
  • 🔥 [2026-08-16] Initial release of the training/inferece code, data, and model weights
  • 🎉 [2026-09-29] GARD is accepted to NeurIPS 2026!

🚀 Overview

Feed-forward multi-view 3D reconstruction models perform well under clean, ideal imaging conditions, but degrade sharply on real-world captures corrupted by motion blur, noise, and other artifacts. GARD (Geometry-Aware Representation Denoising) addresses this by performing diffusion-based multi-view restoration directly in the feature space of a feed-forward 3D reconstruction model (Depth Anything 3), rather than restoring pixels first and reconstructing geometry afterward. By denoising geometry-aware feature representations, GARD recovers accurate scene geometry from degraded multi-view inputs; an accompanying RGB decoder then reconstructs high-quality images from the same denoised representations, enabling the simultaneous recovery of 3D scene geometry and high-quality imagery in a single restoration pass.

This repository provides:

  • The GARD denoiser implementation (src/gard/GARD.py) and its pretrained checkpoints
  • Training code and recipes on Hypersim + TartanAir with synthesized multi-view degradations
  • Evaluation code on DA3-BENCH (paired with our own synthesized degradations) and on real-world camera motion blur scenes from DeblurNeRF

👟 Installation Walkthrough

# clone the GARD repo 
git clone https://github.com/cvlab-kaist/GARD.git

# Move inside the GARD repo 
cd GARD/

# Set up the environment using uv 
uv sync 

# Activate the uv environment
source .venv/bin/activate

🚀 Inference

🎯 Checkpoint preparation

Download the GARD checkpoints from HuggingFace into ckpts/:

bash download_scripts/gard_ckpt/download_ckpts.sh
FileDescriptionSize
ckpts/gard_denoiser.ptGARD denoiser (DiT with a DDT head) that denoises DA3 feature representations5.6G
ckpts/mae_adapter_giant.ptRGB decoder that reconstructs high-quality images from the denoised representations2.0G

📁 Evaluation data preparation

GARD is evaluated on DA3-BENCH (7-Scenes, DTU, DTU64, ETH3D, HiRoom, ScanNet++) paired with our own synthesized degradations, and on the real-world camera motion blur scenes from DeblurNeRF. The clean DA3-BENCH images are re-downloaded from their official source (please review and comply with each dataset's original license); our synthesized degraded counterpart of DA3-BENCH and a mirror of the DeblurNeRF real captures (the original Google Drive folder download is unreliable at this file count) are hosted on our own HuggingFace dataset.

# downloads the clean + degraded DA3-BENCH images and the real camera motion blur scenes into data/eval/
bash download_scripts/eval_bench/download_eval_data.sh

🏃 Running Evaluation

# evaluate on DA3-BENCH (pose / depth / unposed reconstruction)
bash run_scripts/val/val_GARD_da3_bench.sh

# evaluate on the real-world camera motion blur scenes
bash run_scripts/val/val_GARD_real_bench.sh

Results are written to result_val/GARD_da3_bench/ and result_val/GARD_real_bench/ respectively.

🔥 Training

📁 Training data preparation

# download hypersim
bash download_scripts/hypersim/download_hypersim.sh

# download tartanair 
bash download_scripts/tartanair_tools/download_tartanair.sh

🛠️ Training Recipe

bash run_scripts/train/train_GARD.sh

Trains the GARD denoiser using run_configs/train/train_GARD.yaml — every field (model architecture, loss weights, data/degradation settings, logging, etc.) is documented inline as comments there.

GPU setup: set NUM_GPUS and CUDA (passed through as CUDA_VISIBLE_DEVICES) in run_scripts/train/train_GARD.sh to however many GPUs / which device(s) you want to train on.

Citation

@inproceedings{kim2026geometry,
  title={Geometry-Aware Representation Denoising for Robust Multi-view 3D Reconstruction},
  author={Kim, Jin Hyeon and Lee, Jaeeun and Kim, Claire and Oh, Kyoungjin and Cho, Paul Hyunbin and Min, Jaewon and Choi, Yeji and Park, Jihye and Park, Hyunhee and Park, Minkyu and Kim, Seungryong},
  booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
  year={2026}
}

Acknowledgement

We thank the authors of RAE, DepthAnything3, GLD, and Motionblur for their excellent work and code, which served as the foundation for this project.

3d-reconstruction
depth-estimation
diffusion-model
image-restoration
multi-view