見出し画像

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を入力してAvail15G以上であることを確認してください)

  • 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.1L4T R35.3.1なので、dustynv/l4t-pytorch:r35.3.1を使用することになります。

ここから先は

13,505字 / 1ファイル

この記事が気に入ったらサポートをしてみませんか?