.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

Webカメラを使ったライブ映像配信、監視、定点観測システム構築

本稿では Linux とMotionというプログラムを利用した映像配信システム構築について紹介しています。主に映像監視、定点観測等の用途を想定しています。

Motionの用途について

Motion は Webカメラの映像信号を監視、画像の変化を検知し、様々なアクションの実現を可能にする Linux環境で動作するプログラムです。オープンソースで開発が進められています。

Ubuntu など Debian系のOSでは必要なパッケージは揃っているので導入も容易です。カメラが撮影している映像に動きを検出した場合、その前の時点から映像をデータとして残すこと以外にも、

  • 変化のあったピクセル数の取得
  • 変化のあった画面の位置情報の取得
  • 外部コマンドの実行
  • MySQL、PostgreSQLデータベースに出力

などが可能で、単に動きを検知して映像を記録するだけでなく、二次利用を想定した映像分析のプラットフォームを視野に入れていることがわかります。

また、動体検知だけでなく、観察、教育用途でニーズが高いと思われる、一定時間を置いて静止画を連続で記録し続ける定点観測のためのインターバル撮影の機能も備えています。

これにより、例えば、植物の成長過程や、四季による季節の移り変わり、積乱雲の発生過程、といった観察、研究、映像用途の活用が可能です。

また、最後に出力されたJPEG画像のシンボリックを出力することができるので、HPに公開して java 等で一定間隔で読み込むようにすれば、ネットワーク大域に付加をかけないライブ画像の配信に利用できます。

他にも、映像に変化がない場合にアクションを起すパラメータは見たところなさそうですが、motion が定期的に出力するディレクトリを監視すれば、一定時間変化がなければ、メールを送って知らせるなどといった安否確認の用途にも簡単に応用できそうです。

ハードウェア要件

解像度やフレームレート、接続するカメラの台数、動体検知の動作頻度(観察対象)等々、条件や設定の絞り込みによって、求められる環境は、ハードウェア、通信帯域等、性能にはかなりの幅があるので一概には言えませんが、目安として本稿で確認した環境は以下のとおりです。

環境

  • OS : CentOS 6.4
  • Camera : Logicool HD Webcam C270 × 2(USB Controller ×1)
  • CPU : Atom 2700D

Motionの主な設定(2台のカメラ共通)

  • 解像度 : 640 × 352
  • MJPEG(簡易Live): 動体検知動作時 12fps 未動作時 1fps

USBカメラはマザーボード直付けで一つのUSBコントローラの下に2台のカメラがぶら下がっている環境です。複数の USB Controller を持つ環境ではカメラの接続先を分けたほうが大域を稼げます。

実際に Motion をデーモンモードで常時起動させた状態での大雑把な目安ですが、待機時と負荷時のロードアベレージは 30~60 程度でした。

LOGICOOL ウェブカム HD画質 120万画素 C270

2台のカメラの解像度をカメラ性能の上限まで上げたり、フレームレートを30に上げるのはUSB大域以前にこのCPUでは映像処理の点から無謀と思われるので試してません。

ただ、数分置きの定点観測や、接続するUSBカメラが1台であれば、更にロースペックの省電力CPUでも十分使用に耐える監視カメラシステムを構築できると思われます。

USBカメラについて

基本的に kernel-2.6.26 以上であれば "UVC規格" のUSBカメラを認識します。使用したUSB WebカメラはLogicool HD Webcam C270ですが CentOS6.4 で認識しています。

一部の機種ではチルト、パン、といった機能にも対応しているようですが、未検証です。

Raspberry Pi Type B 512MB

他にもRaspberry PiなどのARMアーキテクチャを利用した小型PCで組めば、低消費かつ、コンセントさえ引ければ設置場所を選ばない高性能な監視カメラシステムを構築することも可能で、ネットでも様々な情報が公開されています。

Motionの用途について

カメラが撮影している映像に動きを検出した場合、その前の時点から映像をデータとして残すこと以外にも、

  • 変化のあったピクセル数の取得
  • 変化のあった画面の位置情報の取得
  • 外部コマンドの実行
  • MySQL、PostgreSQLデータベースに出力

などが可能で、単に動きを検知して映像を記録するだけでなく、二次利用を想定した映像分析のプラットフォームを視野に入れていることがわかります。

また、動体検知だけでなく、観察、教育用途でニーズが高いと思われる、一定時間を置いて静止画を連続で記録し続ける定点観測のためのインターバル撮影の機能も備えています。

これにより、例えば、植物の成長過程や、四季による季節の移り変わり、積乱雲の発生過程、といった観察、研究、映像用途の活用が可能です。

また、最後に出力されたJPEG画像のシンボリックを出力することができるので、HPに公開して java 等で一定間隔で読み込むようにすれば、ネットワーク大域に付加をかけないライブ画像の配信に利用できます。

他にも、映像に変化がない場合にアクションを起すパラメータは見たところなさそうですが、motion が定期的に出力するディレクトリを監視すれば、一定時間変化がなければ、メールを送って知らせるなどといった安否確認の用途にも簡単に応用できそうです。

映像ライブ配信、監視カメラ

  1. Motion 用途/ ハード要件
  2. インストールと基本設定
    1. 指定したパラメータの内容
  3. 動作確認 / 起動設定

ウェブカメラ
本稿で使用しているウェブカメラ。CentOS6.5でもカーネルのバージョンによって認識しなくなる場合がありますが、Linux は kernelレベルで対応しています。

USBウェブカメラ
本稿使用のカメラ WebCam C270


Raspberry Pi
低消費電力 手のひらPC



DDNS対応ルータ
DYN 対応状況はメーカーで確認


bottom_mark
ページ最上部
ページ最上部 前のページ