VideoStabiliserOpenCv C++ library v4.0.1

Fast cross-platform C++ library for digital video stabilisation in three axes (horizontal, vertical and rotation).

Description

VStabiliserOpenCv (Video stabilisation) C++ library includes version 4.0.1 (further – library) is designed for 2D and 3D digital video stabilization (horizontal offset, vertical offset and rotation). The library is used in camera systems for video vibration compensation. The library is written in C++ (C++17 standard) and uses the OpenCV library (version 4.5 and higher) to perform various operations (cv::dft, cd::idft, cv::warpAffine etc.). Library is compatible with any CPU platforms and OS, which supports C++17 and OpenCV library (version 4.5 and higher). The library has a simple programming interface and minimal number of parameters. The library inherits interface from VStabiliser class, which provides flexible, customizable parameters and can be easily integrated into systems of any complexity. The library supports varies pixel formats (RBG24, BGR24, GRAY, YUV24, YUYV, UYVY, NV12, NV21, YV12, YU12, listed in Frame class) and performs calculations in a single computational thread. Library includes two different algorithm to chose: 2D/3D based on optical flow and 2D based on Fourier transform. The library is supplied as source code only.

Benchmarks

In order to evaluate the calculation speed of the VStabiliserOpenCv library on a particular processor and operating system, the VStabiliserOpenCvBenchmark test program is provided. It allows you to test the library with different parameters. The VStabiliserOpenCvDemo application is provided as well for testing on your video. Additionally, a test video file is provided to ensure uniform testing conditions across different platforms. The test video provides the most challenging conditions for the stabilisation algorithms. For scenarios with lower vibrations, the processing time can be even lower. Detailed information about benchmark results can be found in Programmer’s manual. Some results (processing time for one video frame, best results):

  • Intel(TM) i7-13700H, 1920x1080 pixels video, 2D stabilisation - 1.2 msec.

  • Intel(TM) i7-13700H, 1920x1080 pixels video, 3D stabilisation - 3.5 msec.

  • Intel(TM) i7-13700H, 1280x720 pixels video, 2D stabilisation - 1.0 msec.

  • Intel(TM) i7-13700H, 1280x720 pixels video, 3D stabilisation - 1.4 msec.

  • Raspberry PI 4B, 1920x1080 pixels video, 2D stabilisation - 9.0 msec.

  • Raspberry PI 4B, 1920x1080 pixels video, 3D stabilisation - 28.0 msec.

  • Raspberry PI 4B, 1280x720 pixels video, 2D stabilisation - 6.0 msec.

  • Raspberry PI 4B, 1280x720 pixels video, 3D stabilisation - 16.0 msec.

  • Jetson Orin NX, 1920x1080 pixels video, 2D stabilisation - 3.9 msec.

  • Jetson Orin NX, 1920x1080 pixels video, 3D stabilisation - 13.6 msec.

  • Jetson Orin NX, 1280x720 pixels video, 2D stabilisation - 3.0 msec.

  • Jetson Orin NX, 1280x720 pixels video, 3D stabilisation - 6.2 msec.

Test video and stabilisation results with different library parameters you can check on video.

Downloads

  • VStabiliserOpenCv v4.0.1 programmer’s manual: DOWNLOAD.

  • Free demo application to check how the library works on your video in any situations: DOWNLOAD.

  • Examples: DOWNLOAD.

Demo video

[ Video for the tests taken from public sources ]

Use the demo application to estimate the quality of the tracking algorithm.

What’s new in v4.0.1 vs 3.1.0

  • Changed programming interface according to new VStabiliser interface class.

  • Added new calculation algorithm based on FFT. Calculation speed increased 80% in comparison with previous method.

  • Added auto calculation of filter parameters.

  • Added support for all RAW pixel format listed in Frame class.

  • Added C wrapper and Python support.


Price and Terms:

The VStabiliserOpenCv library is supplied under a license in source code. The library uses OpenCV (under Apache 2.0 license) library to perform some operations. The price of a perpetual license for the source code available on request by email info@constantrobotics.com.