This repository contains the official implementation of the following paper:
F3Loc : Fusion and Filtering for Floorplan Localization
Authors: Changan Chen, Rui Wang, Christoph Vogel, Marc Pollefeys
Paper | arXiv | Project Page
If you use this project or ideas from the paper for your research, please cite our paper:
@inproceedings{chen2024f3loc,
title={F $\^{3}$ Loc: Fusion and Filtering for Floorplan Localization},
author={Chen, Changan and Wang, Rui and Vogel, Christoph and Pollefeys, Marc},
booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2024}
}
To get started with the code, clone this repository and install the required dependencies:
git clone https://github.com/felix-ch/f3loc.git
cd f3loc
conda env create -f environment.yml
conda activate f3loc
You can download the model checkpoints from here.
Place the logs folder under f3loc directory:
├── f3loc
│ ├── logs
│ ├── comp.ckpt # checkpoint for the complementary network
│ ├── mono.ckpt # checkpoint for the monocular network
│ ├── mv.ckpt # checkpoint for the multi-view network
You can download the dataset from here.
The released Gibson Floorplan Localization Dataset contains three datasets gibson_f, gibson_g (four views of forward and geneneral motions) and gibson_t (long trajectories) as described in the paper.
The data is collected in Gibson Environment.
For more detailed data organization please refer to the README of the dataset.
Place dataset under the data folder:
├── f3loc
│ ├── data
│ ├── Gibson Floorplan Localization Dataset
│ ├── README.md
│ ├── gibson_f
│ ├── ...
│ ├── gibson_g
│ ├── ...
│ ├── gibson_t
│ ├── ...
│ ├── desdf
│ ├── ...
python eval_observation.py --net_type <net-type> --dataset <dataset>
Specify the network type, and choose a dataset to evaluate on, you can use gibson_f or gibson_g, e.g.,
python eval_observation.py --net_type comp --dataset gibson_f
Help message for arguments can be listed by
python eval_observation.py -h
python eval_filtering.py --net_type <net-type> --traj_len <traj-len> --evol_dir <evol-dir>
This evaluates the sequential filtering with the proposed histogram filter on gibson_t. Choose a network type and specify the trajectory length. Set --evol_dir to a directory if you wish to dump the figures of likelihood and posterior evolution. By default the figures are not saved. E.g.,
python eval_filtering.py --net_type comp --traj_len 100 --evol_dir ./visualization
Check the usage of the arguments by
python eval_filtering.py -h
This project is licensed under the MIT License.