This is the implementation of the paper "Quantum Multiple Rotation Averaging" by Wang et al. We introduce IQARS, a novel method for globally synchronizing multiple local rotation matrices. For details, we refer to the project page.
This repository provides a Python implementation of Quantum Multiple Rotation Averaging using QUBO formulations and annealing-based optimization (simulated or quantum).
The code is organized into modular Python files:
lie.py— SO(3) geometry utilities and derivativesdata.py— synthetic rotation dataset generationqubo.py— QUBO constructionobjective.py— residual evaluationsolvers.py— simulated / quantum annealing interfacemain.py— experiment runner
git clone https://github.com/shutengW/Quantum-Multiple-Rotation-Averaging.git
cd Quantum-Multiple-Rotation-Averaging
conda env create --name EnvName --file environment.yaml conda activate EnvName
This installs all required dependencies for running QMRA experiments.
To run the synthetic rotation averaging experiment:
python main.py
The script will:
- generate synthetic relative rotations
- construct the QUBO problem
- solve it using annealing
- iteratively update rotations
If you use QMRA in your research, please consider citing our work:
@inproceedings{Wang2026quantum,
title={Quantum Multiple Rotation Averaging},
author={Wang, Shuteng and Kuete Meli, Natacha and Möller, Michael and Golyanik, Vladislav},
booktitle={International Conference on 3D Vision},
year={2026}
}