Lucrare de licență [305356]

Universitatea Tehnică ,,Gheorghe Asachi” [anonimizat] a imaginilor

Domeniul: Științe inginerești aplicate

Specializarea: [anonimizat]: [anonimizat].Dr.Ing. [anonimizat] – Alexandru

IAȘI

IULIE, 2018

Universitatea Tehnică ,,Gheorghe Asachi” [anonimizat] a imaginilor

Domeniul: Științe inginerești aplicate

Specializarea: [anonimizat]: [anonimizat].Dr.Ing. [anonimizat] – Alexandru

IAȘI

IULIE, 2018

DECLARAȚIE DE ASUMARE A [anonimizat], legitimat cu C.I. seria MZ nr. 164046, autorul lucrării Sisteme portabile de preluare și tratare a imaginilor, elaborată în vederea susținerii examenului de finalizare a [anonimizat] „Gheorghe Asachi” [anonimizat] a anului universitar 2018, luând în considerare conținutul Art. 34 din Codul de etică universitară al Universității Tehnice „Gheorghe Asachi” din Iași ([anonimizat].POM.02 – Funcționarea Comisiei de etică universitară), [anonimizat], [anonimizat] (legea 8/1996) și a convențiilor internaționale privind drepturile de autor.

[anonimizat], [anonimizat] ,,oglinda sufletului”, fiind mereu alta în diferite stări fizice sau fiziologice.

Procesarea imaginilor este considerată una dintre ariile cu cea mai rapidă dezvoltare din tehnologia informaticii în momentul de față. Importanța acesteia se reflectă în numărul mare de domenii de activitate în care este folosită: medicină, [anonimizat].

[anonimizat].

Viziunea artificială reprezintă construcția de descrieri clare și semnificative ale obiectelor fizice pornind de la imaginile lor. Ieșirile viziunii artificiale sunt o descriere sau o interpretare sau o măsurăre cantitativă a structurilor în format tridimensional.

Viziunea artificială are scop dublu. [anonimizat]. [anonimizat].

Lucrarea de față are drept scop prezentarea sistemelor portabile de preluare și tratare a imaginilor, mai exact a sistemelor eye tracker.

Capitolul 1: Viziunea artificială

1.1 Scurt istoric al roboticii

Termenul de robot a fost introdus pentru prima dată de scriitorul de origine cehă Karel Capek în anul 1920 într-o lucrare numită ,,Roboții universali ai lui Rossum”. [anonimizat]. [1]

Conform Institutului de Robotică din America definiția termenului de robot, introdusă în anul 1979, este dată astfel: ,,Un robot este un manipulator reprogramabil și multifuncțional realizat în scopul manipulării materialelor, pieselor, sculelor sau dispozitivelor specializate, într-un mod specific diferitelor mișcări programate, pentru a realiza o varietate de sarcini.” [2]

Știința a cărei principală activitate este proiectarea și utilizarea roboților este Robotica. Acest termen a fost folosit pentru prima dată de omul de știință Isaac Asimov, introducând regulile care guvernează această știință, cunoscute drept legile roboticii.

Legile roboticii sunt:[3]

Legea ZERO: ,,Un robot nu trebuie să producă nici un rău umanității, sau, prin lipsa de acțiune, să permită producerea unui rău asupra umanității.”;

Legea 1: ,,Un robot nu trebuie să producă nici un rău unei ființe umane, sau, prin lipsa de acțiune, să permită aceasta, dar în condițiile respectării legilor de ordin superior.”;

Legea 2: ,,Un robot trebuie să execute ordinele primite de la o ființă umană, excepție făcând acele ordine care intră în conflict cu o lege de ordin superior.”;

Legea 3:,,Un robot trebuie să se protejeze pe sine însuși, atâta timp cât această protecție nu intră în conflict cu legi de ordin superior.”.

1.2 Inteligența artificială

Termenul ,,inteligență artificială”(eng. Artificial Intelligence) a fost propus de John McCarthy, considerat părintele acestui domeniu, în anul 1956 când el a ținut prima conferință academică legată de acest subiect, dar aventura de a înțelege dacă calculatoarele pot cu adevărat să gândească a început cu mult înainte.

Inteligența artificială a fost studiată decade la rând și este una dintre cele mai noi ramuri din Știința Calculatoarelor, Informatică, Tehnologia Informației, Automatică sau Cibernetică. Nu pot fi trecute cu vederea legăturile sale puternice cu alte științe, cum ar fi: Psihologia (inteligența umană, teoria învățării), Medicina (neuropsihologia, nerologia, neuropsihiatria, neurobiologia), Matematica (logica, teoria probabilităților, grafuri, limbaje formale, combinatorică), Biologia(teoria evoluției, teoria emergenței), Filozofia, Gnoseologia (teoria cunoașterii).

În literatura de specialitate există numeroase definiții, sau încercări de a defini, inteligența artificială. Numărul mare de definții este strict legat de faptul că domeniul, fiind in legătură cu esența naturii umane, este deosebit de provocator. O definiție completă și corectă a inteligenței artificiale ar trebui să pornească de la definiția inteligenței umane, care este departe de a fi ușor de formulat.

Inteligența artificială este domeniul științei calculatoarelor care se ocupă de studiul și crearea sistemelor de calcul și a programelor care prezintă o formă inteligentă: sisteme care învață noi concepte, care pot raționa și deduce concepte utile într-un domeniu al lumii înconjurătoare, sisteme care pot înțelege limbajul natural sau percepe și înțelege un peisaj, într-un cuvânt sisteme care necesită capacități inteligente specifice omului.

Scopul inteligenței artificiale(eng. Artificial intelligence), cunoscută și sub denumirea de IA(respectiv, eng. AI), ca știință este de a realiza mașini care să facă lucruri care, dacă ar fi făcute de oameni ar necesita inteligență. Cu alte cuvinte, scopul inteligenței artificiale este de a crea sisteme expert care expun comportament inteligent, învață, demonstrează, explică, îndrumă utilizatorii, și de a implementa inteligența umană în mașini, prin crearea de sisteme care înțeleg, gândesc, învață și se comportă ca oamenii.

Nu contează câtă informație sau putere de calcul este disponibilă pe o mașină, există activități care, încă, sunt dificile de realizat pentru mașini, dar care rămân foarte ușor de realizat pentru oameni. În tabelul 1.2.1 se va prezenta o comparație între creierul uman si calculator, în funcție de mai multe criterii. [18]

Dintre ariile de aplicație ale inteligenței artificiale se amintesc următoarele:

Înțelegerea limbajului reprezintă abilitatea de a înțelege și de a răspunde la limbajul natural. De asemenea se referă la abilitatea de a transfera din limbajul vorbit într-o formă scrisă și de a traduce dintr-un limbaj natural în alt limbaj natural. [17][19]

Sisteme adaptive și de învățare care studiază abilitatea de a adapta comportamentul bazându-se pe experiența anterioară și de a dezvolta reguli generale bazate pe acea experiență. Un sistem înzestrat cu inteligență este capabil să învețe pentru a-și îmbunătăți interacțiunea cu mediul.În această arie se remarcă studiile care privesc formarea de concepte și cibernetica.

Rezolvarea de probleme se referă la abilitatea de a formula o problemă într-o reprezentare proprie, a planifica activități pentru găsirea de soluții și de a ști când sunt necesare noi informații. Ideal, rezolvarea unei probleme arată ca in figura 1.2.1.

Figură 1.2.1 Schema ideală de rezolvare a unei probleme

În practică rezolvarea unei probleme nu este atât de simplă. În figura 1.2.2 este prezentată schematic rezolvarea practică a unei probleme.[20]

Figură 1.2.2 Schema practică de rezolvare a unei probleme

Dintre cercetările desfășurate în această arie se remarcă rezolvarea interactivă a problemelor, scrierea automată a programelor și demonstrarea de teoreme.

Percepția reprezintă abilitatea de a analiza o scenă simțită prin relatarea ei într-un model intern care reprezintă percepția organismului. Rezultatul acestei analize este un set structurat de relații între entitățile din scenă.

Cinci simțuri (vederea, auzul, simțul tactil, mirosul și gustul) ne stau la dispoziție pentru a interacționa cu mediul. Modelarea acestor simțuri pe sisteme automate reprezintă, cu certitudine, o preocupare de mare însemnătate a domeniului inteligenței artificiale. Dintre cele cinci simțuri, vederea ocupă un loc special. Sistemele de vedere artificială încearcă să descifreze mecanismele vederii și ale interpretării imaginilor statice și în mișcare.[17]

Lucrarea de față se încadrează în această categorie, iar în capitolele următoare se vor aborda mai în detaliu aspectele legate de viziunea artificială și aplicațiile ei.

Modelarea reprezintă abilitatea de a dezvolta o reprezentare internă și un set de reguli de transformare care pot fi utilizate pentru a prezice comportamentul și relația dintre obiecte din lumea reală sau alte entități.

Roboții se referă la o combinație dintre multe sau, uneori, toate, abilitățile prezentate mai sus cu scopul de a se mișca pe teren și de a manipula obiecte. Încercând a modela procesele cognitive care se desfășoară în sistemele vii, planificarea roboților este un câmp de cercetare care urmărește a îmbunătăți comportamentul roboților atunci când sunt puși să execute diferite sarcini. Pentru exemplificare se vor prezenta cateva domenii, cum ar fi: transport, navigație, automatizări industriale, securitate, sectorul militar, agricultură, construcții, etc.

Figură 1.2.3 Utilizarea roboților în automatizări industriale [41]

Figură 1.2.4 Utilizarea roboților în construcția de mașini [42]

Jocuri [21]– în acest domeniu se face referire la abilitatea de a accepta un set formal de reguli pentru jocuri ca Șah, Go, Kalah, etc., și de a traduce aceste reguli într-o structură sau reprezentare care permite abilităților de învățare și de rezolvare a problemelor să fie folosite în obținerea unui anumit nivel de performanță.

Figură 1.2.5 Roboți jucând șah [43]

1.3 Viziunea artificială

Fundamentul pe care se bazează inteligența artificială este reprezentat de cantitatea enormă de informații disponibilă în zilele noastre, care, datorită progreselor tehnologice din ultimii ani, poate fi stocată și analizată. În continuare se va face referire doar la datele sub formă de imagini, care fac obiectul viziunii artificiale.

Procesarea liniară într-o singură dimensiune a semnalelor și teoria sistemelor sunt subiecte importante în ingineria electrică. Există o orientare clară către care comunitatea clasică de procesare a semnalelor se îndreaptă, și anume semnalele multidimensionale. Granlund și Knutsson au fost primii care au publicat o monografie despre procesarea semnalelor pentru viziunea artificială elaborată pe mai multe idei, cum ar fi procesarea tensorială a imaginii și convoluția normalizată, care nu își au originile în procesarea clasică a semnalelor.

Scopul procesării semnalelor în viziunea artificială este de a extrage caracteristici reprezentative pentru recunoașterea și clasificarea obiectelor.[22]

În urmă cu câțiva ani era un vis ca abilitatea de a vedea și de a gândi să fie atribuită calculatoarelor de la vremea respectivă. Tehnologia a avansat, calculatoarele au devenit din ce în ce mai rapide și mai puternice, iar comunitatea internațională care realizează cercetări în domeniu și-a concentrat atenția spre a face ca acest vis să devină realitate.[23]

Lumea în care trăim este tridimensională, ceea ce înseamnă că orice punct din spațiu poate fi specificat prin trei coordonate (X, Y, Z). O imagine este un plan în două dimensiuni, ceea ce înseamnă că este nevoie de două coordonate (X, Y) pentru a reprezenta un punct în imagine. O dimensiune este pierdută în procesul de proiecție. Unul dintre scopurile importante ale viziunii artificiale este de a recupera această dimensiune pierdută.[24]

Viziunea artificială(eng. Computer Vision) este în corelație cu următoarele domenii: procesarea imaginilor și recunoașterea modelelor. Procesarea imaginilor studiază transformarea din imagine în imagine. Intrarea și ieșirea procesării imaginilor sunt ambele imagini. Operațiile tipice ale procesării de imagini sunt compresia imaginilor, restaurarea imaginilor, îmbunătățirea imaginilor.

De cealaltă parte, recunoașterea modelelor ( de asemenea cunoscută și sub numele de învățare automată) studiază tehnici matematice variate( cum ar fi tehnici statistice, rețele neuronale, etc.) pentru clasificarea diferitelor modele. Datele de intrare pentru recunoașterea de modele pot fi de orice tip. Tehnicile de recunoaștere a modelelor sunt utilizate la scară largă în viziunea artificială.

Viziunea artificială reprezintă construcția de descrieri clare și semnificative ale obiectelor fizice pornind de la imaginile lor. Ieșirile viziunii artificiale sunt o descriere sau o interpretare sau o măsurăre cantitativă a structurilor în format tridimensional.

Viziunea artificială este o ramură a automatizării care permite percepția viziunii mașinii și dezvoltarea de metode pentru crearea sistemelor pentru obținerea de informații din imagini.

Viziunea artificială are scop dublu. Din punct de vedere al biologiei ca știință, viziunea artificială presupune apropierea cu modelele de calcul cât mai aproape de sistemul vizual uman. Din punct de vedere al ingineriei, viziunea artificială presupune construirea de sisteme autonome care pot realiza câteva activități pe care și sitemul vizual uman le poate realiza. După cum se poate observa, viziunea artificială necesită cunoștințe în știința calculatoarelor, inginerie electrică, matematică, psihologie, biologie și științe cognitive.

Viziunea artificială este în general definită ca disciplina care se ocupă cu construirea de descrieri explicite și expresive a structurii și proprietăților lumii tridimensionale din imagini bidimensionale. De asemenea, reprezintă un subdomeniu al inteligenței artificiale care se ocupă cu analiza și interpretarea informației vizuale.

Figura 1.3.1 Domeniile viziunii artificiale

Un grup de cercetători de la Universitatea din Cambridge au identificat un număr de posibile aplicații și sunt acum pionierii nucleului de tehnologie din cele trei domenii ale viziunii:[27]

Reconstrucția – recuperarea formei 3D din imagini necalibrate.

Înregistrarea – detectarea corpului uman și urmărirea acestuia pentru utilizarea în noi interfețe.

Recunoașterea – detectarea obiectelor, segmentarea și recunoașterea în video.

O structură aproximativă a viziunii artificiale poate fi ilustrată în figura 1.3.2.[23][24][25] În această figură s-a evidențiat cu roșu traseul pentru atingerea segmentului de urmărire a vederii.

Formarea imaginii sudiază procesul de dinaintea producerii imaginilor și a videourilor. Acesta constituie un subiect important atât pentru viziunea artificială, cât și pentru grafica computerizată. Pentru a produce o imagine reală, natura senzorului vizual, de exemplu camera, ar trebui studiată. Pe lângă dispozitivul de surprindere a imaginii, este de asemenea important să studiem factorii care provin de la obiecte și de la scene, cum ar fi lumina, culoarea, textura, mișcarea și forma, care afectează în limite largi calitatea imaginilor și a videourilor. Lumina este aproape întotdeauna un factor critic și trebuie să fie foarte atent organizată.

Figură 1.3.2 Reprezentare schematică a viziunii artificiale cu evidențierea traseului de la obiect spre urmărirea vederii

Procesarea de nivel scăzut a imaginii nu reprezintă, neapărat, viziunea artificială, dar corespunde pașilor de preprocesare pentru aceasta. Sarcina principală este să extragă informații fundamentale pentru procesarea ulterioară, incluzând detecția marginilor, colțurilor, filtrarea, etc. Detecția marginilor, care a atras atenția a numeroși cercetători, este una dintre cele mai importante arii din procesarea de nivel scăzut a imaginii, prezente în sistemele cu viziune artificială. Detecția marginilor este importantă deoarece succesul procesării de nivel înalt se bazează pe o bună identificare a marginilor. Multe dintre schemele de detecție a marginilor sunt compuse din trei faze: filtrarea, diferențierea și detecția.[24]

În faza de filtrare imaginea este trecută printr-un filtru, pentru îndepărtarea zgomotului. Zgomotul poate conduce la efecte nedorite introduse în prelevarea, cuantizarea, estomparea și defocalizarea camerei, și la iregularități ale structurii suprafeței obiectelor.

Faza de diferențiere accentuează locațiile din imagine unde schimbările de intensitate sunt semnificative. În final, în faza de detecție, acele puncte unde schimbările de intensitate sunt semnificative sunt localizate.[24]

Sarcinile de nivel scăzut ale viziunii artificiale, cum ar fi corespondența între imagini și analiza mișcării, pot fi realizate pe baza procesării de nivel scăzut. Imaginile pot reprezenta aceeași scenă luată din diferite puncte de vedere, sau o scenă în mișcare preluată de o cameră fixă, sau chiar ambele. Fără nici o exagerare corespondența între imagini este o parte de bază pentru viziunea artificială.

Există două aspecte majore în procesarea de nivel mediu a viziunii artificiale, și anume: deducerea geometriei și deducerea mișcării. Aceste două aspecte nu sunt independente, dar sunt bine înrudite. Câteva elemente fundamentale ale viziunii geometrice includ geometria multidimensională, structura din mișcare, care îndeplinesc pasul trecerii de la două dimensiuni( 2D) la trei dimensiuni( 3D), prin deducerea de informații de scene 3D din imagini 2D.

Mișcarea obiectelor in 3D induce mișcarea în 2D în planul imaginii. Mișcarea este numită flux optic. Fluxul optic poate fi utilizat pentru a calcula mișcarea în 3D, de exemplu mișcarea de translație și mișcarea de rotație, și forma în 3D. Dintre metodele de calcul a fluxului optic se amintesc: metoda Horn și Schunck, metoda Barnard și Thompson, corespondența mișcării utilizând cadre multiple.

Lumea este tridimensională, dar imaginile sunt bidimensionale, așadar o dimensiune se pierde în procesul de proiecție. O sarcină importantă în viziunea artificială este să se recupereze a treia dimensiune de la o singură sau de la mai multe imagini.

Segmentarea poate fi bazată pe similarități spațiale și continuități. Totuși, incertitudinea nu poate acoperi imaginea statică. Când considerăm mișcarea continuă, sperăm ca incertitudinea segmentării să poată fi diminuată. În vârful acesteia este urmărirea vederii și capturarea mișcării vederii, care estimează mișcări 2D și 3D, incluzând mișcări deformante și mișcări articulate.

Figura 1.3.3 Segmentarea imaginii [61]

În cazurile simple unde care conțin un singur obiect, imaginea cu nivel de gri poate fi convertită într-o imagine binară corespondentă . În această imagine binară pixelii obiectului vor fi 1, iar pixelii corespunzători fundalului vor fi 0. Pentru a determina imaginea binară trebuie să se utilizeze un prag P, după cum urmează:

. (1.1)

Câteva variații ale cazului de mai sus includ utilizarea a două praguri, și , sau chiar un interval de praguri, .

, (1.2)

. (1.3) [24]

Viziunea de nivel înalt se referă la deducerea semanticii, de exemplu, din recunoașterea obiectelor și înțelegerea scenelor.

Există două părți legate de procesul de formare a imaginii:

Geometria formării imaginii: determină unde este localizat un punct în planul de proiecție.

Fizica luminii: determină luminozitatea punctului in planul imaginii ca o funcție de iluminarea scenei și de proprietățile suprafeței. Iluminarea scenei și a obiectului joacă un rol important în procesul viziunii artificiale. Ținta centrală este de a scoate vizual în evidență părțile care sunt reprezentate încât imperfecțiunile, defectele și caracteristicile sunt accentuate. Dacă deciziile de procesare și analiză a imaginii au fost făcute pe baza unui prag fix al intensității luminoase atunci vor apărea probleme în situația în care iliminarea, și deci lumina reflectată, se schimbă. De aici rezultă că sistemele de viziune artificială trebuie să fie capabile să se adapteze la aceste schimbări. [31] În caz contrar, o alternativă la această metodă este asigurarea că gradul de iluminare nu se schimbă( rămâne constant) pe parcusul întregului proces.( Figura 1.3.4)

(a)

(b)

Figura 1.3.4 Procesul de reflexie a luminii, reflexia speculară (a), reflexia difuză(b)[49]

Tehnologia viziunii artificiale poate fi împărțită în șase etape:[25]

Achiziția imaginii este primul pas în viziunea artificială, care realizează captarea imaginii printr-un dispozitiv sau senzor și transformarea informației vizuale în informație digitală. Pentru realizarea acestei sarcini două elemente sunt indispensabile: un dispozitiv fizic care este sensibil la o cantitate fizică și produce un semnal electric ca ieșire proporțional cu nivelul de energie perceput, și un convertor analog numeric care să convertească ieșirea electrică a senzorului într-o formă digitală. (Figura 1.3.5)

Figură 1.3.5 Etapa de achiziție a imaginii[44]

Preprocesarea – După ce s-au achiziționat imaginile, a doua etapă care trebuie realizată este preprocesarea. Această procedură este responsabilă de prepararea imaginii astfel încât în etapele următoare să se poată menține elementele conținute. Datele convertite de senzor au, de cele mai multe ori, mult zgomot sau distorsiuni. Datele convertite sunt analizate pentru a realiza corecția geometrică a distorsiunilor, calibrarea radiometrică și îndepărtarea zgomotului din imaginea obținută. Aceste probleme sunt cauzate de distorsiunea lentilelor, iluminare inadecvată sau insuficientă, captarea improprie a senzorului sau de calitatea scăzută.În timpul preprocesării poate fi realizată o clasificare inițială a obiectelor conținute, separându-le în clase pentru a fi tratate mai târziu. (Figura 1.3.6)

Figură 1.3.6 Etapa de preprocesare [45]

Extragerea caracteristicilor – În timpul extragerii caracteristicilor sunt îndepărtate informațiile redundante, reducând astfel cantitatea de date ce vor fi analizate. Cele mai utilizate metode în această p rocesare sunt detecția marginilor, punctelor, culorilor, formelor și mișcării. Faza de analiză a imaginii se ocupă cu extragerea de informații cu privire la conținutul imaginii, de exemplu poziția obiectului, mărimiea, orientarea, etc.

Figură 1.3.7 Etapa de extragere a caracteristicilor [46]

Există o diferență fundamentală între procesarea imaginii și analiza imaginii. Procesarea imaginii facilitează transformarea imaginilor în alte imagini ( mult mai calitative). De cealaltă parte, analiza imaginii facilitează transformarea dintr-o imagine într-un set explicit de informații.[30]

Segmentarea este separarea unei imagini în mai multe regiuni utilizând una sau mai multe caracteristici ale imaginii. În general, segmentarea automată este unul dintre cele mai dificile sarcini ale procesării numerice a imaginilor. O procedură de segmentare a imaginii realizată cu succes crește șansa de succes în rezolvarea problemelor care necesită obiecte sau identificatori individuali. Cele mai utilizate caracteristici în timpul procesului sunt segmentarea prin regiuni și segmentarea prin contur.

Figură 1.3.8 Etapa de segmentare a imaginii [47]

Procesare de nivel înalt – Viziunea artificială permite luarea de decizii pe baza informației extrase utilizând imaginile achiziționate. Aceste decizii sunt luate în timpul procesării de nivel înalt, bazată pe un set de cunoștințe despre obiectele ce vor fi detectate. Aceste decizii pot fi luate doar cu caracteristicile găsite sau utilizând tehnici mult mai complexe ale inteligentei artificiale pentru o implementare mult mai eficientă.

Zgomotul este prezent în aproape toate imaginile obținute, variind în general în intensitate. Originile sunt distincte, în principal: calitatea și senzitivitatea senzorului utilizat, claritatea lentilei, condițiile de mediu, luminozitatea locală și poziția de captare a imaginii. Filtrele sunt utilizate pentru a îndepărta sau atenua zgomotul în achiziție și în dispozitivul software. Intenția este să se ,,șteargă” imaginea astfel încât să semene cât de mult posibil cu imaginea dorită, pierzând cât mai puțină informație posibilă.

În viitorul apropiat se prevede un progres important al viziunii artificiale in domenii precum interactiunea inteligenta om-calculator, robotică, medii virtuale, medii inteligente, multimedia. Această perspectivă este prezentată schematic în figura 1.3.9.[23]

Cercetările în domeniul interacțiunii om-calculator nu sunt legate doar de proiectarea dispozitivelor și experimentele psihologice asupra rezultatelor, ci evoluează către o nouă țintă:interacțiunea inteligentă. Calculatoarele trebuie să fie capabile să accepte intrări video și audio, și apoi să facă anumite analize și interpretări, iar în final să furnizeze o reacție prin vorbire sintetizată, video sau prin acțiuni. Ideea de bază este că în spatele recunoașterii vorbirii calculatoarele ar trebui să fie capabile să recunoască, să interpreteze și să înțeleagă acțiunile umane și comportamentele prin intrările vizuale.

Mediile inteligente se referă la câteva spații fizice care ar putea automat sau inteligent să reacționeze în concordanță cu activitățile omului. De exemplu, când o persoană intră într-o încăpere sistemul ar putea să spună că o persoană a intrat și chiar să identifice cine este, și apoi să aprindă luminile.

Figură 1.3.9 Prezentare schematică a interacțiunii dintre viziunea artificială și alte domenii de studiu [23]

Roboții au primit o bună abilitate matematică, dar ei sunt încă mașinării pentru că ei încă nu sunt capabili să vadă, nici să gândească. De exemplu, Honda a construit un robot umanoid, ASIMO, care poate merge la fel cum oamenii o fac. Așteptările sunt ca acest robot să fie dezvoltat spre a fi văzut mergând singur.

În zilele noastre viziunea artificială este prezentă într-o mare varietate de aplicații din lumea reală, cum ar fi:[28]

Recunoașterea optică a caracterelor( eng. Optical Character Recognition – OCR) – reprezintă translatarea mecanică sau electronică a imaginilor cu scris de mână, tipărit sau printat în text editabil. [31] (figura 1.3.10)

Figură 1.3.10 Viziunea artificială utilizată pentru recunoașterea optică a caracterelor[32]

Inspecția automată – inspecția automată a părților componente pentru asigurarea calității utilizând iluminare specializată pentru măsurarea toleranțelor pe aripile aeronavelor sau parților componente ale automobilelor sau pentru verificarea pentru defecte în prelucrarea oțelului utilizând razele X.

Producție – recunoașterea obiectelor pentru verificarea automată a benzilor.

Construirea de modele 3D – sisteme complet automate de construcție a modelelor 3D.

Imagistică medicală – înregistrarea imagisticii înainte de operații și în timpul acestora sau realizarea de studii pe termen lung legate de morfologia creierului uman la diferite vârste.(figura 1.3.11)

Figură 1.3.11 Viziunea artificială utilizată în imagistica medicală[33]

Siguranța automobilelor – detectează obstacole neașteptate, cum ar fi pietoni pe stradă, în condițiile în care tehnicile de viziune activă, cum ar fi radarul, nu funcționează bine. Cercetările în domeniul inteligenței artificiale, mai exact în subdomeniul viziunii artificiale, se îndreaptă către producerea de mașini inteligente și mașini care se conduc singure. Capabilitățile de ,,a simți” ale autovehiculelor, senzorii utilizați în camerele video, radarele, au făcut din acest domeniu unul simplu și eficient. Dar, automobilele fără șofer, respectând multitudinea de condiții impuse, sunt chiar mai dificile și provocatoare decât controlul unei nave spațiale. [29] Vehiculele autonome pot salva vieți prin reducerea accidentelor și prin gestionarea ambuteiajelor din trafic.(figura 1.3.12)

Figură 1.3.12 Viziunea artificială utilizată în siguranța automobilelor[34]

Potrivirea mișcării – îmbinarea imagisticii generate de calculator (eng. Computer-generated imagery – CGI) cu acțiunile din viața de zi cu zi prin urmărirea punctelor caracteristice în înregistrarea video sursă pentru a estima mișcarea tridimensională a camerei și ,,forma” mediului.

Captarea mișcării – utilizând marcatori retro-reflexivi preluați de la mai multe camere sau alte tehnici bazate pe viziune pentru urmărirea actorilor pentru animațiile computerizate.

Supraveghere – monitorizare pentru detectarea intrușilor, analiza traficului pe autostrăzi, monitorizarea piscinelor pentru salvarea victimelor de la înec. (figura 1.3.13)

Figură 1.3.13 Viziunea artificială utilizată pentru monitorizarea piscinelor pentru salvarea victimelor de la înec[35]

Recunoașterea amprentei – pentru autentificarea automată la acces , de asemenea și pentu aplicații medico-legale.(figura 1.3.14)

Figură 1.3.14 Viziunea artificială utilizată pentru autentificarea automată la acces utilizând recunoașterea amprentei[37]

Detecția feței – pentru a crește focalizarea camerelor. (figura 1.3.15)

Figură 1.3.15 Viziunea artificială utilizată pentru detecția feței[36]

Autentificare vizuală – autentificarea automată a membrilor familiei la calculatorul casei prin așezarea în fața camerei web.

Ochii sunt o bogată sursă de informație și joacă un rol crucial în furnizarea de context și servesc drept mandatari pentru atenția și intenția omului. Ființele umane au privit mereu ochii pentru a obține mai multe informații, așa cum este evidențiat prin interacțiunile noastre zilnice.

Există trei metode fundamentale prin care mișcările ochiului pot fi înregistrate obiectiv.[39] [38]

Prima metodă este bazată pe un sistem mecanic ( sau hidraulic) atașat direct ochiului. Aceasta era o metodă invazivă și a fost înlocuită imediat de celelalte două.

Metoda optică de înregistrare a rotațiilor ochilor este mai bine cunoscută. Reflexiile de pe cornee a unei surse de lumină este înregistrată. Există câteva dezavantaje ale acestei proceduri. Capul este imobilizat și, în general, o puternică strălucire este furnizată de sursa de lumină. Ochii trebuie ținuți deschiși pe parcursul înregistrării deoarece chiar și clipirile pot altera o parte din înregistrare. Este necesar un sistem complicat dacă înregistrarea este făcută în două meridiane, în loc de unul.

A treia metodă de înregistrare a mișcării ochiului, așa numita metodă electrică, nu are niciunul din dezavantajele prezentate mai sus. Acuratețea și precizia acestei metode este, încă, un subiect care este deschis spre dezbatere.

Eye tracking-ul este o tehnologie care pune utilizatorul în controlul dispozitivelor sale, prin utilizarea ochilor săi, asemănător cu modul natural de interacțiune dintre el și dispozitive.

Un dispozitiv sau un computer echipat cu un dispozitiv eye tracker ,,știe” intențiile utilizatorului deoarece modul de privire este o aproximare bună a ceea ce gândește utilizatorul.[50]

Multe dintre sistemele eye tracker moderne urmăresc neinvaziv ochii utilizatorului prin reflectarea unei lumini infraroșii pe ochi și detectează poziția acestor reflexii pentru a localiza unde este irisul fixat. [49]( Figura 1.3.16)

Figura 1.3.16 Variante de vizualizare a ochiului, întunecat(stânga) și luminat (dreapta) [51]

Sistemele eye tracker sunt disponibile în două variante:

– varianta de sistem cu capul fixat(eng. Head Fixed System);(Figura 1.3.17)

Figura 1.3.17 Sistem eye tracker în varianta cu capul fixat [57]

– varianta de sistem montat pe cap(eng. Head Mounted System).(Figura 1.3.18)

Figura 1.3.18 Sistem eye tracker în varianta montată pe cap[58]

Superioritatea sistemelor montate pe cap este evidentă. Pentru susținerea acestei idei sunt amintite următoarele avantaje: [53] [54][55]

– sistemul este ușor de utilizat, acest sistem nu necesită utilizatorului o experiență de training anterioară;

– informațiile legate de mișcarea ochilor sunt preluate în timp real;

– pentru unele aplicații nu necesită calibrare;

– funcția auto-threshold adaptează rapid valorile de iluminare de prag pentru a deosebi pupila și reflexia;

– poate determina automat unde este concentrat interesul utilizatorului;

– poate prezenta intensitatea atenției cu care utilizatorul privește spre ecran;

– kit-ul de dezvoltare puternic permite cu ușurință interfațarea cu alte aplicații;

– analiză grafică a datelor culese cu o reprezentare fixată în timp;

– prezentarea ușoară a stimulilor, pentru experimente;

– datele culese prezintă coordonatele bidimenionale ( X, Y) ale poziției ochiului, mărimea pupilei și distanța până la ecran.

Dintre dezavantajele acestui sistem se remarcă: [54] [55][56]

– costul ridicat al sistemului;

– unii utilizatori nu pot folosi acest echipament, este vorba de persoanele care poarta lentile de contact, ochelari, au gene foarte lungi etc.;

– pentru aplicațiile în care este necesară calibrare aceasta ocupă o perioadă mare de timp. Acest aspect poate determina utilizatorul să nu mai utilizeze dispozitivul.

– precizia este de ordinul centimetrilor.

Varianta de sistem cu capul fixat prezintă următoarele avantaje:[54]

– ușurința de instalare;

– prezentarea ușoară a stimulilor;

– oferă o analiză a datelor;

Dezavantajele variantei cu capul fixat sunt:[59]

– necesită un număr mare de teste pentru cuantificarea de rezultate notabile;

– mediul de test este limitat, limitând astfel și comportamentul utilizatorului;

– unele sisteme necesită camere web, care scad precizia.

1.4 Concluzii

Sistemele eye tracker ,,înțeleg” intențiile utilizatorului cunoscând spre ce este ghidata atenția utlizatorului în orice moment al utilizării dispozitivului.

Utilizând sistemele eye tracker în varianta montată pe cap se pot crea noi experiențe pentru utilizator prin combinarea dispozitivului cu alte modalități de intrare, cum ar fi, tastatura, mouse-ul, joystick, touchpad și comenzi vocale.

De asemenea, interfețele utilizatorilor pot fi mult mai naturale și captivante, termenul folosit în cercetările din domeniu este ,,umanizate”, decât interfețele convenționale. De exemplu, de fiecare dată când dă click pe o iconiță utilizatorul a privit-o înainte, iar dacă calculatorul ,,știe” unde utilizatorul privește nu mai este nevoie să folosească mouse-ul pentru a-i ,,arăta” asta.

Sistemele eye tracker în varianta montată pe cap atribuie utilizatorului controlul cât mai fin asupra aplicației, fără un efort din partea sa.

Capitolul 2: Prezentare generală a dispozitivului de urmărire a mișcării ochilor Arrington

2.1 Prezentare generală

EyeTracker-ul Arrington a fost conceput pentru a fi cel mai bun de pe piață la momentul lansării sale. Dintre caracteristicile care îl recomandau pentru această poziție se remarcă faptul că este foarte ușor de utilizat, este fiabil și est robust.

Figura 2.1.1 Conținutul pachetului livrat de Arrington Research

ViewPoint EyeTracker furnizează un mediu complet de evaluare a mișcării ochilor, incluzând prezentarea integrată a stimulilor, mișcarea simultană a ochilor și monitorizarea diametrului pupilei, dar și un kit de dezvoltare software pentru comunicarea cu alte aplicații. [40]

Încorporează câteva metode de la care utilizatorul poate selecta să optimizeze sistemul pentru o aplicație particulară. Oferă mai multe metode de cartografiere a semnalelor de poziție extrase din imaginea video segmentată în coordonatele EyeSpaceTM , către punctul dorit de participant, în GazeSpaceTM.[40]

În diagrama de mai jos(figura 2.1.1) se prezintă anatomia ochiului pentru a ușura înțelegerea termenilor utilizați în prezentarea dispozitivului.

Figură 2.1.1 Vedere transversală asupra ochiului[40]

Ochiul este un organ a cărui principală funcție este cea de a detecta lumina. Se compune dintr-un sistem sensibil la schimbările de lumină, capabil să le transforme în impulsuri

nervoase. Ochii simpli nu fac altceva decât să detecteze obiectele din jur, care sunt luminate sau obscure.[40]

Ochiul funcționează prin proiectarea imaginilor pe o retină sensibilă la lumină, de unde se transmite un semnal spre encefal prin intermediul nervului optic. Ochiul are o formă sferică, este umplut de o substanță transparentă, gelatinoasă, numită umoare vitroasă, are o lentilă de

focalizare numită cristalin și, adeseori, un mușchi numit iris, care reglează cantitatea de lumină care intră.[40]

Lumina pătrunde prin partea din față a ochiului printr-o membrană transparentă numită cornee, înconjurată de o zonă numită albul ochiului sau sclerotică. În spatele corneeei se găsește irisul, un disc colorat (acesta are un caracter unic pentru fiecare individ). Între cornee și iris există un lichd numit umoare apoasă. Irisul este perforat în centru de un orificiu de culoare neagră, denumit pupilă. Pentru ca ochiul să nu fie deteriorat, atunci când lumina este foarte puternică, pupila se contractă ( și prin urmare se micșorează), iar în caz contrar, atunci când este întuneric, pupila se mărește. În continuare, lumina traverseaza cristalinul, acesta având funcția de lentilă biconvexă, apoi umoarea sticloasă, în final imaginea fiind proiectată pe o membrană numită retină. O membrană subțire, transparentă, denumită conjunctivă, căptușește interiorul pleoapelor și o parte din sclerotică.[40]

În cazul ochiului emetrop ( vedere normala) imaginea se formează pe retină. Un obiect situat la o distanță mai mare necesită mai puțină refracție decât unul situat la o distanță mai mică. Cel mai mare procentaj din procesul de refracție are loc în cornee, restul refracției având loc în cristalin.[40]

De exemplu, un subiect luminat reflectă raze luminoase, dar proiectând direct aceste raze pe un ecran observăm că acestea nu formează o imagine clară și bine definită. Razele proiectate de subiect nu sunt coerente, se împrăștie în toate direcțiile intersectându-se în drumul lor cu razele reflectate de ecran, obținându-se un haos luminos, adică pe ecran nu se formează puncte corespondente punctelor care definesc subiectul.

Figura 2.1.2 Formarea imaginii subiectului bazată pe refracție [62]

Pentru formarea corectă a imaginii este necesar un dispozitiv care să focalizeze razele emise de subiect. Acest dispozitiv poartă denumirea de sistem focal, lentilă sau obiectiv.

În figura 2.1.3 este reprezentat un sitem care realizează focalizarea razelor emise de subiect ( sistem focal).

Figura 2.1.3 Sistem focal [62]

Pentru comparație se prezintă în figura 2.1.4 un sistem care nu realizează focalizarea (sistem afocal).

Figura 2.1.4 Sistem afocal [62]

Utilizându-se sistemul focal, prezentat în figura 2.1.3, imaginea subiectului, din figura 2.1.2, este reprezentată ca în figura 2.1.5.

Figura 2.1.5 Reprezentarea imaginii subiectului utilizând sitemul focal [62]

Lumina trece prin mediile transparente (cornee, umoare apoasă, umoare sticloasă) și cristalin și formează o imagine rasturnată pe retină. Pe retină, celulele specializate transformă imaginea în impulsuri nervoase. Acestea ajung prin nervul optic până la regiunea posterioară a creierului. Acesta din urmă interpretează semnalele printr-un mecanism complex care implică milioane de neuroni.[41]

În figura 2.1.2 se prezintă funcționarea EyeTracker-ului într-o configurație fixată pe cap.Numerele din această secțiune se referă la elementele sau numerele bloc din figură.[40]

Sursa de lumină în infraroșu ( item 1) servește și pentru iluminarea ochilui ( item 2) și, de asemenea, furnizează o reflecție speculară de la suprafața ochiului la cornee. [40]

În modul întunecat al pupilei, pupila acționează ca un recipient infraroșu, care apare ca o gaură neagră. În modul luminat al pupilei, efectul ochiului roșu face ca pupila să apară mai deschisă decât irisul.( De notat faptul că sunt necesare configurații diferite de camera și iluminator pentru operația cu pupila luminată).[40]

Semnalul video de la cameră(item 3) este digitalizat de dispozitivul de capturare video(item 4) într-o formă care poate fi înțeleasă de calculator. Calculatorul ia imaginea digitalizată și aplică algoritmii de segmentare a imaginii (item 5) pentru localizarea ariilor pupilei și luminozitatea reflexiei corneei. Procesarea adițională a imaginii (item 6) localizează centrul acestor arii și, de asemenea, calculează vectorul diferență între locațiile centrului. O funcție de mapare (item 7) transformă semnalele de poziție ale ochiului (item 6) în coordonate EyeSpace ale coordonatelor subiectului GazeSpace(item 8). În continuare programul testează să determine unde este punctul de gaz în interiorul oricărei alte regiuni de interes ( ROI- eng. region of interest ) pe care utilizatorul le-a definit.[40]

Sistemul de calibrare (item 12) poate fi utilizat să prezinte calibrarea stimulilor pentru utilizator și măsurarea semnalelor poziției ochilor (item 6) pentru fiecare punct stimul. Aceste informații sunt apoi utilizate de sistemul de calibrare pentru a calcula o funcție de mapare optimă pentru maparea poziției gazului în GazeSpace (item7).[40]

Figura 2.1.2 Funcționarea eye tracker-ului în varianta montată pe cap[40]

2.2 Lumina infraroșie

Valoarea de utilizare a luminii infraroșii este ilustrată în figura 2.2.1. Partea stângă a imaginii prezinta o imagine în lumina normală, în acest caz pupila ochiului este aproape imposibil de disociat de irisul întunecat.[40]

Figura 2.2.1. Vizualizarea ochiului utilizând lumina infraroșie[40]

Partea dreaptă a figurii prezintă o imagine a aceluiași ochi, dar văzută cu o cameră senzitivă cu infraroșu sub condiții de iluminare cu infrarosu, pupila fiind ușor de deosebit. De notat faptul că în fiecare caz subiectul poartă o lentilă de contact.[40]

Problema limitelor de siguranță a radiațiilor este frecvent discutată. 10mW/cm2 este, probabil, cea mai mare valoare de expunere a corneei o perioadă îndelungată. Aceste limite trebuie să fie respectate pentru a se asigura siguranța subiectului.[40]

ISO/DIS 10342 dă fondul maxim de radiații recomandat pentru utilizarea în instrumentele oftalmologice de 120 mW/cm2, dar această valoare este pentru o expunere scurtă.[40]

Arrington Research asigură toți utilizatorii că sistemele de iluminare cu infraroșu (IR) sunt proiectate astfel încât să se încadreze în limitele de siguranță ale expunerii.

2.3 Maparea în GazePoint

Maparea în GazePoint este, de obicei, necesară pentru a determina unde se uită o persoană, pentru determinarea punctului de gaz, numit, de asemenea, și punctul dorit. ( Figura 2.3.1.)Această activitate este realizată prin utilizarea unei funcții matematice pentru maparea semnalului poziției ochiului în coordonate EyeSpace ale unei imagini video a punctului de gaz în coordonate GazeSpace ale stimulului vizual.[40]

Există mulți algoritmi care pot fi utilizați pentru realizarea mapării și mulți dintre ei sunt deținuși de companii. Pe departe, cei mai buni algoritmi sunt non-liniari. Aceasta este pentru că mișcările ochiului sunt de rotație, de exemplu, translatia semnalului poziției ochiului care apare pe cameră este o funcție trigonometrică a unghiului de gaz al subiectului.[40]

Mai mult, unghiul camerei poate furniza o linie oblică pe suprafață. ViewPoint EyeTracker angajează una dintre cele mai puternice și robuste metode disponibile.[40]

Figura 2.3.1. Maparea unei pagini web[60]

2.4 Interfețe

Există multe moduri de interfațare cu EyeTracker-ul ViewPoint pentru sincronizarea datelor, comunicație și control:[40]

Interfața grafică cu utilizatorul – Graphical User Interface (GUI);

Interfața cu linia de comandă – Command Line Interface (CLI). EyeTracker-ul furnizează o interfață cu linia de comandă care permite utilizatorilor să controleze orice aspect legat de program. Acesta este constituit dintr-un set de instrucțiuni și de parsatorul de linie de comandă (eng. Command Line Parser – CLP), care interpretează instrucțiunile. Fiecare instrucțiune începe cu un termen cheie (eng. KeyTerm) și poate fi urmată de unul sau mai multe argumente(eng. Arguments).

Liniile de comandă pot conține instrucțiuni succesive separate de punct și virgulă sau grupate în acolade.

Câteva comenzi cer argumente. Argumentele valide includ:[40]

– boolean: poate fi unul dintre urmatoarele: yes, no, true, false, on, off, 1, 0, toggle.

– integer: trebuie să fie biți numerici, pot include și + sau -. De notat faptul că semnul negativ poate fi, de asemenea, folosit pentru a specifica direcția de schimbare pe liniile TTL, așadar, -0 indica o tensiune căzătoare pe canalul 0 și +0 indică o tensiune crescătoare pe canalul 0.

– float: trebuie să fie biți numerici, pot include +, -, ., ; de exemplu : 0.75.

– string: un set de caractere ASCII afișabile în interiorul ghilimelelor. De exemplu: ” This //, that }, the : other”.

Kit-uri de dezvoltare software – Software Development Kit (SDK). Software-ul ViewPoint include un puternic kit de dezvoltare software care permite interfațarea cu ViewPoint în timp real, dând acces de timp real pentru toate datele ViewPoint. Interfața SDK se bazează pe o memorie partajată într-o bibliotecă dinamică(Dynamic-link library- DLL).SDK-ul este condus de evenimente/mesaje astfel încât nu există nici o încărcare de procesor și oferă o latență de o microsecundă. Furnizează pentru calibrare stimuli în fereastra stimulilor utilizatorului, sau în aplicația utilizatorului de trasare în stimulii ViewPoint și ferestrele GazeSpace.

ViewPoint Client este un program care rulează pe un calculator de control, aflat la distanță, și care comunică cu mediul ViewPoint EyeTracker. Interfațează cu o copie a DLL și schimbă date cum face ViewPoint, dar de obicei ia mai puțin de un procent din resursele CPU. Asta înseamnă că aceleași aplicații startificate pot fi utilizate pe un calculator controlabil la fel de ușor ca același calculator. ViewPoint include și un server Ethernet, ViewPointClient stabilind o legatura cu acest server. ViewPointClient pentru PC si MAC este inclus gratuit cu ViewPoint.

Interfețe de a treia generație – Third Party Interface. Integrity este un pachet de interfețe între EyeTracker-ul ViewPoint și aplicații de a treia generație, care este furnizat de Arrington Research, INC. pentru a asigura calitatea profesională, uniformă și completă cu produsele favorite ale utilizatorilor.

Acestea furnizează acces la date, completează controlul eye tracker-ului și integrarea și sincronizarea datelor, toate în timp real. Integrity este inclus gratuit în ViewPoint.[40]

Interfețele includ:ViewPoint EyeTracker toolbox pentru MATLAB, EBasic Interface pentru E-Prime, LabView, Python, Presentation.[40]

În tabelul următor( tabelul 2.4.1) se scot în evidență caracteristicile fiecărei variante de EyeTracker.[40]

Tabelul 2.1 Caracteristicile fiecarei versiuni de eye tracker [40]

Există mai multe opțiuni pentru vizualizarea datelor înregistrate, incluzând: [40]

în timp real în ferestrele software-ului (GazeSpace);

utilizând programul de analiză a datelor furnizat gratuit cu ViewPoint;

analiză post-hoc a fișierelor de date ASCII utilizând programele Excel, MATLAB, Mathematica etc.

2.5 Prezentare ecran principal

Figura 2.5.1 Fereastra de start a aplicației ViewPoint EyeTracker

După lansarea în execuție a programului ViewPoint EyeTracker, ecranul de start arată ca în figura 2.5.1 și cuprinde următoarele ferestre:

EyeCamera – Această ferestră afișează imaginea video a ochiului și face o analiză grafică a imaginii, identificând printr-un cerc unde este localizat irisul.

(a)

(b)

(c)

Figura 2.5.2 (a)Fereastra EyeCamera din programul ViewPoint EyeTracker cu privirea centrată, (b)privirea orietată în partea stângă și privirea orientată în partea dreaptă

În imaginile de mai sus s-au prezentat ecranele ViewPoint, scoțându-se în evidență fereastra EyeCamera atât pentru situația în care subiectul privește în partea stângă( a), cât și în partea dreaptă(b).

EyeSpace – Această fereastră reprezintă geometria imaginii prezentate în fereastra anterioară. De asemenea, în această ferestră se afișează un vector al poziției relative a locațiilor pupilei sau un vector de diferență, care este obținut în timpul calibrării.

Figura 2.5.3 Fereastra EyeSpace din programul ViewPoint EyeTracker

GazeSpace – În această fereastră se reprezintă în miniatură stimulii, pentru a permite celui care face înregistrarea să monitorizeze mișcarea ochilor în timpul înregistrării.

Figura 2.5.4 Fereastra GazeSpace din programul ViewPoint EyeTracker

Controls – Această fereastră permite celui care efectuează înregistrarea să ajusteze setările parametrilor de analiză și de mapare a imaginii.

Figura 2.5.5 Fereastra Controls din programul ViewPoint EyeTracker

Tab-ul Eye permite efectuarea de ajustări ale calității imaginii ochiului și specificarea metodei de urmărire.

Tab-ul Criteria furnizează câteva criterii pentru acceptarea și îndepărtarea datelor. Utilizând aceste criterii în permanență și cu atenție, poate fi crescută substanțial performanța în diferite situații.

Tableul 2.5.1 Diferite tipuri de criterii

Tab-ul Display specifică informații de afișat în ferestrele Stimulus și GazeSpace.

Tab-ul Regions setează regiunile de interes( Regions Of Interest – ROI) și execută calibrarea acestor regiuni.

Tab-ul Scene adaptează luminozitatea, contrastul, saturarea etc. imaginii scenei.

Tab-ul 3D este disponibil doar pentruoptiunea de spațiu de lucru tridimensional(3D- WorkSpace).

Tab-ul Record prezintă o soluție ușoară și rapidă de deschidere, pauzare și închidere a fișierelor de date.

Status – Această fereastră oferă informații despre performanțele de procesare și măsurări.

Figura 2.5.6 Fereastra Scene din programul ViewPoint EyeTracker

Stimulus – Această fereastră prezintă exact ceea ce subiectul vede, fiind proiectată să fie prezentată pe întreg ecranul, de preferat pe un monitor secundar.

PenPlot – Această fereastră trasează grafice în timp real, de exemplu: poziția pe X și pe Y a irisului, viteza de mișcare a ochiului, lațimea pupilei, identificarea evenimentelor în timpul înregistrării( se identifică atunci când subiectul clipește), etc. Informațiile prezentate sub formă de grafice pot fi selectate de utilizator din meniul din fereastra principală.

Figura 2.5.7 Fereastra PenPlot din programul ViewPoint EyeTracker

Se poate observa cu ușurință că această fereastră este foarte utilă pentru reprezentarea caracteristicilor ochiului. De exemplu, primele două elemente sunt legate de localizarea irisului în planul bidimensional XOY.

Figura 2.5.8 Coordonatele X și Y ale punctului în care este localizat irisul

În acest exemplu coordonatele poziției irisului, la momentul înregistrării, sunt: pe axa X ,0.49, iar pentru axa Y, 0.55.

Identificarea clipirilor subiectului pot fi făcute în mai multe câmpuri din fereastra PenPlot. Ținând cont de exemplul prezentat anterior, clipirile se identifică în următoarele câmpuri, în regiunile evidențiate:

Figura 2.5.9 Identificarea clipirilor subiectului

Există un câmp cu funcționalitate specială de identificare a clipirilor( Pupil Aspect(Blinks)), în timp ce celelalte câmpuri au funcțiuni diferite, dar se pot extrage și informații despre acest aspect.

2.6 Poziționarea camerelor

Pentru preluarea corectă a informațiilor există o serie de instrucțiuni pentru poziționarea corectă a camerelor. În general, ochiul ar trebui să se potrivească astfel încât colțurile ochiului să fie situate pe laturile ferestrei.[40]

2.6.1 Poziționarea camerelor QuickClamp

În cazul utilizării hardware-ului HeadLock sau QuickClamp s-au enunțat următoarele instrucțiuni pentru poziționarea corectă a camerei și a LED-ului:[40]

Se poziționează camera cu aproximativ 40, pînă la 45 de grade, sub linia vizuală a subiectului(privită din lateral) și la distanța corespunzătoare față de ochi (aproximativ 4-7 cm de ochi).

Se poziționează LED-ul astfel încât să apară la ora 11, pentru ochiul drept, și ora 1, pentru ochiul stâng atunci când se privește la obiectivul camerei astfel încât suprafața superioară a LED-ului și a obiectivului camerei să fie de-a lungul aceluiași plan orizontal.

Camera trebuie sa fie deplasată în poziție laterală astfel încât LED-ul să fie centrat de-a lungul axei optice a ochiului, în timp ce ochiul se uită în centrul afișajului. Cu alte cuvinte, dacă subiectul privește în jos, ar trebui să se uite la LED, nu la obiectivul camerei. Mișcarea relativă dintre cap și EyeCamera trebuie să fie redusă la minimum, ceea ce reprezintă scopul sistemelor de poziționare Arrington Research Head Precision Head ( QuickClamp și HeadLock) și al sistemului de camere.

2.6.2 Poziționarea camerelor EyeFrame

Pentru aceste camere instrucțiunile de poziționare sunt:[40]

Ochelarii EyeFrame se poziționează pe subiect;

Se restrânge cureaua pentru a minimiza mișcarea capului;

Se utilizează clema de prindere pentru a reduce greutatea cablurilor și răsucirea acestora;

Se reglează poziția EyeCamera atunci când subiectul privește în față și globul ocular umple zona maximă posibilă;

Lentilele de pe camera EyeFrame pot fi rotite de multe ori, manual, prin prinderea părții lentilei care se extinde de carcasă.

Se defocalizează aparatul foto astfel încât luminozitatea corneei să se extindă până la dimensiunea a opta (sau mai mult) a pupilei. Pe lângă faptul că efectul de luminozitate este mai mare, defocalizarea scade și intensitatea reflecțiilor extra luminoase (datorită funcției de extindere a punctului). Defocalizarea poate fi realizată prin rotirea obiectivului camerei sau prin reglarea barei de transmisie pentru a poziționa camera mai aproape sau mai departe de ochi.

2.7 Calibrarea

Pentru calibrarea sistemului, fie el în varianta cu capul fixat sau varianta montată pe cap, se recomandă de către producător utilizarea a cel puțin 9 puncte de calibrare, având în vedere că 16 puncte de calibrare furnizează o calitate foarte bună. Calibrarea presupune pargurgerae unor etape care țin de fixarea ochilor, poziția capului, distanța față de ecran, luminozitate, în general, de aspectele care pot influența înregistrarea mișcării ochilor.[40]

2.7.1 Calibrarea camerelor fixate pe cap

Pentru sistemul HeadLock, QuickClamp, sistemul de la distanță sau alte sisteme în care se fixează camerele pe cap, se poziționează monitorul pe care va fi afișată fereastra Stimuli astfel încât subiectul să privească înainte, poziția privirii lor este aproximativ două treimi din calea spre monitorulu vertical, centrat orizontal. Fereastra Stimuli trebuie plasată astfel încât subiectul să poată vedea cu ușurință atunci când este poziționat confortabil. Acest lucrueste cel mai bine realizat folosind un al doilea monitor și un afișaj pe ecran complet a ferestrei Stimuli.[40]

După îndeplinirea acestor cerințe introductive, pentru calibrarea sistemului trebuie realizate următoarele sarcini:[40]

Se avertizează subiectul asupra debutului stimulilor de calibrare pentru a asigura o calibrare reușită.

Subiectul va învăța să primească direct în centrul fiecărui stimul până când acesta converge într-un punct. Implicit este ca punctele de stimulare să apară în ordine aleatorie.

Se pornește calibrarea apăsând butonul Auto-Calibrare din fereastra EyeSpace. Mesajul de avertizare ,,Pregătește-te” va apărea pe ecran pentru a atrage atenția subiectului asupra începutului procesului de calibrare. Acest lucru poate fi oprite sau timpul de afișare ajustat prin opțiunea Avansat din fereastra EyeSpace.

În timpul procesului de calibrare, trebuie să existe siguranța că pupila este localizată cu precizie în orice moment, monitorizând punctele verzi și ovalul galben, adică monitorizând segmentarea imaginii.

Se verifică calibrarea utilizând graficul punctelor de calibrare din fereastra EyeSpace. Etalonarea reușită va fi indicată printr-o configurație rectilinie și bine separată de puncte verzi corespunzătoare locațiilor pupilei în momentul capturării punctului de calibrare.

Punctele răzlețe de calibrare pot fi identificate ;i recalibrate sau omise.Glisorul punctului de date din fereastra EyeSpace permite utilizatorului s[ selecteze punctele de calibrare pentru a fi recalibrate. Punctul activ de date este bine evideníat grafic. Punctele de date pot fi de asemenea selectate cu mouse-ul făcând click stânga pe punctul de calibrare.

Se selectează punctele răzlețe de calibrare făcând click pe butonul stâng al mouse-ului în punctul de calibrare din fereastra EyeSpace.

Se ghidează subiectul să privească centrul stimului și să reprezinte punctul de calibrare apăsând butonul ,,re-present” în fereastra EyeSpace. Mesajul de avertizare ,,Pregătește-te” va apărea pe ecran în locația punctului de calibrare pentru a atrage atenția subiectului asupra locației de reprezentare. Acest lucru poate fi oprit sau timpul de afișare poate fi ajustat prin secțiunea ,,Avansat” din fereastra EyeSpace. Acest exercițiu poate fi repetat cu cât mai multe puncte de linii de trecere, atunci este necesară o recalibrare completă.

Dacă un anumit punct nu poate fi recalibrat, se selectează acel punct și se apasă butonul ,,Omit”.

O verificare rapidă a corectitudinii calibrării poate fi făcută prin solicitarea subiectului de a privi anumite puncte ale stimulului și de a folosi fereastra GazeSpace pentru a verifica dacă punctul de vedere corespunde punctelor examinate.

2.7.2 Calibrarea camerei de poziție

Calibrarea camerei este efectuată în raport cu pixelii matricei CCD( charged-coupled device – dispozitiv cu cuplaj de sarcină), nu cu conținutul imaginii. Acest lucru este similar cu calibrarea în raport cu ecranul CRT( Cathode Ray Tube – Tub catodic) și nu cu imaginea afișată pe acesta.[40]

După ce s-a realizat o bună segmentare a imaginii, se efectuează următoarele etape de calibrare a camerei de poziție: [40]

Se selectează elementul din meniu: Stimuli -> Vizualizare -> Camera de poziție. Acest lucru va determina afișarea camerei în fereastra GazeSpace. Se va modifica, de asemenea, modul de calibrare pentru fixare și incrementare și se determină afișarea matricei punctului de stimulare a calibrării în fereastra GazeSpace.

Se reglează camera de poziție astfel încât centrul câmpului vizual al subiectului să fie în centrul imaginii.

Dacă este necesar, se reglează luminozitatea și contrastul imaginii camerei de poziție utilizând fereastra de control. Se reduce luminozitatea astfel încât supraputerile să fie vizibile.

Subiectul trebuie să stea confortabil și să rămână nemișcat pe durata procesului de calibrare. În timpul acestui proces nu ar trebui să privească ecranul.

Se poziționează un pix sau degetul în fața subiectului astfel încât vârful să apară în fereastra GazeSpace din cercul de calibrare activ( albastru).

Se va cere subiectului să își miște ochii, păstrând capul în așa fel încât pixul să rămână în punctul de calibrare activ.

După ce subiectul privește punctul, se selectează butonul ,,Re-present” din fereastra EyeSpace. Asteriscul de pe acest buton indică modul de prezentare ,,snap”, iar ++ indică ,,auto-increment”.

Se repetă pașii 5-7 cu fiecare punct de calibrare activ până când se termină setul.

Se consultă graficul punctelor de calibrare din fereastra EyeSpace. Etalonarea reușită va fi indicată printr-o configurație rectilinie și bine separată se puncte verzi corespunzătoare locațiilor pupilei în momentul capturării punctului de calibrare. Curbarea uniformă a câmpului de puncte este acceptabilă.

Punctele de date de calibrare pot fi identificate și recalibrate. Se selecteaza punctul de calibrare răzleț, făcând click pe butonul stâng al mouse-ului în punctul din fereastra EyeSpace. Punctul activ de date este bine evidențiat grafic.

Se repetă pașii 5-7 pentru punctul de calibrare răzleț.Acest exercițiu poate fi repetat cu cât mai multe puncte de calibrare după cum este necesar.Dacă punctele de calibrare nu sunt rectilinii, de exemplu, există linii de trecere, este necesară o recalibrare completă.

O verificare rapidă a preciziei de calibrare poate fi făcutî prin solicitarea subiectului să privească anumite puncte ale stimulului și, folosind fereastra GazeSpace, pentru a verifica dacă punctul de vedere corespunde punctelor examinate.

O declarare consecventă în poziție poate fi corectată utilizând caracteristica de corectare a alunecării. Se selectează un punct de calibrare din mijlocul grupului. Se repetă pașii 5-7 de mai sus, dar apăsând pe butonul Slip-Correction în loc de butonul ,,Re-present”.Aceasta ajustează automat calibrarea pentru a compensa alunecarea măsurată în planurile X și Y.

2.8 Localizarea pupilei

Fereastra EyeCamera afișează imaginea video a ochiului, precum și grafica suprapusă, care furnizează grafic informații despre segmentarea imaginii și despre performanță. Graficele suprapuse includ:[40]

Rezultatele pragurilor ( de exemplu, puncte verzi pentru a indica zone întunecate);

Rezultatele locației pupilei și ale calculului diametrului ( potrivirea ovală galbenă pentru pupilă);

Rezultatele localizării reflexiei corneei.

Mouse-ul este folosit în această fereastră pentru a trasa un dreptunghi pentru a defini o zonă de căutare limitată, uneori numită poartă, atât pentru pupilă, cât și pentru clipire.[40]

O caracteristică este orice conținut din imaginea video care poate fi identificat, localizat și urmărit. Caseta Combo ( din fila Eye din fereastra Controls) cu metode de caracteristică permite utilizatorului să selecteze ce caracteristici să utilizeze. Metodele caracteristice se încadrează în două categorii de bază:[40]

Metodele punctului unic de date;

Metodele de puncte multiple de date.

Pentru localizarea pupilei trebuie să se urmărească pașii ce urmează:[40]

Camera trebuie reglată astfel încât pupila să fie centrată în fereastra EyeCamera, subiectul aflându-se în centrul afișajului și globul ocular umple zona maximă posibilă.

Camera trebuie defocalizată astfel încât luminozitatea corneei să se împrăștie până la dimensiunea a opta ( sau mai mult) a pupilei. Pe lângă faptul că efectuează o strălucire mai mare, defocalizarea reduce și intensitatea unor mici reflecții strălucitoare ( în virtutea funcției de împrăștiere a punctului). Defocalizarea poate fi realizată prin rotirea obiectivului camerei sau prin reglarea camerei mai aproape sau mai departe de ochi. În general imaginea ochiului trebuie să fie poziționată astfel încât colțurile ochiului să se afle la marginile orizontale ale ferestrei camerei.

Multe LED-uri ce provin din diferite părți vor produce o formă de lampă de iluminare.Sistemele ViewPoint sunt poâroiectate pentru a produce o iluminare în infraroșu, uniformă difuză.

Dacă imaginea video este prea întunecată sau prea luminată se pot ajusta setările de contrast și luminozitate. Când se ajustează controalele de luminozitate și contrast în ViewPoint obiectivul

general este să crească cât mai mult posibil gama de niveluri de gri, adică să scadă contrastul cât mai mult posibil.

Putem micșora luminozitatea până când obținem o pupilă care este cât se poate de neagră și putem ajusta contrastul astfel încât strălucirea și numai strălucirea să fie de maximumul albului.

AutoImage este de ajutor , mai ales, în condiții de iluminare diferite.

Utilizarea lentilelor corective ( ochelari de vedere ) prezintă două efecte principale legate de faptul că atât suprafețele din față, cât și cea din spate, ale lentilei corective vor reflecta lumina. [40]

În primul rând, lumina reflectată este irosită astfel încât iluminarea ochiului ( calea sursei de lumină ) și imaginea ochiului ( lumina din cameră ) vor fi atenuate. În al doilea rând, reflectarea de la iluminare poate fi refolosită înapoi în cameră, care va fi foarte luminoasă și va provoca auto-irisul camerei pentru a produce o imagine mai închisă a ochiului.

Dacă există o problemă cu relfexia lentilelor corective pe suprafața frontală trebuie să se regleze unghiul lentilei în raport cu ansamblul cu LED-uri. Acest lucru poate fi realizat prin două moduri:

Se înclină ușor lentilele corective prin mutarea căștii astfel încât să se afle în apropierea canalului auditiv. Acest lucru este destul de ușor pentru ramele ușoare de metal de tip elastic, dar nu poate rămâne pe poziție cu rame mai grele.

Se deplasează ușor camera astfel încât să fie la mai mult de 45 de grade față de linia de vedere.

Dacă subiectul supus testării are o pupilă mică atunci trebuie să se scaneze mai dens ( trebuie scanate puncte apropiate împreună ) și trebuie să ajustăm densitatea de scanare la 5. În momentul în care se face calibrarea trebuie să se utilizeze cel puțin 12 puncte de calibrare, iar 16 puncte oferă de obicei o calibrare foarte bună. O calibrare în 6 puncte oferă o calibrare exactă numai de-a lungul axei orizontale și ar trebui să fie evitată în mod obișnuit. [40]

2.9 Concluzii

În ultimii ani tehnologiile în miniatură au avansat considerabil. Sistemele montate pe cap au devenit mult mai mici, mai luminate, și mai puțin costisitoare, chiar dacă capcitățile de rezoluție au crescut considerabil.

Utilitatea dispozitivelor eye tracker, în varianta montată pe cap, poate fi extinsă prin integrarea urmăririi ochilor și recunoașterea vocii creând o interfață care nu necesită utilizarea mâinilor( eng. Hands-free interface). Acestea permit utilizatorilor să controleze informațiile afișate fără utilizarea mâinilor, ceea ce este perfect pentru cei care nu au un control adecvat al mâinilor sau pentru cei care nu se simt comod atunci când utilizează mâinile pentru controlul calculatorului.

Chiar și fără funcția de recunoaștere a vocii pot fi create interfețe speciale care nu neceită nici o comandă pentru schimbarea ecranului. Acest tip de interfață este ideal pentru situațiile în care funcția de recunoaștere a vocii nu este disponibilă( zgomotul din mediul în care se efectuează preluarea este prea mare sau subiectul nu poate comunica verbal).

O caracteristică importantă a acestor sisteme este reprezentată de abilitatea de a furniza utilizatorului o multitudine de informații, de la mai multe surse, prin intermediul unei singure interfețe vizuale.

Dispozitivele eye tracker în varianta fixată pe cap sunt, deja, niște unelte puternice, dar acestea mai pot fi îmbunătățite și adaptate prin intermediul următoarelor dezvoltări:

creșterea capacităților interfeței fără comandă vocală, care utilizează doar mișcarea ochilor ca intrare. Îndepărtarea utilizării mouse-ului în timpul utilizării unui computer. Funcția de mutare a cursorului va fi preluată și executată prin intermediul dispozitivului eye tracker.

reducerea dimensiunilor și a greutății dispozitivelor;

miniaturizarea componentelor calculatorului necesare rulării software-ului dispozitivului eye tracker. Această dezvoltare poate permite crearea unei versiuni portabile care încorporează întregul dispozitiv, atât partea hardware, cât și software.

Capitolul 3 Prelucrarea datelor experimentale

3.1 Aplicația software utilizată pentru prelucrarea datelor

Dispozitivul EyeTracker Arrington poate fi interfațat cu mai multe aplicații software existente pe piață la ora actuală. Dintre acestea se vor enumera în continuare doar cele mai cunoscute:

MATLAB;

LabView;

E-Prime;

Python.

În continuare se va prezenta prelucrarea datelor experimentale utilizând aplicația software MATLAB.

MATLAB( MATrix LABoratory) este un limbaj de programare de înaltă performanță pentru calcul. Acesta integrează unelte de calcul, de vizualizare a rezultatelor și un mediu de programare. Mai mult, acesta este un limbaj de programare modern deoarece are structuri complexe de date, conține unelte implicite de editare și depanare și suportă programarea orientată pe obiect.

Acești factori fac din MATLAB un instrument excelent pentru învățare și cercetare.

Software-ul MATLAB prezintă multe avantaje, în comparație cu limbajele de programare clasice (C, FORTRAN) pentru rezolvarea problemelor tehnice.

În primul rând, acesta este un mediu interactiv a cărui element de bază este vectorul, care nu necesită dimensionare. De asemenea, are rutine implicite puternice care permit o mare varietate de calcule, are comenzi ușor de utilizat pentru vizualizarea grafică a rezultatelor, are pachete pentru aplicații specifice, cum ar fi: procesarea semnalelor, calcul simbolic, teoria controlului, simulare, optimizare, și multe alte câmpuri ale științelor aplicate și ingineriei.

3.2 Rezultatele prelucrării

ViewPoint EyeTracker permite înregistrarea datelor din timpul utilizării dispozitivului EyeTracker Arrington. După ce se oprește înregistrarea se generează un fișier de tip text.

Datele utilizate pentru prelucrare în această lucrare au fost salvate în fișierul data2.txt și au structura prezentată în figura 3.2.1.

Figura 3.2.1 Fișierul text generat de ViewPoint EyeTracker

Fișierul text generat în urma înregistrării mișcării ochilor subiectului conține rezultatele mai multor caracteristici urmărite. Dintre acestea se evidențiază momentul de timp al înregistrării(ATT), poziția irisului pe axa OX(ALX) și, resprectiv OY (ALY), coordonatele corectate pe axa OX (ACX) și OY(ACY), lățimea pupilei (APW), înălțimea pupilei(APH).

Pentru realizarea prelucrării rezultatelor se vor considera de interes coordonatele corectate ale irisului pe axa OX, respectiv pe axa OY.

Având în vedere faptul că fișierul text conține mai multe caracteristici, mai întâi trebuie să se extragă caracteristicile de interes. Acest lucru se va realiza prin crearea unei funcții care să selecteze datele de interes. Această funcție va primi drept argumente un șir de caractere, care va reprezenta numele fișierului text în care s-au salvat datele înregistrării și două variabile de

tip întreg corespunzătoare rândului de început și, respectiv, de sfarșit al datelor de interes în fișierul text. Codul scris în MATLAB aferent acestei funcții este prezentat in Anexa 1.

Pentru a rula această funcție trebuie, în primul rând, ca folderul de lucru curent să cuprindă fișierul text generat de ViewPoint EyeTracker. După realizarea acestei cerințe se introduce comanda în ferestra de comandă, după cum este prezentat în figura următoare.

Figura 3.2.2 Instrucțiunea de preluare a datelor din fișierul text și afișarea acestora

Pentru ușurința utilizării coordonatelor preluate din fișierul de tip text rezultatele generate de funcția data1 vor fi atribuite unei variabile de tip matrice denumită generic date. În această variabilă sunt prezentate pe prima coloană coordonatele pe axa OX la un anumit moment de timp și, respectiv, pe coloana a doua coordonatele pe axa OY.

Figura 3.2.3 Datele preluate cu ajutorul funcției data1

Trebuie menționat faptul că punctul de centru se află la coordonatele 0,5 pe axa OX și 0,5 pe axa OY.

Pe axa OX pot fi identificate mișcările la stânga sau la dreapta a irisului ochiului subiectului. Valorile mai mare de 0,5 pe axa OX indică faptul că subiectul privește în partea stângă, în timp ce valorile mai mici de 0,5 indică o privire orientată spre dreapta.

În schimb, pe axa OY pot fi identificate mișcările în sus sau în jos a irisului ochiului subiectului. Valorile mai mari de 0,5 pe axa OY indică faptul că subiectul privește în jos, în timp ce valorile mai mici de 0,5 indică privirea în sus.

În orice moment al înregistrării localizarea irisului se face ținând cont de cele două coordonate, x și y. De exemplu, la citirea cu numărul 10 coordonatele punctului în care s-a localizat irisul au fost 0,5589 pe axa OX și 0,6295 pe axa OY. Ținând cont și de ceea ce s-a precizat anterior se poate spune faptul că în momentul acestei citiri poziția irisului putea fi identificată ca în figura următoare.

Ținând cont de cele prezentate anterior se poate preciza, având în vedere faptul că valorile sunt mai mari decât valoarea de referință, că punctul s-a deplasat în jos. Pe graficul din figura 3.2.4 punctul de la citirea cu numărul 10 este prezentat în oglindă față de axa OX, în raport cu poziția reală a punctului.

Figura 3.2.4 Poziționarea irisului în raport cu poziția de referință

Pentru genrarea graficelor în MATLAB se va folosi codul prezentat în Anexa 2. Graficele prezintă evoluția punctelor în care irisul subiectului s-a aflat pe parcursul înregistrării.

Figura 3.2.5 Grafice generate de MATLAB

3.3 Concluzii

Tehnologia de eye trecking înregistrează mișcarea pupilei și reușește să recunoască atunci când persoana care poartă ochelarii se uită la un obiect sau își fixează atenția asupra lui.

În toate domeniile în care este prezentă tehnologia eye tracking aduce un aport considerabil prin simplitate, ușurința de utilizare, fiabilitate, însă în domeniul medical, beneficiile acesteia sunt aplicate direct semenilor care au o stare de sănatate precară.

În medicină utilizarea mișcării ochilor împreună cu metode de cercetare convenționale sau cu alți senzori biometrici poate constitui un plus în acțiunile de diagnosticare a bolilor. Se utilizează pentru boli cum ar fi tulburarea de hiperactivitate cu deficit de atenție(ADHD), tulburarea spectrului autismului(ASD), tulburarea obsesiv compulsivă(OCD), shizofrenia, Parkinson, Alzheimer.

Spre exemplu o tânără în vârstă de 19 ani din Marea Britanie a scăpat de scaunul cu rotile în urma unor sesiuni de utilizare a uni dispozitiv eye tracker combinate cu sesiuni de fizioterapie. În doar doi ani tânăra a reușit să își recupereze puterea în mâini și în picioare prin utilizarea acestui dispozitiv.

În domeniul marketingului, de exemplu, cercetările utilizând sistemele eye tracker conduc la răspunsuri pentru o serie de întrebări pe care fiecare manager de marketing și le-a pus măcar o dată, cum ar fi: ,,Care elemente de marketing captează privirea cumpărătorului?”, ,,Pe ce părți ale comunicării de marketing se concentrează consumatorii și pe care le ignoră?”, ,,Ce stimul conduce la procesul de luare a deciziilor de cumpărare?”, etc.

Din dorința de a se produce automobile și avioane cât mai sigure sistemele eye tracker vor sta la baza dezvoltării acestor domenii.

Anexe

Anexa 1 – Funcția de preluare a coordonatelor x și y

function data1 = importfile(filename, startRow, endRow)

%IMPORTFILE Importă date în format numeric dintr-un fișier text sub formă de matrice

DATA1 = IMPORTFILE(NUMEFIS) Citește date din fișierul text cu numele NUMEFIS

%

% DATA1 = IMPORTFILE(NUMEFIS, RANDSTART, RANDSTOP)Citește date de la randul RANDSTART până la rândul de sfârșit RANDSTOP din fișierul NUMEFIS

% Example:

% data1 = importfile('data2.txt', 36, 2676);

%

%% Initializarea variabilelor

delimitator = '\t';

if nargin<=2

randStart = 36;

randStop = inf;

end

%% Citirea coloanelor de date ca șiruri de caractere:

formatSpec = '%*s%*s%*s%*s%*s%s%s%[^\n\r]';

%% Deschiderea fișierului text

fileID = fopen(filename,'r');

%% Citirea coloanelor de date ținând cont de formatul descris anterior

vectorDate = textscan(fileID, formatSpec, randStop(1)-randStart(1)+1, 'Delimiter', delimitator, 'HeaderLines', randStart(1)-1, 'ReturnOnError', false);

for block=2:length(randStart)

frewind(fileID);

vectorDateBlock = textscan(fileID, formatSpec, randStop (block)- randStart (block)+1, 'Delimiter', delimitator, 'HeaderLines', randStart (block)-1, 'ReturnOnError', false);

for col=1:length(vectorDate)

vectorDate {col} = [vectorDate {col}; vectorDateBlock{col}];

end

end

%% Închiderea fișierului text

fclose(fileID);

%% Convertirea conținutului coloanelor care au șiruri de numere în numere

% Înlocuirea șirurilor care nu au caractere numerice cu NaN(Not a Number)

rand = repmat({''},length(vectorDate {1}),length(vectorDate)-1);

for col=1:length(vectorDate)-1

rand(1:length(vectorDate {col}),col) = vectorDate {col};

end

numericData = NaN(size(vectorDate {1},1),size(vectorDate,2));

for col=[1,2]

%Convertirea șirurilor in numere

randData = vectorDate {col};

for rand=1:size(randData, 1);

% Crearea unei expresii pentru indepartarea prefixurilor si sufixurilor non-numerice

regexstr = '(?<prefix>.*?)(?<numbers>([-]*(\d+[\,]*)+[\.]{0,1}\d*[eEdD]{0,1}[-+]*\d*[i]{0,1})|([-]*(\d+[\,]*)*[\.]{1,1}\d+[eEdD]{0,1}[-+]*\d*[i]{0,1}))(?<suffix>.*)';

try

result = regexp(randData{rand}, regexstr, 'names');

numere = result.numbers;

% Detected commas in non-thousand locations.

separatorInvalidMii = false;

if any(numere==',');

miiRegExp = '^\d+?(\,\d{3})*\.{0,1}\d*$';

if isempty(regexp(numbers, thousandsRegExp, 'once'));

numere = NaN;

separatorInvalidMii = true;

end

end

% Convertirea șirurilor numerice în numere

if ~ separatorInvalidMii;

numere = textscan(strrep(numere, ',', ''), '%f');

numericData(rand, col) = numere{1};

rand{rand, col} = numere{1};

end

catch me

end

end

end

%% Înlocuirea celulelor care nu au elemente numerice cu 0.0

R = cellfun(@(x) (~isnumeric(x) && ~islogical(x)) || isnan(x),rand); % Identificarea celulelor cu elemente care nu sunt numerice

rand(R) = {0.0}; % Inlocuirea celulelor care nu au elemente numerice

%% Crearea variabilei de iesire

data1 = cell2mat(rand);

Anexa 2 -Trasarea graficelor care descriu punctele în care s-a aflat irisul subiectului la un moment dat

>>figure(1);

>> subplot(2,1,1);

>> plot (date(:,1),'x');

>> subplot(2,1,2);

>> plot(date(:,2), 'x');

>> subplot(2,1,1);

>> xlabel('Indice citire');

>> ylabel('Pozitia pe axa OX');

>> title('Coordonatele pe axa OX');

>> subplot(2,1,2);

>> xlabel('Indice citire');

>> ylabel('Pozitia pe axa OY');

>> title('Coordonatele pe axa OY');

Bibliografie

[1] https://ro.wikipedia.org/wiki/Robot

[2] Robot Institute of America, 1979

[3] Isaac Asimov Legile roboticii

[4] https://ro.wikipedia.org/wiki/Homo_sapiens

[5]Essential English Dictionary, Collins, London, 1990

[6]Mainstream Science of Intelligence, 1994

[7]Artificial Intelligence A Modern Approach Third Edition, Stuart J. Russell, Peter Norvig, Prentince Hall, 2010

[8]Artificial Intelligence – A guide to Intelligent Systems, Second Edition, Michael Negnevitsky, 2005,

[9]Artificial intelligence – intelligent systems, tutorialspoint.com

[10] Elemente de inteligență artificială – Vol.1 Principii și Metode, Adina Magda Florea, București 1993

[11] Inteligență artificială, Ioan Dzițac, Editura Universității ,,Aurel Vlaicu” Arad, 2008

[12]Barr, Feigenbaum, 1981

[13] http://web.media.mit.edu/~minsky/

[14] http://people.csail.mit.edu/phw/index.html

[15]Artificial Intelligence, Third Edition, P.H. Winston, 1992, Library of Congress Cataloging-in-Publication Data

[16]The history of Artificial Intelligence – Turing Test, B. McGuire, University of Washington, 2006

[17]Curs de Inteligență artificială Universitatea ,,Alexandru Ioan Cuza” din Iași, Cristea, Ioniță, Pistol

[18]Inteligența artificială-Rețele neuronale, M.Cremene, S. Zăhan, UT Press, 2009

[19]Artificial Intelligence and its Application in Different Areas, A. Pannu, Volume 4, Issue 10, DAV Institute of Engineering and Technology, Jalandhar, India, 2015

[20]Poole & Mackworth, 2010

[21]Artificial Intelligence for Games Second Edition, I.Millington, J. Funge, Library of Congress Cataloging-in-Publication Data, 2009

[22]Handbook of Computer Vision and Applications Volume 2, B. Jahne, Interdisciplinary Center for Scientific Computing, University of Heidelberg, Germania, Scripps Institution of Oceanography, University of California, San Diego, 1999, pag.2

[23]An Introduction to Computer Vision, Y.Wu, Electrical Engineering & Computer Science, Northwestern University pag.2-7

[24]Fundamentals of Computer Vision, M. Shah, Computer Science Department, University of Central Florida, 1997, pag.5-6, pag.25-26, pag.54-55

[25]Computer Vision and Artificial Intelligence Techniques Applied to Robot Soccer, Al.B. Lugli, M.G. De Melo, Department of Industrial Automation. Brazil, 2017,pag.991-993

[26]Computer Vision CS-6350, Prof. Sukhendu Das, Department of Computer Science and Engineering, January, 2017

[27] Recent advances and new applications of computer vision, R. Cipolla, C.Hernandez, G.Vogiatzis, B.Stenger, Vol. 62, No.12, Department of Engineering, Cambridge University, 2007

[28]Computer Vision: Algorithms and Applications, R.Szeliski, 2010, Springer, pag.5-7

[29]Nilsson, 2010

[30]Machine Vision Automated Visual Inspection and Robot Vision, D.Vernom, Prentince-Hall International, 1991 – slide 78-

[31] https://en.wikipedia.org/wiki/Optical_character_recognition

[32] http://editimage.club/voip.html

[33] http://www.medicalimagingtalk.com/wp-content/uploads/2014/12/2015-trends.jpg

[34] http://www.i-runway.com/blog/wp-content/uploads/2016/08/3.3.jpg

[35] https://pro1-fetch.netdna-ssl.com/residential/_img/heroes/video-surveillance-esecure.jpg

[36]https://lh3.googleusercontent.com/CayXbTYMPSvBH5Nos7Hhtb6qy7TWUr0Ixmr4E2L0Vf90z9f2LVWJI-EHJ6d9x97KRdQ=s180

[37] http://entrepreneur-ship.org/wp-content/uploads/2015/06/image2.jpg

[38]Duke-Elder, W.S: Text-Book of Ophthalmology, St. Louis, C.V. Mosby Company, 1938, vol.1, pag.585-587

[39] Development of Electro-Oculography – Standing Potential of the Eye in Registration of Eye Movement, Elwin Marg, Berkley, California, pag.169

[40] ViewPoint EyeTracker Software User Guide, Arrington Research, 2010, Scottsdale(USA)

[41]https://www.supplychain247.com/article/bmw_logistics_using_autonomous_transport_robots

[42]https://zdnet3.cbsistatic.com/hub/i/r/2017/03/20/acf11961-f4dc-44dd-b6a0-797e05858819/resize/770xauto/5be1ea4dc07682f33055870925fe8c11/pic.jpg

[43]http://4.bp.blogspot.com/-y4TAX0NAIzc/UaJyIPKo48I/AAAAAAAACRw/1MwjZkVxhLc/s1600/chess.png

[44]https://www.researchgate.net/profile/Jean-Luc_Dugelay/publication/220664038/figure/fig2/AS:276499606327305@1442934052139/A-schematic-view-of-a-standard-digital-image-acquisition-pipeline.png

[45]https://www.researchgate.net/profile/Osslan_Vergara/publication/286111321/figure/fig1/AS:405709310185472@1473740045805/Fundamental-steps-of-a-computer-vision-for-digital-image-processing.png

[46]https://www.researchgate.net/profile/Hanmei_Hong/publication/311668135/figure/fig1/AS:519534300073984@1500878037430/Essential-elements-of-a-machine-vision-system.jpg

[47] https://vision.in.tum.de/_media/spezial/bib/hazirbas2014msc.jpg

[48] http://math.hws.edu/graphicsbook/c4/diffuse-vs-specular.png

[49] https://www.uxmatters.com/mt/archives/2009/10/eyetracking-is-it-worth-it.php

[50] https://www.tobii.com/tech/technology/what-is-eye-tracking/

[51] https://www.tobii.com/tech/technology/what-is-eye-tracking/

[52] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4839304/bin/6656866-fig-2-source.jpg

[53] http://professionals306.blogspot.com/2007/05/advantages-of-eye-tracking-and.html

[54] http://ixd.prattsi.org/2015/04/eye-tracking-the-pros-and-cons/

[55] https://imotions.com/blog/free-eye-tracking-software/

[56] http://professionals306.blogspot.com/2007/05/disadvantages-of-eye-tracking.html

[57]https://docs.google.com/a/edu.haifa.ac.il/uc?id=0B0mzfluMHSsPQmFjaldrbFZseVk&export=download

[58]https://www.researchgate.net/profile/Joseph_Goldberg3/publication/279430545/figure/fig2/AS:609935356342272@1522431329458/Head-mounted-eye-tracking-system-including-both-scene-lower-and-eye-upper-cameras.png

[59] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4560087/

[60]http://static6.uk.businessinsider.com/image/557ed800dd0895637c8b457e-800-682/99-7.jpg

[61] http://calvin.inf.ed.ac.uk/wp-content/uploads/images/caesar_eccv16.png

[62] http://www.sanitarbn.ro/resources/files/elod/Curs%20foto/01_formarea_imaginii.pdf

Similar Posts