YOLOv8のトラッキングや物体検知をNVIDIA Jetson AGX Orin Developer KitでNGCからL4T-PyTorchを入手し、動作させる方法(2024年3月時点)
最終更新日:2024年3月13日
※ ultralyticsのバージョン8.1.13から8.1.26にアップデートして本記事を見直しました。(特に何も変えずに動作しました)
※ 物体検知でリアルタイムに描画できるサンプルコードを追記しました。
YOLOv8のトラッキングをNVIDIA Jetson AGX Orin Developer Kit (以降Jetson Orin)で動作確認できたので方法を記事に残します。
Jetson Orinを使用するので、最高のパフォーマンスを得るため、確実にGPUを使用して動作していることを確認します。また、カメラ映像はGStreamer経由で入力します。
Jetson Orinのローカルにpythonライブラリを直接インストールするのは避けるため、nvidia-dockerを使用してDockerコンテナからYOLOv8を実行します。
2024年3月11日追記
本記事では、YOLOv8のトラッキングの描画をmodel.track関数で実施しているためJetson Orinのパフォーマンスでもカメラ映像をデスクトップに表示すると動作が重たくなります。(model.track関数の結果から自身でBBOXを描画すれば高速になります)
ultralyticsのバージョンを8.1.26にしたのでYOLOv9も動作するようになりました。
Jetson AGX Orin Developer Kitスペック
環境
本記事を参考に、YOLOv8のトラッキングを動作させるには以下のものが必要です。
NVIDIA Jetson AGX Orin Developer Kit (64GB)
JetPack5.1.1 (※ NVIDIA Jetson AGX Orin Developer KitはJetPack5.1.1以上を推奨)
15Gbyteの空きスペース (※ ターミナルでdf -hを入力してAvailが15G以上であることを確認してください)
USBカメラ
USBマウス
USBキーボード
インターネット接続 (有線接続必須)
JetPackのバージョン確認
Jetson OrinのJetPackのバージョンを確認します。NVIDIA Jetsonシリーズで使用するソフトウェアはJetPackのバージョンの影響を受けます。例えば、PyTorchをインストールするときは、JetPackのバージョン毎にPyTorchの.whlファイルが用意されています。
JetPackのバージョンを確認するため、ターミナルで以下のコマンドを入力します。
$ cat /etc/nv_tegra_release
私の環境だと以下のように出力されます。
note@ubuntu:~/Desktop$ cat /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023
note@ubuntu:~/Desktop$
先頭のR35 (release), REVISION: 3.1に注目して、L4T R35.3.1と解釈します。
以上でJetPackのバージョン確認の説明は終了です。
L4T-PyTorchの入手
YOLOv8を動作させるにはPyTorchが必要です。PyTorchをNVIDIAのGPUに対応させるには、CUDAやcuDNNなど様々なライブラリをインストールし、さらには各ライブラリ間のバージョンも合わせる必要があり、かなりハードルが高いです。
NVIDIAはCUDA対応したPyTorchをnvidia-dockerで無償提供しています。本記事では、NVIDIAのDockerイメージを使用してYOLOv8のトラッキングを動作させます。
まずは、以下のWebページでJetPack5.1.1に適合するL4T-PyTorchを探します。
l4t-pytorchをクリックします。
JetPack5.1.1はL4T R35.3.1なので、dustynv/l4t-pytorch:r35.3.1を使用することになります。
ここから先は
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?