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


本来はArducamPico4MLを使うところですが、手元にバラであるものを集めてやってみます。

こういう構成です。

 

 

 

 

 

 

 

 

 

 

ArducamPico4ML ではカメラ画像や検出結果の表示にLCD ディスプレイのST7735 を使っていますが、手元に無かったので結果の表示に有機EL(OLED)ディスプレイ、カメラ画像表示は母艦のラズパイ経由でProcessing を使ってみます。

開発環境はArduino IDE です。

カメラ(HM01B0)設定や画像の取得は以下を参照

Pi Pico でエッジAI を試してみる(1)カメラ

 

 

 

 

 

 

 

 

 

有機EL(OLED)ディスプレイに関しては以下を参照

Pi Pico (W) に有機EL (OLED) ディスプレイ:Arduino IDE

 

 

 

 

 

 

 

 

 

 

ベースになるサンプルコードはスケッチ例の中の、person_detection です。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

このコードをベースにして上記、カメラとディスプレイのコードをジョイントして、ArducamPico4MLと同じようなことをやってみます。

 


person_detectionの中の2つのファイル(person_detection.ino、image_provider.cpp)を改変します。

以下の2行に挟まれたコードが追加された部分です。

//——ADD S————-
//——ADD E————-

オリジナルコードの中のST7735に関連した部分は削除しています(オリジナルのif SCREEN の部分)。
代わりに表示には有機EL(OLED)を使います。

 

person_detection.ino

 

image_provider.cpp

3行目の#include <Arduino.h>はこのソースのスコープでSerial.writeを実行するために必要です。

 

コードをコンパイルしてPico に書き込みます。コードが書き込まれると即Pico は再起動され人物検出のTinyMLの推論プロセスが実行されます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

processing を起動してpreview.pdeでシリアルに流れてくる画像を取得します。

Pi Pico でエッジAI を試してみる(1)カメラの5/5参照

 

 

 

 

 

 

 

 

 

 

 

 

 

 


カメラで写真の人物を検出してみます

Processing 表示用のスクリプト

https://github.com/ArduCAM/RPI-Pico-Cam/blob/master/rp2040_hm01b0/display/preview.pde

 

 

 

 

 

 

 

 

 

ディスプレイの表示

 

 

 

 

 

 

 

 

 

写真の人物が写りこんでいる場合とそうじゃない場合で値が違うので何らかの結果を反映しているのは確からしいのですが、この値が真かどうかは不明です….。

でも、やはりこのカメラの解像度の低さが気になります。

 


Next

カメラをOV2640使用2MP(Mega Pixel)に変えてArduCAM/RPI-Pico-Cam のやり方で再チャレンジしてみます。

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

 


addition

人物画像を映しこむとスコアが上がったので、解像度は関係なさそうです。

多分これで正解。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*