Openfabmap
Open-source C++ code for the FAB-MAP visual place recognition algorithm
Install / Use
/learn @arrenglover/OpenfabmapREADME
openFABMAP <img width="100" alt="openfabmap" src="https://user-images.githubusercontent.com/9265237/52215895-5272bc80-2895-11e9-8af5-0a9fca32cf42.PNG">
Open Source C++ Code for the FAB-MAP Algorithm
St. Lucia Multiple Times of Day and Other Datasets
See the Wiki for tips!
@inproceedings{
author = {Glover, A. and Maddern, W. and Warren, M. and Reid, S. and Milford, M. and Wyeth, G.},
title = {OpenFABMAP: An Open Source Toolbox for Appearance-based Loop Closure Detection},
booktitle = {The International Conference on Robotics and Automation},
address = {St Paul, Minnesota},
publisher = {IEEE},
year = {2011}
}
OpenFABMAP Glover et. al. 2012 is an open-source, OpenCV-only dependent, version of the popular Fast Appearance-based Mapping (FAB-MAP) algorithm [Cummins & Newman 2008](http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5509547&tag=1 Glover et al. 2010). OpenFABMAP was developed from the ground-up following FAB-MAP publications. The original FAB-MAP algorithm is now also open-source but requires alternative project dependencies.
FAB-MAP is a Simultaneous Localisation and Mapping algorithm which operates solely in appearance space. FAB-MAP performs location matching between places that have been visited within the world as well as providing a measure of the probability of being at a new, previously unvisited location. Camera images form the sole input to the system, from which OpenCV's feature extraction methods are used to develop bag-of-words representations for the Bayesian comparison technique.
The code has implementations of
- Feature Detection, Feature Extraction, and Bag-of-words models using OpenCV
- Chow-Liu tree implementation
- FAB-MAP v1.0 [Cummins & Newman 2008](http://ijr.sagepub.com/content/27/6/647.short Cummins & Newman 2008)
- FAB-MAP v1.0 using a Look-up-table for improved computation speed
- FAB-MAP with Fast-Bailout Cummins & Newman 2010
- FAB-MAP v2.0 Cummins & Newman 2010
An overview of OpenFABMAP Glover et. al. 2012 or the original implementation/use Glover et al. 2010.
As of the latest version, openFABMAP is dependent solely on OpenCV 2.3 or higher. The project has a CMake build environment for general use on both Linux and Windows systems. OpenFABMAP is also designed to integrate with ROS. See the CyPhy-ROS page for a package that has implemented openFABMAP as a ROS node.
The original googlecode project page was here
Installation
Linux (g++)
- install cmake
sudo apt install cmake - install opencv
sudo apt install libopencv-dev - get the openFABMAP code
git clone https://github.com/arrenglover/openfabmap.git - make the build directory
mkdir openfabmap/build && cd openfabmap/build - use cmake to compile the makefile
cmake ... note: the output will tell you which version of opencv you are using and if you are using the "non-free" modules - make the project
make - view/modify the settings file
gedit ../samples/settings.yml - run the command line tool
bin/openFABMAPcli -s ../samples/settings.yml
OpenCV non-free for OpenCV 3.4
- clone opencv_contrib
- clone opencv repository
- checkout version 3.4
- mkdir build && cd build
- cmake .. -DOPENCV_EXTRA_MODULES_PATH='path_to/opencv_contrib/modules' -DBUILD_opencv_xfeatures2d=ON -DOPENCV_ENABLE_NONFREE=ON
- make
Windows (Visual Studio 2008)
- install openCV2.3
- install cmake
- open the cmake gui, specify the source directory (the directory this README is in), a build directory for the code, and click configure
- you may have to specify the location of opencv2.3 in UngroupedEntries->OPENCV_PATH.
- click configure in the cmake gui again
- click generate
- open the visual studio solution, for default running right-click on openFABMAPexe project and select 'Set as StartUp project'. Compile openFABMAP within Visual studio.
- add required .dll files from openCV2.3 to your build/bin directory (respective debug versions for debug mode).
- you also may need an extra tbb .dll due to OpenCV bug which can be downloaded here
- under openFABMAPcli->properties->Debugging->command arguments specify the path to the settings file (e.g. "-s samples\settings.yml")
- Alter the settings file for your data
- run exampleopenFABMAP in your build/bin directory (respective debug versions for debug mode).
Contributors
- Arren GLover
- Will Maddern
- Kirk MacTavish
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
