Coder Social home page Coder Social logo

dbhub20092758 / openfabmap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arrenglover/openfabmap

0.0 0.0 0.0 652 KB

Open-source C++ code for the FAB-MAP visual place recognition algorithm

License: Other

CMake 4.84% TeX 1.37% C++ 93.80%

openfabmap's Introduction

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](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. 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

openfabmap's People

Contributors

kmactavish avatar arrenglover 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.