Guía técnica

Reconocimiento de gestos con WiFi CSI: cómo construirlo, entrenarlo y validarlo

El reconocimiento de gestos con WiFi CSI puede clasificar movimientos de manos o del cuerpo sin cámara, pero solo si se tratan como parte del experimento la señal, las etiquetas, el hardware y la división de prueba. Esta guía explica qué construir primero y cómo evitar llamar general a una demo que solo funciona en una habitación.

Una persona hace un gesto mientras las rutas de señal WiFi se convierten en una onda CSI y en clases de gestos
El reconocimiento de gestos empieza con cambios en un canal de radio y termina con un modelo que debe probarse fuera de la habitación de entrenamiento.

La respuesta corta es sí: el channel state information puede contener cambios repetibles causados por un gesto, y un clasificador puede aprenderlos. La dificultad no está en dibujar una onda. Está en recopilar suficientes paquetes representativos, mantener estable el transmisor y el receptor, definir etiquetas que una persona pueda repetir y demostrar que el modelo reconoce el gesto en vez de reconocer la habitación, al participante o una sesión concreta.

Un primer proyecto útil tiene un vocabulario estrecho: deslizar a la izquierda, deslizar a la derecha, empujar, tirar y reposo, por ejemplo. Registra CSI con el mismo hardware y configuración de paquetes, separa la calibración de las ventanas de gesto y evalúa con una persona o una habitación que no se usó durante el entrenamiento. Si solo necesitas presencia o movimiento general, las guías de presencia y movimiento WiFi son más adecuadas; el reconocimiento de gestos necesita etiquetas específicas y una validación más estricta.

Este artículo conecta la captura práctica con datasets de investigación como WIDAR3 y SignFi, y explica dónde encajan ESP32 CSI, las herramientas CSI de Linux y el código de modelos open source. La idea central es sencilla: cada predicción debe relacionarse con una fuente de señal conocida, una etiqueta reproducible y una división de prueba que mida el fallo que realmente te importa.

Qué reconoce realmente el reconocimiento de gestos con WiFi CSI

El CSI describe cómo cambia un canal inalámbrico entre subportadoras, antenas, paquetes y tiempo. Una mano en movimiento altera la propagación múltiple y las relaciones de fase de una forma que puede repetirse en una instalación concreta. El modelo no ve un gesto con lenguaje humano: ve una ventana temporal de mediciones después de filtrar paquetes, calibrar, normalizar y extraer características. La clase final es una inferencia sobre esa ventana, no una imagen directa de la persona.

Mantén la tarea más estrecha que el lenguaje de marketing. Un experimento con cinco gestos, un vocabulario de lengua de signos y un reconocedor de actividad en una habitación necesitan datos distintos. Un modelo que separa gestos de un participante en una habitación puede fallar cuando cambia la persona, se mueve el receptor, aparece un mueble o aumenta el tráfico de radio. El artículo debe declarar esos límites en vez de presentar un clasificador sin cámara como percepción universal.

  • Buena primera tarea: 3–6 gestos deliberados más una clase de reposo o desconocido.
  • Salida útil: clase, confianza y estado desconocido cuando la ventana es ambigua.
  • No supongas que un router expone CSI bruto solo porque anuncia sensado WiFi.
  • Presencia, movimiento, pose, identidad y gestos son tareas relacionadas, pero distintas.

El flujo desde la captura hasta la clase

Un flujo reproducible empieza con una fuente de paquetes, un receptor compatible con CSI, una colocación fija y una configuración de canal documentada. La captura debe conservar marcas de tiempo y metadatos suficientes para saber qué participante, gesto, distancia, antenas y condición de habitación produjeron cada ventana. Guarda los datos crudos o mínimamente procesados antes de probar filtros para poder auditar después un resultado prometedor.

El preprocesado forma parte del límite del modelo. Elimina paquetes corruptos, alinea o interpola la serie solo cuando esté justificado, normaliza amplitudes con cuidado y separa las transformaciones de entrenamiento de las de prueba. Si un filtro usa información de toda la grabación, puede filtrar la respuesta hacia la evaluación. Empieza con una línea base transparente antes de añadir arquitecturas neuronales complejas.

Flujo editorial desde la captura WiFi CSI y la limpieza de señal hasta las etiquetas de gestos y las clases del modelo
Un modelo de gestos es una cadena: capturar, limpiar, etiquetar, entrenar y evaluar. Un eslabón débil puede parecer después un problema del modelo.
Etapa Qué registrar Fallo frecuente
Captura Paquetes CSI, marcas de tiempo, canal, antenas y habitación Una demo de conectividad sin CSI utilizable
Limpieza Calidad de paquetes, valores ausentes y calibración Un filtro que elimina el gesto o filtra datos de prueba
Etiquetas Nombre, inicio, final, participante y repetición Ventanas imprecisas con movimientos distintos
Entrenamiento Transformación, división, semilla y versión del modelo Ventanas de una sesión en entrenamiento y prueba
Evaluación Persona, habitación, día y casos desconocidos Informar solo la precisión dentro de una sesión

Hardware: empieza por el acceso a CSI, no por la etiqueta comercial

ESP32 CSI es un punto de partida económico cuando se documentan la placa, el firmware, la versión de ESP-IDF, la fuente de paquetes y las antenas. Los ejemplos esp-csi de Espressif son útiles porque muestran la captura, pero una placa ESP32 no es un sensor de gestos terminado. También necesitas un transmisor estable, un callback o registrador de recepción, una ventana temporal, etiquetas, un modelo y una evaluación.

Un portátil Linux con una tarjeta compatible puede ofrecer otra ruta de captura, mientras que una Raspberry Pi puede alojar el registro, la inferencia o una pantalla sin convertirse automáticamente en receptor CSI. Al comparar proyectos, clasifícalos como herramientas de captura, datasets, demos de visualización, código de modelo o aplicaciones completas. Así evitarás confundir una captura de repositorio pulida con un sistema reproducible de extremo a extremo.

  • Confirma que la placa o NIC exacta expone CSI, no solo RSSI o una función comercial de sensado.
  • Registra firmware, controlador, ancho de canal, muestreo, antenas y fuente de paquetes.
  • Mantén fija la posición del transmisor y del receptor durante la primera línea base.
  • Usa las guías de ESP32 CSI y de proyectos open source cuando la ruta de hardware no esté clara.

Datasets y etiquetas: WIDAR3, SignFi y tu propia habitación

Los datasets públicos ayudan a comparar preprocesado y modelos antes de construir un sistema de captura completo. WIDAR3 sirve para estudiar representaciones de gestos o actividades WiFi entre personas y lugares, mientras que SignFi está relacionado con el reconocimiento de signos mediante WiFi. Un benchmark puede demostrar que tu código funciona, pero sus dispositivos, muestreo, etiquetas y entorno quizá no coincidan con tu hardware. Trata la precisión publicada como referencia, no como promesa para tu habitación.

Necesitarás datos propios cuando importe el entorno de despliegue. Define cada gesto con una instrucción breve, recopila repeticiones a distintas velocidades, incluye movimientos accidentales y conserva los identificadores de persona y sesión. Divide por participante o sesión antes de crear ventanas siempre que sea posible. Si ventanas adyacentes de una misma grabación aparecen en entrenamiento y prueba, la puntuación puede medir memorización de un segmento y no generalización.

Ruta de datos Mejor uso Precaución
Dataset público de gestos Reproducir un paper o probar una línea base Hardware, habitación, etiquetas y muestreo pueden cambiar
Captura controlada pequeña Comprobar si el hardware responde Es fácil sobreestimar con un participante
Captura de varias sesiones Medir deriva de día, habitación y persona Necesita metadatos y divisiones estrictas
Flujo parecido al despliegue Probar latencia, desconocidos y pérdida de paquetes La precisión sola no mide fiabilidad

Preprocesado y entrenamiento del modelo

Empieza con una línea base que el lector pueda inspeccionar: características de amplitud o fase, una ventana fija, un clasificador simple y una matriz de confusión. Después compara capas convolucionales, modelos recurrentes, atención o representaciones tiempo-frecuencia. La comparación útil no es solo qué modelo gana en una división; también es qué representación sigue siendo comprensible cuando cambia la habitación o la persona.

No conviertas la augmentación en una afirmación oculta sobre la física. Inyectar ruido, cambiar el tiempo, ocultar canales o normalizar amplitud puede mejorar robustez, pero no sustituye la variación real. Reserva una sesión final y no la toques hasta cerrar el flujo. Informa del equilibrio de clases, macro-F1 o recall por clase, latencia, falsas activaciones en reposo y gestión de desconocidos.

  • Haz la división por sesión o participante antes de crear ventanas solapadas.
  • Aprende los parámetros del preprocesado solo con los datos de entrenamiento.
  • Revisa la confusión entre gestos visualmente parecidos y la clase de reposo.
  • Registra latencia, pérdida de paquetes, falsas activaciones y predicciones desconocidas junto a la precisión.

Cómo validar entre personas y habitaciones

La prueba más importante normalmente no es otra ventana aleatoria de la misma grabación. Pregunta si un nuevo participante, una habitación distinta, un receptor movido, otro día o un movimiento de fondo rompen el clasificador. Un plan de validación sólido nombra el límite de despliegue y crea una división que lo represente. Si el modelo solo está diseñado para una persona y una habitación fija, dilo y evita afirmaciones generales.

Usa la misma instrucción para el gesto en cada sesión, pero no obligues a que sean idénticos el ritmo y la postura. Añade casos negativos como pasar frente al enlace, un ventilador, una puerta, una mascota y una habitación vacía cuando sean plausibles. Compara recall por clase y falsas alarmas, y revisa fallos representativos. Un modelo algo menos preciso que puede declarar desconocido puede ser más prudente que uno que adivina en cada ventana.

  • División dentro de una sesión: útil para depurar, débil para demostrar preparación de despliegue.
  • Persona no vista: prueba si el modelo aprendió el estilo de movimiento de alguien.
  • Habitación o día no visto: prueba multipath y deriva ambiental.
  • Casos negativos y desconocidos: prueban si el sistema puede negarse a clasificar.
Dos habitaciones y participantes diferentes conectados por trazas WiFi para ilustrar la validación entre entornos
La prueba entre personas y habitaciones pregunta si el mismo gesto sigue siendo reconocible cuando cambia el canal de radio.

Límites, privacidad y un siguiente paso razonable

El reconocimiento de gestos CSI depende de geometría, hardware, firmware, tráfico del canal, paredes, muebles y comportamiento de las personas. El mismo gesto puede producir trazas distintas en otra habitación, y un movimiento ajeno puede parecerse a una clase entrenada. No debe describirse como sustituto de una cámara, sistema de identidad, sistema médico o sistema de seguridad sin evidencia específica y salvaguardas independientes.

El sensado de radio también puede revelar ocupación, movimiento y rutinas aunque no se almacene vídeo. Explica qué se recoge, prioriza el procesamiento local, conserva el CSI bruto solo mientras sea necesario y avisa cuándo el sensado está activo. Como siguiente paso práctico, empieza por la guía de hardware CSI, elige un dataset público o una captura local de cinco clases y escribe la división por persona y habitación antes de entrenar el primer modelo.

  • Trata el vocabulario, la habitación, las personas y el hardware como parte de la especificación.
  • No infieras identidad, salud o actividad oculta a partir de un clasificador de gestos.
  • Mantén un estado desconocido y un sensor independiente para acciones de alto riesgo.
  • Relaciona cada puntuación con una división de datos, sesiones y definición de fallo.

Referencias técnicas primarias

Preguntas frecuentes sobre gestos con WiFi CSI

¿El reconocimiento de gestos con WiFi CSI es lo mismo que la detección de movimiento?

No. La detección de movimiento pregunta si ocurrió un cambio; el reconocimiento de gestos asigna una ventana a varias clases definidas. Un detector de movimiento sirve como línea base, pero no demuestra que se distingan gestos.

¿Puede un ESP32 reconocer gestos por sí solo?

Un ESP32 con una ruta CSI compatible puede recoger mediciones útiles, pero el reconocimiento necesita fuente de paquetes, colocación estable, preprocesado, etiquetas, modelo y validación. La placa es un componente de captura, no un sensor terminado automáticamente.

¿Cuántos gestos debería tener el primer dataset?

Empieza con tres a seis gestos deliberados y una clase de reposo o desconocido. Un vocabulario pequeño permite etiquetar y analizar fallos. Añade clases después de probar nuevas sesiones y participantes.

¿Cuál es el mejor dataset de gestos WiFi CSI?

No existe un dataset universalmente mejor. Elige uno cuyo hardware, vocabulario, muestreo y diversidad de personas o habitaciones coincidan con tu pregunta. Los datasets públicos sirven para reproducir; el despliegue necesita datos locales.

¿Por qué el modelo funciona en una habitación y falla en otra?

El CSI depende de multipath, geometría de antenas, muebles, personas, tráfico del canal y posición de los dispositivos. Si la división no incluye cambios de habitación o participante, el modelo puede aprender el entorno y no una representación portable.

¿Puede identificar a una persona o diagnosticar su salud?

Un clasificador de gestos no debe tratarse como sistema de identidad o médico. Esas afirmaciones necesitan tareas, consentimiento, controles de privacidad y validación independiente. Limita la salida al vocabulario probado y muestra desconocido cuando la señal sea ambigua.