GStreamer Video Stabilizer for NVIDIA Jetson Boards - Video Stabilization Basics
GStreamer Video Stabilizer |
---|
Video Stabilization Basics |
User Guide |
Getting Started |
Examples |
Performance |
Contact Us |
Introduction to GStreamer Video Stabilizer
GstNvStabilize is a GStreamer plug-in that performs video stabilization on a sequence of images accelerated with the GPU. Specifically, the algorithm uses internal modules provided by NVIDIA VisionWorks toolkit and OpenVX to compute the Harris feature detection and the Lucas-Kanade sparse pyramidal optical flow that provide the inter-frame's motion estimation.
NVIDIA VisionWorks Toolkit for OpenCV Video Stabilization
NVIDIA VisionWorks toolkit is a NVIDIA proprietary software development package for computer vision (CV) and image processing. It implements and extends the Khronos OpenVX standard, and it is optimized for CUDA-capable GPUs and SOCs. This enables developers to implement CV applications in a portable way for a variety of platforms.
The core VisionWorks modules are engineered for solutions in:
- Robotics and Drones
- Autonomous Driving
- Intelligent Video Analytics
- Augmented Reality
The toolkit helps you unlock the possibilities for GPU-based CV systems by adding your own algorithms and processing pipelines. Using VisionWorks in conjunction with other APIs like OpenCV provides access to many open-source CV algorithms.
VisionWorks Primitives
VisionWorks, being an extension of OpenVX, is a graph oriented framework. Each node represents a computation unit and is referred to as "primitives". Here are some interesting remarks about primitives:
- VisionWorks primitives are CUDA optimized.
- 85% of VisionWorks OpenVX API is also accelerated with NEON.
- Primitives provide up to 92x speedup compared to OpenCV CPU kernels on Drive PX
- Primitives provide up to 13x speedup compared to OpenCV CUDA kernels on Drive PX
How does GstNvStabilize Video Stabilizer Work?
GstNvStabilize plugin builds a graph of VisionWorks and OpenVX primitives. The following figure depicts an overview of the processing graph being used to perform the stabilization.