TensorRT を使用した YOLOv8 のデプロイ
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
TensorRT を使用して NVIDIA Jetson 上で YOLOv8 をデプロイ
このウィキガイドでは、YOLOv8 モデルを NVIDIA Jetson プラットフォームにデプロイし、TensorRT を使用して推論を実行する方法を説明します。ここでは、Jetson プラットフォーム上で推論性能を最大化するために TensorRT を使用します。
以下のようなさまざまなコンピュータビジョンタスクがここで紹介されます:
- オブジェクト検出
- 画像セグメンテーション
- 画像分類
- ポーズ推定
- オブジェクト追跡

前提条件
- Ubuntu ホスト PC(ネイティブまたは VMware Workstation Player を使用した仮想マシン)
- reComputer Jetson または JetPack 5.1.1 以上を実行しているその他の NVIDIA Jetson デバイス
このウィキは、NVIDIA Jetson Orin NX 16GB モジュールを搭載した reComputer J4012 および reComputer Industrial J4012[https://www.seeedstudio.com/reComputer-Industrial-J4012-p-5684.html] でテストおよび検証されています。
Jetson に JetPack をフラッシュする
まず、Jetson デバイスに JetPack システムがフラッシュされていることを確認する必要があります。JetPack をデバイスにフラッシュするには、NVIDIA SDK Manager またはコマンドラインを使用できます。
Seeed の Jetson 搭載デバイスのフラッシュガイドについては、以下のリンクを参照してください:
- reComputer J1010 | J101
- reComputer J2021 | J202
- reComputer J1020 | A206
- reComputer J4012 | J401
- A203 キャリアボード
- A205 キャリアボード
- Jetson Xavier AGX H01 キット
- Jetson AGX Orin 32GB H01 キット
JetPack バージョン 5.1.1 をフラッシュしてください。このウィキではそのバージョンで検証されています。
1 行のコードで Jetson に YOLOv8 をデプロイ!
Jetson デバイスに JetPack をフラッシュした後、以下のコマンドを実行するだけで YOLOv8 モデルを実行できます。このコマンドは、必要なパッケージや依存関係をダウンロードしてインストールし、環境をセットアップし、YOLOv8 から事前学習済みモデルをダウンロードして、オブジェクト検出、画像セグメンテーション、ポーズ推定、画像分類タスクを実行します!
wget files.seeedstudio.com/YOLOv8-Jetson.py && python YOLOv8-Jetson.py
上記スクリプトのソースコードは こちら で確認できます。
事前学習済みモデルの使用
YOLOv8を使用する最も簡単な方法は、YOLOv8が提供する事前学習済みモデルを使用することです。ただし、これらはPyTorchモデルであるため、Jetsonで推論を行う際にはCPUのみを使用します。JetsonでGPUを使用してこれらのモデルを最高のパフォーマンスで実行したい場合は、このWikiのセクションに従ってPyTorchモデルをTensorRTにエクスポートしてください。
- 物体検出
- 画像分類
- 画像セグメンテーション
- ポーズ推定
- オブジェクト追跡
YOLOv8はCOCOデータセットで学習された、入力画像サイズ640x640の物体検出用の5つの事前学習済みPyTorchモデルウェイトを提供しています。以下にそれらを示します。
モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 A100 TensorRT (ms) | パラメータ (M) | FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
参考: https://docs.ultralytics.com/tasks/detect
上記の表から希望するモデルを選択してダウンロードし、以下のコマンドを実行して画像に対して推論を行うことができます。
yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg' show=True
ここで、モデルをyolov8s.pt、yolov8m.pt、yolov8l.pt、yolov8x.ptに変更すると、関連する事前学習済みモデルがダウンロードされます。
また、ウェブカメラを接続して以下のコマンドを実行することもできます。
yolo detect predict model=yolov8n.pt source='0' show=True
上記のコマンドを実行してエラーが発生した場合は、コマンドの最後に「device=0」を追加してみてください。

上記はreComputer J4012/ reComputer Industrial J4012で実行され、640x640入力で学習されたYOLOv8sモデルを使用し、TensorRT FP16精度を使用しています。
YOLOv8はImageNetで学習された、入力画像サイズ224x224の画像分類用の5つの事前学習済みPyTorchモデルウェイトを提供しています。以下にそれらを示します。
モデル | サイズ (ピクセル) | 精度 top1 | 精度 top5 | 速度 CPU ONNX (ms) | 速度 A100 TensorRT (ms) | パラメータ (M) | FLOPs (B) at 640 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 66.6 | 87.0 | 12.9 | 0.31 | 2.7 | 4.3 |
YOLOv8s-cls | 224 | 72.3 | 91.1 | 23.4 | 0.35 | 6.4 | 13.5 |
YOLOv8m-cls | 224 | 76.4 | 93.2 | 85.4 | 0.62 | 17.0 | 42.7 |
YOLOv8l-cls | 224 | 78.0 | 94.1 | 163.0 | 0.87 | 37.5 | 99.7 |
YOLOv8x-cls | 224 | 78.4 | 94.3 | 232.0 | 1.01 | 57.4 | 154.8 |
参考: https://docs.ultralytics.com/tasks/classify
希望するモデルを選択して以下のコマンドを実行し、画像に対して推論を行うことができます。
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg' show=True
ここで、モデルをyolov8s-cls.pt、yolov8m-cls.pt、yolov8l-cls.pt、yolov8x-cls.ptに変更すると、関連する事前学習済みモデルがダウンロードされます。
また、ウェブカメラを接続して以下のコマンドを実行することもできます。
yolo classify predict model=yolov8n-cls.pt source='0' show=True
上記のコマンドを実行してエラーが発生した場合は、コマンドの最後に「device=0」を追加してみてください。
(update with 224 inference)

上記はreComputer J4012/ reComputer Industrial J4012で実行され、224x224入力で学習されたYOLOv8s-clsモデルを使用し、TensorRT FP16精度を使用しています。また、TensorRTモデルを使用する場合、推論エンジンがデフォルトで640の画像サイズを受け入れるため、推論コマンド内にimgsz=224引数を渡すことを忘れないでください。
YOLOv8は、COCOデータセットで640x640の入力画像サイズでトレーニングされた画像セグメンテーション用の5つの事前学習済みPyTorchモデルウェイトを提供しています。以下にそれらを示します。
モデル | サイズ (ピクセル) | mAPbox 50-95 | mAPmask 50-95 | 速度 CPU ONNX (ms) | 速度 A100 TensorRT (ms) | パラメータ (M) | FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-seg | 640 | 36.7 | 30.5 | 96.1 | 1.21 | 3.4 | 12.6 |
YOLOv8s-seg | 640 | 44.6 | 36.8 | 155.7 | 1.47 | 11.8 | 42.6 |
YOLOv8m-seg | 640 | 49.9 | 40.8 | 317.0 | 2.18 | 27.3 | 110.2 |
YOLOv8l-seg | 640 | 52.3 | 42.6 | 572.4 | 2.79 | 46.0 | 220.5 |
YOLOv8x-seg | 640 | 53.4 | 43.4 | 712.1 | 4.02 | 71.8 | 344.1 |
参考: https://docs.ultralytics.com/tasks/segment
以下のコマンドを実行して、画像に対して推論を行うために希望するモデルを選択できます。
yolo segment predict model=yolov8n-seg.pt source='https://ultralytics.com/images/bus.jpg' show=True
ここで、モデルをyolov8s-seg.pt、yolov8m-seg.pt、yolov8l-seg.pt、yolov8x-seg.ptに変更すると、関連する事前学習済みモデルがダウンロードされます。
また、ウェブカメラを接続して以下のコマンドを実行することもできます。
yolo segment predict model=yolov8n-seg.pt source='0' show=True
上記のコマンドを実行する際にエラーが発生した場合は、コマンドの末尾に「device=0」を追加してみてください。

上記はreComputer J4012/ reComputer Industrial J4012で実行され、640x640の入力でトレーニングされたYOLOv8s-segモデルを使用し、TensorRT FP16精度を使用しています。
YOLOv8は、COCOキーポイントデータセットで640x640の入力画像サイズでトレーニングされたポーズ推定用の6つの事前学習済みPyTorchモデルウェイトを提供しています。以下にそれらを示します。
モデル | サイズ (ピクセル) | mAPpose 50-95 | mAPpose 50 | 速度 CPU ONNX (ms) | 速度 A100 TensorRT (ms) | パラメータ (M) | FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
参考: https://docs.ultralytics.com/tasks/pose
以下のコマンドを実行して、画像に対して推論を行うために希望するモデルを選択できます。
yolo pose predict model=yolov8n-pose.pt source='https://ultralytics.com/images/bus.jpg'
ここで、モデルをyolov8s-pose.pt、yolov8m-pose.pt、yolov8l-pose.pt、yolov8x-pose.pt、yolov8x-pose-p6に変更すると、関連する事前学習済みモデルがダウンロードされます。
また、ウェブカメラを接続して以下のコマンドを実行することもできます。
yolo pose predict model=yolov8n-pose.pt source='0'
上記のコマンドを実行する際にエラーが発生した場合は、コマンドの末尾に「device=0」を追加してみてください。

オブジェクト追跡は、ビデオストリーム内でオブジェクトの位置とクラスを特定し、その検出に一意のIDを割り当てるタスクです。
基本的に、オブジェクト追跡の出力は、オブジェクト検出の出力にオブジェクトIDが追加されたものと同じです。
参照: https://docs.ultralytics.com/modes/track
以下のコマンドを実行して、オブジェクト検出/画像セグメンテーションに基づいたモデルを選択し、ビデオで推論を実行できます。
yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc"
ここで、model
にはyolov8n.pt
、yolov8s.pt
、yolov8m.pt
、yolov8l.pt
、yolov8x.pt
、yolov8n-seg.pt
、yolov8s-seg.pt
、yolov8m-seg.pt
、yolov8l-seg.pt
、yolov8x-seg.pt
のいずれかを指定できます。これにより、関連する事前学習済みモデルがダウンロードされます。
また、ウェブカメラを接続して以下のコマンドを実行することもできます。
yolo track model=yolov8n.pt source="0"
上記のコマンドを実行中にエラーが発生した場合は、コマンドの末尾にdevice=0
を追加してみてください。


TensorRTを使用して推論速度を向上させる
前述の通り、Jetson上でYOLOv8モデルを実行する際に推論速度を向上させたい場合は、まず元のPyTorchモデルをTensorRTモデルに変換する必要があります。
以下の手順に従って、YOLOv8 PyTorchモデルをTensorRTモデルに変換してください。
これは、前述した4つのコンピュータビジョンタスクすべてに対応しています。
- ステップ1. モデルパスを指定してエクスポートコマンドを実行します。
yolo export model=<path_to_pt_file> format=engine device=0
例:
yolo export model=yolov8n.pt format=engine device=0
cmake
に関するエラーが発生した場合は無視してください。TensorRTのエクスポートが完了するまで数分かかる場合がありますので、しばらくお待ちください。
TensorRTモデルファイル(.engine
)が作成されると、以下のような出力が表示されます。

- ステップ2. 追加の引数を渡したい場合は、以下の表を参照してください。
キー | 値 | 説明 |
---|---|---|
imgsz | 640 | スカラーまたは(h, w)リストとしての画像サイズ、例:(640, 480) |
half | False | FP16量子化 |
dynamic | False | 動的軸 |
simplify | False | モデルの簡略化 |
workspace | 4 | ワークスペースサイズ(GB) |
例えば、PyTorchモデルをFP16量子化でTensorRTモデルに変換したい場合は、以下を実行します。
yolo export model=yolov8n.pt format=engine half=True device=0
モデルが正常にエクスポートされると、yoloのpredictコマンド内のmodel=引数にこのモデルを直接置き換えることができます。これにより、検出、分類、セグメンテーション、ポーズ推定の4つのタスクすべてを実行できます。
例えば、オブジェクト検出の場合:
yolo detect predict model=yolov8n.engine source='0' show=True
独自のAIモデルを持ち込む
データ収集とラベリング
特定のAIアプリケーションを持ち、アプリケーションに適した独自のAIモデルを使用したい場合は、独自のデータセットを収集し、それにラベルを付けた後、YOLOv8を使用してトレーニングを行うことができます。
自分でデータを収集したくない場合は、すぐに利用可能な公開データセットを選ぶこともできます。COCOデータセット、Pascal VOCデータセットなど、多くの公開データセットをダウンロードできます。Roboflow Universeは、幅広いデータセットを提供する推奨プラットフォームであり、90,000以上のデータセットと6,600万以上の画像がコンピュータビジョンモデルの構築に利用可能です。また、Googleでオープンソースのデータセットを検索し、利用可能なさまざまなデータセットから選ぶこともできます。
独自のデータセットを持っていて画像に注釈を付けたい場合は、Roboflowが提供する注釈ツールを使用することをお勧めします。詳細については、このWikiの部分を参照してください。また、Roboflowの注釈に関するこのガイドも参考にしてください。
トレーニング
ここでは、モデルをトレーニングするための3つの方法を紹介します。
最初の方法は、Ultralytics HUBを使用することです。RoboflowをUltralytics HUBに簡単に統合できるため、すべてのRoboflowプロジェクトがトレーニングにすぐに利用可能になります。ここでは、Google Colabノートブックを使用してトレーニングプロセスを簡単に開始し、リアルタイムでトレーニングの進行状況を確認できます。
2番目の方法は、トレーニングプロセスを簡単にするために作成されたGoogle Colabワークスペースを使用することです。ここでは、Roboflow APIを使用してRoboflowプロジェクトからデータセットをダウンロードします。
3番目の方法は、ローカルPCを使用してトレーニングプロセスを実行することです。この場合、十分に強力なGPUを持っていることを確認し、データセットを手動でダウンロードする必要があります。
- Ultralytics HUB + Roboflow + Google Colab
- Roboflow + Google Colab
- Roboflow + Local PC
ここでは、Ultralytics HUBを使用してRoboflowプロジェクトを読み込み、Google Colabでトレーニングを行います。
ステップ1. このURLにアクセスしてUltralyticsアカウントにサインアップします。
ステップ2. 新しく作成したアカウントでサインインすると、以下のダッシュボードが表示されます。

ステップ3. このURLにアクセスしてRoboflowアカウントにサインアップします。
ステップ4. 新しく作成したアカウントでサインインすると、以下のダッシュボードが表示されます。

ステップ5. 新しいワークスペースを作成し、このWikiガイドに従ってワークスペース内に新しいプロジェクトを作成します。また、公式のRoboflowドキュメントからこちらを参照してさらに学ぶこともできます。
ステップ6. ワークスペース内にいくつかのプロジェクトがある場合、以下のように表示されます。

- ステップ7. Settingsに移動し、Roboflow APIをクリックします。

- ステップ8. Private API Keyをコピーするためにコピーボタンをクリックします。

- ステップ9. Ultralytics HUBダッシュボードに戻り、Integrationsをクリックし、先ほどコピーしたAPIキーを空欄に貼り付けてAddをクリックします。

- ステップ10. ワークスペース名がリストに表示されている場合、統合が成功したことを意味します。

- ステップ11. Datasetsに移動すると、すべてのRoboflowプロジェクトがここに表示されます。

- ステップ12. プロジェクトをクリックしてデータセットの詳細を確認します。ここでは、健康なリンゴと損傷したリンゴを検出できるデータセットを選択しました。

- ステップ13. Train Modelをクリックします。

- ステップ14. Architectureを選択し、Model name (optional)を設定してからContinueをクリックします。ここでは、モデルアーキテクチャとしてYOLOv8sを選択しました。

- ステップ15. Advanced optionsで設定を好みに応じて構成し、Colabコードをコピーして(後でColabワークスペースに貼り付けます)、Open Google Colabをクリックします。

- ステップ16. まだGoogleアカウントにサインインしていない場合は、サインインします。

- ステップ 17
Runtime > Change runtime type
に移動します。

- ステップ 18 Hardware accelerator の下で GPU を選択し、GPU type で利用可能な最高のものを選び、Save をクリックします。

- ステップ 19 Connect をクリックします。

- ステップ 20 RAM, Disk ボタンをクリックして、ハードウェアリソースの使用状況を確認します。

- ステップ 21 最初のコードセルを実行するために Play ボタンをクリックします。

- ステップ 22 以前に Ultralytics HUB からコピーしたコードセルを Start セクションの下に貼り付け、それを実行してトレーニングを開始します。

- ステップ 23 Ultralytics HUB に戻ると、Connected というメッセージが表示されます。Done をクリックします。

- ステップ 24 Google Colab 上でモデルがトレーニングされている間、リアルタイムで Box Loss, Class Loss, Object Loss を確認できます。

- ステップ 25 トレーニングが終了すると、Google Colab 上で以下のような出力が表示されます。

- ステップ 26 Ultralytics HUB に戻り、Preview タブに移動してテスト画像をアップロードし、トレーニング済みモデルのパフォーマンスを確認します。

- ステップ 27 最後に Deploy タブに移動し、推論に使用する形式でトレーニング済みモデルをダウンロードします。ここでは PyTorch を選択しています。

これで、このダウンロードしたモデルを以前にこの Wiki で説明したタスクで使用できます。モデルファイルを自分のモデルに置き換えるだけです。
例えば:
yolo detect predict model=<your_model.pt> source='0' show=True
ここでは、Google Colaboratory 環境を使用してクラウド上でトレーニングを実行します。さらに、Colab 内で Roboflow API を使用してデータセットを簡単にダウンロードします。
- ステップ 1. こちら をクリックして、すでに準備された Google Colab ワークスペースを開き、ワークスペース内の手順を進めてください。

トレーニングが完了すると、以下のような出力が表示されます:

- ステップ 2. Files タブの下で、
runs/train/exp/weights
に移動すると、best.pt というファイルが表示されます。これがトレーニングから生成されたモデルです。このファイルをダウンロードして Jetson デバイスにコピーします。このモデルは後で Jetson デバイスで推論に使用します。

これで、このダウンロードしたモデルを以前にこの Wiki で説明したタスクで使用できます。モデルファイルを自分のモデルに置き換えるだけです。
例えば:
yolo detect predict model=<your_model.pt> source='0' show=True
ここでは、Linux OS を搭載した PC を使用してトレーニングを行います。この Wiki では Ubuntu 20.04 PC を使用しています。
- ステップ 1. システムに pip がインストールされていない場合は、pip をインストールします。
sudo apt install python3-pip -y
- ステップ 2. Ultralytics とその依存関係をインストールします。
pip install ultralytics
- ステップ 3. Roboflow 内のプロジェクトで Versions に移動し、Export Dataset を選択します。Format を YOLOv8 に設定し、download zip to computer を選択して Continue をクリックします。

ステップ 4. ダウンロードした zip ファイルを解凍します。
ステップ 5. 以下を実行してトレーニングを開始します。ここで path_to_yaml を、解凍した zip ファイル内にある .yaml ファイルの場所に置き換えてください。
yolo train data=<path_to_yaml> model=yolov8s.pt epochs=100 imgsz=640 batch=-1
ここでは画像サイズを 640x640 に設定しています。バッチサイズを -1 に設定すると、最適なバッチサイズが自動的に決定されます。また、エポック数はお好みに応じて変更できます。ここでは、事前学習済みモデルを任意の detect、segment、classify、pose モデルに変更することもできます。
トレーニングが完了すると、以下のような出力が表示されます:

- ステップ 6. runs/detect/train/weights フォルダ内に best.pt というファイルが表示されます。これはトレーニングから生成されたモデルです。このファイルをダウンロードし、Jetson デバイスにコピーしてください。このモデルは後で Jetson デバイスで推論に使用します。

これで、このダウンロードしたモデルを以前にこの Wiki で説明したタスクに使用できます。モデルファイルを自分のモデルに置き換えるだけです。
例えば:
yolo detect predict model=<your_model.pt> source='0' show=True
パフォーマンスベンチマーク
準備
YOLOv8 がサポートするすべてのコンピュータビジョンタスクについて、NVIDIA Jetson Orin NX 16GB モジュールを搭載した reComputer J4012 / reComputer Industrial J4012 上でパフォーマンスベンチマークを実施しました。
サンプルディレクトリには trtexec というコマンドラインラッパーツールが含まれています。trtexec は、独自のアプリケーションを開発することなく TensorRT を使用するためのツールです。trtexec ツールには以下の3つの主な目的があります:
- ランダムまたはユーザー提供の入力データを使用したネットワークのベンチマーク。
- モデルからのシリアライズされたエンジンの生成。
- ビルダーからのシリアライズされたタイミングキャッシュの生成。
ここでは、trtexec ツールを使用して、異なるパラメータでモデルを迅速にベンチマークできます。しかし、まず ONNX モデルが必要であり、この ONNX モデルは ultralytics yolov8 を使用して生成できます。
- ステップ 1. ONNX をビルドする:
yolo mode=export model=yolov8s.pt format=onnx
- ステップ 2. trtexec を使用してエンジンファイルをビルドする:
cd /usr/src/tensorrt/bin
./trtexec --onnx=<path_to_onnx_file> --saveEngine=<path_to_save_engine_file>
例えば:
./trtexec --onnx=/home/nvidia/yolov8s.onnx --saveEngine=/home/nvidia/yolov8s.engine
これにより、以下のようなパフォーマンス結果が出力され、.engine ファイルが生成されます。デフォルトでは、ONNX を FP32 精度の TensorRT 最適化ファイルに変換し、以下のような出力が表示されます。

FP16 精度を使用したい場合(FP32 よりも優れたパフォーマンスを提供)、以下のように上記のコマンドを実行できます:
./trtexec --onnx=/home/nvidia/yolov8s.onnx --fp16 --saveEngine=/home/nvidia/yolov8s.engine
さらに、INT8 精度を使用したい場合(FP16 よりも優れたパフォーマンスを提供)、以下のように上記のコマンドを実行できます:
./trtexec --onnx=/home/nvidia/yolov8s.onnx --int8 --saveEngine=/home/nvidia/yolov8s.engine
結果
以下に、reComputer J4012 / reComputer Industrial J4012 上で実行された4つのコンピュータビジョンタスクから得られた結果をまとめます。

ボーナスデモ:YOLOv8 を使用したエクササイズ検出およびカウンター
YOLOv8-Pose モデルを使用して、エクササイズ検出およびカウントのためのポーズ推定デモアプリケーションを構築しました。このデモについて詳しく知り、自分の Jetson デバイスにデプロイするには、こちら をご覧ください!

NVIDIA Jetson 用 YOLOv8 の手動セットアップ
前述のワンラインスクリプトにエラーがある場合は、以下の手順を一つずつ実行して、Jetson デバイスを YOLOv8 に対応させることができます。
Ultralytics パッケージのインストール
- ステップ 1. Jetson デバイスのターミナルにアクセスし、pip をインストールしてアップグレードします。
sudo apt update
sudo apt install -y python3-pip -y
pip3 install --upgrade pip
- ステップ 2. Ultralytics パッケージをインストールします。
pip3 install ultralytics
- ステップ 3. numpy のバージョンを最新にアップグレードします。
pip3 install numpy -U
- ステップ 4. デバイスを再起動します。
sudo reboot
Torch と Torchvision のアンインストール
上記の Ultralytics のインストールにより Torch と Torchvision がインストールされます。しかし、pip 経由でインストールされたこれらの 2 つのパッケージは、ARM aarch64 アーキテクチャに基づく Jetson プラットフォームでは互換性がありません。そのため、事前にビルドされた PyTorch の pip ホイールを手動でインストールし、Torchvision をソースからコンパイル/インストールする必要があります。
pip3 uninstall torch torchvision
PyTorch と Torchvision のインストール
こちらのページ を訪問して、すべての PyTorch と Torchvision のリンクを確認してください。
以下は JetPack 5.0 以上でサポートされているバージョンの一部です。
PyTorch v2.0.0
JetPack 5.1 (L4T R35.2.1) / JetPack 5.1.1 (L4T R35.3.1) と Python 3.8 に対応
ファイル名: torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
URL: https://nvidia.box.com/shared/static/i8pukc49h3lhak4kkn67tg9j4goqm0m7.whl
PyTorch v1.13.0
JetPack 5.0 (L4T R34.1) / JetPack 5.0.2 (L4T R35.1) / JetPack 5.1 (L4T R35.2.1) / JetPack 5.1.1 (L4T R35.3.1) と Python 3.8 に対応
ファイル名: torch-1.13.0a0+d0d6b1f2.nv22.10-cp38-cp38-linux_aarch64.whl
URL: https://developer.download.nvidia.com/compute/redist/jp/v502/pytorch/torch-1.13.0a0+d0d6b1f2.nv22.10-cp38-cp38-linux_aarch64.whl
- ステップ 1. 以下の形式で、JetPack バージョンに応じた torch をインストールします。
wget <URL> -O <file_name>
pip3 install <file_name>
例えば、JP5.1.1 を使用している場合、PyTorch v2.0.0 を選択します。
sudo apt-get install -y libopenblas-base libopenmpi-dev
wget https://nvidia.box.com/shared/static/i8pukc49h3lhak4kkn67tg9j4goqm0m7.whl -O torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
pip3 install torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
- ステップ 2. インストールした PyTorch のバージョンに応じて torchvision をインストールします。例えば、PyTorch v2.0.0 を選択した場合、Torchvision v0.15.2 を選択します。
sudo apt install -y libjpeg-dev zlib1g-dev
git clone https://github.com/pytorch/vision torchvision
cd torchvision
git checkout v0.15.2
python3 setup.py install --user
以下は、PyTorch バージョンに応じた対応する torchvision バージョンのリストです:
- PyTorch v2.0.0 - torchvision v0.15
- PyTorch v1.13.0 - torchvision v0.14
より詳細なリストについては、こちらのリンク を確認してください。
ONNX のインストールと Numpy のダウングレード
PyTorch モデルを TensorRT に変換したい場合のみ必要です。
- ステップ 1. 必須要件である ONNX をインストールします。
pip3 install onnx
- ステップ 2. エラーを修正するために Numpy を低いバージョンにダウングレードします。
pip3 install numpy==1.20.3
リソース
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するため、さまざまなサポートをご用意しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。