Guida tecnica

Riconoscimento dei gesti con WiFi CSI: costruire, addestrare e validare

Il riconoscimento dei gesti con WiFi CSI può classificare alcuni movimenti della mano o del corpo senza una telecamera, ma solo se percorso radio, etichette, hardware e test vengono trattati come un unico esperimento.

Una persona esegue un gesto mentre il segnale WiFi diventa una forma d'onda CSI e classi di gesti
Il riconoscimento parte dalle variazioni del canale radio e termina con un modello testato oltre la stanza usata per l'addestramento.

Sì, il Channel State Information può contenere variazioni ripetibili causate da un gesto e un classificatore può impararle. La difficoltà non è disegnare un'onda, ma raccogliere pacchetti rappresentativi, mantenere stabile la configurazione, definire etichette ripetibili e dimostrare che il modello non ha memorizzato solo persona, stanza o sessione.

Un primo progetto dovrebbe limitarsi a tre-sei gesti intenzionali, più riposo o sconosciuto. Conserva orari, persona, sessione, distanza e condizioni della stanza, poi prova una persona o una stanza assente dal training. Per presenza o movimento generico, le guide dedicate sono più appropriate.

WIDAR3 e SignFi sono utili per confrontare preprocessing e modelli, ma dispositivi, campionamento e ambienti possono essere diversi. Ogni risultato deve essere legato a una sorgente del segnale, a una regola di etichettatura e a uno split di test chiaro.

Che cosa riconosce davvero il WiFi CSI

Il CSI descrive come il canale radio cambia tra sottoportanti, antenne e tempo. Una mano in movimento modifica i percorsi multipli e i rapporti di fase. Il modello non vede un gesto comprensibile: vede una finestra di misure dopo pulizia, calibrazione, normalizzazione ed estrazione delle caratteristiche.

Un compito con cinque gesti, un vocabolario di lingua dei segni e il riconoscimento di attività in una stanza sono problemi diversi. Un'elevata accuratezza con una persona e una stanza non dimostra la portabilità.

  • Iniziare con tre-sei gesti e una classe riposo o sconosciuto.
  • Restituire classe, confidenza e stato sconosciuto per finestre ambigue.
  • Separare presenza, movimento, posa, identità e gesto nella specifica.

Dalla cattura alle classi di gesto

Una pipeline riproducibile documenta sorgente dei pacchetti, ricevitore CSI, antenne, canale e stanza. Conserva timestamp, partecipante, gesto, distanza e sessione prima di aggiungere filtri complessi.

Il preprocessing definisce il confine del modello. Rimuovi pacchetti corrotti, normalizza con attenzione e impara i parametri solo dai dati di training. Un filtro calcolato sull'intera registrazione può far trapelare informazioni dal test.

  • Conservare dati grezzi o poco elaborati per l'audit.
  • Registrare firmware, canale, banda, antenne e cadenza dei pacchetti.
  • Separare le sessioni prima di creare finestre sovrapposte.
Flusso dalla cattura CSI WiFi alla pulizia, alle etichette e alle classi di gesto separate
Cattura, pulizia, etichettatura, training e valutazione sono una catena: una debolezza iniziale può sembrare un problema del modello.

Hardware: verificare l'accesso CSI, non solo il nome commerciale

Un ESP32 compatibile con CSI è un punto di partenza economico se scheda, versione ESP-IDF, firmware, sorgente dei pacchetti e antenne sono documentati. La scheda è un componente di cattura, non un sensore di gesti completo.

Un laptop Linux con una scheda compatibile offre un altro percorso. Un Raspberry Pi può ospitare log, inferenza o visualizzazione senza essere automaticamente un ricevitore CSI. Classifica i progetti come strumento di cattura, dataset, codice modello o applicazione.

  • Confermare la disponibilità del CSI reale, non solo dell'RSSI.
  • Fissare trasmettitore, ricevitore, canale e distanza per la baseline.
  • Usare la guida ESP32 CSI quando il percorso hardware non è chiaro.

Dataset ed etichette: WIDAR3, SignFi e la propria stanza

I dataset pubblici aiutano a riprodurre lavori e confrontare il preprocessing. WIDAR3 e SignFi forniscono contesto di ricerca, ma hardware, campionamento, etichette e ambienti possono differire dal tuo sistema.

Per l'uso reale servono più sessioni, velocità diverse, riposo, movimenti casuali e casi negativi. Conserva gli identificativi di persona e sessione e dividi i dati prima di creare finestre sovrapposte.

  • Usare un'istruzione breve e identica per ogni gesto.
  • Includere ventilatore, porta, animale, passaggio e stanza vuota come disturbi.
  • Non presentare l'accuratezza pubblicata come garanzia per la propria stanza.

Preprocessing e addestramento del modello

Parti da una baseline trasparente: caratteristiche di ampiezza o fase, finestra fissa, classificatore semplice e matrice di confusione. Solo dopo confronta reti convoluzionali, ricorrenti o con attenzione.

L'augmentation può aumentare la robustezza ma non sostituisce la variazione reale. Tieni da parte una sessione finale e riporta macro-F1, recall per classe, latenza, predizioni sconosciute e falsi trigger nello stato di riposo.

  • Dividere per sessione o partecipante prima delle finestre sovrapposte.
  • Controllare la confusione tra gesti simili e classe riposo.
  • Imparare i parametri di preprocessing solo dal training.

Validare tra persone e stanze

Il test più importante spesso non è un'altra finestra della stessa registrazione. Prova nuove persone, stanze, giorni, posizioni del ricevitore e movimenti negativi realistici per l'uso previsto.

Mantieni uguale l'istruzione, ma permetti velocità e postura naturali. Confronta recall per classe, falsi allarmi e fallimenti rappresentativi. Uno stato sconosciuto è meglio di una classe sicura per ogni finestra.

  • Lo split nella stessa sessione serve al debug, non a provare la generalizzazione.
  • Lo split per persona verifica se il modello ha imparato uno stile individuale.
  • Casi negativi e sconosciuti verificano se il sistema sa rifiutare una classe.
Due stanze e partecipanti collegati da tracce WiFi per illustrare la validazione tra ambienti
Cambiare persone e stanze verifica se lo stesso gesto resta riconoscibile quando cambia il canale radio.

Limiti, privacy e prossimo passo

Il CSI dipende da geometria, firmware, traffico radio, pareti, mobili, antenne e persone. Lo stesso gesto può cambiare in un'altra stanza e un movimento estraneo può sembrare una classe addestrata. Non descrivere il classificatore come telecamera, riconoscimento dell'identità o sistema medico senza prove specifiche.

Anche senza telecamera, il sensing radio può rivelare presenza, movimento e routine. Preferisci elaborazione locale, conservazione breve, consenso e stato sconosciuto. Per iniziare, scegli una cattura ESP32 o un dataset pubblico e definisci lo split per persona e stanza prima del training.

  • Trattare vocabolario, stanza, persone e hardware come specifica del sistema.
  • Non dedurre identità, salute o attività nascosta.
  • Collegare ogni metrica allo split, al numero di sessioni e alla definizione di errore.

Riferimenti tecnici principali

FAQ sul riconoscimento dei gesti con WiFi CSI

Il riconoscimento dei gesti è uguale al rilevamento del movimento WiFi?

No. Il rilevamento cerca un cambiamento, mentre il riconoscimento assegna una finestra a una tra più classi definite.

Un ESP32 può riconoscere gesti da solo?

Un ESP32 compatibile può catturare il CSI, ma servono anche sorgente dei pacchetti, etichette, preprocessing, modello e validazione.

Quanti gesti deve avere il primo dataset?

Tre-sei gesti più riposo o sconosciuto sono un inizio gestibile. Aggiungi classi solo dopo test con nuove sessioni e persone.

Qual è il miglior dataset di gesti WiFi CSI?

Non esiste un dataset migliore per tutti. Scegli hardware, vocabolario, campionamento e diversità coerenti con la domanda, poi raccogli dati locali per l'impiego.

Perché il modello funziona in una stanza e fallisce in un'altra?

Percorsi multipli, mobili, antenne, traffico e persone cambiano il CSI. Senza test tra stanze il modello può imparare l'ambiente invece del gesto.

Il WiFi CSI può identificare una persona o diagnosticare la salute?

Un classificatore di gesti non dovrebbe essere usato così. Servono compiti specifici, prove, consenso, controlli di privacy e validazione indipendente.