labs.beatcraft.com
bc9/Software/OpenEmbedded

OpenCV for bc9

使用する version に関して

OpenCV2.0beta(OpenCV 1.2)は cmake が primary build system になりました。
(autotools 用の configure.in が用意されていません。)
cmake は version 2.6 以降でないと cross compile に対応していませんが、
bc9-oe-sdk の cmake は version 2.4 で cross compile に対応していませんので
cross compile を行いたい場合は自分で version 2.6 を source からビルドしてインストールしなければなりません。
また、OpenCV 1.2 はまだ Windows 版しか動作確認ができていません。

以上の理由により、OpenCV1.0 release(OpenCV 1.1pre1)を使用します。

環境変数設定

bc9 版を build するためには、bc9 用 kernel を build した時と同様 cross compile のために以下のような環境変数を設定します。

export PATH=/home/beat/gumstix/gumstix-oe/tmp/cross/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-angstrom-linux-gnueabi-

bc9-oe-sdk/bc9-android-sdk の /home/beat/kernel_work/envsetup.sh を source すれば上記の設定が行えます。

configure

以下のような config option で configure を実行します。

 ./configure --host=arm-angstrom-linux-gnueabi --build=i686-linux \
--prefix=/home/beat/temp/usr/local \ 
CC=/home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc \
CXX=/home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-g++ \
CPPFLAGS=-I/home/beat/gumstix/gumstix-oe/tmp/staging/arm-angstrom-linux-gnueabi/include \
LDFLAGS=-L/home/beat/gumstix/gumstix-oe/tmp/staging/arm-angstrom-linux-gnueabi/lib \

make & make install

prefix を /home/beat/temp/usr/local としてありますので、アーカイブ作成のために
make install で仮インストールをすると /home/beat/temp/usr/local 以下に /bin や /lib が作られインストールされます。
必須のものはこれだけで build されますが、bc9 上で動作を確認するため samples も build します。
sample は仮インストール先で build しますので、まず source のある場所へ移動します。

$ cd /home/beat/temp/usr/local/share/opencv/samples/c

すべての samples を一括 build するための build_all.sh がありますので、実行権を与えます。

$ chmod +x build_all.sh

この script の中の gcc をすべて /home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc に書き換えます。
次に以下の環境変数を設定し、pkg-config で include PATH と library PATH が見つけられるようにします。

$ export PKG_CONFIG_PATH=/home/beat/temp/usr/local/lib/pkgconfig/

ここまでの設定を終えたら build_all.sh を実行します。

$ ./build_all.sh

これで samples が build されます。
(ただし opencv 自体が gtk2.0=no で build されていますので、GUI を必要とする sample は bc9 上では動作しません。)
これを bc9 では /usr/local に install しますので、以下のようにインストール用アーカイブを作成します。

$ cd /home/beat/temp/
$ tar cvfz opencv_for_bc9.tgz usr

できあがったインストール用アーカイブ使って bc9 実機にインストールする場合は以下の手順を実行します。
アーカイブを bc9 にコピー

$ scp opencv_for_bc9.tgz root@{bc9_IPADDR}:~/

bc9 に login 後アーカイブを展開します。

root@bc9:~$ tar -C / -xzvf opencv_for_bc9.tgz

展開終了後、ldconfig を実行します。

root@bc9:~$ ldconfig

次に libstdc++ をインストールします。
bc9-oe-sdk の以下のディレクトリに

が build されていますので、それを bc9 にコピーします。

$ cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/iwmmxt/
$ scp libstdc++6_4.1.2-r10_iwmmxt.ipk root@{bc9_IPADDR}~/

bc9 に login し、インストールします。

root@bc9:~$ ipkg install libstdc++6_4.1.2-r10_iwmmxt.ipk

正常にインストールが終了したら samples のうち gui を必要としないものが実行できるようになります。
例として letter_recog を実行すると以下のようになります。

root@bc9:~$ cd /usr/local/share/opencv/samples/c/
root@bc9:/usr/local/share/opencv/samples/c$ ./letter_recog
The database ./letter-recognition.data is loaded.
Training the classifier ...
Recognition rate: train = 4.0%, test = 3.9%
Number of trees: 100
var#	importance (in %):
0 	0.0 
1 	0.0 
2 	0.0 
3 	0.0 
4 	0.0 
5 	0.0 
6 	127.3
7 	5.7 
8 	0.0 
9 	0.0 
10	19.3
11	-5.7
12	-23.9
13	76.1
14	-92.0
15	-6.8
Proximities between some samples corresponding to the letter 'T':
proximity(0,103) = 70.0%
proximity(0,106) = 56.0%
proximity(106,103) = 72.0%

URL

ビルド済みのインストール用アーカイブは以下の url からダウンロードできます。
http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fbc9-dev%2F43625%2Fopencv_for_bc9_20090918.tgz


添付ファイル: filelibstdc++6_4.1.2-r10_iwmmxt.ipk 971件 [詳細]

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2009-09-17 (木) 21:55:25 (2988d)