Home

Awesome

Pose Correction for Highly Accurate Visual Localization in Large-scale Indoor Spaces (ICCV 2021)

Janghun Hyeon<sup>1* </sup>, JooHyung Kim<sup>1* </sup>, Nakju Doh<sup>1, 2 </sup>

<sup>1</sup> Korea University, <sup>2</sup> TeeLabs

* Equally contributed to this work.

<img src="images/paper.png" width="18%"/> <img src="images/poster.png" width=37.0%> <img src="images/slides.png" width=39%>


Abstract

Indoor visual localization is significant for various applications such as autonomous robots, augmented reality, and mixed reality. Recent advances in visual localization have demonstrated their feasibility in large-scale indoor spaces through coarse-to-fine methods that typically employ three steps: image retrieval, pose estimation, and pose selection. However, further research is needed to improve the accuracy of large-scale indoor visual localization. We demonstrate that the limitations in the previous methods can be attributed to the sparsity of image positions in the database, which causes view-differences between a query and a retrieved image from the database. In this paper, to address this problem, we propose a novel module, named pose correction, that enables re-estimation of the pose with local feature matching in a similar view by reorganizing the local features. This module enhances the accuracy of the initially estimated pose and assigns more reliable ranks. Furthermore, the proposed method achieves a new state-of-the-art performance with an accuracy of more than 90 %within 1.0 m in the challenging indoor benchmark dataset InLoc for the first time.

<p align="center"> <img src="images/methods.png" width="60%"/> </p>

Dependencies

Prerequisite: Model Parameters

PCLoc is based on coarse-to-fine localization, which uses NetVLAD, SuperPoint, and SuperGlue. Thus, the model parameter should be downloaded from the original code.

NetVLAD: Download Model

Download parameter from the above URL, and unzip the file at:

./thirdparty/netvlad_tf/checkpoints/vd16_pitts30k_conv5_3_vlad_preL2_intra_white.data-00000-of-00001
./thirdparty/netvlad_tf/checkpoints/vd16_pitts30k_conv5_3_vlad_preL2_intra_white.index
./thirdparty/netvlad_tf/checkpoints/vd16_pitts30k_conv5_3_vlad_preL2_intra_white.meta

SuperPoint and SuperGlue: Download Model

./thirdparty/SuperGluePretrainedNetwork/models/weights/superglue_outdoor.pth
./thirdparty/SuperGluePretrainedNetwork/models/weights/superpoint_v1.pth

Prerequisite: Dataset

Dataset

To test our model using the InLoc dataset, the dataset should be downloaded. Downloading takes a while (Dataset is about 1.0TB). Click here to download dataset.

Quick Start

Database Description

Contents

The provided sample code (06_main_inference.py) runs pose correction. This code provides three options:

Example: --opt_div_matching

Results

After running the code, results are shown in the --log_dir.

Example: ./log/202103241833/IMG_0738/mpv

<p align="center"> <img src="images/result1.png" width="70%"/> </p> <p align="center"> <img src="images/result2.png" width="70%"/> </p>
Error [m, 10<sup>o</sup>]DUC1DUC2
InLoc40.9/ 58.1/ 70.235.9/ 54.2/ 69.5
HFNet39.9/ 55.6/ 67.237.4/ 57.3/ 70.2
KAPTURE41.4/ 60.1/ 73.747.3/ 67.2/ 73.3
D2Net43.9/ 61.6/ 73.742.0/ 60.3/ 74.8
Oracle43.9/ 66.2/ 78.343.5/ 63.4/ 76.3
Sparse NCNet47.0/ 67.2/ 79.843.5/ 64.9/ 80.2
RLOCS47.0/ 71.2/ 84.858.8/ 77.9/ 80.9
SuperGlue46.5/ 65.7/ 77.851.9/ 72.5/ 79.4
Baseline (3,000)53.0/ 76.8/ 85.961.8/ 80.9/ 87.0
Ours (3,000)59.6/ 78.3/ 89.471.0/ 93.1/ 93.9
Ours (4,096)60.6/ 79.8/ 90.470.2/ 92.4/ 93.1

Every evaluation was conudcted with the online viusal localization benchmark server. visuallocalization.net/benchmark

BibTeX Citation

If you use any ideas from the paper or code from this repo, please consider citing:

@inproceedings{hyeon2021pose,
  title={Pose Correction for Highly Accurate Visual Localization in Large-Scale Indoor Spaces},
  author={Hyeon, Janghun and Kim, Joohyung and Doh, Nakju},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={15974--15983},
  year={2021}
}