Tracker is a particle tracking trajectory connector tool that generates trajectories by tracking swarms of interacting particles through a sequence of video frames. Tracker formulates optimal trajectory connection problems as instances of the linear assignment problem (LAP), and uses the a sparse-matrix implementation of the Jonker-Volgenant Algorithm to solve the LAP problems.
- Tracker provides C++ and Matlab object-oriented interfaces.
tracker::LAPTrack
- Tracker is designed for cross-platform compilation to Linux and Windows 64-bit targets.
In single particle tracking applications, a set of likely particles are localized for each frame of a video capture. The goal of trajectory connection is to partition the localizations from all the frames into a set of trajectories. Each trajectory is a sequence of localizations which are likely to be from the same object (point emitter).
The Tracker library implements a two-phase strategy to trajectory connection. First a frame-to-frame algorithm sequentially builds a set of trajectories connecting localizations in adjacent frames, next a gap-closing phase connects shorter trajectories across several frames as particles are often not localized in every frame for various reasons including experimental and photo-chemical effects.
Figure 1: The frame-to-frame trajectory connection problem
The Tracker Doxygen documentation can be build with the OPT_DOC
CMake option and is also available on online:
Tracker uses the CMake build system. The script build.sh
sets the project-specific CMake options
to sensible values and builds the project under ./_build/Release
and installs it to the ./_install
prefix, which can be set with the INSTALL_PREFIX
environment variable.
INSTALL_PREFIX="..." ./build.sh <additional cmake args...>
Edit build.sh
to customize or alternatively use the CMake gui directly:
cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
cmake-gui $BUILD_DIR
cmake --build $BUILD_DIR --target install
- Armadillo - A high-performance array library for C++.
- [Ubuntu:
libarmadillo-dev
] [Gentoo:sci-libs/armadillo
]
- [Ubuntu:
These packages are specialized CMake projects. If they are not installed on the development system, the add_external_dependency() function will automatically download, configure, build and install them to CMAKE_INSTALL_PREFIX
.
- BacktraceException - A library to provide debugging output on exception calls. Important for Matlab debugging.
- MexIFace - MexIFace provides an object-oriented C++/Matlab interface and provides cross-compilation support to build for Matlab target environments on Linux and Windows 64-bit targets.
The following CMake options control the build.
BUILD_SHARED_LIBS
- Build shared librariesBUILD_STATIC_LIBS
- Build static librariesBUILD_TESTING
- Build testing frameworkOPT_DOC
- Build documentationOPT_INSTALL_TESTING
- Install testing executables in install-tree.OPT_EXPORT_BUILD_TREE
- Export the package from the build-tree and place in the CMake user package registry.OPT_MATLAB
- Enable matlab module building with MexIFace.
See:
Tracker exports a CMake config-file, allowing it to be found easily with CMake build systtems
find_package(Tracker)
target_link_libraries(${MY_TARGET} Tracker::Tracker)
In the C++ source
#include <Tracker/LAPTrack.h>
tracker::LAPTrack tracker(params);
- Copyright: 2013-2019
- Author: Mark J. Olah
- Email: (mjo@cs.unm DOT edu)
- LICENSE: Apache 2.0. See LICENSE file.