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

7 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors