快速入門:在 C++/WinRT 和 DirectX 中使用 Azure 物件錨點建立 HoloLens 應用程式

本快速入門說明如何在 C++/WinRT 和 DirectX 中使用 Azure 物件錨點 建立 HoloLens 應用程式。 Object Anchors 是受控雲端服務,可將 3D 資產轉換成 AI 模型,以啟用 HoloLens 的物件感知混合實境體驗。 當您完成時,您會有 HoloLens 應用程式,可偵測物件及其姿勢在全像攝影 DirectX 11 (通用 Windows) 應用程式中。

您將了解如何:

  • 建立並側載 HoloLens 應用程式
  • 偵測物件並將其模型可視化

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

若要完成本快速入門,請確定您有:

  • 您環境中的實體物件及其 3D 模型 CAD 或掃描。
  • 已安裝下列專案的 Windows 電腦:
    • Git (適用於 Windows)
    • Visual Studio 2019 搭配 通用 Windows 平台 開發工作負載和 Windows 10 SDK (10.0.18362.0 或更新版本) 元件
  • 最新且 已啟用開發人員模式 的 HoloLens 2 裝置。
    • 若要更新至 HoloLens 上的最新版本,請開啟 設定 應用程式,移至 [更新與安全性],然後選取 [檢查更新]。

建立物件錨點帳戶

首先,您必須使用 Object Anchors 服務建立帳戶。

  1. 移至 Azure 入口網站,並選取 [建立資源]

    Create a new resource

  2. 搜尋 物件錨點 資源。

    搜尋 「Object Anchors」。

    Select the Object Anchors Resource

    在搜尋結果中的 [物件錨點] 資源上,選取 [建立 -> 物件錨點]。

    Create an Object Anchors Resource

  3. [Object Anchors 帳戶] 對話方塊中:

    • 輸入唯一資源名稱。
    • 選取資源要連結的訂用帳戶。
    • 建立或選取現有的資源群組。
    • 選取希望資源所在的區域。

    Enter Object Anchors resource account details

    選取 [建立] 以開始建立資源。

  4. 建立資源之後,選取 [前往資源]

    Go to resource

  5. 在概觀頁面上:

    記下 帳戶網域。 稍後您將需要此資訊。

    Copy the account domain for your Object Anchors resource

    記下 帳戶標識碼。 稍後您將需要此資訊。

    Copy the account ID for your Object Anchors resource

    移至 [ 存取金鑰 ] 頁面並記下 [主要金鑰]。 稍後您將需要此資訊。

    Copy the account key for your Object Anchors resource

上傳模型

執行應用程式之前,您必須讓模型可供應用程式使用。 如果您還沒有物件錨點模型,請遵循建立模型以建立模型中的 指示來建立一個模型 。 然後,返回這裡。

當您的 HoloLens 開啟電源並連線到開發裝置 (PC),請遵循下列步驟,將模型上傳至 HoloLens 上的 3D Objects 資料夾:

  1. 選取並複製您想要使用的模型,方法是一起按 Ctrl 鍵和 C(Ctrl + C)。

  2. 將 Windows 標誌鍵和 E 一起按下 [Win + E] 以啟動 檔案總管。 您應該會看到 HoloLens 列於左窗格中的其他磁碟驅動器和資料夾。

    file explorer

  3. 點選 HoloLens 連結,即可在右窗格的 HoloLens 裝置上顯示記憶體。

    open HoloLens internal storage

  4. 在 檔案總管 中,移至 [內部 儲存體 > 3D 物件]。 現在,您可以按下 Ctrl 鍵和 V,將模型貼到 [3D 物件 ] 資料夾中(Ctrl + V)。

    paste models in 3D Objects folder

開啟範例專案

執行下列命令來複製範例存放

git clone https://github.com/Azure/azure-object-anchors.git

cd ./azure-object-anchors

在 Visual Studio 中開啟 快速入門/apps/directx/DirectXAoaSampleApp.sln

將 [方案組態] 變更為 [發行],將 [解決方案平臺] 變更ARM64,從部署目標選項中選取 [裝置]。

設定帳戶資訊

下一個步驟是將應用程式設定為使用您的帳戶資訊。 您已記下 [建立物件錨點帳戶] 區段中的 [帳戶密鑰]、[帳戶標識符] 和 [帳戶網域] 值

開啟 Assets\ObjectAnchorsConfig.json

找出欄位, AccountId 並以您的帳戶識別碼取代 Set me

找出欄位, AccountKey 並以您的帳戶金鑰取代 Set me

找出欄位, AccountDomain 並以您的帳戶網域取代 Set me

現在,以滑鼠右鍵按兩下項目並選取 [建置],以建置 AoaSampleApp 專案。

Screenshot shows configuring Visual Studio project to deploy.

將應用程式部署至 HoloLens

成功編譯範例項目之後,您可以將應用程式部署至 HoloLens。

確定 HoloLens 裝置已開啟電源,並透過 USB 纜線連線到電腦。 確定 [裝置 ] 是所選的部署目標,如上所示。

以滑鼠右鍵按下 AoaSampleApp 專案,然後從操作功能表中選取 [部署 ] 以安裝應用程式。 如果 Visual Studio 的 [輸出視窗] 中未顯示任何錯誤,應用程式將會安裝在 HoloLens 上。

Screenshot shows the context menu for the project with Deploy selected.

啟動應用程式之前,您應該已將物件模型 chair.ou 上傳至 HoloLens 上的 3D Objects 資料夾。 如果您尚未這麼做,請遵循上傳模型一節中的指示。

若要啟動並偵錯應用程式,請選取 [>偵錯開始偵錯]。

內嵌物件模型並偵測其實例

AoaSampleApp 應用程式現在在您的 HoloLens 裝置上執行。 走近,在2米距離內,到目標物件(椅子),並從多個角度查看它來掃描它。 您應該會看到對象周圍有一些黃色點呈現接近物件表面的粉紅色周框方塊,這表示偵測到它。 您也應該會看到黃色方塊,指出搜尋區域。

Photograph shows a chair with the bounding box, point cloud, and search area.

您可以使用右手或左手在空中按下手指,來定義應用程式中物件的搜尋空間。 搜尋空間會在 2 公尺半徑的球體、4 m^3 周框方塊和檢視範圍之間切換。 對於大型物件,例如汽車,最佳選擇通常是使用檢視範圍選取範圍,同時站在距離約 2 公尺的物體角落。 每次搜尋區域變更時,應用程式都會移除目前正在追蹤的實例。 然後,它會嘗試在新搜尋區域中再次尋找它們。

此應用程式可以一次追蹤多個物件。 若要這樣做,請將多個模型上傳至裝置的 3D Objects 資料夾,並設定涵蓋所有目標物件的搜尋區域。 偵測和追蹤多個物件可能需要較長的時間。

應用程式會將 3D 模型與實體對應項目緊密對齊。 使用者可以使用左手空中點選來開啟高精確度追蹤模式,這會計算更精確的姿勢。 此功能仍為實驗性。 它會耗用更多系統資源,而且可能會導致預估姿勢的抖動程度較高。 左手再次點選空氣以切換回正常追蹤模式。

下一步