banner

Notizia

Apr 27, 2024

Premio Hackaday 2023: EyeBREAK potrebbe essere una svolta

Per chi soffre di ictus o altre condizioni debilitanti, il controllo della palpebra può essere una delle ultime funzioni motorie rimaste. Ispirandosi al battito di ciglia di [Jeremiah Denton] in codice Morse durante un'intervista televisiva, [MBW] ha progettato un dispositivo basato su ESP32 per decodificare i battiti di ciglia in parole.

Sebbene un ESP32 offra il Bluetooth per simulare una tastiera e abbia un assorbimento di potenza relativamente basso, ottenere un corretto sistema di rilevamento dei battiti di ciglia che funzioni a 20 fotogrammi al secondo in un ambiente limitato è impegnativo. I tentativi precedenti utilizzavano punti di riferimento facciali per cercare di determinare, in base ai rapporti, se un occhio era aperto o chiuso. Un rilevatore a cascata combinato con un classificatore XGBoost offriva prestazioni eccellenti ma faticava quando l'occhio non era centrato. Alla fine, una CNN 50×50 a 4 strati in TensorFlow Lite elabora i fotogrammi della telecamera, producendo un singolo output, con gli occhi aperti o chiusi. A fini di debug, trasmette i fotogrammi della fotocamera tramite Wi-Fi con annotazioni tramite OpenCV, sebbene anche la compilazione di OpenCV per ESP32 non sia stata banale.

[MBW] ha addestrato il modello utilizzando il set di dati MRL e quindi quantizzato su int8. Far funzionare contemporaneamente gli stack Bluetooth e Wi-Fi è stato un po' complicato, così come la gestione della RAM. Dopo aver esaurito SRAM e IRAM, [MBW] ha dovuto passare alla PRAM. L'intero sistema è integrato in alcuni occhiali leggeri e garantisce un'esperienza abbastanza confortevole.

Sebbene TensorFlow e i microcontrollori possano sembrare una coppia un po' strana, alla fine, il motore di inferenza sta semplicemente facendo alcuni calcoli su una serie di input con alcuni pesi. Abbiamo anche visto TensorFlow Lite su un Commodore 64. Se non conosci [l'ammiraglio Jerimiah Denton] possiamo far luce per te.

CONDIVIDERE