π ModalitΓ Gaze
Eye tracking con webcam (MediaPipe Iris) o Tobii ET5. Muovi il cursore con lo sguardo.
π‘ Provider (sorgente dell'eye tracking)
Usa la webcam esistente. Seaclic stima la posizione dell'iride con
MediaPipe Iris, poi una regressione polinomiale calibrata
converte le coordinate dell'iride in coordinate schermo.
Non richiede hardware aggiuntivo. Precisione media (~30β60 px su 1080p),
sufficiente per la maggior parte delle attivitΓ .
Eye tracker dedicato con infrarossi. Precisione molto piΓΉ alta (~5β15 px)
e meno sensibile all'illuminazione ambientale.
Richiede il Tobii Experience software (gratuito) installato e configurato.
Seaclic si connette tramite la Stream Engine DLL di Tobii.
π₯οΈ ModalitΓ di output
Il Gaze puΓ² muovere diverse cose a seconda dell'output scelto nelle impostazioni:
| Output | Descrizione | Uso tipico |
|---|---|---|
| Cursore mouse | Lo sguardo muove il puntatore del mouse sullo schermo | Navigazione generale, accessibilitΓ |
| Joystick analogico (LS/RS) | Lo sguardo muove uno stick del controller virtuale in modo analogico | Mira in FPS, controllo visuale in giochi 3D |
| D-Pad digitale | Lo schermo Γ¨ diviso in 4 quadranti; guardare in uno β D-Pad in quella direzione | Navigazione menu, giochi con input direzionale |
| Nessuno (solo Eye Button) | Il gaze non muove nulla, ma gli Eye Button rimangono attivi | Uso degli Eye Button senza interferire col cursore |
π― Calibrazione (solo provider webcam)
La calibrazione a 9 punti addestra il modello a mappare la posizione dell'iride verso le coordinate corrette sullo schermo. Va ripetuta se cambi posizione, illuminazione o se indossi/togli gli occhiali.
Introduzione
Una schermata spiega il processo. Siediti comodamente con la webcam che ti riprende centralmente.
Raccolta punti (9 punti Γ 45 frame)
Un punto rosso appare in una posizione dello schermo alla volta. Fissalo con lo sguardo finchΓ© diventa verde (~ 1,5 secondi per punto). Si ripete per tutti e 9 i punti (angoli, bordi, centro).
Test
Appare un cursore gaze. Muovi gli occhi in vari punti dello schermo per verificare la precisione. Se soddisfacente, conferma; altrimenti ricomincia.
Salvataggio profilo
Il modello di calibrazione viene salvato nel profilo gaze corrente.
π Profili di calibrazione
Ogni calibrazione viene salvata come profilo in seaclic_gaze_calibration_profiles.json.
Puoi avere profili diversi per contesti diversi:
Calibrazione con gli occhiali da vista β le lenti cambiano la posizione percepita dell'iride.
Calibrazione con illuminazione diversa (lampada da tavolo vs. luce naturale).
Calibrazione in posizione reclinata β l'angolazione della webcam Γ¨ diversa.
Seleziona il profilo attivo dalla scheda Gaze nelle impostazioni. I profili sono esportabili/importabili in JSON.
π Eye Button (bottoni a schermo)
Gli Eye Button sono bottoni visibili sullo schermo che si attivano quando li fissi con lo sguardo per un breve tempo (dwell). Non richiedono nessuna interazione fisica.
Come si usano
- Crea un Eye Button dalla scheda Eye Button nelle impostazioni (o dal pannello Eye Button).
- Assegna un'azione al bottone (qualsiasi tipo di azione Seaclic β tastiera, IR, TTS, ecc.).
- Posiziona e ridimensiona il bottone nello spazio desiderato.
- Con il Gaze attivo, fissa il bottone: dopo il periodo di dwell (150 ms grace + ~500 ms dwell), l'azione viene eseguita.
Edit mode
Attiva la modalitΓ edit per spostare e ridimensionare i bottoni con il mouse. In edit mode i bottoni non si attivano col dwell (non sparerebbero azioni per sbaglio durante il riposizionamento).
| Parametro | Default | Descrizione |
|---|---|---|
| Tempo dwell | 500 ms | Quanto a lungo fissare il bottone per attivarlo |
| Grace period | 150 ms | Tempo iniziale ignorato: il timer inizia solo dopo che lo sguardo Γ¨ rimasto sul bottone per piΓΉ di questo valore (evita attivazioni istantanee per sguardi di passaggio) |
| Cooldown | 800 ms | Tempo di attesa dopo un'attivazione prima che il bottone possa riattivarsi |
π Blink-Click
Il blink-click converte un ammicco volontario di un singolo occhio in un click sinistro nella posizione dello sguardo. I normali battiti di ciglia (bilaterali, veloci, involontari) vengono ignorati.
Come funziona
- Chiudi un solo occhio volontariamente per 100β400 ms (configurabile).
- L'altro occhio deve restare aperto durante l'ammicco.
- Seaclic rileva che stai chiudendo un solo occhio (non un normale battito bilaterale) e genera un click sinistro.
- Dopo l'attivazione, c'Γ¨ un cooldown di 500 ms prima che un altro blink-click possa scattare.
| Parametro | Default | Descrizione |
|---|---|---|
| Durata min ammicco | 100 ms | Ammicchi piΓΉ brevi vengono ignorati (battiti normali) |
| Durata max ammicco | 400 ms | Ammicchi piΓΉ lunghi vengono ignorati (potrebbe essere un'occhiata lunga) |
| Cooldown | 500 ms | Tempo min tra due blink-click consecutivi |
π‘οΈ Heatmap debug
L'overlay heatmap mostra una mappa di densitΓ dei punti gaze rilevati negli ultimi secondi. Γ uno strumento di debug per verificare la precisione della calibrazione: se la heatmap Γ¨ centrata sui punti che stai fissando, la calibrazione Γ¨ buona.
π Condivisione webcam con Tracking
Se sia Tracking che Gaze usano la stessa webcam, Seaclic la apre una sola volta e condivide il feed tra i due thread. Questo riduce il consumo CPU e previene conflitti di accesso al device.
I due thread operano in modo indipendente a ~30 FPS ciascuno, con risorse condivise:
- La webcam viene aperta dal primo thread che la richiede.
- Il secondo thread riceve gli stessi frame senza aprire un secondo stream.
- Alla chiusura dell'ultimo thread, la webcam viene rilasciata.