MCPcopy Create free account
hub / github.com/arrenglover/openfabmap

github.com/arrenglover/openfabmap @2.04

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.04 ↗ · + Follow
80 symbols 116 edges 13 files 20 documented · 25% updated 2y ago2.04 · 2019-02-08★ 2308 open issues

Browse by type

Functions 73 Types & classes 7
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

openFABMAP openfabmap

Open Source C++ Code for the FAB-MAP Algorithm

St. Lucia Multiple Times of Day Dataset

!Now Supporting OpenCV 3.0!

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. 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 * 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++)

  1. install cmake sudo apt install cmake
  2. install opencv sudo apt install libopencv-dev
  3. get the openFABMAP code git clone https://github.com/arrenglover/openfabmap.git
  4. make the build directory mkdir openfabmap/build && cd openfabmap/build
  5. 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
  6. make the project make
  7. view/modify the settings file gedit ../samples/settings.yml
  8. run the command line tool bin/openFABMAPcli -s ../samples/settings.yml

OpenCV non-free for OpenCV 3.4

  1. clone opencv_contrib
  2. clone opencv repository
  3. checkout version 3.4
  4. mkdir build && cd build
  5. cmake .. -DOPENCV_EXTRA_MODULES_PATH='path_to/opencv_contrib/modules' -DBUILD_opencv_xfeatures2d=ON -DOPENCV_ENABLE_NONFREE=ON
  6. make

Windows (Visual Studio 2008)

  1. install openCV2.3
  2. install cmake
  3. open the cmake gui, specify the source directory (the directory this README is in), a build directory for the code, and click configure
  4. you may have to specify the location of opencv2.3 in UngroupedEntries->OPENCV_PATH.
  5. click configure in the cmake gui again
  6. click generate
  7. open the visual studio solution, for default running right-click on openFABMAPexe project and select 'Set as StartUp project'. Compile openFABMAP within Visual studio.
  8. add required .dll files from openCV2.3 to your build/bin directory (respective debug versions for debug mode).
  9. you also may need an extra tbb .dll due to OpenCV bug which can be downloaded here
  10. under openFABMAPcli->properties->Debugging->command arguments specify the path to the settings file (e.g. "-s samples\settings.yml")
  11. Alter the settings file for your data
  12. run exampleopenFABMAP in your build/bin directory (respective debug versions for debug mode).

Contributors

  • Arren GLover
  • Will Maddern
  • Kirk MacTavish

Core symbols most depended-on inside this repo

Shape

Method 53
Function 20
Class 7

Languages

C++100%

Modules by API surface

src/fabmap.cpp25 symbols
src/chowliutree.cpp14 symbols
samples/openFABMAPcli.cpp14 symbols
include/fabmap.hpp8 symbols
src/inference.cpp7 symbols
src/msckd.cpp3 symbols
src/bowmsctrainer.cpp3 symbols
include/inference.hpp2 symbols
include/chowliutree.hpp2 symbols
include/msckd.h1 symbols
include/bowmsctrainer.hpp1 symbols

For agents

$ claude mcp add openfabmap \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page