CvTracker C++ lib. Fast cross-platforms video tracking library

€6,000.00

C++ library CvTracker version 9.0.0 compiled for Window x64 using MSVC2022 compiler and OpenCV 4.8.0.

LICENSE: We sell compiled version of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. List of files of the compiled version of the library can be found in programmer’s manual. Please read the license agreement before purchasing: DOWNLOAD LICENSE. You can buy technical support service for this product.

Add To Cart
Technical support service
Options:

Purchase options

You can buy technical support service for this product. Please contact us (info@constantrobotics.com) if you need:

  • Library for specific platform and OS.

  • Buying by bank transfer for company. You can by additional technical support.

  • Source code of the library according to LICENSE. Price on request.

Downloads

Programmer’s manual: DOWNLOAD

Demo application to test on your video (Windows x64): DOWNLOAD

Demo application to test on your video (Raspberry PI 4B Debian Bulleye 11 x64): DOWNLOAD

Demo application to test on your video (Raspberry PI 5 Debian Bookworm 12 x64): DOWNLOAD

Test C++ project to check compatibility with your platform. If this project can be compiled the CvTracker will be compatible with your platform: DOWNLOAD

Overview

C++ library CvTracker version 9.0.0 is intended for automatic object video tracking. The library is written in C++ (C++17 standard) and uses OpenCV (version >= 4.5.0) library to perform forward and backward Fourier transforms. The library is compatible with any processors and operating systems supporting C++ compiler (C++17 standard) and OpenCV library (version >= 4.5.0). 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. The library contains an advanced tracking algorithm CSRM developed by ConstantRobotics Ltd. 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 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 (source code included, defines programming interface. Apache 2.0 license), OpenCV opensource library (linked, version >= 4.5.0, Apache 2.0 license). Additionally CvTracker demo application depends on third-party libraries: FormatConverterOpenCv pixel format converter library (source code included, the same license as CvTracker library), SimpleFileDialog file dialog library (source code included, Apache 2.0 license), VSourceOpenCv video capture library (source code included, the same license as CvTracker library).

Demo video

Performance

Tracking rectangle size 128x128 pixels, grayscale, one video frame processing time:

  • 12th Gen Intel Core i5-12500H CPU (one core 2.5 GHz used), search window size 128x128 pixels - 0.5 msec (~2000 fps), search window size 256x256 pixels - 1.4 msec (~714 fps).

  • Jetson Nano (one core 1.43 GHz used), search window size 128x128 pxl - 5.0 msec (~200 fps), search window size 256x256 pixels - 14.5 msec (~68 fps).

  • NXP i.MX8M Plus (one core 1.8 GHz used), search window size 128x128 pxl - 5.5 msec (~180 fps), search window size 256x256 pixels - 16.5 msec (~60 fps).

  • Raspberry Pi 4 (one core 1.5 GHz used), search window size 128x128 pxl - 4.5 msec (~222 fps), search window size 256x256 pixels - 11.5 msec (~86 fps).

Simple interface

class CvTracker : public VTracker {
public:
    /// Get string of the library version.
    static std::string getVersion();

    /// Init video tracker. All params will be set.
    bool initVTracker(VTrackerParams& params) override;

    /// Set video tracker param.
    bool setParam(VTrackerParam id, float value) override;

    /// Get video tracker parameter value.
    float getParam(VTrackerParam id) override;

    /// Get video tracker params (results).
    void getParams(VTrackerParams& params) override;

    /// Execute command.
    bool executeCommand(VTrackerCommand id,
                        float arg1 = 0,
                        float arg2 = 0,
                        float arg3 = 0) override;

    /// Process frame. Must be used for each input video frame.
    bool processFrame(cr::video::Frame& frame) override;

    /// Get image of internal surfaces.
    void getImage(int type, cr::video::Frame& image) override;

    /// Decode and execute command.
    bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};
VStabiliserOpenCv C++ lib. Fast cross-platform video stabilisation library
€4,000.00