Git Product home page Git Product logo

openfabmap's Introduction

openFABMAP

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

version 2.02

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

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 but is currently underdevelopment for OpenCV 3.0. 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.

Check out the GitHub Wiki for some instructions and tips on running openFABMAP.

Citations Endnote [BibTex](http://openfabmap.googlecode.com/files/openFABMAP.bib BibTex)

The original googlecode project page was here

#Installation

OPENCV2.4 Compatibility

if using openCV2.4 you will need to replace

//#define OPENCV2P4 with #define OPENCV2P4

at the beggining of openFABMAPcli.cpp

Installation Instructions (using Cmake)

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

Linux (g++)

  1. install openCV2.3
  2. get cmake and install it using your package manager
  3. install cmakecurses using your package manager
  4. make a build directory for your generated code
  5. use the command line to change into this directory
  6. run 'cmake /path/to/your/build/dir'
  7. Hopefully openCV was found. If not, you may have to specify the directory manually using ccmake. Try using the wizard option cmake -i.
  8. run 'make' in your build directory
  9. Alter the settings file for your application
  10. run openFABMAPcli in your build/bin directory

openfabmap's People

Contributors

kmactavish avatar arrenglover avatar

Watchers

Changling Zhou avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.