Blazingly fast multi-object tracker. Works on 1 (x, y) point per object.

Norfair++

Open In Colab

This is a C++ implementation of Techainer's Norfair, which originates from Norfair, a library for real-time 2D object tracking.

Its function is identical to Techainer's version:

It assigns a track id to each object instead of returning a list of new objects after tracking.

This is optimized for the use case when there is 1 representative point per detection.

This contains some more optimizations in tracker update functions and the use of Kalman filter. Overall, the Python binding for this C++ implementation offers a ~10x speedup compared to Techainer's fork, which was already much faster than the original Norfair (for the above use case).

Installation

Clone this repository:

git clone https://github.com/20toduc01/norfair-pp.git
cd norfair-pp

This project requires Eigen3:

curl https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip -o eigen-3.4.0.zip
unzip eigen-3.4.0
cp -r eigen-3.4.0/Eigen ./norfair_pp/Eigen
rm -rf eigen-3.4.0*

Python binding

This project was built with Python in mind. To install the Python binding, first install pybind11:

pip3 install pybind11

Then run setup.py:

python3 setup.py install

Usage and demo

Check out this Colab notebook and the result video.

Watch the video
Owner
Tô Đức (Watson)
20 y/o AI Engineer Intern @Techainer. Is happy when the code runs.
Tô Đức (Watson)
Similar Resources

GROR:A New Outlier Removal Strategy Based on Reliability of Correspondence Graph for Fast Point Cloud Registration

GROR:A New Outlier Removal Strategy Based on Reliability of Correspondence Graph for Fast Point Cloud Registration

GROR GROR:A New Outlier Removal Strategy Based on Reliability of Correspondence Graph for Fast Point Cloud Registration About (a): correspondences gen

Nov 26, 2022

per - Simple unix permission viewer and converter

Per is a simple utility that can verbosely print unix permissions and convert between symbolic and numeric notations and vice-versa.

Oct 23, 2022

Repo per il corso di Programmazione 2 - canale M-Z - A.A. 2020/21

Argomenti del corso Principi della Programmazione a Oggetti Astrazione Incapsulamento e Information Hiding Ereditarietà Polimorfismo Classi e oggetti

Oct 24, 2022

Repository per gli studenti dell'UNICAL che seguono il corso di Fondamenti di Programmazione 2

Fondamenti di programmazione 2 Per gli studenti dell'UNICAL che seguono il corso di Fondamenti di Programmazione 2 (2021/2022) Indice degli argomenti

Jul 22, 2022

A BOF to parse the imports of a provided PE-file, optionally extracting symbols on a per-dll basis.

PE Import Enumerator BOF What is this? This is a BOF to enumerate DLL files to-be-loaded by a given PE file. Depending on the number of arguments, thi

Nov 9, 2022

Side panels for the Voron Zero printer that has 16 WS2812 RGB LED's per side.

Side panels for the Voron Zero printer that has 16 WS2812 RGB LED's per side.

Voron Zero RGB Side Panels Side panels for the Voron Zero printer with 16 WS2812 RGB LED's per side. The build below has some 3mm TAP Plastic black LE

Jul 22, 2022

Simdutf - Unicode routines (UTF8, UTF16): billions of characters per second.

Simdutf - Unicode routines (UTF8, UTF16): billions of characters per second.

simdutf: Unicode validation and transcoding at billions of characters per second Most modern software relies on the Unicode standard. In memory, Unico

Nov 29, 2022

Per function, Lua JIT using LLVM C++ toolchain

Lua Low Level Brief This is an alternative Lua (5.3.2) implementation that aims to archive better performance by generating native code with the help

Sep 4, 2021

Macro magic for declaring/calling Objective-C APIs from C11 or C++. Preloads selectors, chooses the correct objc_msgSend to call per method/platform.

OC - Easily Declare/Invoke Objective-C APIs from C11 or C++11 Usage // Call class and instance methods: NSWindow* const nswindow = oc_cls(NSWindow,new

Sep 9, 2022
Comments
  • Simplifies installation with dynamic linking through CMake

    Simplifies installation with dynamic linking through CMake

    Hi. Great job ;)

    I notice the installation process is a bit tedious so I tried to simplified it with dynamic linking through CMake.

    Also why not write some unit test, set up CI/CD flow and publish this package to PyPI with proper documentation. It would looks much more professional. I would love to help contribute some of that ...

    Thanks for checking by ;)

Tsdf-plusplus - TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction

TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction TSDF++ is a novel multi-object TSDF formulation that can encode mult

Nov 24, 2022
Minimalistic text-based 1-bit music tracker

1bitr 1bitr ("One Bitter" or "The Bitter One") is a minimalistic text-based music tracker. It only supports 1-bit audio playback and encourages users

Nov 22, 2022
Arduino based bicycle movement sensor and GPS tracker
Arduino based bicycle movement sensor and GPS tracker

Bike Tracker Background There are actually plenty of bicycle trackers around, so why make your own? Well, so that it works the way you want it… And it

Aug 21, 2022
Bluetooth low energy (BLE) tracker for ESP32

BLEcker Bluetooth low energy (BLE) tracker for ESP32 This software is written for ESP32 boards to track BLE devices. It can be used for your smart hom

Oct 16, 2022
A decompilation of the Nintendo Switch version of Captain Toad: Treasure Tracker [v1.3.0].

cttt-decomp A decompilation of the Nintendo Switch version of Captain Toad: Treasure Tracker [v1.3.0]. Build Instructions Obtain a clean copy of a mai

Aug 17, 2022
Aims to be an accurate C port of Impulse Tracker 2.15's IT replayer (with selectable IT2 sound drivers)

it2play Aims to be an accurate C port of Impulse Tracker 2.15's IT replayer (with selectable IT2 sound drivers). This is a direct port of the original

Sep 27, 2022
CC1312R1 Sub-G Solar power asset tracker
CC1312R1 Sub-G Solar power asset tracker

Sub-G Solar Power Asset Tracker TOP BOTTOM Sub-G Solar Power Asset Tracker 은 AxDen 의 Aggregator Platform 를 이용하여 온도, 가속도, GPS 위치와 같은 Asset tracking 에 필

Nov 8, 2022
Multi-GNSS Precise Point Postioning with Ambiguity Resolution

This is demo for multi-GNSS precise point positioning with ambiguity resolution (PPP-AR), which is based on RTKLIB and RTKLIB_demo5. FEATURES ppp-ar w

Sep 30, 2022
RemixDB: A read- and write-optimized concurrent KV store. Fast point and range queries. Extremely low write-amplification.

REMIX and RemixDB The REMIX data structure was introduced in paper "REMIX: Efficient Range Query for LSM-trees", FAST'21. This repository maintains a

Nov 1, 2022
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds

Direct LiDAR Odometry: Fast Localization with Dense Point Clouds DLO is a lightweight and computationally-efficient frontend LiDAR odometry solution w

Nov 21, 2022