我正在使用 Apple https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip提供的示例进行 POC。
现在,在检测到表面之后放置对象可以正常工作。但是,当我将对象从检测到的表面移动到其他空间(如墙壁或障碍物)时,它与 3D 对象重叠。
通过相机 placing/moving 3D 对象时是否可以检测到障碍物? ARKit 中是否有可用的 API 来查找表面障碍?
如果没有,我们可以采取任何解决方法或计算来找到 obstacle/wall,而不让用户 place/move 将对象 above/beyond obstacle/wall 代替?
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/