ARFaceTrackingConfiguration – 深度图未对齐

ARFaceTrackingConfiguration – Depth map not aligned

我目前正在努力从 ARFaceTrackingConfiguration 获取深度图,但我在这方面遇到了一些麻烦,因为它就像深度图从 RGB 中漂移了一点(见图)。

所以我将我的配置声明为 ARFaceTrackingConfiguration 并设置了我的会话。 当准备好被捕获时,我使用委托来等待深度图

func session(_ session: ARSession, didUpdate frame: ARFrame) {
   if (isRecording) {
      if (frame.capturedDepthData? != nil){
          let capturedFrame = frame
          captureImages(frame: capturedFrame)
      }
   }    
}

然后我从帧中捕获了相机、深度图和 rgb 图像

func captureImages(frame: ARFrame){
   let camera = frame.camera
   let pixelBuffer = frame.capturedImage
   guard let depthBuffer = frame.capturedDepthData else {
      print("Dropped, no depthBuffer")
      return
   }
}

之后我将深度和 rbg 都保存为 png 以显示它们。

谢谢

Depth 通道和 RGB 通道边缘之间的差异是由于 ARKit 3 中的深度通道是 15 fps 而不是 60 fps,而在 ARKit 4 和RealityKit 2 是 60 fps,但这 60 帧是 15 帧中相同的插值帧。此外,深度通道具有锯齿边缘,因为深度通道的抗锯齿功能已关闭。

有关详细信息,请查看