airpocket が 2024年08月29日20時22分27秒 に編集
初版
タイトルの変更
Raspberry Pi 5でPINTOさんのYOLOv9-Wholebody17を動かすメモ
タグの変更
RaspberryPi
YOLO
記事種類の変更
セットアップや使用方法
本文の変更
# はじめに [うわさのYOLOをRaspberry Pi 5で試す](https://elchika.com/article/9a31a595-d454-4186-bc85-38f13a5155c2/) [うわさのYOLOをtfliteにしてPi5でもっと高速に動かす](https://elchika.com/article/6261695b-c3da-4e8a-96b5-737e4cd773f3/) このあたりの記事の続編です。 PINTOさんをあがめ奉ります。 https://github.com/PINTO0309/PINTO_model_zoo/tree/main/457_YOLOv9-Wholebody17 # 機材 Raspberry Pi 5 8G + SSDを使用しています。4G + MicroSDでも動きました。2Gでも動くんじゃないかな。 OSはRaspberry Pi OS Bookworm 64Bit版。 カメラは、USB接続の普通のウェブカメラを使っています。 # 環境づくり venvでpython実行用仮想環境を作って有効化します。 ``` sudo apt update && sudo apt upgrade -y python -m venv onnx source onnx/bin/activate ``` 必要なパッケージをインストール ``` pip install opencv-contrib-python numpy onnx pip install opencv-python pip install onnxruntime ``` # 必要ファイルをダウンロードして実行してみる モデルのサイズには小さい方からn,t,s,c,eの5種類。tはモデルを一部変更したt_reluがあります。 私の所感ではPi5で推論するにはtがいい塩梅な気がしますので以下のコマンドでtサイズのモデル と、合せて便利なdemoコードもダウンロードします。 ダウンロードスクリプトを実行するとモデルのダウンロードと展開が実行されて複数のモデルが生成されるので、適当な作業用フォルダを作ってそので実行することをお勧めします。 ``` wget https://raw.githubusercontent.com/PINTO0309/PINTO_model_zoo/main/457_YOLOv9-Wholebody17/download_t.sh sudo chmod 755 download_t.sh ./download_t.sh wget https://raw.githubusercontent.com/PINTO0309/PINTO_model_zoo/main/457_YOLOv9-Wholebody17/demo/demo_yolov9_onnx_wholebody17.py ``` これですべてのファイルがそろいました。 以下のコマンドで実行されます。 ``` python demo_yolov9_onnx_wholebody17.py -m yolov9_t_wholebody17_post_0100_1x3x128x160.onnx -v 0 ``` @[twitter](https://x.com/AirpocketRobot/status/1829116956424966477) 入力画像サイズが最も小さい128x160pxのモデルで実行すると、1フレーム当たり20msec前後で推論されています。この速度であれば幅広い用途に使えそうです。 ただし入力画像サイズが小さいため小さいオブジェクトの検出は厳しくなるはずです。小さいオブジェクトを検出したい場合は入力画像サイズを大きくする必要がありますが、推論速度とトレードオフになります。 少し気になったので次項でモデルサイズや入力画像サイズを変更した際の推論時間への影響を確認しました。 # 推論速度確認 モデルサイズや入力画像サイズが推論時間に与える影響をざっくり調べてみました。 推論時間はバラツキが大きいのですが、ビデオ入力した際に比較的安定している瞬間の値をざっくり読み取っています。 あたりまえっちゃあたりまえですが、推論時間はモデルサイズ・入力サイズに対して線形に相関してることが確認できました。 ## モデルサイズによる推論時間の変化 ![キャプションを入力できます](https://camo.elchika.com/ceeb7db821217bdc2ebd8822f4ae8d46c7a5d14a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38666662353561372d373433312d346234382d383832642d3565323665663534343465652f66313531663165642d616639662d346633382d393332332d323334666434356465616433/) ![キャプションを入力できます](https://camo.elchika.com/231353d18c35894a04fcf3b218fb794ef3237d1f/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38666662353561372d373433312d346234382d383832642d3565323665663534343465652f66653364663731302d306164372d343866312d386337652d353162633961343262343334/) ## 入力画像サイズによる推論時間の変化 ※モデルはtinyを使用しています。 ![キャプションを入力できます](https://camo.elchika.com/affcb6add84c33cc0bfe63636ee6eb420ab17627/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38666662353561372d373433312d346234382d383832642d3565323665663534343465652f33323532323033352d346461352d343137662d623831332d353363303233333138323531/) ![キャプションを入力できます](https://camo.elchika.com/faf84de2f418fd8d86750f379d21c9805383b121/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38666662353561372d373433312d346234382d383832642d3565323665663534343465652f35663638666331352d616332632d343965372d396133342d373538316361393936323736/)