Eyewriter projekt

Eyewriter



1.  UVOD

Eyewriter projekt je ideja o puno jeftinijem i pristupačnijem eye-tracking sustavu koji se sastoji od hardverskog i softverskog paketa. Ovaj projekt namijenjen je za ljude koji si ne mogu priuštiti skupe eye-tracking sustave. Projekt je zaživio kada se 2003. godine jednom mladom urbanom umjetniku pod umjetničkim nazivom Tempt One, dijagnosticirao ALS (Amiotrofična lateralna skleroza). Svjesni da njihov prijatelj više nikad neće moći crtati grafite, grupa umjetnika, grafičkih dizajnera i programera po prvi puta je stvorila open source program koji paraliziranim ljudima omogućava komunikaciju sa računalom samo pomoću očiju. Značajnost ovog projekta je što je softver besplatan i može se preuzeti s interneta, a hardverski dio je moguće samostalno izraditi kod kuće uz vrlo malo ulaganja. Ukupna cijena svih komponenti za izradu hardverskog dijela za ovaj projekt iznosila je oko sedamdeset kuna, što je za razliku od drugih eye-tracking sustava puno pristupačnija cijena.

Postoji više verzija softverskih paketa za eyewriter. Prva verzija namijenjena je za jeftinije i jednostavnije kamere, dok je druga verzija namijenjena isključivo za PS3 (PlayStation 3) kameru. Razlika između te dvije verzije je ta što je druga verzija preciznija zbog bolje kvalitete snimke te nije potrebna modifikacija leće, a i implementacija programa je jednostavnija zbog PS3 drivera.

Udruge i ljudi koji su zaslužni za izradu ovog projekta su Free Art and Technology (FAT), OpenFrameworks i Graffiti Resarch Lab: Tempt1, Evan Roth, Chris Sugrue, Zach Lieberman, Theo Watson i James Powderly.

                 

2. IZRADA HARDWERSKOG DIJELA

Kao što je već napomenuto, bit ovog projekta je to što je dostupan svima. Hardverski dio može se izraditi za vrlo malo novaca, većinu stvari moguće je pronaći kod kuće. U nastavku slijedi detaljan opis postupka izrade hardverskog dijela ovog projekta.

 

EYeWriterV1Cartoon.jpg

Slika 2.1. Eyewriter

 

2.1. Potrebna oprema i komponente

U nastavku slijedi popis opreme i komponenti koje su potrebne za izradu ovog projekta. Većinu navedene opreme moguće je naći po vrlo povoljnoj cijeni:

  1. 16429 web kamera Trust
  2. 6 IR LED dioda
  3. Okvir naočala
  4. Aluminijska žica
  5. Bušena vetronit pločica sa točkama
  6. Folija iz diskete
  7. USB kabel
  8. Lemilica
  9. Set malih odvijača
  10. Škare

 

camera2.jpg

Slika 2.2. 16429 Web kamera Trust

 

2.2. Prilagodba objektiva kamere

Prvo je potrebno odvojiti kameru od plastičnog kućišta kako bi ju lakše namontirali na okvir naočala. Ukoliko pri ruci nemate kameru bez IR filtra (filtar infracrvenog zračenja) potrebno je preraditi objektiv kamere.

 

eye1.jpg

Slika 2.3. Kamera bez kućišta

 

Leća za filtriranje infracrvenog zračenja kod većine kamera nalazi se na kraju objektiva. Tu leću je potrebno izvaditi i umjesto nje staviti foliju koja se nalazi u svakoj disketi. Ta folija ne propušta vidljivu svjetlost, a propušta infracrvenu svjetlost. Zatim je potrebno na kameru smjestiti infracrvene LED diode kako bi kameri omogućili izvor svijetlosti. Montaža dioda biti će objašnjena u nastavku teksta.

 

eye4.jpg

Slika 2.4. Postavljanje folije umjesto IR filtra

 

Ovakvom preradom objektiva ostvaren je crno-bijeli video prikaz snimka kamere. Crno-bijeli video snimak za razliku od snimka u boji zauzima puno manje memorije, a i lakše je obrađivati prikazane podatke.

 

2.3. Montaža IR LED dioda

Kao što je već navedeno u prethodnom dijelu teksta, na kameru je potrebno montirati nekoliko IR LED dioda kako bi omogućili izvor svijetlosti. Bez izvora svjetlosti kamera bi prikazivala samo crnu sliku. Za potrebe ovog projekta na bušenu vetronit pločicu smješteno je šest IR LED dioda. Za razliku od ostalih eyewritera gdje se za napajanje LED dioda koristi baterija koju je s vremenom potrebno promijeniti, a prilikom montaže kamere na okvir naočala baterija mora biti negdje u blizini korisnika što je ponekad malo nezgodno, odlučili smo da ćemo napajanje izvesti preko USB kabela.

 

eye31.jpg

Slika 2.5. Vetronitna pločica i IR LED diode

 

Svaki USB izlaz na računalu daje DC +5V, pa je električni krug dioda prilagođen na tu naponsku razinu. Na vetronitnu pločicu dovedeno je napajanje i uzemljenje, anode dioda povezane su preko odgovarajućih otpornika s napajanjem, a katode su povezane s uzemljenjem. U središtu vetronitne pločice izbušena je rupa s promjerom objektiva. Smještanjem pločice na kameru ostvaren je jedan kompaktan element.

 

eye2.jpg

Slika 2.6.  Kamera s montiranim IR LED diodama

 

2.4. Montaža kamere na okvir naočala

Kako bi program koji se koristi za komunikaciju s računalom pomoću očiju registrirao pokrete oka, kamera mora biti smještena u blizini oka. Najbolja izvedba je s praznim okvirom bilo kakvih naočala. Za nosač kamere najbolje je koristiti aluminijsku žicu koja je dovoljno čvrsta, ali nije preteška kako naočale ne bi pale korisniku s glave.

 

eye5.jpg

Slika 2.7. Aluminijski nosač kamere

 

Za kraj je potrebno improvizirani aluminijski nosač kamere, USB kabel kamere i USB kabel koji služi za napajanje dioda potrebno povezati pomoću plastičnih vezica za okvir naočala.

 

eye7.jpg

Slika 2.8. Završni izgled fizičkog dijela eyewritera

 

3. POKRETANJE I KORIŠTENJE EYEWRITER PROGRAMA

Softver za eyewriter sastoji se od dva dijela. Prvi dio se zove EyeTracker koji služi za kalibraciju kamere za snimanje pokreta oka. Drugi dio softvera zove se Eyewriter Drawing App koji se sastoji od dizajnerskog sučelja u kojem je moguće crtati pokretom oka. U program koji služi za crtanje potrebno je implementirati kalibracijske podatke iz EyeTracker-a.

Softver za eyewriter izrađen je na operativnom sustavu Mac OSX, pa je prilikom implementacije programa na neki drugi operativni sustav učestala pojava nekompaktibilnosti nekih datoteka. Za implementaciju prve verzije softvera eyewritera 1.0. potrebna su temeljna predzanja implementacije programa i programskog jezika C++.

Nažalost, za razliku od EyeTracking softvera Eye Drawing App je još uvijek u izradi, i nije dostupna za Windows operativni sustav pa će se unutar ovog projekta definirati implementacija samo EyeTracker softvera.

 

3.1. Postupak implementacije

Implementaciju programa moguće je izvesti pomoću Code::Blocks-a 12.11. ili pomoću Visual studia 2015. Prilikom izrade ovog projekta implementacija je izvršena pomoću Code::Blocks-a. Code::Blocks je besplatni IDE (eng. Integrated Development Environment, integrirano razvojno okruženje, tj, softverska aplikacija koja se sastoji od editora, build alata i debugger-a ) program napravljen za C i C++ kako bi zadovoljio najveće potrebe svih korisnika.

Prvo je potrebno preuzeti Eyewriter 1.0. program, (hiperlink za preuzimanje nalazi se u poglavlju LITERATURA). Zatim je potrebno slijediti upute koje se nalaze u Eyewriter programu. Ovisno o preuzetoj verziji eyewriter programa potrebno je skinuti odgovarajuću verziju OpenFrameworks C++ knjižnice namijenjene za Code::Blocks. Potrebno je pažljivo pročitati upute jer je kod nekih verzija potrebno nadograditi verziju Code::Blocks-a. Za izradu ovog projekta preuzeta je verzija 07.04. OpenFrameworks-a namijenjenog za Code::Blocks.

Nakon preuzimanja svih potrebnih programskih paketa može se započeti implementacija eyewriter programa. Kako bi pokrenuli projekt pomoću Code::Blocks-a prvo je potrebno matičnu eyewriter datoteku smjestiti u poddatoteku datoteke „Apps“ OpenFrameworks programa. Jednom kada je to napravljeno trebali bi biti u mogućnosti pokrenuti „eyewriter.workspace“ datoteku. Pokretanjem workspace datoteke otvara se Code::Blocks program unutar kojeg je potrebno pritisnuti „Build and run“ gumb. Ako je sve obavljeno po uputama trebao bi se pokrenuti EyeTracker.

 

3.2. Postupak kalibracije u programu EyeTracker

Pokretanjem EyeTrackera otvara se programsko sučelje pomoću kojeg kalibriramo kameru. S lijeve strane su prikazana četiri video prikaza kamere. Gornji lijevi prikaz predstavlja pravi (trenutni) snimak kamere, desni prikazuje šarenicu, donji lijevi prikazuje negativ šarenice, a donji desni rozim markerom označuje onaj dio šarenice (zjenicu) koji program registrira.

 

EyeTracker.jpg

Slika 3.1. Prikaz sučelja EyeTracker-a

 

Desni dio sučelja služi za prilagođavanje kontrasta, širine rozog markera, svjetline slike, daju se koordinate za ciljanje šarenice, itd. Namještanje parametara ovisi o kvaliteti kamere, i mjestu njene montaže, u principu je za to potrebno nekoliko minuta.

Zatim je potrebno pritiskom na enter započeti kalibriranje. Ekran se podjeli na mrežni dvodimenzionalni koordinatni sustav, te je od korisnika traženo da zadanim redoslijedom pogleda u označene točke tog koordinatnog sustava, na taj način program stvara predodžbu o pokretima oka koje pohranjuje u svoju memoriju.

 

EyeTracker kalibracija.jpg

Slika 3.2. Kalibracija kamere

 

Završetkom kalibriranja na ekranu se pojavljuje zelena točka koja prati pokrete našeg oka. Moguće je i testiranje, netom nakon završetka kalibriranja na ekranu se pojavljuju zeleni kvadrati na koje je potrebno usredotočiti zelenu točku koja prati kretanje oka. Ukoliko kalibracija nije zadovoljavajuća, postupak je potrebno ponoviti. Postoje puno naprednije verzije EyeTracking softvera koje omogućavaju precizniju kalibraciju, ali su namijenjene za druge operativne sustave.

 

Untitled.jpg

Slika 3.3. Testiranje uspješnosti kalibracije

 

Pri završetku kalibracije potrebno je pokrenuti Eyewriter Drawing App i u njega implementirati kalibracijske podatke. Nakon implementacije podataka može se započeti korištenje eyewriter sustava.

 

Drawing App.jpg

Slika 3.4. Eyewriter Drawing App

 

4.  ZAKLJUČAK

Eyewriter je projekt namijenjen za nepokretne osobe koje si ne mogu priuštiti skupe sustave pomoću kojih bi mogli komunicirati s računalom.

U svojih više od deset godina postojanja, eyewriter je dorađen, te sada postoje dvije verzije istog: eyewriter 1.0 i eyewriter 2.0. Obije se verzije sastoje od dva djela, od kojih je prvi hardverski, a drugi softverski dio. Hardverski dio je potrebno izraditi u potpunosti, dok je softverski dio dostupan kao open source na internetu.

Iako je u ovom projektu izrađen eyewriter 1.0, za izradu su potrebna neka osnovna znanja i vještine iz elektrotehnike (za hardverski dio) i programiranja (za softverski dio).

Većina je koraka za izradu opisana na samoj internetskoj stranici eyewritera, no ukoliko želimo razumjeti kako je i zbog čega što napravljeno, potrebno je dodatno proučavanje. Zbog toga izrada ovog projekta služi i u edukativne svrhe, a ne samo kako bismo izradili sklop koji funkcionira.

 

LITERATURA

[1] „Eyewriter“, http://eyewriter.org/

[2] „Poveznica za preuzimanje Eyewriter 1.0. softvera“, https://code.google.com/archive/p/eyewriter/

[3] „Poveznica za preuzimanje programa Code::Blocks 12.11.“, https://sourceforge.net/projects/codeblocks/files/Binaries/12.11/Windows/

[4] „Poveznica za preuzimanje programa OpenFrameworks“, http://openframeworks.cc/download/older/


Teo Benazić, Guido Fabris, Moris Gergorić