Ultralytics YOLO27:
Get Started

クイックスタートガイド:NVIDIA JetsonでUltralytics YOLO26を使う#

この包括的なガイドでは、NVIDIA JetsonデバイスにUltralytics YOLO26をデプロイする手順を詳しく説明します。また、これらの小型で高性能なデバイスでのYOLO26の性能を示すベンチマークも紹介します。

新製品への対応

最大2070 FP4 TFLOPSのAI演算性能と128 GBのメモリを備え、40 Wから130 Wの範囲で電力を設定できる、最新のNVIDIA Jetson AGX Thor Developer Kitをガイドに追加しました。NVIDIA Jetson AGX Orinと比べてAI演算性能は7.5倍以上、電力効率は3.5倍向上しており、人気の高いAIモデルをシームレスに実行できます。



視聴: NVIDIA JetsonデバイスでUltralytics YOLO26を使用する方法
NVIDIA Jetson Ecosystem
注

このガイドは、最新の安定版JetPack 7.2を実行するNVIDIA Jetson AGX Thor Developer Kit(Jetson T5000)およびNVIDIA Jetson AGX Orin Developer Kit(64GB)、JetPackリリースのJP6.1を実行するNVIDIA Jetson Orin Nano Super Developer Kit、JetPackリリースのJP6.0/JetPackリリースのJP5.1.3を実行する、NVIDIA Jetson Orin NX 16GBをベースとしたSeeed Studio reComputer J4012、およびJetPackリリースのJP4.6.1を実行する、NVIDIA Jetson Nano 4GBをベースとしたSeeed 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 MHz921MHz
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、L2 1.5MB + L3 4MB8コア NVIDIA Carmel Arm®v8.2 64ビット CPU、L2 8MB + L3 4MB6コア NVIDIA Carmel Arm®v8.2 64ビット CPU、L2 6MB + L3 4MBクアッドコア Arm® Cortex®-A57 MPCore プロセッサ
CPU最大周波数2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
メモリ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もサポートしています。

NVIDIA JetsonにJetPackを書き込む#

NVIDIA Jetsonデバイスを入手した後の最初の手順は、NVIDIA JetPackをデバイスに書き込むことです。NVIDIA Jetsonデバイスを書き込む方法はいくつかあります。

  1. 公式Jetson AGX Thor、AGX Orin、またはOrin Nano Developer KitでJetPack 7.2を使用する場合は、統合Jetson ISOをダウンロードしてUSBフラッシュドライブに書き込み、AGX Thor、AGX Orin、またはOrin 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 Development Kitをお持ちの場合は、SDK Managerを使用してデバイスにJetPackを書き込むことができます。
  4. Seeed Studio reComputer J4012をお持ちの場合は、付属のSSDにJetPackを書き込むことができます。また、Seeed Studio reComputer J1020 v2をお持ちの場合は、eMMC/ SSDにJetPackを書き込むことができます。
  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およびTensorRTサポート

latest-nvidia-arm64イメージは、CUDA 13.4とTensorRT 11.2を含むNVIDIA PyTorch 26.08を使用します。NVIDIAは互換性表でPyTorch向けJetPack 7.1を掲載していますが、TensorRT 11.2.1はJetPackをサポートしていません。Thorも対象外です。このイメージは、サポート対象のホスト上でPyTorchワークロードにのみ使用してください。JetsonでTensorRTにエクスポートする場合は、以下のネイティブインストールを使用し、お使いのJetPackリリースでサポートされるTensorRT 10.xランタイムを利用してください。ThorまたはOrin上のJetPack 7.2では、コンテナを個別に検証する必要があります。ターゲットGPUとTensorRTバージョンに合わせてエンジンを再ビルドしてください。

JetPack 4、5、6のイメージについては、引き続きNVIDIA JetsonでTensorRTを使用するをご覧ください。上記のJetPack 7.1イメージはPyTorchワークロード専用です。

ネイティブインストールを開始する#

Dockerを使用せずにネイティブインストールする場合は、以下の手順を参照してください。

JetPack 7.2で実行する#

Ultralyticsパッケージをインストールする#

ここではJetsonにUltralyticsパッケージをインストールします。エクスポート用の依存関係は、モデルを初めてエクスポートするときに自動的にインストールされるため、ここでは基本パッケージのみが必要です。Jetsonデバイスの性能を最大限に引き出すため、主にNVIDIA TensorRTへのエクスポートに焦点を当てます。

  1. パッケージリストを更新し、pipをインストールして最新バージョンにアップグレードする

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ultralytics pipパッケージをインストールする

    pip install ultralytics
  3. デバイスを再起動する

    sudo reboot

PyTorchとTorchvisionをインストールする#

上記のUltralyticsのインストールではTorchとTorchvisionがインストールされます。ただし、pip経由でインストールされたこの2つのパッケージは、CUDA 13を搭載したJetPack 7.2デバイスでは動作しません。そのため、手動でインストールする必要があります。

JP7.2に応じてtorchとtorchvisionをインストールする

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

onnxruntime-gpuをインストールする#

お使いのJetPack、Python、CUDAのバージョンに合ったONNX Runtime GPUホイールを使用してください。現在のPyPIリリースにはARM64ホイールが含まれていますが、JetPackの各リリースに対応するデバイス固有のパッケージの代わりにはなりません。

ここでは、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パッケージをインストールします。エクスポート用の依存関係は、モデルを初めてエクスポートするときに自動的にインストールされるため、ここでは基本パッケージのみが必要です。Jetsonデバイスの性能を最大限に引き出すため、主にNVIDIA TensorRTへのエクスポートに焦点を当てます。

  1. パッケージリストを更新し、pipをインストールして最新バージョンにアップグレードする

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ultralytics pipパッケージをインストールする

    pip install ultralytics
  3. デバイスを再起動する

    sudo reboot

PyTorchとTorchvisionをインストールする#

上記のUltralyticsのインストールではTorchとTorchvisionがインストールされます。ただし、pip経由でインストールされたこの2つのパッケージは、ARM64アーキテクチャに基づくJetsonプラットフォームと互換性がありません。そのため、ビルド済みのPyTorch pipホイールを手動でインストールし、Torchvisionをソースからビルドするかインストールする必要があります。

JP6.1に応じてtorch 2.10.0とtorchvision 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
注

Jetson向けPyTorchページで、さまざまなJetPackバージョンに対応するPyTorchの各バージョンを確認できます。PyTorchとTorchvisionの互換性に関する詳しい一覧については、PyTorchとTorchvisionの互換性ページをご覧ください。

torch 2.10.0との依存関係の問題を修正するには、cuDSSをインストールしてください。

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をインストールする#

お使いのJetPack、Python、CUDAのバージョンに合ったONNX Runtime GPUホイールを使用してください。現在のPyPIリリースにはARM64ホイールが含まれていますが、JetPackの各リリースに対応するデバイス固有のパッケージの代わりにはなりません。

利用可能なonnxruntime-gpuパッケージは、JetPackバージョン、Pythonバージョン、その他の互換性情報別に整理されたJetson Zoo ONNX Runtime互換性マトリックスで確認できます。

Python 3.10をサポートするJetPack 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パッケージをインストールします。エクスポート用の依存関係は、モデルを初めてエクスポートするときに自動的にインストールされるため、ここでは基本パッケージのみが必要です。Jetsonデバイスの性能を最大限に引き出すため、主にNVIDIA TensorRTへのエクスポートに焦点を当てます。

  1. パッケージリストを更新し、pipをインストールして最新バージョンにアップグレードする

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. ultralytics pipパッケージをインストールする

    pip install ultralytics
  3. デバイスを再起動する

    sudo reboot

PyTorchとTorchvisionをインストールする#

上記のUltralyticsのインストールではTorchとTorchvisionがインストールされます。ただし、pip経由でインストールされたこの2つのパッケージは、ARM64アーキテクチャに基づくJetsonプラットフォームと互換性がありません。そのため、ビルド済みのPyTorch pipホイールを手動でインストールし、Torchvisionをソースからビルドするかインストールする必要があります。

  1. 現在インストールされているPyTorchとTorchvisionをアンインストールする

    pip uninstall torch torchvision
  2. JP5.1.2に応じてtorch 2.1.0とtorchvision 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
注

Jetson向けPyTorchページで、さまざまなJetPackバージョンに対応するPyTorchの各バージョンを確認できます。PyTorchとTorchvisionの互換性に関する詳しい一覧については、PyTorchとTorchvisionの互換性ページをご覧ください。

onnxruntime-gpuをインストールする#

お使いのJetPack、Python、CUDAのバージョンに合ったONNX Runtime GPUホイールを使用してください。現在のPyPIリリースにはARM64ホイールが含まれていますが、JetPackの各リリースに対応するデバイス固有のパッケージの代わりにはなりません。

利用可能なonnxruntime-gpuパッケージは、JetPackバージョン、Pythonバージョン、その他の互換性情報別に整理されたJetson Zoo ONNX Runtime互換性マトリックスで確認できます。ここでは、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へのデプロイでは最も推奨される形式です。エクスポートする前に、お使いのJetPackリリースに付属するTensorRT Pythonバインディングをインストールし、python3 -c "import tensorrt; print(tensorrt.__version__)"で動作を確認してください。JetPack 6/7では、サポート対象のTensorRT 10.xランタイムを使用してください。TensorRT 11.2.1に置き換えないでください。セットアップ手順と高度な使用方法については、TensorRT専用の統合ガイドをご覧ください。

ビルド環境をローカルで構成せずに、ブラウザーからエクスポートすることもできます。Ultralytics PlatformのモデルエクスポートタブでTensorRTと対象のJetsonを選択してください。Thorの選択肢は、実機のThorハードウェアで検証されています。Orinの6つの選択肢では、現在AGX-Orin上でビルドされた候補エンジンが生成されます。デプロイする前に、対象のOrin SKUで検証してください。

TensorRTエンジンはデバイス固有です

TensorRTは、ビルドに使用したGPU上でエンジンのプロファイル作成とチューニングを行います。ターゲットのGPUアーキテクチャとTensorRT/CUDAランタイムを一致させ、ダウンロードしたすべてのエンジンをデプロイ先のデバイスで検証してください。同じアーキテクチャのOrin SKUであっても、互換性が保証されるわけではありません。また、最良の結果を得るには、ターゲットデバイスでINT8キャリブレーションを行ってください。

モデルをTensorRTに変換して推論を実行する#

PyTorch形式のYOLO26nモデルをTensorRTに変換し、エクスポートしたモデルで推論を実行します。

例
from ultralytics import YOLO

# YOLO26n PyTorchモデルを読み込む
model = YOLO("yolo26n.pt")

# モデルをTensorRTにエクスポートする
model.export(format="engine")  # 'yolo26n.engine'を作成します

# エクスポートしたTensorRTモデルを読み込む
trt_model = YOLO("yolo26n.engine")

# 推論を実行
results = trt_model("https://ultralytics.com/images/bus.jpg")
注

さまざまなモデル形式にエクスポートする際に使用できる追加引数については、エクスポートページをご覧ください。

NVIDIA Deep Learning Accelerator(DLA)を使用する#

NVIDIA Deep Learning Accelerator(DLA)は、NVIDIA Jetsonデバイスに組み込まれた専用ハードウェアコンポーネントであり、電力効率と性能を高めるためにディープラーニング推論を最適化します。GPUから処理をオフロードして、より負荷の高い処理にGPUを使用できるようにすることで、DLAは高いスループットを維持しながらモデルの消費電力を抑えます。そのため、組み込みシステムやリアルタイムAIアプリケーションに最適です。

TensorRTとDLAの互換性

NVIDIAによると、DLAをサポートする最後のリリースはTensorRT 10.7です。TensorRT 11.0、11.1、11.2はDLAをサポートしていません。お使いのJetPackバージョンでサポートされる、DLA対応のTensorRTリリースを使用してください。TensorRT 11.2.1は、GPUのみのエクスポートを含め、JetPackをサポートしていません。

以下の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

# YOLO26n PyTorchモデルを読み込む
model = YOLO("yolo26n.pt")

# DLAを有効にしてモデルをTensorRTにエクスポートする(FP16またはINT8でのみ動作)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0またはdla:1はDLAコアに対応します

# エクスポートしたTensorRTモデルを読み込む
trt_model = YOLO("yolo26n.engine")

# 推論を実行
results = trt_model("https://ultralytics.com/images/bus.jpg")
注

DLAにエクスポートすると、一部のレイヤーがDLAでの実行をサポートしておらず、GPUで実行される場合があります。このフォールバックによりレイテンシが増加し、推論性能全体に影響することがあります。そのため、DLAはTensorRTをGPUのみで実行する場合と比べて、推論レイテンシを削減することを主な目的としていません。DLAの主な目的は、スループットを向上させ、電力効率を高めることです。

NVIDIA JetsonでのYOLO26ベンチマーク#

Ultralyticsチームは、11種類のモデル形式を対象に速度と精度を測定するYOLO26ベンチマークを実施しました。対象形式は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で動作しますが、以下の比較チャートには、JetsonのGPUを活用し、最良の結果が得られることが保証されているPyTorch、TorchScript、TensorRTのみを掲載しています。それ以外のエクスポート形式はすべてCPUのみを使用するため、上記の3形式ほど高い性能は得られません。すべてのエクスポート形式のベンチマークは、このチャートの後のセクションで確認できます。

NVIDIA Jetson AGX Thor 開発者キット#

Jetson AGX Thor Benchmarks
Ultralytics 8.3.226でベンチマーク

NVIDIA Jetson AGX Orin 開発者キット(64GB)#

Jetson AGX Orin Benchmarks
Ultralytics 8.4.32でベンチマーク

NVIDIA Jetson Orin Nano Super 開発者キット#

Jetson Orin Nano Super Benchmarks
Ultralytics 8.4.33でベンチマーク

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Ultralytics 8.4.33でベンチマーク

詳細な比較表#

以下の表は、5種類のモデル(YOLO26n、YOLO26s、YOLO26m、YOLO26l、YOLO26x)と11種類の形式(PyTorch、TorchScript、ONNX、OpenVINO、TensorRT、TF SavedModel、TF GraphDef、TF Lite、MNN、NCNN、ExecuTorch)のベンチマーク結果を示しています。各組み合わせのステータス、サイズ、mAP50-95(B)指標、推論時間を確認できます。

NVIDIA Jetson AGX Thor 開発者キット#

性能
形式ステータスディスク上のサイズ(MB)mAP50-95(B)推論時間(ms/im)
PyTorch✅5.30.47987.39
TorchScript✅9.80.47894.21
ONNX✅9.50.47676.58
OpenVINO✅10.10.479417.50
TensorRT(FP32)✅13.90.47911.90
TensorRT(FP16)✅7.60.47971.39
TensorRT(INT8)✅6.50.42731.52
TF SavedModel✅25.70.476447.24
TF GraphDef✅9.50.476445.98
TF Lite✅9.90.4764182.04
MNN✅9.40.478421.83

Ultralytics 8.4.7でベンチマークを実施

注

推論時間には前処理と後処理は含まれません。

NVIDIA Jetson AGX Orin 開発者キット(64GB)#

性能
形式ステータスディスク上のサイズ(MB)mAP50-95(B)推論時間(ms/im)
PyTorch✅5.30.479011.58
TorchScript✅9.80.47704.60
ONNX✅9.50.47709.87
OpenVINO✅9.60.482028.80
TensorRT(FP32)✅11.50.47704.18
TensorRT(FP16)✅7.90.47892.62
TensorRT(INT8)✅5.40.46402.30
TF SavedModel✅24.60.476071.10
TF GraphDef✅9.50.476070.02
TF Lite✅9.90.4760227.94
MNN✅9.40.476032.46
NCNN✅9.30.481029.93

Ultralytics 8.4.32でベンチマークを実施

注

推論時間には前処理と後処理は含まれません。

NVIDIA Jetson Orin Nano Super 開発者キット#

性能
形式ステータスディスク上のサイズ(MB)mAP50-95(B)推論時間(ms/im)
PyTorch✅5.30.479015.60
TorchScript✅9.80.477012.60
ONNX✅9.50.476015.76
OpenVINO✅9.60.482056.23
TensorRT(FP32)✅11.30.47707.53
TensorRT(FP16)✅8.10.48004.57
TensorRT(INT8)✅5.30.44903.80
TF SavedModel✅24.60.4760118.33
TF GraphDef✅9.50.4760116.30
TF Lite✅9.90.4760286.00
MNN✅9.40.476068.77
NCNN✅9.30.481047.50

Ultralytics 8.4.33でベンチマークを実施

注

推論時間には前処理と後処理は含まれません。

NVIDIA Jetson Orin NX 16GB#

性能
形式ステータスディスク上のサイズ(MB)mAP50-95(B)推論時間(ms/im)
PyTorch✅5.30.479913.90
TorchScript✅9.80.478711.60
ONNX✅9.50.476314.18
OpenVINO✅9.60.481940.19
TensorRT(FP32)✅11.40.47707.01
TensorRT(FP16)✅8.00.47894.13
TensorRT(INT8)✅5.50.44893.49
TF SavedModel✅24.60.476492.34
TF GraphDef✅9.50.476492.06
TF Lite✅9.90.4764254.43
MNN✅9.40.476048.55
NCNN✅9.30.480534.31

Ultralytics 8.4.33でベンチマークを実施

注

推論時間には前処理と後処理は含まれません。

異なるバージョンのNVIDIA Jetsonハードウェアで実施されたSeeed Studioによるベンチマークの取り組みをさらに見る。

結果を再現する#

すべてのエクスポート形式で上記のUltralyticsベンチマークを再現するには、次のコードを実行してください。

例
from ultralytics import YOLO

# YOLO26n PyTorchモデルを読み込む
model = YOLO("yolo26n.pt")

# すべてのエクスポート形式でCOCO128データセットを使用してYOLO26nの速度と精度をベンチマークします
results = model.benchmark(data="coco128.yaml", imgsz=640)

ベンチマーク結果は、システムのハードウェアとソフトウェアの構成や、ベンチマーク実行時のシステムの負荷によって異なる場合があります。最も信頼性の高い結果を得るには、data='coco.yaml'(検証画像5000枚)のような、画像数の多いデータセットを使用してください。

NVIDIA Jetsonを使用する際のベストプラクティス#

NVIDIA JetsonでYOLO26を実行する際に最高のパフォーマンスを引き出すには、いくつかのベストプラクティスに従う必要があります。

  1. MAX Power Modeを有効にする

    JetsonでMAX Power Modeを有効にすると、すべてのCPUコアとGPUコアがオンになります。

    sudo nvpmodel -m 0
  2. Jetson Clocksを有効にする

    Jetson Clocksを有効にすると、すべての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モデルの実行や、追加の並列ワークロードのサポートが可能になります。詳しくは、Jetsonのメモリ効率を最大化する方法に関するNVIDIAのブログをご覧ください。

1. ヘッドレス(GUIなし)で起動する#

JetsonをSSH経由で接続している場合や、ディスプレイを接続せずに本番環境のアプライアンスとして実行している場合は、デスクトップ環境とディスプレイサーバーを無効にすることで、最大865 MBのRAMを回収できます。

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

後からデスクトップ環境を復元するには、次のコマンドを実行します。

sudo systemctl set-default graphical.target
sudo reboot

2. 使用していないシステムサービスを無効にする#

重要でないバックグラウンドサービス(Bluetooth、接続管理ツール、使用していないハードウェアデーモン)は、合計で約32 MBを消費します。実行中のサービスを一覧表示し、デプロイで必要のないものを無効にしてください。

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

# Disable a service
sudo systemctl disable SERVICE_NAME

3. メモリ使用量をプロファイリングする#

最適化する前に、実際にどのプロセスがRAMを消費しているかを特定してください。procrankはプロセスをPSS(Proportional Set Size)順に並べ替えます。PSSは、他のプロセスと共有されるページを含む、プロセスにマッピングされた物理RAMページの合計であるRSS(Resident Set Size)よりも、プロセスごとの実際のメモリ使用量を正確に反映します。

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

4. 本番環境ではディスプレイなしで推論を実行する#

ライブプレビューが不要な推論パイプラインでは、ディスプレイ関連コンポーネント(Tiler、OSD、DisplaySink)を無効にすると、パイプラインだけで200 MB以上を節約できます。Ultralytics YOLOでは、ビューアーを非表示にし、代わりに結果をディスクに書き込みます。

例
from ultralytics import YOLO

model = YOLO("yolo26n.engine")

# show=Falseはディスプレイウィンドウを表示しないようにし、save=Trueは注釈付きの出力をディスクに書き込みます
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 JetPack SDKをJetsonデバイスに書き込みます。次に、すばやくセットアップするにはビルド済みのDockerイメージを使用するか、必要なパッケージを手動でインストールします。それぞれの方法の詳しい手順は、Dockerを使ったクイックスタートおよびネイティブインストールで始めるの各セクションをご覧ください。

  • YOLO26モデルはさまざまなNVIDIA Jetsonデバイスでベンチマークされており、大幅なパフォーマンス向上が確認されています。たとえば、TensorRT形式は最高の推論パフォーマンスを実現します。詳細な比較表セクションの表では、さまざまなモデル形式におけるmAP50-95や推論時間などのパフォーマンス指標を包括的に確認できます。

  • TensorRTは優れたパフォーマンスを発揮するため、NVIDIA JetsonへのYOLO26モデルのデプロイに強く推奨されます。JetsonのGPU性能を活用して推論を高速化し、効率と速度を最大限に高めます。TensorRTへの変換と推論の実行方法については、NVIDIA JetsonでTensorRTを使用するセクションをご覧ください。

  • NVIDIA JetsonにPyTorchとTorchvisionをインストールするには、まずpip経由でインストールされた既存のバージョンをアンインストールします。次に、JetsonのARM64アーキテクチャに対応するPyTorchとTorchvisionのバージョンを手動でインストールします。この手順の詳しい説明は、PyTorchとTorchvisionをインストールするセクションをご覧ください。

  • YOLO26を使用してNVIDIA Jetsonのパフォーマンスを最大限に高めるには、次のベストプラクティスに従ってください。

    1. MAX Power Modeを有効にして、すべてのCPUコアとGPUコアを使用します。
    2. Jetson Clocksを有効にして、すべてのコアを最大周波数で動作させます。
    3. Jetson Statsアプリケーションをインストールして、システム指標を監視します。

    コマンドや詳しい情報については、NVIDIA Jetsonを使用する際のベストプラクティスセクションをご覧ください。

  • メモリ容量の少ないJetsonデバイスでは、使用可能なRAMがボトルネックになることがよくあります。次の3つの簡単な対策を組み合わせると、1 GB以上を回収できます。

    1. ヘッドレス起動に切り替える(sudo systemctl set-default multi-user.target)ことで、デスクトップGUIを無効にします(約865 MBを節約)。
    2. Bluetoothや接続管理ツールなどの使用していないサービスを無効にすることで、約32 MBを節約できます。
    3. YOLOのpredict呼び出しでshow=Falseを設定してディスプレイなしで推論を実行すると、ディスプレイパイプライン用のメモリ割り当てを回避できます(200 MB以上を節約)。

    procrankを使用してプロセスごとのRAM使用量をプロファイリングし、sudo cat /sys/kernel/debug/nvmap/iovmm/clientsを使用してGPUの割り当てを確認してください。詳しくは、メモリ最適化のヒントセクションをご覧ください。

  • JetPack 6に同梱されているTensorRT 10.3.0には、NMSフリー(nms=False)INT8エンジンのビルドを妨げる既知の問題があります。Ultralyticsはこの組み合わせを検出すると、エクスポートを確実に成功させるため、自動的にone-to-manyヘッドを選択します。

    NMSフリー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をご覧ください。

コメント