動機
ペットのハムスターの活動の様子を知りたい。
具体的には..
- 外出時、ハムスターがちゃんと動いていることを知って安心したい。
- 夜行性のため、飼い主が寝ている時間帯にどれだけ動いていたかを知りたい。
→ 手持ちのラズパイに物体検出ディープラーニングモデルを埋め込み、監視システムを作成。
ラズパイカメラをスマホアームで固定して飼育ケージをストリーミング撮影しています。
できたもの
3つの機能により、ハムスターの活動の様子を見守れるようにしています🐹
Githubにコード一式をまとめています(実装の詳細は作り方の記事にて解説)。
1. 飼育ケージをラズパイカメラで撮影しストリーミング
🐹が巣穴から出てきてカメラに映ったら物体検出モデルが働いてくれます(↓Gif)
使ったもの: Python(Flask), OpenCV, PyTorch, YOLOv5
※ 夜行性なので、暗がりでも撮影できる赤外線カメラを導入。全体的に紫がかってます。
※ かなりカクカクしていますが、行動把握や↓のLINE通知目的ならこれで十分と判断..
2. ハムスターを検出したらLINE通知
🐹が映ってるときに常に通知すると大変なことになるので、10分おきに判定をかけています。
使ったもの: LINE Notify API
3. BIツールによる活動時間帯の可視化
なんとなくですがいつ動いてたか、がわかります。
※ 回し車(wheel)にどのくらい滞在してたかも可視化したいのですが、現状あまりうまく行ってないですね..
使ったもの: GCP(IoTCore, Pub/Sub, Cloud Functions, BigQuery), Googleデータポータル
システム構成図
ごちゃごちゃしてますが全体像はこんな感じです。
※ 最初はObject Detection APIでモデルを作成したのですが、後にYOLOv5に乗り換えました。
※ 2020/11/5 GCPのフローにおいてCloud FunctionsとBigQueryの順番が逆になっていたのを修正
準備したもの&協力者
- Raspberry Pi 4B ※ Jetson nanoとかでも試したい..
- Kuman カメラモジュール Raspberry Pi用 夜間 赤外線可視 ラズベリーパイ 500W画素 Pi 4B 3 2 SC15
- ジャンガリアンハムスター
作り方
それぞれ長くなりそうなので各記事で紹介します(近日投稿予定)
- ラズパイカメラでハムスターの動きを検出し、ストリーミング&LINE通知してみた【YOLOv5実装編】
- ラズパイカメラでハムスターの動きを検出し、ストリーミング&LINE通知してみた【Object Detection API】
- ラズパイカメラ検出したハムスターの動きをGoogleデータポータルで可視化してみた。