HARA: A Hierarchical Approach for Robust Rotation Averaging

January 8, 2023 ยท View on GitHub

Paper, Video, Supplementary material

In this repository, we provide the implementation of HARA. If you use our code, please cite it as follows:

@InProceedings{Lee_2022_CVPR,
    author    = {Lee, Seong Hun and Civera, Javier},
    title     = {{HARA}: A Hierarchical Approach for Robust Rotation Averaging},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {15777--15786}
}

Update (January 8th 2023)

This recent change in the code leads to a significant speedup of the local optimization step compared to the version used for the CVPR paper. We thank Chitturi Sidhartha, the first author of a 3DV paper titled 'It Is All In The Weights: Robust Rotation Averaging Revisited', for the discussion that led to this finding.

Quick start

Run Test_HARA.m to try it on a synthetic data WITHOUT using the number of inlier matches.

Main functions:

  1. CreateSyntheticData.m: Generate a synthetic dataset, as described in the main paper.
  2. RunHARA.m: Run HARA without using the number of inlier matches.
  3. RunHARA_usingNumberOfInlierMatches.m: Run HARA using the number of inlier matches. Note that we only provide the function, without the test script or a sample dataset. This function is quite similar to RunHARA.m, so it shouldn't be too difficult to use on your own dataset.