快速入門:在 Unity 使用 MRTK 透過 Azure Object Anchors 建立 HoloLens 應用程式

在本快速入門中,您將建立使用 Azure Object Anchors 的 Unity HoloLens 應用程式。 Azure Object Anchors 是受控雲端服務,可將 3D 資產轉換成 AI 模型,以啟用 HoloLens 的物件感知混合實境體驗。 完成時,您就會有一個使用 Unity 建置的 HoloLens 應用程式,可偵測實體世界中的物件。

您將學習如何:

  • 準備 Unity 組建設定。
  • 匯出 HoloLens Visual Studio 專案。
  • 在 HoloLens 2 裝置上部署應用程式並加以執行。

必要條件

若要完成本快速入門,請確定您具備︰

  • 環境中的實體物件及其 3D 模型 (CAD 或掃描的)。
  • 已安裝下列各項的 Windows 電腦:
  • 最新的 HoloLens 2 裝置且已啟用開發人員模式
    • 若要在 HoloLens 上更新至最新版本,請開啟設定應用程式,移至 [更新與安全性],然後選取 [檢查更新]

建立 Object Anchors 帳戶

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

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

    建立新資源

  2. 搜尋 Object Anchors 資源。

    搜尋 "Object Anchors"。

    選取 Object Anchors 資源

    在搜尋結果的 Object Anchors 資源上,選取 [建立] -> [Object Anchors]

    建立 Object Anchors 資源

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

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

    輸入 Object Anchors 資源帳戶詳細資料

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

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

    前往資源

  5. 在概觀頁面上:

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

    複製 Object Anchors 資源的帳戶網域

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

    複製 Object Anchors 資源的帳戶識別碼

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

    複製 Object Anchors 資源的帳戶金鑰

設定您的裝置

若要將應用程式部署至 HoloLens,您必須將 HoloLens 與電腦配對。

  1. 在 HoloLens 中,瀏覽至 [設定] -> [更新與安全性] -> [開發人員]
  2. 按一下 [配對],讓畫面保持開啟狀態,直到您在第一次部署期間將 PIN 輸入 Visual Studio 為止。

上傳模型

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

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

  1. 同時按下 Ctrl 鍵和 C (Ctrl + C),以選取並複製您要使用的模型。

  2. 同時按下 Windows 標誌鍵和 E (Win + E) 以啟動 [檔案總管]。 您應該會看到左窗格列出 HoloLens 與其他磁碟機和資料夾。

    檔案總管

  3. 點選 HoloLens 連結,即會在右窗格顯示 HoloLens 裝置上的儲存體。

    開啟 HoloLens 內部儲存體

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

    在 [3D 物件] 資料夾中貼上模型

開啟範例專案

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

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

cd ./azure-object-anchors

下一個步驟是下載適用於 Unity 的 Azure Object Anchors 套件。

這裡尋找適用於 Unity 的 Azure Object Anchors 套件 (com.microsoft.azure.object-anchors.runtime)。 選取您想要的版本,然後使用 [下載] 按鈕下載套件。

在 Unity 中,開啟 quickstarts/apps/unity/mrtk 專案。

遵循這裡的指示操作,使用 Unity 套件管理員將您下載的 Azure Object Anchors 套件匯入 Unity 專案。

設定帳戶資訊

下一個步驟是將應用程式設定為使用您的帳戶資訊。 記下 [建立 Object Anchors 帳戶] 區段中的 [帳戶金鑰]、[帳戶識別碼] 和 [帳戶網域] 值。

在 [專案] 窗格上,移至 Assets\AzureObjectAnchors.SDK\Resources

選取 [ObjectAnchorsConfig]。 在 [偵測器] 窗格上,輸入 Account Key 做為 [Object Anchors 帳戶金鑰] 的值、輸入 Account ID 做為 [Object Anchors 帳戶識別碼] 的值,以及輸入 Account Domain 做為 [Object Anchors 帳戶網域] 的值。

建置並執行應用程式

組建範例場景

在 Unity 編輯器中,瀏覽至 Assets/MixedReality.AzureObjectAnchors/Scenes,然後開啟 AOASampleScene,並將它新增到場景組建清單。

當 [TMP 匯入工具] 對話方塊提示您匯入 TextMesh Pro 資源時,請選取 [匯入 TMP Essentials] 來匯入資源。 匯入 TextMesh Pro 資源

選取 [檔案 -> 組建設定]。 選取 [通用 Windows 平台],然後選取 [切換平台]。 如果 Unity 編輯器指出您必須先下載某些元件,請下載並安裝那些元件。 請遵循下列螢幕擷取畫面來設定組建設定。 請確定只有 AOASampleScene 旁邊有核取記號:不應納入所有其他場景。

組建設定

選取 [組建] 並選取輸出資料夾。 您現在可以在輸出資料夾中產生 VS 專案。

建置並部署應用程式

開啟 Unity 所產生的 .sln 檔案。 將組建設定變更為下列。

組建設定

接下來,您必須設定 [遠端電腦 IP 位址],以部署和偵錯應用程式。

以滑鼠右鍵按一下 [應用程式] 專案,然後選取 [屬性]。 在 [屬性] 頁面中,選取 [設定屬性]->[偵錯]。 將[電腦名稱] 值變更為 HoloLens 裝置的 IP 位址,然後按一下 [套用]

遠端偵錯

關閉屬性頁。 按一下 [遠端電腦]。 應用程式應該會開始建置並部署至您的遠端裝置。 請確定您的裝置作用中。

在 Unity 啟動顯示畫面之後,您應該會看到白色週框方塊。 您可以手動移動、縮放或旋轉週框方塊。 放置方塊以涵蓋您想要偵測的物件。

開啟手部功能表,然後選取 [鎖定搜尋區域],以防止週框方塊進一步移動。 選取 [開始搜尋] 以啟動物件偵測。 偵測到物件時,會在該物件上呈現網格。 偵測到執行個體詳細資料會顯示在畫面上,例如更新的時間戳記和表面覆蓋率。 選取 [停止搜尋] 以停止追蹤,並移除所有偵測到的執行個體。

應用程式功能表

您也可以使用手部功能表來執行其他動作。

主要功能表
  • 啟動搜尋/停止搜尋 – 啟動或停止物件偵測流程。

  • 切換空間對應 – 顯示/隱藏空間對應呈現。 不論掃描是否完成,均可使用此選項進行偵錯。

  • 追蹤器設定 – 切換啟用追蹤器設定功能表。

  • 搜尋區域設定 – 切換啟用搜尋區域設定功能表。

  • 啟動追蹤 – 擷取診斷資料並儲存至裝置。 如需詳細資訊,請參閱偵錯偵測問題和擷取診斷一節。

  • 上傳追蹤 – 將診斷資料上傳至 Object Anchors 服務。

    Unity 主要手部功能表

追蹤器設定功能表
  • 高精確度 – 一種實驗性功能,用來取得更精確的姿勢。 啟用此選項會在物件偵測期間需要更多系統資源。 在此模式中,物件網格會以粉紅色呈現。 再次選取此按鈕以切換回一般追蹤模式。

  • 寬鬆的垂直對齊 – 啟用時,允許以非垂直角度偵測物件。 適用於偵測坡道上的物件。

  • 允許調整變更 – 允許追蹤器根據環境資訊來變更偵測到的物件大小。

  • 覆蓋率滑桿 – 調整表面點的比例,比例相符後才能讓追蹤器偵測物件。 較低的值可讓追蹤器更準確地偵測 HoloLens 感應器難以偵測的物件,例如深色物件或高反射物件。 較高的值會降低錯誤偵測的頻率。

    Unity 追蹤器手部功能表

搜尋區域設定功能表
  • 鎖定搜尋區域 – 鎖定區域週框方塊,以防止手部不小心移動。

  • 自動調整搜尋區域 – 允許搜尋區域在物件偵測期間自行重新定位。

  • 循環網格 – 將搜尋區域內的已載入網格視覺化以建立循環。 此選項可協助使用者配合難偵測的物件調整搜尋方塊。

    Unity 搜尋區域手部功能表

疑難排解

提示

如果未偵測到您的物件,您可以嘗試下列步驟:

  1. 再次確認物件使用的模型正確無誤。
  2. 將搜尋區域視覺化,並確保其中涵蓋目標物件。
  3. 試著減少 MinSurfaceCoverage
  4. 在 Windows 裝置入口網站中,按一下 [檢視]->[3D 檢視],並確認掃描是否已完成。

下一步