如何使用iOS 11(Scenekit)的ARKIT在水平表面找到障碍物?

时间:2017-08-28 06:05:57

标签: scenekit ios11 arkit xcode9beta6

我正在使用apple https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip提供的示例处理POC。

现在,在检测到表面后放置对象可以正常工作。但是当我将物体从检测到的表面移动到某些其他空间(如墙壁或某些障碍物)时,它会与3D物体重叠。

在通过相机放置/移动3D物体时是否可以检测障碍物? ARKit中是否有任何API可用于找到表面的障碍物?

如果没有,我们可以采取哪些解决方法或计算来找到障碍物/墙壁,让用户不要将物体放置/移动到障碍物/墙壁上方/之外?

1 个答案:

答案 0 :(得分:1)

不幸的是,现阶段的简短答案是否定的。

检测垂直平面或场景中的物体非常困难。我的理解是Apple正在研究垂直平面检测,并且有几家初创公司在做物体检测。

最好的选择是等待6d.ai,因为这是他们正在进行的工作(虽然它们很难隐藏起来很难说)。

如果您有任何Core ML体验,那么您可以使用对象检测模型(找到第三方)来识别场景中的对象,并将其用作不受限制的几何体的代理。还有Matroid提供对象检测/跟踪功能。

以下不是特定的ARKit / iOS示例,但可能会在以后帮助您。

Vuforia支持场景理解:https://library.vuforia.com/articles/Training/Getting-Started-with-Smart-Terrain

Hololens也支持它:https://elbruno.com/2017/04/21/hololens-spatial-understanding-vs-spatial-mapping-and-a-step-by-step-on-how-to-use-it/