OpenCV2.3.1を使ってああだこうだと言ってたのが1年前の今頃。
例えば、
こことか、
こことか、
こことか....。
その間SATCHなどというヤクザなものに引っかかっているうちにバージョンが2.3.1->2.4.6にアップしてました(2013/07/09現在)。
NyMMDと連動させるにあたり、2.4系のOpenCVを使ってみます。
OpenCV android-sdkの2.4.2~2.4.6まで試してみました。
まず、2.4.2と2.4.3ですが...。
src\org\opencv\engine\OpenCVEngineInterface.aidlに問題があるみたいで、genに展開されたjavaファイルでエラーが発生してしまい、検証できませんでした。
SDKのToolのaidl.exeを使ってみましたが、結果は同じでした。
2.4.4の場合
注意点は、これ以降のバージョンでは、「android-ndk」を使うということです。
これでC++のプロジェクトをビルドする...ってことかな。
また、端末では「OpenCV Manager」というものも使います。
(何をmanageしているかというと....どうも端末情報とかOpenCVのライブラリをチェックしているみたい)
事前にGooglePlayで検索してインストールしておいてください。
android-ndkをインストール(というか解凍したものを移動)したらパスを控えておいてください。
後で、Properties->C/C++ Buildのndk-build.cmdのパス設定に使います。
OpenCV-2.4.4-android-sdkを展開したら、Eclipseを起動してOpenCVフォルダーの中のsdkフォルダーをインポートの対象にします。
インポートしたらPropertiesのandoidでtargetを4.03以上で、Is Libraryにチェックを入れてOKをクリック。
これでOpenCV-2.4.4がライブラリとして使えます。
で、sampleから何かのプロジェクトを読み込んだら2け所修正。
Propertiesのandoidで「OpenCV Library-2.4.4」をAdd。
次に、C/C++ Buildで「Build Command」を先に控えたandroid-ndkのパスでndk-build.cmdを指定してください。
2.4.5と2.4.6の場合
インストールの仕方は同じなので、2.4.6で説明します。
ダウンロードはここから。
OpenCV-2.4.6-android-sdk-r2.zip
「android-ndk」と「OpenCV Manager」については上と同じ。
android-sdkを展開してEclipseでインポート。
こんな感じ。
プロジェクトのPropertiesを開きます。
ライブラリーとして使います。
サンプルをインポートしたら、まず「OpenCV Library-2.4.6」をAddしましょう。
サンプルのプロジェクトのPropertiesを開きます。
バッテンになっているのをRemove。
「Add」をクリックして「OpenCV Library-2.4.6」を選んでOK。
ここが、2.4.4と違うところですが、Android.mkを修正しておきます。
OpenCV.mkがどこにあるのかわからん...というメッセージがコンソールに吐き出される場合ですが....。
Project Explorerで、jni/Android.mkを開きます。
include ../../sdk/native/jni/OpenCV.mkとなっているパスを、
展開したOpenCV-2.4.6-android-sdk内のOpenCV.mkのフルパスに変更しておきます。
次に、C/C++ Buildで「Build Command」を先に控えたandroid-ndkのパスでndk-build.cmdを指定。
これでエラーが無くなるはず。
開発環境
Windows XP(sp3)
Eclipse SDK Version 3.7.2
Target:Android 2.3.3 or later
動作確認実機:Xperia acro(docomo) Android 2.3.4、datb01 (docomo) Android 4.1.2
サンプルのFace Detectionアプリです。
こんな感じで顔検出。
実機では、ほぼすべての顔が検出されていました。
「ほぼ」というのは、横顔に近い松波の場合、目と鼻の周囲のみ検出されているみたいでした。
また武井の23が検出されるという不思議な現象もありました。
メニュです。
顔がカメラ画面に対して何%くらいを占めていれば検出するかの設定です。
Javaメニュの意味はまだ不明。
このアプリは公開予定のないサンプルです。
インストール・実行は自己責任でお願いします。
それと、OpenCVManagerを先にインストールしておいてくださいね。
インストール
Target:Android 2.3.3 or later
動作確認実機:Xperia acro(docomo) Android 2.3.4
アプリをQRコードからインストールする方法はコチラを参照
タブレットの場合
QRコードでダウンロードすると、Downloadフォルダー内でzipファイルになってインストールできない状態の場合があります。
その場合は、拡張子のzipをapkに変更してファイル名をタップすればインストール用のダイアログが出ますので、そこからインストールしてください。
他のOpenCV関連ページ
OpenCV覚書
矩形領域の座標を取得するページ
OpenCV 2.3.1でカスケードを作って、Androidで使ってみる
アンドロイドでOpenCV(お顔の検出)
アンドロイドでOpenCV(色検出)
アンドロイドでOpenCV(特徴点検出)
Android OpenCV 2.3.1で画像認識
OpenCV + NyMMDで初音ミクさんにご挨拶してもらいます
Android OpenCV 2.4.6 の顔検出アプリを一から作ってみる