VPI - 视觉编程接口

3.2 版本

VPI - 视觉编程接口文档

NVIDIA® 视觉编程接口 (VPI) 是一个软件库,它在 NVIDIA 嵌入式和独立设备中可用的多个计算硬件平台上实现了计算机视觉 (CV) 和图像处理 (IP) 算法。

VPI 提供了对计算硬件的无缝访问,这些硬件必须通过不同且有时不兼容的 API 进行访问,例如 OpenCVNVIDIA® CUDA® SDK,或者对于那些公共 API 不存在的硬件,例如 PVA (可编程视觉加速器)、VIC (视频和图像合成器) 和 OFA (光流加速器)。

该 API 旨在易于使用,且不牺牲性能。这允许快速原型设计和微调,从而显著缩短上市时间。它可以直接用于基于 C/C++ 和 Python 的系统。

在 VPI 中,相同的算法在不同的后端实现,例如 CPU、GPU、PVA1、VIC2 和 OFA2。处理流水线可以设置为充分利用目标设备的全部已安装计算能力。例如,GPU 可以在一个帧上执行推理,而 PVA 和 VIC 可以在后续帧中预处理图像。CPU 可以执行诸如更新 GUI 和后处理图像之类的内务处理任务,而不会影响其他任务的性能。

VPI 在支持的设备后端之间提供无缝的零拷贝内存映射,具体取决于某些内存特性。对于支持它的平台,零拷贝内存映射可显著提高吞吐量。

VPI 支持与现有项目轻松互操作,这些项目使用了 OpenCV 和 NVIDIA® CUDA® SDK 库等。这允许逐步用更快的 VPI 等效项替换现有的计算任务。

以下是 VPI 提供的一些算法示例

1 仅在 Jetson Orin AGX 和 NX 设备上可用。
2 在所有 Jetson Orin 设备上可用。