es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Calculando el ángulo a partir de las coordenadas 3D

Estoy trabajando con un estimador de postura que me está dando (x, y, z) para cada articulación. Estoy intentando calcular los ángulos basados en esto y me encuentro con algunos problemas.

 const find_angle = (Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz) =>
{
    var AB = Math.sqrt(Math.pow(Bx-Ax,2)    +   Math.pow(By-Ay,2)  +  Math.pow(Bz-Az,2));    
    var CB = Math.sqrt(Math.pow(Bx-Cx,2)    +   Math.pow(By-Cy,2)  +  Math.pow(Bz-Cz,2)); 
    var AC = Math.sqrt(Math.pow(Cx-Ax,2)    +   Math.pow(Cy-Ay,2)  +  Math.pow(Cz-Az,2));

    const radians = Math.acos((CB*CB+AB*AB-AC*AC)   /   (2*CB*AB));
    const angle = (Math.abs(radians*180.0/Math.PI))
    console.log(angle)
}

// Rodilla
find_angle(101, 166, 409, 107, 209, 790, 115, 248, 9564)

// Tobillo
find_angle(100, 259, 1549, 97, 299, 9471, 95, 315, 1575)

Salida:

Imagen de salida

El resultado de la rodilla parece correcto, pero no el del tobillo. Esperaba un ángulo en el rango de 70-90. Me pregunto si esta función es demasiado simple para lo que estoy tratando de hacer o qué mejoras se podrían hacer para que sea consistente en todas las articulaciones. El usuario está mirando hacia la cámara mientras se estiman las poses.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en javascript, trigonometría, tensorflow.js y cálculo de ángulos, sugeriría verificar el orden de las coordenadas de las articulaciones pasadas a la función find_angle(). Es crucial asegurarse de que las articulaciones estén correctamente ordenadas y se utilicen las articulaciones correctas para calcular el ángulo.

    Según la información proporcionada, no está claro si las coordenadas de las articulaciones están en un espacio 2D o 3D. Si están en un espacio 3D, puede ser necesario convertir las coordenadas (x, y, z) a un plano 2D para calcular ángulos precisos. Además, puede haber limitaciones en la precisión del sistema de estimación de postura en sí mismo.

    Las mejoras a la función podrían incluir la adición de comprobaciones para asegurarse de que las articulaciones estén correctamente ordenadas y utilizar funciones trigonométricas más avanzadas, como la tangente inversa (tan-1), para calcular ángulos. También podría ser beneficioso incorporar técnicas de aprendizaje automático utilizando tensorflow.js para mejorar la precisión del sistema de estimación de postura.

Comments are closed.