Как измерить расстояние между зрачками с помощью ARKit? - PullRequest
0 голосов
/ 27 сентября 2019

Я работаю над приложением PD measure poc для iPhone.я пробовал с другими подходами для измерения pd, но все еще не получаю точный результат.

я получаю faceAnchor от func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor), который является методом делегата ARSCNView.

тогда после от faceAnchor я получаю

* * * +1007 1008 * faceAnchor.leftEyeTransform: simd_float4x4 ([[0,99813265, -0,0015954619, 0,061063215, 0,0], [0,0, 0,9996588, 0,026119122, 0,0], [-0,061084054, -0,026070349, 0,9977921, 0,0], [0,03364487,0.027366925, 0.025988795, 1.0]])

и

faceAnchor.rightEyeTransform: simd_float4x4 ([[0.99992144, 0.00032705365, -0.01253119, 0.0], [0.0, 0.999]0,026090285, 0,0], [0,0125354575, -0,026088236, 0,99958104, 0,0], [-0,03348996, 0,027303606, 0,025771776, 1,0]])

матрица

, затем я создал левый глазвектор и вектор правого глаза SCNVector3 с помощью

func createVector(simdFloat: simd_float4x4) -> SCNVector3 {
    return SCNVector3(simdFloat.columns.3.x, simdFloat.columns.3.y, simdFloat.columns.3.z)
}

, затем используется

let distanceInMeter = distance(float3(leftEyeVector), float3(rightEyeVector))

let distanceInmm = Float(distanceInMeter * 1000)

Я также пытался с

let distanceX = self.x - toVector.x
    let distanceY = self.y - toVector.y
    let distanceZ = self.z - toVector.z
    return fabsf(sqrtf((distanceX * distanceX) + (distanceY * distanceY) + (distanceZ * distanceZ)))

а также пробовал с созданным пользователем glkvector3г

func glkVector3FromARFaceAnchorTransform(_ transform: simd_float4) -> GLKVector4 { return GLKVector4Make(transform.x, transform.y, transform.z, transform.w) } , а затем

let distanceInMeter = GLKVector3Distance(leftEyePosition, righEyePosition)

я также пробовал с

let distanceInMeter = simd_distance(rightEyeTransform.columns.3, leftEyeTransform.columns.3)

я пробовал с blendShapes, но все еще не получалТочный результат.

Вы можете мне помочь?

Работали ли вы раньше над этим типом измерения PD?

Пожалуйста, поделитесь своей идеей или кодом для справки.

Спасибо.

...