涙目ブログ

アクセスカウンタ

zoom RSS VMwareでのubuntuでUSBカメラ+OpenCv

<<   作成日時 : 2008/08/21 23:17   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 0

前回たった8回の操作でファイル共有ができたので、
今回はubuntu上でUSBカメラの設定を行いたいと思います。
かなりはまりました(T_T)
かなり試行錯誤したので、余計な操作が含まれているかもしれません。

環境:
VMware(R) Player 2.0.4 build-93057
ゲストOS : Ubuntu-8.04-Japanese
ホストOS : Windows Vista SP1

命題:ubuntuでUSBカメラを設定し、OpenCvを使用してカメラを操作せよ

結論からいうとできます。
そして解があらゆるサイトに公開されています。
ただし、USBカメラとOpenCvの設定を同時に記載したサイトは見つからなかったので
ここに1つにまとめます。

[やることリスト]
OpenCv:
1.libgtk2のインストール
2.OpenCvのコンパイル・インストール
3.ライブラリパスの登録

USBカメラ:
1.linuxカーネルソースのダウンロード
2.ドライバのコンパイル・インストール・ロード
3.USBカメラの接続
4.ユーザをvideoグループへ登録
5.OpenCvを使用したUSBカメラアプリを起動

OpenCv:
OpenCvは簡単です。
特にはまりもせず設定できました。

1.libgtk2のインストール
USBカメラを表示するのにhighgui機能を使用するので、linuxのGUIである
GTKをインストールする必要があります。

 1-1. システム→システム管理→Synaptic パッケージマネージャから
    libgtk2.0とついたパッケージをすべてインストールする。

2.OpenCvのコンパイル・インストール
これは省略します。
configure打って、make→sudo make installの例の流れです。

3.ライブラリパスの登録
アプリの実行時に使用するOpenCvの共有ライブラリへのパスを
設定します。

 3-1. ~/.bashrcを開き以下のコマンドを追記する
    export LD_LIBRARY_PATH=XXXXXXXX
    (XXXXXXXはOpenCvの共有ライブラリへのパス。デフォルトは/usr/local/lib)

これでOpenCvは終了です。
簡単といいながら1.と3.ではまったことは内緒です。

USBカメラ:
はまりました。
ドライバがないとかそういう問題ではなく、
USBの認識率が悪すぎです。

1.linuxカーネルソースのダウンロード
ドライバのコンパイルにカーネルソースがいるのでダウンロードします。

 1-1. システム→システム管理→Synaptic パッケージマネージャから
    該当するバージョンのカーネルのソースとヘッダをダウンロードします。

2.ドライバのコンパイル
当初はquickcamを使用する予定でしたが、なぜかコンパイルが通らない(T_T)
そのため、いろいろ試した結果、quickcamはやめてgspcaにしました。

 2-1. gspcaを解凍し、解凍したディレクトリへ移動
 2-2. 以下のコマンドでコンパイル・インストール・ロード
     sudo ./gspca_build
     このコマンド一発ですべてやってくれるようです。
 2-3. おそらく2-2の作業だけで問題ないと思いますが、試行錯誤中であったので以下を行いました。
    ・gspca.mod.oと gspca.koをカーネルソースディレクトリのkernel/drivers/usbへコピー
    ・/etc/modules.confへalias camera gspcaを追記
    ・sudo /sbin/depmod -aでロード
    この操作が必要かどうか分かりません。
 2-4. ubuntuの起動時に自動でドライバをロードさせるために/etc/modulesへ以下を追記
    gspca

 [参考]
 USBカメラQcamドライバ
 http://www2h.biglobe.ne.jp/~hnakamur/technolab/linux/video/qcam/qcam.htm
 
 GSPCA
 http://mxhaard.free.fr/download.html

3.USBカメラの接続
一番はまりました。
なにせ、USBを挿しても認識しないことが多々ある(T_T)
認識されないことがあるとは思いもしなかったので、認識されない度に
設定を見直し、ネットで調べ、色々と試行錯誤をするはめになりました。
syslogをtailしながらUSBを挿すのがいいです。

 3-1. tail -f /var/log/messagesでsyslogを監視
 3-2. USBを挿入
 3-3. USBが認識されたようなログが出るまで、何度も抜き差し。
    挿入後1分たって反応がなければ抜き差しします。

 [参考]
 USBカメラQcamドライバ
 http://www2h.biglobe.ne.jp/~hnakamur/technolab/linux/video/qcam/qcam.htm

4.ユーザをvideoグループへ登録
 上記の3.まで実行すると/dev/video0が自動で作成されます。
 そのデバイスへアクセスするために、ユーザをvideoグループへ設定します。
 
 4-1. sudo /usr/sbin/vigrでgroupファイルを開く
 4-2. video:x:44:という記述を見つけ、自分のユーザ名を記載

 この作業も必要かどうかわかりません。もしかすると自動追記してくれるかもしれません。
 また、mknodで強引に/dev/video0を作成する方法を多々見かけましたが、この方法では
 /dev/video0をユーザが作成する必要はありません。
 USB認識時にドライバが見つかれば自動生成されます。

 [参考]
 ライブカメラの設定
 http://home.kendomo.net/server/camera_setting.html

5.OpenCvを使用したUSBカメラアプリを起動
ようやくここまで来ました。
ソースは以下のサンプルコードです。

http://opencv.jp/sample/video_io.html

無事に表示されました。
これで取得したフレーム画像に対して処理を追加すれば、
笑い男も夢ではありません。

ちなみに、windows版のOpenCvとくらべると処理が速く、
また、座標系のバグも発生しません。
USBの認識があやふやだったりするlinuxですが、
OpenCvの開発をするなら、少なくとも実行環境は
linuxの方が優秀です。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 2
なるほど(納得、参考になった、ヘー)
ガッツ(がんばれ!)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
VMwareでのubuntuでUSBカメラ+OpenCv 涙目ブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる