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

如何使用iOS 11的ARKIT(Scenekit)在水平面上查找障碍物?,scenekit,ios11,arkit,xcode9beta6,Scenekit,Ios11,Arkit,Xcode9beta6,我正在使用苹果公司提供的样本制作POC 现在,在检测到曲面后,放置对象可以正常工作。但是,当我将对象从检测到的曲面移动到其他空间(如墙或障碍物)时,它与3D对象重叠 在通过摄像头放置/移动3D对象时是否可以检测障碍物?ARKit中是否有任何API可用于查找表面障碍物 如果没有,我们是否可以做一些变通或计算来找到障碍物/墙,并让用户不要将对象放置/移动到障碍物/墙上方/之外 不幸的是,目前阶段的简短答案是否定的 检测场景中的垂直平面或对象相当困难。据我所知,苹果公司正在致力于垂直平面检测,有几家初

我正在使用苹果公司提供的样本制作POC

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

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


如果没有,我们是否可以做一些变通或计算来找到障碍物/墙,并让用户不要将对象放置/移动到障碍物/墙上方/之外

不幸的是,目前阶段的简短答案是否定的

检测场景中的垂直平面或对象相当困难。据我所知,苹果公司正在致力于垂直平面检测,有几家初创公司正在做物体检测的工作

最好的选择是等待,因为这是他们正在做的事情(尽管他们是秘密进行的,所以很难说清楚)

如果您有任何核心ML经验,那么您可以使用对象检测模型(找到第三方模型)来识别场景中的对象,并将其用作禁用几何体的代理。此外,还提供了目标检测/跟踪功能

以下不是特定的ARKit/iOS示例,但可能对您以后有所帮助

Vuforia支持场景理解:


全息透镜也支持它:

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