BeagleBoard-xM + Ubuntu10.10(Maverick) にOpenCVを導入

BeagleBoardにOpenCVを導入してみました。

まずは関係するライブラリ群とOpenCVのパッケージをインストールします。

OpenCVのバージョンは2.1がインストールされたと思います。

しかし、↓のUSBカメラの画像を表示するサンプルプログラムをコンパイルして実行したところ、画像が崩れてしまっていました。

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

以前遭遇した、luvcviewの表示が崩れてしまい、「-f yuv」を付けると改善した現象と同じ問題のようです。

おそらく、USBカメラ(LOGICOOL C905m)のMJPEGとOSのJPEGライブラリの相性(?)の問題ではないかと思います。

↓など、いくつかの情報によると、OpenCVで画像形式の決定順序がMJPGがYUYVより優先になっているので、優先順位を変更して強制的にYUYVを使用するようにしてあげると改善されるようです。

http://www.mori-soft.com/index.php?option=com_content&view=article&id=88:opencv-&catid=1:opencv&Itemid=6

というわけで、OpenCVのパッケージはいったんアンインストールして、ソースからビルドしてインストールしなおします。

OpenCVのパッケージをアンインストールします。

OpenCVのビルドに必要になるcmakeをインストールします。

作業時の最新だったOpenCV2.2のソースからビルドしようとしましたが、いろいろとエラーが出てうまくいかなかった(最新のパッチを当てるか、SVNから最新版をとってくれば良いのかもしれません。)ので、2.3RCをインストールしました。(7/4にRCがとれた2.3の正式版がリリースされたようです)

2.3RC(2011/6/21版)のソース(OpenCV-2.3.0rc.tar.bz2)をダウンロード後、以下の手順でコンパイル前のところまで行います。

MJPEGよりもYUYVの優先度を上げるため、ソースを変更します。

OpenCV-2.3.0/modules/highgui/src/cap_v4l.cppのautosetup_capture_mode_v4l2()関数を変更します。

の部分を

#ifdef HAVE_JPEG

の前へ移動します。

詳しくは、↓を参照してください。

http://www.mori-soft.com/index.php?option=com_content&view=article&id=88:opencv-&catid=1:opencv&Itemid=6

コンパイル開始。

インストールします。

先ほどのカメラのサンプルプログラムをコンパイルし直して、正常に動くことを確認しました。

コンパイル方法:

続いて、OpenCVに付属のサンプルをビルドします。

サンプルの中にある顔認識のサンプル(facedetect)を動かしてみます。

1フレームの処理に2.5秒前後かかりますが、なんとか動きました。


本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。