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