AndroidでOpenCVを試す

AndroidでAR(Argumented Reality)を考えた時、

  • 画像認識 : OpenCV
  • 画像描画 : OpenGL ES

というのが思い浮かぶ。


OpenGL ESについては、AndroidでもサポートしておりJavaで実装出来るが、OpenCVは、Cで記述されており、Android NDKを使用してということになり手をつけることさえ避けていた。


それでも、いざ試してみようと思いサイトにアクセスしたところ、OpenCV 2.3からAndroid版がリリースされていたので、早速試してみた。
Eclipse, Android SDKの環境構築は既にあることが前提とする。

1. OpenCVのダウンロード

以下のURLよりダウンロードする。
http://sourceforge.net/projects/opencvlibrary/files/opencv-android/
今回は2.3.1をダウンロードする。約60MBある。

2. Eclipseにインポートする

ダウンロードしたファイルを展開すると以下のような構成になっている。

  • OpenCV-2.3.1
  • samples

OpenCV-2.3.1はEclipseAndroidプロジェクトのフォルダになっている。
Eclipseで、Importメニューからプロジェクトをインポートする。
プロジェクトのプロパティから、「Android」を表示すると「IsLibary」にチェックがついているのがわかる。
f:id:mabushii_sign:20121012152931j:plain

OpenCVを使用した開発をする場合は、このプロジェクトを参照する形式で作ればいいという訳だ。

3. サンプルプロジェクトをインポートする

samplesフォルダには、以下のフォルダがある。いずれもEclipseAndroidプロジェクトになっている。

  • 15-puzzle
  • face-detection
  • image-manipulations
  • tutorial-0-androidcamera
  • tutorial-1-addopencv
  • tutorial-2-opencvcamera
  • tutorial-3-native
  • tutorial-4-mixed

まだ、各サンプルを試していない。tutorialはその名のとおりチュートリアルなのだろう。


まずは、face-detectionをインポートして試してみた。
同様にプロジェクトのプロパティの[Android]を表示してみる。

f:id:mabushii_sign:20121012152955j:plain

Libraryのリストに、展開したフォルダ構成と同じで「../../OpenCV-2.3.1」になっていおり、×になっていたため、選択し直した。

4. サンプルを実行する

サンプルを実行してみる。
実行方法は、普通のAndroidアプリと同じように出来る。

自分のIS03にインストールしてみたところ、カメラ画面になり左上にFPSが表示されている。
一人だったので、鏡越しに自分の顔を映したらしっかり顔の部分に枠が描画された。



以上、簡単であるが、AndroidでOpenCVを試すまでの記録である。
もう少し、他のサンプルを試したり、この本を今日買ったので読んで勉強しようと思う。

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識