例の人検出器をRaspberry Pi 4で動かしてみた
前回の記事(人の検出に特化したPINTOさんの物体検出がなかなかすごいので動かしてみた: EeePCの軌跡)で紹介した検出器がCPUでも軽々と動くので、もしかしたらRaspberry Pi 4でもわりかし快適に動いてくれるんじゃないか?と思ったので、早速試してみました。
まずはRaspberry Pi 4ですが、既存のものを使います。
ですが、入っていたPythonが3.7と古かったので、これを以下の記事を参考に、3.10に上げておきました。
RaspberryPi4BにPython3.10をインストールした #Python3 - Qiita
続いて、
pip3 install numpy opencv-python opencv-contrib-python onnxruntime
とコマンドを打ち込んで、必要なライブラリを一気に入れます。
その状態で、前回記事のコード(demo_goldyolo_onnx.py)やモデル(gold_yolo_n_body_head_hand_post_0461_0.4428_1x3x480x640.onnx)などはそのままRaspberry Piに持ってきました。
で、以下のコマンド、
python demo_goldyolo_onnx.py
を入れて実行。
そうそう、Raspberry Pi 4は例のモバイルモニターにつなぎました。
で、実行するとこれがめちゃくちゃ遅い。推論速度は表示上、1枚当たりだいたい13000ms、つまり13秒です。
見事なくらいカクカクで、確かに10秒以上遅れて表示されます。
いくらRaspberry Piだからといって、ちょっと遅すぎじゃね?
と思ったので、コードを少し見直しました。
まず、303~309行目、
(box[0], box[1]),
(box[2], box[3]),
(255,255,255),
2,
)
この部分を、すべてコメントアウトします。
さらに、349行目、
もコメントアウト。
これで”output.mp4”が出力されなくなりますが、どのみち遅すぎてどうしようもない動画しか出てこないため、切った方がマシです。
(12/3 追記)
もう一か所、変えてました。235行目で、モデルを低解像度のものに変えてます。
#default='gold_yolo_n_body_head_hand_post_0461_0.4428_1x3x480x640.onnx',
もちろん、同じフォルダに「gold_yolo_n_body_head_hand_post_0461_0.4428_1x3x192x320.onnx」を入れるのを忘れないよう。
たったこれだけの工夫で、13000 → 260msと大幅に速くなりました。えっ、こんなに変わるものなの?
ご覧の通り、Raspberry Pi 4でもまあまあの速度で推論されます。これなら、人が立ち入ったかどうか程度の用途ならば使えそうです。
欲を言えば、倍速くなったと言われるRaspberry Pi 5で試してみたいですよね。出たら、すぐに買います。
てことで、Raspberry Pi 4でも用途を限れば使えそうな感じです。
(追記 12/3)
会社のRaspberry Pi 3B+でも試してみました。ほとんど推論速度は変わりませんでした。ということは、CPU以外のところで律速されてる?可能性ありです。
![]() |
ラズベリーパイ 4 コンピューターモデルB 8GB Raspberry Pi 4 ラズパイ 4 TELEC認定取得済み (Raspberry Pi 4 8GB) |
« 人の検出に特化したPINTOさんの物体検出がなかなかすごいので動かしてみた | トップページ | 日経Linux最後の号を購入 »
「Raspberry Pi・Arduino・電子工作」カテゴリの記事
- 名古屋 大須へ行ってきました(2024.04.28)
- Raspberry Pi 5用電源購入(2024.04.19)
- Interface 2024年5月号はRaspberry Pi 5特集(2024.03.26)
- Raspberry Pi 5とPCがつながらなかった理由は「プライバシーセパレーター機能」のせいでした(2024.03.12)
- Raspberry Pi 5に日本語LLM(ELYZA-Japanese-Llama-2-7b-fast-Instruct)を入れてみた(2024.03.10)
« 人の検出に特化したPINTOさんの物体検出がなかなかすごいので動かしてみた | トップページ | 日経Linux最後の号を購入 »
コメント