CvTracker C++ library
precise and high performance video tracking library
C++ library CvTracker is intended for automatic object video tracking. The library is written in C++ (C++17 standard) and compatible with any processors and operating systems supporting C++ compiler (C++17 standard) and, optionally CUDA Toolkit for forward and backward FFT operations. The library provides fast calculation, compatibility with low-power processors, high accuracy and contains a lot of additional functions and modes, which allow using it in camera systems of any configuration. It contains an advanced tracking algorithm CSRM developed by ConstantRobotics. The library provides tracking of low-contrast and small-sized objects against a complex background. The library contains a description of the C++ class CvTracker. A single instance of the CvTracker class provides tracking of a single object on video. To track several objects simultaneously, several instances of the CvTracker class must be created. CvTracker library depends on third-party libraries: VTracker interface library (defines programming interface, source code included, Apache 2.0 license) and cuFFT (linked, optional if platform supports CUDA). Additionally demo application depends on third-party libraries: OpenCV open source library (for user interface, linked, version >= 4.5.0, Apache 2.0 license), FormatConverterOpenCv (provides functions to convert pixel formats, source code included) and SimpleFileDialog (file dialog library, source code included, Apache 2.0 license). In the CMake configuration step, the library determines whether CUDA support is available on the device. If CUDA is supported, the library will be compiled using cuFFT. The user can select the computation platform (CPU or GPU) in the library parameters at runtime.