Pi Pico でエッジAI を試してみる(2-2)人物検出(Person Detection)by B0067


前回、カメラの解像度の低さが気になったので、今回はOV2640使用200万画素カメラ フレームバッファ付き M12ピンホール B0067に変えてやってみます。

開発環境はラズパイ4 Model B にビルトインされているC/C++ 。

元ネタはArduCAM/RPI-Pico-Cam

上記ページではカメラはHM01B0が参照されていますが、実際に使われているの2MPのB0067 です。

 

 

 

 

 

 

 

データ送信にUSBシリアル変換用コンバーターモジュールも使います。

 

 

 

 

 

 

 


カメラとPico の結線

 

 

 

 

 

 

 

 

 

 

 

 

USBtoTTL とPico の結線

 

 

 

 

 

 

 

 

 

 

 


ラズパイでPico のセットアップ

このセットアップで何が実行されるのかは、Getting StartedドキュメントのChapter 1. Quick Pico Setupに書かれています。

Raspberry Pi 4B または Raspberry Pi 400 で Raspberry Pi Pico 用に開発している場合、インストールの大部分はこの入門ガイドの手順は、セットアップ スクリプトを実行することでスキップできます。

セットアップシェルを実行

一旦リブート

 


ソースからコンパイル

ソースダウンロード

TensorFlow Lite Micro を使ったTinyML の人物検出の実行環境を作成します。

主に浮動小数点演算を8bit整数演算に変換することで実行サイズを削減する手法が使われているようです。精度は少々低下しますが、TinyML ではよく使われる方法です。

コンパイル実行

RPI-Pico-Cam/tflmicro/build/examples/person_detection で以下のファイルを確認

person_detection_int8.uf2

 

*ソース

RPI-Pico-Cam/tflmicro/examples/person_detection

 


UF2ファイルをPico のフラッシュメモリにコピーして、再起動

BOOTSEL ボタンを押しながらUSBケーブルを接続

 

 

 

 

 

 

 

Pico はストレージとして認識されます。

上記のperson_detection_int8.uf2をドラッグ・ドロップ。

UF2がコピーされるとPico は即再起動されます。

 


Processingで画像と実行結果表示

インストールはPi Pico でエッジAI を試してみる(1)カメラ4/5を参照

更に、install.sh を実行してメニュに追加。Touch 周りの警告がいっぱいでますが、気にしません。

メニュにProcessing IDE が現れます。ここから起動できます。

 

 

 

 

 

 

 

 

 

 

 

シリアルポートを以下のコマンドでUSBtoTTLを抜き差しして、確認します。

ls /dev/tty*

 

 

 

 

 

 

 

processingの実行スクリプトを以下から取得します。

person_detection_display.pde

上記で確認したポート番号を使って、このファイルのmyport を書き換えます。

 

 

 

 

 

 

 

 

 

 

 

 

 

書き換えたpdeスクリプトを読み込むかコピー・ペーストして実行します。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

カメラで検出

 

 

 

 

 

 

 

 

 

かなり高い検出結果になりました。

この段階ではPico のMicro-Bポートとラズパイを接続しているUSBケーブルは給電しかしていないのでモバイルバッテリに切り替えてもOKです。

 

 

 

 

 

 

 

 

 

 

 


Appendix

ラズパイでもChatAI を動かせるらしいライブラリ GGML についての記事

 


 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*