ARKit + SceneKit:我可以访问框架的 segmentationBuffer 但禁用自动人物遮挡吗?

ARKit + SceneKit: Can I access the frame's segmentationBuffer but disable automatic person occlusion?

我正在使用 ARKit 和 SceneKit,并且想对帧中检测到的人物应用自定义渲染。为此,我想使用 ARFrame.segmentationBuffer

如果我将 .personSegmentation 添加到我的 ARConfiguration 的框架语义中,我就可以访问这个缓冲区。然而,这也会自动开始遮挡框架中的任何人,这会阻止我的自定义渲染显示

是否可以访问分割缓冲区但禁用自动人物遮挡以便我可以按照自己的方式渲染人物?

是的!使用 SceneKit,似乎将 .personSegmentation 添加到框架语义中会自动添加一个 SCNTechnique 来实现人物遮挡

要禁用此自动遮挡,只需取消 sceneView.technique:

self.sceneView.technique = nil

您仍然可以访问 segmentationBuffer 但将不再应用遮挡

您还可以使用 ARMatteGenerator

为检测到的人生成更高分辨率的遮罩