Meet YOLO26: next-gen vision AI.

Link to this sectionNVIDIA Jetson上でのDeepStream SDKとTensorRTを使用したUltralytics YOLO26#



Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀

この包括的なガイドでは、DeepStream SDKとTensorRTを使用してNVIDIA JetsonデバイスにUltralytics YOLO26をデプロイするための詳細な手順を説明します。ここでは、Jetsonプラットフォームでの推論パフォーマンスを最大化するためにTensorRTを使用します。

NVIDIA DeepStream SDK on Jetson platform
注意

This guide has been tested with NVIDIA Jetson Orin Nano Super Developer Kit running the latest stable JetPack release of JP6.1, Seeed Studio reComputer J4012 which is based on NVIDIA Jetson Orin NX 16GB running JetPack release of JP5.1.3 and Seeed Studio reComputer J1020 v2 which is based on NVIDIA Jetson Nano 4GB running JetPack release of JP4.6.4. It is expected to work across all the NVIDIA Jetson hardware lineup including latest and legacy.

Link to this sectionNVIDIA DeepStreamとは何ですか?#

NVIDIAのDeepStream SDKは、GStreamerをベースにしたAIマルチセンサー処理、ビデオ、オーディオ、画像認識のための完全なストリーミング分析ツールキットです。これは、IVA(インテリジェントビデオ分析)アプリやサービスを構築するビジョンAI開発者、ソフトウェアパートナー、スタートアップ、OEMにとって理想的です。ニューラルネットワークや、トラッキング、動画のエンコード/デコード、動画レンダリングといった他の複雑な処理タスクを組み込んだストリーム処理パイプラインを作成できるようになりました。これらのパイプラインにより、ビデオ、画像、センサーデータのリアルタイム分析が可能になります。DeepStreamのマルチプラットフォームサポートにより、オンプレミス、エッジ、クラウド上でビジョンAIアプリケーションやサービスをより迅速かつ簡単に開発できます。

Link to this section前提条件#

このガイドを始める前に:

ヒント

このガイドでは、JetsonデバイスにDeepStream SDKをインストールするためにDebianパッケージ方式を使用しています。DeepStreamのレガシーバージョンについては、DeepStream SDK on Jetson (Archived)も参照してください。

Link to this sectionYOLO26用のDeepStream設定#

ここでは、YOLOモデルのNVIDIA DeepStream SDKサポートを含むmarcoslucianops/DeepStream-Yolo GitHubリポジトリを使用します。marcoslucianops氏の貢献に感謝します。

  1. 必要な依存関係とともにUltralyticsをインストールしてください。

    cd ~
    pip install -U pip
    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics
    pip install -e ".[export]" onnxslim
  2. DeepStream-Yoloリポジトリをクローンします。

    cd ~
    git clone https://github.com/marcoslucianops/DeepStream-Yolo
  3. Copy the export_yolo26.py file from DeepStream-Yolo/utils directory to the ultralytics folder

    cp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics
    cd ultralytics
  4. YOLO26リリースからお好みのUltralytics YOLO26検出モデル(.pt)をダウンロードしてください。ここではyolo26s.ptを使用します。

    wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
注意

カスタムトレーニングしたYOLO26モデルを使用することも可能です。

  1. モデルをONNXに変換する

    python3 export_yolo26.py -w yolo26s.pt
以下の引数を上記のコマンドに渡します。

DeepStream 5.1の場合は、--dynamic引数を削除し、opset 12以下を使用してください。デフォルトのopsetは17です。

--opset 12

推論サイズを変更する場合(デフォルト: 640)

-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTH

1280の場合の例:

-s 1280
or
-s 1280 1280

ONNXモデルを単純化する場合(DeepStream >= 6.0)

--simplify

動的バッチサイズを使用する場合(DeepStream >= 6.1)

--dynamic

静的バッチサイズを使用する場合(バッチサイズ = 4の例)

--batch 4
  1. 生成された.onnxモデルファイルとlabels.txtファイルをDeepStream-Yoloフォルダにコピーします。

    cp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo
    cd ~/DeepStream-Yolo
  2. インストールされているJetPackのバージョンに合わせてCUDAバージョンを設定します。

    JetPack 4.6.4の場合:

    export CUDA_VER=10.2

    JetPack 5.1.3の場合:

    export CUDA_VER=11.4

    JetPack 6.1の場合:

    export CUDA_VER=12.6
  3. ライブラリをコンパイルする

    make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
  4. モデルに合わせてconfig_infer_primary_yolo26.txtファイルを編集します(80クラスのYOLO26sの場合)

    [property]
    ...
    onnx-file=yolo26s.pt.onnx
    ...
    num-detected-classes=80
    ...
  5. deepstream_app_configファイルを編集します。

    ...
    [primary-gie]
    ...
    config-file=config_infer_primary_yolo26.txt
  6. deepstream_app_configファイルでビデオソースを変更することも可能です。ここではデフォルトのビデオファイルが読み込まれます。

    ...
    [source0]
    ...
    uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4

Link to this section推論を実行する#

deepstream-app -c deepstream_app_config.txt
注意

推論を開始する前にTensorRTエンジンファイルを生成するため、時間がかかります。お待ちください。

YOLO26 with deepstream
ヒント

If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine and network-mode=2 inside config_infer_primary_yolo26.txt

Link to this sectionINT8キャリブレーション#

推論にINT8精度を使用したい場合は、以下の手順に従う必要があります。

注意

現在、INT8はTensorRT 10.xでは動作しません。このガイドのこのセクションは、動作が確認されているTensorRT 8.xでテストされています。

  1. OPENCV環境変数を設定する

    export OPENCV=1
  2. ライブラリをコンパイルする

    make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
  3. COCOデータセットについては、val2017をダウンロードして展開し、DeepStream-Yoloフォルダに移動してください。

  4. キャリブレーション画像用の新しいディレクトリを作成します。

    mkdir calibration
  5. 以下を実行して、COCOデータセットからキャリブレーション用にランダムに1000枚の画像を選択します。

    for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do
      cp ${jpg} calibration/
    done
注意

NVIDIAは、良好な精度を得るために少なくとも500枚の画像を推奨しています。この例では、精度を高めるために1000枚の画像が選択されています(画像数が多い=精度が高い)。head -1000で設定可能です。例えば、2000枚の場合はhead -2000としてください。このプロセスには時間がかかる場合があります。

  1. 選択したすべての画像を含むcalibration.txtファイルを作成します。

    realpath calibration/*jpg > calibration.txt
  2. 環境変数を設定します。

    export INT8_CALIB_IMG_PATH=calibration.txt
    export INT8_CALIB_BATCH_SIZE=1
注意

INT8_CALIB_BATCH_SIZEの値が高いほど、精度が向上し、キャリブレーション速度が速くなります。GPUメモリに合わせて設定してください。

  1. config_infer_primary_yolo26.txtファイルを更新します。

    From(変更前)

    ...
    model-engine-file=model_b1_gpu0_fp32.engine
    #int8-calib-file=calib.table
    ...
    network-mode=0
    ...

    To(変更後)

    ...
    model-engine-file=model_b1_gpu0_int8.engine
    int8-calib-file=calib.table
    ...
    network-mode=1
    ...

Link to this section推論を実行する#

deepstream-app -c deepstream_app_config.txt

Link to this sectionマルチストリーム設定#



Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀

1つのDeepStreamアプリケーションで複数のストリームをセットアップするには、deepstream_app_config.txtファイルに以下の変更を加えます。

  1. 必要なストリーム数に合わせてグリッド表示の行数と列数を変更します。例えば、4つのストリームの場合は2行2列を追加できます。

    [tiled-display]
    rows=2
    columns=2
  2. num-sources=4を設定し、4つのストリームすべてのuriエントリを追加します。

    [source0]
    enable=1
    type=3
    uri=path/to/video1.jpg
    uri=path/to/video2.jpg
    uri=path/to/video3.jpg
    uri=path/to/video4.jpg
    num-sources=4

Link to this section推論を実行する#

deepstream-app -c deepstream_app_config.txt
DeepStream multi-camera streaming configuration

Link to this sectionベンチマーク結果#

以下のベンチマークは、NVIDIA Jetson Orin NX 16GB上で640x640の入力サイズを使用して、YOLO26モデルが異なるTensorRT精度レベルでどのように動作するかをまとめたものです。

Link to this section比較チャート#

NVIDIA Jetson DeepStream performance benchmarks

Link to this section詳細な比較表#

性能
形式ステータス推論時間 (ms/im)
TensorRT (FP32)8.64
TensorRT (FP16)5.27
TensorRT (INT8)4.54

Link to this section謝辞#

このガイドは、Seeed Studioの友人であるLakshantha氏とElaine氏によって作成されました。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionNVIDIA JetsonデバイスでUltralytics YOLO26をセットアップするにはどうすればよいですか?#

To set up Ultralytics YOLO26 on an NVIDIA Jetson device, you first need to install the DeepStream SDK compatible with your JetPack version. Follow the step-by-step guide in our Quick Start Guide to configure your NVIDIA Jetson for YOLO26 deployment.

Link to this sectionNVIDIA JetsonでYOLO26と共にTensorRTを使用する利点は何ですか?#

YOLO26でTensorRTを使用すると、推論用にモデルが最適化され、NVIDIA Jetsonデバイスにおけるレイテンシが大幅に削減され、スループットが向上します。TensorRTは、レイヤー融合、精度キャリブレーション、カーネル自動チューニングを通じて、高性能で低レイテンシのディープラーニング推論を提供します。これにより、特にビデオ分析や自律型マシンなどのリアルタイムアプリケーションにとって非常に有用な、より高速で効率的な実行が可能になります。

Link to this sectionDeepStream SDKを使用して、異なるNVIDIA Jetsonハードウェア間でUltralytics YOLO26を実行できますか?#

はい。DeepStream SDKとTensorRTを使用してUltralytics YOLO26をデプロイするためのガイドは、すべてのNVIDIA Jetsonラインナップと互換性があります。これには、JetPack 5.1.3を搭載したJetson Orin NX 16GBや、JetPack 4.6.4を搭載したJetson Nano 4GBなどのデバイスが含まれます。詳細な手順については、「YOLO26用のDeepStream設定」セクションを参照してください。

Link to this sectionDeepStream用にYOLO26モデルをONNXに変換するにはどうすればよいですか?#

To convert a YOLO26 model to ONNX format for deployment with DeepStream, use the utils/export_yolo26.py script from the DeepStream-Yolo repository.

コマンド例を以下に示します。

python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplify

モデル変換の詳細については、モデルエクスポートセクションを確認してください。

Link to this sectionNVIDIA Jetson Orin NXにおけるYOLOのパフォーマンスベンチマークはどのようなものですか?#

NVIDIA Jetson Orin NX 16GBにおけるYOLO26モデルのパフォーマンスは、TensorRTの精度レベルによって異なります。例えば、YOLO26sモデルでは以下の達成値が得られます。

  • FP32精度: 14.6 ms/im, 68.5 FPS
  • FP16精度: 7.94 ms/im, 126 FPS
  • INT8精度: 5.95 ms/im, 168 FPS

これらのベンチマークは、NVIDIA Jetsonハードウェア上でTensorRT最適化されたYOLO26モデルを使用する際の効率性と性能を強調しています。詳細については、ベンチマーク結果セクションをご覧ください。

コメント