Raspberry Piにwebカメラを接続してOpenCVで表示する2015/04/08 00:07

Raspberry Piにwebカメラを接続してリアルタイムで画面表示させたい。それをスマホから見たい。

使用するカメラ:Logitech QuickCam Fusion

技術要素は3点
(1)Webカメラの画像をデスクトップに表示する
(2)表示した画像をリモートで見れるようにする
(3)スマホ側からRaspberryPiへリモート接続できるようにする



(1)Webカメラの画像をデスクトップに表示する
Raspberry Piにwebカメラを接続して、デスクトップに表示させるところまではOpenCVとサンプルプログラムを使用する。LinuxマシンへのOpenCVの導入と、Webカメラの画像を取得してデスクトップ上のウィンドウに表示するサンプルプログラムが以下に紹介されており、その通りの内容を順番に実行するだけでできる。

Installation of OpenCV for Ubuntu and Raspbian
Setting up OpenCV C++ for Ubuntu and Raspbian

作成するCPPソースファイル上で、画面表示サイズをパラメータ指定する。使用したカメラのスペック上は1.3MPIXELの撮影が可能だが、320×240に抑える。

作成したCPPファイルをビルドする。
$ g++ camera.cpp -o camera `pkg-config opencv --cflags --libs`

プログラムの実行
$ sudo ./camera

プログラムの終了
スペースを押すとキャプチャされる.
実行フォルダ内に「frame.png」という形式で保存される。

実行画面はこんな感じ。起動中は画面リフレッシュを繰り返すせいか、CPU使用率が振り切った状態のままになる。かなり高負荷だ。

(2)表示した画像をリモートで見れるようにする
これだけではRaspberry Piをカメラにしただけだが、ネットワーク越しにスマホからRaspberry Piのデスクトップ画面を見る事が出来るようにすれば、カメラ画像も見る事ができ、監視ツールとして使える。Raspberry Piに対してXRDPとよばれるリモートデスクトップ接続を可能にするサーバソフトをインストールすれば可能になる。基本的に
$ sudo apt-get install xrdp
でよい。詳しい説明はググると山ほど事例が出てくるので割愛。

※X11RDPと呼ばれるNewVersionが存在するが、残念ながらRaspberry Piでは使えませんよと書いてある。
http://scarygliders.net/2013/07/25/x11rdp-o-matic-version-3-now-released/

(3)スマホ側からRaspberryPiへリモート接続できるようにする
接続するクライアント側には、RDPクライアントをインストールし、Raspberry Piへの接続設定をする事で接続可能となる。iOS向けでフリーのRDPクライアントをいくつか試したが、以下が比較的ちゃんと動いた。設定の問題だけかもしれないが、Microsoft製のRDPクライアントではキーボードが正しく反応しなかった。

iRdesktop

さらにRaspberry PiにPPTPサーバを入れておけば、(セキュリティ上の懸念はあるが)外部からも接続できる。夢が広がる。もっと賢いやり方もあると思うが。。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://isa.asablo.jp/blog/2015/04/08/7606800/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。