スマホでYOLO11の映像を見れるようにラズパイ5をサーバーにして試してみた。

スマホでYOLO11の映像を見れるようにラズパイ5をサーバーにして試してみた。

こんにちは。AI coordinatorの清水です。今日は雨なので、今までやろうやろうと思っていたラズパイでYOLO11を動かすを試してみたいと思います。しかもスマホでも見れるようにしたいと思います。

https://github.com/ai-coordinator/RaspberryPi_yolo11

いまさらなんだが、ラズパイでYOLOを試したことがなかったので、どのくらい高速に動くのか検証してみました。現時点でYOLO12まであるようですが、まだメインはYOLO11のようなので、こちらをベースに起動してみたいと思います。

ラズパイのセットアップから

まあ、ここのやり方は色々なサイトに紹介があるのでので、適当に参考して頂ければと思います。最近のラズパイは以前と比べて価格が高いので気軽に試せなくなっているのは技術普及の阻害になっていると思っています。私も以前ほど気軽に購入できなくなりました。

環境は

インストールしてラズパイを起動できたら、「Raspberry Piの設定」をすべてオンにしましょう。

(写真が雑ですみません。)

SSHやVNCでリモート接続するためです。これはラズパイ本体のキーボードでコマンドを打ち込んだりコードを修正するのがめんどくさいので、windowsPCやmacからコマンドやコード修正できるようするために必要です。

YOLO11のセットアップ

YOLOは”Ultralytics”が滅茶苦茶使いやすく提供してくださっているので楽勝に使えるようになりました。以前のYOLOはdarknetと言ってセットアップが結構大変でしたが、Ultralyticsの登場で一気に物体検出が簡単になりましたね。

今回はこちらのクイックスタートに則ってYOLO11をセットアップしたいと思います。

https://docs.ultralytics.com/ja/guides/raspberry-pi

dokerなしで進めます。

SSHでラズパイに接続しましょう

私はwindowsからラズパイに接続してセットアップしますが、ラズパイ本体からキーボード接続して実施しても同じ結果になります。

とはいえ最初はラズパイの”IP adress”を知る必要があるので、ifconfigコマンドでIP adressを把握しましょー。

把握したらwindowsのターミナルからssh接続します。

コマンドは

ですね。

よくipアドレスを取得している画面ハードコピーを紹介してるサイトがたくさんありますが、このipアドレスにぼかしを付けている人がたくさんいます。

別に意味ないと思うので、私は普通に掲載します。誰もハックしねーだろって毎回思います。笑

これでラズパイに接続できました。

YOLO11を起動してみましょー

Ultralyticsのクイックスタートガイド通り進めます。

三行の目のpip処理で以下のエラーが発生しました。

If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing –break-system-packages.
hint: See PEP 668 for the detailed specification.

慣れてない方は大体こういうところで引っ掛かりますね。以前は直接グローバル環境にpipでインストール出来ましたが、最近のOSは仮想環境を作らないと環境構築出来ない仕様になっているため、このようなエラーが発生します。

これを解決するには仮想環境を作る必要がありますね。この仮想環境で構築したコードやなんかは、毎回コードを起動するたびにこの仮想環境を起動する必要があるのでめんどくさいです。でもまあしょうがないですね。

とういことで以下の順で仮想環境を作りましょー。

画像のようになればOKです。

ではクイックスタートに戻って、

暫く待ちましょー。

インストールできたら、リブートしましょー。

再起動したら、いよいよコードを作成するわけですが、ターミナルからのsshだとコード作成が大変なので、ここからはVS codeから接続します。VS codeに”Remote Development”をインストールすれば、先ほどのSSH接続の要領でラズパイに接続してVS codeが使用できるようになります。

VS codeで先ほど作成した仮想環境myenvディレクトリに接続して、環境を立ち上げましょー

このようにコマンド画面の先頭に(myenv)と表示されれば無事に仮想環境が起動しています。

では以下のコードを作成してプログラムを動かしてみます。ファイル目はtest.pyとして

python test.pyで起動しましょー

以下のような結果が出ればとりあえず無事動いていることになります。

カメラからリアルタイム物体検出を動かしてみよー

ここからが本題です。リアルタイム物体検出をラズパイでやってみます。

カメラを使えるようにするためにopencvをインストールします。

opencv-python-headless flaskをインストールする理由は、windowsPCでラズパイ上で動くYOLOの結果を見たいからです。

コードを作成したら、プログラムを起動してみましょー。ブラウザから映像が見れると思います。素晴らしい。

ブラウザからhttp://127.0.0.1:5000/にアクセスして映像を確認してい見ましょー。スマホからでも見れます。

一回試してみたかったので今回出来て良かったです。

ホスト名を決める

IPアドレスが変わると、いちいちラズパイでifconfigでIPを確認しなければいけなくなるため、ホスト名をつけましょー。

これでホスト名が、”aicamera01″になります。以下のURLで起動できますね。

是非参考にしてみてください。

youtubeで紹介しているUIのコードはこちら

About The Author

Hideki
東京大学発AIスタートアップ企業でロボット開発室室長、画像解析室室長、動画解析室室長を務め、AIエンジニアとしても画像認識関連の特許を在籍中に3つ取得。その後、KDDIグループ内でプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRISTのテックリードとして農業の人手不足の解決に向けた収穫ロボットの開発にチャレンジしている。ロボットは技術の総合格闘技との考え方から、AIだけでなく、ハードやエレキ、通信からクラウド、IOTまで幅広く手掛けることができる。最近では人とロボットの共存を目指すべく、性能だけを追い求める開発から「感動やワクワク体験」をデザインできるロボットの研究を進めており、人とロボットがうまく共存できる世界を作り出したいと日々行動している。

LEAVE A REPLY

*
*
* (公開されません)