Saltar a contenido

Protocolo: Kinovea vs OpenPose para levantamientos sagitales

Objetivo

Comparar mediciones de Kinovea (manual, gold standard 2D) contra OpenPose/MediaPipe (automatico) en videos sagitales de levantamiento con y sin exoesqueleto.

Tipos de levantamiento

Tipo Descripcion Angulos clave
Dorsal Flexion de tronco manteniendo rodillas extendidas Trunk flexion, hip angle
Squat Flexion de rodillas con tronco mas erguido Knee angle, hip angle
Stoop Combinacion flexion tronco + rodillas Trunk, hip, knee

Condiciones

Cada tipo se ejecuta en dos condiciones: - sin_exo: Sin exoesqueleto (baseline) - con_exo: Con exoesqueleto

Protocolo de captura

Camara

  • Vista sagital pura (perfil derecho o izquierdo, consistente)
  • Camara fija en tripode, perpendicular al plano sagital
  • Distancia minima 3 metros para minimizar distorsion
  • Resolucion minima: 1080p, 30 FPS

Calibracion

  • Objeto de referencia de longitud conocida (regla 1m o patron 10 cm)
  • Visible en el campo de vision durante toda la grabacion
  • Para Kinovea: usar herramienta de calibracion del software
  • Para OpenPose: FC = longitud_real / longitud_px

Sujeto

  • Ropa ajustada, sin elementos que oculten articulaciones
  • Marcadores fisicos opcionales para ground truth Kinovea
  • Consentimiento informado requerido para cualquier grabacion

Ejecucion

  1. Sujeto en posicion neutra (T-pose o bipedestacion relajada) x 3 seg
  2. Ejecucion del levantamiento: 3 repeticiones minimo
  3. Pausa entre repeticiones: 3 seg

Variables medidas

Ver kinovea-openpose-variable-matrix.tsv para la tabla completa.

Variables principales: 1. Trunk flexion: angulo del tronco respecto a la vertical 2. Hip angle: angulo cadera (shoulder-hip-knee) 3. Knee angle: angulo rodilla (hip-knee-ankle) 4. Shoulder-hip vertical: inclinacion cuello-hombro-cadera

Keypoints OpenPose/MediaPipe requeridos

Keypoint BODY_25 ID MediaPipe ID Anatomia
Shoulder #2 (R) / #5 (L) 12 (R) / 11 (L) Glenohumeral
Hip #9 (R) / #12 (L) 24 (R) / 23 (L) Centro articular cadera
Knee #10 (R) / #13 (L) 26 (R) / 25 (L) Centro articular rodilla
Ankle #11 (R) / #14 (L) 28 (R) / 27 (L) Tobillo
Neck #1 0 (Nose) C7-T1 estimado

Umbrales de confianza

  • Minimo aceptable: visibility >= 0.5 por keypoint
  • Descarte de frame: si alguno de los 4 keypoints principales < 0.5
  • Warning: si avg_visibility < 0.7 para el frame

Manejo de oclusion

  • Exoesqueleto puede ocultar hip/shoulder parcialmente
  • Si keypoint < 0.5: frame descartado, marcado en output
  • Kinovea: evaluador marca manualmente incluso con oclusion parcial
  • Reportar % de frames descartados por condicion (con_exo vs sin_exo)

Formato de salida

TSV con columnas:

frame   timestamp_s subject_id  condition   lifting_type    trunk_flexion_deg   hip_angle_deg   knee_angle_deg  shoulder_hip_vertical_deg   source  confidence_min
  • source: "kinovea" | "openpose" | "mediapipe"
  • condition: "con_exo" | "sin_exo"
  • lifting_type: "dorsal" | "squat" | "stoop"
  • confidence_min: minimo visibility de los keypoints usados (solo para IA)

Comparacion Kinovea vs OpenPose

Metricas

  • MAE (Mean Absolute Error) por variable
  • RMSE por variable
  • ICC (Intraclass Correlation) si hay suficientes frames
  • Bland-Altman plot por variable

Analisis separado

  • Con exoesqueleto vs sin exoesqueleto
  • Por tipo de levantamiento
  • Tasa de descarte por oclusion

Preguntas pendientes para Cristina/Monica

  1. Que videos sagitales estan disponibles y con que FPS/resolucion?
  2. Hay mediciones Kinovea existentes para comparar?
  3. Se puede compartir videos anonimizados para procesar?
  4. Que marcadores fisicos se usaron (si alguno)?
  5. Cuantos sujetos y repeticiones hay por tipo de levantamiento?
  6. El exoesqueleto genera oclusion significativa del hombro o cadera?

Limitaciones

  1. OpenPose estima centros articulares, no landmarks oseos
  2. Vista sagital unica no captura movimientos fuera de plano
  3. Exoesqueleto puede reducir deteccion de keypoints
  4. Kinovea es manual y subjetivo pero mas preciso en 2D
  5. Sin videos reales, solo se puede validar el pipeline (no los resultados)