こんにちは。
ペットカメラの実装編②について紹介します。
前回はMJPG-Streamerについて解説しましたが、今回は動体検知に対応したmotionEyeをインストールします。
motionEyeの導入方法
概要
motionEyeはMJPEG-Streamerと比べると、動体検知や複数のカメラを管理できる多機能なソフトウェアです。その分、マシンスペックが必要になるためRaspberry Pi zeroで実行するとfpsが10~20になります。
また、motionEyeは、Raspberry Pi OSにインストールする方法とmotionEyeが組み込まれたOSが提供されていますが、今回はRaspberry Pi OSにインストールしました。motionとmotionEyeの両方が必要です。
インストール手順
Raspbian Bulleyeがインストールされていることを前提にすすめていきます。
1. ffmpegとmotionのライブラリをインストールします。
sudo apt-get install ffmpeg libmariadb3 libpq5 libmicrohttpd12 -y
2. motionをインストールします。
cd
mkdir motion
cd motion
wget https://github.com/Motion-Project/motion/releases/download/release-4.3.2/pi_buster_motion_4.3.2-1_armhf.deb
sudo dpkg -i pi_buster_motion_4.3.2-1_armhf.deb
3. motionEyeでmotionサービスをコントロールするため、motionサービスをオフにします。
sudo systemctl stop motion
sudo systemctl disable motion
4. motionEyeに必要なライブラリをインストールします。
sudo apt-get install python2 python-dev-is-python2 -y
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
python2 get-pip.py
sudo apt-get install libssl-dev libcurl4-openssl-dev libjpeg-dev zlib1g-dev -y
5. motionEyeをインストールします。
sudo pip2 install motioneye
(オプション)もし、インストールに失敗した場合は以下のリポジトリを使ってインストールしてください。
sudo apt-get install python-pil -y
sudo pip2 install motioneye
6. 設定ファイルのコピー
mkdir -p /etc/motioneye
sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
7. 画像や動画を保存するディレクトリの準備
mkdir -p /var/lib/motioneye
8. motionEyeをサービスに登録して自動起動させる
sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
sudo systemctl daemon-reload
sudo systemctl enable motioneye
sudo systemctl start motioneye
motionEyeにアクセスする
ブラウザからhttp://<ipアドレス>:8765
にアクセスします。
すると、以下のログイン画面が表示されるので、Usernameをadmin
Passwordを空白でログインします。
次に、カメラ追加の設定ダイアログが表示されるので、そのままOKをクリックしてください。
Camera Deviceの修正
私の場合はデバイスが/dev/video10
に設定されてしまい、カメラの映像が表示されなかったため、設定ファイルの値を直接書き換えました。
sudo vi /etc/motioneye/camera-1.conf
viでvideodevice /dev/video10
の箇所をvideodevice /dev/video0
に変更します。
(viの画面で/videodevice
と検索するとすぐに見つかります)
変更したら、sudo systemctl restart motioneye.service
を実行してmotionEyeを再起動します。
再度ログインしたら、以下のようにデバイスが指定されて映像が表示されました。
カメラの設定
以下の設定を変更しました。
[Video Device]
・Automatic Brightness:ON
・Video Resolution:800×600
・Frame Rate:10
動体検知で静止画を撮影する
ペットや人が映り込んだときなど、映像内のフレーム変化の度合いに応じて、静止画を撮影できます。
Motion DetectionとStill Imagesをオンにします。Motion DetectionのFrame Change Threshold
を調整して、撮影するタイミングを適切にしてください。画像ではデフォルトの値ですが、15%程度が私の環境では適切でした。
また、Still ImagesのPreserve Pictures
から撮影画像をいつまで保持するかを設定できます。その期間を過ぎたら自動で削除されるため、ストレージを圧迫せずにすみます。
動体検知で動画を撮影する
静止画と同様に、動体検知で動画を撮影できます。静止画では画像が多く生成されてしまうため、動画のほうがおすすめです。
メディアの保存
動体検知で保存した静止画や動画を保存できます。
ローカルだけではなく、Google Driveにも保存できます。便利か。
ストリーミング
Video Streamingからストリーミングアドレスを取得できます。
http://<ipアドレス>:8081
から映像のみを表示できます。
ログイン設定
デフォルトだとadminでログインできてしまうため、General Settingsから任意のユーザー名とパスワードを設定することをおすすめします。
motionEyeのアップデート
以下のコマンドでアップデートできます。
sudo pip install motioneye --upgrade
sudo systemctl restart motioneye
おわりに
今回をもってペットカメラ編は終了です。
今回作成したペットカメラは姉の家で飼っている猫ちゃん用に設置する予定なので、実際に撮影できた画像を後日追加したいと思います。
正直、市販のペットカメラを買ったほうが安価で簡単ですが、ラズパイゼロにカメラモジュールをつけて、fpsの調整や動体検知の閾値をグリグリ弄るのも風情がありますね。
さらに、動体検知したらWebhookで通知したり、メールを送ることもできるので、非常に多機能で便利です。今回の記事が参考になれば幸いです。
Be First to Comment