Skip to content

hanyucc/archsym_code

Repository files navigation

ArchSym: Detecting 3D-Grounded Architectural Symmetries in the Wild

Paper PDF Project Page arXiv

Hanyu Chen, Ruojin Cai, Steve Marschner, Noah Snavely

ArchSym teaser

ArchSym addresses 3D-grounded reflection symmetry detection from single in-the-wild RGB images, with a focus on architectural landmarks. It introduces two components: a scalable annotation pipeline that curates architectural symmetries from SfM reconstructions using image matching, and a single-view symmetry detector that localizes 3D reflection planes by predicting signed distance maps relative to scene geometry.

Installation

Create a Python environment and install the dependencies:

conda create -n archsym python=3.12
conda activate archsym
pip install -r requirements.txt

The VGGT backbone is loaded from Hugging Face the first time the model runs.

Data and Checkpoints

Download and extract the preprocessed ArchSym dataset:

wget http://www.cs.cornell.edu/projects/archsym/archsym_dataset.tar.gz
tar -xzf archsym_dataset.tar.gz

Download the trained ArchSym checkpoint:

mkdir -p checkpoints/archsym_checkpoint
wget http://www.cs.cornell.edu/projects/archsym/checkpoint-last.pth \
  -O checkpoints/archsym_checkpoint/checkpoint-last.pth

The repository should have the following layout:

archsym_dataset/
  Scene_Name/
    0000.jpg
    0000.exr
    0000.npz
    ...
checkpoints/
  archsym_checkpoint/
    checkpoint-last.pth

archsym_dataset contains the preprocessed images, depth maps, camera parameters, and symmetry annotations used by the dataset loader. checkpoint-last.pth contains the trained ArchSym reflection head.

Evaluation

Run evaluation with:

bash eval.sh

Evaluation results are written to the checkpoint directory as a json file.

Inference

Run model inference on a folder of images with:

bash test_on_image.sh /path/to/images /path/to/outputs

The first argument is the input image directory. The second argument is the output directory for visualizations and predicted symmetry files.

Training

Train with:

bash train.sh

The default script uses 4 GPUs through torchrun. Adjust --nproc_per_node, --batch_size, and --accum_iter in train.sh for your hardware.

Training writes checkpoints to checkpoints/archsym_checkpoint/. If checkpoint-last.pth already exists there, training resumes from it.

Citation

@inproceedings{chen2026archsym,
  title     = {ArchSym: Detecting 3D-Grounded Architectural Symmetries in the Wild},
  author    = {Chen, Hanyu and Cai, Ruojin and Marschner, Steve and Snavely, Noah},
  booktitle = {CVPR},
  year      = {2026}
}

Acknowledgements

This release uses code from DUSt3R and VGGT. Thanks for these great projects!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors