🤖

[Unity6]最新版 HoloLens2でマーカー認識をする

2024/12/09に公開

こんにちは、はまちゃんです!
Iwaken Lab. Advent Calendar 2024の9日目の記事です。

本日は、マーカー認識のライブラリのVuforiaを用いて、HoloLens2でマーカー認識する方法について記事にします。
まとめ記事がいくつかありますが、最新の環境(Unity6、MRTK3)で開発できるか試してみたいと思います!

開発環境

ツール バージョン
Windows 10
Unity 6000.0.30f1
Visual Studio 2022
Vuforia 10.28.4
MRTK 3

全体の流れ

VuforiaのWebサイトでマーカーの準備、Unityでマーカーに表示するオブジェクトの準備をそれぞれ行います。準備後、作成したアプリをHoloLens2にデプロイします。

  1. Vuforia側の準備
  2. Unity側の準備
  3. HoloLens2へデプロイする

1.Vuforia側の準備

アカウントの作成とUnity Packegeのダウンロード

Vuforia engine developer portalDownloadsから、Unity用のパッケージをダウンロードします。
その際、ログインを求められるのでアカウントを持っていない人は作ってください。

ライセンスの取得

ログイン後、My Account > [Plan & Licenses] > [Generate Basic License] からライセンスを取得します。
License Nameは自由に名付けてください。

Unity側でVuforiaを使用するためにLicense Keyが必要となります。
後ほど使用するので覚えておいてください。

データベースの作成

[Target Manager] > [Generate Database] からマーカー登録のデータベースを作成します。
Database Nameは自由に名付けてください。Typeは [Device] を選択します。

作成したデータベースをクリックし、[Add Target] からマーカーを追加していきます。
今回は画像をマーカーとして認識するのでTypeは [Image] のままでOKです。
Widthはメートル単位で計算してください。(今回は8cmなので、0.08)
Nameは複数マーカーを登録するすることを考えて、わかりやすいように名付けておくことをお勧めします。

マーカーの星(最大5)が多いほど認識の精度が良くなります。
理想的な Image については、こちらにまとめられていて、特徴点を多くするコントラストがしっかりしている繰り返しパターンが少ないなどの要素があります。
特徴点については、登録したマーカーのページからShow Featuresをクリックすることで確認できます。
星4以上はほしいところなので、画像を編集して特徴点を増やすなど工夫してみてください。

データベースのダウンロード

作成したデータベースをUnityに取り込むために、[Download Database] からダウンロードします。
Select a development platformは、[Unity Editor] を選択してください。

2.Unity側の準備

Projectの作成

Unity6環境下で新しいプロジェクトを作ります。

Build Platformを変更します。
メニューバーで、[File] > [Build Profiles] の順に選択します。
[Universal Windows Platform] を選択します。

項目 選択
Architecture ARM 64-bit
Build Type D3D Project
Target SDK Version Latest installed
Minimum Platform Version 10.0.19041.0
Visual Studio Version Latest installed
Build and Run on Local Machine
Build configuration Relase

MRTK3の導入

MRTK3はMixed Reality Feature Toolを用いて導入します。
Microsoft ダウンロード センターから Mixed Reality Feature Tool の最新バージョンをダウンロードします。
Mixed Reality Feature Toolを開き、[Start] を押し、プロジェクトのフォルダを選択します。

Discover Features画面で、MRTK3を [Select All] 、[Platform Support] > [Mixed Reality OpenXR Plugin] を選択します。

[Get Features] を押し、次ページの[Validate] で問題がないか確認後、Importします。

Unityの方へ戻り、Project Settingに移動します。
[XR Plug-in Management] > [Plugin Providers] で [OpenXR] を選択します。
最初の項目である [Microsoft HoloLens feature groupe] にチェックが入っているか確認した後、黄色の感嘆符を選択します。
Isseuがいくつか出ていると思うので、[Fix All] を選択します。

[XR Plug-in Management] で [OpenXR] を選択します。
Depth Submission Modeを [Depth 16 bit]に変更します。
OpenXR Feature GroupeのMicrosoft HoloLensにチェックが入っていることを確認します。
Enabled Interaction Profileに[Hand Interaction Profile]、[Microsoft Hand Interaction Profile]、[Eye Gaze Interaction Profile]がない場合は追加します。
この際、エラーが出ている場合はもう一度 [Fix All] を選択します。

Vuforiaを使う準備

Vuforia側の準備の際にダウンロードしたSDK用のPackegeとデータベースのPackegeをインポートします。

Licenseを登録するため、Window > [Vuforia Configuration] を選択します。
App License KeyにVuforaiからコピーしてきた文字列をペーストします。

Sceneの作成

Hierarchyで、以下を削除・追加します。

  • 削除
    • Main Camera
    • Directional Light
  • 追加
    • MRTK XR Rig
    • ImageTarget
      • Cube(表示したいオブジェクト)

MRTK XR Rigは[Project] > [Packages] > [MRTK Input] > [Asset] > [Prefabs] にあるので、ドラッグ&ドロップで追加します。
ImageTargetはHierarchyを右クリックし、[Vuforia Engine] > [Image Target]を選択して追加します。

マーカーを反映させるために、ImageTargetのInspectorのImage Target Behaviorを見ます。
TypeがFrom Databaseであることを確認し、DatabaseからVuforiaのサイトで登録したデータベースを選択します。
Image Targetからマーカーを選択します。

Cube(表示したい物体)をImageTargetの子にし、位置とサイズを調節します。
今回は以下のように調節しました。
Position x:0, y:0.1, z:0
Scalse x:0.1, y:0.1, z:0.1

3.HoloLens2へデプロイする

ビルドする

Scene ListからAdd Sceneを選択し、作成したシーンをBuild用に追加します。

Universal Windows Platformの [Build] から、適当なフォルダを選択してBuildを行います。

デプロイする

ビルドが終了したら、Visual Studioで.slnファイルを開きます。

Release と ARM64 アーキテクチャを選択します。
今回はUSB経由でビルドをするので、プロパティは特に変更せず、リモートマシン→デバイスに変更します。

HoloLens をコンピューターに接続し、Visual Studio で以下のいずれかの操作を行います。

アプリを HoloLens に展開し、Visual Studio デバッガーをアタッチせずに自動起動させるには、[デバッグ]>[デバッグなしで開始] を選択します。

デプロイ完了後アプリを開くと...


Cubeが表示されています!

おわりに

HoloLens2 × Vuforiaは、私も大学院での研究で使っていて、精度も結構よい方だと思います。
(ARカードゲームの研究をしています。)
皆さんもぜひ使ってみてください!

QuestやVision Proなど他のHMDでのマーカー認識も含めて書こうと思っていたのですが、意外と分量が多くなってしまったので、また今度書きたいと思います。

Iwaken Lab. Advent Calendar 2024の10日目は さくたま さんです!お楽しみに!!

Discussion