问题描述
我的用例是我想计算相机看到的一只手(第一只手)的各种手势。我能够找到身体锚和手锚和姿势。 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 (将#修改为@)