Construyendo Kinetiq, motor de verificación de ejercicios para fisioterapia: el valor es la prueba filtrada por confianza y facturable por RTM sobre el modelo de pose.
Physical TherapyDigital HealthHealthcare AI

Cualquier modelo de pose registrará 15 sentadillas buenas en una rodilla que se hunde. Yo construí la IA que atrapa la repetición 9.

Ashutosh SinghalAshutosh Singhal8 de julio de 202613 min

Construí la primera versión de esta demo para demostrar que un modelo de pose podía contar sentadillas, y en un día había demostrado lo equivocado. Le pasé una paciente sintética post-LCA a la que llamé María, 62 años, ocho semanas después de una reconstrucción de rodilla, quince sentadillas con peso corporal prescritas. La biblioteca de pose gratuita hizo exactamente lo que hacen las bibliotecas de pose gratuitas. Registró quince repeticiones, las contó todas y siguió adelante. Quince de quince. Una sesión limpia.

El problema fue la repetición 9. En la repetición 9 la rodilla de María se hunde hacia dentro y ella reduce la velocidad para compensar, exactamente el movimiento que un fisioterapeuta vigila tras una reconstrucción del LCA porque es como la gente vuelve a romper el injerto. El modelo de pose vio una sentadilla. No vio un riesgo de nueva lesión, porque ver eso no es para lo que sirve un modelo de pose. La repetición que debería haber marcado fue la repetición que contó.

Ese fue el momento en que el producto real se me aclaró. Había estado tratando la estimación de pose como la parte difícil. Ya no es la parte difícil. Es gratis.

La estimación de pose es gratis, así que dejé de intentar competir con ella

Pasé la primera semana intentando construir un mejor rastreador de puntos clave, y fue la semana más desperdiciada del proyecto. BlazePose y MoveNet ya funcionan en un teléfono, a 30 fotogramas por segundo, dándote un esqueleto de 33 puntos clave gratis. Todas las plataformas de fisioterapia y las apps de bienestar corporativo ya tienen esto o pueden añadirlo mañana. Competir ahí es competir por regalar algo que ya se está regalando.

Lo que nadie te entrega es la capa después de los puntos clave. Tomar un flujo de pose en bruto y convertirlo en algo sobre lo que un clínico pueda actuar y que un pagador reembolse. Esa es la capa que decidí que Kinetiq construiría, de extremo a extremo, y la tesis a la que volvía una y otra vez es esta.

La estimación de pose es gratis. El valor es el cerebro por encima de ella, y la prueba facturable.

Así que tiré el rastreador y construí el motor de interpretación en su lugar. Toma el flujo de puntos clave (sintético para tres de mis pacientes de prueba, y para un cuarto, extraído sin conexión de un clip real de sentadilla capturado para poder demostrar que el pipeline funciona con metraje real), lo suaviza con un filtro 1-Euro, lo filtra por confianza, segmenta las repeticiones por autosimilitud temporal y calcula las características sobre las que un clínico realmente razona: ángulo articular y rango de movimiento, un índice de valgo de rodilla, una proporción de tempo descenso-ascenso, suavidad del movimiento como Log Dimensionless Jerk, y un índice de simetría izquierda-derecha. NumPy sencillo, con pruebas unitarias. Ningún modelo en la ruta de puntuación. Puedes construir todo en veriprajna.com/es/demos/verificacion-de-ejercicio-con-biomecanica-de-ia-y-prueba-rtm y ver cómo califica una sesión.

Cuando volví a pasar a María por este motor, la repetición 9 salió como debería haber salido la primera vez.

Tabla por repetición de Kinetiq para María, repetición 9 marcada como VALGO DE RODILLA con índice de valgo 0,054 por encima del umbral 0,03 y tempo 1,4 por encima de 1,25, marcada como riesgo de nueva lesión mientras las repeticiones circundantes puntúan bien
Repetición 9, la que el contador en bruto llamó buena: el motor devuelve índice de valgo de rodilla 0,054 (en o por encima del umbral 0,03) y tempo 1,4 (por encima de 1,25), una marca de riesgo de nueva lesión, no una decimoquinta repetición buena.

El motor no se limita a decir "mala repetición". Escribe la cláusula que comprobó: valgo 0,054 en o por encima de 0,03, tempo 1,4 por encima de 1,25. Un clínico puede interrogar eso. No puedes interrogar una caja negra, y después de una cirugía de LCA quieres hacerlo de verdad.

La repetición que me tentó falsificar

Recuerdo exactamente dónde me volví codicioso, y fue la repetición 12. En la repetición 12 de la sesión de María el punto clave de la cadera cae por debajo de la umbral de visibilidad. La confianza del rastreador en esa articulación baja demasiado como para confiar. Durante unos fotogramas el motor simplemente no sabe dónde está su cadera.

La jugada tentadora, la que hace que tu benchmark se vea mejor, es interpolar. Adivinar la posición de la cadera a partir de los fotogramas de alrededor, calcular un ángulo de todos modos, puntuar la repetición, mantener el número limpio. Escribí esa interpolación. Funcionó. Y entonces leí la literatura sobre precisión monocular y la eliminé.

El error del ángulo de rodilla con una sola cámara alcanza un error absoluto medio de 9,3 a 21,9 grados (Nature Scientific Reports, 2025). Ese es el techo honesto de este tipo de medición. Si fabrico una posición de cadera en un fotograma de baja confianza y luego informo un ángulo articular a partir de ella, no estoy midiendo una rodilla, estoy generando un número de aspecto plausible y llamándolo clínico. Para una empresa llamada Veriprajna, que significa sabiduría verdadera, no fue una decisión difícil.

Tabla de Kinetiq que muestra la repetición 12 como NO PUNTUADA con el motivo LHIP no visible, el punto clave de la cadera por debajo de la umbral de visibilidad, y ningún ángulo fabricado para esa repetición
Repetición 12: el punto clave de la cadera cae por debajo de la umbral de visibilidad, así que el veredicto es "no puntuada, cadera no visible". El esqueleto se atenúa en gris y no se inventa ningún ángulo para ese fotograma.

Así que el motor se abstiene. Dice, en pantalla, "repetición no puntuada, cadera no visible". Atenúa el esqueleto en gris. No finge.

Nunca adivinamos ángulos articulares a partir de puntos clave de baja confianza.

Puse esa frase en pantalla porque quería que la disciplina fuera visible, no enterrada en un archivo de configuración. En las repeticiones ocluidas de mi conjunto etiquetado, tres de tres se abstuvieron y se fabricaron cero ángulos, y eso no es una afirmación que yo declare, es un invariante con pruebas unitarias. Una repetición ocluida que se puntuara de todos modos sería, por definición, un ángulo fabricado. La prueba lo detectaría. Negarse a responder es una característica por la que tuve que pelear contra mis propios instintos para conservarla.

¿Por qué la misma sentadilla aprueba para un paciente y suspende para el siguiente?

Casi lancé un único umbral global, y una fisioterapeuta a la que mostré una versión temprana me convenció de no hacerlo en unos treinta segundos. Su punto era simple. Una sentadilla de 80 grados de una mujer ocho semanas post-LCA es un buen progreso. La misma sentadilla de 80 grados de un cliente sano de bienestar de 30 años es una repetición perezosa. Si tu motor las puntúa igual, no entiende de rehabilitación, entiende de geometría.

Así que el motor de reglas se volvió adaptable a la población. Los umbrales se vinculan al perfil del paciente: franja de edad, condición, semana de recuperación. María, post-LCA semana 8, recibe un objetivo de flexión de 75 grados. Jordan, un atleta de bienestar corporativo de 30 años con rodillas sanas, recibe 95. Construí un control en la demo para que el punto fuera innegable: cambia el desplegable de perfil, mantén exactamente el mismo movimiento y observa cómo cambia el veredicto.

Kinetiq mostrando a Jordan, perfil de atleta de bienestar, la misma sentadilla de unos 80 grados puntuada como profundidad insuficiente (el veredicto superficial en pantalla) porque la flexión está por debajo del objetivo de 95 grados, donde el perfil post-LCA de María la puntuó como buena
La misma profundidad de unos 80 grados que puntuó bien para María (objetivo 75 grados) se puntúa como profundidad insuficiente para Jordan (objetivo 95 grados), mostrada en pantalla como el veredicto superficial. Un movimiento, dos veredictos, porque los umbrales se adaptan al paciente.

La primera vez que cambié ese desplegable delante de alguien y toda la columna de veredictos cambió bajo un movimiento que no cambió, los vi entenderlo. El mismo movimiento obtiene un veredicto distinto según el perfil, y eso es juicio clínico, no un error. Esta es también la parte de la tesis que no envejece. Cuando la estimación de pose sea perfecta, y lo será, el sensor aún no podrá decirte que 80 grados significa una cosa para una rodilla en curación y otra para una sana. Ese entendimiento vive en la capa de encima.

Los agentes aconsejan, el código decide

Dejé que un agente de IA me avergonzara una vez, y es la razón por la que la arquitectura se ve como se ve. Todos a quienes se lo presentaba querían la capacidad de moda: un agente que lee la sesión y escribe la nota clínica, un agente que observa la tendencia y escala. Bien. Conecté un Clinical Scribe y un Longitudinal Monitor sobre otra paciente, Eleanor, 70 años, post-prótesis de rodilla, cuyo rango de movimiento disminuye en silencio a lo largo del historial de sus sesiones.

El primer borrador que escribió el escriba era fluido y confiado y contenía una cifra de rango de movimiento que no estaba en la evidencia. Había redondeado, o suavizado, o simplemente inventado un número que se leía bien. Si me hubiera fiado, habría publicado una nota clínica con una medición fabricada. Ese es todo el modo de fallo de poner un modelo de lenguaje en un bucle médico, y acababa de verlo ocurrir en mi propia pantalla.

La solución fue hacer a los agentes estructuralmente incapaces de ello. Toda cifra que introduce un agente se comprueba contra la evidencia determinista. Cualquier número que no esté en la salida del motor se rechaza, y en su lugar se muestra la plantilla determinista. Ambos agentes se abstienen por completo cuando no hay clave de API. Interpretan y comunican. No deciden.

Panel de AI Scribe y Longitudinal Monitor de Kinetiq para Eleanor, ambos etiquetados como comprobados por anclaje, el monitor informando una tendencia decreciente de rango de movimiento a lo largo del historial de sesiones y escalando para revisión del clínico
El Longitudinal Monitor sobre el historial sintético de sesiones de Eleanor: detecta la tendencia decreciente de rango de movimiento y redacta la escalada proactiva al clínico. Ambos agentes están comprobados por anclaje contra el motor determinista, de modo que cualquier cifra que no esté en la evidencia se rechaza antes de llegar a la nota.
Los agentes aconsejan, el código decide.

Esa frase es la decisión de diseño portante de toda la demo. El núcleo de confianza, cada veredicto por repetición y la determinación de facturación, es código sencillo con pruebas unitarias sin ningún modelo de lenguaje cerca. Los agentes se sitúan encima, acotados y comprobados por anclaje, haciendo lo único en lo que son genuinamente buenos, que es convertir números verificados en prosa lista para el clínico. En el momento en que un agente obtiene un voto sobre el veredicto, has perdido la auditabilidad que era todo el sentido.

Lo que un pagador realmente reembolsa es un recibo, no un conteo de repeticiones

La razón comercial por la que construí todo esto es algo que aprendí leyendo las reglas de facturación de CMS, que no es como esperaba pasar un mes. Los clínicos pueden facturar Monitorización Terapéutica Remota bajo CPT 98975-98981, más los códigos de 2026 98979 y 98985, y el umbral de cualificación de 2026 bajó hasta tan solo 2 días y 10 minutos de datos (investigación Veriprajna WP29, 2026). Pero CMS no reembolsa coordenadas en bruto. Exige datos recogidos por dispositivo vinculados a una decisión de tratamiento. Un montón de puntos clave no es facturable. Una determinación documentada y auditable sí lo es.

Esa brecha no es pequeña, porque el problema de fondo no es pequeño. La adherencia a ejercicios en casa de fisioterapia ronda el 35 por ciento, y el 65 por ciento de los pacientes abandona su programa en el primer mes (investigación Veriprajna WP29, 2026). El autoinforme sobrestima el cumplimiento, así que el clínico a menudo factura y trata con datos en los que no puede confiar. Del lado del empleador, las afecciones musculoesqueléticas cuestan aproximadamente 3.591 dólares por empleado al año, se considera que un 36 por ciento estimado de las cirugías MSK son innecesarias (90.000 millones de dólares), y más de la mitad de los empleados se resiste a compartir datos de salud por privacidad (investigación Veriprajna WP29, 2026). Datos de ejercicio verificados, seguros para la privacidad y facturables son lo que falta a todo el mundo en esa cadena.

Así que lo último que hace el motor por sesión es decidir: facturable, necesita revisión del clínico, o datos de dispositivo insuficientes, y exporta un informe de sesión con forma FHIR. Observaciones por repetición, la cláusula de umbral comprobada para cada una, el resumen de sesión, la determinación de RTM y los campos de documentación que CMS pide. Digo con forma FHIR, nunca validado como FHIR, porque es JSON estructurado que refleja las formas de campo Observation y DocumentReference, no una carga enviada a un EHR en vivo. Lo emito. No pretendo hacerle POST.

La sesión de María, con la marca de valgo en la repetición 9, no se factura automáticamente. Se deriva primero a un clínico, porque una señal de nueva lesión debería verla un humano antes de convertirse en un cargo. Ese es el matiz honesto en el que insistí: facturable no significa que todo esté bien, significa documentado lo bastante bien como para respaldarlo.

Resumen del benchmark de Kinetiq: 100 por ciento de acuerdo en veredictos en 25 casos claros, 100 por ciento en 10 casos límite dentro de una sigma de un umbral, 3 de 3 repeticiones ocluidas se abstuvieron con 0 ángulos fabricados, y 3 de 4 sesiones autofacturables con 1 derivada a revisión
El benchmark sobre el conjunto sintético etiquetado fijo: 100 por ciento de acuerdo en veredictos en 25 casos claros y en 10 casos límite (dentro de aproximadamente una sigma de un umbral), 3 de 3 repeticiones ocluidas se abstuvieron con 0 ángulos fabricados, y entre 4 sesiones, 3 autofacturables y 1 derivada a revisión.

Los números de ese panel son los que me importan, y quiero ser preciso sobre su alcance. La verdad de referencia aquí es el veredicto implicado por los parámetros físicos plantados frente a los umbrales del perfil, calculado de forma independiente del motor, y luego las repeticiones se renderizan a puntos clave con ruido de medición añadido después de fijar las etiquetas, de modo que el motor tiene que recuperar el veredicto a través del ruido. En ese conjunto el acuerdo es del 100 por ciento en 25 casos claros y del 100 por ciento en 10 casos límite situados dentro de aproximadamente una desviación estándar de un umbral. Eso es un resultado de capacidad discriminativa en un conjunto sintético etiquetado, no una garantía de mundo abierto, y los casos límite son los que cambiarían de veredicto con un umbral ingenuo, que es exactamente por lo que los informo por separado. Son medidas durables: precisión de la tarea, rendimiento de automatización y honestidad. No envejecen cuando mejora el modelo de pose, porque ninguna de ellas es una tasa de error del modelo de pose.

La pregunta con la que me quedo

Entré en esto pensando que estaba construyendo un producto de visión por computadora, y lo termino convencido de que construí un producto de responsabilidad que resulta empezar con una cámara. El trabajo interesante nunca fue obtener los puntos clave. Fue decidir qué se le permite afirmar al sistema, cuándo debe abstenerse, de quién son los umbrales que aplican, y qué puede respaldar un clínico con su licencia. Si quieres ver al motor calificar una rodilla que se hunde, rechazar una repetición ocluida y exportar el recibo, funciona sin clave en veriprajna.com/es/demos/verificacion-de-ejercicio-con-biomecanica-de-ia-y-prueba-rtm.

Y si prefieres verlo a que yo te lo describa, aquí está todo el sistema funcionando de extremo a extremo.

La pregunta que sigo dándole vueltas, y la que genuinamente me gustaría que otros constructores discutieran conmigo, es esta. A medida que los sensores se acerquen asintóticamente a la perfección, la tentación será dejar que el modelo decida más, porque rara vez se equivocará. Pero equivocarse rara vez es exactamente la condición bajo la cual un número fabricado hace más daño, porque has dejado de comprobar. Así que ¿dónde, en tus propios sistemas, está la línea que te niegas a dejar que el modelo cruce, y puedes señalar el código que la impone?

Investigación relacionada

Construya su IA con confianza.

Colabore con un equipo que cuenta con amplia experiencia en la creación de la próxima generación de IA empresarial. Permítanos ayudarle a diseñar, construir e implementar una estrategia de IA en la que pueda confiar.

Veriprajna consultora de Deep Tech está especializada en la creación de sistemas de IA críticos para la seguridad en los sectores de salud, finanzas y ámbitos regulatorios. Nuestras arquitecturas se validan conforme a protocolos establecidos, con documentación de cumplimiento integral.