見出し画像

引っ越し先での不思議な出来事を追って4 奇声発生人間の検出 Jetson Nano 2GB+ tinyYOLO

奇声発生人間

"熊おじさん"を見かけなくなったころ、今度は夜中に奇声を発生する若者(うちのベランダの真下辺りで)が出現しました。金曜日の夜から朝と日曜日の夜から朝にかけて出現する頻度が高かったと記憶しています。
複数人の場合もあるようですが、奇声を発生するのはその中の一人だと思います。ベランダから覗きたくても、相手に場所を特定されたくないので、覗く勇気がありませんでした。
ベランダの物干しユニットにUSBカメラを設置し観察することにしました。
道路を挟んだ建物のバイク置き場がある辺りをターゲットに、カメラを調整しました。
Jetson Nano 2GB+tiny-YOLOを使用して人やバイクの簡易画像分類を行い、各クラス(人とか車とか)をカウントする監視装置を作りました。

Jetson Nano 2GB + tinyYOLO

NVIDIAのJetsonNano 2GBは、確か2020年末にリリースされ、GPUユニットを使って画像AI処理ができるLinuxベースのボードコンピュータです。当時¥7,800という破格値で販売されていました。
Jetpackというソフトウェアパッケージが提供され、python用の専用ライブラリ「jetson.inference」と「jetson.utils」を利用することで、画像説明(Imagenet)と物体検出(Detectnet)が簡単に行えるという神マシーンでした。
以下に、リアルタイム物体認識(tiny-YOLO)の動作を示します。
カップを認識しています。

JetsonNano 2GBによるリアルタイム物体認識

デモプログラムは、高性能をアピールしたいためか、リアルタイムでループ処理を行うものなので、物体検出した分類結果を統計処理するような場合は、動画入力ベースから静止画入力に変更することが必要でした。(スピードは落ちますが、、、)
例えば、Detectnetのコードを余分なパーサ部を取り除いて、静止画入力に変更した例を示します。

静止画入力への変更コード(Detectnetの例)

1分間隔で物体検出、ログファイルに保存

定点観察カメラを設置し、1分間隔で画像をキャプチャし画像分類を行いログファイルに保存します。また、検出値が1以上の場合は画像ファイルを保存します。
このアプリを、JetsonNano 2GBで作ることにしました。
以下に「sensorcamera.py」のコードを示します。

定点カメラ画像の物体検出ログ保存プリグラム(sensorcamera.py)

誤検出してしまいましたが、ログ(data.txt)と閾値を超えて保存された画像を示します。
tiny-YOLOの分類は、「人」「犬」「カップ」..…等で、全20クラスです。
今回は、「人」「車」「自転車」「バイク」の4クラスに絞って、検出数をログに保存しました。

定点観察カメラによる物体検出例

ベランダカメラの設置

外からカメラがあることを気づかれないように、物干しユニットの固定部にUSBカメラを設置しました。ターゲットとした場所を観察している様子を示します。
手前の歩道にある何かと駐輪スペースの自転車を検出しています。

定点観察カメラの設置

定点観察結果

日曜日の18時~翌日6時まで定点観察を行いました。ログデータを示します。

検出した物体数

閾値を超えて保存した画像例を示します。 バイク数の変化や車が通った痕跡はありますが、人は検出できませんでした。(小さすぎるのか?)      

検出閾値を超えて保存された画像例

結局、奇声発生人間の正体は分かりませんでしたが、暑い夏が来て、外で屯ろう人もいなくなり奇声も聞こえなくなりました。よかった!
次回は、tiny-YOLOを使った定点観察+物体検出をより使い易くするためにJetsonNano 2GBで定点カメラアプリのWEBサービス化を図ります。

最後まで読んで頂き、ありがとうございました。







いいなと思ったら応援しよう!

甘栗よしろう よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!