【问题标题】:How to find obstacles in horizontal surface using ARKIT of iOS 11(Scenekit)?如何使用iOS 11(Scenekit)的ARKIT在水平面上寻找障碍物?
【发布时间】:2018-02-05 08:18:29
【问题描述】:

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

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

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

如果没有,我们可以做任何解决方法或计算来找到障碍物/墙壁,让用户不要将对象放置/移动到障碍物/墙壁上方/之外?

【问题讨论】:

  • 在墙壁等方面,ARKit 仍然无法检测垂直表面。因此,检测这些甚至非水平表面可能存在问题。它可能能够检测到的唯一“障碍”是您放置的其他虚拟对象,您可以通过处理碰撞并为它们提供物理体来处理这些障碍。可悲的是,我认为你不能做你想做的事
  • @AlanS 有什么方法可以找到虚拟对象所在的空间是否是水平表面?
  • 对不起,我没有特别明白。你是指物体上方的空间还是物体上方的空间?对于物体上方的空间,我不太确定如何检查,对于物体下方的空间,您基本上可以使用水平面检测。
  • @AlanS 简而言之,我想检测我的整个对象是否放置在适当的水平面上。该怎么做?
  • 我很抱歉这么说,但我不确定你会怎么做。

标签: scenekit ios11 arkit xcode9beta6


【解决方案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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-11
    • 2018-01-11
    • 2011-08-25
    • 2022-01-24
    • 1970-01-01
    • 2018-04-22
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多