|
# DKM: Dense Kernelized Feature Matching for Geometry Estimation |
|
### [Project Page](https://parskatt.github.io/DKM) | [Paper](https://arxiv.org/abs/2202.00667) |
|
<br/> |
|
|
|
> DKM: Dense Kernelized Feature Matching for Geometry Estimation |
|
> [Johan Edstedt](https://scholar.google.com/citations?user=Ul-vMR0AAAAJ), [Ioannis Athanasiadis](https://scholar.google.com/citations?user=RCAtJgUAAAAJ), [Mårten Wadenbäck](https://scholar.google.com/citations?user=6WRQpCQAAAAJ), [Michael Felsberg](https://scholar.google.com/citations?&user=lkWfR08AAAAJ) |
|
> CVPR 2023 |
|
|
|
## How to Use? |
|
<details> |
|
Our model produces a dense (for all pixels) warp and certainty. |
|
|
|
Warp: [B,H,W,4] for all images in batch of size B, for each pixel HxW, we ouput the input and matching coordinate in the normalized grids [-1,1]x[-1,1]. |
|
|
|
Certainty: [B,H,W] a number in each pixel indicating the matchability of the pixel. |
|
|
|
See [demo](dkm/demo/) for two demos of DKM. |
|
|
|
See [api.md](docs/api.md) for API. |
|
</details> |
|
|
|
## Qualitative Results |
|
<details> |
|
|
|
https://user-images.githubusercontent.com/22053118/223748279-0f0c21b4-376a-440a-81f5-7f9a5d87483f.mp4 |
|
|
|
|
|
https://user-images.githubusercontent.com/22053118/223748512-1bca4a17-cffa-491d-a448-96aac1353ce9.mp4 |
|
|
|
|
|
|
|
https://user-images.githubusercontent.com/22053118/223748518-4d475d9f-a933-4581-97ed-6e9413c4caca.mp4 |
|
|
|
|
|
|
|
https://user-images.githubusercontent.com/22053118/223748522-39c20631-aa16-4954-9c27-95763b38f2ce.mp4 |
|
|
|
|
|
</details> |
|
|
|
|
|
|
|
## Benchmark Results |
|
|
|
<details> |
|
|
|
### Megadepth1500 |
|
|
|
| | @5 | @10 | @20 | |
|
|-------|-------|------|------| |
|
| DKMv1 | 54.5 | 70.7 | 82.3 | |
|
| DKMv2 | *56.8* | *72.3* | *83.2* | |
|
| DKMv3 (paper) | **60.5** | **74.9** | **85.1** | |
|
| DKMv3 (this repo) | **60.0** | **74.6** | **84.9** | |
|
|
|
### Megadepth 8 Scenes |
|
| | @5 | @10 | @20 | |
|
|-------|-------|------|------| |
|
| DKMv3 (paper) | **60.5** | **74.5** | **84.2** | |
|
| DKMv3 (this repo) | **60.4** | **74.6** | **84.3** | |
|
|
|
|
|
### ScanNet1500 |
|
| | @5 | @10 | @20 | |
|
|-------|-------|------|------| |
|
| DKMv1 | 24.8 | 44.4 | 61.9 | |
|
| DKMv2 | *28.2* | *49.2* | *66.6* | |
|
| DKMv3 (paper) | **29.4** | **50.7** | **68.3** | |
|
| DKMv3 (this repo) | **29.8** | **50.8** | **68.3** | |
|
|
|
</details> |
|
|
|
## Navigating the Code |
|
* Code for models can be found in [dkm/models](dkm/models/) |
|
* Code for benchmarks can be found in [dkm/benchmarks](dkm/benchmarks/) |
|
* Code for reproducing experiments from our paper can be found in [experiments/](experiments/) |
|
|
|
## Install |
|
Run ``pip install -e .`` |
|
|
|
## Demo |
|
|
|
A demonstration of our method can be run by: |
|
``` bash |
|
python demo_match.py |
|
``` |
|
This runs our model trained on mega on two images taken from Sacre Coeur. |
|
|
|
## Benchmarks |
|
See [Benchmarks](docs/benchmarks.md) for details. |
|
## Training |
|
See [Training](docs/training.md) for details. |
|
## Reproducing Results |
|
Given that the required benchmark or training dataset has been downloaded and unpacked, results can be reproduced by running the experiments in the experiments folder. |
|
|
|
## Using DKM matches for estimation |
|
We recommend using the excellent Graph-Cut RANSAC algorithm: https://github.com/danini/graph-cut-ransac |
|
|
|
| | @5 | @10 | @20 | |
|
|-------|-------|------|------| |
|
| DKMv3 (RANSAC) | *60.5* | *74.9* | *85.1* | |
|
| DKMv3 (GC-RANSAC) | **65.5** | **78.0** | **86.7** | |
|
|
|
|
|
## Acknowledgements |
|
We have used code and been inspired by https://github.com/PruneTruong/DenseMatching, https://github.com/zju3dv/LoFTR, and https://github.com/GrumpyZhou/patch2pix. We additionally thank the authors of ECO-TR for providing their benchmark. |
|
|
|
## BibTeX |
|
If you find our models useful, please consider citing our paper! |
|
``` |
|
@inproceedings{edstedt2023dkm, |
|
title={{DKM}: Dense Kernelized Feature Matching for Geometry Estimation}, |
|
author={Edstedt, Johan and Athanasiadis, Ioannis and Wadenbäck, Mårten and Felsberg, Michael}, |
|
booktitle={IEEE Conference on Computer Vision and Pattern Recognition}, |
|
year={2023} |
|
} |
|
``` |
|
|