You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+34-13Lines changed: 34 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,20 +16,24 @@ With `hloc`, you can:
16
16
17
17
##
18
18
19
+
## Quick start ➡️ [](https://colab.research.google.com/drive/1MrVs9b8aQYODtOGkoaGNF9Nji3sbCNMQ)
20
+
21
+
Build 3D maps with Structure-from-Motion and localize any Internet image right from your browser! **You can now run `hloc` and COLMAP in Google Colab with GPU for free.** The notebook [`demo.ipynb`](https://colab.research.google.com/drive/1MrVs9b8aQYODtOGkoaGNF9Nji3sbCNMQ) shows how to run SfM and localization in just a few steps. Try it with your own data and let us know!
22
+
19
23
## Installation
20
24
21
-
`hloc` requires Python >=3.6, PyTorch >=1.1, and [COLMAP](https://colmap.github.io/index.html). Installing the package locally pulls the other dependencies:
22
-
```
25
+
`hloc` requires Python >=3.7 and PyTorch >=1.1. Installing the package locally pulls the other dependencies:
All dependencies are listed in `requirements.txt`.
29
-
This codebase includes external local features as git submodules – don't forget to pull submodules with `git submodule update --init --recursive`. Your local features are based on TensorFlow? No problem! See [below](#using-your-own-local-features-or-matcher) for the steps.
33
+
All dependencies are listed in `requirements.txt`. **Starting with `hloc-v1.3`, installing COLMAP is not required anymore.** This repository includes external local features as git submodules – don't forget to pull submodules with `git submodule update --init --recursive`.
30
34
31
-
We also provide a Docker image that includes COLMAP and other dependencies:
32
-
```
35
+
We also provide a Docker image:
36
+
```bash
33
37
docker build -t hloc:latest .
34
38
docker run -it --rm -p 8888:8888 hloc:latest # for GPU support, add `--runtime=nvidia`
-`hloc/matchers/` : interfaces for feature matchers
59
63
-`hloc/pipelines/` : entire pipelines for multiple datasets
60
64
61
-
`hloc` can be imported as an external package with `import hloc` or from the command line with `python -m hloc.script`.
65
+
`hloc` can be imported as an external package with `import hloc` or called from the command line with:
66
+
```bash
67
+
python -m hloc.name_of_script --arg1 --arg2
68
+
```
62
69
63
70
## Tasks
64
71
@@ -87,7 +94,7 @@ We show in [`pipeline_SfM.ipynb`](https://nbviewer.jupyter.org/github/cvg/Hierar
87
94
## Results
88
95
89
96
- Supported local feature extractors: [SuperPoint](https://arxiv.org/abs/1712.07629), [D2-Net](https://arxiv.org/abs/1905.03561), [SIFT](https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf), and [R2D2](https://arxiv.org/abs/1906.06195).
90
-
- Supported feature matchers: [SuperGlue](https://arxiv.org/abs/1911.11763) and nearest neighbor search with ratio test, distance test, mutual check.
97
+
- Supported feature matchers: [SuperGlue](https://arxiv.org/abs/1911.11763) and nearest neighbor search with ratio test, distance test, and/or mutual check.
91
98
- Supported image retrieval: [NetVLAD](https://arxiv.org/abs/1511.07247) and [AP-GeM/DIR](https://github.com/naver/deep-image-retrieval).
92
99
93
100
Using NetVLAD for retrieval, we obtain the following best results:
@@ -109,7 +116,10 @@ Check out [visuallocalization.net/benchmark](https://www.visuallocalization.net/
109
116
110
117
## Supported datasets
111
118
112
-
We provide in [`hloc/pipelines/`](./hloc/pipelines) scripts to run the reconstruction and the localization on the following datasets: Aachen Day-Night (v1.0 and v1.1), InLoc, Extended CMU Seasons, RobotCar Seasons, 4Seasons, Cambridge Landmarks, and 7-Scenes.
119
+
We provide in [`hloc/pipelines/`](./hloc/pipelines) scripts to run the reconstruction and the localization on the following datasets: Aachen Day-Night (v1.0 and v1.1), InLoc, Extended CMU Seasons, RobotCar Seasons, 4Seasons, Cambridge Landmarks, and 7-Scenes. For example, after downloading the dataset [with the instructions given here](./hloc/pipelines/Aachen#installation), we can run the Aachen Day-Night pipeline with SuperPoint+SuperGlue using the command:
@@ -178,9 +188,21 @@ In a match file, each key corresponds to the string `path0.replace('/', '-')+'_'
178
188
## Versions
179
189
180
190
<details>
181
-
<summary>master (development)</summary>
182
-
183
-
Multiple bug fixes and minor improvements.
191
+
<summary>v1.3 (January 2022)</summary>
192
+
193
+
- Demo notebook in Google Colab
194
+
- Use the new pycolmap Reconstruction objects and pipeline API
195
+
- Do not require an installation of COLMAP anymore - pycolmap is enough
196
+
- Faster model reading and writing
197
+
- Fine-grained control over camera sharing via the `camera_mode` parameter
198
+
- Localization with unknown or inaccurate focal length
199
+
- Modular localization API with control over all estimator parameters
200
+
- 3D visualizations or camera frustums and points with plotly
201
+
- Package-specific logging in the hloc namespace
202
+
- Store the extracted features by default as fp16 instead of fp32
203
+
- Optionally fix a long-standing bug in SuperPoint descriptor sampling
204
+
- Add script to compute exhaustive pairs for reconstruction or localization
205
+
- Require pycolmap>=0.1.0 and Python>=3.7
184
206
</details>
185
207
186
208
<details>
@@ -211,7 +233,6 @@ Initial public version.
211
233
212
234
External contributions are very much welcome. Please follow the [PEP8 style guidelines](https://www.python.org/dev/peps/pep-0008/) using a linter like flake8. This is a non-exhaustive list of features that might be valuable additions:
213
235
214
-
-[ ] handle unknown query intrinsics (extraction from EXIF + refinement in PnP)
215
236
-[ ] support for GPS (extraction from EXIF + guided retrieval)
216
237
-[ ] covisibility clustering for InLoc
217
238
-[ ] visualization of the raw predictions (features and matches)
We provide here a subset of images depicting the Sacre Coeur. These images were obtained from the [Image Matching Challenge 2021](https://www.cs.ubc.ca/research/image-matching-challenge/2021/data/) and were originally collected by the [Yahoo Flickr Creative Commons 100M (YFCC) dataset](https://multimediacommons.wordpress.com/yfcc100m-core-dataset/).
0 commit comments