NVIDIA JetPack 6.0(现已正式发布)
NVIDIA JetPack SDK 为 NVIDIA Jetson 模块提供支持,为构建端到端加速 AI 应用程序提供全面的解决方案。JetPack 6 通过微服务和一系列新功能扩展了 Jetson 平台的灵活性和可扩展性。它是 2024 年下载次数最多的 JetPack 版本。
随着 JetPack 6.0 生产版本的普遍可用,开发人员可以放心地将这些新功能带入最先进的嵌入式 AI 和机器人应用程序。这篇文章重点介绍了主要功能和新的 AI 工作流程。
JetPack 6 功能亮点
JetPack 6 在 Jetson 上支持越来越多的基于 Linux 的发行版。其中包括 Canonical 的 Ubuntu 服务器、Redhat 的 RHEL 9.4、SUSE、Wind River Linux、Redhawk Real Time OS 和各种基于 Yocto 的发行版。这些基于 Linux 的发行版在 Jetson 上提供商业支持的企业产品,可放心部署和管理基于 Jetson 的产品。
运行任何 Linux 内核的能力使 Jetson 客户能够使用他们选择的内核版本,并避免花费资源将其驱动程序反向移植到特定的 Jetson Linux 内核。Jetson 客户可以独立于 JetPack 路线图维护他们的内核。
使用 JetPack 6,您可以自由升级计算堆栈,而无需升级 Jetson Linux BSP。此功能在社区中特别受欢迎。
此外,JetPack 6 将 Jetson 平台服务添加到 Jetson Linux BSP 和 Jetson AI Stack。Jetson 平台服务是一套预构建和可定制的服务,旨在加速 Jetson 设备上的 AI 应用程序开发。这些模块化服务集合支持真正的 API 驱动和分解的云原生应用程序。
具有 Jetson 平台服务的模块化、分解式、可互换架构
Jetson 平台服务现已作为 JetPack 6 的一部分提供,它提供了一种模块化架构,其中包含大量可定制软件和可重复使用的微服务,可用于构建视觉 AI 应用程序。它提供用于基础设施功能的基础服务、用于洞察生成的 AI 服务以及用于安全的边缘到云连接的参考云。
多样化的微服务包括视频存储工具包 (VST)、基于 NVIDIA DeepStream 的 AI 感知服务、生成 AI 推理服务、分析服务等。每个微服务都提供 API 来配置和访问微服务的功能。
这些 API 使用 IoT 网关基础服务在系统外部呈现,基于云原生架构中使用的标准模式,使用单个网关在系统内公开 API。客户端应用程序通过 API 网关服务调用相应的 API 来行使微服务功能。
Jetson 平台服务还提供了一个 IoT 云模块,使客户端在远程访问这些 API 时能够进行身份验证和授权。此 IoT 云模块与云无关,可以从任何公共云或私有云运行。
AI 服务
AI 服务集合利用 AI 模型、多对象跟踪和流式分析技术的组合提供优化的视频处理和 AI 推理功能。这些是具有标准化 API 的容器化软件,可以集成到最终应用程序中,如参考工作流程所示。
VLM 的 AI 推理服务
视觉语言模型 (VLM) 通过将视觉模态与 LLM 相结合,实现对图像和视频的语义理解。VLM 的 AI 推理服务支持通过标准化 API 访问 VLM 功能。可以使用两种受支持的模型(VILA 或 LLaVA)之一实例化该服务,并提供两种主要功能:
- 通过自然语言提示设置从流式视频创建警报的条件
- 查询(提示)视频并使用自然语言获得响应
VLM 通常需要相当大的 GPU 和内存需求。它们的大小根据参数数量而不同。VILA 有 13B、7B 和 2.7B 版本。随着参数数量的增加,模型在掌握图像语义方面的能力的准确性会提高,但代价是更高的 GPU 使用率和内存利用率。用户需要根据他们对 Jetson 平台的选择以及基于工作负载的可用系统资源来选择正确的模型。
此服务可以集成到生成式 AI 工作流程中,如下一节所述。
AI 分析服务
视频分析应用程序通常涉及分析人或物体在摄像机视野范围内的移动。AI 分析服务对推理服务(例如检测或跟踪)生成的元数据进行操作。此服务获取流式元数据并生成对象移动的空间和时间洞察。此服务的核心功能包括:
-
越线(绊线):在摄像机视野范围内定义虚拟折线,并维护一段时间内越过该线的物体数量。
-
感兴趣区域:定义封闭多边形并维护该区域内物体的时间序列计数。例如,这可用于检测结账队伍中等待的人数何时达到一定限制。
-
行为分析:帮助检索物体在摄像头视野范围内的移动轨迹。此功能可用于通过创建热图可视化来了解物体移动的趋势(图 3)。
这里重点介绍的所有分析都可以使用 API 生成和提取。有关 AI 分析服务的更多信息,请参阅 Jetson 平台服务发布文档。
基础服务
基础服务提供与领域无关的功能,用于组装生产级 AI 系统,包括摄像头管理、存储管理、物联网、API 网关和消息总线。相关服务可以通过 SDK 管理器方便地安装(从 Jetpack 6.0 GA 版本开始),然后将其部署为 Linux 服务。基础服务包括:
视频存储工具包 (VST) 服务:支持自动发现符合 ONVIF 标准的摄像头,以及从摄像头提取、存储和流式传输视频流。下游 AI 服务或任何应用程序都可以通过标准流式传输协议(如 RTSP 或 webRTC)从 VST 使用这些流。VST 针对处理大量连接的摄像头进行了优化,并利用 Jetson 中底层硬件加速支持进行视频解码和编码、缩放和预处理以及叠加生成。
-
存储服务:存储配置和管理支持自动配置连接到 Jetson 设备的 SATA 和 NVMe 存储,以补充板载存储和各种微服务之间的存储分配。存储服务通过 Jetson Linux 提供的标准 LUKS 功能支持跨多个驱动器的逻辑卷(包括随时间添加驱动器)和磁盘加密(用于静态数据保护)。
-
网络服务:支持使用板载或外部 POE 交换机配置用于连接到 IP 摄像机的以太网接口,并在摄像机启动期间设置 DHCP 以分配 IP 地址。
-
Redis 服务:Jetson 上的统一系统消息总线,支持各种微服务之间的消息传递和同步,同时用作分析的时间序列数据库。
-
API 网关(Ingress):大多数微服务发布 API 供其他服务和应用程序调用。Ingress 服务提供了一种标准机制来呈现这些 API 端点。传入的请求根据配置的路由路由到适当的微服务,从而使底层微服务架构远离 API 消费者。
-
监控:为了监控您的应用程序和设备上运行的服务,监控服务提供了使用 prometheus 收集这些数据的钩子。它还包括一个用于可视化的 grafana 仪表板,可以使用 Ingress 或 API 网关服务远程访问。它包括一个系统监控服务,用于跟踪系统利用率,包括 CPU 和 GPU、内存和磁盘(使用节点导出器收集)。
-
IoT 网关:对于使用任何云服务的应用程序,IoT 网关服务提供了一个配置代理来验证设备并安全地连接到云。它与云建立双向 TCP 连接,使设备(可能位于防火墙后面)能够与云通信。传入流量通过 Ingress 服务转发到已注册的内部端点。它还支持通过云将来自各种微服务的事件推送到外部客户端,并且可以扩展以支持从用户创建的微服务派生的自定义事件。
-
防火墙:如果您需要防火墙来保护您的设备,特别是对于生产情况,此服务会设置 UFW(简单防火墙)和一些默认规则,您可以根据需要进行修改以控制系统的进出网络流量。
启用生成式 AI 工作流
借助 Jetson 平台服务,您可以快速构建边缘 AI 应用程序。为了进一步加速这一旅程,您可以使用多个参考工作流,包括生成式 AI 工作流。这些工作流说明了配置和实例化各种 Jetson 服务的最佳实践。它提供了使用 API 和前面概述的服务构建复杂视觉 AI 应用程序的方法。您可以使用 API 自定义或基于这些工作流进行构建。工作流打包为 Docker Compose 文件,并附带一个参考移动应用程序,以展示如何利用 API。
AI-NVR
AI-NVR(网络视频录像机)是一个端到端参考应用程序,用于构建基于 AI 的 NVR 解决方案。它配备了许多令人惊叹的功能,例如视频管理和存储、人员占用和热图指标、用户身份验证和授权、设备安全和加密存储以及参考移动应用程序。通过利用 Jetson 平台上的所有不同加速器,此工作流针对通道吞吐量和性能进行了优化。参考工作流程使用 DeepStream AI 感知服务,该服务具有高度准确的 NVIDIA PeopleNet 模型和多对象跟踪器。您可以灵活地使用自己的 AI 模型自定义感知服务,也可以使用自己的感知服务。要了解有关此工作流程的更多信息,请观看 AI-NVR 概述。
边缘生成式 AI 警报
借助生成式 AI 警报,您可以使用 VLM 从视频中提取见解并使用自然语言生成警报。这些模型结合了视觉和语言模式,在由文本、图像和视频组成的大型数据集上进行训练,可以理解自然语言提示并执行视觉问答。
VLM 超越了基本的对象检测和分类,并提供对场景的更深入的上下文理解。使用此工作流程,您可以使用自然语言在输入视频流上使用 API 设置警报。例如,“发生火灾时发出警报”。其次,您可以对视频进行问答。
使用生成式 AI 进行零样本检测
零样本检测工作流程使用 NanoOwl 模型,这是一种可以检测任意数量对象的开放词汇模型。与在固定数量的类别上训练的传统对象检测模型不同,开放词汇模型是在互联网规模数据上训练的,这使得它能够检测最常见的对象,而无需明确训练这些类别的模型。使用此工作流程,用户可以通过使用 API 提示类别的模型进行检测来动态检测任何对象。要了解有关此工作流程的更多信息,请参阅使用 NVIDIA Metropolis 微服务将生成式 AI 带到 Jetson 的边缘。
扩展的 Jetson 支持
Jetson 平台服务兼容 Orin 系列中的所有设备,从 Orin Nano 到 AGX。基础服务在所有这些设备上都受支持,并且可以使用 SDK Manager 安装。同样,AI-NVR 工作流程在所有设备上都受支持,但流的数量会因硬件配置而异。
对于 VLM 参考工作流程,需要考虑到 Jetson 平台来选择模型。有关 Jetson Orin AGX 和 Nano 上预期流计数的信息,请参阅 Jetson AI Lab 上的 VLM 参考页面。在决定模型时,还要考虑您的案例中可能需要 GPU 和内存资源的任何其他工作负载。
启用生产部署
生产系统需要强大、可靠的硬件。NVIDIA 与许多 OEM 建立了深厚的合作伙伴关系,可以提供生产质量的载板和封装。我们的一些合作伙伴还集成并验证了上述工作流程和 Jetson 平台服务。这保证了所有服务都能在他们的平台上开箱即用。集成了 JetPack 6 和 Jetson 平台服务的合作伙伴包括:
-
Yuan
-
Aetina
-
Aaeon
-
Advantech
-
AVermedia
-
Seeed Studio
-
CRG
构建系统并创建应用程序后,产品化的最后一步是应用程序的部署和管理。应用程序可能还需要在现场频繁更新,这需要远程无线 (OTA) 更新。我们很高兴与几家领先的车队管理公司合作,这些公司已集成 Jetson 平台服务,并可提供一站式解决方案来部署和更新您的边缘应用程序。合作伙伴包括: -
Namla
-
Allxon
-
Mender