YOLO Vision 2026:

快速入门指南:将 NVIDIA Jetson 与 Ultralytics YOLO26 结合使用#

这份全面的指南提供了在 NVIDIA Jetson 设备上部署 Ultralytics YOLO26 的详细步骤。此外,它还展示了性能基准测试,以证明 YOLO26 在这些小型且强大的设备上的强大功能。

新产品支持

我们已使用最新的 NVIDIA Jetson AGX Thor Developer Kit 更新了本指南,该开发套件可提供高达 2070 FP4 TFLOPS 的 AI 计算能力和 128 GB 内存,功耗可在 40 W 至 130 W 之间配置。它的 AI 计算能力比 NVIDIA Jetson AGX Orin 高出 7.5 倍以上,能效提升 3.5 倍,可顺畅运行最热门的 AI 模型。



Watch: How to use Ultralytics YOLO26 on NVIDIA Jetson Devices
NVIDIA Jetson Ecosystem
注意

本指南已在NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000)和运行最新稳定版JetPack 7.2NVIDIA Jetson AGX Orin Developer Kit (64GB)、运行JetPack版本JP6.1NVIDIA Jetson Orin Nano Super Developer Kit、基于NVIDIA Jetson Orin NX 16GB且运行JetPack版本JP6.0/ JetPack版本JP5.1.3Seeed Studio reComputer J4012,以及基于NVIDIA Jetson Nano 4GB且运行JetPack版本JP4.6.1Seeed Studio reComputer J1020 v2上进行了测试。它预计适用于所有NVIDIA Jetson硬件产品线,包括最新和传统的设备。

什么是 NVIDIA Jetson?#

NVIDIA Jetson 是一系列嵌入式计算板,旨在为边缘设备带来加速的 AI(人工智能)计算。这些小巧而强大的设备围绕 NVIDIA 的 GPU 架构构建,可以直接在设备上运行复杂的 AI 算法和深度学习模型,而无需依赖云计算资源。Jetson 板卡通常用于机器人、自动驾驶汽车、工业自动化以及其他需要以低延迟和高效率在本地执行 AI 推理的应用。此外,这些板卡基于 ARM64 架构,与传统的 GPU 计算设备相比,运行功耗更低。

NVIDIA Jetson 系列对比#

NVIDIA Jetson AGX Thor 是基于 NVIDIA Blackwell 架构的 NVIDIA Jetson 系列的最新迭代,与前几代产品相比,其 AI 性能有了显著提升。下表比较了生态系统中的部分 Jetson 设备。

Jetson AGX Thor(T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
AI 性能2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPU2560 核 NVIDIA Blackwell 架构 GPU,配有 96 个 Tensor Core2048 核 NVIDIA Ampere 架构 GPU,配有 64 个 Tensor Core1024 核 NVIDIA Ampere 架构 GPU,配有 32 个 Tensor Core1024 核 NVIDIA Ampere 架构 GPU,配有 32 个 Tensor Core512 核 NVIDIA Volta 架构 GPU,配有 64 个 Tensor Core384 核 NVIDIA Volta™ 架构 GPU,配有 48 个 Tensor Core128 核 NVIDIA Maxwell™ 架构 GPU
GPU 最高频率1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921 MHz
CPU14 核 Arm® Neoverse®-V3AE 64 位 CPU,1MB L2 + 16MB L312 核 NVIDIA Arm® Cortex A78AE v8.2 64 位 CPU,3MB L2 + 6MB L38 核 NVIDIA Arm® Cortex A78AE v8.2 64 位 CPU,2MB L2 + 4MB L36 核 Arm® Cortex®-A78AE v8.2 64 位 CPU,1.5MB L2 + 4MB L38 核 NVIDIA Carmel Arm®v8.2 64 位 CPU,8MB L2 + 4MB L36 核 NVIDIA Carmel Arm®v8.2 64 位 CPU,6MB L2 + 4MB L3四核 Arm® Cortex®-A57 MPCore 处理器
CPU 最高频率2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43 GHz
内存128GB 256 位 LPDDR5X 273GB/s64GB 256 位 LPDDR5 204.8GB/s16GB 128 位 LPDDR5 102.4GB/s8GB 128 位 LPDDR5 102 GB/s32GB 256 位 LPDDR4x 136.5GB/s8GB 128 位 LPDDR4x 59.7GB/s4GB 64 位 LPDDR4 25.6GB/s

有关更详细的对比表,请访问官方 NVIDIA Jetson 页面规格对比部分。

什么是 NVIDIA JetPack?#

为 Jetson 模块提供支持的 NVIDIA JetPack SDK 是最全面的解决方案,它为构建端到端加速 AI 应用提供了完整的开发环境并缩短了上市时间。JetPack 包含带有引导加载程序、Linux 内核、Ubuntu 桌面环境的 Jetson Linux,以及用于加速 GPU 计算、多媒体、图形和计算机视觉的一整套库。它还包括针对主机和开发套件的示例、文档和开发人员工具,并支持用于流式视频分析的 DeepStream、用于机器人的 Isaac 以及用于会话式 AI 的 Riva 等更高层级的 SDK。

将 JetPack 烧录到 NVIDIA Jetson#

拿到 NVIDIA Jetson 设备后的第一步是将 NVIDIA JetPack 烧录到设备中。烧录 NVIDIA Jetson 设备有几种不同的方法。

  1. 对于运行在官方 Jetson AGX Thor、AGX Orin 或 Orin Nano 开发者套件上的 JetPack 7.2,请下载统一的 Jetson ISO,将其写入 USB 闪存盘,并按照 AGX ThorAGX OrinOrin Nano 的设备专用快速入门指南进行操作。从 JetPack 7.2 开始,Orin Nano 不再使用可下载的 SD 卡镜像;ISO USB 会将 Jetson Linux 安装到设备的 microSD 卡或 NVMe SSD 上。
  2. 如果你在 Jetson Orin Nano Developer Kit 上刻意使用 JetPack 6,请遵循 NVIDIA 的 JetPack 6.x 更新和 SD 卡说明
  3. 如果你拥有任何其他 NVIDIA 开发套件,你可以使用 SDK Manager 将 JetPack 刷入设备
  4. 如果你拥有 Seeed Studio reComputer J4012 设备,你可以将 JetPack 刷入内置的 SSD;如果你拥有 Seeed Studio reComputer J1020 v2 设备,你可以将 JetPack 刷入 eMMC/SSD
  5. 如果你拥有由 NVIDIA Jetson 模块驱动的任何其他第三方设备,建议按照命令行刷机进行操作。
注意

对于上述第 1、4 和 5 种方法,在烧录系统并启动设备后,请在设备终端输入 "sudo apt update && sudo apt install nvidia-jetpack -y" 以安装所有剩余所需的 JetPack 组件。

基于 Jetson 设备的 JetPack 支持情况#

下表重点介绍了不同 NVIDIA Jetson 设备支持的 NVIDIA JetPack 版本。

JetPack 4JetPack 5JetPack 6JetPack 7
Jetson Nano
Jetson TX2
Jetson Xavier NX
Jetson AGX Xavier
Jetson AGX Orin
Jetson Orin NX
Jetson Orin Nano
Jetson AGX Thor

Docker 快速入门#

在 NVIDIA Jetson 上开始使用 Ultralytics YOLO26 的最快方法是运行预构建的 Jetson Docker 镜像。请参阅上表,根据你拥有的 Jetson 设备选择相应的 JetPack 版本。

t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
JetPack 7 Docker 范围

公开的 latest-nvidia-arm64 镜像目前仅拥有 JetPack 7.0 Thor/DGX Spark 路径。对于 Thor 或 Orin 上的 JetPack 7.2,请使用下方的原生安装,直至公开镜像针对这些组合经过显式验证和更新。

完成此操作后,跳至在 NVIDIA Jetson 上使用 TensorRT 部分。

原生安装入门#

对于不使用 Docker 的原生安装,请参阅以下步骤。

在 JetPack 7.2 上运行#

安装 Ultralytics 包#

在这里,我们将在 Jetson 上安装带可选依赖项的 Ultralytics 软件包,以便我们可以将 PyTorch 模型导出为其他不同的格式。我们将主要关注 NVIDIA TensorRT 导出,因为 TensorRT 将确保我们能够从 Jetson 设备中获得最大性能。

  1. 更新软件包列表,安装 pip 并升级到最新版本

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 安装带可选依赖项的 ultralytics pip 软件包

    pip install ultralytics[export]
  3. 重启设备

    sudo reboot

安装 PyTorch 和 Torchvision#

上述 Ultralytics 安装程序将安装 Torch 和 Torchvision。然而,通过 pip 安装的这两个软件包无法在装有 CUDA 13 的 JetPack 7.2 设备上运行。因此,我们需要手动进行安装。

根据 JP7.2 安装 torchtorchvision

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

安装 onnxruntime-gpu#

PyPI 中托管的 onnxruntime-gpu 软件包没有适用于 Jetson 的 aarch64 二进制文件。因此我们需要手动安装此软件包。某些导出操作需要此软件包。

这里我们将下载并安装带有 Python3.12 支持的 onnxruntime-gpu 1.24.0

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whl

在 JetPack 6.1 上运行#

安装 Ultralytics 包#

在这里,我们将在 Jetson 上安装带可选依赖项的 Ultralytics 软件包,以便我们可以将 PyTorch 模型导出为其他不同的格式。我们将主要关注 NVIDIA TensorRT 导出,因为 TensorRT 将确保我们能够从 Jetson 设备中获得最大性能。

  1. 更新软件包列表,安装 pip 并升级到最新版本

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 安装带可选依赖项的 ultralytics pip 软件包

    pip install ultralytics[export]
  3. 重启设备

    sudo reboot

安装 PyTorch 和 Torchvision#

上述 ultralytics 安装会自动安装 Torch 和 Torchvision。然而,通过 pip 安装的这两个软件包与基于 ARM64 架构的 Jetson 平台不兼容。因此,我们需要手动安装预构建的 PyTorch pip wheel,并从源码编译或安装 Torchvision。

根据 JP6.1 安装 torch 2.10.0torchvision 0.25.0

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.10.0-cp310-cp310-linux_aarch64.whl
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.25.0-cp310-cp310-linux_aarch64.whl
注意

访问 PyTorch for Jetson 页面以获取适用于不同 JetPack 版本的各种 PyTorch 版本。有关 PyTorch 和 Torchvision 兼容性的更详细列表,请访问 PyTorch 和 Torchvision 兼容性页面

安装 cuDSS 以修复与 torch 2.10.0 的依赖项问题

wget https://developer.download.nvidia.com/compute/cudss/0.7.1/local_installers/cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo dpkg -i cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo cp /var/cudss-local-tegra-repo-ubuntu2204-0.7.1/cudss-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudss

安装 onnxruntime-gpu#

PyPI 中托管的 onnxruntime-gpu 软件包没有适用于 Jetson 的 aarch64 二进制文件。因此我们需要手动安装此软件包。某些导出操作需要此软件包。

你可以在Jetson Zoo ONNX Runtime compatibility matrix中找到所有可用的 onnxruntime-gpu 软件包——按 JetPack 版本、Python 版本以及其他兼容性详情进行了整理。

对于支持 Python 3.10JetPack 6,你可以安装 onnxruntime-gpu 1.23.0

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.23.0-cp310-cp310-linux_aarch64.whl

或者,对于 onnxruntime-gpu 1.20.0

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.20.0-cp310-cp310-linux_aarch64.whl

在 JetPack 5.1.2 上运行#

安装 Ultralytics 包#

在这里,我们将在 Jetson 上安装带有可选依赖项的 Ultralytics 软件包,以便我们可以将 PyTorch 模型导出为其他不同的格式。我们将主要关注 NVIDIA TensorRT 导出,因为 TensorRT 将确保我们能够从 Jetson 设备中获得最大性能。

  1. 更新软件包列表,安装 pip 并升级到最新版本

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. 安装带可选依赖项的 ultralytics pip 软件包

    pip install ultralytics[export]
  3. 重启设备

    sudo reboot

安装 PyTorch 和 Torchvision#

上述 ultralytics 安装会自动安装 Torch 和 Torchvision。然而,通过 pip 安装的这两个软件包与基于 ARM64 架构的 Jetson 平台不兼容。因此,我们需要手动安装预构建的 PyTorch pip wheel,并从源码编译或安装 Torchvision。

  1. 卸载当前安装的 PyTorch 和 Torchvision

    pip uninstall torch torchvision
  2. 根据 JP5.1.2 安装 torch 2.1.0torchvision 0.16.2

    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl
注意

访问 PyTorch for Jetson 页面以获取适用于不同 JetPack 版本的各种 PyTorch 版本。有关 PyTorch 和 Torchvision 兼容性的更详细列表,请访问 PyTorch 和 Torchvision 兼容性页面

安装 onnxruntime-gpu#

PyPI 中托管的 onnxruntime-gpu 软件包没有适用于 Jetson 的 aarch64 二进制文件。因此我们需要手动安装此软件包。某些导出操作需要此软件包。

你可以在Jetson Zoo ONNX Runtime compatibility matrix中找到所有可用的 onnxruntime-gpu 软件包——按 JetPack 版本、Python 版本以及其他兼容性详情进行了整理。这里我们将下载并安装带有 Python3.8 支持的 onnxruntime-gpu 1.17.0

wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
注意

onnxruntime-gpu 会自动将 NumPy 版本还原为最新版本。因此我们需要通过执行以下操作将 NumPy 重新安装到 1.23.5 以修复问题:

pip install numpy==1.23.5

在 NVIDIA Jetson 上使用 TensorRT#

在 Ultralytics 支持的所有模型导出格式中,TensorRT 在 NVIDIA Jetson 设备上提供最高的推理性能,使其成为我们对 Jetson 部署的顶级推荐。有关设置说明和高级用法,请参阅我们专门的 TensorRT 集成指南

你也可以在浏览器中进行导出,而无需在本地配置构建环境。在 Ultralytics Platform 模型导出选项卡中,选择 TensorRT 和目标 Jetson 目标。Thor 选择在物理 Thor 硬件上进行了验证。这六个 Orin 选择目前会生成 AGX-Orin 构建的候选引擎;在部署之前,请在预期的 Orin SKU 上对其进行验证。

TensorRT 引擎是设备特定的

TensorRT 会在其构建所在的 GPU 上对引擎进行性能分析和调优。请确保匹配目标的 GPU 架构和 TensorRT/CUDA 运行时,并在部署设备上验证每个下载的引擎。相同架构的 Orin SKU 并不自动保证可移植性,为了获得最佳效果,INT8 校准应在目标设备上进行。

将模型转换为 TensorRT 并运行推理#

PyTorch 格式的 YOLO26n 模型被转换为 TensorRT,以便使用导出的模型运行推理。

示例
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT
model.export(format="engine")  # creates 'yolo26n.engine'

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
注意

访问导出页面以获取将模型导出为不同模型格式时的附加参数

使用 NVIDIA 深度学习加速器 (DLA)#

NVIDIA 深度学习加速器 (DLA) 是内置于 NVIDIA Jetson 设备中的专用硬件组件,可优化深度学习推理以实现能效和性能。通过从 GPU 卸载任务(将其解放以进行更密集的处理),DLA 使模型能够在保持高吞吐量的同时以更低的功耗运行,非常适合嵌入式系统和实时 AI 应用。

TensorRT 11.0 和 DLA

TensorRT 11.0 不支持 DLA,预计将在后续版本中恢复,因此 DLA 导出需要 TensorRT 10.x。在 JetPack 6.x/7.x 上,请使用 TensorRT 10.x 版本进行导出以使用 DLA,或者为 TensorRT 11.0 引擎使用 GPU。

以下 Jetson 设备配备了 DLA 硬件:

Jetson 设备DLA 核心DLA 最高频率
Jetson AGX Orin 系列21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX 8GB1614 MHz
Jetson AGX Xavier 系列21.4 GHz
Jetson Xavier NX 系列21.1 GHz
示例
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT with DLA enabled (only works with FP16 or INT8)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0 or dla:1 corresponds to the DLA cores

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
注意

在使用 DLA 导出时,某些层可能不支持在 DLA 上运行,并将回退到 GPU 执行。这种回退可能会引入额外的延迟并影响整体推理性能。因此,DLA 的主要设计目的并非为了比在 GPU 上完全运行 TensorRT 减少推理延迟。相反,其主要目的是为了提高吞吐量并提升能效。

NVIDIA Jetson YOLO11/ YOLO26 基准测试#

YOLO11/ YOLO26 基准测试由 Ultralytics 团队在 11 种不同的模型格式上运行,测量速度和准确率:PyTorch、TorchScript、ONNX、OpenVINO、TensorRT、TF SavedModel、TF GraphDef、TF Lite、MNN、NCNN、ExecuTorch。基准测试在 NVIDIA Jetson AGX Thor Developer Kit、NVIDIA Jetson AGX Orin Developer Kit (64GB)、NVIDIA Jetson Orin Nano Super Developer Kit 以及由 Jetson Orin NX 16GB 设备驱动的 Seeed Studio reComputer J4012 上以 FP32 精度且默认输入图像大小为 640 的情况下运行。

对比图表#

尽管所有模型导出格式都能在 NVIDIA Jetson 上工作,但我们只在下方的对比图表中包含了 PyTorch、TorchScript、TensorRT,因为它们利用了 Jetson 上的 GPU,并能保证产生最佳结果。所有其他导出格式仅使用 CPU,性能不如上述三种。你可以在此图表之后的章节中找到所有导出格式的基准测试数据。

NVIDIA Jetson AGX Thor Developer Kit#

Jetson AGX Thor Benchmarks
Benchmarked with Ultralytics 8.3.226

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Jetson AGX Orin Benchmarks
Benchmarked with Ultralytics 8.4.32

NVIDIA Jetson Orin Nano Super Developer Kit#

Jetson Orin Nano Super Benchmarks
Benchmarked with Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Benchmarked with Ultralytics 8.4.33

详细对比表#

下表展示了五种不同模型(YOLO11n、YOLO11s、YOLO11m、YOLO11l、YOLO11x)在 11 种不同格式(PyTorch、TorchScript、ONNX、OpenVINO、TensorRT、TF SavedModel、TF GraphDef、TF Lite、MNN、NCNN、ExecuTorch)下的基准测试结果,给出了每种组合的状态、大小、mAP50-95(B) 指标和推理时间。

NVIDIA Jetson AGX Thor Developer Kit#

性能
格式状态磁盘占用大小 (MB)mAP50-95(B)推理时间 (ms/im)
PyTorch5.30.47987.39
TorchScript9.80.47894.21
ONNX9.50.47676.58
OpenVINO10.10.479417.50
TensorRT (FP32)13.90.47911.90
TensorRT (FP16)7.60.47971.39
TensorRT (INT8)6.50.42731.52
TF SavedModel25.70.476447.24
TF GraphDef9.50.476445.98
TF Lite9.90.4764182.04
MNN9.40.478421.83

使用 Ultralytics 8.4.7 进行基准测试

注意

推理时间不包括预处理/后处理。

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

性能
格式状态磁盘占用大小 (MB)mAP50-95(B)推理时间 (ms/im)
PyTorch5.30.479011.58
TorchScript9.80.47704.60
ONNX9.50.47709.87
OpenVINO9.60.482028.80
TensorRT (FP32)11.50.04504.18
TensorRT (FP16)7.90.04502.62
TensorRT (INT8)5.40.46402.30
TF SavedModel24.60.476071.10
TF GraphDef9.50.476070.02
TF Lite9.90.4760227.94
MNN9.40.476032.46
NCNN9.30.481029.93

基于 Ultralytics 8.4.32 进行基准测试

注意

推理时间不包括预处理/后处理。

NVIDIA Jetson Orin Nano Super Developer Kit#

性能
格式状态磁盘占用大小 (MB)mAP50-95(B)推理时间 (ms/im)
PyTorch5.30.479015.60
TorchScript9.80.477012.60
ONNX9.50.476015.76
OpenVINO9.60.482056.23
TensorRT (FP32)11.30.47707.53
TensorRT (FP16)8.10.48004.57
TensorRT (INT8)5.30.44903.80
TF SavedModel24.60.4760118.33
TF GraphDef9.50.4760116.30
TF Lite9.90.4760286.00
MNN9.40.476068.77
NCNN9.30.481047.50

使用 Ultralytics 8.4.33 进行基准测试

注意

推理时间不包括预处理/后处理。

NVIDIA Jetson Orin NX 16GB#

性能
格式状态磁盘占用大小 (MB)mAP50-95(B)推理时间 (ms/im)
PyTorch5.30.479913.90
TorchScript9.80.478711.60
ONNX9.50.476314.18
OpenVINO9.60.481940.19
TensorRT (FP32)11.40.47707.01
TensorRT (FP16)8.00.47894.13
TensorRT (INT8)5.50.44893.49
TF SavedModel24.60.476492.34
TF GraphDef9.50.476492.06
TF Lite9.90.4764254.43
MNN9.40.476048.55
NCNN9.30.480534.31

使用 Ultralytics 8.4.33 进行基准测试

注意

推理时间不包括预处理/后处理。

探索 Seeed Studio 的更多基准测试工作,这些测试运行在不同版本的 NVIDIA Jetson 硬件上。

重现我们的结果#

要在所有导出格式上重现上述 Ultralytics 基准测试,请运行此代码:

示例
from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)

请注意,基准测试结果可能会因系统的确切硬件和软件配置以及运行基准测试时系统的当前工作负载而异。为了获得最可靠的结果,请使用包含大量图像的数据集,例如 data='coco.yaml'(5000 张验证图像)。

使用 NVIDIA Jetson 时的最佳实践#

在使用 NVIDIA Jetson 时,请遵循以下几项最佳实践,以在运行 YOLO26 的 NVIDIA Jetson 上实现最佳性能。

  1. 启用 MAX 电源模式

    在 Jetson 上启用 MAX 电源模式可确保所有 CPU 和 GPU 核心均已开启。

    sudo nvpmodel -m 0
  2. 启用 Jetson 时钟

    启用 Jetson 时钟可确保所有 CPU 和 GPU 核心均以其最高频率运行。

    sudo jetson_clocks
  3. 安装 Jetson Stats 应用程序

    我们可以使用 jetson stats 应用程序来监控系统组件的温度,并查看其他系统详细信息,例如查看 CPU、GPU、RAM 利用率,更改电源模式,设置为最高时钟频率,以及查看 JetPack 信息。

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop
Jetson Stats

NVIDIA Jetson 内存优化技巧#

可用内存往往是 Jetson 设备上的限制因素,特别是在内存较低的变体(如 Jetson Orin Nano (8 GB) 或 Orin NX 8 GB)上。以下建议是实用且低风险的更改,它们可以共同释放几百兆字节的内存,并允许你运行更大的 YOLO 模型或支持额外的并行工作负载。有关全面的处理方法,请参阅 NVIDIA 关于最大化 Jetson 内存效率的博客

切换到无头(无 GUI)启动#

如果你的 Jetson 是通过 SSH 连接的,或者是作为没有连接显示器的生产设备运行的,那么消除桌面环境和显示服务器最多可以回收 865 MB 的 RAM:

sudo systemctl set-default multi-user.target
sudo reboot

稍后恢复桌面:

sudo systemctl set-default graphical.target
sudo reboot

禁用未使用的系统服务#

非必要的后台服务(蓝牙、连接管理器、未使用的硬件守护进程)合计消耗约 32 MB。列出活动服务并禁用你的部署不需要的任何服务:

# List running services
systemctl list-units --type=service --state=running

# Disable a service
sudo systemctl disable SERVICE_NAME

分析内存使用情况#

在优化之前,请确定哪些进程实际消耗了 RAM。procrank 按 PSS(比例集大小)对进程进行排序,这比 RSS(常驻集大小,即进程映射的总物理 RAM 页,包括与其它进程共享的页)更准确地反映了每个进程真实的内存占用:

git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrank

要查看每个进程的 GPU 和 NvMap(CUDA/视频流水线)分配情况:

sudo cat /sys/kernel/debug/nvmap/iovmm/clients

在生产环境中运行无显示器的推理#

对于没有实时预览需求的推理流水线,禁用与显示相关的组件(Tiler、OSD、DisplaySink)仅通过流水线本身即可节省 200+ MB。使用 Ultralytics YOLO 时,关闭查看器并将结果写入磁盘:

示例
from ultralytics import YOLO

model = YOLO("yolo11n.engine")

# show=False prevents any display window; save=True writes annotated output to disk
results = model.predict(source="video.mp4", show=False, save=True)

累计影响#

优化节省的内存约为
禁用桌面 GUI~865 MB
禁用未使用的 OS 服务~32 MB
无头推理流水线(无显示)~200+ MB
总计(轻松获取)~1 GB+

当目标是内存受限设备上的 TensorRT INT8 模型时,结合这些更改尤为有效——这可能是能否将更大的模型变体放入内存的区别。

后续步骤#

有关进一步的学习和支持,请参阅 Ultralytics YOLO26 文档

常见问题解答#

我该如何在 NVIDIA Jetson 设备上部署 Ultralytics YOLO26?#

在 NVIDIA Jetson 设备上部署 Ultralytics YOLO26 是一个简单的过程。首先,使用 NVIDIA JetPack SDK 刷写你的 Jetson 设备。然后,使用预构建的 Docker 镜像进行快速设置,或手动安装所需的软件包。有关每种方法的详细步骤,可以在使用 Docker 快速入门从原生安装开始部分中找到。

在 NVIDIA Jetson 设备上运行 YOLO11 模型可以获得什么样的性能基准?#

YOLO11 模型已在各种 NVIDIA Jetson 设备上进行了基准测试,显示出显著的性能提升。例如,TensorRT 格式提供最佳的推理性能。详细对比表部分中的表格全面展示了诸如 mAP50-95 和不同模型格式的推理时间等性能指标。

为什么我应该使用 TensorRT 在 NVIDIA Jetson 上部署 YOLO26?#

由于其最佳性能,强烈建议使用 TensorRT 在 NVIDIA Jetson 上部署 YOLO26 模型。它通过利用 Jetson 的 GPU 功能来加速推理,确保最大的效率和速度。在在 NVIDIA Jetson 上使用 TensorRT 部分中了解有关如何转换为 TensorRT 并运行推理的更多信息。

我该如何在 NVIDIA Jetson 上安装 PyTorch 和 Torchvision?#

要在 NVIDIA Jetson 上安装 PyTorch 和 Torchvision,请先卸载可能通过 pip 安装的任何现有版本。然后,为 Jetson 的 ARM64 架构手动安装兼容的 PyTorch 和 Torchvision 版本。安装 PyTorch 和 Torchvision 部分提供了此过程的详细说明。

使用 YOLO26 时,在 NVIDIA Jetson 上实现性能最大化的最佳实践是什么?#

为了在 NVIDIA Jetson 上通过 YOLO26 实现性能最大化,请遵循以下最佳实践:

  1. 启用 MAX Power 模式以利用所有 CPU 和 GPU 核心。
  2. 启用 Jetson Clocks 以使所有核心以最高频率运行。
  3. 安装 Jetson Stats 应用程序以监控系统指标。

有关命令和更多详细信息,请参阅使用 NVIDIA Jetson 时的最佳实践部分。

如何释放 NVIDIA Jetson 上的内存以运行更大的 YOLO 模型?#

在内存较低的 Jetson 设备上,可用 RAM 通常是瓶颈。以下三个简单的方法加起来可以回收超过 1 GB 的内存:

  1. 切换到无头引导sudo systemctl set-default multi-user.target)以消除桌面 GUI(~节省 865 MB)。
  2. 禁用未使用的服务,例如蓝牙或连接管理器(节省约 32 MB)。
  3. 在无显示器的情况下运行推理,方法是在你的 YOLO predict 调用中设置 show=False,这可以避免分配显示管道内存(节省约 ~200+ MB)。

使用 procrank 分析每个进程的 RAM 使用情况,并使用 sudo cat /sys/kernel/debug/nvmap/iovmm/clients 检查 GPU 分配。有关完整详细信息,请参阅内存优化提示部分。

为什么我的 TensorRT INT8 导出在 JetPack 6 上禁用了 end2end?#

随 JetPack 6 一起发布的 TensorRT 10.3.0 存在一个已知问题,当启用 end2end=True 时,该问题会阻止 INT8 引擎构建。当 Ultralytics 检测到此组合时,它会自适应地禁用 end2end 分支以确保导出成功。

要恢复 end2end INT8 导出,请将 TensorRT 升级到更新版本(例如 10.7.0+):

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y tensorrt

升级后,重新运行你的导出。有关更多详细信息,请参阅 GitHub issue #23841

评论