SPRESENSEでの物体認識デモについて

技術投稿

こんにちは、合同会社尽星、開発チームの田中健策(@tannakaken)です。

本日は以前の記事で解説したSPRESENSEによる実際のプログラミングとデモ作成について説明していきます。

このデモは『ものづくり博2022 in 東三河』で展示した物体認識のデモです。

spresenseによる物体認識デモの様子

写真を見ても分かりにくいかもしれませんが、SPRESENSEのカメラの前に模型の人工衛星を置くと、ディスプレイ上でその人工衛星の周囲に赤い四角が描かれています。

このデモではこのように物体を認識していると写真が撮影されて、SDカードに保存されていきます。

実際の運用では、撮影すべきものを検知したら撮影し、撮影されたデータを送信可能なタイミングで地上へと送信する計画です。

ただしこの時点ではまだSPRESENSEでのプログラムも経験が少なく、手探りの状態でのデモ作成となりました。

参考にしたのは以下の本です。

SPRESENSEではじめるローパワーエッジAI (Make: PROJECTS)

SPRESENSEについて詳しく書いてあるだけでなく、ソニーのGUIによる機械学習フレームワーク「Neural Network Console」を使った機械学習モデルの学習や、それをIoT向けに小さいモデルにしていく過程なども書いてあり、大変役に立ちました。

実際にこの本を元に、文字認識や画像のセグメンテーションなどのタスクをSPRESENSEを使って行うのは、刺激的です。ArduinoやM5StackなどのIoT機器で機械学習モデルを動かす話と比べても、お手軽感が強くて驚きました。

ただ、今回のデモについては機械学習は(検討はしましたが)実は使っていません。なぜかというと、今回の実行例が「黒背景に何か入ったらその物体を検知して撮影してくれ」という非常に簡単なものであったため、機械学習は使わずに、本当に単純な画像処理で行なってしまえるからです。

簡単に説明すると、「画像の白黒化→閾値を使って二値化(完全な白と完全な黒に分ける)→(白い部分の幅が一番長い縦の部分と横の部分を探して四角を作る」という、非常に雑なものです。

プログラミングに慣れた人は気づくかもしれませんが、これがうまく作動しないケースは簡単に作れます。例えばブーメラン型の物体に出会うと、うまく四角で囲えません。

あくまでデモであり、また未だ実際の使用状況が固っていない段階で作り込んでも仕方がないという観点から、今回はこれでOKということになりました。

地上での運用であれば、「とりあえず作って動かしてみよう」となるのですが、宇宙だとなかなかそうもいきません。合同会社尽星では、さまざまな視点から「普通の人たちが宇宙で写真撮影するなら何を撮るだろう」と考えています。

これを見て、もし何か「こう使えばいいのではないか?」というご意見があったら、コメント欄などで教えてくださると嬉しいです。

コメント

タイトルとURLをコピーしました