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

Link to this section前提条件#

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

ヒント

本ガイドでは、JetsonデバイスにDeepStream SDKをインストールするためにDebianパッケージ方式を使用しました。DeepStream SDK on Jetson (Archived)にアクセスして、以前のバージョンのDeepStreamを入手することも可能です。

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ファイルを更新します

    変更前

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

    変更後

    ...
    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 🚀

単一の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 section異なるNVIDIA JetsonハードウェアでDeepStream SDKを使用して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モデルを使用することの効率性と性能を裏付けています。詳細については、ベンチマーク結果セクションをご覧ください。

コメント