首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用无相机延迟的ARKit和视觉工具包iOS Swift

如何使用无相机延迟的ARKit和视觉工具包iOS Swift
EN

Stack Overflow用户
提问于 2022-08-04 08:08:35
回答 1查看 115关注 0票数 0

我使用ARKit的脸地标位置和视觉套件框架的手的姿势。当用户单击ARKit按钮时,我能够成功地打开相机,并且能够切换到visionKit框架。但问题是,在相机之间切换的速度很慢。

相关私有变量cameraFeedSession: AVCaptureSession?

代码语言:javascript
复制
  func setUpFaceDetection() {
        DispatchQueue.main.async {
            self.cameraFeedSession?.stopRunning()
        }
        let configuration = ARFaceTrackingConfiguration()
        sceneView.isHidden = false
        sceneView.session.run(configuration)
    }



func setUpHandPoseCamera() {
        self.index = 0
        alertLabel.text = "Please wait..."
        do {
            if cameraFeedSession == nil {
                cameraView.previewLayer.videoGravity = .resizeAspectFill
                try setupAVSession()
                cameraView.previewLayer.session = cameraFeedSession
            }
            cameraFeedSession?.startRunning()
            if let canAdd = cameraFeedSession?.canAddOutput(cameraOutput), canAdd {
                cameraFeedSession?.addOutput(cameraOutput)
            }
            cameraView.imageLayer.removeFromSuperlayer()
        } catch {
            AppError.display(error, inViewController: self)
        }
    }

func disableFaceDetection() {
    sceneView.isHidden = true
    sceneView.session.pause()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 21:15:00

我很肯定您不能这样做,在幕后,ARKit正在运行它自己的AVCaptureSession实例,并且您没有直接访问它的权限--多个AVCaptureSession也不能同时运行。与停止/启动AVCaptureSession相关的硬件激活成本。

您为什么不能将已经运行的ARKit会话中的视频输出数据作为视觉推理的输入?您可以在ARSession上不间断地禁用跟踪,并通过在ARSession委托方法中或从ARSession.currentFrame中读取ARFrame.capturedImage属性,有效地将其用作纯摄像机。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73232442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档