当在ARKit中使用人员遮挡时,你能提取估计深度数据和分割缓冲区吗?

问题描述 投票:0回答:1

有谁成功地从ARKit应用程序中提取了估计深度数据和分割缓冲区?我试图识别一个人和一个渲染的资产之间的任何碰撞。因为在运行时已经存在一个分割掩码和一个深度掩码,因为人的遮挡是打开的,我想知道我是否可以得到这个数组并使用它来识别碰撞事件。

我做了一些研究,似乎我可能需要设置一个自定义的渲染器来处理这个问题,但我想知道是否有其他人想出了一个更简单的方法。我使用的是一个非常简单的配置。

    let configuration = ARWorldTrackingConfiguration()
    configuration.planeDetection = .horizontal
    configuration.frameSemantics.insert(.personSegmentationWithDepth)
    // Run the view's session
    sceneView.session.run(configuration)
ios arkit image-segmentation
1个回答
0
投票

分割和深度数据都可以通过 ARKit 的属性访问。ARFrame. 你需要确认到 ARSessionDelegate 协议,以便获得更新。

func session(_ session: ARSession, didUpdate frame: ARFrame) {
   if let segmentationData = frame.segmentationBuffer {
       // Do smth with segmentation data
   }
   if let depthData = frame.estimatedDepthData {
       // Do smth with depth data
   } 
}
© www.soinside.com 2019 - 2024. All rights reserved.