{"id":24625797,"url":"https://github.com/tsenst/rloflib","last_synced_at":"2025-05-07T18:10:48.036Z","repository":{"id":187698052,"uuid":"95887347","full_name":"tsenst/RLOFLib","owner":"tsenst","description":"Robust Local Optical Flow (RLOF)","archived":false,"fork":false,"pushed_at":"2019-01-06T20:52:16.000Z","size":132513,"stargazers_count":72,"open_issues_count":5,"forks_count":23,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T12:57:14.911Z","etag":null,"topics":["computer-vision","cpp-library","feature-tracking","linux","lucas-kanade","matlab","matlab-interface","mex","mex-functions","motion","motion-estimation","opencv","optical-flow","python","python-interface","rlof-library","robust-local-optical-flow","tracking","video-processing","visual-studio"],"latest_commit_sha":null,"homepage":"http://www.nue.tu-berlin.de/menue/forschung/projekte/rlof/","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsenst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-06-30T12:41:57.000Z","updated_at":"2025-03-17T07:23:55.000Z","dependencies_parsed_at":"2023-08-11T20:22:27.152Z","dependency_job_id":null,"html_url":"https://github.com/tsenst/RLOFLib","commit_stats":null,"previous_names":["tsenst/rloflib"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsenst%2FRLOFLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsenst%2FRLOFLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsenst%2FRLOFLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsenst%2FRLOFLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsenst","download_url":"https://codeload.github.com/tsenst/RLOFLib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931555,"owners_count":21827112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-vision","cpp-library","feature-tracking","linux","lucas-kanade","matlab","matlab-interface","mex","mex-functions","motion","motion-estimation","opencv","optical-flow","python","python-interface","rlof-library","robust-local-optical-flow","tracking","video-processing","visual-studio"],"created_at":"2025-01-25T04:39:56.157Z","updated_at":"2025-05-07T18:10:48.016Z","avatar_url":"https://github.com/tsenst.png","language":"MATLAB","readme":"***Source code of the Robust Local Optical Flow is now available!***\n\nWe are happy that Robust Local Optical Flow is now part of the [OpenCV Contribution GIT](https://github.com/opencv/opencv_contrib).\n\n# Robust Local Optical Flow V1.3\nThis repository contains the RLOF library for Robust Local Optical Flow based motion estimation. The software implements several versions of the RLOF algorithm.\nPlease visit our webpage for more information (http://www.nue.tu-berlin.de/menue/forschung/projekte/rlof/).\n\n\tIf you use this algorithm for a scientific publication, please cite the one of the paper listed below.\n\nThe 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.\nThe 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.\nThus 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. \n\nWe hope this software is useful to you. If you have any questions, comments, or issues, please do not hesitate to contact us.\n\n\tTobias Senst: \u003csenst AT nue.tu-berlin.de\u003e \n\n\n## Requirements\nTheir should be no additional requirements to your OS. The library was tested with:\n  - OpenCV3.1.0\n  - Microsoft Visual Studio 2013 / 2017\n  - Matlab 2015a\n  - Windows 7 (x64) / xubuntu Linux (x64)\n  \nThe library was build using OpenCV 3.1.0. To enable the compatibility to another OpenCV version we provide the rlof::Image Wrapper interface.\nTherefore disable the linking of OpenCV using the USE_NO_OPENCV preprocessor flag.\n\n## Installation \n\n```\ngit clone http://github.com/tsenst/RLOFLib\n```\n### C++ Interface \n\nThe header of the C++ interface can be found in the `/include/` directory. The library files are located at the `/lib/` directory.\nThe library was build using OpenCV 3.1.0. To enable the compatibility to another OpenCV version we provide the rlof::Image Wrapper interface.\nIf no OpenCV will be used please set the USE_NO_OPENCV preprocessor flag to disable the OpenCV related code.\nThe C++ library files have been compiled with the following OS and development environments:\n  - Visual Studio 2012 (vc120) / x64 / Windows 7 \n  - Visual Studio 2017 (vc141) / x64 / Windows 7 \n  - gcc-5.4.0 / x64 / Ubuntu 17.04 ( experimental )\n\nAn example applicatio nwhich will demonstrate the application of the RLOF library can be found in the directory `/RLOFApp/`.\nMore detailed description can be found [here...](https://github.com/tsenst/RLOFLib/tree/master/RLOFSample)\n\n### Matlab Interface\nThe Matlab Mex-Files for each OS and are located at the `/Matlab/` directory.\nThe mex files have been compiled with the following OS and development environments:\n  - Matlab 2015 / Visual Studio 2012 / x64 / Windows\n  - Linux (... in progress)\n\nCall `help mex_SparseRLOF` or `help mex_DenseRLOF` for a description of the arguments and see **RLOFSample.m** for an example use of the function.  \nMore detailed description can be found [here...](https://github.com/tsenst/RLOFLib/tree/master/Matlab)\n\n### Python Interface \nThe Python interface depends on *boost-python* and the python *numpy* package. The interface is located at the directory `\\Python`.\nIn addition the example application depends on the *python-opencv* package.\n#### Python 2.X\nInstall python, numpy and opencv packages.\n```\nsudo apt install python-numpy libboost-python-dev python-opencv\n```\nRun example application.\n```\ncd RLOFLib/Python\npython RLOFExample.py\n```\n#### Python 3.X\nInstall python, numpy and pip3 packages. Use pip3 to install the python3 opencv package.\n```\nsudo apt install python3-numpy pip3 libboost-python-dev\nsudo pip3 install opencv-python\n```\nRun example application.\n```\ncd RLOFLib/Python\npython3 RLOFExample.py\n```\n\nThe Python interface libraries have compiled with the following OS and development environments:\n  - Python 3.5.2 / gcc-5.4.0 / Ubuntu 17.04 \n  - Python 2.7.12 / gcc-5.4.0 / Ubuntu 17.04 \n  - Python 3.5 / Visual Studio 2017 (vc141) / Windows \n\t\nCall `import rlof` to import the RLOF library. The **RLOFSample.py** shows how to use the RLOF library.\nMore detailed description can be found [here...](https://github.com/tsenst/RLOFLib/tree/master/Python)\n\t\n## Description \nThe RLOF library contains:\n \n  - compiled versions of PLK/RLOF based methods described below (Senst et al. 2011-2016).\n  - C++ interface and a sample project.\n  - Matlab MEX-functions interface and a Matlab sample script.\n  - supports Windows and Linux OS.\n  - documentation.\n  \n   \nRLOF library supports the following methods published in articles :\n  \n  - Robust local optical flow by shrinked Hampel norm, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1277Senst2011.pdf\"\u003eSenst et al. 2011\u003c/a\u003e, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1349Senst2012.pdf\"\u003eSenst et al. 2012\u003c/a\u003e .\n  - Residual based support region construction for RLOF, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1277Senst2011.pdf\"\u003eSenst et al. 2011\u003c/a\u003e, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1349Senst2012.pdf\"\u003eSenst et al. 2012\u003c/a\u003e.\n  \n  \t\t@ARTICLE{Senst2012,\n\t\t AUTHOR = {Tobias Senst and Volker Eiselein and Thomas Sikora},\n\t\t TITLE = {Robust Local Optical Flow for Feature Tracking},\n\t\t JOURNAL = {IEEE Transactions on Circuits and Systems for Video Technology},\n\t\t YEAR = {2012},                                                             \n\t\t PAGES = {1377--1387},                                                      \n\t\t DOI = {10.1109/TCSVT.2012.2202070}                                         \n\t\t} \n\t\t\t\t\n  - Cross based support region construction for PLK and RLOF, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1448Senst2014.pdf\"\u003eSenst et al. 2014\u003c/a\u003e.\n  \n  \t\t@INPROCEEDINGS{Senst2014,\t\t    \t\t\t\t\t\t\t\t\t\n\t\t AUTHOR = {Tobias Senst and Thilo Borgmann and Ivo Keller and Thomas Sikora},\n\t\t TITLE = {Cross based Robust Local Optical Flow},\t\t\t\t\t\t\t\n\t\t BOOKTITLE = {21th IEEE International Conference on Image Processing},      \n\t\t YEAR = {2014},\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    \t PAGES = {1967--1971},\t\t\t\t\t\t\t\t\t\t\t\t\t    \t\t}\t\t \n\t\t \n  - Iterative refinement strategy for PLK and RLOF using bilinear equations, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1422Senst2013.pdf\"\u003eSenst et al. 2013\u003c/a\u003e.\n  \n \t\t@INPROCEEDINGS{Senst2013,\t   \n\t\t AUTHOR = {Tobias Senst and Jonas Geistert and Ivo Keller and Thomas Sikora},\t\n\t\t TITLE = {Robust Local Optical Flow Estimation using Bilinear Equations for Sparse Motion Estimation},\t\n\t\t BOOKTITLE = {20th IEEE International Conference on Image Processing},\t   \n\t\t YEAR = {2013},\t\t\t\t\t\t\t\t\t\t\t\t\t    \n\t\t PAGES = {2499--2503},\n\t\t DOI = {10.1109/ICIP.2013.6738515},\t\n\t\t}\t\n\t\t\n  - Illumination robust model and global motion prior for PLK and RLOF, \u003ca href=\"http://elvera.nue.tu-berlin.de/files/1496Senst2016.pdf\"\u003eSenst et al. 2016\u003c/a\u003e.\n  \n\t\t@INPROCEEDINGS{Senst2016,\t\t\t    \t\t\t\t\t\t\t\n\t\t AUTHOR = {Tobias Senst and Jonas Geistert and Thomas Sikora},\t\t\n\t\t TITLE = {Robust local optical flow: Long-range motions and varying illuminations},\t\t\t\t\n\t\t BOOKTITLE = {IEEE International Conference on Image Processing},\t\t\n\t\t YEAR = {2016},\t\t\t\n\t\t PAGES = {4478--4482},\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t DOI:10.1109/ICIP.2016.7533207},\t\t\t\t\t\t\t\t\t\t\n\t\t}\n\t\t\n  - To enable PLK implementations instead of the RLOF implementations please set rlof::Parameter::m_HampelNormS0 = std::numeric_limits\u003cfloat\u003e::max().\n    \nIn 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 \nparallelization techniques such as the Streaming SIMD Extension instruction set and multi-threading with OpenMP. \n  \n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsenst%2Frloflib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsenst%2Frloflib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsenst%2Frloflib/lists"}