快速入门指南#
“快速入门”旨在简短的时间内,以最少的硬件,介绍如何使用基础服务和参考应用程序。有关扩展“快速入门”部署以构建高性能、成熟的 AI 应用(以网络视频录像机的形式)的描述,请参阅 AI NVR。
前提条件#
在开始之前,请完成以下步骤以获取必要的硬件组件并访问软件。
准备
必需的硬件
Jetson Orin AGX 开发套件 或
Jetson Orin NX 16GB 或 8GB 开发套件(自建),配备 128GB(最小) NVMe 驱动器 或
Jetson Orin Nano 8GB 开发套件,配备 128GB(最小) NVMe 驱动器 或
合作伙伴 (ODM) 设备,配备上述之一
Ubuntu 20.04 或 22.04 桌面/笔记本电脑
USB-C 刷机线
显示器、键盘、鼠标
验证已签名的容器镜像
公共 NGC 目录上托管的容器镜像由 Nvidia 签名,您可以选择使用提供的公钥验证签名。请参阅 NGC 用户指南 中概述的步骤
硬件设置#
Jetson 开发套件#
将显示器、键盘和鼠标连接到 Jetson
将显示器连接到 DP 端口,或者使用 DP-TO-HDMI 转换器通过 HDMI 连接。将键盘和鼠标连接到设备上任何空闲的 USB 端口。
将 Jetson 连接到主机
使用 USB 数据线将主机(Ubuntu 桌面/笔记本电脑)连接到 Jetson 开发套件 USB-C 刷机端口。建议使用与主机端口(USB 3.0/2.0)兼容的数据线。
合作伙伴 (ODM) 设备#
按照 ODM 提供的说明设置他们的设备
软件设置#
对于 Jetson 开发套件,第一步是使用 BSP(Jetson Linux 操作系统)版本 36.4.3 刷机,然后安装基础服务。这可以通过下载镜像并使用刷机脚本手动刷机,或者通过 SDK Manager 图形界面完成。以下描述了两种选项。
注意
如果您使用的是合作伙伴 (ODM) 设备,则应已预先刷入 Jetpack 镜像。确保它运行的是 JP 6.1 GA (BSP R36.4.0) 或 JP 6.2 (BSP R36.4.3)。检查设备上的 /etc/nv_tegra_release 以获取 BSP 版本。如果不是,您需要联系合作伙伴 / ODM 以获取他们的 JP 6.1 GA 或 JP 6.2 镜像和刷机说明(如果他们提供)。完成后,继续手动设置中的“安装基础服务”部分。
安装#
SDK Manager
安装并启动 SDKM
从 SDK Manager 下载最新版本并安装在您的主机(Ubuntu 桌面/笔记本电脑)上。然后使用以下命令启动它
sdkmanager
安装 BSP 和 Jetson 平台服务
按照 说明,在步骤 01 中选择“Jetpack 6.2”,在步骤 02 中选择“Jetson Linux”(BSP)和“Jetson 平台服务”(包括基础服务和参考工作流程)。请注意,Jetson 平台服务默认未选中,因此需要选中它。这将自动选择任何其他需要的 Jetpack 组件进行安装。

所有基础服务将安装在目录 /opt/nvidia/jetson/services 中。AI-NVR 和其他参考工作流程将下载到 ~/jps 目录。
手动
安装 BSP R36.4.3
详细的刷机说明可在 Jetson Linux 开发者指南 中找到。以下步骤总结供快速参考。
1. 下载 BSP 镜像
从 Jetson Linux 仓库下载以下两个软件包
Jetson_Linux_R36.4.3_aarch64.tbz2.
Tegra_Linux_Sample-Root-Filesystem_R36.4.3_aarch64.tbz2.
2. 解压 Jetson-Linux BSP 和 root 文件系统
注意:根据下载方法,文件名可能都是小写,因此在运行以下命令之前请检查。
tar xf Jetson_Linux_R36.4.3_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.4.3_aarch64.tbz2 -C Linux_for_Tegra/rootfs/
3. 执行 apply_binaries.sh 脚本
cd Linux_for_Tegra
sudo ./apply_binaries.sh
4. 在主机上安装必要的软件包
sudo ./tools/l4t_flash_prerequisites.sh
5. 配置设备登录的用户名和密码
sudo ./tools/l4t_create_default_user.sh -u <username> -p <password> -a
在弹出窗口中,使用 Tab 键和 Enter 键接受许可协议。它将设置用户(根据提供的值),您可以使用该用户在刷机和启动 Jetson 设备后登录。
6. 将设备置于恢复模式
Orin AGX:按照此 AGX 页面上提供的说明操作。
Orin NX / Orin Nano:按照此 NX/Nano 页面上提供的说明操作。
确认设备处于恢复模式,如此处 所述。
7. 刷写镜像
Orin AGX
sudo ./flash.sh jetson-agx-orin-devkit internal
Orin NX / Orin Nano
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit internal
Orin Nano Super
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit-super internal
安装 Jetson 平台服务
基础服务包
从 Jetson apt 仓库 Apt 安装最新的基础服务 Debian 软件包。这将安装所有基础服务,包括任何依赖项。
sudo apt update
sudo apt install nvidia-jetson-services
所有基础服务将安装在目录 /opt/nvidia/jetson/services 中。有关这些服务的信息,请参阅 概述。
AI_NVR 捆绑包
使用此 NGC 链接从 NGC 下载 AI_NVR 应用程序捆绑包到您的 Jetson。在该页面上,使用“下载”菜单(右上角)中可用的选项之一。
使用以下命令在您的 Jetson 上解压文件
unzip files.zip
[如果使用直接下载选项]
tar -xvf ai_nvr-2.0.1.tar.gz
注意解压后的 ai_nvr 目录的位置。
系统配置#
复制配置文件#
从 ai_nvr 参考工作流程下载的目录(通过 SDKM 的 ~/jps,或通过手动的 ~/Downloads)运行以下命令
sudo cp ai_nvr/config/ai-nvr-nginx.conf /opt/nvidia/jetson/services/ingress/config/
更新性能设置#
如果您想从您的设备获得最佳性能,您可以选择将其设置为最大功率和时钟速度,如下所示
sudo nvpmodel -m 0
(需要重启)
sudo jetson_clocks
如果您想最大化系统处理的视频流数量,特别是对于 AI NVR 应用程序,请运行以下命令。这将调整内核参数,设置网络套接字接收通过 RTSP 传输的视频数据时使用的接收缓冲区大小。
sudo sysctl -w net.core.rmem_default=2129920
sudo sysctl -w net.core.rmem_max=10000000
设置视频存储大小#
在文件 /opt/nvidia/jetson/services/vst/config/vst_storage.json 中,将参数 “total_video_storage_size_MB” 的值设置为基于驱动器可用空间的合适大小(您可以使用命令 df -h
检查根文件系统中可用的空间)。例如,使用值 10000 设置 10GB 限制。有关 VST 配置的详细信息,请参阅 存储配置。
安装 NVStreamer 应用程序#
NVStreamer 是一款 NVIDIA 开发者软件,可以存储和提供可以使用 RTSP 协议流式传输的视频文件。它可以作为摄像头的替代方法,为视频存储工具包 (VST) 服务创建视频源输入。按照 Jetson Orin 上的 NVStreamer 中的说明在您的 Jetson 上设置 NVStreamer。
从此 链接 上的 NGC 资源下载要使用 NVStreamer 流式传输的示例视频文件。在该页面上,使用“下载”菜单(右上角)中可用的选项之一。
按照 上传视频到 NVStreamer 部分中的说明将示例视频上传到 NVStreamer。
运行 Hello World#
运行 IVA 应用程序#
要运行示例智能视频分析 (IVA) 应用程序,请按照以下步骤操作。
启动服务
对于此示例,我们只需要 Redis、Ingress 和 VST 服务,可以使用以下命令启动
sudo systemctl start jetson-redis
sudo systemctl start jetson-ingress
sudo systemctl start jetson-vst
注意
首次启动可能需要一些时间才能完成,因为容器镜像需要下载到设备。您可以通过在另一个终端上运行命令 journalctl -fe -u <service-name>.service
来监视服务启动时的消息。
可以使用以下命令停止服务
sudo systemctl stop jetson-redis
sudo systemctl stop jetson-ingress
sudo systemctl stop jetson-vst
启动应用程序
从下载的捆绑包(通过 SDKM 的 ~/jps,或通过手动的 ~/Downloads)中启动应用程序。请注意,docker compose 启动命令取决于它运行的设备
cd ai_nvr
Orin AGX: sudo docker compose -f compose_agx.yaml up -d --force-recreate
Orin NX16: sudo docker compose -f compose_nx16.yaml up -d --force-recreate
Orin NX8: sudo docker compose -f compose_nx8.yaml up -d --force-recreate
Orin Nano: sudo docker compose -f compose_nano.yaml up -d --force-recreate
通过运行 sudo docker ps
命令,确保容器按预期运行。示例如下
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d6a957df18f nvcr.io/nvidia/jps/sdr:2.2-8-14-v1 "sh -c '/wdm/dist/sd…" 2 minutes ago Up 11 seconds sdr-emdx
2dc2840ccf67 nvcr.io/nvidia/jps/sdr:2.2-8-14-v1 "sh -c '/wdm/dist/sd…" 2 minutes ago Up 47 seconds sdr
36dac91b2e5b nvcr.io/nvidia/jps/deepstream:7.1-public-v1 "sh -c '/opt/nvidia/…" 2 minutes ago Up About a minute deepstream
1f2e8412e073 nvcr.io/nvidia/jps/emdx-analytics:jps_v1.2.9 "python3 gunicorn --…" 2 minutes ago Up 34 seconds emdx-analytics-01
05e915e18a24 nvcr.io/nvidia/jps/emdx-analytics:jps_v1.2.9 "python3 gunicorn --…" 2 minutes ago Up 34 seconds emdx-analytics-02
eb002baae110 nvcr.io/nvidia/jps/sdr-reprovision-controller:2.2-8-14-v1 "/bin/sh -c ./entryp…" 2 minutes ago Up 2 minutes sdr-reprovision-controller
d4ad544c3f30 nvcr.io/nvidia/jps/sdr-alertmanager-controller:2.3.1 "/bin/sh -c ./entryp…" 2 minutes ago Up 2 minutes sdr-alertmanager-controller
c9b0827df768 nvcr.io/nvidia/jps/sdr-proxy-controller:2.2-8-14-v1 "/bin/sh -c ./entryp…" 2 minutes ago Up 2 minutes sdr-proxy-controller
91fe3402c601 nvcr.io/nvidia/jps/emdx-analytics-web-api:jps_v1.2.9 "python3 gunicorn --…" 2 minutes ago Up 2 minutes emdx-webapi
e0d36b930796 redisfab/redistimeseries:master-arm64v8-jammy "docker-entrypoint.s…" 8 minutes ago Up 7 minutes redis
6d105f6613a8 nvcr.io/nvidia/jps/vst:1.3.0-24.07.1-aarch64 "sh -c '/opt/vst_rel…" 5 minutes ago Up 3 minutes vst
23a2b8b3f92e nvcr.io/nvidia/jps/vst:1.3.0-24.08.1-aarch64 "sh -c '/opt/vst_rel…" 10 minutes ago Up 8 minutes nvstreamer
4b9b02b5947f nvcr.io/nvidia/jps/ialpha-ingress-arm64v8:0.12 "sh -c '/nginx.sh 2>…" 7 minutes ago Up 6 minutes ingress
可以使用以下命令停止与应用程序相关的服务(如其 compose 文件中列出的)
cd ai_nvr
Orin AGX: sudo docker compose -f compose_agx.yaml down --remove-orphans
Orin NX16: sudo docker compose -f compose_nx16.yaml down --remove-orphans
Orin NX8: sudo docker compose -f compose_nx8.yaml down --remove-orphans
Orin Nano: sudo docker compose -f compose_nano.yaml down --remove-orphans
将 NVStreamer RTSP 流添加到 VST#
按照 NVStreamer 中的说明将流添加到 VST。有关详细信息,请参阅 将 RTSP 流添加到 VST
部分中的 概述。
确保可以通过 VST 参考 Web 应用程序的 实时流
选项卡查看流。有关更多详细信息,请参阅 参考 Web 应用程序。
还要确保这些流已正确添加到 DeepStream 并且正在被处理。为此,请查看 DeepStream 日志,并确保添加的流在那里可见,fps 值大于 0。理想情况下,这将接近 30fps,但可能会根据输入视频 fps 而降低。有关更多详细信息,请参阅 日志。
查看视频叠加和分析#
VST webUI 提供了在其分析功能中,在视频流上绘制、查看和删除感兴趣区域 (ROI) 和绊线 (TW) 的功能。然后可以将这些作为叠加层在视频流上查看,以及来自分析微服务的实时统计信息。
有关如何配置和使用此功能的更多信息,请参阅 参考 Web 应用程序。