你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何检测困难对象
有时,对象可能会变得更加难以检测到。 例如:
- 由于对象靠墙而导致大量表面积无法访问时
- 对象太大并且在该对象周围行走所花费的时间过长时
- 当设备传感器未检测到对象的表面时
调整对象查询值
Azure Object Anchors 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
)。
- 定向的边界框(使用
有关详细信息,请参阅适用于 Unity 或 HoloLens C++/WinRT 的 ObjectQuery
类。
后续步骤
在此故障排除指南中,你了解了如何排查难以检测对象的检测问题。 下面是一些相关文章: