MotionEyeと余っているラズパイで監視カメラ
最近、ちょっと物騒な事件が関東近郊で起きていますね。 じつは私の家の近所でも行ったり来たりしている若者(20代~30代)の男性3人がいたというの耳にしました。
オフィス街で事務所を探しているならまだしも、住宅街のはずれで平日の昼間にスマホをみながらウロウロしていたというは、ちょっと気になりますね。
どこのご家庭にも余っているという古いラズパイとCamera moduleで防犯カメラアプリ(MotionEye)を起動してみました。
このCameraはいつ買ったのか覚えていませんが 初代ではなく V2とのことで800万画素のものです。
ラズパイxカメラのソフトは、有名どころでMJPG-Streamerがありました。
以前、動かしたことがありましたが動体検知機能などありません。ネットワークカメラ的にスマホから映像を見るくらいです。いわゆるライブカメラです。
今回は、MotionEyeOSというお手軽に導入できて、動体検知できる防犯カメラ(証拠を残せる)ものを使ってみます。
https://github.com/motioneye-project/motioneyeos/releases
こちらからダウンロードしてきます。
ラズパイ1用、2用、3用、4用が個別にあります。
Pi5用はありません。
最初Pi1B、Pi2Bで動作させましたが、画像は出るものの動体検知がうまく機能せず断念。
Pi4(1GB)で動かそうとしたら起動しない(EthernetのLEDが点滅してLAN接続できない)ので断念。
Pi3でようやくうまく行きました。
Pi5はカメラ用端子が変更されたので Camera module V2を接続することができません。同様にTinkerBoardもカメラ仕様が違うためCamera module V2が使えません。
設置はこんな感じで窓に貼り付けています。 黒い布は窓ガラスに反射して画像が見にくくなるのを防いでいます。
動体検知した画像は後から見ることができます。
とりあえず本日で4日目。 誤検知を少なくするように日々設定を変更しつつ実用に耐えうるようにしていきます。
ということでセットアップ方法と設定のコツを紹介いたします。
OSのダウンロード
上のリンクからOSイメージファイルをダウンロードしてきてSDカードに転送します。
私はErcherを使っています。 ファイルを解凍することなくそのままイメージファイルを転送できます。
MotionEyeOSの起動
SDカードをラズパイに挿してカメラも接続しておきます。 起動すると勝手にカメラを認識してくれます。
初回起動時にカメラを繋げていないとカメラセットアップを自分でやらなければいけません。というか、後から認識させることができませんでした。
MotionEyeOSの画面表示
DHCPでルーターからIPアドレスが振られるので、それを調べないとブラウザからアクセスできません。
NetEnum(winアプリ)、Fing(Androidアプリ)、ルーターのDHCPサーバー払い出し画面、などどんな方法でも良いです。
meye-****** というのがMotionEyeです。 IPアドレスをブラウザの窓に入れてみてみます。
こんなログイン画面がでてきます。
Usernameに admin パスワードは空白でログインします。
以下のような画面が見えれば起動成功です。カメラの映像も見えるはずです。この例では夜なのでカメラ画像が真っ黒・・・です。
左上の「三」みたいなアイコンから設定していきます。
設定
早速、設定していきましょう。
TimeZoneとワイヤレスLANを設定します。有線LANで使用するひとは初期状態のままでOKと思います。固定IPアドレスにしておく方が後から迷わないかもしれませんね。
次にVideo Device です。自動でMMAL Cameraとして認識しています。
Camera module V2の解像度は3280 x 2464なのですが、フルサイズを指定すると動体検知(下で説明)が上手く機能しませんでした。
縦横とも半分の1640 x 1232、フレームレート 7~10 fpsくらいがPi3での実用限界なようです。
縦解像度を880にしているのは、私の家の窓から映すカメラ画像上で上下は要らないからです。 少しでもCPU負荷を減らして検知ミスを減らします。(でも必要な部分の解像度は上げたい)
Extra Motion Options はカメラの明るさを指定できたりするらしいです。HDR指定できないかな・・・
Text Overlay ってのは、時間情報などをカメラ画像に入れ込むやつです。 Textスケールで大きさを見やすくすると良いです。
画像の保存形式選択
スチルイメージ(写真)、ムービー(動画)どちらかを選びます。 同時ONでは動きません。
Capture Mode / Recoding Modeは Motion Triggeredにします。
※ 当初、スチルイメージで動作させましたが、動体検知している最中1秒に1枚づつしか保存してくれないので、途中からムービー保存にしました。
動体検知(Motion Detection)
ここが最も重要です。
現在はこういう設定にしています。
スレッショルドとノイズはAutoにしました。 スライダーで設定できるのですが、結構シビアで思うように設定しにくいのです。
Light Switch Detection : 画面全体の明るさが変わったときの誤検知を防ぐ機能(ただいま検証中)
Despeckle Filte:ノイズやモアレを除去するフィルタです。(ONするとCPU負荷が増える)
Motion Gap:検知した後のギャップ時間
Captured Before:イベント検知した直前の映像を保存します。 10fps時に10フレームにすると1秒前から映像を残します。
Captured After:イベント後の録画フレーム数
Minimum Motion Frames:イベントの最小フレーム数(ただいま検証中)
Mask:検知外エリアの設定(赤) 木など揺れるものを検知したくない箇所を除外します。
私は向かいの家の壁なども赤で塗りつぶして動体検知エリアから除外しました。 エリヤ外を増やすことでCPU負荷が多少減ります。
maskタイプで「smart」というのもあるのですが、どのように機能するのか不明です。
CPU負荷を見ながら調整
Pi3のように4CoreあるものではCPU負荷が25%を超えると動体検知が機能しにくくなるようです。
SSH接続してTOPコマンドで負荷を表示させて確認します。
ユーザー名:admin
パスワード:空白
です。
/usr/bin/motion がメインで走っているプログラムです。 4Coreなので25%がひとつのCPUの100%になり、超えてしまうとコマ落ちや動体検知できな不具合など発生するようです。
出来れば20%を下回るくらいに抑えておきます。
Video Devise設定で解像度を落とす、フレームレートを落とすなどが効果的でした。
一番上のPrefarenceの中のFrame Rate Dimmer、Resolution Dimmerを落としても変化はみられませんでした。
惜しいところ
ラズパイカメラモジュール V2は 800万画素と解像度は高いけど、暗いところは苦手なようです。夜はほぼ真っ黒。
低照度カメラを購入するのもアリですね。IMX290、IMX327、IMX462などです。
ただ、スイッチサイエンスなど低照度カメラは軒並み売り切れていて購入しにくいようです。
あと、日中でもシャッタースピードが遅く動体ボケしています。 フレームレートは10fpsだとしてもSSは高速にして動き物をしっかり写せたらいいなっと思います。
発展させる
ネットワークカメラを追加することで一つのMotionEyeで複数のカメラで監視できるように作られています。
Pi2やPi1などをネットワークカメラとして使って、動体検知はCPUパワーのあるPi4やPi5、PCなどにやらせることも可能かもしれません。
Pi1、Pi2でタイムラプス
Pi1とPi2ではCPUパワーが足りず動体検知は厳しいですが、定期的に写真を撮るタイムラプスは可能でした。
昔の防犯カメラのように24時間動画を取りっぱなしでの運用とか、高感度カメラを付けて天体観測するとか、風景のタイムラプスを撮るなんてこともできます。
インターバルでスチルイメージ撮影
撮り終えた写真からタイムラプス動画として簡単にダウンロードできる。 もちろん自前で写真からタイムラプス動画を作っても良いと思います。(そういうアプリは幾つかあるようです)
< ワンクリックでタイムラプス動画を作ってくれる >
« SB32+PRO DoP リペア | トップページ | Card Rabbit USB 進捗 »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
たかじんさん
怪しいのは通報です!
投稿: 天 婦羅夫 | 2024年11月21日 (木) 00時51分
古いラズパイとCamera moduleなんて、どこの家庭にも転がってませんて。😹
ZOOMの新しいハンディレコーダーH1essentialを注文したのですが、配達時間帯になっても部屋のチャイムはさっぱり鳴らず。
痺れを切らして郵便受けを覗いたら、ちゃんと在宅していた時刻に不在だと。🙀
部屋番号を間違えたのか、あるいは面倒で不在連絡票を投函しただけなのか、怒り心頭で日本郵政の窓口に電話。丁寧な口調でもこちらの怒り具合が伝わったのか、電話の向こうのお姉さんは平謝り。
明日、集配担当の郵便局から電話が来たら、ガッツリと抗議しないと。😼
日本郵政では初めてだけど、ヤマトでも1回やられたことあり。
時間を置いてチャイムをもう一度鳴らすとか、確認の電話を入れるとかいう一手間を掛けたら、再配達なんてさらに大きな手間を省けるのに。その辺の気配りというか、トータルで見たら楽になる方法とか考えないんだろうか。😾
投稿: 三毛にゃんジェロ | 2024年11月21日 (木) 03時20分
ラズパイではありませんが、どこのお宅にも転がっている古いパソコン+Linux+Motionというソフトウェアで、動体検知監視カメラを稼働させていたことがあります。Webカメラで動くのでお手軽です。
投稿: DSK | 2024年11月21日 (木) 15時15分
天 婦羅夫さん
ほんとその通りですね。 青葉区の事件以来、近所の人たちも気にして見ているように思います。 あの事件のような山間の古い住宅地って多いですし。 SECOMに頼むほど・・・とも思えないのが何とも、ね。
三毛にゃんジェロさん
ラズパイ用カメラは少ないかもしれませんが、使っていないラズパイがあるという人は相当数いるような気がします。
再配達・・・ うちもあります。 自宅待機中にヘッドホンで試聴していたら。。。 って私が悪いだけです。 ごめんなさい。
DSK さん
さすがですね。 Linux+Motion をお手軽にしたのが MotionEyeOSです。 RaspberryPi OSベースではなく、もっと軽量なLinuxをつかっているようです。 Yocto Projectあたりかな? busyBox使っているし。
パソコンより消費電力が少なく、置き場所が小さくて済むというのもメリットかもしれません。
夏の暑いところでラズパイが壊れずに耐えるのかってのはわかりません。とりあえず壊れるまで運用してみようかと思っています。
投稿: たかじん | 2024年11月22日 (金) 08時22分