Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Python wrappers for DBoW3 library.

Project description

Documentation Status https://travis-ci.org/foxis/pyDBoW3.svg?branch=master https://codecov.io/gh/FoxIS/pyDBoW3/branch/master/graph/badge.svg https://img.shields.io/pypi/v/pyDBoW3.svg https://img.shields.io/pypi/l/pyDBoW3.svg https://img.shields.io/pypi/pyversions/pyDBoW3.svg https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Document-blue.svg https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Source_Code-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

pyDBoW3

Ultra-fast Boost.Python interface for DBoW3

This repo was created in order to interface DBoW algorithm from python in another project EasyVision. It is being used for a simple topological SLAM implementation since OpenCV BowKMeansTrainer doesn’t work with binary features.

If you wish you use it on your own it is as easy as:

import pyDBoW3 as bow
voc = bow.Vocabulary()
voc.load("/slamdoom/libs/orbslam2/Vocabulary/ORBvoc.txt")
db = bow.Database()
db.setVocabulary(voc)
del voc
# extract features using OpenCV
...
# add features to database
for features in features_list:
  db.add(features)

# query features
feature_to_query = 1
results = db.query(features_list[feature_to_query])

del db

This repository was created based on pyORBSLAM2 and ndarray to cv::Mat conversion on numpy-opencv-converter.

Note

Tested on these platforms:
  • OpenCV 3.4.2.16
  • Windows 10 msvc 2017 x64
  • xenial with Python 2.7, libboost 1.54 (autobuild with travis)
  • xenial with Python 3.5, libboost 1.54 (autobuild with travis)

Get started

Windows

Prerequisites: * OpenCV * Python with Numpy and opencv-contrib-python * Boost >1.54 * cmake * Microsoft Visual Studio

To build Boost.Python, go to Boost root and run:

bootstrap.bat --prefix=/dir/to/Boost.Build

Then build Boost.Python like this:

/dir/to/Boost.Build/b2 --with-python threading=multi variant=release link=static

To build DBoW3, simply run build.bat file and then build solution folder in install/DBoW3/build and then the solution in build folder.

Currently there is no python package generation, so you could simply copy pyDBoW3.pyd and opencv_world*.dll files to your virtual environment.

Unix

Use build.sh to build build/pyDBoW.so, which you should then put on your PYTHONPATH.

Check .travis.yml for environment variables.

Note

You will probably need to run sudo make install for install/opencv/build to install it on your system.

Project details


Release history Release notifications

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyDBoW3, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size pyDBoW3-0.2-cp37-cp37m-win_amd64.whl (24.0 MB) File type Wheel Python version cp37 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page