🕌

【猫監視システムへの道】1.経緯からカメラ選定まで

2023/08/21に公開

猫監視システムを作ることにした経緯(読み飛ばし可)

私は現在フルリモート勤務をしているのですが、
8/7(月)はPCトラブルで出社する必要があって、朝から家を空けました。

9時頃に家を出て、帰宅したのが20時半頃。
帰宅すると、飼っている猫2匹の様子がおかしい…。
琥珀は右前足をかばいながらひょこひょこ歩き、
瑪瑙はぐったりしてキャットトンネルから出てこない。

自動給餌器のカリカリは全く減っておらず、トイレも使った形跡がない。
当時、SwitchBotを導入していたので、室温などは外からチェックしていましたが、
長時間家を空けることがないと思っていたのでペットカメラは導入していませんでした。

結局、8/7(月)9:00~、8/8(火)10:30までの間に、
琥珀は推定20gのフードを食べ、おしっこ1回、うんち0回。
瑪瑙は推定5gのフードを食べ、おしっこ0回、うんち0回。
という、明らかに何かが起きている異常事態。

8/8に行きつけの動物病院に行ったところ、
「2匹とも右前足の付け根が腫れている。高いところから落ちたのかも」
とのことでした。

普段の午前中は室内で追いかけっこをして、
キャットタワーに駆け上ったり、駆け下りたりしているので、
その際に2匹一緒に落ちたのかも、と推測しています。

…で、不在時の記録用にカメラを購入する事にしました。

そして、この際だから徹底的に猫を監視してやろうと考えました。

実現したいこと

必ず実現したいこと

  • PCのデスクトップアプリでスマートホーム関係の良く使う機能を集約する
  • カメラの映像をPCから監視する
  • 任意のタイミングで、静止画・動画を保存する
  • 動き検知
  • 音検知
  • 猫だけ検出(人はどうでもいい。泥棒は入らない想定)
  • 静かに動いている時と、ドタバタ走り回っている時を区別する
  • 猫がドタバタ走り回っている間だけ、音声付きの動画を録画する
  • 0:00~09:00にかけて、猫が走り回っている場合に、
     TVを点けてYouTubeの「猫が夢中になる動画」を再生する。
     猫が静かになって30分経過したらTVを消す。

余力があれば実現したいこと

  • 猫がキッチンでいたずらしていたら通知する
  • キッチンでいたずらを検知したら、追い払う
      例:猫が嫌がる音を鳴らす、水入りの霧吹きを自動で吹きかける、等。
  • 猫がトイレを利用したら通知する
  • 猫がフードを食べた時刻と量を管理する

トイレに関しては、猫の識別機能やトイレの利用を記録機能、
体重チェック機能が付いた自動トイレを導入した方が早いし確実かもしれません。
でも、トイレもPCで管理したい…。

カメラの選定

カメラに求める性能

私が求めたカメラの条件は以下の通り。
(1)リアルタイムで、PC/スマホから映像チェックができる。
(2)好きなタイミングで、PC/スマホから動画・静止画を撮影できる。
(3)Pan/Tilt/ZoomをPC/スマホから制御できる。
(4)動体検知や、物体(猫)の検知ができる。
(5)解像度はFull HD(1920x1080)、フレームレートは25~30pf程度。
(6)カメラとPC/スマホはWifi(2.4GHz)を通じて接続する。

私はスマホよりも圧倒的にPCに向かっている時間が長いので、
PCからの映像チェックと、PCからの操作は必須でした。

すでにSwitchBotを導入していたので、同メーカーの見守りカメラMP3も検討していましたが、
どうもPCでは(1)(2)が無理のよう。

(4)は、PCでPythonを使えばそれっぽい事ができるので、カメラ自体の機能でなくても良い。

Wifi対応のネットカメラとラズパイやモーターなどを使ってすべて自作する事も考えていましたが、
Pythonで監視カメラビューアを作っている先駆者がいた事が決め手になり、
Tapo C210というカメラにしました。

こちらが決め手になった記事
https://zenn.dev/kotaproj/articles/71ab74393a8d32

その他、Tapo C210の評価点
・300万画素(C200より画質が良い)
・ONVIF対応(PCから操作するのに必要)
・RTSP対応(PCから閲覧するのに必要)
・値段が手ごろ(送込み5000円未満)

妥協ポイント
・15fps
・猫を検知する機能はない(人物検知、赤ちゃんの泣き声検知の機能のみ)

設置してみての感想

気に入っている点

  • 設置と設定が簡単。
  • 映像がきれい。
  • ナイトモード(夜間撮影中)であっても猫がはっきり見える。

うーんと思った点

  • Tapoアプリで全画面表示から戻る時の操作性がイマイチ。
  • Pan/Tilt時の駆動音で猫が反応する
  • カメラのZoom機能が無い(ビューアの開発中に気付いた)
  • 「動体検知しました」という通知が結構な頻度で来る。
  • 大きな物音を検知して通知する機能はない。
  • ACアダプタが大きくてコンセント回りがすっきりしない。
  • 映像のクラウド保存などの機能は有料。(1ヵ月だけお試し無料。使ってない)

備考:カメラ関係の規格

UVC(USB Video Class)

UVC(USB Video Class)とは、ウェブカメラの通信規格のひとつで、PCやDVR、NASとウェブカメラを接続する際に、双方の機器がこの方式に対応している場合に映像の伝送やPTZ操作などが可能になる。 ただし、本規格に対応したウェブカメラを利用する場合にはUSBバスパワー給電に対応したUSB端子が必須となる。
https://bouhancamera-choice.com/words/usb-video-class

私が以前業務で使っていたカメラはこのタイプ。
PCとカメラを直接USB接続するだけで簡単にPCから映像を取得可能になる。
ただ、今回はPCとカメラを直接接続する気はなく、Wifi経由にしたかったので除外。

ONVIF(Open Nerwork Video Interface Forum)

ONVIFとは、アクシスコミュニケーション、ソニー、ボッシュが立ち上げたネットワークカメラ製品間の共通規格インターフェースを策定するフォーラム、またはその標準規格のこと。
防犯カメラ・監視カメラシステムを構築する上では、ONVIF規格に対応していれば、異なるメーカーのカメラ・レコーダーを組み合わせて利用できるという大きなメリットがある。ネットワークカメラの標準化規格では世界的に最も普及した規格であり、約500社、7,500製品以上が対応している(2017年3月現在)。
https://bouhancamera-choice.com/words/onvif

ネットワークカメラの規格。
インターフェースが共通規格化されているので、ONVIF対応ソフトなどで映像の視聴や制御ができる。
つまり、カメラメーカーの専用アプリを使わなくても良い。

RTSP(Real Time Streaming Protocol)

RTSPとは、Real-Time Streaming Protocolの略称です。リアルタイムでのストリーミング通信を実現するために使用されるプロトコルであり、主にビデオやオーディオなどのマルチメディアコンテンツをリアルタイムで配信する際に活用されます。
https://the-simple.jp/what-is-rtsp-an-easy-to-understand-explanation-of-the-basic-concepts-of-real-time-streaming-protocols

PCでリアルタイムの映像確認をしたり、YouTubeでライブ配信する際に必須の規格。
SwitchBotの見守りカメラはこの規格に対応していないため、今回除外した。
自宅のスマート家電のブランドを統一できなかった最大の理由。

PTZカメラ

PTZカメラ、またはPTZ機能とは、パン(Pan:Panoramac viewの略):カメラの画角を水平方向に移動(横方法に首振り)させる制御、ティルト・チルト(Tilt):カメラの画角を垂直方法に移動(縦方向に首振り)させる制御、ズーム(Zoom):画角を拡大(ズームアップ)及び縮小(ズームアウト)して表示させる制御を組み合わせて「遠隔で」操作することが可能なカメラまたはその機能のこと。
https://bouhancamera-choice.com/words/ptz-camera

画角を変えたり、拡大・縮小する場合に必須。

次の記事から、実際に開発していきます。

Discussion