Home

Awesome

Source code of the Robust Local Optical Flow is now available!

We are happy that Robust Local Optical Flow is now part of the OpenCV Contribution GIT.

Robust Local Optical Flow V1.3

This repository contains the RLOF library for Robust Local Optical Flow based motion estimation. The software implements several versions of the RLOF algorithm. Please visit our webpage for more information (http://www.nue.tu-berlin.de/menue/forschung/projekte/rlof/).

If you use this algorithm for a scientific publication, please cite the one of the paper listed below.

The RLOFlib library is a sparse optical flow and feature tracking library. The main objective of this library is to provide a fast and accurate motion estimation solution. The main advantage of the RLOF approach is the adjustable runtime and computational complexity which is in contrast to most common optical flow methods linearly dependend on the number of motion vectors (features) to be estimated. Thus the RLOF is a local optical flow method and most related to the PLK method ( better known as KLT Tracker ) and thus the famous Lucas Kanade method.

We hope this software is useful to you. If you have any questions, comments, or issues, please do not hesitate to contact us.

Tobias Senst: <senst AT nue.tu-berlin.de> 

Requirements

Their should be no additional requirements to your OS. The library was tested with:

The library was build using OpenCV 3.1.0. To enable the compatibility to another OpenCV version we provide the rlof::Image Wrapper interface. Therefore disable the linking of OpenCV using the USE_NO_OPENCV preprocessor flag.

Installation

git clone http://github.com/tsenst/RLOFLib

C++ Interface

The header of the C++ interface can be found in the /include/ directory. The library files are located at the /lib/ directory. The library was build using OpenCV 3.1.0. To enable the compatibility to another OpenCV version we provide the rlof::Image Wrapper interface. If no OpenCV will be used please set the USE_NO_OPENCV preprocessor flag to disable the OpenCV related code. The C++ library files have been compiled with the following OS and development environments:

An example applicatio nwhich will demonstrate the application of the RLOF library can be found in the directory /RLOFApp/. More detailed description can be found here...

Matlab Interface

The Matlab Mex-Files for each OS and are located at the /Matlab/ directory. The mex files have been compiled with the following OS and development environments:

Call help mex_SparseRLOF or help mex_DenseRLOF for a description of the arguments and see RLOFSample.m for an example use of the function.
More detailed description can be found here...

Python Interface

The Python interface depends on boost-python and the python numpy package. The interface is located at the directory \Python. In addition the example application depends on the python-opencv package.

Python 2.X

Install python, numpy and opencv packages.

sudo apt install python-numpy libboost-python-dev python-opencv

Run example application.

cd RLOFLib/Python
python RLOFExample.py

Python 3.X

Install python, numpy and pip3 packages. Use pip3 to install the python3 opencv package.

sudo apt install python3-numpy pip3 libboost-python-dev
sudo pip3 install opencv-python

Run example application.

cd RLOFLib/Python
python3 RLOFExample.py

The Python interface libraries have compiled with the following OS and development environments:

Call import rlof to import the RLOF library. The RLOFSample.py shows how to use the RLOF library. More detailed description can be found here...

Description

The RLOF library contains:

RLOF library supports the following methods published in articles :

In order to increase the robustness of the proposed implementation and avoid dependencies we decided to no longer provide a GPU implementation. Instead we focus on CPU based parallelization techniques such as the Streaming SIMD Extension instruction set and multi-threading with OpenMP.