モーションを使用してビデオ監視システムを作成します

この記事では、ホーム追跡システムのセットアップと使用について説明します。 Webカメラの範囲を超えて任意の領域を作成し、この領域でのアクティビティを検出したときにメッセージを送信し、写真を撮り、ネットワーク経由で画像をブロードキャストできます(Webカメラからビデオにアクセスする権限を固定し、一般的には、静的IPを持っています)、何でも好きなこと-フルコントロールと選択の自由。これは一般的にgnu / linux osなどの特徴です(将来的にはlinuxについて話します)。

それで、GPLライセンスの下で配布されているMotionという素晴らしいユーティリティをあなたの注意を喚起します。 そうでない場合は、おそらくディストリビューションのリポジトリに既に存在します(疑わしいとはいえ)-オフサイトのダウンロードページからdeb、rpm、またはソースコードをダウンロードできます。 パッケージマネージャーのツールを使用しました。



実行することもできますが、最初に自分で設定することをお勧めします。 構成ファイルは/ etc / motionに保存されます(ユーザーのホームディレクトリにコピーすることをお勧めします。-cオプションで構成へのパスを指定できます)。 vim /etc/motion/motion.confで編集します

このファイルは十分に文書化されており、英語に問題がなければ、オプションの意味を理解することは難しくありません。

最初のオプション:
daemon (on/off) -モーションがデーモンモード(バックグラウンド)で開始するかどうか。 起動時に-nオプションを指定すると、プログラムは通常モードで起動します。

次:
videodevice /dev/video0ビデオデバイスを示します。 私はこれ/ dev / video0を持っています。

rotate (0,90,180,270) -指定した角度で​​画像を回転します(カメラが斜めに取り付けられている場合)
width 320
height 240

-画像の幅と高さ、それぞれピクセル

framerate (2-100)秒あたりにキャプチャされたフレームの数。 当然、値が大きいほど、コンピューターリソースの消費量が多くなります。 最適な値を選択してください。
minimum_frame_time 0前のオプションの後minimum_frame_time 0つのフレームをキャプチャする間の最小時間を設定できます。 たとえば、5秒ごとにフレームをキャプチャできます。

netcam_url value -カメラへのアクセスがネットワーク経由の場合に使用します。 値の代わりに、ビデオストリームへのパスを指定します。 デフォルトでは、このオプションは使用されません。
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0

-明るさ、コントラスト、彩度など

次の重要なセクション:
#動体検知設定:
threshold 1500動き検出の感度として説明できます。 値が低いほど、検出器の感度が高くなります。
noise_level 32ノイズレベル。 カメラによって作成されたノイズを無視できます。 カメラに最適な値を設定します。

area_detect (1-9)特定のエリアのみを監視できます。 1-左上隅、2-中央上部、... 5-中央、... 9-右下隅。

mask_file value -修正する必要のないモーションマスクでpgmファイルへのパスを指定します。 木の枝の揺れなどを無視できます。ここでpgmファイルの詳細を読んでくださいnetpbm.sourceforge.net/doc/pgm.html

次に、動きを決定するためのいくつかのオプションと、画像とビデオをエンコードするためのオプションがあります。 説明は省略します。

snapshot_interval N -N秒ごとにスナップショットを作成します。
locate (on/off) -動くオブジェクトの周りにフレームを描きます。

target_dir /usr/local/apache2/htdocs/cam画像が保存されるフォルダー。 この値を設定します〜/ motionshots

snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S

-ファイル名をカスタマイズします。

on_event_start value
on_event_end value
on_picture_save value
on_motion_detected value
on_area_detected value
on_movie_start value
on_movie_end value
on_camera_lost value

-特定のイベントの発生時に特定のアクションを実行します。 たとえば、メッセージを送信するなど、スクリプトを値として指定できます。 または、たとえば、誰かが検出されたときに音楽をオンにします。 すべてはあなたの想像力によって制限され、あなたの目標に依存します。

これで実行できます
motion [-c ///] 。 システムのデーモンのリストに追加することもできます(rc-updateはgettasのデフォルトのモーションを追加します-アーカイブの場合-/etc/rc.confのDAEMONS =()に追加します。

監視エリアでアクティビティが検出されると、プログラムは指定されたディレクトリに画像を保存し、スクリプトを実行します(メッセージを送信するためのスクリプトの記述に関する記事が多数あるため、この記事ではこのトピックを扱いません)。

そして最後に、いくつかのスクリーンショットと使用例を示します。 ご覧のように、非デーモンモードでモーションが検出されると、 [1] File of type 1 saved to: /home/vladimir/motionshots/01-20110727140020-00.jpg形式の行が表示されます。 [1] File of type 1 saved to: /home/vladimir/motionshots/01-20110727140020-00.jpg





UPD:招待してくれてありがとう! トピックは皆のためにLinuxに移動しました

Source: https://habr.com/ru/post/J125216/


All Articles