Turing hardware generated optical flow map sample --- source footage

Optical Flow SDK exposes the latest hardware capability of Turing GPUs dedicated to computing the relative motion of pixels between images. The hardware uses sophisticated algorithms to yield highly accurate flow vectors, with robust frame-to-frame intensity variations and tracks the true object motion faster and more accurately.

Key Features

NVIDIA Optical Flow SDK exposes a new set of APIs for this hardware functionality:

  • C-API – Windows and Linux
    • Windows – CUDA and DirectX
    • Linux – CUDA
  • Granularity: 4x4 vectors at ¼ pixel resolution
    • Raw vectors – directly from hardware
    • Pre-/post-processed vectors via algorithms to improve accuracy
  • Accuracy: low average EPE (End-Point-Error)
  • Robust to intensity changes
Operating System Windows, Linux

NVIDIA GeForce, Quadro and Tesla products with Turing generation GPUs.

NVIDIA Linux display driver 418.30 or newer
NVIDIA Windows display driver 418.81 or newer

Development Environment GCC 5.1 or newer
C/C++ Compiler
CUDA Toolkit

Download Optical Flow SDK 1.0

By clicking the "Agree & Download" button below, you are confirming that you have read and agree to be bound by the SOFTWARE DEVELOPER KITS, SAMPLES AND TOOLS LICENSE AGREEMENT for use of the SDK package. The download will begin immediately after clicking on the "Agree & Download" button below.

Windows / Linux
Agree & Download

Until a few years ago, tasks such as recognizing and tracking an object or classifying an action in video streams were out of reach for computers due to complexity involved. With the advent of Deep Neural Networks (DNNs) and massive acceleration made possible by GPUs, all these tasks can now be automated. Some of the most important applications of optical flow are: tracking objects within video frames, video action recognition, stereo depth estimation etc.

The following diagram illustrates a network which uses optical flow for improving accuracy of video action recognition

Optical Flow also benefits many other use cases including: Stereo depth estimation, video frame interpolation and extrapolation.

Optical Flow functionality in Turing GPUs accelerates these use-cases by offloading the intensive flow vector computation to a dedicated hardware engine on the GPU silicon, thereby freeing up GPU and CPU cycles for other tasks. This functionality in hardware is independent of CUDA cores.

Developer Forums

Our forum community is where Developers can ask questions, share experiences and participate in discussions with NVIDIA and other experts in the field.
Check out the forums here.

Additional Resources