2011年01月05日

[Android][QCAR]Qualcomm AR SDKをつかってみた

■QCARとは

・Qualcommが公開しているAndroid用の、拡張現実(AR)ライブラリ。
Android上で簡単にARアプリケーションが作れる。

・Markerlessな画像認識を行うことが特徴。
 - 風景や顔など、自然の画像を認識するタイプの技術。
 - ARToolkitのように人工のマーカー画像を使うタイプのARもある。
 - セカイカメラのように画像を使わないタイプのARもある。

■AR extension for Unity 3とは
・ゲームエンジンであるUnity 3に対するAR拡張らしい。
 →これはひとまず置いておく。

■インストール
https://ar.qualcomm.com/qdevnet/sdk

 ここからSDKをダウンロードする。

■サンプルコードの実行
 ImageTargetをビルド・実行してみる。
 1. Nativeソースのビルド

 $ \qcar-sdk-xx-yy-zz/sample/ImageTarget/
 $ ndk-build

[Trouble shooting]
 以下のようなビルドエラーが出たとき:

 cannot find -lQCAR
 collect2: ld returned 1 exit status

 MacやLinuxでビルドすると、以下のようなエラーが出るらしい。
 (cygwin環境に合わせてmkファイルが記述されているため)
  /qcar-sdk-xx-yy-zz/samples/ImageTargets/jni/Android.mk
 の、以下の行を
  QCAR_LOCAL_PATH := $(shell cygpath –m $(LOCAL_PATH)/../../../build/lib/$(TARGET_ARCH_ABI))
 以下のように変更する。
  QCAR_LOCAL_PATH := $(LOCAL_PATH)/../../../build/lib/$(TARGET_ARCH_ABI)


以下のように出力されればOK。

Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/ImageTargets.cpp
Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/SampleUtils.cpp
Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/Texture.cpp
SharedLibrary : libImageTargets.so
Install : libImageTargets.so => /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/libs/armeabi
Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/ImageTargets.cpp
Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/SampleUtils.cpp
Compile++ arm : ImageTargets <= /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/jni/Texture.cpp
SharedLibrary : libImageTargets.so
Install : libImageTargets.so => /Development/Android/qcar-sdk-0-10-0/samples/ImageTargets/libs/armeabi-v7a

libImageTargets.soが/qcar-sdk-xx-yy-zz/samples/ImageTargets/obj/local/armeabi-v7a/以下にできている。


2. Javaソースのビルドと.soのインストール
先ほどビルドしたlibImageTargets.soを端末に転送する。
2.1 ImageTargets右クリック->Properties->Buildersを選択する。
Import QCAR(bash)を選択し、 Import QCAR(win)を選択解除する。(mac, linuxのみ)
2.2 端末をPCに接続した状態で、EclipseのProject->Clean...からImageTargetをCleanする。
コンソールに以下が出力されればOK。

===============================================================
SUCCESS: libQCAR.so copied into lib directory.
===============================================================

3. 実行
アプリケーションを実行し、ImageTargets/libs/mediaの下にある画像ファイルを携帯端末カメラ越しに
撮影する。
  teapotがひょうじされた!!
  photo.JPG

かなりの領域を隠しても、まだ認識している。(文庫本で半分隠している)
  photo (1).JPG

近づけたり離したりしても、まだ認識している。
   photo.JPG
   どうやら、一度認識したあとはかなりの領域が隠れていてもトラックし続けるらしい。
ラベル:android QCAR つくる
posted by コパン at 22:54| Comment(0) | android | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。