Multi functional (/Hi)Eye

E' uscita la versione 1.1 del progetto MuHi, prima release ufficiale con tante novità e upgrade..!

Posted by MrMoDDoM

La principale novità è che ora MuHi è un processo stand-alone che si preoccupa di avviare l'applicazione desiderata e di monitorarne la chiusura.

Installazione

Per voi utenti Windows è disponibile un file zip con la versione precompilata: scaricate da questo link l'ultima versione

Voi utenti Linux dovrete prima scaricare e installare le librerie OpenCV e XDo, nulla di più facile usando: sudo apt-get install libopencv-dev python-opencv libxdo-dev Per poi scaricare il codice sorgente di MuHi da GitHub: git clone https://github.com/MrMoDDoM/MuHi.git Spotatevi nella cartella con cd MuHi e lanciate il comando ./compile.sh per compilare. Una volta terminato usate ./Muhi -p [program] per avviare il sistema.

Sono in oltre disponibili alcuni comandi da terminale, per una lista completa aprite la pagina ufficiale su GitHub

Obbiettivi:

Il progetto MuHi prende come obbiettivo principale la facile realizzazione da parte di chiunque (non solo in termini di praticità ma anche sotto l'aspetto dei costi) di un sistema di interazione uomo-macchina basato unicamente sullo sbattito delle palpebre.
Pensato principalmente per l'utilizzo da parte di pazienti tetraplegici, MuHi può non solo essere utilizzato come strumenti di videoscrittura ma anche come controller per videogiochi o più in generale di applicativi appositamente pensati.
Il codice è distribuito OpenSource sotto licenza GNU/GPLv3, per poter funzionare richiede solamenta una webcam!
Come prima funzionalità implementata troviamo la video scrittura, ma MuHi prevederà presto sistemi di svago e di più ampia interazione con il computer: a tal proposito non è al momento prevista l'interazione con il mouse e la tastiera come siamo normalmente abiutuati. Questa decisione parte dal fatto che questi dispositivi (e relative applicazioni) sono state pensate e disegnate per l'interazione tramite la mani, non tramite gli occhi! ;)

Funzionamento del programma Writer:

Il concetto di come funziona il programma di esempio "Writer" è molto semplice: tramite lo sbattito delle palpebre (come per fare l'occhiolino) è possibile impartire comandi e avere interazione con il sistema. In questa prima versione è stato codificato per permettere la video scrittura tramite una semplice interfaccia utente, dove un selettore (rettangolo rosso) si sposta continuamente in maniera autonoma, permettendo con la chiusura dell'occhio DESTRO di selezionare ciò che in quel momento è evidenziato.
Con la chiusura dell'occhio SINISTRO possiamo cambiare direzione del selettore, cosicché se avessimo mancato l'opzione desiderata possiamo tornare indietro invece che aspettare che il selettore faccia il giro completo!

Il selettore segue questa logica: anzi tutto si sposta tra i due maxi schemi, quello di sinistra contenente le lettere dell'alfabeto più qualche simbolo di punteggiatura (spazio, virgolo, ecc), e quello di destra contenente comandi:

  • ENTER per cancellare l'intera frase (in un futuro servirà a far pronunciare al pc le parole scritte)
  • CANC per cancellare solo l'ultimo carattere inserito, comodo per quando si sbaglia qualcosa...!
  • YES e NO come risposte veloci, così da non dover aspettare per rispondere
  • PAUSE per mettere il sistema in pausa, così da non scrivere mentre si fa altro ( per disattivare la pausa, basta ri-selezionare questa opzione)

Una volta selezionato il maxi-schema desiderato (sinistra o destra), il selettore inizierà a scorrete le sotto opzioni e nel caso delle lettere, farà passare le righe per poi, una volta selezionata quella desiderata, scorrerà sulle lettere.
Il selettore compie un giro completo passando dall'ultima opzione dello schema di sinistra alla prima dello schema di destra (quindi dalla virgola a INVIO e da PAUSA alla lettera "A"), e viceversa, pure con la direzione invertita.
Attenzione, finchè non si seleziona qualcosa, il selettore continuerà la sua corsa! E quindi conveniente selezionare qualsiasi cosa per poi magari cancellarla subito dopo, così da ridurre il tempo di attesa!

Un consiglio: cercate di essere precisi e di anticipare un attimo la chiusura dell'occhio poco prima dell'opzione effettivamente desiderata...!

Comandi del programma Writer:

Il programma Writer mette a disposizione alcuni comodi comandi per modificarne il funzionamento, eccoli riportati qui sotto:

  • ESC per uscire dal programma
  • +/- per aumentare o diminuire la velocità di traslazione del selettore
  • A/S per aumentare o diminuire la sensibilità ai movimenti della palpebra
  • C/V per aumentare o diminuire la quantità di occhio rilevato

...nulla di più semplice!

Ma cerchiamo di usare qualche accorgimento: nonostante il sistema si abbastanza stabile e con un buon sistema di compensazione delle ombre, è sempre meglio utilizzarlo in una stanza ben illuminata senza fonti di luce troppo intense, che possano mettere in ombra solo una parte del volto.

Inoltre è meglio ne sovraesporre ne sottoesporre il viso dell'utente.. per intenderci evitare di avere fonti di luce davanti o dietro la testa!

Future implementazioni:

Il progetto cerca attualmente sviluppatori e disigner per contribuire non solo allo sviluppo tecnico e estetico del programma, ma anche per pensare ad applicativi di comune utilizzo (calcolatrice o videogiochi), studiati affinché vi si possa interagiore con solo "due tasti".
Per esempio proviamo a immaginare di voler utilizzare una calcolatrice con lo stesso sistema di "input a selettore mobile" utilizzato attualmente per la scrittura; oppure il comune gioco del Sudoku, sempre con lo stesso sistema di selezione delle cellette..
Chiunque avesse idee (anche senza la capacità di realizzarle informaticamente) è invitato a creare un proof-of-concept e inviarcela per studiarne la realizzazione!

Segnaliamno inoltre la presenza di una Jam Session di sviullpo di videogiochi MuHi ready al seguente indirizzo: in futuro ne pubblicheremo delle altre, quindi non preoccupatevi se l'avete mancata! :D

Feedback e contatti:

Feedback e consigli vanno inviati direttamente allo sviluppatore all'indirizzo - danielebarattieri [ at ] gmail.com, o aprendo un issue sulla pagina GitHub del progetto.