微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在“session(_:didUpdate:)”方法中利用内存的最佳方法是什么?

如何解决在“session(_:didUpdate:)”方法中利用内存的最佳方法是什么?

我的用例是我想计算相机看到的一只手(第一只手)的各种手势。我能够找到身体锚和手锚和姿势。 See my video here。 我正在尝试利用以前的位置 SIMD3 信息来计算展示了什么样的手势。我确实看到了 Apple 发布的示例,该示例显示了虚拟写入,但我不确定缓冲区是否是此类问题的正确解决方案。

我想要做一个具体例子是检测滑动、长按、点击,就好像用户戴着一副 AR 眼镜(由 Apple 某天制造)。为了澄清起见,我想从我的手中投射光线并在实体或锚上执行手势。

这里是给那些想知道如何获得身体锚点的人的片段:

public func session(_ session: ARSession,didUpdate frame: ARFrame) {

    let capturedImage = frame.capturedImage

    let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: capturedImage,orientation: .right,options: [:])
    let handPoseRequest = VNDetectHumanHandPoseRequest()
    //let bodyPoseRequest = VNDetectHumanBodyPoseRequest()

    do {
        try imageRequestHandler.perform([handPoseRequest])
        guard let observation = handPoseRequest.results?.first else {
            return
        }
        // Get points for thumb and index finger.
        let thumbPoints = try observation.recognizedPoints(.thumb)
        let indexFingerPoints = try observation.recognizedPoints(.indexFinger)
        let pinkyFingerPoints = try observation.recognizedPoints(.littleFinger)
        let ringFingerPoints = try observation.recognizedPoints(.ringFinger)
        let middleFingerPoints = try observation.recognizedPoints(.middleFinger)
        self.detectHandPose(handobservations: observation)
    } catch {
        print("Failed to perform image request.")
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。