[Mac] Sighthound Video で監視カメラ

これまで自宅の監視カメラ的なシステムとして Raspberry Pi の motionEye と Mac の Ivideon を使ってきた。

Home · ccrisan/motioneye Wiki
https://github.com/ccrisan/motioneye/wiki

Cloud Video Surveillance | Ivideon
https://www.ivideon.com/

motionEye は Raspberry Pi に接続した USB カメラを IP カメラ化できると同時に動体検知等でカメラの画像や映像を記録できる。

Ivideon は主に iOS への動体検知通知用のアプリケーションにしている。過去の映像・画像は motionEye 以上に見やすいし、プッシュ通知の際にスナップショットも見ることができるのが嬉しい。Ivideon だけで動体検知を記録してもいいんだけど、motionEye でも記録することで記録漏れを防いでいる。

最近、私の家の前のゴミ置き場に、車から降りてきて荷物を置いていく迷惑おばさんがいた。でも、motionEye でも Ivideon でも設定が甘かったのか、ちゃんと「犯行現場」を記録できていなかった。というわけで、監視カメラシステムを見直すことにした。

でも、Ivideon は動体検知の精度を上げるほど、どうでもいい検知でプッシュ通知が来てしまう。人が家の前を通り過ぎただけでいちいち通知が来ると煩わしい。かといって、精度を下げると肝心な記録ができなかったりする・・・。

もっと細かい設定ができる監視カメラアプリとして、Sighthound Video を使い始めることにした。

Smart Camera Software with Computer Vision Technology | Sighthound
https://www.sighthound.com/products/sighthound-video

Raspberry Pi に USB カメラを接続し、motionEye による IP カメラとして Sighthound Video に登録する際は、Camera Setup で以下のようにする。

・Camera type : Other IP camera
・Protocol : http
・IP address : [Raspberry Pi の IP アドレス]
・HTTP port (optional) : [motionEye で設定したポート番号。たいてい 8081]
・Stream path : /
・以下空欄。

Sighthound Video は検知の設定が細かくできる、すごく「賢い」アプリケーションなのだ。USB カメラや IP カメラの映像を分析して、動く物体が人、乗り物、動物、その他を区別できるし、通知設定も「ドアを通り抜けた人」「指定した境界線を超えた人」「指定ピクセルサイズ以上の動体」のようにかゆいところに手が届く。「XX 秒以上の動体のみ検知」という設定で単に家の前を通り過ぎるだけの人を排除できる。要するに設定をしっかりしておけば、高純度の通知のみが来るようになるのだ。

通知も Sighthound Video をインストールした Mac で音を鳴らしたり、スナップショット付きのメールを送ったり、IFTTT や Webhook での通知や、スクリプトの実行もできたりする。選択肢が多くて便利!

デメリットとしての2台以上のカメラを監視対象としたり、モバイルデバイスへの通知機能を使ったりすると、有料版を買う必要があることかな(トライアル期間あり)。

一番の問題は iOS へのプッシュ通知だ。Sighthound Video の iOS アプリは Sighthound Video をインストールした Mac のグローバル IP アドレス、あるいはプライベート IP アドレスでログインすることになる。

我が家のプロバイダーは固定グローバル IP アドレスに対応していないので、No-IP を使ってカスタムドメインで外部から自宅サーバー等にアクセスできるようにしている。

Free Dynamic DNS – Managed DNS – Managed Email – Domain Registration – No-IP
https://www.noip.com/

Sighthound Video の iOS アプリはグローバル IP アドレス(私の場合は No-IP のカスタムドメイン)でログインすると自宅ネットワークでアプリが使えない。反対にプライベート IP アドレスでログインすると外出先でアプリが使えない。まあグローバル IP アドレスでログインする時は自宅ネットワークに入らず WiFI を切ればいいし、プライベート IP アドレスでログインする時は VPN で自宅ネットワークに入ってアプリを使えばいいんだけど、それも面倒だ。これはもちろん、ネットワーク内部向けの DNS サーバーを構築すれば解決するはずなんだけど、私のスキルではどうもうまくできなかった。

仕方ないので、グローバル IP アドレスでログインして、アプリを使う時は iOS の WiFI を切ろう。そして、アプリのプッシュ通知は使わないことにして、Sighthound Video からの通知はメールおよび Slack にすればいい(スクリプトを実行できるので Slack への通知も簡単だ)。すなわち、動きがあったことだけを Slack およびメールで簡単に知ればいいので、iOS アプリは動体検知の詳細動画を見る状況でのみ使うことにした(詳細な動画を閲覧する状況は少ない)。

とりあえず欲しい通知のみが来やすくなったので、Sighthound Video をしばらく使ってみよう。