Ultralytics YOLO11 NVIDIA Jetson上でDeepStream SDKとTensorRT
見るんだ: Jetson Nano上でDeepStream SDKを使用して複数のストリームを実行する方法Ultralytics YOLO11
この包括的なガイドでは、DeepStream SDK およびTensorRT を使用して、NVIDIA Jetson デバイス上にUltralytics YOLO11 をデプロイするための詳細なウォークスルーを提供します。ここでは、TensorRT を使用して、Jetson プラットフォームでの推論パフォーマンスを最大化します。
注
このガイドは、JetPackリリースJP5.1.3が動作するNVIDIA Jetson Orin NX 16GBベースのSeeed Studio reComputer J4012と、JetPackリリースJP4.6.4が動作するNVIDIA Jetson Nano 4GBベースのSeeed Studio reComputer J1020 v2の両方でテストされています。最新およびレガシーを含む、NVIDIA Jetsonハードウェアの全ラインナップで動作する見込みです。
NVIDIA DeepStreamとは?
NVIDIAのDeepStream SDKは、AIベースのマルチセンサー処理、ビデオ、オーディオ、画像理解のためのGStreamerベースの完全なストリーミング分析ツールキットです。ビジョンAI開発者、ソフトウェア・パートナー、新興企業、IVA(Intelligent Video Analytics)アプリやサービスを構築するOEMに最適です。ニューラルネットワークや、トラッキング、ビデオエンコード/デコード、ビデオレンダリングなどの複雑な処理タスクを組み込んだストリーム処理パイプラインを作成できるようになりました。これらのパイプラインにより、ビデオ、画像、センサーデータのリアルタイム分析が可能になります。DeepStreamのマルチプラットフォーム対応により、オンプレミス、エッジ、クラウドでビジョンAIアプリケーションとサービスをより迅速かつ容易に開発できます。
前提条件
このガイドに従う前に
- クイックスタートガイドをご覧ください: NVIDIA Jetson withUltralytics YOLO11 を参照して、 NVIDIA Jetson デバイスをセットアップしてください。Ultralytics YOLO11
-
JetPack のバージョンに従ってDeepStream SDK をインストールします。
- JetPack 4.6.4の場合は、DeepStream 6.0.1をインストールします。
- JetPack 5.1.3の場合は、DeepStream 6.3をインストールします。
チップ
このガイドでは、DeepStream SDKをJetsonデバイスにインストールする方法として、Debianパッケージを使用しています。レガシーバージョンのDeepStreamにアクセスするには、DeepStream SDK on Jetson (Archived)を参照してください。
のDeepStream構成YOLO11
ここでは、YOLO モデルのためのNVIDIA DeepStream SDK サポートを含むmarcoslucianops/DeepStream-YoloGitHub リポジトリを使用しています。marcoslucianops 氏の貢献に感謝します!
-
依存関係をインストールする
-
以下のリポジトリをクローンする
-
Ultralytics YOLO11 検出モデル (.pt) をYOLO11 リリースからお好きなものをダウンロードしてください。ここではyolov8s.pt を使用します。
注
また、カスタムで訓練されたYOLO11 モデルを使用することもできる。
-
モデルをONNX
上記のコマンドに以下の引数を渡す
DeepStream 6.0.1 では、オペセット 12 以下を使用します。既定のオペセットは 16 です。
推論サイズを変更するには(デフォルト:640)
1280の例:
ONNX モデルを単純化する (DeepStream >= 6.0)
ダイナミック・バッチ・サイズを使用する手順 (DeepStream >= 6.1)
静的バッチサイズを使用する場合(バッチサイズ=4の例)
-
インストールされているJetPackのバージョンに応じてCUDA 。
JetPack 4.6.4用:
JetPack 5.1.3用:
-
ライブラリをコンパイルする
-
を編集する
config_infer_primary_yoloV8.txt
ファイルを作成します (80クラスを持つYOLOv8s の場合)。 -
を編集する
deepstream_app_config
ファイル -
でビデオソースを変更することもできます。
deepstream_app_config
ファイルを読み込む。ここでは、デフォルトのビデオファイルが読み込まれます。
推論を実行する
注
推論を開始する前に、TensorRT エンジンファイルを生成するのに長い時間がかかります。気長にお待ちください。
チップ
モデルをFP16に変換したい場合 精度に設定するだけである。 model-engine-file=model_b1_gpu0_fp16.engine
そして network-mode=2
内部 config_infer_primary_yoloV8.txt
INT8キャリブレーション
INT8精度を推論に使用したい場合は、以下の手順を踏む必要がある。
-
セット
OPENCV
環境変数 -
ライブラリをコンパイルする
-
COCOデータセットについては バル2017に移動する。
DeepStream-Yolo
フォルダ -
校正画像用の新しいディレクトリを作る
-
以下を実行して、COCOデータセットから1000枚のランダム画像を選択し、校正を実行する。
注
NVIDIA は、良い精度を得るために少なくとも500枚の画像を推奨しています。この例では、より高い精度を得るために1000枚の画像が選ばれています(より多くの画像=より高い精度)。頭-1000から設定できます。例えば、2000枚の画像の場合、頭-2000とします。この処理には時間がかかります。
-
を作成する。
calibration.txt
選択されたすべての画像を含むファイル -
環境変数の設定
注
INT8_CALIB_BATCH_SIZE の値が大きいほど、精度が高くなり、較正速度が速くなります。GPU のメモリに合わせて設定してください。
-
を更新する。
config_infer_primary_yoloV8.txt
ファイルより
へ
推論を実行する
マルチストリームのセットアップ
1つのディープストリーム・アプリケーションで複数のストリームをセットアップするには、以下のように deepstream_app_config.txt
ファイル
-
希望するストリーム数に応じて、行と列を変更してグリッド表示を構築する。例えば、4ストリームなら、2行2列を追加する。
-
セット
num-sources=4
を追加する。uri
4つのストリームのうち
推論を実行する
ベンチマーク結果
次の表は、NVIDIA Jetson Orin NX 16GB上で、入力サイズ640x640でTensorRT の精度レベルを変えた場合のYOLOv8s モデルのパフォーマンスをまとめたものです。
モデル名 | 精密 | 推論時間(ms/im) | FPS |
---|---|---|---|
YOLOv8s | FP32 | 15.63 | 64 |
FP16 | 7.94 | 126 | |
INT8 | 5.53 | 181 |
謝辞
このガイドは当初、Seeed Studioの友人であるラクシャンタとエレインによって作成された。
よくあるご質問
NVIDIA Jetson デバイスでUltralytics YOLO11 を設定するには?
NVIDIA JetsonデバイスでUltralytics YOLO11 を設定するには、まず、お使いのJetPackバージョンと互換性のあるDeepStream SDKをインストールする必要があります。クイックスタートガイドのステップバイステップガイドに従って、NVIDIA JetsonをYOLO11 デプロイ用に設定します。
NVIDIA JetsonでYOLO11 、TensorRT を使用するメリットは何ですか?
YOLO11 でTensorRT を使用すると、推論用のモデルが最適化され、NVIDIA Jetson デバイスでのレイテンシが大幅に短縮され、スループットが向上します。TensorRT は、レイヤ・フュージョン、高精度キャリブレーション、カーネル自動チューニングにより、高性能で低レイテンシのディープラーニング推論を提供します。これにより、より高速で効率的な実行が可能になり、特にビデオ分析や自律型マシンなどのリアルタイム・アプリケーションに役立ちます。
NVIDIA Jetsonハードウェア間で、Ultralytics YOLO11 をDeepStream SDKで実行できますか?
はい、Ultralytics YOLO11 を DeepStream SDK とTensorRT でデプロイするためのガイドは、NVIDIA Jetson の全ラインナップと互換性があります。これには、JetPack 5.1.3搭載のJetson Orin NX 16GBやJetPack 4.6.4搭載のJetson Nano 4GBなどのデバイスが含まれます。詳細な手順については、DeepStream Configuration forYOLO11のセクションを参照してください。
DeepStream 用のYOLO11 モデルをONNX に変換する方法を教えてください。
DeepStream での展開用にYOLO11 モデルをONNX 形式に変換するには utils/export_yoloV8.py
スクリプトを ディープストリームYolo リポジトリ
以下にコマンドの例を挙げる:
モデル変換の詳細については、モデル・エクスポートのセクションをご覧ください。
NVIDIA Jetson Orin NX上のYOLO のパフォーマンス・ベンチマークは?
NVIDIA Jetson Orin NX 16GB上のYOLO11 モデルの性能は、TensorRT 精度レベルによって異なります。たとえば、YOLOv8s モデルでは、次のようになります:
- FP32精度:15.63ms/im、64FPS
- FP16精度:7.94ms/im、126 FPS
- INT8精度:5.53ms/im、181FPS
これらのベンチマークは、NVIDIA Jetsonハードウェア上でTensorRT-最適化されたYOLO11 モデルを使用することの効率性と能力を強調するものです。詳細については、ベンチマーク結果のセクションをご覧ください。