NVIDIA Jetson is now indispensable for applications that require video processing. NVIDIA has a wide range of software such as DeepStream SDK and NVIDIA Isaac SDK, as well as peripheral tools optimized for NVIDIA GPUs. We recommend that you However, depending on the application to be developed, there may be cases where a suitable SDK cannot be found or these SDKs are not suitable due to special requirements. In that case, it is necessary to develop an application that directly calls the API of the library included in JetPack.

 

In this series of articles, we assume that the system will process the image information captured from the camera with the GPU in the Jetson module and display the results. I will explain. In Part 1, let's consider the software configuration of the system built on Jetson.

 

[Jetson video processing programming]

第1話 NVIDIA提供 JetPackとSDKでできること

Episode 2 Video input (CSI-connected Libargus-compliant camera)

Episode 3 Video input (USB-connected V4L2-compliant camera)

Episode 4 Resize and format conversion

Episode 5 Image display

Episode 6 Video encoding

Episode 7 Video decoding

Episode 8 Image Processing

Episode 9 Deep Learning Inference

Episode 10 Maximum Use of Computing Resources

Jetson Software Development Kit

NVIDIA provides JetPack as a software development kit (SDK) for Jetson. By introducing JetPack into the Jetson developer kit, you can immediately start developing application software for Jetson. JetPack includes the following software: These software are general-purpose ones that do not specifically select the field of application.

Operating system (L4T)
  • Linux kernel
  • bootloader
  • Various device drivers
  • flash utility
  • Ubuntu-based filesystem (sample)
TensorRT
  • Fast runtime for deep learning inference
cuDNN
  • High performance library for deep neural networks
CUDA toolkit
  • A development environment for developing GPU-accelerated applications
Multimeida API
  • A package that provides low-level APIs, including camera application APIs and sensor driver APIs
computer vision
development tools
(installed on host PC)

Use of application domain-specific SDKs

More application-specific SDKs can be deployed on top of JetPack. Typical examples are as follows. These SDKs are sometimes called "frameworks," "toolkits," "platforms," etc. If you can use an SDK that is specific to your application domain, you may be able to build your application with less programming effort. On the other hand, fine control may be difficult. It is a trade-off between taking programming man-hours and taking the ease of creating application-specific parts. Also, if the SDK is difficult to use, it may cost a lot to learn, so be careful.

SDKs

Usage

Features

NVIDIA DeepStream SDK Intelligent video analytics

Provided as part of NVIDIA Metropolis and can be used in combination with pre-trained models and Transfer Learning Toolkit, a tool for transfer learning


◎AI監視カメラ、導線(動線)解析などのアプリケーションを構築するのであれば、必ず利用を検討すべきSDK

参考:[AI画像解析アプリ開発に必要な知識] 第1話 NVIDIA DeepStream SDKとは

NVIDIA Isaac SDK AI-powered robot A simulator is also provided.
Open SDK
ROS etc.
Different for each SDK Enhancing the ecosystem
Jetson-compatible SDKs sold by third parties Different for each SDK Each third party has its own characteristics

If you can't find an application-specific SDK or it isn't right for you

冒頭にもありましたが、基本的にはNVIDIA DeepStream SDKやNVIDIA Isaac SDKの利用をお勧めしていますが、JetPackに含まれるライブラリーのAPIを直接コールする方法を知っていると今後のアプリケーション開発に役立てていただくことが可能です。

想定するビデオ処理ステップと利用するライブラリー/APIは以下のとおりです。

process

Libraries/APIs used

Video input (CSI-connected Libargus compliant camera)
  • Libargus Camera API
  • GStreamer
Video input (V4L2 compliant camera with USB connection)
  • Video for Linux API version 2 (V4L2)
  • OpenCV
  • GStreamer
Resize and format conversion
  • Multimedia API
  • NVIDIA Video Programming Interface (VPI)
  • NVIDIA Performance Primitives (NPPs)
  • OpenCV
  • GStreamer
image display
  • Multimedia API
  • X11 + OpenGL ES
  • NVIDIA Tegra Direct Rendering Manager (DRM)
  • OpenCV
  • GStreamer
video encoding
  • Multimedia API
  • GStreamer
video decoding
  • Mutlimedia API
  • GSteamer
Image processing
  • CUDA
  • NVIDIA Video Programming Interface (VPI)
  • OpenCV
deep learning inference
  • cuDNN
  • TensorRT

Next time, I will explain the "video input" method that should be considered first in a video processing system!

連載記事「Jetsonビデオ処理プログラミング」の第1話、NVIDIA提供 JetPackとSDKでできることをご紹介しましたがいかがでしたでしょうか。

次回はいよいよビデオの入力方法についてご紹介します。

If you have any questions, please feel free to contact us.

We offer selection and support for hardware NVIDIA GPU cards and GPU workstations, as well as facial recognition, route analysis, skeleton detection algorithms, and learning environment construction services. If you have any problems, please feel free to contact us.