This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
This repository contains code for training a network as described in our paper:
Deep Fundamental Matrix Estimation
René Ranftl and Vladlen Koltun
European Conference on Computer Vision (ECCV), 2018
The trained network can be used to compute a fundamental matrix based on noisy point correspondences.
Create and activate conda environment:
conda env create -f environment.yml
conda activate dfe
Training can be performed with the following command:
python train.py --dataset [dataset folders]
Dataset folders are assumed to be in COLMAP format. Multiple folders can be listed by separating them with a whitespace.
An example dataset can be found here: Family.
To get help:
python train.py -h
python test.py --dataset [dataset folders] --model [path to model]
A pre-trained model that was trained on Tanks and Temples can be found in the models folder.
The dataloader assumes that a dataset folder contains the following files:
reconstruction.db
sparse/0/cameras.bin
sparse/0/images.bin
cameras.bin
and images.bin
are SfM reconstruction in COLMAP format.
reconstruction.db
contains descriptors, matches, etc.
These files are automatically created when performing reconstruction using COLMAP. We found that better results are achieved with less aggressive filtering for feature matching than the default COLMAP settings. The recommended way to create a training set is:
- Run COLMAP to produce
cameras.bin
andimages.bin
and initialreconstruction.db
- Run
get_features.sh
to produce a training set with higher outlier ratios to replacereconstruction.db
Please cite our paper if you use this code in your research:
@InProceedings{Ranftl2018,
author = {Ranftl, Rene and Koltun, Vladlen},
title = {Deep Fundamental Matrix Estimation},
booktitle = {The European Conference on Computer Vision (ECCV)},
year = {2018}
}
MIT License