如何偵測困難物件

有時候,物件可能會更難偵測。 例如:

  • 無法存取大型介面區時,因為物件對牆
  • 當物件太大,而且繞著它走動需要太長的時間
  • 當裝置感應器未偵測到物件的表面時

調整物件查詢值

Azure 物件錨點 SDK 所提供的一些機制可協助這些情況:

  • ObjectQuery.MinSurfaceCoverage 屬性。 它代表將物件實例視為真肯定的最小必要表面涵蓋範圍比率。 它允許的範圍從 0 到 1.0(代表 0% 到 100%)。 預設設定會因物件而異(介面區愈大,所需涵蓋範圍越小)。 它適用于大部分的情況。 但是,面對困難物件時,建議降低這個屬性的值,因此需要較少的表面涵蓋範圍來偵測物件。

  • ObjectQuery.MaxScaleChange 屬性。 如果原始模型沒有 1:1 針對所偵測到的物件縮放比例,則可以調整此設定。 它允許的範圍從 0 到 1.0(代表 0% 到 100%)。 預設設定為 0 會停用縮放估計,這需要 1:1 縮放對應。 例如,將這個屬性設定為 10%,會啟用縮放估計,並在模型小數位數與 物件沒有 1:1 比對的情況下,允許一些彈性。

  • ObjectQuery.ExpectedMaxVerticalOrientationInDegrees 屬性。 它代表物件向上方向與重力之間的最大角度,以度為單位。 範圍從 0 到 180。 換句話說,它代表相對於原始模型的物件傾斜。 在物件傾斜不符合原始模型的情況下,可以增加 3 度的預設設定,以允許更大的彈性。

  • ObjectQuery.IsExpectedToBeStandingOnGroundPlane 屬性。 這是一個布林值,表示物件是否預期位於地面。 預設為 false。 它可以切換為 true,以加速偵測物件位於地面的案例。

  • ObjectQuery.SearchAreas 屬性。 它代表要尋找物件的區域集合。 提供緊密的搜尋區域,同時仍涵蓋所有或大部分的物件,可改善偵測速度和精確度。 您可以挑選:

    • 使用 的導向周框方塊 ObjectSearchArea.FromOriented
    • 使用 的檢視 ObjectSearchArea.FromFieldOfView 欄位。
    • 使用 的位置 ObjectSearchArea.FromLocation
    • 使用 的球體 ObjectSearchArea.FromSphere

如需詳細資訊,請參閱 ObjectQuery Unity HoloLens C++/WinRT 的 類別。

下一步

在本疑難排解指南中,您已瞭解如何針對難以偵測物件的偵測進行疑難排解。 以下是一些相關文章: