我在 iOS 12 (16A5288q) 下使用 ARKit 2,使用 Xcode 10 beta 6 构建,在 iPhone X 上运行,并且始终lookAtPoint
为零。
我通过以下方式访问面部数据(在 Swift 中):
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
guard let faceAnchor = anchor as? ARFaceAnchor else { return }
FaceAnchorsProcessedCount = FaceAnchorsProcessedCount + 1
let rightEyeTransform: simd_float4x4 = faceAnchor.rightEyeTransform
let leftEyeTransform: simd_float4x4 = faceAnchor.leftEyeTransform
let lookAtPoint: simd_float3 = faceAnchor.lookAtPoint
}
我得到如下数据:
rightEyeTransform simd_float4x4 \n[ [9.999874e-01, 0.000000e+00, 5.010252e-03, -3.208227e-02],\n [2.375229e-04, 9.988756e-01, -4.740678e-02, 2.703529e-02],\n [-5.004618e-03, 4.740737e-02, 9.988630e-01, 2.525132e-02],\n [0.000000e+00, 0.000000e+00, 0.000000e+00, 1.000000e+00] ]\n
leftEyeTransform simd_float4x4 \n[ [9.978353e-01, 0.000000e+00, -6.576237e-02, 3.208223e-02],\n [-3.110934e-03, 9.988804e-01, -4.720329e-02, 2.703534e-02],\n [6.568874e-02, 4.730569e-02, 9.967182e-01, 2.525137e-02],\n [0.000000e+00, 0.000000e+00, 0.000000e+00, 1.000000e+00] ]\n
lookAtPoint simd_float3 (0.000000e+00, 0.000000e+00, 0.000000e+00)
我究竟做错了什么?或者这是一个已知的错误?
2018 年 10 月 4 日更新我lookAtPoint
今天做了一个简单的测试。我把脸靠近听筒,然后再远离,又靠近;反复。lookAtPoint的最小z 值为 38.59 英寸,最大值为 39.17 英寸(从米转换而来)。
用卷尺测量的实际距离约为 4.5 英寸和 33 英寸。
Apple 的声明lookAtPoint
将“[...] 估计用户的眼睛所关注的点,相对于面部。” 似乎不正确。