このプロジェクトは、効率的な人物検出のためにRaspberry Pi PicoとTensorFlow Lite MicroとのEthernet接続の統合を示しています。
1. Introduction
このプロジェクトは、組み込み人物検出AIモデルをRP2040ベースのボードにデプロイし、その結果をEthernet接続を通じて送信する方法を示すことを目的としています。
システムは、W5100S-EVB-Picoに接続されたArducam 2MP SPIカメラで構成されています。キャプチャされた画像は、MLモデルの入力として機能し、その中の人物を検出します。次に、結果はEthernetを通じてローカルTCPサーバーに送信されます。
2. Hardware setup
RP2040とW5100S間の通信にSPI0
が使用されるため、Arducam 2MP SPIカメラはSPI1
に接続されます。
オプションで、PC経由でカメラの出力を見たい場合は、USBからTTLへの変換器をUART0ピンに接続することができます。
3. Software setup
このデモアプリケーションには、Raspberry Pi pico-tflmicroリポジトリからの人物検出のサンプルコードを使用しました。
このプロジェクトを開始した時点でArduCAMのpico-tflmicroリポジトリのフォークを発見していなかったため、ArduCAM RPI-Pico-Camリポジトリからいくつかのコードを使用しました。
基本的に、アプリケーションはオリジナルのサンプルと同じことを行っています:
-
カメラから画像をキャプチャする
-
画像に対して検出を行う
-
画像をシリアル経由で送信する
-
人物検出スコアをシリアル経由で送信する
-
人物検出スコアをEthernet経由でローカルTCPサーバーに送信する
Ethernet接続については、RP2040-HAT-Cプロジェクトを参考にしてWIZnet ioLibraryを移植しました。
重要な注意:ArduCAMとWIZnetがSPIピン定義で同じ変数を使用しているため、そのうちの一方を変更する必要があります。
私は初心者レベルなので、TCPクライアントの実装には進んでいません。代わりに、WIZnetの例のループバッククライアントを使用し、カスタマイズされたメッセージをサーバーに単純に送信しました。
How to build the application
事前に訓練されたモデルに変更を加えていないため、この部分については説明しません。
ソースコードをビルドするには、以下のステップに従ってください:
-
あなたのマシンにPico SDKと必要なツールチェーンをセットアップします。Raspberry Piにはここにかなりクールなガイドがあります。
-
私の場合は静的IPを使用しました。あなたの設定に合わせて更新してください。また、宛先のTCPサーバーアドレスとポートも更新してください。
-
ビルドディレクトリを作成し、cmakeコマンドを実行します
mkdir build
cd build
cmake ..
-
BOOTSELボタンを押しながら、W5100S-EVB-PicoをUSB経由でPCに接続します
-
コンパイルされたファームウェアをボードにコピーします
4. Testing
テストのために、WIZ510SR-RPモジュール上でTCPサーバーを実行しました。
その理由は単純で、W5100S-EVB-Picoからモジュールに画像を送信し、それをシリアルに戻すことを望んでいました。
しかし、画像バッファをどのように送信するかを把握することができませんでした。
下記のビデオでは、Legoミニフィギュアとスーパーマンの印刷された画像に対してテストされている人物検出アプリが見られます。検出されたスコアはEthernet経由でTCPサーバーに送信されています。
https://www.youtube.com/watch?v=DD8j9_cY_yI
5. Possible Applications
このプロジェクトは、既存の検出システムにネットワーク機能をシームレスに追加することを強調した実用的なデモンストレーションとして機能します。
しかし、SSLを追加することで、より高度で複雑なリアルタイム検出システムを作成することが可能になります。
6. Conclusion
このプロジェクトは、リアルタイム人物検出のためにTensorFlow Lite Microを利用して、Raspberry Pi PicoプラットフォームとEthernet接続の統合を成功させたことを実証しました。PicoのRP2040マイクロコントローラーの計算能力を活用することで、システムは人物検出アルゴリズムを効率的に処理し、スコアをローカルTCPサーバーに送信し、監視とセキュリティにおけるIoTの実用的な応用を示しています。このコンセプト実証は、強化された監視システムからスマートビル管理まで、さまざまなアプリケーションのためのシステムのさらなる探求とカスタマイズの扉を開きます。