⑧[Android][Kotlin][Vuforia][AR]Vuforia(Image Target)を独自マーカーで動かしてみた

に公開

第1回 VuforiaでARの初めの一歩
第2回 Vuforiaのサンプルコード(Image Targetのみ)を動かしてみた。
第3回 動画再生を板ポリ上で実行するサンプルコードを作ってみた。
第4回 Vuforiaで動画再生ARを実装してみた。
第5回 Vuforia11.4.4の公式サンプルコードを動かしてみた。
お薦めしません: 第6回 VuforiaのVuMarkを動かしてみた。
お薦めしません: 第7回 Vuforiaで独自VuMarkを作ってみた。←挑戦中 ←無理ゲーすぎた
第8回 Vuforia(Image Target)を独自マーカーで動かしてみた。
第9回 Vuforia(Image Target)を独自マーカーの複数検出させてみた。

VuMarkに惨敗な今日この頃、皆様に於かれましてはお元気で在らせられますでしょうか?
さてと気を取り直して、VuMark が無理ゲーだったのは仕方ないとして、
Image TargetのImage Makerの方で FrameMarker と同じ仕様に出来ないかの方向で調査を進めたいと思います。

出来た!!

ソースコードはここに↓
https://github.com/aaaa1597/AndKot-OriginalImageMarkerVideoPlayBack

Abstruct

  • 独自マーカーでImage Targetを動作させてみた。
  • Vuforiaのバージョン 11.4.4。

背景

Image TargetのImage Maker を使って複数(目標100個)のARマーカーを動作再生したいと思います。
本来この用途だと、VuMarkの方が適合すると思うのだけど、マーカー作成が無理だったので。(第7回読んでください)
※複数個の認識は次のテーマで。

ざっくり手順

  1. 画像を準備
  2. Vuforiaサイトで登録 → データセット取得
  3. プロジェクトに組み込み → ビルド

準備

  • android端末
  • 開発用PC(Android Studioのインストールは済ませておく。)
  • android端末をつないで、デバッグができる様にしておく。
  • SDKと公式サンプルコードは今回一緒にgithubにコミットしたんで不要。
  • Vuforiaのアカウント作成 前回の説明の準備1をやっておく。
  • Vuforiaのライセンスキー取得 前回の説明の準備2をやって取得しておく。

手順1. 画像を準備

今回下記画像を準備した。
サンプルマーカーの中身を白四角で埋めたもの。これで認識精度いいマーカーになるはず。

※中身はいつでも差し替えれる様に枠だけ。

手順2. Vuforiaサイトで登録 → データセット取得

  1. Vuforia developer portalにログイン

  2. Target Manager → Generate Database 押下

    Database Name: 適当に
    Type: Device
    → Generate 押下

  3. 生成したDatabase(bbb)を選択

  4. Add Target 押下 → 下記入力 → Add 押下

    File: 手順1で準備した画像ファイル(jpgがいいです)
    width: 10cmとするので0.1
    Name: 001_stones ※これも適当に

  5. マーカー確認
    このままデータセットを取得してもいいけど、マーカ精度がどんなもんかを確認しとく。
    ※Refreshボタンで表示更新

    星5つ 精度完璧!!

    特徴点ビッシリ!!

  6. データセット取得
    元の画面に戻って、データセットを取得する。
    bbb.zipがダウンロードされる。

手順3. プロジェクトに組み込み → ビルド

  1. 今回使用するコードをguthubからDL。

https://github.com/aaaa1597/AndKot-VuforiaVideoPlaybackSample

  1. Android Studioでプロジェクトを開く。
    cloneしたAndKot-VuforiaVideoPlaybackを開く。

  2. 認証情報を設定した後、ビルドする。
    Vuforiaのライセンス画面を開いて license Key をコピー。

            ↓
Android Studioで、"AppController.cpp"を開き、licenseKeyに、準備2でコピーしたライセンスを貼り付けます。
そして、ビルド。

※もし、この手順を飛ばしたら、アプリ起動時に下記エラーが発生します。

  1. 手順2でDLしたvuforiaのデータセット(.xml/.dat)をプロジェクトに組み込む

ゲットした bbb.zip は解凍するとbbb.xml / bbb.datの2ファイルが出来るので、その2つをAndroid プロジェクトに追加する。

app/
└── src/
    └── main/
        └── assets/
            └── original/
                ├── bbb.dat
                └── bbb.xml
  1. kotlin/c++でデータセット読込み処理を書く
AppController.cpp(743-748)
        auto imageTargetConfig = vuImageTargetConfigDefault();
-       imageTargetConfig.databasePath = "ImageTargets/StonesAndChips.xml";
-       imageTargetConfig.targetName = "stones";
+       imageTargetConfig.databasePath = "orignal/bbb.xml";
+       imageTargetConfig.targetName = "001_stones";
        imageTargetConfig.activate = VU_TRUE;

で、実行。

出来た!!
今回特に迷うことないかな。

                              「誰かの役に立つと思って」

Discussion