Un smartphone controlat cu mintea și cu ochii
Cum am combinat urmărirea privirii, semnalele EEG și inteligența artificială într-un ecosistem care controlează un smartphone fără atingerea ecranului.

Atunci când mi-am ales lucrarea de licență, nu am vrut să construiesc un proiect simplu, realizat doar pentru a absolvi.
Am vrut să pornesc de la o problemă reală și să dezvolt o soluție care să funcționeze în afara unei prezentări PowerPoint sau a unui mediu experimental izolat.
Întrebarea de la care am pornit a fost aparent simplă:
Poate o persoană să controleze un smartphone fără să atingă ecranul, folosind doar privirea și activitatea cerebrală?
Un an mai târziu, răspunsul a devenit un ecosistem funcțional format din inteligență artificială, computer vision, semnale EEG, procesare locală pe dispozitiv, un backend în timp real și servicii native de accesibilitate Android.
Teza mea s-a numit „Hybrid Retinal-Tracking and Neural Command Interface for Assistive Mobile Interaction”.
Cu ajutorul bunului meu prieten și colaborator în cercetare, Marius Drăgoi Valentin, această teză a devenit fundația unei lucrări științifice internaționale publicate în MDPI Biomimetics, revistă Q1: „Bio-Inspired Gaze and Neural Command Fusion for Assistive Smartphone Interaction”.
Pentru mine, acest proiect nu a fost doar o lucrare de cercetare. A fost un an întreg de dezvoltare, optimizare, testare și reconstrucție.
Am dezvoltat întreaga componentă inginerească a sistemului: arhitectura software, aplicațiile Android, procesarea privirii, integrarea BCI, comunicațiile în timp real, infrastructura de date și mecanismele prin care intenția utilizatorului este transformată într-o acțiune executată efectiv pe telefon.
De ce controlul unui telefon prin privire nu este suficient
Smartphone-urile sunt construite în jurul interacțiunii tactile.
Apăsăm butoane, glisăm, derulăm pagini și revenim la ecranul anterior folosindu-ne degetele. Pentru majoritatea oamenilor, aceste gesturi au devenit aproape automate.
Pentru o persoană cu mobilitate sever redusă, aceeași interacțiune poate fi dificilă sau imposibilă.
Urmărirea privirii reprezintă una dintre cele mai promițătoare alternative. Telefonul poate estima zona spre care se uită utilizatorul și poate folosi acea poziție pentru selectarea unui element.
Problema apare atunci când sistemul trebuie să decidă dacă utilizatorul doar privește un buton sau chiar dorește să îl activeze.
Privirea este folosită permanent pentru explorare. Citim, analizăm și schimbăm rapid punctul de interes. Dacă fiecare oprire a privirii ar produce automat un click, interfața ar executa numeroase acțiuni nedorite.
Această dificultate este cunoscută drept Midas Touch Problem.
Pentru a o reduce, am separat interacțiunea în două componente independente:
- urmărirea privirii determină locul interacțiunii;
- interfața neurală determină comanda care trebuie executată.
Utilizatorul privește un element de pe ecran și se concentrează asupra uneia dintre cele trei acțiuni suportate:
- click;
- scroll;
- back.
Privirea selectează zona relevantă, iar semnalul EEG confirmă intenția și tipul acțiunii. Această fuziune este baza întregului sistem.
Modelarea intenției utilizatorului
La un moment de timp t, componenta de gaze tracking estimează punctul privit:
unde x_t și y_t reprezintă coordonatele estimate pe ecran.
În paralel, componenta BCI produce o comandă neurală:
Valoarea \varnothing reprezintă situația în care sistemul nu identifică o intenție suficient de clară pentru a executa o acțiune.
Comanda finală poate fi descrisă prin funcția de fuziune:
unde:
- g_t este poziția privirii;
- b_t este comanda neurală;
- s_t reprezintă starea curentă a interfeței Android;
- C_t este acțiunea finală executată de sistem.
Telefonul nu reacționează doar la coordonate și nici doar la semnalul cerebral. Acțiunea este produsă prin combinarea contextului vizual, a intenției neurale și a structurii interfeței active.
Un model AI care rulează direct pe smartphone
Pentru estimarea privirii am dezvoltat și optimizat un pipeline de computer vision care rulează direct pe telefon.
Camera frontală captează imaginea utilizatorului, iar sistemul extrage informațiile necesare pentru localizarea feței, a ochilor și a caracteristicilor relevante pentru estimarea direcției privirii.
Modelul de inteligență artificială este optimizat pentru inferență mobilă și integrat direct în aplicația Android.
Această decizie a avut două obiective importante: reducerea latenței și protejarea datelor utilizatorului.
Procesare locală și confidențialitate
Cadrele captate de camera frontală nu trebuie trimise către un server extern pentru procesare.
Imaginea este analizată direct pe dispozitiv, iar rezultatul utilizat de sistem este reprezentat de estimarea numerică a privirii.
Această arhitectură reduce expunerea datelor vizuale sensibile și elimină dependența de un serviciu cloud pentru fiecare predicție.
Într-un sistem care analizează permanent fața și ochii utilizatorului, procesarea locală nu este doar o optimizare de performanță. Este o decizie importantă de securitate și confidențialitate.
Latență redusă
Într-o interfață asistivă, timpul dintre intenție și execuție trebuie să fie cât mai scurt. Orice întârziere se acumulează:
unde:
- T_{\text{camera}} este timpul de captură;
- T_{\text{gaze}} este timpul necesar pentru estimarea privirii;
- T_{\text{BCI}} este timpul necesar pentru confirmarea comenzii neurale;
- T_{\text{network}} este latența comunicației;
- T_{\text{Android}} este timpul de executare a acțiunii.
Prin rularea componentei vizuale direct pe telefon am eliminat transferul imaginilor către un backend și am redus una dintre cele mai costisitoare etape ale pipeline-ului.
Calibrarea individuală a privirii
Ieșirea brută a modelului nu poate fi utilizată direct ca poziție pe ecran.
Fiecare utilizator are o geometrie facială diferită. Poziția telefonului, distanța față de cameră, unghiul capului și iluminarea pot modifica relația dintre predicția modelului și punctul privit.
Din acest motiv, sistemul include un proces individual de calibrare.
Utilizatorul privește o serie de puncte afișate în poziții cunoscute pe ecran. Pentru fiecare punct sunt colectate mai multe predicții, iar sistemul învață transformarea dintre spațiul brut al modelului și coordonatele reale ale ecranului.
Transformarea poate fi exprimată astfel:
unde:
- z este predicția brută a modelului;
- \phi(z) este o extindere polinomială a caracteristicilor;
- W este matricea coeficienților de calibrare;
- \hat{g} este poziția finală estimată pe ecran.
Coeficienții sunt obținuți prin Ridge Regression:
Primul termen minimizează diferența dintre predicțiile calibrate și punctele reale.
Termenul de regularizare penalizează coeficienții foarte mari și reduce riscul construirii unei transformări instabile.
După calibrare, sistemul verifică dacă eroarea obținută se încadrează în limitele acceptate. Profilul este salvat doar atunci când calibrarea trece criteriile de validare.
Stabilizarea privirii
Predicțiile unui model de gaze tracking pot varia de la un cadru la altul, chiar și atunci când utilizatorul privește aceeași zonă.
Mișcările naturale ale ochilor, zgomotul camerei, iluminarea și micile schimbări ale poziției capului produc instabilitate.
Pentru stabilizarea coordonatelor am utilizat filtrare temporală. Conceptual, poziția filtrată poate fi descrisă prin:
unde:
- g_t este predicția curentă;
- \tilde{g}_{t-1} este poziția filtrată anterior;
- \alpha_t controlează echilibrul dintre reacție rapidă și stabilitate.
Un filtru prea slab permite cursorului să oscileze. Un filtru prea puternic face interacțiunea lentă și introduce senzația că sistemul urmărește privirea cu întârziere.
O parte importantă a dezvoltării a constat în găsirea unui echilibru între precizie, stabilitate și timp de răspuns.
Componenta neurală bazată pe Emotiv Cortex
Pentru comenzile neurale am folosit o cască EEG Emotiv și infrastructura oferită de Emotiv Cortex API.
Casca măsoară variații ale activității electrice cerebrale prin intermediul senzorilor poziționați pe scalp.
Sistemul nu citește gânduri, propoziții sau imagini mentale.
Utilizatorul trece printr-un proces de antrenare în care încearcă să producă tipare mentale repetabile. Aceste tipare sunt asociate comenzilor disponibile.
În timpul utilizării, clasificatorul estimează atât comanda, cât și un scor de încredere:
unde e_t reprezintă informația EEG disponibilă la momentul t.
O comandă este acceptată numai dacă îndeplinește mai multe condiții:
unde:
- \tau este pragul minim de încredere;
- n_t este numărul de detecții consecutive;
- k este numărul minim necesar pentru confirmare;
- \Delta t este timpul trecut de la ultima comandă;
- T_c este perioada de cooldown.
Aceste condiții reduc comenzile accidentale și împiedică executarea repetată a aceleiași acțiuni.
Problema reală nu este doar detectarea unei comenzi. Sistemul trebuie să detecteze intenția corectă, suficient de rapid și cu un risc cât mai mic de activare falsă.
Arhitectura ecosistemului
Proiectul nu este o singură aplicație și nici un model AI izolat. Este un ecosistem format din mai multe componente care comunică în timp real.
1. Backend de control în Python și FastAPI
Backendul principal a fost dezvoltat în Python, folosind FastAPI.
Python a fost utilizat și pentru:
- dezvoltarea logicii de machine learning;
- procesarea datelor;
- experimentele de calibrare;
- optimizarea modelelor;
- analiza sesiunilor;
- integrarea cu Emotiv Cortex;
- coordonarea comenzilor.
Pentru comunicarea în timp real dintre componenta BCI și telefon am utilizat WebSocket.
Atunci când o comandă neurală este confirmată, aceasta este transmisă către aplicația Android, unde este combinată cu poziția actuală a privirii.
2. Aplicație Android Native
Aplicația principală a fost dezvoltată în Android Native. Aceasta gestionează:
- configurarea sistemului;
- autentificarea și profilurile utilizatorilor;
- accesul la camera frontală;
- rularea modelului AI;
- calibrarea privirii;
- filtrarea predicțiilor;
- conexiunea WebSocket;
- primirea comenzilor BCI;
- integrarea cu Accessibility Service;
- executarea acțiunilor pe dispozitiv.
Alegerea unei implementări native mi-a oferit control direct asupra camerei, inferenței, serviciilor sistemului de operare și mecanismelor de accesibilitate.
3. Android Accessibility Service
După fuziunea dintre privire și comanda neurală, sistemul trebuie să transforme intenția într-o acțiune reală.
În cazul comenzii click, serviciul de accesibilitate analizează structura interfeței active și caută elementele interactive aflate în apropierea coordonatei privite.
Selecția poate fi formulată astfel:
unde:
- \mathcal{U} este mulțimea elementelor interactive;
- B_i reprezintă limitele vizuale ale elementului u_i;
- \tilde{g}_t este poziția filtrată a privirii;
- d este distanța dintre punctul privit și element;
- u^{*} este elementul selectat.
Sistemul încearcă să identifice semantic componenta Android și să execute acțiunea specifică acesteia.
Atunci când un element nu poate fi identificat semantic, sistemul poate utiliza un mecanism alternativ bazat pe coordonate.
Pentru comenzile scroll și back sunt folosite acțiuni și gesturi oferite de serviciile Android.
Această abordare permite controlul interfeței fără modificarea fiecărei aplicații în parte.
4. MongoDB și telemetrie
MongoDB este utilizat pentru logging și colectarea datelor anonimizate.
Sistemul poate înregistra informații despre:
- sesiunile utilizatorilor;
- rezultatele calibrării;
- coordonatele estimate;
- comenzile EEG;
- scorurile de încredere;
- acțiunile trimise;
- confirmările Android;
- latențele măsurate;
- erorile apărute în pipeline.
Telemetria a fost esențială în procesul de dezvoltare.
Atunci când o acțiune eșua, cauza putea fi localizată în mai multe componente:
- estimarea privirii;
- clasificarea EEG;
- filtrarea comenzii;
- conexiunea WebSocket;
- identificarea elementului Android;
- executarea gestului;
- confirmarea acțiunii.
Loggingul detaliat mi-a permis să reconstruiesc traseul complet al fiecărei comenzi și să identific punctul exact în care apărea problema.
5. Aplicație dedicată testelor de usability
Am dezvoltat separat o aplicație Android Native pentru evaluarea sistemului.
UI-ul și UX-ul au fost proiectate special pentru interacțiunea prin privire și comenzi neurale.
Aplicația conține taskuri controlate pentru:
- selectarea unor elemente;
- navigarea între ecrane;
- efectuarea unui scroll;
- executarea comenzii back;
- măsurarea timpului de finalizare;
- identificarea selecțiilor greșite;
- evaluarea experienței utilizatorului.
Scopul nu a fost doar să testez fiecare model separat. Am vrut să evaluez întregul ecosistem, din momentul în care utilizatorul privește un element până la confirmarea acțiunii executate de Android.
Un an de dezvoltare inginerească
În forma finală, arhitectura poate părea logică și ordonată. Procesul prin care am ajuns la ea nu a fost liniar.
Au existat sute de versiuni și mii de teste.
Am schimbat modele, praguri, filtre, fluxuri de calibrare și metode de comunicare.
Am analizat latențe, predicții instabile, comenzi false și situații în care componentele funcționau individual, dar nu funcționau corect împreună.
Un model mai complex putea oferi rezultate mai bune, dar nu putea menține viteza necesară pe telefon.
Un prag neural mai mic creștea numărul comenzilor detectate, dar și probabilitatea activărilor false. Un prag mai mare reducea erorile, dar făcea interacțiunea mai dificilă.
O filtrare mai agresivă stabiliza coordonatele, dar adăuga întârziere.
Fiecare îmbunătățire trebuia analizată la nivelul întregului sistem.
Adevărata provocare nu a fost să fac fiecare componentă să funcționeze separat. A fost să creez un ecosistem în care toate componentele funcționează împreună, în timp real.
Evaluarea pe 36 de participanți
Sistemul a fost testat pe 36 de participanți studenți.
Fiecare sesiune a inclus:
- configurarea echipamentului;
- calibrarea urmăririi privirii;
- antrenarea comenzilor BCI;
- verificarea comenzilor neurale;
- efectuarea taskurilor în aplicația de usability;
- colectarea datelor;
- evaluarea experienței de utilizare.
Dintre cele 36 de sesiuni, 33 de calibrări au fost acceptate.
Rata totală de succes a comenzilor BCI a fost:
Comanda click a obținut cea mai ridicată rată de succes:
Selecția corectă bazată pe gaze tracking a fost:
Rata de confirmare a acțiunilor executate de Android a ajuns la:
Scorul mediu de usability a fost:
Aceste rezultate demonstrează că arhitectura este fezabilă.
Un utilizator poate selecta vizual o zonă, poate produce o comandă neurală, iar smartphone-ul poate transforma cele două informații într-o acțiune concretă.
Ce demonstrează proiectul
Sistemul demonstrează că urmărirea privirii și interfețele Brain-Computer Interface nu trebuie tratate ca două tehnologii separate.
Privirea este foarte eficientă pentru localizare, dar ambiguă în ceea ce privește intenția.
Semnalul EEG poate confirma intenția, dar nu oferă singur o metodă precisă și naturală de alegere a unui element de pe ecran.
Combinate, cele două tehnologii își compensează reciproc limitările.
Aceasta este ideea principală a proiectului:
Rezultatul nu este doar un cursor controlat cu ochii și nici doar un clasificator EEG.
Este o interfață multimodală prin care intenția utilizatorului este înțeleasă folosind mai multe surse de informație.
Ce nu este încă sistemul
Proiectul este un prototip funcțional de cercetare și un proof of concept avansat.
Nu este încă un produs medical și nu reprezintă o soluție validată clinic.
Participanții studiului au fost studenți fără dizabilități motorii severe, iar testele au fost realizate într-un mediu controlat.
Interfața experimentală a fost proiectată special pentru evaluarea sistemului, folosind elemente suficient de mari și fluxuri previzibile.
Utilizarea în aplicații comerciale complexe, cu elemente mici, animații, reclame și structuri dinamice, introduce dificultăți suplimentare.
Timpul necesar pentru antrenarea comenzilor BCI trebuie redus.
Precizia urmăririi privirii trebuie îmbunătățită pentru utilizarea în condiții cotidiene.
Sistemul trebuie evaluat și împreună cu persoane care au nevoi asistive reale.
Aceste limite nu reduc valoarea proiectului. Ele definesc următoarea etapă de cercetare și dezvoltare.
Ce urmează
Direcțiile de dezvoltare includ:
- creșterea preciziei modelului de gaze tracking;
- calibrare mai rapidă și adaptivă;
- reducerea timpului de antrenare BCI;
- personalizarea automată a pragurilor neurale;
- fuziune multimodală mai avansată;
- reducerea infrastructurii externe;
- suport pentru interfețe Android mai complexe;
- detectarea și prevenirea activărilor accidentale;
- testare pe termen lung;
- evaluare împreună cu utilizatori cu dizabilități motorii.
O direcție importantă este dezvoltarea unui mecanism care să adapteze automat sistemul la fiecare utilizator.
În locul unor praguri fixe, o versiune viitoare ar putea estima probabilitatea unei intenții reale pe baza mai multor semnale:
unde:
- p_{\text{EEG}} este încrederea clasificatorului neural;
- v_{\text{gaze}} reprezintă stabilitatea privirii;
- d_{\text{target}} este distanța față de elementul UI;
- T_{\text{fixation}} este durata fixării;
- s_t este contextul interfeței.
În acest mod, decizia nu ar mai depinde de un singur prag, ci de o estimare completă a intenției utilizatorului.
Mai mult decât o lucrare de licență
La început, proiectul a fost ideea unei lucrări de licență.
După un an de cercetare și dezvoltare, a devenit un ecosistem software funcțional și fundația unei lucrări științifice internaționale.
Pentru mine, această experiență a demonstrat că o lucrare de licență nu trebuie să fie doar un document necesar pentru absolvire.
Poate fi începutul unei direcții reale de cercetare.
Poate produce un sistem care funcționează.
Poate combina inteligența artificială, dezvoltarea software și interacțiunea om-calculator într-o soluție construită pentru o problemă care contează.
Le mulțumesc colegilor și prietenilor care m-au ajutat cu testările, calibrările și feedbackul oferit pe parcursul dezvoltării.
Unele sesiuni au fost repetate de mai multe ori. Au existat versiuni instabile, calibrări eșuate și momente în care întregul pipeline a trebuit regândit.
Fiecare test a adus însă sistemul mai aproape de forma sa actuală.
Îi mulțumesc în mod special lui Marius Drăgoi Valentin pentru colaborarea în cercetare și pentru contribuția la transformarea tezei într-o lucrare științifică internațională.
Un smartphone controlat fără atingerea ecranului
Am pornit de la întrebarea dacă un smartphone poate fi controlat folosind privirea și semnalele cerebrale.
Pentru a găsi un răspuns, am construit:
- un model AI care rulează direct pe telefon;
- un sistem individual de calibrare;
- o componentă BCI bazată pe EEG;
- un backend de control în timp real;
- o aplicație Android Native;
- un serviciu de accesibilitate;
- o infrastructură de telemetrie;
- o aplicație dedicată testării;
- un protocol experimental aplicat pe 36 de participanți.
Rezultatul este un sistem în care privirea identifică zona de interacțiune, semnalul neural confirmă acțiunea, iar Android o execută.
Nu este doar un experiment despre cum poate fi apăsat un buton într-un mod diferit.
Este o demonstrație a modului în care computer vision, Brain-Computer Interfaces și inteligența artificială pot crea o nouă legătură între utilizator și dispozitiv.
Un smartphone controlat cu mintea și cu ochii.
Citește lucrarea științifică integrală: Bio-Inspired Gaze and Neural Command Fusion for Assistive Smartphone Interaction — ResearchGate.
Vrei un site care sa te reprezinte cu adevarat?
Spune-ne pe scurt despre afacerea ta si primesti o recomandare sincera: ce abordare are sens, cu ce buget si cu ce rezultate te poti astepta.