今回はラズベリーパイ(Raspberry Pi)とWebカメラを組み合わせて、監視カメラとして運用する方法について解説します。
プログラミング作業などは不要で簡単に構築できますので、ぜひ挑戦してみてください。
Raspberry Pi(ラズベリーパイ)とは
Raspberry Pi 5は、Raspberry Pi財団が開発した最新のシングルボードコンピュータで、従来モデルよりも大幅な性能向上を実現しています。

搭載される64ビットクアッドコアプロセッサは、クロック速度が最大2.4GHzに達し、前世代よりも処理速度が格段に向上しました。また、4GBまたは8GBのRAMを選択できるため、教育用途からリソースを必要とするプロジェクトまで幅広く対応可能です。
グラフィックス性能も強化され、4K解像度でのデュアルディスプレイ出力をサポートしています。さらに、新たにPCIeインターフェイスが追加され、外部ストレージや高速デバイスとの接続が容易になりました。Wi-Fi 6やBluetooth 5.2の導入により、無線通信も高速かつ安定。
教育、IoT、AI開発、メディア再生など、多様な用途に対応するRaspberry Pi 5は、初心者から上級者まで幅広いユーザーにとって魅力的な選択肢となっています。
Raspberry Piでできることについては以下の記事で解説していますので、あわせてご覧ください。



使用するカメラ ロジクール C270n
今回はUSB接続できるWebカメラを使用します。
当ブログでも以前から使用しているロジクールのC270nを使用します。
ラズベリーパイではC270nはUSBコネクタに接続するだけで、ドライバのインストールなどなくすぐに認識してくれますのでおすすめです。
以下のようにラズベリーパイにWebカメラを接続したものを、モニタしたい場所に設置しておけば別のPCやスマホから映像を確認することができます。
留守中の自宅の監視やペットの様子をモニタするのに役立ちます。


Motionとは

今回ラズベリーパイで監視カメラシステムを構築するにあたり、Motionというアプリケーションを使用します。
Motionはカメラ映像に対して動体検知が可能で、それをトリガーにして動画撮影をすることができます。Motionを使用することで、動く物体が写り込んだ時だけ録画をしたり、ブラウザからネットワーク経由でカメラの映像を確認したりすることができます。

Motionをセットアップする
ここからは実際にラズベリーパイを監視カメラとして使用する方法について解説していきます。
インストール
motionをインストールするために、以下のコマンドを実行してください。
sudo apt install motion
以上でインストールは完了です。
初期設定
続いてmotionの初期設定をしていきます。
以下のコマンドを実行して設定ファイルをエディタで開きます。(今回、例ではnanoエディタを使用します)
設定値はかなりたくさんありますが、主要な設定項目のみを解説します。
sudo nano /etc/motion/motion.conf
daemon
# Start in daemon (background) mode and release terminal.
daemon on
バックグラウンドでサービスとして実行したい場合はONにしてください。
framerate
# Maximum number of frames to be captured per second.
framerate 10
カメラの映像をキャプチャする際のフレームレートを指定します。設定範囲は2~100となります。
使用するカメラの性能と合わせて設定すると良いです。今回はC270nのスペックを考慮し、10fpsに設定しました。
threshold
# Threshold for number of changed pixels that triggers motion.
threshold 1500
動体を検知する際の閾値を設定します。フレーム間で設定値のpixelが変化した場合に動体検知するします。デフォルト値は1500となります。
target_dir
# Target directory for pictures, snapshots and movies
target_dir /var/lib/motion
画像と動画を保存するディレクトリを指定します。指定しない場合はカレントディレクトリに保存されます。
SDカードは頻繁にデータの読み書きをするのは適していないため、外部にUSBメモリやSSDを接続して保存することをお勧めします。
webcontrol_localhost
# Restrict webcontrol connections to the localhost.
webcontrol_localhost off
Motion設定画面へのアクセスをlocalhostのみに制限する場合はONにします。ラズベリーパイ以外のPCから確認、変更したいため、今回はOFFに設定しました。
stream_localhost
# Restrict stream connections to the localhost.
stream_localhost off
ライブストリーム(カメラの映像)へのアクセスをローカルホストからのみに制限する場合はON設定します。ラズベリーパイ以外のPCからカメラの映像を見たいため、今回はOFFに設定しました。

動作確認
以下のコマンドを実行してMotionを起動します。
sudo service motion start
motionはWebサーバーとして動作しますので、起動後は他のPCのブラウザからカメラの映像を確認することができるようになります。
ブラウザを起動して、アドレスバーにラズベリーパイのアドレスの8081ポートを入力してアクセスしてみてください。
(ポートは先ほど設定したmotion.conf内で定義されています)
(Raspberry PiのIPアドレス):8081
以下のようにカメラ映像を見ることができました。
アクセスできない場合は一度ラズベリーパイを再起動してください。


まとめ
今回はラズベリーパイを監視カメラとして動作させることができるMotionについて解説しました。設定項目はたくさんありますので、必要に応じて他の項目も試してみてください。
自分でPython等で監視カメラ機能を実装したい方は、Raspberry PiにOpenCVで動体検知機能を実装する方法を以下の記事で解説していますので、あわせてご覧ください。

また、ラズベリーパイの画像認識についてさらに深く学びたい方にはUdemyの以下の講座がおすすめです。
【初心者向けAI・IoT講座】 ラズベリーパイ(Raspberry Pi)とOpenCVで作る簡単画像認識システムまた、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。
コメント