Skip to content

NahyukLEE/cmnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Combinative Matching for Geometric Shape Assembly

✨ ICCV 2025 Highlight ✨

Nahyuk Lee 1*     Juhong Min 1,2*     Junhong Lee 1     Chunghyun Park 1     Minsu Cho1,3
1 POSTECH   2 Samsung Research America   3 RLWRLD
* Equal contribution

arXiv  Project Page

Summary: We propose a new shape-matching methodology, Combinative Matching, which significantly reduces local ambiguities in matching by explicitly modeling both identical surface shapes and opposite volume occupancy.

Requirements

  • Python 3.8
  • PyTorch 1.10.1
  • PyTorch Lightning 1.9

Conda environment settings:

conda create -n cmnet python=3.8
conda activate cmnet

pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
pip install pytorch-lightning==1.9
pip install einops trimesh wandb open3d gtsam
pip install git+https://github.com/KinglittleQ/torch-batch-svd
pip install git+'https://github.com/otaheri/chamfer_distance'
pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"

cd lib/pointops
python setup.py install && cd -

Dataset

To use the Breaking Bad dataset, follow the instructions in this repository to download both the everyday and artifact subsets.

Note

  • We used the Volume-constrained Breaking Bad dataset (v2) for the main experiments.
  • Additional evaluation results on the Vanilla Breaking Bad dataset (v1) are provided in our supplementary material [arXiv].

Pairwise Assembly (2 parts)

Training

# Single-GPU training for pairwise assembly
python main.py --data_category {everyday, artifact} --logpath {exp_name} 

# Multi-GPU training (ex. 4 GPUs) for pairwise assembly 
python main.py --data_category {everyday, artifact} --logpath {exp_name} --gpus 0 1 2 3 

Testing

# Pairwise assembly testing
python test.py --data_category {everyday, artifact} --load {ckp_path} 

Multi-part Assembly (2~20 parts)

Training

To train and test on multi-part assembly, please use the --mpa flag on main.py.

# Single-GPU training for multi-part assembly
python main.py --data_category {everyday, artifact} --logpath {exp_name} --mpa

# Multi-GPU training (ex. 4 GPUs) for multi-part assembly
python main.py --data_category {everyday, artifact} --logpath {exp_name} --mpa --gpus 0 1 2 3 

Testing

For multi-part assembly testing, please use multi_part_assembly.py, which includes pose graph optimization support.

# Multi-part assembly testing
python multi_part_assembly.py --data_category {everyday, artifact} --load {ckp_path}

Checkpoints

Checkpoints for both Vanilla Breaking Bad (v1) and Volume-constrained Breaking Bad (v2) datasets are available on our [Google Drive].

BibTeX

If you use this code for your research, please consider citing:

@inproceedings{lee2025combinative,
  title={Combinative Matching for Geometric Shape Assembly},
  author={Lee, Nahyuk and Min, Juhong and Lee, Junhong and Park, Chunghyun and Cho, Minsu},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={9540--9549},
  year={2025}
}

Related Repos

The codebase is largely built on the following repositories.

About

[ICCV 2025 Highlight] Official Implementation for "Combinative Matching for Geometric Shape Assembly"

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors