ROZPRAWA DOKTORSKA - Politechnika Warszawska · • interfejs wejścia, • interfejs wyjścia....

150
POLITECHNIKA WARSZAWSKA Wydział Elektryczny ROZPRAWA DOKTORSKA mgr inż. Piotr Kowalczyk Wybrane aspekty komunikacji człowiek-komputer z wykorzystaniem ruchów głowy i mimiki twarzy Promotor dr hab. inż. Dariusz Sawicki, prof. PW Warszawa, 2015

Transcript of ROZPRAWA DOKTORSKA - Politechnika Warszawska · • interfejs wejścia, • interfejs wyjścia....

POLITECHNIKA WARSZAWSKA

Wydział Elektryczny

ROZPRAWA DOKTORSKA

mgr inż. Piotr Kowalczyk

Wybrane aspekty komunikacji człowiek-komputer

z wykorzystaniem ruchów głowy i mimiki twarzy

Promotor

dr hab. inż. Dariusz Sawicki, prof. PW

Warszawa, 2015

Streszczenie

Niniejsza rozprawa doktorska poświęcona jest nowemu interfejsowi człowiek-komputer.

Opracowany przez autora i wszechstronnie przebadany interfejs umożliwia efektywną i precy-

zyjną zmianę położenia kursora na ekranie poprzez niewielkie ruchy głowy oraz wykonywanie

poleceń systemowych poprzez mrugnięcia oczu.

Praca rozpoczyna się od przeglądu znanych rozwiązań komunikacyjnych człowiek-kom-

puter. W dalszej części zdefiniowano cel, tezę i zakres pracy oraz sformułowano zadania,

których realizacja była niezbędna do wykazania słuszności postawionej tezy. Merytoryczna

część pracy rozpoczyna się od rozważań na temat motoryczności człowieka w zakresie ruchów

głowy i mimiki twarzy. Następnie przedstawiono analizę rozwiązania z wykorzystaniem autor-

skiego modelu matematycznego. Badania przeprowadzone w pracy były ukierunkowane na

praktyczne zastosowanie, dlatego zamieszczono projekt rozwiązania z parametrami urządzenia

oraz zaprezentowano prototyp. Eksperymenty, których opis został zamieszczony w pracy, zo-

stały przeprowadzone z wykorzystaniem opracowanego prototypu i pozwoliły wykazać

efektywność i precyzję opracowanego interfejsu komunikacyjnego. W zakończeniu pracy pod-

sumowano uzyskane rezultaty, przedstawiono osiągnięcia autora oraz podkreślono słuszność

postawionej w pracy tezy.

Abstract

This PhD thesis describes innovative human-computer interface designed primarily for

disabled persons. Developed interface allows effective and precise change of location of cursor

on the screen through small head movements and execution of system events through blinking

eyes.

This thesis begins by reviewing the known solutions of human-computer interaction. Next,

author formulated thesis and tasks to do. Main part of the thesis begins by reflection on human

movements in the context of the proposed control methods. Then author described the

proposed control method, using author's mathematical model. Research carried out in this

thesis are focused on practical application therefore this PhD thesis includes parameters of

potential control device and description of prototype. Experiments which are described in this

thesis has been carried out using the prototype. Results of experiments showed effectiveness

and precision of the developed interface. At the end, autor summarizes the obtained results and

proves the validity of the thesis.

3

Spis treści

1 Wstęp 7

1.1 Model komunikacji........................................................................................................11

1.2 Przegląd powszechnych rozwiązań komunikacyjnych człowiek-komputer.................13

1.3 Przegląd rozwiązań komunikacyjnych do specjalnych zastosowań..............................16

2 Cel, teza i zakres pracy 23

3 Wybrane problemy motoryczności człowieka 27

3.1 Motoryczność człowieka w zakresie ruchów głowy.....................................................27

3.2 Motoryczność człowieka w zakresie mrugnięć oczu....................................................31

3.3 Wpływ światła podczerwonego na gałkę oka...............................................................32

4 Analiza rozwiązania 33

4.1 Sterowanie kursorem poprzez niewielkie ruchy głowy................................................33

4.1.1 Prezentacja kursora na ekranie..............................................................................35

4.1.2 Rejestracja obrazu z kursorem...............................................................................38

4.1.3 Rozpoznawanie i lokalizacja kursora....................................................................41

4.1.4 Zmiana położenia kursora w systemie...................................................................43

4.1.5 Kursory jednobarwne.............................................................................................49

4.1.6 Kursory wielobarwne.............................................................................................56

4.1.7 Kursory o unikatowym kształcie...........................................................................61

4.1.8 Unikatowy wzór wyświetlany w sąsiedztwie kursora systemowego....................63

4.1.9 Efekt brzegowy......................................................................................................68

4.2 Sterowanie poprzez mrugnięcia oczu............................................................................73

4.2.1 Rejestracja obrazów oczu......................................................................................74

4.2.2 Rozpoznawanie mrugnięć oczu.............................................................................78

4.2.3 Analiza sygnałów generowanych na podstawie mrugnięć oczu............................83

4.3 Klawiatura ekranowa i wprowadzanie tekstu................................................................88

5

5 Model matematyczny 93

6 Rozwiązanie praktyczne 109

6.1 Projekt urządzenia.......................................................................................................109

6.1.1 Budowa urządzenia..............................................................................................110

6.1.2 Parametry kamery rejestrującej obraz ekranu......................................................113

6.1.3 Parametry mikrokamer rejestrujących obrazy oczu.............................................115

6.1.4 Komunikacja z komputerem................................................................................116

6.1.5 Wpływ zewnętrznych warunków oświetleniowych.............................................117

6.2 Prototyp urządzenia.....................................................................................................117

6.2.1 Sprzęt...................................................................................................................117

6.2.2 Oprogramowanie.................................................................................................121

7 Eksperymenty 125

7.1 Szybkość oraz precyzja zmiany położenia kursora na ekranie...................................125

7.2 Skuteczność rozpoznawania mrugnięć oczu...............................................................129

7.3 Opinie użytkowników.................................................................................................131

8 Obszary zastosowań 135

9 Zakończenie 137

Bibliografia 141

6

Rozdział 1

Wstęp

Komputer to wspaniałe urządzenie pozwalające wykonywać ogromną pracę obliczeniową

za człowieka, dające możliwość komunikacji człowieka z innymi ludźmi, dostęp do niezliczo-

nej ilości informacji cyfrowych i rozrywkę. Dzisiejsza egzystencja człowieka w dużej mierze

opiera się na działaniach ściśle związanych z obsługą komputera. Konieczny jest interfejs

umożliwiający wprowadzanie do komputera danych, sterowanie jego pracą oraz interfejs po-

zwalający odczytywać efekty pracy komputera. Zagadnienie komunikacji człowiek-komputer

(ang. HCI - Human-Computer Interaction) odgrywa zatem istotną rolę w całej historii rozwoju

komputerów. Początkowe interfejsy komunikacyjne były proste, powolne i nieergonomiczne.

Pierwsze komputery były obsługiwane wyłącznie przez wykwalifikowanych programistów

i operatorów. Mała grupa wyszkolonych pracowników nie determinowała szybkiego rozwoju

interfejsów. Sytuacja zmieniła się diametralnie z chwilą wprowadzenia komputerów osobistych

w latach 70-tych XX wieku. Komputery stały się powszechnie dostępne. Były używane przez

ludzi z różnych środowisk, grup społecznych, krajów. Używali ich finansiści, handlowcy, na-

ukowcy, przedsiębiorcy, lekarze, ludzie z branży obronnej czy rozrywki. Obsługa komputera

przestała być domeną programistów, a stała się powszechna i skierowana do różnych grup spo-

łecznych. Był to przełomowy moment w rozwoju interfejsów komunikacyjnych

człowiek-komputer. Interfejsy zaczęły być coraz szybsze, mniejsze, zaczęły lepiej wyglądać

i przede wszystkim wzrosła ich ergonomia. Skończył się okres, kiedy to człowiek dostosowy-

wał się do istniejących interfejsów. Od tej pory interfejsy były dostosowywane do potrzeb

i możliwości człowieka. Z czasem komputery stawały się coraz szybsze i tańsze. Znalazły za-

stosowanie w wielu prywatnych domach i niemal każdej gałęzi przemysłu. Daje to ogromne

możliwości twórcom interfejsów komunikacyjnych człowiek-komputer, by obcowanie z kom-

puterami zarówno tymi osobistymi jak i przemysłowymi, stawało się jeszcze wygodniejsze,

szybsze i bardziej intuicyjne.

7

W historii można wyróżnić trzy okresy, w których zmieniały się relacje pomiędzy kompu-

terem a człowiekiem, co miało również wpływ na rozwój interfejsów komunikacyjnych [1-3]:

• era mainframe; jeden komputer - wielu ludzi (lata 60-te XX wieku),

• era komputerów osobistych; jeden komputer - jeden człowiek (lata 80-te XX wieku),

• era wszechstronności; wiele komputerów - jeden człowiek (początek XXI wieku).

Na rysunku 1.1 przedstawiono udział w globalnym rynku trzech głównych trendów rozwoju

komputerów na przełomie lat [2].

Pierwszy okres (era mainframe) to początki komputerów wytwarzanych masowo. Mowa

tu o latach 60-tych XX wieku. Był to okres, w którym do obsługi jednego komputera potrzeb-

nych było wielu ludzi. Komputery nie były dostępne dla wszystkich. Obsługą komputera

zajmowali się wyłącznie ludzie o wysokich kwalifikacjach występujący w trzech rolach: zarzą-

dzający, programiści, operatorzy [4]. Zarządzający nadzorowali projekty, programiści tworzyli

programy, operatorzy natomiast obsługiwali komputer. Interfejsy komunikacyjne były wtedy

bardzo proste. Programy zapisywane były na kartach perforowanych lub taśmach perforowa-

nych. Jeden program mógł liczyć kilkaset, a nawet kilka tysięcy kart, które były kolejno

wprowadzane do czytnika komputera. Na wynik czekało się nawet kilka dni, a w przypadku

pomyłki w zapisie programu całą operację zaczynano od początku.

Drugi okres (era komputerów osobistych) to okres przełomowy. Jego początek określa się

na lata 80-te XX wieku. Faktycznie został zapoczątkowany w latach 70-tych w wyniku wpro-

8

Rys. 1.1. Główne trendy rozwoju komputerów.

wadzenia do sprzedaży komputerów osobistych [5]. W tym okresie na jeden komputer przypa-

dał jeden użytkownik. Korzystanie z komputera nie było jeszcze powszechne. Wiele firm

i instytucji wprowadzało komputery dla usprawnienia pracy, ale dla większości ludzi dostęp do

komputera był trudny i niekoniecznie potrzebny. Wraz ze wzrostem wydajności komputerów

i spadkiem ich ceny znajdowały coraz szersze grono użytkowników. W tym okresie ustandary-

zował się, stosowany do dziś, schemat komunikacji zaproponowany już w 1963 roku przez

Ivana Sutherlanda [6]. Jako interfejsy wejścia wykorzystywano mysz komputerową (początko-

wo pióro świetlne) oraz klawiaturę. Mysz była stosowana jako urządzenie wskazujące

natomiast klawiatura służyła do sterowania pracą komputera i wprowadzania tekstu. Jako inter-

fejs wyjścia na stałe wprowadzono monitor. Lata 80-te były również początkiem rozwoju

graficznych interfejsów użytkownika. Początkowo nowy sposób prezentacji informacji był

uciążliwy dla stałych użytkowników przyzwyczajonych do wprowadzania poleceń. Graficzne

interfejsy były natomiast atrakcyjne dla nowych użytkowników i użytkowników okazjonal-

nych. Przyczyniły się one do poprawy komfortu pracy z komputerem, a tym samym

powiększyły grono zainteresowanych komputerem ludzi [4].

Trzeci okres (era wszechstronności) przypada na początek XXI wieku. Rozwój technologii

pozwolił przyśpieszyć pracę komputerów. Stały się one tańsze, a tym samym powszechniejsze

i obecne w wielu dziedzinach życia codziennego. Na jednego człowieka zaczęło przypadać

wiele komputerów. Wymusiło to bardzo szybki rozwój interfejsów komunikacyjnych. Interfej-

sy musiały być dostosowywane już nie tylko do różnych użytkowników, ale i różnych

urządzeń. Pierwsza prognoza uformowania się tzw. trzeciej fali, tj. ery wszechstronności (wielu

komputerów przypadających na jednego człowieka), pojawiła się w roku 1998. Sformułował ją

Mark Weiser z Computer Science Lab w Xerox PARC [2].

W literaturze można znaleźć podział ery wszechstronności. Okres w jakim się teraz znaj-

dujemy nazywany jest erą mobilności [1]. Na jednego człowieka przypada kilka komputerów.

W dużym stopniu przyczynił się do tego rozwój komputerów przenośnych. Początkowo lapto-

pów później dużo mniejszych i lżejszych ultrabooków i netbooków. Największy rozwój

w ostatnich latach notują smartfony i tablety. W przypadku laptopów schemat komunikacji był

identyczny jak w przypadku komputerów stacjonarnych. Jedynie mysz komputerowa została

zastąpiona touchpadem. Dużym przełomem było upowszechnienie się początkowo smartfonów

a następnie tabletów. Klawiaturę i mysz zastąpiły ekrany dotykowe. Jedno urządzenie realizuje

zarówno wejście jak i wyjście. Ekran nie tylko służy do prezentacji użytkownikowi informacji,

9

ale również do wskazywania i wybierania poprzez dotyk. Ta forma komunikacji niezwykle

szybko została zaakceptowana przez rożnych użytkowników z różnych części świata.

Prawdziwa era wszechstronności ma się dopiero zacząć. Rozwój techniki komputerowej

jest bardzo szybki. Według prawa Moore'a ekonomicznie optymalna liczba tranzystorów

w układzie scalonym zwiększa się dwukrotnie z każdym rokiem [7]. W rzeczywistości dwu-

krotny wzrost następuje w ciągu 24 miesięcy. Najnowsze odkrycia z dziedziny inżynierii

materiałowej, jak choćby grafen [8, 9], pozwalają przypuszczać, że rozwój ten utrzyma się na

co najmniej tak wysokim poziomie albo zostanie przyspieszony. Szacuje się, że w latach

20-tych XXI wieku na jednego człowieka będą przypadać setki komputerów. Przyszłość HCI

będzie dynamiczna i pełna niespodzianek. Nie da się jednak przewidzieć jak będą wyglądały

interfejsy przyszłości. Jest to zależne od postępu w branży informatyki i psychologii człowie-

ka. Jeżeli lepiej zrozumiemy człowieka będziemy mogli kreować lepsze rozwiązania

komunikacyjne. Obszary, takie jak AI i rzeczywistość wirtualna, otwierają nowe drzwi przed

komunikacją człowiek-komputer. Nowe urządzenia komunikacyjne noszone jak ubrania lub

w postaci niewielkich gadżetów są przyszłością HCI [10].

Niektórzy naukowcy próbują przewidzieć przyszły rozwój komputerów i interfejsów ko-

munikacyjnych człowiek-komputer. Komputery staną się tak duże jak wyświetlacze, które to

będą dostosowane do potrzeb i przeznaczenia. Będą tak duże jak biurko albo jak ściana. Stero-

wanie komputerem będzie interakcją z wyświetlaczem [11]. Nie będzie potrzeby przenoszenia

komputera. W kolejnym pomieszczeniu będzie następny (większy lub mniejszy), a wychodząc

z domu będziemy mieli przy sobie jeszcze jeden mały i lekki. Wszystkie będą miały dostęp do

tych samych danych niezależnie gdzie będziemy. Typowa stacja robocza przestanie istnieć.

Komputery będą niemal wszędzie i będą sterowały i wspomagały każdą dziedzinę naszego ży-

cia. Główny problem twórców interfejsów komunikacyjnych człowiek-komputer zostanie

zdefiniowany jako wizualizacja człowieka w całkowicie cyfrowej przyszłości, gdzie technolo-

gia będzie rozumieć ludzkie pragnienia, oczekiwania i aspiracje z uwzględnieniem etyki

i wartości społecznych [12].

10

1.1 Model komunikacji

Komunikację człowiek-komputer można podzielić na dwie zasadnicze grupy pod wzglę-

dem kierunku komunikacji. Komunikacja może odbywać się od człowieka do komputera

i mówimy wtedy o interfejsach wejścia. Możliwa jest również komunikacja w drugą stronę, tj.

od komputera do człowieka, tzw. interfejsy wyjścia. Model komunikacji człowiek-komputer

składa się z czterech elementów (rysunek 1.2) [10]:

• człowiek/użytkownik,

• komputer/system,

• interfejs wejścia,

• interfejs wyjścia.

Człowiek/użytkownik

Przez użytkownika rozumiemy człowieka korzystającego z komputera bądź systemu. Jest

to najważniejszy element całego modelu. Człowiek rozpoczyna komunikację i na człowieku

komunikacja się kończy. Wszystkie elementy interfejsu powinny cechować się wysoką uży-

tecznością i być dostosowane do możliwości i komfortu człowieka [13].

Do obsługi interfejsów wejścia człowiek najczęściej używa rąk. Ręce umożliwiają wyko-

nywanie bardzo skomplikowanych ruchów z dużą szybkością i precyzją. Są wykorzystywane

przez człowieka do wykonywania bardzo wielu czynności w życiu codziennym i pracy, dlatego

też zostały wykorzystane przez twórców interfejsów jako naturalna możliwość komunikacji

11

Rys. 1.2. Model komunikacji człowiek-komputer.

człowieka z komputerem. Człowiek może również wykorzystać do komunikacji ruchy innych

części ciała [14], mowę lub nawet myśli [15].

Do odbioru informacji najczęściej wykorzystuje się wzrok. Człowiek najwięcej bodźców

zewnętrznych odbiera poprzez zmysł wzroku. Jest to zatem najwygodniejsza forma komunika-

cji. Część komunikacji jest również realizowana poprzez słuch. Do rzadziej spotykanych form

komunikacji należy, np dotyk.

Komputer/system

Komputer bądź system jest celem komunikacji, obiektem któremu wydawane są polecenia

i do którego wprowadzane są dane. Rolą komputera jest również prezentowanie danych użyt-

kownikowi. Możliwości komunikacji komputera z człowiekiem są bardzo duże. Istniejące

interfejsy pozwalają wykorzystać do komunikacji niemal wszystkie zmysły człowieka.

Interfejs wejścia

Jest to interfejs odpowiedzialny za przekazywanie informacji bądź poleceń od człowieka

do komputera. Tego typu interfejsy są projektowane tak, by rejestrowały pewne określone za-

chowanie człowieka i przenosiły je na komputer w postaci zrozumiałych dla niego informacji.

Interfejsy wejścia są bardzo zróżnicowane. Nie chodzi tylko o rodzaj rejestrowanych zacho-

wań, ale również o sposób tej rejestracji, metody łączności z komputerem, kształt i ergonomię.

Zdecydowana większość interfejsów wejścia obsługiwana jest poprzez dłonie. Sposobów stero-

wania dłońmi i rodzajów generowanych w ten sposób informacji jest bardzo wiele. Nie są

jednak jedyną metodą sterowania pracą komputera. Istnieją interfejsy wykorzystujące ruch in-

nych części ciała, np. głowy lub wręcz ruchy całego ciała [14]. Możliwe jest również

sterowanie poprzez rejestrację i analizę mowy lub analizę fal elektromagnetycznych emitowa-

nych przez mózg [15].

Interfejs wyjścia

Jest to interfejs umożliwiający prezentowanie informacji wygenerowanych przez komputer

człowiekowi. Interfejsy tego typu są równie istotne, jak interfejsy wejścia. Komputer realizuje

polecenia człowieka w wyniku czego generuje dużą ilość informacji. Człowiek oczekuje wglą-

12

du do danych wygenerowanych przez komputer, co determinuje istnienie interfejsu, który to

umożliwia. Sposób prezentacji danych może być bardzo różny i opierać się na wielu zmysłach

człowieka. Nie mniej jednak większość interfejsów wyjścia wykorzystuje wzrok człowieka.

Mowa tu o wszelkiego rodzaju ekranach, których rozwój jest bardzo dynamiczny. Na przeło-

mie lat zmieniła się technologia działania ekranów, liczba wyświetlanych barw i rozdzielczość.

1.2 Przegląd powszechnych rozwiązań komunikacyjnych

człowiek-komputer

Najbardziej rozpowszechnionym duetem interfejsów wejścia realizujących komunikację

człowieka z komputerem są mysz komputerowa i klawiatura. Prototyp myszy komputerowej

został opracowany w 1963 roku przez Douglasa Engelbarta a oficjalna publikacja dotycząca

tego urządzenia pojawiła się w 1965 roku [16]. Mysz pozwala przenieść ruch ręki człowieka na

ruch kursora na ekranie. Jest to najpowszechniejsze urządzenie wskazujące wykorzystywane

w pracy z komputerem. Dodatkowo mysz została wyposażona w przyciski (początkowo w je-

den przycisk), które umożliwiają wykonywanie poleceń systemowych. Przez lata mysz

komputerowa mocno ewoluowała. Początkowo myszy były wyposażone w kulkę, która obraca-

ła się podczas przesuwania myszy. Kulka przenosiła ruch na dwa wałki ustawione prostopadle

względem siebie. Ruch jednego wałka determinował ruch kursora w osi pionowej a drugiego

w osi poziomej [17]. Z czasem kulka została zastąpiona czujnikiem optycznym i laserem.

Zmieniła się też metoda przesyłania informacji z myszy do komputera. Wiele współczesnych

myszy pracuje bezprzewodowo i łączy się z komputerem drogą radiową. Nie mniej jednak do

dnia dzisiejszego produkowane są myszy przewodowe i nie dotyczy to wyłącznie tanich mode-

li, ale również bardzo zaawansowanych i drogich najczęściej przeznaczonych dla graczy

komputerowych. Duży postęp nastąpił w sferze wyglądu i ergonomii. Współczesne myszy są

zaprojektowane tak, by dobrze leżały w dłoni a rozmieszczenie przycisków ułatwia ich używa-

nie. By zwiększyć funkcjonalność myszy projektanci stopniowo wprowadzali coraz większą

liczbę przycisków i dodatkowe kółka do szybszego i wygodniejszego przewijania tekstu.

Klawiatura jest urządzeniem przeznaczonym głównie do wprowadzania tekstu. Koncepcja

urządzenia została zapożyczona z maszyn do pisania. Klawiatury są jednym z podstawowych

urządzeń wejścia w komputerach klasy PC. Przez lata zmieniała się technologia produkcji

13

i wygląd klawiatur, ale zasada działania jak i ogólny kształt pozostał niezmienny. Klawiatury

znalazły również zastosowanie w komputerach przenośnych. Wprowadzanie tekstu poprzez

klawiaturę jest na tyle skuteczne i wygodne, że nawet najnowsze urządzenia takie jak smartfo-

ny czy tablety, niewyposażone w fizyczne klawiatury, udostępniają klawiaturę ekranową

wyświetlaną na ekranie urządzenia, której używanie jest niemal identyczne jak zwykłej klawia-

tury.

Powstało wiele innych urządzeń komunikacyjnych sterowanych dłonią. Do bardziej zna-

nych należą: trackball, joystick, joypad, touchpad, trackpoint, pióro świetlne [17-19].

Trackball jest urządzeniem koncepcyjnie bardzo zbliżonym do myszy kulkowej. Zasadni-

cza różnica polega na usytuowaniu kulki. W myszy kulka jest umieszczona od strony podłoża,

by ruch dłoni mógł być przenoszony na ruch kursora. W trackballu kulka umieszczona jest na

górze urządzenia, którego kształt umożliwia wygodne obracanie kulki palcami. Zasada przeno-

szenia ruchów kulki na ruch kursora jest identyczna jak w myszy. Takie rozwiązanie znalazło

zastosowanie przy wykonywaniu wszelkiego rodzaju projektów graficznych. Przy takim usytu-

owaniu kulki, wykonywanie kliknięć przycisków urządzenia nie jest przenoszone na ruch

kursora, co bardzo pozytywnie wpływa na precyzję. Trackball został zaprojektowany przez

Ralpha Benjamina w roku 1946 a następnie opatentowany w roku 1947, czyli dużo wcześniej

niż pierwsza mysz komputerowa. Początkowo trackball jako tajemnica wojskowa był stosowa-

ny wyłącznie w rozwiązaniach militarnych.

Joystick jest manipulatorem złożonym z drążka umieszczonego na podstawce. Umożliwia

przesyłanie do komputera informacji o przesunięciu w dwóch osiach. Stopień wychylenia drąż-

ka determinuje wartość przesunięcia. Pierwszy elektroniczny joystick został opatentowany

przez Carlosa B. Miricka już w roku 1926 [20]. Pierwsze zastosowanie joysticka w grach wi-

deo miało miejsce w roku 1967. Ta metoda sterowania znalazła szerokie zastosowanie.

Joysticki stosuje się do sterowania wieloma maszynami od dźwigów przez wózki inwalidzkie

po samoloty. W komputerach domowych joysticki wykorzystywane są głównie do sterowania

grami komputerowymi i symulatorami lotów.

Joypad znany również pod nazwami gamepad lub po prostu pad jest kontrolerem wyko-

rzystywanym wyłącznie do gier komputerowych; częściej w konsolach niż komputerach klasy

PC. Sterowanie w joypadzie odbywa się poprzez przyciski lub ewentualne gałki sterujące.

Touchpad jest propozycją zastąpienia myszy w komputerach przenośnych. Jest to panel

dotykowy umożliwiający zmianę położenia kursora na ekranie poprzez przesuwanie palca po

14

jego powierzchni. Najczęściej touchpady wykorzystują w swoim działaniu wykrywanie pojem-

ności elektrycznej palca. Touchpady rozpoczęto stosować w komputerach przenośnych

w latach 90-tych XX wieku i szybko stały się standardowym wyposażeniem niemal każdego

laptopa.

Trackpoint (lub inaczej pointing stick) to mały joystick umieszczony na środku klawiatury

laptopa. Reaguje na siłę i kierunek nacisku, które są przekładane na zmianę położenia kursora

na ekranie. Jego przeznaczeniem jest zastąpienie myszy, a dokładniej został zaprojektowany

tak, by zminimalizować czas potrzebny na przeniesienie ręki z klawiatury na mysz. Został

zgłoszony do patentu w roku 1996 przez IBM a jego twórcą był Edwin Joseph Selker [21, 22].

Pióro świetlne jest urządzeniem wskazującym. Dotknięcie piórem świetlnym ekranu po-

zwala wskazać na nim wybrany punkt. Wyposażone jest dodatkowo w przycisk, dzięki

któremu możliwe jest wykonywanie określonych poleceń systemowych we wskazanym piórem

miejscu ekranu. Pióra świetlne pojawiły się około 1955 roku. Obecnie są raczej nie stosowane.

Na oddzielną uwagę zasługują ekrany dotykowe. Wraz z dynamicznym rozwojem i po-

wszechnym wykorzystaniem smartfonów i tabletów ich zastosowanie w ostatnich latach rośnie

bardzo szybko. Ekran dotykowy łączy w sobie dwa interfejsy. Z jednej strony jest to standardo-

wy interfejs wyjścia, tj. ekran, na którym informacje są prezentowane użytkownikowi.

Z drugiej strony ekran ten umożliwia poprzez dotyk wskazywanie na ekranie wybranych punk-

tów. Dzięki tak zwanej funkcji multi-touch możliwe jest jednoczesne wskazywanie na ekranie

wielu punktów. Wskazywanie wielu punktów i wzajemne relacje pomiędzy wskazywanymi

punktami umożliwiają stosowanie dużej liczby gestów a tym samym dają szerokie możliwości

sterowania komputerem. Rozwiązanie to spotkało się z bardzo pozytywnym odbiorem przez

użytkowników. Wynika to z bardzo intuicyjnej i naturalnej dla człowieka metody sterowania

polegającej na dotykaniu zaobserwowanych wzrokiem obiektów. Mysz czy klawiatura nie daje

takiej możliwości.

Na uwagę zasługuje fakt, że wspólną cechą powszechnie stosowanych rozwiązań komuni-

kacyjnych jest wykorzystanie do sterowania rąk i fizyczny kontakt z urządzeniem sterującym.

Jak już zostało nadmienione, człowiek wykorzystuje ręce do wykonywania bardzo dużej liczby

czynności w życiu codziennym. Ręce umożliwiają dodatkowo wykonywanie różnorodnych ru-

chów z dużą precyzją i szybkością. Dlatego też twórcy interfejsów wejścia często wybierają

taką formę komunikacji.

15

1.3 Przegląd rozwiązań komunikacyjnych do

specjalnych zastosowań

Oprócz powszechnie stosowanych rozwiązań komunikacyjnych człowiek-komputer wy-

różnić należy rozwiązania o specjalnym zastosowaniu. Są to interfejsy mniej popularne,

stosowane przez znacznie mniejszą liczbę użytkowników. Najczęściej rozwiązania te są bardzo

zaawansowane technicznie. Spotyka się je w zastosowaniach medycznych, militarnych, prze-

mysłowych, często służą poprawie jakości życia osób niepełnosprawnych bądź do rozrywki.

Najbardziej znane interfejsy tego typu bazują na rozpoznawaniu gestów dłoni, analizie fal mó-

zgowych, analizie ruchów głowy i oczu oraz na analizie ruchów całego ciała.

Rozpoznawanie gestów dłoni to bardzo szerokie zagadnienie. W szczególności należy roz-

różnić interfejsy wymagające fizycznego kontaktu z urządzeniem i interfejsy bezdotykowe. Te

pierwsze najczęściej przybierają postać rękawic wyposażonych w szereg czujników pozwalają-

cych określić wzajemne ułożenie palców [23-26]. Interfejsy bezdotykowe są bardzo szeroko

opisane w literaturze. W zdecydowanej większości schemat działania jest bardzo podobny.

Optyczny rejestrator rejestruje obraz jednej lub obu dłoni użytkownika a komputer przetwarza

i rozpoznaje pozyskane obrazy celem identyfikacji gestów. Próby budowy interfejsów umożli-

wiających sterowanie komputerem poprzez proste i intuicyjne gesty dłoni są podejmowane

przez niezliczoną rzeszę naukowców. Niestety niewiele z nich cechuje się wysoką skuteczno-

ścią i precyzją. Wynika to z trudności w prawidłowym rozpoznawaniu dłoni i jej ułożenia.

Problemem jest zarówno wydobycie dłoni z obrazu jak i określenie, najczęściej na podstawie

obrazu 2D, wzajemnego ułożenia palców. Uniemożliwia to swobodne i intuicyjne sterowanie.

Wiele interfejsów rozpoznaje dłoń na podstawie barwy skóry [27-33]. Jest ona na tyle wy-

jątkowa wśród barw występujących w przyrodzie, że wyodrębnienie jej z obrazu nie powinno

stanowić problemu [34]. Bardzo popularnym i skutecznym rozwiązaniem do wyodrębnienia

z obrazu barwy skóry jest zastosowanie odległości Mahalanobisa [35]. Utrudnieniem jest jed-

nak zewnętrzne oświetlenie, które może zmodyfikować barwę skóry, a tym samym

uniemożliwić rozpoznanie. Bardziej zaawansowane rozwiązania wykorzystują między innymi

falki Haara [36]. Niektóre rozwiązania bazują na kamerach rejestrujących głębię (odległość

obiektów od kamery) [37-39]. Takie interfejsy pozwalają dokładniej zlokalizować dłoń, a na-

wet w większym stopniu zidentyfikować ułożenie palców. Do wyznaczania odległość obiektów

od kamery możliwe jest wykorzystanie, np. stereowizji lub ultradźwięków [40].

16

Niektórzy naukowcy podejmują próby rozpoznawania języka migowego zarówno metoda-

mi bezdotykowymi [41, 42], jak również z wykorzystaniem specjalnych rękawic [43, 44]. Jest

to bardzo trudne zadanie i nie ogranicza się tylko do rozpoznawania gestów dłoni, ale również

do wzajemnego ułożenia dłoni względem innych części ciała.

Niezwykle interesującym i bardzo zaawansowanym technicznie rozwiązaniem komunika-

cyjnym jest analizowanie fal mózgowych [45]. Elektrody rozmieszczone na powierzchni skóry

czaszki rejestrują zmiany potencjału elektrycznego. Zmiany te wynikają z aktywności neuro-

nów kory mózgowej. Aktywność mózgu uzależniona jest od myśli badanego człowieka i od

czynności jakie wykonuje on podczas badania. Istnieje zatem możliwość generowania przez

człowieka zamierzonych, powtarzalnych sygnałów i ich detekcja poprzez elektroencefalograf.

Nie jest to jednak zadanie proste. Natężenie fal mózgowych jest względnie małe, a sygnały re-

jestrowane elektrodami wymagają redukcji szumów. Zewnętrzne fale elektromagnetyczne, jak

również bicie serca badanego czy mrugnięcia oczu [46], mogą zakłócać rejestrowane sygnały

mózgowe. Głównym problemem jest niezwykle duża liczba neuronów w stosunku do liczby

stosowanych elektrod. Nie mniej jednak podejmowane są próby analizy fal mózgowych i wy-

korzystania ich w komunikacji człowiek-komputer znanej lepiej pod nazwą komunikacja

mózg-komputer (ang. BCI - Brain-Computer Interface).

Komunikacja tego typu jest najczęściej skierowana do ludzi o wysokim stopniu niepełno-

sprawności ruchowej. Ludzie niemogący wykorzystać w komunikacji z komputerem żadnej

znanej metody ruchowej, mogą sterować pracą komputera i komunikować się z otoczeniem po-

przez myśli, tj. fale mózgowe. Sterowanie takie jest mocno uproszczone. Nie pozwala

w sposób precyzyjny wskazać wybranego punktu ekranu ani szybko dokonywać wyborów

[47-49]. Mimo to prowadzone są prace nad rozwojem interfejsów mózg-komputer przez wiele

ośrodków naukowych [50-57]. Podjęto nawet próby budowy wózków inwalidzkich sterowa-

nych poprzez analizę fal mózgowych [58, 59]. Choć interfejsy te znajdują zastosowanie

głównie przez osoby niepełnosprawne, nie wykluczone, że dzięki rozwojowi techniki i deter-

minacji naukowców interfejsy mózg-komputer staną się przyszłością komunikacji człowieka

z maszynami, a może nawet innymi ludźmi. Już teraz prowadzone są prace nad interfejsami,

które mogłyby być stosowane w życiu codziennym np. do sterowania urządzeniami w domu ta-

kimi jak oświetlenie czy klimatyzacja [60], komunikacji z telefonem komórkowym [61],

zastąpienia myszy komputerowej [62] a nawet do sterowania grami komputerowymi [63, 64].

17

Microsoft w 2010 roku wprowadził do sprzedaży urządzenie pozwalające sterować kom-

puterem poprzez ruchy całego ciała - Kinect [65]. W założeniu jest to urządzenie przeznaczone

do rozrywki i jest sprzedawane razem z konsolą gier Xbox. Wykrywa ono w czasie rzeczywi-

stym położenie ciała użytkownika i na jego podstawie pozwala sterować wirtualnymi

postaciami w grach [66]. Kinect umożliwia rejestrowanie obrazu otoczenia jak zwykła kamera,

tj. rejestruje obrazy w przestrzeni barw RGB. Dodatkowo umożliwia rejestrowanie odległości

obiektów od kamery a tym samym pozwala wydobyć z przestrzeni postać użytkownika. Spe-

cjalny algorytm rozpoznaje ułożenie ciała i prezentuje je w postaci szkieletu. Rejestracja głębi

realizowana jest w paśmie światła podczerwonego. Emiter oświetla przestrzeń światłem pod-

czerwonym w postaci siatki punktów. Kamera pracująca w paśmie światła podczerwonego

rejestruje obraz tak oświetlonej przestrzeni. Analizując odległość pomiędzy sąsiednimi punkta-

mi, możliwe jest określenie odległość oświetlonego obiektu od kamery [65].

Kinect szybko został zastosowany do innych rozwiązań komunikacyjnych niż jego pier-

wotne przeznaczenie. Wielu konstruktorów interfejsów wykorzystało tę wydajną kamerę głębi

do, np. rozpoznawania gestów dłoni [14, 67].

Śledzenie ruchów oczu (ang. eyetracking) jest ciekawym rozwiązaniem komunikacyjnym

szczególnie w kontekście osób niepełnosprawnych. Należy wyróżnić dwa odmienne koncep-

cyjnie systemy tego typu. Jedna grupa to urządzenia montowane na głowie [68]. Druga grupa

to interfejsy bazujące na rejestracji obrazów twarzy użytkownika przez kamerę umieszczoną

w pobliżu monitora i detekcja oczu na zarejestrowanych obrazach [69, 70]. Interfejsy z pierw-

szej grupy najczęściej bazują na rozpoznawaniu źrenicy i analizie jej położenia [68]. Reingold

[71] wykorzystał odbicie światła od powierzchni oka. Odbicie światła od oka wykorzystali

również Poole i Ball [72] oraz Boulay [73] jako punkt odniesienia do wyznaczenia lokalizacji

źrenicy. Niestety precyzja wyznaczania lokalizacji jest uzależniona od rozdzielczości kamery,

która najczęściej jest niższa od rozdzielczości ekranu. Uniemożliwia to, np. szybkie, precyzyj-

ne i intuicyjne sterowanie kursorem, ale jest wystarczające do uproszczonego sterowania pracą

komputera.

Istnieją interfejsy, które mają na celu wykrywanie jedynie mrugnięć oczu. Desai [74] wy-

korzystał w tym celu elektrookulogram (EOG). Sun et al. [75] do wykrywania mrugnięć

wykorzystali algorytm oparty o ukryty model Markowa (HMM, ang. Hidden Markov Model)

oraz maszynę wektorów nośnych (SVM, ang. Support Vector Machine). Z kolei Pimplaskar et

al. [76] oraz Sugur et al. [77] zastosowali binaryzację i proste metody przetwarzania obrazów.

18

Jak przedstawili w swojej pracy Chau i Betke [78] w specyficznych przypadkach możliwe jest

również wykorzystanie różnic pomiędzy sąsiednimi klatkami rejestrowanymi przez kamerę.

Bardziej złożoną metodę zaprezentowali Park et al. [79] bazującą na modelowaniu twarzy 3D.

Królak i Strumiłło opracowali metodę wykrywania mrugnięć bazującą na porównywaniu zare-

jestrowanych przez kamerę obrazów z pobranym wcześniej wzorcem [80].

Oprócz śledzenia oczu istnieją interfejsy śledzące ruchy głowy. Tu również możemy wy-

różnić urządzenia montowane na głowie i takie, które rejestrują obraz głowy użytkownika

poprzez kamerę umieszczoną w pobliżu monitora. Te drugie najczęściej opierają swoje działa-

nie na wyznaczeniu trójwymiarowego modelu głowy bazując na obrazach dwuwymiarowych,

co jest kosztowne obliczeniowo. Zostało to przedstawione w pracach La Cascji et al. [81] oraz

Basu et al. [82]. Interfejsy wymagające montażu całego bądź pewnych elementów urządzenia

na głowie użytkownika, choć mogą wydawać się mniej komfortowe w użytkowaniu, cechują

się wysoką precyzją, jak na przykład metoda Houge et al. [83] i czasem nie wymagają od użyt-

kownika, by jego twarz była zwrócona w kierunku kamery, co zaprezentowali Allison et al.

[84]. Większość metod śledzenia głowy bazuje na przetwarzaniu i rozpoznawaniu obrazów po-

branych z kamer. Liu et al. [85] wykorzystali techniki bazujące na szacowaniu ułożenia głowy

pomiędzy kolejnymi klatkami wideo. Dobranie odpowiednich punktów pomiędzy dwoma są-

siednimi klatkami opiera się na metodzie SIFT (Skaloniezmiennicze przekształcenie cech, ang.

Scale-Invariant Feature Transform). Murphy-Chutorian oraz Trivedi [86] oszacowali statyczne

ułożenie głowy wykorzystując algorytm wirtualnego śledzenia bazującego na przetwarzaniu

i rozpoznawaniu obrazów. Znajduje tu zastosowanie oparty o falki Haara algorytm AdaBoost.

Kupetz et al. [87] wprowadzili przymocowaną do głowy tablicę diod IR (2x2). System śledze-

nia ruchów głowy wykorzystuje kamerę podczerwieni i algorytm do analizy rejestrowanych

obrazów. Song et al. [88] opracowali metodę bazującą na detekcji twarzy wykorzystującą algo-

rytm AdaBoost. Ruchy głowy są tu analizowane poprzez lokalizację twarzy. Twarz jest również

źródłem informacji w pracy Mandala et al. [89]. W pierwszym kroku, z kilku inicjujących kla-

tek, wyselekcjonowana zostaje barwa ludzkiej skóry. Pozwala to wykryć początkowe ułożenie

twarzy/głowy. Następnie ruchy głowy są klasyfikowane przy użyciu SVM. Jian-Zheng i Zheng

[90] ustalają pozycję głowy poprzez śledzenie cech punktów twarzy takich jak nozdrza. Użyli

w tym celu algorytmu Lucasa-Kanadea (LK) do śledzenia cech punktów. Podobną metodę i ten

sam algorytm LK użyli Z. Zhao et al. [91]. Y. Zhao i Yan [92] wykrywają skórę twarzy wyko-

rzystując model barwy skóry YCbCr a następnie klasyfikują pozycję głowy wykorzystując

19

sztuczne sieci neuronowe. Kapoor i Picard [93] opisali system wizyjny, który wykrywa kiwa-

nie i drgania głowy wykorzystując w tym celu kamerę rejestrującą światło podczerwone

wyposażoną w diody IR. Do analizy obrazów z kamery wykorzystali HMM.

Interesującym źródłem informacji może być również uzyskana w wyniku przetwarzania

obrazów trajektoria głowy. Może być wykorzystana do rozpoznawania zachowania przy zasto-

sowaniach w systemach nadzoru i wykrywaniu upadku. Moreno et al. [94] wykorzystali

złożony system kamer: skalibrowany system stereowizyjny do śledzenia głowy w 3D. W syste-

mie tym kształt głowy jest modelowany jako elipsa i jest śledzony z użyciem aktualizowanego

histogramu barw. Rougier et al. [95] wykorzystując jedną kamerę i używając właściwego algo-

rytmu analizy obrazów oblicza trajektorię 3D w czasie rzeczywistym.

Do wykrywania ruchów głowy mogą zostać wykorzystywane akcelerometry i czujniki ży-

roskopowe montowane na głowie. Manogna et al. [96] wykorzystali akcelerometr

zainstalowany na czole użytkownika. Sygnały sterujące z urządzenia pozwalają ustalić obroty

głowy. King et al. [97] i Nguyen et al. [98] wykorzystali podobną technikę. Zbierają sygnały

z dwuosiwego akcelerometru i uczą sztuczną sieć neuronową z wykorzystaniem informacji

o orientacji głowy. S. Kim et al. [99] analizuje sygnały generowane przez czujnik żyroskopo-

wy. Pozwala to na oszacowanie względnych współrzędnych ułożenia głowy.

Wykrywanie ruchów głowy jest możliwe również poprzez wykorzystanie metod bazują-

cych na sygnałach dźwiękowych. Sasou [100] analizuje sygnały z tablicy mikrofonów. W jego

metodzie, głowa jest lokalizowana na podstawie dźwięków generowanych przez użytkownika.

Można wyróżnić również metody wykorzystujące hybrydowe techniki śledzenia. Satoh et

al. [101] wykorzystali żyroskop zamontowany na głowie i dodatkowo jedną kamerę rejestrują-

cą obrazy z "lotu ptaka". J. Kim et al. [102] zintegrowali systemy śledzenia głowy i oczu.

Zainstalowali oni diody LED na kasku i wykorzystali je do określenia pozycji i rotacji głowy

poprzez analizę obrazów. Te same diody są wykorzystywane w systemie śledzenia oczu. Iwata

i Ebisawa [103] zaproponowali system, w którym wykrywane są źrenice do śledzenia oczu

a nozdrza do określenia obrotu głowy. Ruchy głowy są określane po analizie tych dwóch infor-

macji. Perez [104] opisał system, w którym używane są dwie różne techniki: interfejs wizyjny

wykorzystujący kamerę internetową i czujniki inercyjne. Orientacja głowy jest wyznaczana po-

przez algorytm Kalman Fusion. Al-Rahayfeh i Faezipour [105] zaprezentowali przegląd metod

stosowanych do śledzenia oczu i wykrywania ruchów głowy. Przegląd metod śledzenia oczu

został również zaprezentowany w pracy H. Singha i J. Singha [106].

20

Warto także wspomnieć o pracach polskich. Strumiłło i Pajor [107] zaproponowali metodę

wykrywania ruchów głowy oraz identyfikacji zamknięcia/otwarcia oczu bazującą na rozpozna-

waniu twarzy. Z kolej Bratoszewski i Czyżewski [108] zaproponowali metodę śledzenia głowy

przy wykorzystaniu kamery mierzącej czas powrotu wiązki promieniowania podczerwonego

odbitej od oświetlanego obiektu (ang. Time Of Flight). Po zastosowaniu odpowiednich metod

przetwarzania obrazu możliwe jest zlokalizowanie głowy w przestrzeni 3D.

Znaczna część interfejsów przedstawionych powyżej została zaprojektowana z myślą

o osobach niepełnoprawnych. Osoby takie rzadko kiedy mogą korzystać z powszechnie stoso-

wanych interfejsów. Komunikacja z komputerem jest dla nich mocno utrudniona

i niekomfortowa. Tradycyjne interfejsy komunikacyjne są zatem niewystarczające. Liczba roz-

wiązań umożliwiających komunikację z komputerem osobom niepełnosprawnym i ich

różnorodność świadczy o złożoności problemu. Rozwiązanie nie jest trywialne. Przede wszyst-

kim stopień niepełnosprawności jest zróżnicowany. Interfejsy często są projektowane pod

konkretną grupę osób niepełnosprawnych wykorzystując ich możliwości. Złożoność problemu

wynika również z wykorzystywanych w komunikacji rejestrowanych zachowań człowieka

i sposobu ich rejestracji. Rejestrowane zachowania są często nieintuicyjne a wręcz nieakcepto-

walne dla osób pełnosprawnych, a metody rejestracji mogą bazować na złożonych

obliczeniowo analizach obrazów czy sygnałów. Ogromna liczba interfejsów przeznaczonych

dla osób niepełnosprawnych świadczy o dużym zapotrzebowaniu na tego typu interfejsy.

Badania przeprowadzone w ramach niniejszej rozprawy koncentrują się nad zagadnieniem

komunikacji człowiek-komputer w kontekście osób niepełnosprawnych. Założono, że możliwa

jest komunikacja poprzez ruchy głowy i elementy mimiki twarzy. Przeprowadzone badania

i eksperymenty znajdowały się na pograniczu śledzenia ruchów głowy i oczu. Zbadano możli-

we rozwiązania i je opisano. W wyniku badań wykazano możliwość budowy interfejsu

realizującego przesuwanie kursora na ekranie w miejsce, na które zwrócona jest twarz użyt-

kownika. Dodatkowo wykazano możliwość interpretacji mrugnięć oczu i wykonywanie na ich

podstawie poleceń systemowych. Przeprowadzając eksperymenty wykazano wysoką skutecz-

ność i ergonomię badanych rozwiązań.

Zbudowany w oparciu o wyniki przeprowadzonych badań interfejs, nie został odnaleziony

w literaturze. Został on zatem zgłoszony do Urzędu Patentowego jako wynalazek [109]. Bada-

nia literatury i zgłoszeń patentowych przeprowadzone przez Urząd Patentowy również nie

wykazały istnienia podobnego rozwiązania.

21

Rozdział 2

Cel, teza i zakres pracy

Biorąc pod uwagę potrzebę komunikacji człowiek-komputer przez osoby niepełnosprawne

i możliwości sterowania jakimi te osoby dysponują oraz zakładając, że w rozwiązaniu zostanie

wykorzystana kamera rejestrująca ekran umieszczona na głowie użytkownika, oraz dwa czujni-

ki rejestrujące mrugnięcia oczu, postawiono w pracy następującą tezę:

„Wykorzystanie ruchów głowy oraz mrugnięć oczu pozwala na skuteczne sterowanie kursorem

ekranu oraz generowanie sygnałów sterujących pracą komputera w komunikacji czło-

wiek-komputer”.

Do udowodnienia postawionej tezy przy uwzględnieniu wyżej omówionych założeń ko-

nieczna była realizacja sześciu zadań:

1. Zbadanie możliwości szybkiej i precyzyjnej zmiany położenia kursora na ekranie po-

przez niewielkie ruchy głowy.

2. Zbadanie możliwości precyzyjnego identyfikowania mrugnięć oczu.

3. Opracowanie puli ergonomicznych gestów oczu wraz z metodą przypisania do nich po-

leceń systemowych.

4. Zbadanie możliwości zbudowania urządzenia realizującego opracowane metody stero-

wania.

5. Budowa prototypu urządzenia.

6. Przeprowadzenie eksperymentów z wykorzystaniem prototypu, celem weryfikacji po-

prawności i skuteczności opracowanych metod sterowania.

Praca została podzielona na dziewięć rozdziałów. Dwa pierwsze to rozdziały wstępne za-

wierające opis ogólnych problemów komunikacji człowiek-komputer. Opisano w nich rodzaje

i metody komunikacji. Wyszczególniono interfejsy ogólnego zastosowania oraz te o specjal-

nym przeznaczeniu, projektowane głównie z myślą o osobach niepełnosprawnych. Dodatkowo

w rozdziale 2 postawiono tezę oraz nakreślono główne zadania do realizacji i zakres pracy.

23

Rozdział 3 zawiera opis motoryczności człowieka w zakresie wymaganym do sterowania

komputerem poprzez opracowane rozwiązanie komunikacyjne. Największy nacisk został poło-

żony na możliwości ruchowe głowy. Przedstawiono dane z literatury odnoszące się do

zakresów ruchowych człowieka oraz przedstawiono z jakimi ograniczeniami się to wiąże.

Przedstawiono również możliwości człowieka w zakresie mrugnięć oraz ich wpływ na stero-

wanie poprzez opracowaną metodę. Dodatkowo omówiono problem wpływu światła

podczerwonego na gałkę oka.

Kolejny rozdział (rozdział 4) zawiera analizę rozwiązania. Jest to największy rozdział

i składa się z trzech części odzwierciedlających trzy opracowane metody sterowania.

W pierwszej części (podrozdział 4.1) opisano sterowanie kursorem poprzez niewielkie ru-

chy głowy. Zamieszczono szczegółowy opis wszystkich badanych zagadnień związanych ze

zmianą położenia kursora w opracowanej metodzie od wyświetlenia kursora na ekranie, przez

jego rejestrację, przetwarzanie i rozpoznawanie, po lokalizację i wyznaczenie zmiany położe-

nia. Przedstawiono cztery opracowane i zbadane grupy kursorów omawiając, dla każdej z nich

osobno, zagadnienia prezentacji na ekranie oraz przetwarzania i rozpoznawania. Zwrócono

uwagę na problemy pojawiające się w każdej grupie wraz z metodami rozwiązania niektórych

z nich oraz nakreślono obszary zastosowania.

W drugiej części czwartego rozdziału (podrozdział 4.2) przedstawiono opracowaną meto-

dę sterowania poprzez mrugnięcia oczu. Opisano tam zasadę działania opracowanego

rozwiązania komunikacyjnego, wraz ze szczegółowym objaśnieniem badanych zagadnień

z nim związanych. Skupiono się na problemie rozproszenia światła odbitego od rożnych po-

wierzchni oraz na sposobie wykorzystania tego zjawiska przy rozpoznawaniu mrugnięć oczu.

Dodatkowo w tej części rozdziału poświęcono dużo uwagi analizie sygnałów generowanych na

podstawie mrugnięć oczu oraz przypisaniu im poleceń systemowych.

W trzeciej części (podrozdział 4.3) przedstawiono metodę wprowadzania tekstu poprzez

zastosowanie klawiatury ekranowej z wykorzystaniem opracowanych rozwiązań komunikacyj-

nych. Wskazano możliwość wykorzystania niewielkich ruchów głowy i mrugnięć oczu do

skutecznego wprowadzania tekstu. Umieszczono tam ogólne informacje o klawiaturach ekra-

nowych. Podano też jakie klawiatury możliwe są do wykorzystania przy proponowanej

metodzie sterowania. Dodatkowo przedstawiono możliwości w zakresie szybkości wprowadza-

nia tekstu poprzez klawiaturę ekranową i jakie czynniki wpływają na ten parametr.

24

W rozdziale 5 zaprezentowano model matematyczny opisujący sterowanie poprzez nie-

wielkie ruchy głowy. Przeanalizowano wpływ ruchu głowy na zmianę położenia kursora na

ekranie w zależności od różnego rodzaju parametrów takich jak: odległość użytkownika od

ekranu, przekątna ekranu, proporcja ekranu oraz rozdzielczość. Wyznaczono wzory opisujące

niezbędne zależności oraz sporządzono wykresy prezentujące uzyskane wyniki.

Rozdział 6 zawiera rozważania nad możliwością budowy interfejsu wykorzystującego

opracowane rozwiązania komunikacyjne. Przedstawiono w nim wyniki badań nad szczegółami

budowy interfejsu realizującego opracowane metody sterowania, warianty wykonania oraz wy-

znaczone eksperymentalnie parametry podzespołów. Dodatkowo zaznaczono wpływ

zewnętrznych warunków oświetleniowych na pracę urządzenia. W rozdziale 6 skupiono się

również na opisie prototypu urządzenia zbudowanego w ramach pracy. Posłużył on do wykaza-

nia skuteczności opracowanych metod sterowania oraz do przeprowadzenia niezbędnych

eksperymentów. Zaprezentowano zarówno opis zbudowanego urządzenia jak i oprogramowa-

nia wspomagającego jego pracę.

W kolejnym rozdziale (rozdział 7) przedstawiono opis najważniejszych przeprowadzonych

eksperymentów. Opisano badania szybkości i precyzji zmiany położenia kursora na ekranie,

skuteczności rozpoznawania mrugnięć oczu oraz opinie użytkowników. Przedstawiono tam

sposób przeprowadzenia badań, ich rezultat oraz analizę wyników.

W rozdziale 8 nakreślono potencjalne obszary zastosowania opracowanego interfejsu ko-

munikacyjnego.

Rozdział 9 zawiera podsumowanie. Przedstawiono stopień realizacji nakreślonych w pracy

zadań oraz uzyskane rezultaty, które potwierdziły słuszność postawionej w pracy tezy. Roz-

dział ten jest także próbą opisu indywidualnych osiągnięć autora.

25

Rozdział 3

Wybrane problemy motoryczności człowieka

Opracowany interfejs komunikacyjny bazuje na ruchach głowy i elementach mimiki twa-

rzy. Ważną kwestią jest zbadanie w jakim zakresie człowiek może wykonywać ruchy głowy.

Jakie są możliwość i ograniczenia w tym zakresie oraz jaki ma to wpływ na opracowaną meto-

dę. Należy określić, w jakim zakresie możliwe jest zastosowanie opracowanego rozwiązania

komunikacyjnego, by jego używanie nie wykraczało poza możliwości ruchowe człowieka i co

bardzo ważne, by było komfortowe.

Mimika twarzy, wykorzystana w opracowanej metodzie sterowania, ogranicza się do mru-

gnięć oczu. Konieczne jest zbadanie, jakie możliwości mrugania posiada człowiek, by

opracowana metoda sterowania nie obciążała potencjalnego użytkownika. Sterowanie w zakre-

sie mimiki również musi być komfortowe.

Opracowana metoda sterowania poprzez mrugnięcia bazuje na oświetleniu oka światłem

podczerwonym (podrozdział 4.2). Ważne jest określenie normy dopuszczalnego natężenia

światła, które jest nieszkodliwe dla ludzkiego oka.

3.1 Motoryczność człowieka w zakresie ruchów głowy

Do sterowania kursorem w opracowanej metodzie konieczne jest wykonywanie czterech

rodzajów ruchów głowy. Są to: rotacja w lewo, rotacja w prawo, zgięcie i wyprost. Ruchy te

przedstawiono na poglądowym rysunku 3.1. Ruchy polegające na pochyleniu głowy w prawo

lub w lewo nie są wykorzystywane do sterowania w opracowanej metodzie, dlatego zakresy

tych ruchów nie zostały uwzględnione w tym rozdziale. Nie mniej jednak wpływ tych ruchów

na zmianę położenia kursora na ekranie opisano w podrozdziale 4.1.4 W literaturze można spo-

tkać dużą rozbieżność w opisie maksymalnych ruchów głowy. Wynika to z indywidualnych

27

możliwość badanych osób. Dodatkowo należy zwrócić uwagę na rodzaj ruchu. Można wyróż-

nić aktywny zakres ruchu, bierny zakres ruchu oraz strefę neutralną [110]. Istotny dla

opracowanej metody sterowania jest aktywny zakres ruchu, czyli ruchy możliwe do samodziel-

nego wykonania przez człowieka oraz strefa neutralna, czyli zakres ruchów w kręgosłupie

szyjnym przy minimalnym napięciu mięśni i więzadeł. Ograniczenie ruchów głowy do strefy

neutralnej gwarantuje użytkownikowi największy komfort pracy. W tabeli 3.1 zestawiono za-

kresy ruchów głowy odszukane w literaturze [110-114].

Tab. 3.1. Zakresy ruchów głowy człowieka.

prawa/lewa rotacja[ °]

zgięcie [ °] wyprost [ °]

aktywny zakres ruchu 48-82 35-70 48-90

strefa neutralna ~35 ~10 ~10

Duży wpływ na zakres ruchów ma również wiek badanych osób. Z wiekiem spada możli-

wość wykonywania ruchów głową [111]. Spadek ten został zaprezentowany na rysunku 3.2

z uwzględnieniem średniego zakresu ruchów głowy w przedziale wiekowym od 10 do 90 lat

dla czterech ruchów istotnych dla opracowanej metody sterowania.

Na maksymalny zakres ruchów głowy może mieć również wpływ różnego rodzaju upośle-

dzenie. Wpływ ten jest trudny do przewidzenia i zależy od indywidualnej sytuacji badanej

osoby.

28

Rys. 3.1. Rodzaje ruchów głowy wykorzystane do sterowania.

Zakres zastosowania opracowanej metody sterowania

Znając możliwości ludzkiego organizmu w zakresie ruchów głowy, możliwe jest wyzna-

czenie potencjalnego zakresu zastosowania, opracowanego interfejsu komunikacyjnego.

Wykorzystując dane z tabeli 3.1 i wzory 5.1a i 5.1b wyprowadzone w rozdziale 5 sporządzono

wykres zależności pomiędzy maksymalną możliwą do zastosowania wielkością ekranu, a odle-

głością użytkownika od ekranu (rysunek 3.3). Na wykresie naniesiono dwie krzywe

prezentujące opisywaną zależność dla:

• maksymalnego zakresu ruchu,

• strefy neutralnej.

Przez maksymalny zakres ruchu należy rozumieć najmniejszą wartość aktywnego zakresu

ruchów głowy człowiek odszukaną w literaturze. Celowo wybrano najmniejszą wartość, by

określić możliwości wykorzystania opracowanej metody sterowania przez wszystkich poten-

cjalnych użytkowników.

Wyznaczone proste dzielą obszar wykresu na trzy strefy. Najmniejsza z nich znajduje się

poniżej prostej opisującej strefę neutralną. Układy ekranów i odległości od nich, znajdujące się

w tej strefie, umożliwiają sterowanie przy minimalnym wysiłku użytkownika. Właściwy dobór

monitora do odległości z jakiej następuje sterowanie, pozwala obniżyć wysiłek podczas stero-

wania do minimum, zapewniając użytkownikowi wysoki komfort pracy. Druga strefa znajduje

się poniżej prostej określającej najniższą zanotowaną wartość maksymalnego ruch głowy.

29

Rys. 3.2. Zmniejszenie zakresu ruchów głowy z wiekiem.

Kombinacje ekranów i odległości od nich znajdujące się w tej strefie, mogą być obsługiwane

przez wszystkich ludzi. Choć wymagają trochę więcej wysiłku niż zestawienia z poprzedniej

strefy, mogą być z powodzeniem stosowane.

Ostatnia strefa znajduje się powyżej najmniejszej wartości maksymalnego ruchu głowy, co

oznacza, że sterowanie kursorem na całym ekranie jest niemożliwe dla wszystkich ludzi. Nie

oznacza to, że sterowanie w tej strefie jest w ogóle niemożliwe. Większość użytkowników

może z powodzeniem korzystać z tak dobranych ekranów, ale należy pamiętać, by uwzględnić

indywidualne możliwości człowieka.

Na rysunek 3.3 naniesiono dodatkowo prostą określającą rekomendowaną wielkość ekranu

w zależności od odległości. Bardzo istotny jest fakt, że prosta ta znajduje się w pierwszej opi-

sanej strefie, tj. poniżej prostej określającej strefę neutralną. Oznacza to, że prawidłowo

dobierając wielkość ekranu do odległości pracy, wymagany zakres ruchów głowy nie wykracza

poza strefę neutralną. Wykorzystanie opracowanej metody sterowania w niewielkim stopniu

obciąża użytkownika. Ruchy głowy odbywają się przy minimalnym napięciu mięśni i więza-

deł. Należy pamiętać, że możliwe jest również zastosowanie ekranu o przekątnej nawet trzy

i pół razy większej, nie wykraczając poza maksymalny zakres ruchów głowy jaki może wyko-

nać każdy człowiek.

30

Rys. 3.3. Wykres zależności pomiędzy maksymalną możliwą do zastosowaniawielkością ekranu a odległością użytkownika od ekranu.

3.2 Motoryczność człowieka w zakresie mrugnięć oczu

Do sterowania w opracowanej metodzie wykorzystywane są mrugnięcia oczu. Przeciętny

człowiek wykonuje od 15 do 20 mrugnięć na minutę [115, 116]. Według rożnych źródeł czas

trwania mrugnięcia oka to ok. 0,27-0,4s [115, 117]. Mrugnięcie jest jednak procesem polegają-

cym na stopniowym zamykaniu i otwieraniu oka. Czas, kiedy oko jest całkowicie zamknięte,

jest zatem krótszy niż czas mrugnięcia. Wynosi on ok. 0,025-0,05s [117]. Aby oko zostało

uznane za zamknięte w opracowanej metodzie nie musi być w pełni zamknięte. Konieczne jest

zakrycie powieką obszaru odbicia światła emitowanego przez diody. Stopień zamknięcia oka

jest zatem zależny od wzajemnego usytuowania diody i kamery. W praktyce oznacza to niemal

całkowite zamknięcie oka ale umożliwia wydłużenie czasu, w którym oko jest identyfikowane

jako zamknięte. W oparciu o przedstawione dane i przeprowadzone eksperymenty ustalono, że

zastosowana zostanie rejestracja obrazów oka z częstotliwością 25 klatek na sekundę. Oznacza

to rejestrację kolejnych obrazów co 0,04s. Taka częstotliwość zapewnia wystarczającą precyzję

do prawidłowego identyfikowania gestów wykonanych oczami. Choć istnieje pewne ryzyko,

że nie wszystkie naturalne mrugnięcia oka zostaną rozpoznane, nie stanowi to utrudnienia

w sterowaniu pracą komputera za pomocą opracowanej metody. Do sterowania wykorzystywa-

ne są jedynie świadome mrugnięcia o czasie trwania dłuższym niż pewien ustalony czas.

Rozpoznane naturalne mrugnięcia i tak są pomijane (podrozdział 4.2.3).

Ważną umiejętnością człowieka wykorzystaną do sterowania jest niezależne przymknięcie

jednego oka, tj. zamknięcie oka lewego przy zachowaniu otwartego prawego lub zamknięcie

oka prawego przy zachowaniu otwartego lewego. Pozwala to wygenerować na podstawie mru-

gnięć oczu dużą liczbę gestów (podrozdział 4.2.3). Jednak nie wszyscy ludzie potrafią

niezależne przymykać oko lewe i prawe, dlatego umiejętność ta nie jest niezbędna do sterowa-

nia pracą komputera w opracowanej metodzie. Wystarczy, że użytkownik potrafi przymknąć

jedno dowolne oko. Ogranicza to pulę możliwych do wykonania gestów, ale umożliwia stero-

wanie.

31

3.3 Wpływ światła podczerwonego na gałkę oka

W opracowanej metodzie sterowania poprzez mrugnięcia, oczy użytkownika są oświetlane

światłem podczerwonym. Zbyt silne promieniowanie podczerwone może być szkodliwe dla

zdrowia. Dodatkowo, ustalona niewielka odległość diody od oka (podrozdział 4.2.1), może po-

wodować silne oddziaływanie promieniowania na gałkę oka. Konieczny jest zatem taki dobór

diod oświetlających oczy, by długość fali i natężenie światła przez nie emitowanego mieściło

się w określonych normach bezpieczeństwa.

Przyjmuje się, że długość fali światła podczerwonego, która jest bezpieczna dla ludzkiego

oka, powinna być większa niż 1400nm. Fale takie nie wnikają w siatkówkę oka. Przyjmuje się

ponadto, że na poziomie siatkówki emisja nie powinna przekraczać 100W/m2 [118].

32

Rozdział 4

Analiza rozwiązania

4.1 Sterowanie kursorem poprzez niewielkie ruchy głowy

Badania przeprowadzone w ramach niniejszej rozprawy umożliwiły opracowanie metody

sterowania polegającej na zmianie położenia kursora na ekranie poprzez niewielkie ruchy gło-

wy. Opracowana metoda opiera się na wykorzystaniu kamery rejestrującej obraz ekranu

monitora. Na zarejestrowanym obrazie powinien znajdować się kursor. W wyniku przetwarza-

nia i rozpoznawania obrazów rejestrowanych przez kamerę zostaje on wyodrębniony

i zlokalizowany (na zarejestrowanym obrazie). Wyznaczając wektor pomiędzy pozycją zlokali-

zowanego kursora, a punktem domyślnym obrazu, (najczęściej centrum zarejestrowanego

obrazu) możliwe jest obliczenie kierunku i dystansu przesunięcia dla kursora systemowego.

Ogólny schemat przedstawiający wzajemne rozmieszczenie kamery i ekranu oraz metody

zmiany położenia kursora został pokazany na rysunku 4.1. Jak widać kamera znajduje się na-

przeciwko ekranu rejestrując jego fragment, na którym znajduje się kursor.

33

Rys. 4.1. Schemat wzajemnego rozmieszczenia kamery i ekranu oraz sposóbzmiany położenia kursora.

Sterowanie kursorem w opracowanej metodzie odbywa się wieloetapowo. Uproszczony

schemat zaprezentowany na rysunku 4.2, przedstawia kolejne etapy opracowanego procesu,

począwszy od wyświetlenia kursora na ekranie, aż do wyznaczenia zmiany jego położenia.

Każdy z etapów ma istotny wpływ na jakość sterowania, tj. na szybkość zmiany położenia kur-

sora oraz na precyzję tej zmiany.

Przedstawione na rysunku 4.2 etapy są realizowane częściowo przez urządzenie sterujące,

a częściowo przez komputer. Dokładne rozdzielenie etapów zależy od zastosowanego wariantu

urządzenia (podrozdział 6.1). Na rysunku 4.3 i 4.4 przedstawiono kolejno przepływ informacji

i podział etapów wyznaczania przesunięcia kursora dla urządzenia w wariancie przewodowym

i bezprzewodowym.

W wariancie przewodowym, rolą urządzenia jest tylko rejestracja obrazu ekranu i przesy-

łanie obrazów do komputera. Wszystkie obliczenia związane z wyznaczaniem przesunięcia

kursora wykonywane są przez komputer. W wariancie bezprzewodowym, obliczenia wykony-

wane są przez procesor umieszczony w urządzeniu. Do komputera wysyłane są jedynie

informacje o proponowanej zmianie położenia kursora. Sterownik w systemie może te dane

skorygować bądź bez żadnych modyfikacji wykorzystać je do zmiany położenia kursora syste-

mowego.

34

Rys. 4.2. Schemat zmiany położenia kursora na ekranie.

4.1.1 Prezentacja kursora na ekranie

Sposób prezentacji kursora na ekranie jest bardzo ważnym elementem opracowanego roz-

wiązania komunikacyjnego. Można powiedzieć, że rozpoczyna on proces sterowania kursorem

i determinuje dalsze działania związane ze zmianą położenia kursora na ekranie. Wpływa

przede wszystkim na rodzaj i parametry algorytmu przetwarzającego obrazy pobrane z kamery

głównej urządzenia oraz algorytmu rozpoznawania kursora. Ma również istotny wpływ na

komfort pracy użytkownika. Jest to element, na który zwrócona jest uwaga użytkownika pod-

czas pracy z wykorzystaniem opracowanej metody sterowania. Kształt kursora jak i jego barwa

wpływa zatem na odbiór całego opracowanego interfejsu.

Z wyżej wymienionych powodów, prawidłowo zaprojektowany kursor musi spełniać sze-

reg wymagań. Nie może on być zbyt mały, by jego dostrzeżenie na ekranie nie sprawiało

35

Rys. 4.3. Schemat podziału zadań i przepływu informacji podczas zmianypołożenia kursora w wariancie przewodowym.

użytkownikowi problemu. Ten warunek łatwo spełnić, ponieważ do lepszego rozpoznania kur-

sora na zarejestrowanym obrazie, bądź by rozpoznanie w ogóle było możliwe, niezbędne jest

powiększenie jego rozmiarów. Tu zaczyna się kolejny warunek związany z wielkością kursora.

Kursor nie może być za duży. Po pierwsze, jest to związane z odbiorem takiego kursora przez

użytkownika – zbyt dużym kursorem trudno nawigować i przysłania on w znacznym stopniu

treści wyświetlane na ekranie. Po drugie, są to ograniczenia systemowe. Dla systemów

Windows maksymalny rozmiar kursora to 32x32 piksele. Pomimo, że są to wartości maksy-

malne i tak są stosunkowo małe. Nie mniej jednak, jak pokazano w podrozdziałach 4.1.5 oraz

4.1.6, taka wielkość kursora jest wystarczająca do prawidłowego rozpoznania. Po trzecie, na

wielkość kursora wpływ może mieć specyfika zastosowanego wariantu opracowanej metody.

By rozpoznanie kursora było możliwe, nie może on wychodzić poza krawędzie ekranu. Przy

zastosowaniu większego kursora większa część ekranu może (ale nie musi) być wyłączona

z możliwości obsługi. Występuje wtedy efekt brzegowy (podrozdział 4.1.9). Jest to zależne za-

równo od wielkości kursora jak i jego punktu aktywnego.

36

Rys. 4.4. Schemat podziału zadań i przepływu informacji podczas zmianypołożenia kursora w wariancie bezprzewodowym.

Barwa bądź barwy zastosowane w kursorze muszą być tak dobrane, by użytkownik był

w stanie łatwo zidentyfikować kursor. Nie jest to trudny do spełnienia warunek. Dla człowieka

bardziej istotny jest kształt kursora niż jego barwa. Dodatkowo sprawdzono, że łatwiej rozpo-

znawalne dla człowieka są kursory zawierające kontur (obramowanie kształtu kursora

o szerokości jednego piksela i czarnej barwie).

Barwa kursora jest natomiast bardzo istotna dla algorytmów przetwarzania i rozpoznawa-

nia. W zależności od wariantu rozwiązania, barwa zastosowana w kursorze musi być

unikatowa w skali barw wyświetlanych na ekranie bądź, w przypadku kursorów wielobarw-

nych, choć jedna barwa powinna być możliwie rzadko występująca, a wzajemne

rozmieszczenie barw w kursorze łatwe do identyfikacji. Opracowane kursory, rozpoznawane

na podstawie ich kształtu, wymagają natomiast, by kontrast pomiędzy ich barwami składowy-

mi były jak największy.

Kolejnym parametrem kursorów jest ich kształt. Ma on znaczenia zarówno dla użytkowni-

ka jak i dla metody rozpoznawania. Użytkownicy są przyzwyczajeni do kształtu strzałki.

Zachowanie właśnie takiego kształtu przy projektowaniu kursora znacząco wpływa na polep-

szenie komfort pracy w opracowanej metodzie. Oczywiście kształt może być inny. Ważne jest,

by był on szybko i prawidłowo identyfikowany przez człowieka. W zależności od algorytmu

rozpoznającego, kształt kursora może być ogromnie ważny bądź nieistotny. Wszystko zależy

od zastosowanego wariantu. Opracowane warianty wykorzystują tylko barwę, tylko kształt

bądź obie te cechy kursora. W wariantach, w których istotną rolę odgrywa barwa kursora,

kształt powinien być tak dobrany, by możliwie maksymalnie wypełniał dostępny obszar. W ra-

mach pracy opracowano kształt kursora (rysunek 4.5), który spełnia wymagania związane

37

Rys. 4.5. Opracowany kursor spełniający wymagania związane z komfortem pracyużytkownika i algorytmów rozpoznających barwę.

z komfortem użytkownika, tj. zachowuje kształt strzałki oraz w bardzo dużym stopniu wypeł-

nia obszar przydzielony na kursor. Zajmuje go aż w 83,2%.

Reasumując, kursor prezentowany na ekranie powinien spełniać wymagania związane

z zastosowanymi w danym wariancie algorytmami przetwarzania i rozpoznawania oraz z kom-

fortem pracy użytkownika.

W trakcie prowadzenia badań powstała znaczna liczba kursorów. Zostały one podzielone

na cztery grupy różniące się metodami prezentacji, przetwarzania i rozpoznawania. Kursory

każdej grupy posiadają odmienne ograniczenia i przewidywane zastosowanie.

Wyznaczone warianty to:

• kursory jednobarwne,

• kursory wielobarwne,

• kursory o unikatowym kształcie,

• unikatowy wzór wyświetlany w sąsiedztwie kursora systemowego.

Dwa pierwsze warianty bazują głównie na identyfikacji kursora poprzez jego barwę. Ko-

lejne dwa warianty zakładają identyfikację kursora na podstawie unikatowego kształtu lub

wzoru. Metody prezentacji kursorów z wyżej wymienionych grup zostały szeroko opisane ko-

lejno w podrozdziałach 4.1.5-8.

4.1.2 Rejestracja obrazu z kursorem

Kamera główna w opracowanym rozwiązaniu komunikacyjnym ustawiona jest w taki spo-

sób, by rejestrowała obraz całego ekranu bądź przynajmniej jego część. By sterowanie było

możliwe, na zarejestrowanym obrazie powinien znajdować się kursor. Jakość rejestracji jest

niezwykle istotna dla kolejnych etapów zmiany położenia kursora systemowego na ekranie, tj.

dla przetwarzania i rozpoznawania zarejestrowanego obrazu z kursorem. Wpływ na rejestrację

mają parametry zastosowanej kamery oraz monitora. Jak stwierdzono, najważniejszą kwestią

w przypadku monitora jest jego wielkość i rozdzielczość oraz dokładność odwzorowania barw.

Znacznie więcej istotnych parametrów opisuje zastosowaną kamerę. Parametry te oraz badania

nad ich wpływem na rejestrację zostały przedstawione w podrozdziale 6.1.3.

38

Zniekształcenie barw

Barwy kursora systemowego i kursora na obrazie zarejestrowanym przez kamerę różnią

się w pewnym stopniu. Wynika to z faktu zniekształcania barw przez urządzenia wyświetlające

i rejestrujące. Niezależnie od parametrów i jakości zastosowanego monitora pierwsze znie-

kształcenie barw kursora następuje już w trakcie jego wyświetlania. Tak zniekształcony pod

względem barw kursor rejestrowany jest przez kamerę. Na tym etapie również dochodzi do

zniekształcenia barw. Od momentu wyświetlenia kursora na ekranie do zakończenia rejestracji

jego obrazu następują aż dwa zniekształcenia barw. Stopień zniekształcenia zależny jest od ja-

kości i parametrów zarówno ekranu jak i kamery głównej urządzenia. Na rysunku 4.6

zaprezentowano stopień zniekształcenia barw przykładowego kursora na zarejestrowanym ob-

razie. Widać, że oprócz samej zmiany barwy występuje również zmiana rozkładu barw. Obszar,

który na oryginalnym kursorze miał jednolitą barwę na obrazie zarejestrowanym posiada wiele

barw o rożnych parametrach.

Na zniekształcenie barw wpływ ma również kąt rejestracji oraz obszar na ekranie, na któ-

rym znajduje się kursor. Wadą wielu monitorów jest zniekształcanie barw przy zmianie kąta

obserwacji. W szczególności jest to zauważalne przy monitorach z matrycami TFT [119], ale

nie tylko. Dodatkowo niektóre monitory wyświetlają barwy nierównomiernie na całej swojej

powierzchni. Wszystko to ma wpływ na barwę kursora na zarejestrowanym obrazie.

Problem zniekształcenia barw jest bardzo istotny przy zastosowaniu kursorów rozpozna-

wanych na podstawie barwy. Należy wziąć poprawkę na zniekształcenia wynikające

z zastosowanego monitora i kamery podczas procesu przetwarzania obrazów pobranych z ka-

mery. Problem ten natomiast nie wpływa na jakość rozpoznawania kursorów o unikatowym

kształcie.

39

Rys. 4.6. Stopień zniekształcenia barw w wyniku wyświetlania i rejestracji.

Względna wielkość kursora na zarejestrowanym obrazie

Względna wielkość kursora na zarejestrowanym obrazie jest wyznaczana poprzez porów-

nanie wymiarów kursora systemowego z wymiarami kursora na zarejestrowanym obrazie.

W zależności od rozdzielczości kamery i kąta widzenia, kursor na zarejestrowanym obrazie

może być taki sam, większy lub mniejszy od kursora systemowego (rysunek 4.7). Porównywa-

na jest wielkość obu kursorów wyrażona w pikselach.

Tylko w sytuacji, gdy kursor na zarejestrowanym obrazie jest taki sam lub większy od kur-

sora systemowego, możliwe jest uzyskanie największej precyzji sterowania, tj. umieszczenie

kursora dokładnie w punkcie docelowym ekranu (wskazanym przez użytkownika). Gdy kursor

na zarejestrowanym obrazie jest mniejszy od kursora systemowego, oznacza to zmniejszenie

precyzji. Im większa różnica pomiędzy kursorem systemowym, a tym na zarejestrowanym ob-

razie, tym mniejszą precyzję można uzyskać. Na rysunku 4.8 przedstawiono teoretyczną

zależność pomiędzy względną wielkością kursora na zarejestrowanym obrazie, a precyzją ste-

rowania. Na osi odciętych umieszczono stosunek kursora oryginalnego do tego na

zarejestrowanym obrazie. Na osi rzędnych zaznaczono odpowiadającą jemu precyzję sterowa-

nia. Wartość na tej osi określa maksymalną liczbę pikseli dzielącą pozycje kursora po

przesunięciu i punkt docelowy ekranu. Niższa wartość oznacza wyższą precyzję sterowania.

Oczywiście wykres ten nie uwzględnia pozostałych czynników wpływających na precyzję ste-

rowania, takich jak choćby niedokładne przetwarzanie obrazów, wystąpienie zaszumienia bądź

zastosowanie nieodpowiedniego algorytmu do zmiany położenia kursora.

40

Rys. 4.7. Różnica wielkości pomiędzy kursorem wyświetlanym na ekranie i tymna zarejestrowanym obrazie.

Eksperymentalnie stwierdzono, że nie powinno się stosować rejestracji, w której stosunek

kursora systemowego do tego na zarejestrowanym obrazie jest większy niż trzy, co oznacza

precyzję do dwóch pikseli. Zebrano 50 obrazów zarejestrowanych kursorów przy zachowaniu

różnych współczynników rejestracji (od 0,4 do 6,3). Po przekroczeniu wartości trzy, wymiary

kursorów spadały poniżej 10 pikseli. Sprawiało to, że były one zbyt małe by ich rozpoznanie

było bezbłędne na każdym zarejestrowanym obrazie. Było to szczególnie wyraźnie widoczne

przy zastosowaniu kursorów wielobarwnych. W sytuacji gdy współczynnik rejestracji nie prze-

kraczał wartości trzy, nie stwierdzono błędów rozpoznawania, które mogłyby wpłynąć na

jakość sterowania. Do osiągnięcia największej precyzji (na poziomie zero pikseli), konieczne

jest natomiast zastosowanie małego kąta widzenia i podwyższonej rozdzielczości kamery, tak

by współczynnik rejestracji nie przekraczał wartości jeden. Jest to jak najbardziej możliwe do

osiągnięcia lecz nie zawsze opłacalne, przez wzgląd na spadek szybkości zmiany położenia

kursora i większy koszt obliczeniowy.

4.1.3 Rozpoznawanie i lokalizacja kursora

Obraz z kursorem zarejestrowany przez kamerę główną poddawany jest procesowi rozpo-

znawania. Jest to proces kilkuetapowy i jest ściśle uzależniony od typu rozpoznawanego

kursora. We wszystkich przypadkach rozpoczyna się on od etapu przetwarzania, w którym ob-

41

Rys. 4.8. Wykres zależności precyzji sterowania od wielkości kursora nazarejestrowanym obrazie.

raz z kamery głównej zostaje poddany filtracji. Celem tego etapu jest przygotowanie obrazu do

identyfikacji na nim kursora. W przypadku kursorów rozpoznawanych na podstawie barwy, fil-

tracja jest stosowana do wyodrębnienia z obrazu pikseli reprezentujących kursor, usuwając

wszystkie pozostałe informacje.

Kolejny etap to rozpoznawanie właściwe. Rozpoczyna się ono od analizy przetworzonego

obrazu i wskazaniu na nim obiektów będących potencjalnym kursorem. W przypadku wykry-

cia jednego obiektu, celem tego etapu jest stwierdzenie, czy wykryty obiekt jest szukanym

kursorem, natomiast w sytuacji, kiedy wykryto więcej niż jeden obiekt, wybór tego właściwe-

go. Ostatni etap to lokalizacja. Polega ona na ustaleniu dokładnej pozycji kursora na

zarejestrowanym obrazie.

Od rozpoznawania uzależnione jest prawidłowe działanie opracowanej metody sterowania.

Jeżeli podczas pracy tego etapu wskazany zostanie obiekt nie będący kursorem bądź nie wska-

zany zostanie żaden obiekt, uniemożliwi to zmianę położenia kursora zgodnie z intencją

użytkownika.

Przetwarzanie obrazu pobranego z kamery jak i lokalizacja w największym stopniu wpły-

wają na precyzję zmiany położenia kursora. Niewłaściwe przetworzenie obrazu,

a w szczególności nieodfiltrowanie szumu (o ile występuje on na zarejestrowanych obrazach),

może wpłynąć na błędne wyznaczenie położenia kursora. Metoda lokalizacji również powinna

być tak dobrana, by niewielkie zmiany rozpoznanego kształtu w kolejnych klatkach bądź nie

całkiem odfiltrowany szum, nie wpływały na zmianę wyznaczonego położenia.

Wspólną cechą wszystkich etapów rozpoznawania jest ukierunkowanie na małą złożoność

obliczeniową. Jest to szczególnie istotnie przy wariancie bezprzewodowym urządzenia, w któ-

rym wszystkie bądź część etapów wykonywane są przez procesor urządzenia. Nawet

w wariancie przewodowym, gdzie to komputer jest odpowiedzialny za kwestie obliczeniowe,

pożądana jest mała złożoność zastosowanych algorytmów, by praca urządzenia nie obciążała

zbytnio procesora komputera. Metody rozpoznawania i lokalizacji poszczególnych grup kurso-

rów były zatem optymalizowane pod kontem wydajności. Ostateczny kształt badanych

rozwiązań, stanowi kompromis pomiędzy wydajnością a dokładnością sterowania. Metody

przetwarzania, rozpoznawania oraz lokalizacji dla poszczególnych grup kursorów, zostały sze-

roko opisane w podrozdziałach 4.1.5-8.

42

4.1.4 Zmiana położenia kursora w systemie

Zmiana położenia kursora systemowego zależna jest od położenia rozpoznanego kursora

na zarejestrowanym przez kamerę główną obrazie ekranu, które zostało wyznaczone po proce-

sie lokalizacji. Zależy również od zastosowanego algorytmu wyznaczającego kierunek

przesunięcia kursora systemowego i wielkości przesunięcia w każdej z osi. Jak stwierdzono,

właściwy dobór algorytmu i jego parametrów jest bardzo istotny do prawidłowego działania

opracowanej metody sterowania oraz komfortu pracy użytkownika. Kursor powinien być prze-

suwany w sposób iteracyjny. Ważne jest, by zmiana jego położenia nie następowała w dużej

liczbie iteracji. Efektem tego byłby bardzo powolny ruch kursora, co z kolei mogłoby mieć ne-

gatywny wpływ na komfort użytkownika. Natomiast zbyt szybka zmiana położenia kursora

może skutkować obniżeniem precyzji sterowania.

Niezależnie od zastosowanego algorytmu, każda iteracja procesu zmiany położenia rozpo-

czyna się od wyznaczenia kierunku zmiany. Wykorzystuje się w tym celu położenie

rozpoznanego kursora, wyznaczone podczas obróbki obrazu pobranego z kamery głównej. Wy-

znaczony zostaje wektor, o początku w punkcie wskazanym jako położenie kursora i końcu

w punkcie domyślnym obrazu. Jako punkt domyślny obrazu zostało ustalone centrum kadru

kamery głównej (połowa szerokości i wysokości zarejestrowanego obrazu). Na rysunku 4.9

przedstawiono metodę wyznaczania wektora określającego kierunek przesunięcia. Widać na

nim rozpoznany kursor, osie wskazujące położenie kursora (punkt startowy), osie wskazujące

punkt domyślny ekranu (centrum kadru kamery głównej) oraz wektor łączący te dwa punkty.

Parametry wyznaczonego wektora, tj. długość wzdłuż osi x i osi y zostają zapisane i przekaza-

ne do kolejnego etapu zmiany położenia.

43

Rys. 4.9. Wyznaczanie wektora kierunku zmiany położenia kursora.

Kolejny etap zależny jest od zastosowanego algorytmu. Zbadano trzy metody zmiany po-

łożenia kursora:

• zmiana położenie o stałą wartość w każdej z osi,

• zmiana położenia o stałą wartość w kierunku wyznaczonym przez wektor,

• adaptacyjna zmiana położenia w kierunku wskazanym przez wektor.

Zmiana położenia kursora o stałą wartość w każdej z osi

Metoda ta polega na zmianie położenia kursora systemowego o tę samą, stałą wartość

w każdej osi. Kierunek zmiany dla każdej osi określony jest przez wersor wektora zmiany kie-

runku, zrzutowanego na daną oś (rysunek 4.10). Gdy wersor ma wartość zero, kursor w danej

osi nie jest przesuwany w aktualnej iteracji. Gdy wersor przyjmuje wartość dodatnią, kursor

przesuwany jest wzdłuż danej osi, o ustaloną wartość przesunięcia w kierunku dodatnim. Ana-

logicznie, przy ujemnej wartości wersora, kursor przesuwany jest w kierunku ujemnym.

Przy omawianym algorytmie, zmiana położenia kursora może następować wyłącznie po

osiach pionowych, poziomych i pod kątem 45o do tych osi (rysunek 4.11). Taki ruch kursora

jest mało intuicyjny dla człowieka.

Wartość zmiany położenia kursora musi być kompromisem pomiędzy szybkością a precy-

zją. Mała wartość przesunięcia gwarantuje wysoką precyzję, ale skutkuje bardzo wolnym

ruchem kursora i dużą liczbą wymaganych do przesunięcia iteracji. Zastosowanie zbyt dużej

wartości przesunięcia, zmniejsza liczbę wymaganych iteracji i przyspiesza zmianę położenia

kursora, ale odbywa się to kosztem precyzji (podrozdział 7.1). Jak wykazano, precyzja w oma-

wianej metodzie zmiany położenia jest równa wielkości przesunięcia kursora w pojedynczej

44

Rys. 4.10. Rozkład wektora przesunięcia na wersory.

iteracji pomniejszonej o jeden piksel. Wykorzystując stałą wartość przesunięcia kursora, istnie-

je duże prawdopodobieństwo przeskoczenia kursora za punkt docelowy, a wręcz sytuacja taka

jest nieunikniona. Zostało to szerzej omówione w dalszej części rozdziału.

Zmiana położenia kursora o stałą wartość w kierunku wskazanym przez wektor

przesunięcia

W tej metodzie zmiana położenia kursora jest zgodna z kierunkiem wyznaczonym przez

wektor przesunięcia. Oznacza to ruch kursora po najkrótszej drodze do punktu docelowego na

ekranie. W każdej iteracji wielkość przesunięcia kursora jest stała, ale różna dla każdej osi.

Wyznaczanie przesunięcia rozpoczyna się od normalizacji wektora zmiany położenia. Następ-

nie wektor jest mnożony przez ustaloną stałą, określającą wielkość przesunięcia. Tak

przygotowany wektor jest rzutowany na każdą z osi (rysunek 4.12). Kursor jest przesuwany

zgodnie z wartościami wyznaczonych wektorów.

45

Rys. 4.11. Zmiana położenia kursora o stałą wartość w każdej z osi.

Rys. 4.12. Rozkład wektora przesunięcia na wektory zmiany kierunku.

Jak już zostało nadmienione kursor przesuwa się po najkrótszej drodze do punktu docelo-

wego (rysunek 4.13), co pozytywnie przekłada się na komfort użytkownika. Podobnie jak

w poprzedniej metodzie, wielkość przesunięcia musi być kompromisem pomiędzy szybkością

a precyzją (podrozdział 7.1), która jest równa wielkości przesunięcia kursora w pojedynczej

iteracji pomniejszonej o jeden piksel. Tu również występuje duże prawdopodobieństwo prze-

skoczenia kursora za punkt docelowy.

Adaptacyjna zmiana położenia kursora w kierunku wskazanym przez wektor

przesunięcia

Metoda ta polega na przeskalowaniu wektora przesunięcia o pewną ustaloną stałą (rysu-

nek 4.14). Kolejnym krokiem jest przesunięcie kursora zgodnie z parametrami wektora. Dobór

właściwej stałej skalowania jest niezwykle istotny (podrozdział 7.1). Zbyt duża jej wartość,

choć umożliwia zmianę położenia kursora nawet w jednej iteracji, może spowodować efekt

46

Rys. 4.13. Zmiana położenia kursora o stałą wartość w kierunku wskazanym przezwektor przesunięcia.

Rys. 4.14. Rozkład przeskalowanego wektora przesunięcia na wektory zmiany kierunku.

znany z poprzednich metod zmiany położenia, tj. przeskok kursora za punkt docelowy, a tym

samym zmniejszyć precyzję sterowania. Zmniejszanie wartości stałej skalowania bardzo szyb-

ko zwiększa liczbę koniecznych do wykonania iteracji nie zwiększając precyzji (w porównaniu

z właściwym doborem stałej).

Dobór stałej skalowania zależny jest od wielu czynników. Głównie od odległości użytkow-

nika od ekranu oraz parametrów kamery. Prawidłowy dobór wartości stałej skalowania

umożliwia przesunięcie kursora systemowego w wyznaczone miejsce w pojedynczych itera-

cjach przy zachowaniu bardzo wysokiej precyzji (przesunięcie kursora dokładnie w punkt

docelowy na ekranie).

Wartość przesunięcia kursora na ekranie, w pojedynczej iteracji w opisywanej metodzie,

jest zależna od długości wektora zmiany kierunku. Im rozpoznany kursor na obrazie z kamery

głównej jest dalej od punktu domyślnego obrazu, tym przesunięcie kursora systemowego jest

większe. Umożliwia to szybką zmianę położenia kursora na ekranie, gdy znajduje się on dale-

ko od punktu docelowego. Jednocześnie pozwala zachować wysoką precyzję przesuwając

kursor o małą wartość, gdy znajduje się on blisko punktu docelowego. Sposób zmiany położe-

nia kursora na ekranie w opisywanej metodzie przedstawiono na rysunku 4.15.

W podrozdziale 7.1 wykazano, że jest to najlepsza z badanych metod zmiany położenia

kursora na ekranie. Rozwiązuje wszystkie problemy występujące w poprzednich metodach.

Jest bardzo precyzyjna i pozwala osiągnąć przez kursor punkt docelowy bardzo szybko, tj.

w pojedynczych iteracjach. Metoda jest również przyjazna użytkownikowi i intuicyjna. Więk-

szość przeprowadzonych w pracy badań i eksperymentów było opartych o tę metodę zmiany

położenia kursora na ekranie.

47

Rys. 4.15. Adaptacyjna zmiana położenia kursora w kierunku wskazanym przez wektorprzesunięcia.

Problem przeskoku kursora za punkt docelowy

Częstym problemem, przy zastosowaniu metod przesuwania kursora bazujących na stałej

wielkości przesunięcia, jest możliwość przeskoczenia kursora za punkt docelowy. Ta sytuacja

może również wystąpić w metodzie adaptacyjnej, ale w tej metodzie jest to tylko skutek błęd-

nego dobrania współczynnika skalowania, co zostało opisane w podrozdziale 7.1.

Problem ten występuje w sytuacji, gdy odległość pomiędzy kursorem a punktem docelo-

wym jest mniejsza niż wyznaczona wartość przesunięcia. Kursor po zmianie położenie pojawi

się po przeciwnej stronie punktu docelowego (rysunek 4.16). W kolejnej iteracji ponownie zo-

stanie przesunięty w kierunku punktu docelowego i ponownie pojawi się po przeciwnej jego

stronie. Jest to sytuacja niedopuszczalna. Nawet przy małej wartości przesunięcia, ciągła zmia-

na pozycji kursora oscylująca wokół punktu docelowego może być uciążliwa dla użytkownika

i powodować problemy ze wskazaniem na ekranie wybranego punktu.

Problem ten można jednak rozwiązać. Konieczne jest w tym celu wprowadzenie blokady

przesunięcia kursora. Jeżeli kursor na zarejestrowanym obrazie znajduje się w mniejszej odle-

głości od punktu domyślnego obrazu niż pewna ustalona wartość, to przesunięcie się nie

odbywa. Takie rozwiązanie zapobiega oscylowaniu kursora wokół punktu docelowego. Ustalo-

no, że prawidłowo dobrana wartość blokady pozwala dodatkowo zwiększyć precyzję

sterowania do połowy jednorazowego przesunięcia kursora. Możliwe jest wtedy jednorazowe

przeskoczenie kursora za punkt docelowy tylko w sytuacji, jeżeli po takim przeskoku, kursor

znajdzie się bliżej punku docelowego niż był przed przeskokiem. Dobór wartości blokady za-

leżny jest od wielkości przesunięcia kursora w pojedynczej iteracji oraz od współczynnika

rejestracji (stosunek wielkości wyświetlanego kursora i tego na zarejestrowanym obrazie). Nie-

prawidłowy dobór wielkości blokady może spowodować zmniejszenie precyzji, jeżeli blokada

jest zbyt duża bądź brak efektu działania blokady, jeżeli blokada jest zbyt mała.

48

Rys. 4.16. Problem przeskoku kursora za punkt docelowy.

Problem pochylenia głowy w prawo lub w lewo

Przeanalizowano jaki wpływ na szybkość i precyzję sterowania ma wykonanie przez czło-

wieka ruchu głowy nie wykorzystywanego do sterowania, a mianowicie pochylenie głowy

w prawo lub w lewo. Zauważono, że pochylenie głowy zmienia trajektorię, po której kursor

podąża do punktu docelowego. Ruch ten przypomina łuk bądź wycinek spirali. W przypadku

metod zmiany położenia kursora bazujących na stałej zmianie przesunięcia w każdej iteracji

może to skutkować zwiększeniem liczb potrzebnych do wykonania iteracji o około 5%.

W przypadku najlepszej z badanych metod, tj. w metodzie adaptacyjnej, pochylenie głowy

w prawo lub w lewo nie powoduje zwiększenia liczby koniecznych do wykonania iteracji. Po-

nadto w żadnej z badanych metod takie pochylenie głowy nie wpływa na precyzję. Można

zatem stwierdzić, że pochylenie głowy w prawo lub w lewo w znikomy sposób wpływa na ste-

rowanie z wykorzystaniem opracowanej metody.

4.1.5 Kursory jednobarwne

Prezentacja na ekranie

Kursory takie, charakteryzują się tym, że wypełnione są jednolitą barwą. Czasem kursor

zawiera również czarny kontur. Nie ma żadnych szczególnych ograniczeń na kształt kursora

oprócz opisanych w podrozdziale 4.1.1, tj. kursor powinien być łatwo identyfikowany przez

człowieka, a jego kształt powinien możliwie w dużym stopniu wypełniać obszar przewidziany

na kursor.

Na rysunku 4.17 przedstawiono przykładowe kursory jednobarwne. Jak widać, kursory te

znacząco się od od siebie różnią. Mogą przyjmować różnorodne barwy jak i kształt. Tylko nie-

które kursory przypominają strzałkę (rysunek 4.17a). Część z nich przybiera kształt celownika

(rysunek 4.17b). Inne to po prostu obszar o danej barwie z dodatkowym elementem wskazują-

cym (rysunek 4.17c).

49

Rys. 4.17. Przykładowe kursory jednobarwne.

Kursory jednobarwne zastępują kursor systemowy, dlatego ich wymiary są ograniczone do

wymiarów kursora systemowego. Mogą przyjąć dowolny kształt i barwę. Nie mniej jednak

kształt kursora powinien przypominać strzałkę. Barwa tego typu kursora, powinna być z kolei

wyróżniającą się z pośród barw innych elementów wyświetlanych na ekranie oraz możliwie ła-

twa w identyfikacji przez algorytm rozpoznawania.

Zauważono, że kursory tego typu mają jedno poważne ograniczenie. Kursory takie, by

mogły być prawidłowo rozpoznane, nie powinny wychodzić poza krawędzie ekranu. Z tego

powodu, część ekranu (niewielka część) nie może być wskazana, a przez to nie mogą być na

niej wykonywane niektóre polecenia systemowe. Problem ten wraz z metodą rozwiązania zo-

stał szerzej omówiony w podrozdziale 4.1.9.

Przetwarzanie

Przy tego typu kursorach, przetwarzanie powinno odbywać się poprzez binaryzację obrazu

zarejestrowanego przez kamerę. Taka operacja gwarantuje małą złożoność obliczeniową oraz

możliwość wydobycia z obrazu pożądanych informacji. Parametry binaryzacji są uzależnione

nie tylko od barwy nadanej kursorowi. Muszą one dodatkowo uwzględniać zniekształcenia

barw wynikające z właściwości monitora oraz kamery. Problem ten został szerzej opisany

w podrozdziale 4.1.2.

Do przetwarzania obrazów z kursorami tej grupy, wystarczający jest algorytm binaryzacji

klasyfikujący piksele znajdujące się w określonym obszarze zastosowanej przestrzeni barw

[120]. Może on pracować zarówno w przestrzeni barw RGB, HSV, jak i dowolnej innej.

Z uwagi na to, że zarówno monitor jak i przede wszystkim kamera rejestrująca obraz z kurso-

rem, wykorzystują przestrzeń barw RGB, to właśnie ta przestrzeń jest najwłaściwsza do

przeprowadzenia przetwarzania. Unika się dzięki temu kosztownej obliczeniowo konwersji

jednej przestrzeni barw w drugą [121]. Proces binaryzacji polega na sprawdzeniu czy wartości

kolejnych kanałów barwy rozpatrywanego piksela mieści się w zadanym przedziale. Przedział

dla każdego kanału jest zależny od barwy poszukiwanego kursora i powinien uwzględniać

zniekształcenie barw opisane w podrozdziale 4.1.2. Przykładowo gdy poszukiwany kursor jest

barwy czerwonej [255;0;0] (R=255; G=0; B=0) to na zarejestrowanym obrazie nie wystarcza-

jące będzie wyselekcjonowanie pikseli o barwie [255;0;0]. Jak pokazano na rysunku 4.6 barwa

czerwona może zostać zniekształcona. Kanał R może przyjąć wartości z przedziału od 234 do

255 a ponadto kanały G i B od 0 do odpowiednio 11 i 29 (na rysunku 4.6 zaznaczono wartości

50

tylko przykładowych pikseli). Tylko wtedy gdy wartość badanego piksela mieści się w tak

określonym przedziale, tj. kanał R ma wartość większą bądź równą 234, kanał G ma wartość

mniejszą bądź równą 11, a kanał B ma wartość mniejszą lub równą 29, taki piksel zostanie zi-

dentyfikowany jako składowy kursora. Efektem tak przeprowadzonej binaryzacji jest obraz, na

którym zaznaczone są tylko piksele reprezentujące potencjalny kursor. Przykładowe efekty bi-

naryzacji przedstawiono na rysunku 4.18. Niestety prostota tej metody przekłada się na jej

ograniczenia. Gdy na ekranie wyświetlone zostaną inne obiekty o barwie zbliżonej do barwy

kursora, możliwe jest błędne wskazanie tych obiektów jako potencjalny kursor. Przykłady tego

typu problemów przedstawione zostały na rysunku 4.19.

51

Rys. 4.18. Efekt przetwarzania kursorów jednobarwnych.

Rys. 4.19. Efekt błędnego przetwarzania kursorów jednobarwnych.

Dodatkowym etapem przetwarzania obrazów w tej grupie kursorów może być usunięcie

szumu. Jego pojawienie się wynika z typu i jakości zastosowanego w kamerze przetwornika.

Różne kamery wyposażone są w przetworniki różnego typu i o różnej jakości dlatego trudno

określić charakter ewentualnego szumu. Jego pojawienie się, może wynikać między innymi

z tolerancji wykonania matrycy. Pomimo, że matryce produkowane są z zachowaniem wyso-

kiej jakości to i tak różnica czułości na światło pomiędzy dwoma sąsiadującymi ze sobą

senselami (komórkami światłoczułymi) może wynieść 1% wartości średniej sygnału przy za-

stosowaniu matrycy CCD i aż 5% przy zastosowaniu matrycy CMOS. Dodatkowo

w matrycach CCD może wystąpić szum transportowy a w matrycach CMOS szum resetowa-

nia. Niezależnie od rodzaju matrycy, pojawienie się szumu może wynikać z interferencji

elektromagnetycznych. Nieuniknione jest również wystąpienie szumu śrutowego, który spowo-

dowany jest przez fluktuacje w ilości fotonów docierających do sensela w jednostce czasu.

Przy zastosowaniu kamery wysokiej jakości powstały szum jest na tyle mały, że proces jego

usuwania może zostać pominięty, zmniejszając tym samym złożoność obliczeniową przetwa-

rzania. Jeżeli jednak na zarejestrowanych obrazach wystąpi duże zaszumienie, jego usunięcie

pozwoli lepiej przygotować obraz przed etapem rozpoznawania. Usuwanie szumu może być

zastosowane na początku tego etapu, czyli przed binaryzacją bądź na końcu tego etapu, przed

przesłaniem obrazu do rozpoznawania.

Usuwanie szumu przed binaryzacją zmniejsza różnice barw pomiędzy sąsiadującymi pik-

selami. Dzięki temu, proces binaryzacji lepiej klasyfikuje piksele potencjalnego kursora przy

zastosowaniu mniejszego marginesu wynikającego ze zniekształcenia barw. Bardzo dobre

efekty przynosi zastosowanie zamknięcia morfologicznego [122], czyli zastosowanie dylatacji

a następnie erozji. Badania przeprowadzono na czterdziestu obrazach z kursorami o różnych

barwach zarejestrowanych poprzez cztery kamery o różnej jakości. Zastosowanie usuwania

szumu pozwoliło na zmniejszenie przedziałów binaryzacji w granicach 12-43%. Ostateczny

efekt zależny jest od barwy zastosowanej w kursorze oraz od barwy tła pod kursorem.

Zastosowanie filtracji po procesie binaryzacji, pozwala usunąć z przetworzonego obrazu

pojedyncze piksele błędnie zidentyfikowane jako fragmenty kursora. W tym celu najlepiej

sprawdza się efekt otwarcia morfologicznego [122], tj. zastosowanie erozji, a następnie dylata-

cji (przy założeniu, że piksele opisujące potencjalny kursor są traktowane jako obiekt, czyli po

procesie binaryzacji mają wartość 1, natomiast pozostałe piksele traktowane są jako tło, czyli

mają wartość 0). Dla uproszczenia przetwarzania możliwe jest zastosowanie tylko erozji. Nale-

52

ży pamiętać, by element strukturalny zastosowanego filtru nie przekraczał rozmiarem kursora

na zarejestrowanym obrazie. Spowodowałoby to usuniecie go z obrazu i uniemożliwiło jego

identyfikację. Jako, że filtr ten jest stosowany wyłącznie do usunięcia szumu, czyli najczęściej

pojedynczych pikseli, wystarczające jest zastosowanie filtru możliwe niskiego stopnia. Zaletą

zastosowania filtracji po procesie binaryzacji jest możliwość zastosowania filtru tylko na wy-

branych fragmentach obrazu, w miejscach, gdzie pojawiły się rozpoznane obiekty. Takie

rozwiązanie pozwala przyspieszyć etap usuwania szumu od 85% nawet do ponad 95% gdy po

procesie binaryzacji wyodrębnionych z obrazu będzie mała liczba obiektów.

W procesie usuwania szumu niezalecane jest stosowanie bardziej złożonych filtrów, np.

filtru medianowego. Filtr taki, z powodu konieczności sortowania, znacząco spowalnia prze-

twarzanie obrazów.

Rozpoznawanie

W wersji podstawowej rozpoznawanie kursora polega na odnalezieniu na przetworzonym

obrazie pikseli wyodrębnionych w wyniku przetwarzania. Wyodrębnione piksele zgrupowane

są blisko siebie tworząc pojedynczy obiekt. Tak wyznaczony obiekt przekazywany jest dalej do

etapu wyznaczania położenia. Jest to jednak przypadek idealny i występuje jedynie w syste-

mach sztucznie przystosowanych do pracy z tego typu kursorami. Może się zdarzyć, że kursory

jednobarwne znajdą zastosowanie w tradycyjnych systemach operacyjnych. W takiej sytuacji

znacznie częściej na przetworzonym obrazie wyodrębnionych zostaje więcej niż jeden obiekt,

w tym obiekty wielkości jednego lub kilku pikseli, jeżeli na etapie przetwarzania nie zastoso-

wano usuwania szumu. Zachodzi zatem potrzeba prawidłowego wskazania obiektu

reprezentującego kursor. Niestety metoda rozpoznawania tego typu kursorów bazuje jedynie na

barwie, pomijając kształt kursora. Wskazanie prawidłowego obiektu jest trudne. Już na etapie

rozpoznawania możliwe jest jednak zebranie kilku informacji o rozpoznanym obiekcie, takich

jak:

• powierzchnia (liczba pikseli budujących obiekt),

• wysokość (w pikselach),

• szerokość (w pikselach),

• rozkład pikseli (środek ciężkości).

53

Dane te pozwalają na wyeliminowanie większości błędnie rozpoznanych obiektów. Sku-

teczność rozpoznawania jest jednak zależna od barw wyświetlanych na ekranie, rozkładu tych

barw oraz barwy samego kursora. Testy symulujące pracę z wykorzystaniem tej grupy kurso-

rów w systemie pokazały, że sytuacja, w której kursor zostanie błędnie rozpoznany, tj. inny

obiekt na obrazie zostanie uznany za kursor, mogą się zdarzyć raz na kilka minut lub nawet raz

na minutę gdy barwa kursora często występuje na wyświetlanych treściach. Możliwe jest rów-

nież wykorzystanie ostatniej znanej pozycji kursora, by ustalić, który z rozpoznanych obiektów

ma wyższe prawdopodobieństwo bycia kursorem. W ogólnym rozrachunku skuteczność tej

metody jest bardzo mała.

Lokalizacja

Jest to niezwykle ważny etap decydujący o precyzji sterowania. Uzależniony jest on jed-

nak od jakości przetwarzania obrazów. Celem tego etapu jest wyznaczenie możliwie

dokładnego położenia kursora na zarejestrowanym obrazie. Zbadano, jak zmienia się wyzna-

czona lokalizacja, gdy kolejne zarejestrowane obrazy różną się pod względem jakości

przetwarzania i poziomem szumu. Łącznie do testów wykorzystano 25 sekwencji po 50 klatek

każda. Najskuteczniejszymi i najbardziej dokładnymi metodami wyznaczenia położenia są me-

tody polegające na określeniu środka ciężkości rozpatrywanego obiektu. Inne badane metody

okazały się bardzo podatne na szum oraz błędy przetwarzania i zmniejszały precyzję sterowa-

nia nawet o trzy piksele. Środek ciężkości można wyznaczyć na dwa sposoby:

• poprzez wyznaczenie średniej skrajnych pikseli obiektu,

• poprzez uwzględnienie lokalizacji wszystkich pikseli obiektu.

Pierwsza metoda jest prostsza obliczeniowo i wymaga tylko parametrów prostokąta opisu-

jącego badany obiekt, tj. współrzędne wzdłuż osi x pikseli położonych maksymalnie po lewej

(minx) i prawej (maxx) stronie obiektu oraz współrzędne wzdłuż osi y pikseli położonych mak-

symalnie w górę (miny) i w dół (maxy). Lokalizacja kursora w takiej sytuacji, to średnia

arytmetyczna skrajnych wartości (wzór 4.1a i 4.1b).

Ten sposób wyznaczania lokalizacji najlepiej sprawdza się przy kursorach o regularnym

kształcie (rysunek 4.17c) a jego dokładność wynosi do jednego piksela.

54

x=minx+maxx

2(4.1a)

y=miny+maxy

2(4.1b)

Druga metoda wymaga więcej obliczeń, ale jest dokładniejsza. Uwzględnia ona faktyczny

rozkład pikseli w obiekcie. Wyznaczenie lokalizacji, polega na wyznaczeniu średniej arytme-

tycznej lokalizacji wszystkich pikseli obiektu wzdłuż osi x i osi y. Opisują to wzory 4.2a i 4.2b,

gdzie n oznacza liczbę pikseli obiektu.

Ta metoda powinna być stosowany głównie przy kursorach o nieregularnym kształcie np.

kształcie strzałki (rysunek 4.17a). Wystąpienie szumu na przetworzonych obrazach w niewiel-

kim stopniu wpływa na wyznaczoną lokalizację i wpływ ten rzadko kiedy osiąga jeden piksel.

x=∑i=1

n

x i

n

(4.2a)

y=∑i=1

n

y i

n

(4.2b)

W obu omówionych metodach, zebranie danych potrzebnych do wyznaczenia lokalizacji

powinno nastąpić na poprzednich etapach rozpoznawania. Podczas przetwarzania lub rozpo-

znawania, gdy zachodzi konieczność odwołania się do każdego piksela obrazu, możliwe jest

jednoczesne zgromadzenie wymaganych informacji. Ogranicza to liczbę odwoływania się do

obrazu, a tym samym przyspiesza cały proces rozpoznawania i lokalizacji kursora.

Zastosowanie

To najprostsza grupa kursorów pod względem prezentacji jak i algorytmów przetwarzania

i rozpoznawania. Przekłada się to jednak na skuteczność. Ograniczona liczba danych pozyska-

nych podczas przetwarzania nie pozwala jednoznacznie zidentyfikować kursor, gdy na ekranie

pojawią się obiekty podobne do niego. Skutkuje to ograniczonym zakresem zastosowania tego

typu kursorów. Kursory jednobarwne są przeznaczone do odpowiednio przygotowanych syste-

mów, tzn. kursor powinien mieć unikatową barwę. Żaden inny obiekt wyświetlany na ekranie

55

nie powinien posiadać barwy takiej samej lub zbliżonej do barwy kursora. Pozwala to wyelimi-

nować sytuacje, w których na przetworzonym obrazie występuje więcej niż jeden obiekt

reprezentujący kursor.

Stosowanie tego typu kursorów w nieprzystosowanych systemach może powodować błęd-

ną identyfikację kursora, co znacząco utrudni bądź uniemożliwi prawidłowe sterowanie.

4.1.6 Kursory wielobarwne

Prezentacja na ekranie

Grupa ta charakteryzuje się wypełnieniem powierzchni kursora co najmniej dwoma barwa-

mi. Czasem stosuje się również czarny kontur, by kursor był łatwiej rozpoznawany przez

człowieka. Podobnie jak w przypadku kursorów jednobarwnych kształt jak i dobór barw mogą

być dowolne.

Na rysunku 4.20 przedstawiono przykładowe kursory wielobarwne. Jak widać kursory te

są zróżnicowane pod względem kształtów, barw oraz liczby zastosowanych barw. Niektóre

kursory przypominają strzałkę (rysunek 4.20a). Część z nich przybiera kształt celownika (rysu-

nek 4.20b). Inne to wielobarwny obszar z dodatkowym elementem wskazującym

(rysunek 4.20c).

Kursory wielobarwne posiadają podobne ograniczenia jak kursory jednobarwne. Przede

wszystkim zaleca się stosowanie kursorów o kształcie przyjaznym użytkownikowi oraz taki

dobór barw, by wyraźnie różniły się od siebie i co najmniej jedna z zastosowanych barw rzad-

ko występowała na innych elementach wyświetlanych na ekranie. Dodatkowo rozmiar kursora

ograniczony jest do rozmiaru kursora systemowego. W tej grupie również występuje efekt

brzegowy (podrozdział 4.1.9).

56

Rys. 4.20. Przykładowe kursory wielobarwne.

Liczba zastosowanych barw też nie może być dowolna. Specyfika tej grupy wymaga co

najmniej dwóch barw. Maksymalna liczba barw jest ograniczona przez możliwości rejestracji

i rozpoznawania. Zbyt duża liczba zastosowanych barw determinuje małą powierzchnię przy-

dzieloną na pojedynczą barwę. W takiej sytuacji, rozpoznanie niektórych barw składowych

kursora może być trudne bądź niemożliwe. Najczęściej stosuje się dwie barwy. Górna granica

wyznaczona eksperymentalnie to cztery barwy, plus ewentualny czarny kontur. Próby rozpo-

znawania kursorów wielobarwnych przeprowadzono na 100 obrazach. Obrazy te przedstawiały

10 różnych kursorów zarejestrowanych pod różnymi kątami (od 0 do 15 stopni) i przy zastoso-

waniu różnych współczynników rejestracji (od 0,4 do 3). Kursory różniły się między sobą

liczbą zastosowanych barw oraz ich rozkładem. Największą liczbą barw składowych kursora,

która umożliwiała bezbłędną identyfikację okazała się wartość 4. Kursory zbudowane z pięciu

barw były prawidłowo rozpoznawane ze skutecznością nie przekraczającą 70%. Dalsze zwięk-

szanie liczby barw składowych kursora skutkowało radykalnym spadkiem skuteczności

rozpoznawania.

Przetwarzanie

W przypadku kursorów wielobarwnych konieczne jest przeprowadzenie kilkuetapowego

procesu przetwarzania. W pierwszej kolejności przeprowadzona zostaje binaryzacja. Taka

sama jak w przypadku kursorów jednobarwnych z uwzględnieniem zniekształcenia barw wyni-

kającego z zastosowanego ekranu oraz kamery (podrozdział 4.1.2). Do binaryzacji wybierana

jest barwa składowa kursora, która statystycznie najrzadziej występuje na ekranie. Umożliwia

to ograniczenie liczby wykonywanych operacji. Binaryzacja nie jest przeprowadzana bezpo-

średnio na całym ekranie. Każdorazowo, gdy podczas przetwarzania obrazu, zidentyfikowany

zostanie piksel spełniający warunek binaryzacji, przetwarzanie zostaje chwilowo wstrzymane.

W wyznaczonym w ten sposób punkcie rozpoczyna się drugi etap przetwarzania. Jego złożo-

ność zależy od liczby zastosowanych w kursorze barw. Dla każdej barwy przeprowadzana jest

oddzielna binaryzacja (uwzględniająca oczywiście zniekształcenia barw) na fragmencie obra-

zu, w którym powinna znajdować się szukana barwa zgodnie z budową zastosowanego

kursora. Pozycja punktu rozpoczynającego drugi etap przetwarzania jest zapisywana na potrze-

by rozpoznawania. Po zakończeniu drugiego etapu przetwarzania wznawiany jest pierwszy

etap w celu przeszukania pozostałej części ekranu i wyodrębnienia innych potencjalnych kur-

sorów.

57

Podobnie jak w przypadku przetwarzania obrazów na potrzeby identyfikacji kursorów jed-

nobarwnych, tu również możliwe jest zastosowanie filtrów usuwających szum. Znajdują tu

zastosowanie wszystkie kwestie zbadane i omówione w podrozdziale 4.1.5. Tu również stoso-

wanie tego etapu nie jest wymagane a wręcz niezalecane. Zastosowanie filtrów usuwających

szum może w niewielkim stopniu zmodyfikować kształt całego kursora bądź niektórych jego

fragmentów. Może mieć to wpływ na wyznaczanie cech w procesie rozpoznawania.

Rozpoznawanie

Rozpoznawaniu poddawane są fragmenty obrazu, wyodrębnione podczas etapu przetwa-

rzania. Punkty startowe zapisane podczas przetwarzania stanowią punkty odniesienia dla

algorytmu rozpoznającego. Analizie poddane zostają zbinaryzowane obszary odpowiadające

budowie kursora. Sprawdzane są:

• bezwzględna wielkość każdego z obszarów (liczba pikseli),

• względna wielkość wszystkich obszarów,

• wzajemne rozmieszczenie barw w kursorze.

Efekt rozpoznawania przykładowego kursora wielobarwnego został zaprezentowany na ry-

sunku 4.21. Widać tu, że kursor zostaje prawidłowo rozpoznany nie tylko na jednolitym tle, ale

również, gdy tło barwą przypomina kursor.

Rzadko kiedy po etapie rozpoznawania wskazany zostaje więcej niż jeden potencjalny

kursor. Jeżeli jednak taka sytuacja wystąpi, konieczny jest wybór tego właściwego. Opracowa-

no trzy metody wyboru właściwego kursora:

• ustalenie prawdopodobieństwa dla każdego obiektu na podstawie wyżej opisanych

cech,

• porównanie aktualnej pozycji kursora z poprzednią,

• porównanie wyżej omówionych cech z cechami poprzednio rozpoznanego kursora.

Pierwsza metoda polega na porównaniu ze sobą cech rozpoznanych obiektów i wyborze

tego, który w największym stopniu odpowiada poszukiwanemu kursorowi. Sytuacje kiedy roz-

poznanych potencjalnych kursorów jest więcej niż jeden zdarzają się na tyle rzadko, że ta

metoda jest wystarczająca.

58

Kolejna metoda to porównanie pozycji rozpoznanych obiektów z poprzednią znaną pozy-

cją kursora. Na tej podstawie podejmowana jest próba ustalenia, który z obiektów

najprawdopodobniej jest poszukiwanym kursorem. Skuteczność tej metody jest jednak niska.

Najdokładniejsza metoda wyboru kursora, polega na porównaniu cech rozpoznanych

obiektów z cechami poprzednio rozpoznanego kursora. Obiekt, który w największym stopniu

przypomina wcześniej rozpoznany kursor, zostaje oznaczony jako aktualny kursor.

Pierwszą i trzecią metodę zastosowano na specjalnie przygotowanych obrazach (20 obra-

zów), na których znajdowała się duża liczba obiektów o barwach zbliżonych i takich samych

co barwy składowe kursora. Nie zdarzyło się, by trzecia metoda błędnie wskazała obiekt nie

będący kursorem. Pierwsza metoda trzykrotnie błędnie wskazała kursor. Przeprowadzono rów-

nież testy symulujące pracę z kursorem wielobarwnym w systemie. Zarówno metoda pierwsza

jak i trzecia działały bezbłędnie. Druga metoda wielokrotnie wskazała obiekt nie będący kurso-

rem gdy zidentyfikowanych było więcej niż jeden potencjalny kursor.

Wszystkie omówione metody cechują się porównywalną złożonością i nie wymagają do-

datkowych danych poza tymi już wyznaczonymi na etapie przetwarzania.

59

Rys. 4.21. Efekty rozpoznawania kursora wielobarwnego.

Lokalizacja

Lokalizacja kursorów wielobarwnych przebiega podobnie jak kursorów jednobarwnych.

Możliwe jest ustalenie pozycji kursora na trzy sposoby, w tym dwa zbadane i omówione

w podrozdziale 4.1.5:

• wykorzystanie pozycji obiektów z etapu przetwarzania,

• poprzez wyznaczenie średniej skrajnych pikseli obiektu,

• poprzez uwzględnienie lokalizacji wszystkich pikseli obiektu.

Pierwsza metoda jest mało precyzyjna, ale nie wymaga żadnych dodatkowych obliczeń.

Podczas etapu przetwarzania wyznaczane są punkty, będące odniesieniem do dalszej obróbki

potencjalnych kursorów w kolejnych etapach przetwarzania oraz przy rozpoznawaniu. Punkty

te po zakończeniu etapu rozpoznawania mogą zostać wykorzystane jako lokalizacja rozpozna-

nego kursora. Jest to rozwiązanie niezwykle proste, ale podatne na wszelkiego rodzaju szumy

i błędy przetwarzania. Dokładność lokalizacji kursora w tej metodzie nie przekracza trzech pik-

seli.

Pozostałe dwie metody są identyczne jak w przypadku kursorów jednobarwnych. Należy

jedynie pamiętać, że przy wyznaczaniu lokalizacji brane są pod uwagę wszystkie piksele budu-

jące kursor, tj. piksele o wszystkich barwach składowych kursora.

Wszystkie trzy metody zbadano tak samo jak metody lokalizacji kursorów jednobarwnych.

Uzyskane wyniki dla metod opartych na wyznaczaniu środka ciężkości były identyczne jak

w poprzedniej grupie.

Zastosowanie

Kursory wielobarwne to grupa o bardzo szerokim zastosowaniu. Wyodrębnienie kursora

z obrazu jest jednoznaczne przy umiarkowanej złożoności algorytmów przetwarzania i rozpo-

znawania. Co bardzo ważne, kursory wielobarwne mogą być powszechnie stosowane bez

konieczności specjalnego przystosowania systemu operacyjnego. Większość przeprowadzo-

nych w pracy badań i eksperymentów było opartych o tę grupę kursorów.

60

4.1.7 Kursory o unikatowym kształcie

Prezentacja na ekranie

Kursory tej grupy zbudowane są z dwóch, silnie kontrastujących barw (najczęściej białej

i czarnej) i powinny przedstawiać kształt unikatowy w skali ekranu. Przykładowe kursory tego

typu zostały przedstawione na rysunku 4.22.

Kursory te również zastępują kursor systemowy, co sprawia, że system ogranicza ich mak-

symalną wielkość. Podobnie jak w dwóch opisanych wyżej grupach, tu również występuje

efekt brzegowy (podrozdział 4.1.9).

Ze względu na maksymalną wielkość kursora, możliwość rejestracji i rozpoznawania oraz

percepcję człowieka, liczba kombinacji jest mocno ograniczona. Wzór nie może posiadać zbyt

dużej liczby detali. Podczas rejestracji zostaną one zniekształcone lub całkowicie zanikną, co

uniemożliwi rozpoznanie wzorca. Wzór nie może się też zbytnio zlewać z tłem, by był on moż-

liwy do rozpoznania przez człowieka. Przedstawione na rysunku 4.22 wzory to nieliczne

spośród badanych, które są zarówno szybko identyfikowane przez człowieka jak i możliwe do

rozpoznania przez zaadaptowany algorytm.

Przetwarzanie

Tego typu kursory przetwarzane są poprzez binaryzację [123]. Barwy składowe kursorów

o unikatowym kształcie powinny być tak dobrane, by możliwie mocno kontrastowały. Próg bi-

naryzacji należy dobrać tak, by skutecznie rozdzielał barwy składowe kursora. Najczęściej

stosuje się barwę białą i czarną. Przy tak dobranych barwach, progiem binaryzacji może być

połowa zakresu sumy kanałów R, G i B. Maksymalna wartość sumy trzech kanałów to 765.

Możemy przyjąć, że piksel którego suma kanałów R, G i B jest mniejsza bądź równa 382 zo-

stanie potraktowany jako piksel czarny. Natomiast piksel o sumie kanałów większej od 382

zostanie potraktowany jako piksel biały. Wpływ binaryzacji na pozostałe elementy wyświetla-

ne na ekranie jest nieistotny. Kursor rozpoznawany jest wyłącznie na podstawie kształtu, więc

61

Rys. 4.22. Przykładowe kursory o unikatowym kształcie.

binaryzacja ma na celu jedynie wyodrębnienie wzoru na kursorze, a nie usunięcie z obrazu

wszystkich elementów poza kursorem.

W procesie przetwarzania nie należy stosować dodatkowych filtrów, np. usuwających

szum. Taka filtracja mogłaby zmodyfikować kształt kursora, co miałoby bardzo negatywny

wpływ na skuteczność rozpoznawania.

Rozpoznawanie

Po zastosowaniu zaadaptowanego algorytmu rozpoznającego, wyznaczany jest prostokąt

opisujący kursor. Parametry prostokąta przesyłane są do wyznaczenia lokalizacji.

Kursory o unikatowym kształcie są bardzo trudne w identyfikacji. Wynika to z wielkości

kursora na zarejestrowanym obrazie. Jest on na tyle mały i zniekształcony, że niezwykle trudno

odróżnić go od innych obiektów wyświetlanych na ekranie. Problem stanowi również wysoka

złożoność obliczeniowa i mała skuteczność algorytmów potrzebnych do rozpoznania takiego

kursora.

Lokalizacja

Lokalizacja kursora odbywa się poprzez wyznaczenie centrum prostokąta opisującego kursor, wyznaczonego w procesie rozpoznawania.

Zastosowanie

Kursory o unikatowym kształcie są wyjątkowo trudne w identyfikacji zarówno przez czło-

wieka jak i przez algorytmy rozpoznające. Dodatkowo, złożoność obliczeniowa algorytmów

jest bardzo duża. Przeprowadzono badania, polegające na próbie rozpoznania kursorów z tej

grupy. Zbadano 40 obrazów z czterema rożnymi kursorami przy zachowaniu współczynnika

rejestracji z przedziału od 0,4 do 3. Prawidłowo rozpoznanych zostało zaledwie 70% kursorów.

Stwierdzono zatem bardzo niską przydatność kursorów z tej grupy do zastosowania w opraco-

wanej metodzie sterowania.

62

4.1.8 Unikatowy wzór wyświetlany w sąsiedztwie kursora

systemowego

Prezentacja na ekranie

Opisywana metoda polega na wyświetleniu w bliskim sąsiedztwie kursora systemowego

łatwego do rozpoznania wzoru (rysunek 4.23). Wzór ten podąża za kursorem w stałej odległo-

ści od niego. Po rozpoznaniu i zlokalizowaniu wzoru możliwe jest wyznaczenie pozycji

kursora systemowego. Rozwiązanie takie, nie wpływa na odbiór samego kursora przez użyt-

kownika, ponieważ możliwe jest zastosowanie dowolnego kursora, w tym również

pozostawienie standardowego kursora systemowego.

Przykładowe wzory możliwe do wykorzystania w opracowanej metodzie sterowania zosta-

ły zestawione na rysunku 4.24. Jak widać, część z tego typu wzorów może przypominać kod

kreskowy. Dzięki temu są one łatwe do rozpoznania i zachowują unikatowość w skali całego

ekranu.

63

Rys. 4.23. Unikatowy wzór wyświetlany obok kursora.

Rys. 4.24. Przykładowe unikatowe wzory.

Ta grupa kursorów nie posiada ograniczenia na wielkość unikatowego wzoru. Może on

być dowolnie duży, co znacząco wpływa na łatwość i skuteczność prawidłowej jego identyfika-

cji i lokalizacji. Możliwe jest też zastosowanie kamery głównej o niższej rozdzielczości. Nie

mniej jednak należy zauważyć, że wzór wyświetlany obok kursora przysłania fragment ekranu

przed użytkownikiem. Im taki wzór jest większy, tym większą część ekranu przysłania. Z tego

powodu, dobór wielkości wzoru musi uwzględniać komfort pracy użytkownika. Zazwyczaj

przysłaniana część ekranu nieznacznie przekracza 3%. Pomimo iż znajduje się ona blisko kur-

sora nie wpływa to na użyteczność systemu. Użytkownik zmieniając położenie kursora może

odsłonić przysłaniane przez unikatowy wzór treści. Ponadto ustalono, że jest możliwe zastoso-

wanie wzoru o pewnym stopniu przezroczystości (rysunek 4.25). Prawidłowe rozpoznanie jest

możliwe nawet przy zastosowaniu przezroczystości na poziomie bliskim 50%, co skutecznie

odsłania przed użytkownikiem treści znajdujące się pod unikatowym wzorem.

Podobnie jak we wszystkich wyżej opisanych typach kursorów, tu również zachodzi ko-

nieczność uwzględnienia efektu brzegowego. O ile kursor systemowy może wyjść częściowo

lub całkowicie poza ekran, o tyle unikatowy wzór wyświetlany obok niego już nie. Musi on

być przez cały czas w całości widoczny. Problem ten można łatwo rozwiązać zmieniając pozy-

cję unikatowego wzoru względem kursora systemowego. Szczegółowy opis tego zagadnienia

został zamieszczony w podrozdziale 4.1.9.

Przetwarzanie

Podobnie jak w przypadku kursorów o unikatowym kształcie, przetwarzanie ma na celu

uwydatnienie unikatowego wzoru, a nie usunięcie z ekranu zbędnych elementów. Dlatego sto-

suje się binaryzację [123], której jedynym celem jest rozdzielenie barw składowych

unikatowego wzoru (rysunek 4.26). Tak przetworzony obraz przekazywany jest do procesu

rozpoznawania.

Rozpoznawanie

Najlepsze efekty wykazuje stosowanie unikatowych wzorów przypominających tradycyj-

ny kod kreskowy. Głównie za sprawą małej złożoności obliczeniowej algorytmów

opracowanych do rozpoznania i ich bardzo wysokiej skuteczności. Omówiona w tym rozdziale

metoda rozpoznawania, dotyczy właśnie takich wzorów.

64

Do rozpoznawania zastosowanie znajduje algorytm skaningowy. Przetworzony obraz bi-

narny badany jest wzdłuż kolejnych poziomych linii. W każdej badanej linii poszukiwana jest

sekwencja odpowiadająca zadanemu kodowi kreskowemu. W przypadku stwierdzenia popraw-

nej sekwencji, zapisywane są w pamięci współrzędne jej początku i końca. Przykład

rozpoznania prawidłowych sekwencji na obrazie został przedstawiony na rysunku 4.27. Wystą-

pienie w jednej linii prawidłowej sekwencji jest jednak niewystarczające do stwierdzenia, że

został odnaleziony poszukiwany wzór. Na obrazie może przypadkowo powstać sekwencja od-

powiadająca poszukiwanemu kodowi. Taka sytuacja bardzo często występuje, gdy na ekranie

jest wyświetlany tekst. Jego binaryzacja powoduje powstanie wielu losowych sekwencji na

przemian występujących pól czarnych i białych o różnych szerokościach (widoczne na rysun-

ku 4.28). Można jednak uniknąć błędnej identyfikacji poszukiwanego wzoru poprzez

wprowadzenie konieczności wystąpienia prawidłowej sekwencji w kolejnych liniach. Liczba

kolejnych linii o prawidłowej sekwencji jest określona przez specyfikę zastosowanego algoryt-

mu oraz przez wysokość unikatowego wzoru z kodem kreskowym. Zapamiętywanie początku

i końca prawidłowej sekwencji wykorzystywane jest do stwierdzenia, czy w kolejnych liniach

65

Rys. 4.26. Efekt przetwarzania unikatowego wzoru wyświetlanego w sąsiedztwie kursorasystemowego.

Rys. 4.25. Prawidłowo przetworzony unikatowy wzór o pewnym stopniuprzezroczystości.

prawidłowa sekwencja występuje bezpośrednio pod sekwencją z wyższej linii oraz, czy ich

szerokość jest podobna. Dopiero wystąpienie określonej liczby linii z prawidłową sekwencją

pozwala jednoznacznie stwierdzić, że badany obiekt, to poszukiwany wzór. W takiej sytuacji

wyznaczany jest prostokątny kontur unikatowego wzoru (widoczny na rysunku 4.27 i 4.28),

a jego parametry, tj. współrzędne wierzchołków przesyłane są do wyznaczenia lokalizacji kur-

sora.

Opisana metoda rozpoznawania jest bardzo wydajna obliczeniowo i niezwykle skuteczna.

Niemniej jednak możliwa jest jej optymalizacja. Nie jest konieczne zastosowanie algorytmu

skaningowego na wszystkich liniach obrazu. Wystarczy, że prawidłowa sekwencja będzie po-

szukiwana w co n-tej linii. Dobór współczynnika n jest zależny od wysokości unikatowego

wzoru. Ważne, by poszukiwany kod kreskowy nie mógł znaleźć się pomiędzy badanymi linia-

mi. Dopiero po stwierdzeniu wystąpienia prawidłowej sekwencji, badaniu poddawane są linie

powyżej i poniżej i to nie całe. Wystarczające jest zbadanie wyłącznie odcinka linii odpowiada-

jącego długości prawidłowo rozpoznanej sekwencji z uwzględnieniem pewnego niedużego

marginesu z obu stron. Dzięki tej operacji możliwe jest znaczące ograniczenie koniecznych do

wykonania operacji na obrazie nawet o 95%. Badane są tylko niektóre linie obrazu i często tyl-

ko fragmenty tych linii.

66

Rys. 4.27. Efekt rozpoznawania unikatowego wzoru wyświetlanego w sąsiedztwiekursora systemowego.

Rys. 4.28. Efekt prawidłowego rozpoznawania unikatowego wzoru pomimowystąpienia na obrazie poprawnych sekwencji poza unikatowym wzorem.

Lokalizacja

Opisywana metoda zakłada wyświetlanie unikatowego wzoru w sąsiedztwie kursora syste-

mowego. Aby zatem zlokalizować kursor systemowy nie wystarczy tylko zlokalizować

unikatowy wzór. Konieczne jest również uwzględnienie dystansu dzielącego unikatowy wzór

i kursor. Dodatkowo wyznaczanie lokalizacji uzależnione jest od trybu w jakim znajduje się

kursor (podrozdział 4.1.9).

Ustalanie lokalizacji rozpoczyna się od wyboru właściwego narożnika prostokąta opisują-

cego unikatowy wzór. Należy wybrać ten, znajdujący się najbliżej kursora systemowego

zgodnie z aktualnym trybem kursora. Współrzędne narożników prostokąta opisującego zostają

wyznaczone w procesie przetwarzania.

Kolejnym krokiem jest uwzględnienie dystansu dzielącego unikatowy wzór i kursor. Wiel-

kość dystansu w każdej z osi wynika ze specyfiki zastosowanego rozwiązania. Kierunek

przesunięcia punktu lokalizacji jest zależny od trybu kursora. Uwzględnienie dystansu dzielą-

cego kursor i wzór nie zawsze jest jednak konieczne. Ustalenie położenia kurosa jako

współrzędne odpowiedniego narożnika prostokąta opisującego wzór zazwyczaj jest wystarcza-

jące. Skutkuje jedynie niewielką niezamierzoną przez użytkownika zmianą położenia kursora

systemowego przy zmianie trybu kursora. Przykłady lokalizacji kursora przy uwzględnieniu

przesunięcia i bez niego zestawiono na rysunku 4.29.

Zastosowanie

Jest to zupełnie inna koncepcja kursora niż w trzech grupach opisanych powyżej. Sposób

lokalizacji kursora poprzez rozpoznawanie unikatowego wzoru wyświetlanego w jego sąsiedz-

twie, cechuje się wysoką skutecznością i nie wymaga żadnej ingerencji w system operacyjny.

Rozpoznawanie unikatowego wzoru przebiega przy zastosowaniu algorytmów o małej złożo-

ności obliczeniowej, zapewniając łatwą i bezbłędną jego identyfikację. Metoda ta może być

zatem powszechnie stosowana.

67

Rys. 4.29. Metody wyznaczania lokalizacji kursora względem unikatowegowzoru.

4.1.9 Efekt brzegowy

Kursory każdego typu zastępujące kursor systemowy oraz unikatowy wzór wyświetlany

obok kursora systemowego muszą być widoczne przez cały czas na ekranie. Nie mogą tak jak

kursor systemowy wyjść poza krawędzie ekranu. Gdy część kursora bądź unikatowego wzoru

znajdzie się poza krawędzią ekranu, prawidłowe rozpoznanie kursora może być znacznie

utrudnione bądź wręcz niemożliwe. Z tego powodu powstaje problem przy krawędziach ekra-

nu. Aktywny punkt kursora nie możne się zbliżyć do wszystkich lub niektórych krawędzi.

W wyniku tego, część ekranu pozbawiona jest możliwości sterowania. Możliwe jest tam wy-

świetlanie treści, ale niemożliwe jest wskazanie kursorem punktu na takim obszarze

i wykonanie dla niego odpowiedniej akcji.

Kursory zastępujące kursor systemowy

W przypadku kursorów, które zastępują kursor systemowy, tj. kursorów jednobarwnych,

wielobarwnych i tych o unikatowym kształcie ich aktywny punkt nie może zbliżyć się do

wszystkich krawędzi. Gdy aktywny punkt znajduje się w rogu kursora, kursor taki może wska-

zywać punkty lezące tylko przy dwóch krawędziach. Od pozostałych dwóch krawędzi musi

być zachowany odstęp równy szerokości bądź wysokości kursora minus jeden piksel (rysu-

nek 4.30). Dla kursorów o maksymalnej wielkości dla systemu Windows, tj. 32x32 piksele,

obszar nieaktywny zajmuje 31 pikseli od dwóch krawędzi ekranu.

Gdy aktywny punkt kursora znajduje się w jego centrum konieczne jest zachowanie odstę-

pu od wszystkich krawędzi równego połowie szerokości lub wysokości kursora plus/minus

jeden piksel (rysunek 4.31). Dla kursorów o wielkości 32x32 pikseli obszar nieaktywny zajmie

15 lub 16 pikseli od każdej z krawędzi.

Problem ten można rozwiązać poprzez wprowadzenie zmiennej orientacji kursora. Wraz

z orientacją zmienia się również punkt aktywny kursora. W sytuacji, gdy kursor zbliży się do

prawej krawędzi ekranu, jego orientacja zmieniana jest w taki sposób, by punkt aktywny kur-

sora znajdował się maksymalnie po prawej stronie. W sytuacji, gdy kursor oddali się od prawej

krawędzi, jego orientacji zmieniana jest w taki sposób, by punkt aktywny znajdował się mak-

symalnie po lewej stronie kursora. Analogicznie, gdy kursor zbliży się do dolnej krawędzi, jego

orientacja zmieniana jest w taki sposób, by punkt aktywny znajdował się na dole. Gdy kursor

oddali się od dolnej krawędzi punkt aktywny przesuwany jest na górę kursora.

68

Ustalono cztery osie, po przekroczeniu których następuje zmiana orientacji kursora. Wy-

znaczono dwie osie pionowe (x1, x2) i dwie poziome (y1, y2) znajdujące się równo w połowie

ekranu (x1, y1) i w jednej trzeciej odległości od prawej (x2) i dolnej (y2) krawędzi ekranu (rysu-

nek 4.32). Dodatkowo na rysunek 4.32 naniesiono numer trybu w jakiem znajduje się kursor

w danej części ekranu wydzielonej przez osie. Jeżeli w jakiejś części ekranu kursor może wy-

stępować w więcej niż jednym trybie oznacza to, że jest to obszar przejściowy i tryb kursora

zależy od jego poprzedniego położenia. Takie rozwiązanie zostało wprowadzone, by zmiana

trybu kursora nie następowała zbyt często w jednej konkretnej osi ekranu, co mogłoby być

uciążliwe dla użytkownika.

69

Rys. 4.30. Wystąpienie efektu brzegowego dla kursorów zastępujących kursorsystemowy z aktywnym punktem w rogu kursora.

Rys. 4.31. Wystąpienie efektu brzegowego dla kursorów zastępujących kursorsystemowy z aktywnym punktem w centrum kursora.

Orientację kursora dla każdego z czterech trybów wraz z punktem aktywnym przedstawio-

no na rysunku 4.33. Przekroczenie przez kursor osi:

• x1 (przy ruchu w lewą stronę) powoduje zmianę jego orientacji na

tryb 1 (z trybu 2) lub tryb 3 (z trybu 4),

• x2 (przy ruchu w prawą stronę) powoduje zmianę jego orientacji na

tryb 2 (z trybu 1) lub tryb 4 (z trybu 3),

• y1 (przy ruchu w górę) powoduje zmianę jego orientacji na

tryb 1 (z trybu 3) lub tryb 2 (z trybu 4),

• y2 (przy ruchu w dół) powoduje zmianę jego orientacji na

tryb 3 (z trybu 1) lub tryb 4 (z trybu 2).

Sposób ten umożliwia wyeliminowanie efektu brzegowego dla kursorów zastępujących

kursor systemowy. Rozwiązanie to wymaga jednak zastosowania kursorów, które posiadają

punkt aktywny w rogu kursora (np. kursory przedstawione na rysunku 4.17a i 4.17c oraz na ry-

sunku 4.20a i 4.20c). Metoda ta jest nieskuteczna przy zastosowaniu na przykład kursorów

o punkcie aktywnym w centrum (rysunek 4.17b i 4.20b). Dodatkowym utrudnieniem jest ko-

nieczność zmiany kursora systemowego, gdy zachodzi potrzeba zmiany jego orientacji, tj. przy

przekraczaniu osi. Nie mniej jednak opracowane rozwiązanie umożliwia objęcie aktywnym po-

lem kursora całego ekranu, co zostało przedstawione na rysunku 4.34.

70

Rys. 4.32. Podział ekranu na osie zmieniające tryb kursora.

Rys. 4.33. Orientacja kursora zastępującego kursor systemowy dla różnych trybów.

Unikatowy wzór wyświetlany w sąsiedztwie kursora systemowego

Przy zastosowaniu unikatowego wzoru, który jest wyświetlany w stałej odległości od kur-

sora systemowego, obszar nieaktywny jest większy niż przy kursorach zastępujących kursor

systemowy. Przy wyznaczaniu nieaktywnego obszaru należy uwzględnić nie tylko rozmiar uni-

katowego wzoru, który jest większy niż kursor, ale również odległość wzoru od kursora

systemowego (rysunek 4.35). Obszar nieaktywny występuje przy dwóch krawędziach ekranu.

Problem ten można rozwiązać poprzez zmianę położenia unikatowego wzoru względem

kursora systemowego. W sytuacji, gdy kursor znajdzie się blisko prawej krawędzi ekranu, uni-

katowy wzór zostanie przeniesiony na jego lewą stronę. Gdy kursor oddali się od prawej

krawędzi unikatowy wzór zostanie ponownie przesunięty na prawą stronę. Analogicznie w sy-

tuacji, gdy kursor znajdzie się blisko dolnej krawędzi. Wówczas unikatowy wzór zostanie

przeniesiony powyżej kursora, a po oddaleniu się kursora od dolnej krawędzi wzór zostanie

przesunięty powyżej kursora.

71

Rys. 4.34. Wyeliminowany efekt brzegowy dla kursorów zastępujących kursorsystemowy z aktywnym punktem w rogu kursora.

Rys. 4.35. Wystąpienie efektu brzegowego dla unikatowego wzoru wyświetlanegow sąsiedztwie kursora systemowego.

Ustalono cztery osie po przekroczeniu których następuje zmiana położenia unikatowego

wzoru względem kursora. Podobnie jak przy kursorach zastępujących kursor systemowy wy-

znaczono dwie osie pionowe (x1, x2) i dwie poziome (y1, y2) znajdujące się w połowie ekranu

(x1, y1) i w jednej trzeciej odległości od prawej (x2) i dolnej (y2) krawędzi ekranu (rysu-

nek 4.32). Na rysunek 4.32 naniesiono również numer trybu jaki przyjmuje unikatowy wzór,

gdy kursor znajduje się w danej części ekranu wydzielonej przez osie. Jeżeli w jakiejś części

ekranu unikatowy wzór może występować w więcej niż jednym trybie oznacza to, że jest to

obszar przejściowy i tryb unikatowego wzoru zależy od poprzedniego położenia kursora.

Położenie unikatowego wzoru względem kursora systemowego dla każdego z czterech try-

bów wraz z punktem aktywnym kursora przedstawiono na rysunku 4.36. Przekroczenie przez

kursor osi :

• x1 (przy ruchu w lewą stronę) powoduje zmianę położenia unikatowego wzoru na

tryb 1 (z trybu 2) lub tryb 3 (z trybu 4),

• x2 (przy ruchu w prawą stronę) powoduje zmianę położenia unikatowego wzoru na

tryb 2 (z trybu 1) lub tryb 4 (z trybu 3),

• y1 (przy ruchu w gorę) powoduje zmianę położenia unikatowego wzoru na

tryb 1 (z trybu 3) lub tryb 2 (z trybu 4),

• y2 (przy ruchu w dół) powoduje zmianę położenia unikatowego wzoru na

tryb 3 (z trybu 1) lub tryb 4 (z trybu 2).

Takie rozwiązanie pozwala zbliżyć się kursorowi do każdej krawędzi ekranu niwelując

w ten sposób efekt brzegowy. Metoda ta nie wymaga ingerowania w kursor systemowy, a pole-

ga jedynie na zmianie położenia unikatowego wzoru względem kursora systemowego. Dzięki

temu może być stosowana z dowolnym kursorem. Na rysunku 4.37 zaprezentowano aktywne

pole kursora przy omówionym rozwiązaniu. Jak widać kursor obejmuje cały obszar ekranu.

72

Rys. 4.36. Położenie unikatowego wzoru względem kursora systemowegodla rożnych trybów.

4.2 Sterowanie poprzez mrugnięcia oczu

Opracowany interfejs umożliwia między innymi wykonywanie poleceń systemowych po-

przez mrugnięcia oczu. W tym celu wykorzystywane są dwa moduły mikrokamer, które

składają się z mikrokamer rejestrujących wyłącznie światło w paśmie podczerwonym oraz diod

oświetlających oczy światłem podczerwonym. Zastosowanie światła podczerwonego, a nie

światła widzialnego, zapobiega wystąpieniu zjawiska olśnienia a tym samym zapewnia możli-

wość normalnej pracy z wykorzystaniem opracowanego interfejsu. Ponadto takie rozwiązanie

uniezależnia sterowanie poprzez mrugnięcia od zewnętrznych warunków oświetleniowych.

Przetwarzanie i analiza obrazów pobranych z mikrokamer pozwala niezależnie ustalić stan oka

lewego i prawego. Przez stan oka należy rozumieć jedną z dwóch możliwości - oko jest otwar-

te albo zamknięte. Jednoznaczne ustalenie stanu oka jest możliwe poprzez opracowaną metodę

bazującą na analizie stopnia rozproszenia światła odbitego od oka. Metoda ta umożliwia bar-

dzo dokładną analizę przy zachowaniu niskiego kosztu obliczeniowego, który jest bardzo

pożądany szczególnie w wariancie bezprzewodowym urządzenia (podrozdział 6.1.1). Inne zna-

ne metody rozpoznawania oka koncentrują się na rozpoznaniu na zarejestrowanych obrazach

kształtu oka, tj. zidentyfikowaniu źrenicy i tęczówki, modelowaniu twarzy 3D lub wykorzystu-

ją zaawansowane algorytmy przetwarzania obrazów (rozdział 1). Są to metody kosztowne

obliczeniowo i nie zawsze skuteczne. Opracowana metoda pozwala w szybki i prosty sposób

jednoznacznie określić, w jakim stanie aktualnie znajduje się oko, tak by sterowanie odbywało

się zgodnie z intencjami użytkownika.

73

Rys. 4.37. Wyeliminowany efekt brzegowy dla unikatowego wzoru wyświetlanegow sąsiedztwie kursora systemowego.

Sterowanie pracą komputera poprzez mrugnięcia oczu to proces wieloetapowy. Na rysun-

ku 4.38 przedstawiono kolejne etapy opracowanego procesu, począwszy od oświetlenia oka

światłem podczerwonym, aż do wykonania odpowiedniego polecenia systemowego. Każdy

z wymienionych etapów jest istotny dla całego procesu i ma wpływ na dokładność sterowania.

Przedstawione na rysunku 4.38 etapy są realizowane częściowo przez urządzenie, a czę-

ściowo przez komputer. Podział pracy zależy od zastosowanego wariantu urządzenia

(podrozdział 6.1.1). W wariancie przewodowym (rysunek 4.39), zadaniem urządzenia jest tyl-

ko oświetlenie i rejestracja obrazów oczu. Wszystkie pozostałe etapy realizowane są przez

komputer. W wariancie bezprzewodowym (rysunek 4.40), urządzenie oprócz oświetlenia oczu

i rejestracji ich obrazów dokonuje również przetwarzania zarejestrowanych obrazów, rozpo-

znawania gestów i generowania sygnałów na podstawie mrugnięć oczu. Zadaniem komputera

jest tylko analiza wygenerowanych sygnałów i przypisanie im poleceń systemowych. Taki po-

dział etapów w wariancie bezprzewodowym umożliwia dowolną zmianę opisu gestów i ich

wpływu na pracę komputera bez ingerencji w urządzenie. Możliwe jest dzięki temu dostosowa-

nie sterowania do preferencji użytkownika.

4.2.1 Rejestracja obrazów oczu

Pierwszym etapem procesu sterowania pracą komputera poprzez mrugnięcia oczu jest reje-

stracja ich obrazów. Odbywa się ona przy pomocy dwóch modułów mikrokamer, po jednym na

oko. Składają się one z mikrokamery rejestrującej wyłącznie światło w paśmie podczerwonym

74

Rys. 4.38. Schemat sterowania poprzez mrugnięcia.

oraz diody lub zestawu diod emitujących światło podczerwone. Mikrokamera umieszczona jest

w sposób, umożliwiający rejestrację obrazów oka lub jego fragmentu. Dioda lub diody usytu-

owane są tak, by oświetlały oko światłem podczerwonym.

Jakość rejestracji jest niezwykle istotna dla procesu przetwarzania i rozpoznawania. Jak

zostało zbadane i omówione w podrozdziale 6.1.3, dla zapewnienia wysokiej skuteczności, mi-

krokamery powinny rejestrować obrazy o rozdzielczościach od 4,8 tysiąca pikseli (80x60) do

0,3 megapikseli (640x480). Wyższa rozdzielczość poprawia skuteczność rozpoznawania mru-

75

Rys. 4.39. Schemat podziału zadań i przepływu informacji podczas sterowaniamrugnięciami w wariancie przewodowym.

gnięć oczu, nieznacznie podnosząc koszt obliczeniowy. Na rysunku 4.41 przedstawiono obrazy

oczu zarejestrowane w rożnych rozdzielczościach.

Moduły mikrokamer, podobnie jak kamera główna, powinny być sztywno przymocowane

do głowy użytkownika. Nie jest istotne, z której strony rejestrowane będą obrazy oczu. Ważne

jest natomiast, by mikrokamera nie przysłaniała użytkownikowi widoku na wprost. Rejestracja

powinna zatem przebiegać pod dużym kątem. Ustalono, że kamery powinny obserwować oczy

od dołu (rysunek 4.42) lub od strony zewnętrznej lekko z góry (rysunek 4.43). Obie lokalizacje

kamer, gwarantują dobrą rejestrację obrazów oczu, nie wpływając znacząco na ograniczenie

pola widzenia użytkownika. W zależności od zastosowanej formy urządzenia, tj. okulary, opa-

ska, itp., sposób mocowania mikrokamer może się różnić, ale powinien być zachowany kąt

rejestracji.

76

Rys. 4.40. Schemat podziału zadań i przepływu informacji podczas sterowaniamrugnięciami w wariancie bezprzewodowym.

Odległość mikrokamery od oka powinna być na tyle mała, by na zarejestrowanym obrazie

nie znajdowały się inne obiekty poza okiem, które mogłyby wpłynąć na poprawność identyfi-

kacji mrugnięć. Poza tym, mała odległość mikrokamery od oka użytkownika, zmniejsza

wymiary całego urządzenia. Zbyt mała odległość mikrokamery od oka też nie jest pożądana.

Przede wszystkim, światło wyemitowane przez diodę musi się odbić od powierzchni oka pod

możliwie małym kątem (kąt względem normalnej do powierzchni) i dostać się do obiektywu

kamery. Mała odległość mikrokamery od oka może to uniemożliwić. Dodatkowo bliskość ka-

mery przy gałce oka może być bardzo niekomfortowa dla użytkownika i znacząco ograniczyć

jego pole widzenia. Optymalna wyznaczona odległość pomiędzy mikrokamerą a okiem wynosi

od 20 do 25mm.

77

Rys. 4.41. Obrazy oka zarejestrowane w różnych rozdzielczościach.

Rys. 4.43. Usytuowanie kamery przy rejestracji obrazów oka od strony zewnętrznejlekko z góry.

Rys. 4.42. Usytuowanie kamery przy rejestracji obrazów oka od dołu.

Diody zastosowane w module mikrokamery powinny znajdować się w bliskim sąsiedztwie

obiektywu mikrokamery. Zamontowane powinny być w sposób, umożliwiający oświetlenie

fragmentu oka będącego celem rejestracji. Bliskość kamery umożliwia, co było już nadmienio-

ne, emisję światła podczerwonego pod małym kątem w kierunku powierzchni oka. Zapewnia

to większą dokładność rozpoznawania mrugnięć na podstawie stopnia rozproszenia światła od-

bitego. Na rysunku 4.44 przedstawiono odbicie światła od powierzchni oka pod małym

i dużym kątem. Jak widać światło odbite od powierzchni kulistej ulega większemu rozprosze-

niu przy większym kącie padania. Mniejszy kąt padania zapewnia małe rozproszenie, dzięki

czemu więcej światła odbitego dociera do obiektywu mikrokamery. Umieszczenie diody blisko

mikrokamery, gdy znajduje się ona w jednej z ustalonych lokalizacji, zapobiega ponadto pada-

niu światła podczerwonego bezpośrednio w źrenicę.

4.2.2 Rozpoznawanie mrugnięć oczu

Obrazy zarejestrowane przez mikrokamery zostają przekazane do przetwarzania i rozpo-

znawania stanu oczu. Przez stan oka należy rozumieć jednoznaczne rozdzielenie sytuacji,

w których oko jest otwarte, a w których zamknięte. Stany oczu przyjmują zatem wartości bi-

narne i są one wyznaczane osobno dla każdego oka. Rozpoznawanie stanu oka odbywa się

poprzez opracowaną metodę analizy stopnia rozproszenia światła odbitego od oka.

Rozproszenie światła odbitego

Światło, padając na dowolną powierzchnię ulega częściowemu odbiciu. W zależności od

rodzaju powierzchni, światło ulega większemu lub mniejszemu rozproszeniu. Na rysunku 4.45

przedstawiono model odbicia światła od powierzchni gładkiej i chropowatej. Ta właściwość

światła została wykorzystana w procesie rozpoznawania stanu oka. Powierzchnie gładkie odbi-

78

Rys. 4.44. Odbicie światła od oka pod małym i dużym kątem.

jają światło rozpraszając je w niewielkim stopniu. Natomiast powierzchnie chropowate rozpra-

szają światło bardzo mocno [124]. Przykłady odbicia światła od różnego rodzaju powierzchni

zestawiono na rysunku 4.46. Obrazy te zostały wygenerowane komputerowo przy zastosowa-

niu modelu odbicia światła opracowanego przez Phonga [125].

Światło podczerwone wyemitowane przez diody może ulec odbiciu od gałki oka, jeżeli

oko jest otwarte lub od powieki, jeżeli oko jest zamknięte. Gałka oka charakteryzuje się gład-

ką, szklistą powierzchnią. Światło odbite od takiej powierzchni zostaje rozproszone

w nieznacznym stopniu. Na obrazach zarejestrowanych przez mikrokamery widać niewielkich

rozmiarów, wyraźne odbicie światła wyemitowanego przez diodę (rysunek 4.47). Skóra czło-

wieka natomiast, posiada bardzo mocne właściwości rozpraszające światło. W sytuacji, gdy

światło wyemitowane przez diody odbije się od powierzchni powieki, ulega bardzo silnemu

rozproszeniu. Jest to widoczne na obrazach z mikrokamer (rysunek 4.48). Powieka oka jest

oświetlona, ale nie widać na jej powierzchni wyraźnego, punktowego odbicia światła.

Możliwe jest zatem określenie stanu oka wykorzystując różnice w stopniu rozproszenia

światła odbitego od gałki oka i powieki. Silne rozproszenie światła oznacza jego odbicie od po-

wieki, czyli oko jest zamknięte. Z kolei, gdy rozproszenie jest niewielkie, światło odbiło się od

gałki oka, co oznacza, że oko jest otwarte.

79

Rys. 4.45. Model rozproszenia światła odbitego od powierzchni gładkiej i chropowatej.

Rys. 4.46. Rozproszenie światła odbitego od powierzchni gładkich i chropowatych.

Przetwarzanie i rozpoznawanie obrazów z mikrokamery

Możliwe jest ustalenie stanu oka poprzez przetwarzanie i rozpoznawanie obrazów dostar-

czonych z mikrokamery. Proces ten przebiega w trzech etapach. Jego celem jest pozyskanie

z obrazu informacji o stopniu rozproszenia światła odbitego i ustaleniu na jego podstawie stanu

oka, tj. wartości binarnej. Należy pamiętać, że w czasie rzeczywistym przetwarzane są obrazy

z dwóch mikrokamer, co wymusza małą złożoność obliczeniową zastosowanego algorytmu.

Pierwszy etap polega na wskazaniu na obrazie punktu odbicia światła. Punkt ten rzadko

kiedy ma rozmiar jednego piksela. Jest to możliwe tylko przy zastosowaniu mikrokamery

o bardzo małej rozdzielczości. Najczęściej punkt odbicia to grupa bardzo jasnych pikseli sąsia-

dujących ze sobą. Celem tego etapu jest odszukanie tego obszaru i określenie jego położenia.

W najprostszej wersji efektem działania algorytmu do określania punktu odbicia jest wy-

szukanie na obrazie najjaśniejszego punktu. To rozwiązanie, pomimo dużej prostoty, daje

bardzo dobre rezultaty i cechuje się małą złożonością obliczeniową. Przykłady wyznaczenia

najjaśniejszego punktu obrazu dla oka otwartego przedstawiono na rysunku 4.49, a dla oka za-

mkniętego na rysunku 4.50.

80

Rys. 4.47. Zarejestrowane obrazy otwartych oczu z widocznym odbiciem światławyemitowanego przez diodę.

Rys. 4.48. Zarejestrowane obrazy zamkniętych oczu - duże rozproszenie światła odbitego.

Zastosowanie bardziej złożonych algorytmów umożliwia wyszukanie całej grupy najja-

śniejszych pikseli i ustalenie pozycji odbicia na podstawie środka ciężkości takiej grupy. To

rozwiązanie jest bardziej dokładne i teoretycznie daje możliwość wyeliminowania z obrazu in-

nych jasnych obszarów, które mogłyby zostać błędnie rozpoznane jako punkt odbicia. Nie

mniej jednak, jak pokazały eksperymenty przeprowadzone na zbiorze 5000 obrazów oka

otwartego i 5000 obrazów oka zamkniętego, zastosowanie prostszej metody opisanej powyżej

daje porównywalne rezultaty i jest wystarczające.

Możliwe jest zmniejszenie złożoności obliczeniowej tego etapu poprzez wyłączenie pew-

nych fragmentów obrazu z rozpoznawania. Jest to możliwe, gdy znany jest przypuszczalny

obszar wystąpienia odbicia. Obszary wyłączone z rozpoznawania są widoczne na rysunku 4.49

i 4.50.

Kolejny etap, ma na celu wyznaczenie profilu jasności obrazu. Przez wyznaczony w po-

przednim etapie punkt, przeprowadzana jest pozioma oś o szerokości jednego piksela.

Następnie generowany jest nowy obraz o szerokości równej szerokości obrazu zarejestrowane-

go przez mikrokamerę i wysokości 255 pikseli. Wysokość obrazu uzależniona jest od liczby

stanów jakie może przyjąć piksel na obrazie szarościowym. W opracowanej metodzie stosuje

się obrazy szarościowe ośmiobitowe. Oznacza to, że każdy z pikseli obrazu może przyjąć war-

tość od 0 do 255, co daje 256 możliwych stanów. Wartość 0 nie jest zaznaczana na obrazie

z profilem jasności, dlatego wysokość obrazu wynosi 255 pikseli.

Tak utworzony obraz przeznaczony jest do zapamiętania profilu jasności obrazu. Spraw-

dzana jest wartość pikseli wzdłuż wyznaczonej osi i zostaje ona naniesiona na nowo utworzony

obraz w postaci linii. Linie te mają swój początek na dole obrazu a ich wysokość jest równa

wartości rozpatrywanego piksela. Im piksel jest jaśniejszy, tym ma większą wartość i jest re-

prezentowany na profilu jasności przez dłuższą linię. Położenie linii wzdłuż osi x jest takie

samo jak współrzędna x rozpatrywanego piksela. Przykłady wyznaczonych profili jasności zo-

stały zestawione na rysunku 4.49 i 4.50, poniżej obrazów oka. Tak przygotowany profil

jasności obrazu przekazywany jest do ostatniego etapu celem analizy i określenia stanu oka.

Trzeci, a zarazem ostatni etap, polega na wyznaczeniu stanu oka poprzez analizę utworzo-

nego profilu jasności. Jak widać na rysunku 4.49 i 4.50, profile jasności obrazów oka

zamkniętego i otwartego wyraźnie się różnią. Gdy oko jest otwarte i rozproszenie światła jest

niewielki, na profilu jasności widoczny jest wyraźny pik. Najjaśniejszy punkt obrazu i sąsied-

nie piksele mają dużą wartość tworząc słup o stromych krawędziach. W sytuacji, gdy na

81

zarejestrowanym obrazie jest widoczna powieka, profil jasności wygląda inaczej. Wartości pik-

seli coraz dalszych od najjaśniejszego, zmniejszają się powoli tworząc łagodne przejścia.

Prawidłowość ta, pozwala z niezwykle dużą dokładnością stwierdzić, czy oko jest otwarte czy

zamknięte.

82

Rys. 4.49. Zarejestrowane obrazy otwartych oczu z wyznaczonymi najjaśniejszymipunktami obrazów, zaznaczonymi obszarami wyłączonymi z rozpoznawania

oraz z profilami jasności obrazów oczu.

Rys. 4.50. Zarejestrowane obrazy zamkniętych oczu z wyznaczonymi najjaśniejszymipunktami obrazów, zaznaczonymi obszarami wyłączonymi z rozpoznawania

oraz z profilami jasności obrazów oczu.

Algorytm opracowany na potrzeby rozpoznawania stanu oka rozpoczyna działanie na pro-

filu jasności w wyznaczonym punkcie, tj punkcie odpowiadającym najjaśniejszemu pikselowi

obrazu. Następnie algorytm sprawdza szerokość kształtu utworzonego przez profil jasności

w kolejnych liniach pod punktem startowym. W momencie, gdy algorytm wykryje zbyt szybki

przyrost szerokości, zatrzymuje swoje działanie i zapisuje różnicę pomiędzy wysokością punku

startowego i linii, w której wykryto szybki przyrost szerokości. W przypadku oka otwartego

i wystąpienia stromych ścian pod punktem startowym, różnica wysokości będzie znacznie

większa niż przy oku zamkniętym, gdzie łagodne zmiany wartości sąsiednich pikseli spowodu-

ją szybkie zatrzymanie algorytmu, a tym samym wyznaczenie małej różnicy wysokości. Jeżeli

zatem, wyznaczona różnica wysokości przekroczy ustalony próg, mamy do czynienia z okiem

otwartym. Jeżeli różnica wysokości, znajdzie się poniżej ustalonego progu, oko jest zamknięte.

Wizualna prezentacja działania algorytmu została naniesiona na rysunek 4.49 i 4.50. Widać na

nich wyznaczoną różnicę wysokości oraz naniesiony próg określający stan oka. Próg może być

oczywiście dobrany dowolnie. Różnice wysokości pomiędzy okiem zamkniętym a otwartym są

tak duże, że dobranie prawidłowej wartości progu nie stanowi problemu.

Po przejściu trzech etapów, możliwe jest jednoznaczne stwierdzenie, czy oko użytkownika

jest aktualnie otwarte czy zamknięte. Przy zastosowaniu optymalnej rozdzielczości mikroka-

mer (podrozdział 6.1.3), opracowana metoda umożliwia bardzo szybką identyfikację stanu oka

ze skutecznością bliską 100% (podrozdział 7.2).

4.2.3 Analiza sygnałów generowanych na podstawie

mrugnięć oczu

W wyniku, odbywającego się w czasie rzeczywistym, przetwarzania i rozpoznawania ob-

razów pobranych z mikrokamer, generowane są dwa sygnały binarne. Każde oko generuje

jeden sygnał opisujący aktualny stan oka. Jeden z dwóch możliwych stanów - oko może być

zamknięte lub otwarte. Przykładowy zapis sygnałów zaprezentowano na rysunku 4.51. Tak ge-

nerowane sygnały są analizowane pod kątem rozpoznania pewnych ustalonych zachowań

użytkownika, które to mogą być wykorzystane w sterowaniu pracą komputera. Sygnały gene-

rowane na podstawie mrugnięć oczu są analizowane osobno oraz są porównywane ze sobą.

83

W wyniku prowadzonych prac badawczych stwierdzono, że sygnały wygenerowane na

podstawie mrugnięć oczu, powinny być klasyfikowane poprzez czas trwania zamknięcia oka.

Opracowana została taka metoda klasyfikacji przez wzgląd na możliwość człowieka w zakresie

mrugnięć. Przy wykorzystaniu tradycyjnych urządzeń sterujących, takich jak mysz czy klawia-

tura, stosuje się niemal wyłącznie szybkie kliknięcia, czy to przyciskami myszy czy

klawiszami na klawiaturze. Nierzadko stosuje się szybkie podwójne kliknięcia. O ile wykony-

wanie takich czynności rękoma nie stanowi dla człowieka problemu, to szybkie mruganie

jednym okiem już tak. Przeniesienie sposobu sterowania z urządzeń obsługiwanych rękoma na

urządzenie obsługiwane mrugnięciami oczu skutkowałoby bardzo niską ergonomią bądź wręcz

uniemożliwiłoby normalną pracę. Opracowano zatem rozwiązanie oparte o możliwości czło-

wieka w zakresie mrugania. Gdy zostaje wykryte zamknięcie oka włączany jest licznik, który

odmierza czas trwania tego zamknięcia. Od wartości tego czasu zależy odpowiednia klasyfika-

cja takiego sygnału.

Wspólna analiza sygnałów generowanych na podstawie mrugnięć obojga oczu

Porównanie ze sobą sygnałów generowanych na podstawie mrugnięć obojga oczu jest bar-

dzo istotne i ma wyższy priorytet niż niezależna analiza każdego z kanałów. Każdorazowo, gdy

wykryte zostanie zamknięcie obojgu oczu w tym samym czasie, przerywane jest niezależne

analizowanie sygnałów. Wprowadzenia takiego rozwiązania było konieczne ze względu na po-

trzebę odfiltrowania z sygnałów naturalnych mrugnięć i zamknięć oczu oraz na sytuacje

awaryjne.

Naturalne mrugnięcie oczu charakteryzuje się jednoczesnym wystąpieniem na obu kana-

łach bardzo krótkiego sygnału. Podobnie w sytuacji, kiedy użytkownik świadomie zamknie

oczy na pewien krótki okres czasu, na obu kanałach pojawi się sygnał. W obu przypadkach ko-

nieczne jest odfiltrowanie takiego gestu i pominięcie go, by nie wpływał na pracę systemu.

84

Rys. 4.51. Przykładowy zapis sygnałów wygenerowanych na podstawie mrugnięć oczuwraz z interpretacją gestów.

Jeżeli na obu kanałach wystąpi sygnał o czasie trwania równym lub krótszym niż ustalony czas

t0 (rysunek 4.52), zostanie on pominięty i nie będzie miał wpływu na sterowanie pracą kompu-

tera. Taki gest jest klasyfikowany jako gest B0.

Drugim powodem wspólnej analizy sygnałów generowanych na podstawie mrugnięć oboj-

ga oczu są sytuacje awaryjne. Może zaistnieć konieczność chwilowego lub całkowitego

wyłączenia urządzenia. Użytkownik kończąc pracę bądź czasowo wyłączając urządzenie, by

jego zachowanie nie miało wpływu na pracę systemu, musi zamknąć oboje oczu na czas dłuż-

szy od ustalonego czasu t0 (np. na trzy sekundy) (rysunek 4.52). Takie zachowanie

użytkownika klasyfikowane jest jako gest B1 i wyłącza sterowanie. Urządzenie nie wpływa

wtedy na pracę systemu. Ponowne wykonanie gestu B1 powoduje przywrócenie pracy urządze-

nia. Czas t0 może być dobrany dowolnie zgodnie z preferencjami użytkownika.

Analiza sygnału generowanego na podstawie mrugnięć jednego oka

Generowany sygnał jest analizowany tylko w sytuacji, gdy drugie oko nie generuje w tym

samym czasie żadnych sygnałów. W sytuacjach opisanych powyżej, gdy podczas analizy jed-

nego z kanałów na drugim wystąpi jakikolwiek sygnał, analiza zostaje przerwana. Pozwala to

jednoznacznie zidentyfikować gesty wykonywane przez użytkowania eliminując przypadkowe

sygnały.

Jak już zostało nadmienione, gesty wykonywane poprzez mrugnięcia oczu, klasyfikowane

są ze względu na czas trwania mrugnięcia. Opracowano czterostopniową klasyfikację gestów.

W tym celu wprowadzono zmienne t1, t2 i t3 określające upływ czasu, z założeniem, że

t1 < t2 < t3. Zmienna t0 wprowadzona przy gestach wykorzystujących oboje oczu jest niezależny

od zmiennych t1-3.

85

Rys. 4.52. Gesty B0 i B1.

Jeżeli lewe oko zostanie zamknięte na czas równy lub krótszy niż czas t 1, zostanie to skla-

syfikowane jako gest L0 (rysunek 4.53). Podczas zamknięcia oka lewego prawe musi być

otwarte. W przeciwnym przypadku, analiza gestu zostanie przerwana. Analogicznie, jeżeli na

czas równy lub krótszy niż czas t1, zamknięte zostanie prawe oko, zostanie to sklasyfikowane

jako gest R0 (rysunek 4.53). Wprowadzenie gestów L0 i R0 było konieczne w celu eliminacji

przypadkowych mrugnięć (w tym naturalnych), rozpoznanych na jednym kanale oraz błędnie

zidentyfikowanych mrugnięć oczu. Rozpoznane gesty L0 i R0 nie wpływają na sterowanie pra-

cą komputera.

Dłuższe zamknięcie oka, tj. na czas dłuższy od czasu t1 i równy lub krótszy niż czas t2, po-

woduje sklasyfikowanie takiego zamknięcia jako inny gest (rysunek 4.54). Jeżeli zamknięte

zostało oko lewe przy otwartym oku prawym, jest to klasyfikowane jako gest L1. Natomiast,

gdy zamknięte zostało oko prawe przy otwartym oku lewym, jest to klasyfikowane jako gest

R1.

Jeżeli lewe oko zostanie zamknięte na czas przekraczający czas t2, ale krótszy od czasu t3

zostanie to sklasyfikowane jako gest L2 (rysunek 4.55). Analogicznie, jeżeli zamknięte zostanie

prawe oko, gest taki zostanie sklasyfikowany jako R2 (rysunek 4.55). Oczywiście tak samo jak

przy poprzednich gestach, drugie oko misi być w tym czasie otwarte.

Ostatnie dwa gesty są identyfikowane, gdy oko zostanie zamknięte na czas dłuższy od cza-

su t3 (rysunek 4.56). Są to gesty L3, gdy zamknięte zostanie oko lewe i R3, gdy zamknięte

zostanie oko prawe.

Przedstawiony powyżej podział czasu trwania zamknięcia oka na gesty jest tylko propozy-

cją opracowaną przez autora pracy. Zarówno czasy t0-3 jak i rodzaje gestów mogą być dobrane

dowolnie. Możliwe jest wprowadzenie większej lub mniejszej liczby przedziałów czasowych,

jak również gestów wymagających kilkukrotnego przymknięcia oka. Nie mniej jednak opraco-

wany podział jest komfortowy dla człowieka, pozwala na szybką pracę oraz daje duże

możliwość sterowania komputerem.

Przypisanie poleceń systemowych rozpoznanym gestom

Opisane gesty, generowane na podstawie mrugnięć jednego lub obojga oczu, mogą być

w sposób dowolny przełożone na polecenia systemowe. Użytkownik ma możliwość przypisa-

nia do każdego z gestów dowolnej akcji.

86

87

Rys. 4.53. Gesty L0 i R0.

Rys. 4.54. Gesty L1 i R1.

Rys. 4.55. Gesty L2 i R2.

Rys. 4.56. Gesty L3 i R3.

Opracowano sposób przypisania poleceń systemowych rozpoznanym gestom (tabela 4.1).

Przedstawiony sposób umożliwia szybką i wygodną pracę. Pomimo, iż do sterowania wyko-

rzystywane są tylko dwa binarne kanały (zamknięte lub otwarte oko lewe i prawe), liczba

możliwych do wykonania poleceń systemowych jest duża. Należy pamiętać, że wszystkie opi-

sane polecenia systemowe, wykonywane są w sposób zapewniający użytkownikowi wysoki

komfort pracy. Użytkownik nie jest zmuszany do wykonywania oczami gestów niewygodnych

i trudnych.

Tab. 4.1. Przypisanie poleceń systemowych gestom.

GestCzas zamknięcia (t)

Polecenie systemoweoko lewe oko prawe

B0 0 < t ≤ t0 0 < t ≤ t0 Brak

B1 t0 < t t0 < t Wyłączenie lub włączenie urządzenia

L0 0 < t ≤ t1 t = 0 Brak

L1 t1 < t ≤ t2 t = 0 Pojedyncze kliknięcie lewego przycisku myszy

L2 t2 < t ≤ t3 t = 0 Podwójne kliknięcie lewego przycisku myszy

L3 t3 < t t = 0 Przytrzymanie lewego przycisku myszy

R0 t = 0 0 < t ≤ t1 Brak

R1 t = 0 t1 < t ≤ t2 Pojedyncze kliknięcie prawego przycisku myszy

R2 t = 0 t2 < t ≤ t3 Pojedyncze kliknięcie centralnego przycisku myszy; scroll

R3 t = 0 t3 < t Przytrzymanie prawego przycisku myszy

4.3 Klawiatura ekranowa i wprowadzanie tekstu

Opracowany interfejs komunikacyjny umożliwia zmianę położenia kursora na ekranie po-

przez niewielkie ruchy głowy oraz wykonywanie poleceń systemowych poprzez mrugnięcia

oczu. Pozwala to na bardzo skuteczne zastąpienie myszy komputerowej.

Możliwe jest jeszcze jedno zastosowanie opracowanego interfejsu, a mianowicie do wpro-

wadzania tekstu. By było to możliwe, konieczne jest zastosowanie klawiatury ekranowej

(rysunek 4.57). Klawiatura taka jest wyświetlana na pierwszym planie ekranu. Wskazanie kur-

sorem wybranego klawisza i wykonanie gestu okiem oznaczającego pojedyncze kliknięcie

myszy, skutkuje wprowadzeniem wybranego znaku bądź wykonaniem akcji przypisanej do

88

wskazanego klawisza. Wprowadzanie znaków wymaga zastosowania obu opracowanych meto-

dy sterowania, tj. zmiany położenia kursora na ekranie oraz wykonywanie poleceń

systemowych.

Zastosowanie klawiatury ekranowej znacząco rozszerza możliwości sterowania. Dzięki

wprowadzaniu tekstu i wykorzystywaniu innych klawiszy, użytkownik jest w stanie w pełni

korzystać z komputera, tak samo, jak przy zastosowaniu tradycyjnej myszy i klawiatury. Naj-

ważniejsze, że wszystko to jest możliwe bez wykorzystania rąk. Całe sterowanie odbywa się

poprzez niewielkie ruchy głowy i mrugnięcia oczu.

Klawiatura ekranowa

Klawiatura ekranowa symuluje zwykłą klawiaturę. Jest ona wyświetlana na ekranie w taki

sposób, by inne obiekty wyświetlane na ekranie jej nie przysłaniały. Wyglądem jak i funkcjo-

nalnością przypomina zwykłą klawiaturę. Systemy operacyjne zazwyczaj udostępniają

klawiaturę ekranową. W przeciwnym przypadku możliwe jest zainstalowanie w systemie ze-

wnętrznej klawiatury tego typu. Jak już zostało nadmienione, klawiatura ekranowa może

posiadać identyczny rozkład klawiszy jak zwykła klawiatura. Jest to najczęściej spotykany wa-

riant, ale nie jedyny. By praca z wykorzystaniem opracowanego interfejsu była bardziej

efektywna, możliwe jest uproszczenie takiej klawiatury. Część rzadko używanych klawiszy

bądź te w ogóle nieużywane mogą zostać usunięte, by zbędnie nie zajmowały miejsca na ekra-

nie. Możliwe jest ograniczenie klawiszy tylko do cyfr, jeżeli w systemie w danym momencie

wymagane jest od użytkownika wprowadzanie wartości liczbowej.

Oprócz ograniczania liczby klawiszy można zastosować rozwiązanie odwrotne, tj. rozsze-

rzenie klawiatury. Zastosowanie dodatkowych klawiszy wykonujących zaprogramowane

polecenia systemowe, może być bardzo pomocne, np. przy wykorzystaniu opracowanego inter-

89

Rys. 4.57. Klawiatura ekranowa o klawiszach zbliżonych do wielkości kursora.

fejsu przez osoby niepełnosprawne. Możliwe jest w ten sposób uproszczenie niektórych skom-

plikowanych operacji wykonywanych w systemie, do wskazania i kliknięcia jednego klawisza.

Ważnym parametrem klawiatury ekranowej jest jej wielkość, a dokładniej wielkość klawi-

szy i odstępów pomiędzy nimi. Biorąc pod uwagę, że opracowane rozwiązanie cechuje się

bardzo wysoką precyzją, taka klawiatura może mieć niewielkie rozmiary. Dzięki temu nie

przysłania dużej powierzchni ekranu. Należy jednak pamiętać, że nadmierne zmniejszenie kla-

wiatury ekranowej obniży komfort pracy użytkownika. Ustalono, że szybką i komfortową

pracę umożliwia klawiatura ekranowa, na której pojedyncze klawisze mają rozmiar zbliżony

do rozmiaru kursora. Taka klawiatura jest czytelna, użytkownik bez trudu może umieścić kur-

sor na wybranym klawiszu, a odstępy pomiędzy klawiszami umożliwiają szybkie wybieranie

kolejnych znaków podczas wprowadzania tekstu. Przykład klawiatury ekranowej, o tak dobra-

nych rozmiarach przedstawiono na rysunku 4.57.

Klawiatura ekranowa może cały czas być widoczna na ekranie, stale zajmując wydzieloną

część ekranu. Bardzo przydatnym rozwiązaniem jest jednak zastosowanie klawiatury ukrywa-

nej. W takim wariancie, klawiatura pojawia się na ekranie tylko w sytuacji, gdy zachodzi

potrzeba wprowadzenia tekstu czy użycia innego klawisza. Pojawienie się klawiatury może

być wywołane na żądanie użytkownika bądź automatycznie, gdy użytkownik wskaże kursorem

pole do wprowadzania tekstu albo liczb.

Szybkość wprowadzania tekstu

Podobnie jak w tradycyjnej klawiaturze, wprowadzanie tekstu odbywa się poprzez wybie-

ranie kolejno pojedynczych znaków. Jednak użytkownik korzystający z tradycyjnej klawiatury,

ma do dyspozycji dziesięć palców, co umożliwia bardzo szybkie wprowadzanie tekstu.

W przypadku opracowanego interfejsu, podczas wprowadzaniu kolejnych znaków, konieczny

jest ruch głowy powodujący przesunięcie kursora nad pożądany klawisz. Następnie użytkow-

nik musi wykonać gest okiem, do którego przypisane jest pojedyncze kliknięcie myszy.

Szybkość wprowadzania tekstu uzależniona jest od szybkości zmiany położenia kursora na

ekranie, odległości pomiędzy klawiszami oraz szybkością wykonania przez użytkownika gestu

okiem. Jako, że na klawiaturze ekranowej, klawisze są umieszczone blisko siebie, wartość ru-

chu głowy wymagana do przesunięcia kursora pomiędzy kolejnymi znakami podczas

wprowadzania tekstu jest bardzo mała (od 0,5° do 5°). Szybkość przesunięcia kursora jest za-

leżna od zastosowanej metody zmiany położenia kursora na ekranie. Przy prawidłowym

90

doborze metody i jej parametrów, przesunięcie powinno nastąpić w czasie nieprzekraczającym

0,2s (podrozdział 7.1). Zastosowanie opisanego w podrozdziale 4.2.3 gestu L1, tj. wykonanie

pojedynczego kliknięcia lewym przyciskiem myszy, poprzez krótkotrwale zamknięcie lewego

oka, umożliwia szybki wybór wskazanego znaku.

Reasumując, wprowadzanie tekstu z wykorzystaniem opracowanego interfejsu jest wol-

niejsze od tradycyjnej klawiatury. Biorą jednak pod uwagę, że odbywa się ono bez użycia rąk,

szybkość wprowadzania tekstu jest zadowalająca. Podczas eksperymentów udało się osiągnąć

wprowadzanie tekstu na poziomie 50-60 znaków na minutę (podrozdział 7.3).

Istnieje możliwość przyspieszenia procesu wprowadzania tekstu, poprzez zastosowanie

zintegrowanego słownika. Każdorazowo, gdy użytkownik wprowadzi znak, poprzez klawiaturę

ekranową, słownik wyświetla listę słów pasujących do wprowadzonej sekwencji. Dzięki takie-

mu rozwiązaniu, wprowadzanie szczególnie długich słów odbywa się szybciej. Słownik taki

może podpowiadać również słowa wykorzystując kontekst, tj. słowa, które najczęściej wystę-

pują ze słowem lub słowami poprzedzającymi aktualne.

91

Rozdział 5

Model matematyczny

Opracowana metoda sterowania, zakłada zmianę położenia kursora na ekranie poprzez

niewielkie ruchy głowy. Rozdział ten jest poświęcony wyjaśnieniu, jak ruch głowy wpływa na

ruch kursora. Co wpływa na wielkość zmiany położenia i jakie ruchy głowy są konieczne do

sterowania kursorem.

Ogólny, uproszczony schemat sterowania został zamieszczony na rysunku 5.1. Przedsta-

wiono na nim widok w rzucie perspektywicznym, by pokazać jak zmiana pochylanie głowy lub

przekręcenie głowy o pewien kąt, wpływa na wskazywany na ekranie punkt. W pozycji zero-

wej, gdy wartość pochylenia i przekręcenia głowy wynosi zero stopni, wskazywane jest

centrum ekranu (połowa wysokości i szerokości ekranu).

Na podstawie tak przedstawionego modelu, możliwe jest wyznaczenie zależności opisują-

cych wpływ ruchu głowy o wybrany kąt na zmianę wskazywanego punktu. Wzory 5.1a i 5.1b

opisują kolejno odległość wskazywanego punktu od centrum ekranu na osi x (wyrażonej

w centymetrach) przy przekręceniu głowy o kąt α (wyrażony w stopniach) i odległość wskazy-

93

Rys. 5.1. Wpływ ruchów głowy na wskazywany na ekranie punkt.

wanego punktu od centrum ekranu na osi y przy pochyleniu głowy o kąt β. Wartości te są za-

leżne od odległości kamery od ekranu d (wyrażonej w centymetrach).

dx (α , d )=d⋅tg (α ) (5.1a)

dy (β , d )=d⋅tg(β ) (5.1b)

Wzory 5.1a i 5.1b zawierają trzy zmienne. Oznacza to, że dowolna ze zmiennych zależna

jest od dwóch wartości. W tak przedstawionej postaci, odległość wskazywanego punktu od

centrum ekranu jest uzależniona od odległości pomiędzy rejestratorem a ekranem d oraz od

kąta rejestracji α lub β. Na rysunku 5.2 zaprezentowano wykres zależności odległości wskazy-

wanego punktu od centrum ekranu względem kąta rejestracji przy zachowaniu stałej odległości

od ekranu równej 50cm, 100cm i 150cm. Krzywe mają charakter potęgowy. Oznacza to, że

zmiana kąta rejestracji, czyli ruch głowy, o ten sam kąt blisko centrum ekranu i na skraju ekra-

nu powoduje przesunięcie wskazywanego punktu o inną wartość. Im dalej od centrum ekranu,

tym ta zmiana jest większa. We wzorze 5.2 przedstawiono tę zależność. Na rysunku 5.3 zazna-

czono wartość przesunięcia wskazywanego punktu przy zmianie ułożenia głowy o jeden

stopień dla stałej odległości od ekranu równej 50cm, 100cm i 150cm.

Δ x (α , d )=dx (α+1, d )−dx (α , d ) (5.2)

94

Rys. 5.2. Wykres zależności odległości wskazywanego punktu od centrum ekranuwzględem kąta rejestracji.

Przy stałej odległości od ekranu równej 100cm, ruch głowy o jeden stopień w pobliżu cen-

trum ekranu powoduje zmianę pozycji wskazywanego punktu o 1,75cm. Przy większej

odległości od centrum ekranu (rejestracja pod kątem 30°) zmiana pozycji wynosi już 2,3cm.

Dla odległości 50cm i 150cm, wartości te wynoszą kolejno: 0,87cm i 1,15cm oraz 2,63cm

i 3,46cm.

Modyfikując wzory 5.1a i 5.1b możliwe jest wyznaczenie, jaka jest wymagana wartość ru-

chu głowy, by wskazywany punkt znajdował się w ustalonej odległości od centrum ekranu

(wzór 5.3a i 5.3b).

α (x ,d )=arctg( xd ) (5.3a)

β ( y ,d )=arctg( yd ) (5.3b)

Podobnie jak poprzednio, rozważmy trzy odległości kamery od ekranu: 50cm, 100cm

i 150cm. Na rysunku 5.4 przedstawiono wykres zależności wymaganej wartości ruchu głowy

w stopniach od zadanego położenia wskazywanego punktu. Ważną zależnością jest konieczny

do wykonania ruch głowy, by wskazywany punkt przesunął się o jeden centymetr. Zależność tę

opisano wzorami 5.4a i 5.4b oraz zaprezentowano na rysunku 5.5.

Δα ( x ,d )=α (x+1,d )−α (x ,d ) (5.4a)

Δβ ( y ,d )=β ( y+1,d )−β ( y ,d ) (5.4b)

95

Rys. 5.3. Wartość zmiany położenia wskazywanego punktu na ekranie przy ruchugłowy o jeden stopień względem kąta rejestracji.

Dla odległości od ekranu równej 100cm, konieczne jest wykonanie ruchu głowy o kąt

0,57°, by zmienić lokalizację wskazanego punktu o jeden centymetr w pobliżu centrum ekranu.

Przy odległości wskazywanego punktu o 50cm od centrum ekranu, taka sama zmiana położe-

nia wskazywanego punktu, wymaga ruchu głowy już tylko o kąt 0,46°. Dla odległości od

ekranu równej 50cm i 150cm, wymagana wartość ruchu głowy wynosi odpowiednio: 1,15°

i 0,58° oraz 0,38° i 0,34°. Na uwagę zasługuje fakt, iż dla małych odległości od ekranu, krzywa

96

Rys. 5.5. Wartość koniecznego do wykonania ruchu głowy by wskazywany punkt na ekraniezmienił swoje położenie o jeden centymetr względem odległości wskazywanego punktu od

centrum ekranu.

Rys. 5.4. Wykres zależności wymaganego zakresu ruchów głowy od zadanego położeniawskazywanego punktu.

ulega gwałtownemu spadkowi. Przy małym kącie, zmiana przesunięcia o jeden centymetr, wy-

maga znacznie większego ruchu głowy niż przy dużym kącie. Zwiększenie odległości od

ekranu powoduje wyraźne złagodzenie krzywej, a tym samym wymagane wartości ruchów gło-

wy do przesunięcia wskazywanego punktu o jeden centymetr przy małym i dużym kącie są

zbliżone.

Wzory 5.3a i 5.3b pozwalają ponadto wyznaczyć teoretyczne zależności wymaganych

wartości ruchów głowy w osiach x i y, umożliwiających objęcie całego ekranu dla:

• ekranów o różnej wielkości przy stałej odległości od ekranu,

• różnej odległości od ekranu przy stałej wielkości ekranu.

W obu przypadkach, do wzorów zostaną podstawione wymiary ekranów. Do wzoru 5.3a

jako parametr x zostanie podstawiona połowa szerokość ekranu, a do wzoru 5.3b jako parametr

y podstawiona zostanie połowa wysokości ekranu (rysunek 5.6). W wyniku uzyskamy wyma-

gany zakres ruchów głowy do objęcia całego ekranu. Wynik określa ruch głowy w każdą ze

stron od pozycji zerowej. Całkowity ruch głowy w płaszczyźnie poziomej jest zatem równy po-

dwojonej wartości wyznaczonego kąta α, a w płaszczyźnie pionowej podwojonej wartości

wyznaczonego kata β.

Wymagany zakres ruchów głowy dla ekranów o różnej wielkości

Zostały tu rozważone ekrany o różnej przekątnej wyrażonej w calach. Specyfika po-

wszechnie stosowanych ekranów, nie pozwala jednoznacznie określić wysokości i szerokości

97

Rys. 5.6. Wymagany zakres ruchów głowy do objęcia całego ekranu.

ekranu tylko na podstawie przekątnej. Ograniczono się zatem do najpopularniejszych stosowa-

nych ekranów, tj. o stosunku szerokości do wysokości równej 16:9 i 4:3. Na rysunku 5.7

przedstawiono wykres wymaganego zakresu ruchów głowy w płaszczyźnie pionowej i pozio-

mej, dla ekranów o różnej przekątnej, przy stałej odległości od ekranu równej 100cm. Różnice

pomiędzy kątami dla osi poziomej i pionowej są większe przy ekranach o propozycjach 16:9

niż przy ekranach 4:3. Wyznaczone krzywe zachowują charakter potęgowy. Jednak na uwagę

zasługuje fakt, że dla najczęściej stosowanych monitorów, tj. o przekątnych z zakresu od 15 do

30 cali, krzywe zachowują charakter niemal liniowy (rysunek 5.8). W tym przypadku, oznacza

to, że dwukrotne zwiększenie przekątnej ekranu, powoduje dwukrotne zwiększenie wymagane-

go zakresu ruchów głowy. W tabeli 5.1 zestawiono wymagane zakresy ruchów głowy dla

najczęściej spotykanych ekranów (odległość rejestracji wynosi 100cm).

Tab. 5.1. Wymagany zakres ruchów głowy do objęcia całego ekranu z odległości 100cm.

przekątna[in]

16:9 [ °] 4:3 [ °]

α β α β

15 9,43 5,34 8,67 6,52

17 10,66 6,04 9,8 7,38

19 11,88 6,75 10,93 8,24

21 13,09 7,45 12,04 9,09

23 14,28 8,15 13,15 9,94

27 16,64 9,54 15,34 11,63

Dla wszystkich ekranów z omawianego przedziału, wymagany zakres ruchów głowy wy-

nosi najwyżej kilkanaście stopni. To bardzo niewielki ruch.

Wymagany zakres ruchów głowy dla różnej odległości

Podobnie jak powyżej, rozważono tu ekrany o proporcjach 16:9 i 4:3. Wykorzystując wzo-

ry 5.3a i 5.3b, wyznaczono zależność wymaganego do objęcia całego ekranu zakresu ruchów

głowy, względem odległości od ekranu (rysunek 5.9). Zastosowano ekran o stałej przekątnej

równej 23 cale. Zwiększenie odległości od ekranu skutkuje zmniejszeniem wymaganego zakre-

su ruchów głowy.

98

99

Rys. 5.7. Wymagany zakres ruchów głowy do objęcia ekranów o różnej przekątnej przyrejestracji z odległości 100cm.

Rys. 5.8. Wymagany zakres ruchów głowy do objęcia ekranów o przekątnej z przedziałuod 15 do 30 cali przy rejestracji z odległości 100cm.

Monitory

Dotychczasowe wartości przesunięcia wskazywanego punktu były wyrażone w centyme-

trach. Istotną kwestią jest wyznaczenie teoretycznej pozycji kursora na ekranie. Lokalizacja ta,

powinna być wyrażona w pikselach. Przeliczenie pozycji podanej w centymetrach na pozycję

w pikselach nie jest jednoznaczne. Zależy ono od zastosowanego monitora. Najistotniejsze

kwestie to przekątna ekranu oraz zastosowana rozdzielczość, z której wynika również propor-

cja ekranu. Liczbę pikseli przypadających na jeden centymetr lpx można wyznaczyć ze

wzoru 5.5a. Parametry resX oraz resY określają rozdzielczość zastosowanego ekranu natomiast

scrX i scrY oznaczają rozmiar ekranu w płaszczyźnie poziomej i pionowej wyrażoną w centy-

metrach (wzory 5.5b i 5.5c). Parametr scrP (wzór 5.5d) określa proporcję ekranu, która wynika

bezpośrednio z zastosowanej rozdzielczości.

lpx=resXscrX

=resYscrY

(5.5a)

scrX =scrD⋅2,54⋅cos(arcctg (scrP )) (5.5b)

scrY =scrD⋅2,54⋅sin(arcctg (scrP )) (5.5c)

scrP=resXresY

(5.5d)

100

Rys. 5.9. Wymagany zakres ruchów głowy do objęcia ekranu o przekątnej 23 cale przyrejestracji z różnej odległości.

Na rysunku 5.10 przedstawiono liczbę pikseli przypadających na jeden centymetr dla róż-

nych przekątnych ekranu o proporcji 16:9 dla kilku wybranych rozdzielczości (HDTV 720p -

1280x720, HDTV 1080p - 1920x1080, Ultra HD - 3840x2160, UHDTV - 7680x4320). Na ry-

sunku 5.11 przedstawiono bardziej szczegółową zależność dla ekranów o przeciętnej wielkości

i powszechnie stosowanych rozdzielczościach. Dla rozdzielczości HDTV 1080p zastosowanej

na ekranie o przekątnej 21 cali na jeden centymetr przypada 41 pikseli, natomiast dla ekranu

o przekątnej 27 cali jest to już tylko 32 piksele.

Taką samą zależność wyznaczono dla ekranów o proporcjach 4:3 dla czterech rozdzielczo-

ści (SVGA - 800x600, XGA - 1024x768, UXGA - 1600x1200, QXGA - 2048x1536).

Zależność tę pokazano na rysunku 5.12. Dodatkowo na rysunku 5.13 pokazano bardziej szcze-

gółową zależność liczby pikseli przypadających na jeden centymetr dla ekranów o przekątnych

z zakresu od 15 do 30 cali.

W tabelach 5.2 i 5.3 zestawiono liczbę pikseli przypadającą na jeden centymetr, dla przy-

kładowych ekranów o różnej przekątnej i rozdzielczości.

Tab. 5.2. Liczba pikseli przypadająca na jeden centymetr (ekrany o proporcji 16:9).

przekątna [in]16:9 [px]

1280x720 1920x1080 3840x2160 7680x4320

23 25 37 75 150

27 21 32 64 128

32 18 27 54 108

55 10 15 31 63

Tab. 5.3. Liczba pikseli przypadająca na jeden centymetr (ekrany o proporcji 4:3).

przekątna [in]4:3 [px]

800x600 1024x768 1600x1200 2048x1536

17 23 29 46 59

21 18 23 37 47

23 17 21 34 43

27 14 18 29 37

101

102

Rys. 5.10. Liczba pikseli przypadająca na jeden centymetr dla różnych ekranówo proporcji 16:9.

Rys. 5.11. Liczba pikseli przypadająca na jeden centymetr dla różnych ekranówo proporcji 16:9 i przekątnej od 15 do 30 cali.

103

Rys. 5.12. Liczba pikseli przypadająca na jeden centymetr dla różnych ekranówo proporcji 4:3.

Rys. 5.13. Liczba pikseli przypadająca na jeden centymetr dla różnych ekranówo proporcji 4:3 i przekątnej od 15 do 30 cali.

Dysponując wzorami 5.3a, 5.3b oraz 5.5a możliwe jest wyznaczenie ruchu głowy, jaki jest

potrzebny do zmiany położenia kursora na ekranie o jeden piksel. Kąt ten jest zależny od odle-

głości od ekranu, jego wielkości, zastosowanej rozdzielczości, jak również od odległości

kursora od centrum ekranu (rysunek 5.4). By wyznaczyć tę zależność, w pierwszej kolejności

konieczne jest wyprowadzenie wzoru opisującego wymagane wartości ruchów głowy w stop-

niach, by kursor pojawił się w podanej odległości od centrum ekranu (wyrażonej w pikselach),

przy zadanej rozdzielczości ekranu, odległości od niego i jego wielkości. Wzór ten (wzór 5.6)

można wyprowadzić ze wzoru 5.3a lub 5.3b podstawiając pod x lub y odległość kursora w pik-

selach od centrum ekranu (px) podzieloną przez liczbę pikseli przypadających na centymetr

(lpx wzór 5.5a).

α ( px)=arctg( pxlpx⋅d ) (5.6)

Do wyznaczenia wymaganej wartości ruchu głowy do zmiany położenia kursora o jeden

piksel, konieczne jest zastosowanie wzoru 5.7.

Δα ( px)=α ( px+1)−α ( px) (5.7)

Zależność tę dla różnych monitorów i stałej odległości 50cm, 100cm i 150cm przedstawio-

no kolejno na rysunkach 5.14, 5.15 i 5.16. Dla małych odległości od ekranu, zmiana położenia

kursora o jeden piksel, wymaga wyraźnie większego ruchu głowy gdy kursor znajduje się bli-

sko centrum ekranu, niż gdy kursor znajduje się przy krawędzi ekranu. Przy większych

odległościach od ekranu krzywe na wykresie mają charakter niemal liniowy. Oznacza to, że na

całej powierzchni ekranu, ruch kursora o jeden piksel wymaga zbliżonego ruchu głowy.

Warto zwrócić uwagę na jeszcze jeden aspekt rozpatrywanego zagadnienia. W tym roz-

dziale przedstawiono dane dotyczące wpływu ruchu głowy na punkt wskazywany na ekranie.

Dane te nie uwzględniają minimalnego ruch głowy możliwego do wykonania przez człowieka.

Istnieje prawdopodobieństwo, że zbyt duża odległość w stosunku do wielkości ekranu i jego

rozdzielczości, uniemożliwi uzyskanie precyzji sterowania co do jednego piksela. Zagadnienie

to powinno być uwzględnione podczas projektowania konkretnego interfejsu komunikacyjne-

go, opartego o opracowaną metodę sterowania.

104

105

Rys. 5.15. Wymagana wartość ruchu głowy do zmiany położenia wskazywanego punktuo jeden piksel względem odległości wskazywanego punktu od centrum ekranu przy

rejestracji z odległości 100cm.

Rys. 5.14. Wymagana wartość ruchu głowy do zmiany położenia wskazywanego punktuo jeden piksel względem odległości wskazywanego punktu od centrum ekranu przy

rejestracji z odległości 50cm.

Wpływ usytuowania kamery na zakres ruchów

Opisany powyżej model dotyczy prostego przypadku, w którym kamera główna znajduje

się dokładnie w osiach obrotu. W praktyce usytuowanie kamery względem osi obrotu jest inne

i zależy od miejsca jej przymocowania do urządzenia (rysunek 5.17). Niezależnie od lokaliza-

cji, kamera powinna być tak zamocowana, by w pozycji zerowej (zerowy kąt obrotu

i pochylenia głowy) wskazywała centrum ekranu. W takiej sytuacji, nieznaczne przesunięcie

kamery względem osi obrotów ma niewielki wpływ na wyznaczone powyżej zależności. Może

się jednak zdarzyć tak, że kamera w pozycji zerowej nie wskazuje centrum ekranu (rysu-

nek 5.18). Skutkuje to inną wymaganą wartością ruchu głowy w każdą ze stron do objęcia

całego ekranu. Jeżeli punkt wskazywany przez kamerę w pozycji zerowej, znajduje się na lewo

od centrum ekranu, to wymagany zakres ruchu głowy w lewą stronę będzie mniejszy niż

w prawą. Natomiast suma ruchu w prawo i w lewo będzie zbliżona niezależnie, czy kamera

wskazuje centrum ekranu czy punkt oddalony od niego. Analogiczna sytuacji ma miejsce

w przypadku pochylenia głowy do przodu i do tyłu.

106

Rys. 5.16. Wymagana wartość ruchu głowy do zmiany położenia wskazywanego punktuo jeden piksel względem odległości wskazywanego punktu od centrum ekranu przy

rejestracji z odległości 150cm.

107

Rys. 5.17. Przesunięcie kamery względem osi obrotów.

Rys. 5.18. Kamera w pozycji zerowej nie wskazuje centrum ekranu.

Zniekształcenia geometryczne rejestrowanych obrazów

Załóżmy, że człowiek znajduje się centralnie przed monitorem, którego wielkość jest mak-

symalna dla przyjętej odległości obserwacji zgodnie z wytycznymi producentów ekranów co

zostało opisane w podrozdziale 3.1 i przedstawione na rysunku 3.3. W takiej sytuacji, opierając

się na wzorach 5.3a i 5.3b oraz na rysunku 5.7 (rozdział 5), człowiek obserwuje obiekty poło-

żone przy bocznej krawędzi ekranu pod kątem 14 stopni. Oznacza to zniekształcenie

zarejestrowanego kursora o 3% czyli w praktyce nie przekraczające jednego piksela. Tak małe

zniekształcenie w najmniejszym stopniu nie wpływa na jakość rozpoznawania ani na szybkość

i precyzję sterowania. Załóżmy jednak, że człowiek w naturalny sposób starając się usiąść cen-

tralnie przyjmie pozycję daleką od ideału. Przyjmijmy, że głowa będzie na osi prostopadłej do

płaszczyzny ekranu ale oś ta niech przechodzi przez boczną krawędź ekranu – można założyć,

że jest to skrajne położenie kiedy człowiek nie będzie poprawiał swojej pozycji. W takiej sytu-

acji, zachowując tę samą odległość i rozmiar ekranu, obiekty na ekranie będą obserwowane

pod kątem co najwyżej 26 stopni co przekłada się na zniekształcenie na poziomie 10%. Takie

zniekształcenie może mieć wpływ na rozpoznawanie kursorów o unikatowym kształcie, które

zostały uznane za nieprzydane do wykorzystania w opracowanej metodzie sterowania. Na roz-

poznawanie pozostałych trzech grupy kursorów, tj. kursorów jednobarwnych, wielobarwnych

oraz unikatowego wzoru wyświetlanego w sąsiedztwie kursora systemowego, takie zniekształ-

cenie nie ma wpływu. Ponadto, taki poziom zniekształcenia kursorów nie wpływa negatywnie

na precyzję sterowania. Nie przekład się to również na szybkość zmiany położenia kursora

w metodach polegających na stałej zmianie jego położenia w każdej iteracji. Zniekształcenie

na poziomie 10% może mieć jednak wpływ na szybkość zmiany położenia kursora w metodzie

adaptacyjnej i spowodować konieczność przeprowadzenia o jedną iterację więcej. Wydłuża to

czas zmiany położenia kursora o 0,04s. Można stwierdzić, że nawet dalekie od ideału usytu-

owanie człowieka względem monitora w znikomym stopniu wpływa na sterowanie

w opracowanej metodzie.

108

Rozdział 6

Rozwiązanie praktyczne

6.1 Projekt urządzenia

W oparciu o przeprowadzone badania możliwe było zaprojektowanie urządzenia sterujące-

go pracą komputera, które umożliwia zmianę położenia kursora na ekranie oraz wykonywanie

poleceń systemowych. Do sterowania wykorzystywane są niewielkie ruchy głowy oraz mru-

gnięcia oczu. Urządzenie montowane jest na głowie użytkownika - może przybrać formę

okularów.

Zmiana położenia kursora bazuje na rejestracji jego obrazu poprzez kamerę główną urzą-

dzenia, co wynika ze specyfiki opracowanej metody sterowania. Zarejestrowany obraz

z kursorem przechodzi proces przetwarzania i rozpoznawania. Celem tego procesu jest ustale-

nie dokładnego położenia kursora (na zarejestrowanym obrazie). Pomiędzy ustalonym

położeniem a punktem domyślnym obrazu (najczęściej centrum kadru), wyznaczany jest wek-

tor określający kierunek zmiany położenia kursora na ekranie. Metoda ta umożliwia

przesunięcie kursora w miejsce, na które zwrócona jest kamera główna, a tym samym twarz

użytkownika. Każdy ruch głowy użytkownika wpływa zatem na sterowanie kursorem. Użyt-

kownik do zmiany położenia kursora na ekranie wykorzystuje pochylenie głowy do przodu lub

do tyłu oraz przekręcenie głowy w prawo lub w lewo (rysunek 3.1). Pochylenie głowy do dołu

lub do góry powoduje zmianę położenia kursora wzdłuż osi y. Przekręcenie głowy w prawo lub

w lewo powoduje zmianę położenia kursora wzdłuż osi x. Zagadnienie zmiany położenia kur-

sora poprzez niewielkie ruchy głowy zostało gruntownie zbadane i szeroko omówione

w podrozdziale 4.1.

Jak wynika z opracowanej metody sterowania, wykonywanie poleceń systemowych oparte

jest o analizę mrugnięć. Konieczne jest prawidłowe określenie, w jakim stanie znajdują się

oczy użytkownika - czy chociaż jedno z nich jest zamknięte. W tym celu wykorzystywane są

109

moduły mikrokamer. Dioda lub diody zainstalowane w module mikrokamery oświetlają oko

użytkownika światłem podczerwonym. Światło odbite od powierzchni oka jest rejestrowane

przez mikrokamerę, która pracuje w paśmie światła podczerwonego. Obrazy pobrane z mikro-

kamery zostają poddane procesowi przetwarzania i analizy. Badany jest stopień rozproszenia

światła odbitego i na jego podstawie określany jest stan oka. Zagadnienie sterowania poprzez

mrugnięcia oczu zostało gruntownie zbadane i szeroko omówione w podrozdziale 4.2.

Stosowanie opracowanego interfejsu ma na celu zastąpienie tradycyjnej myszy i klawiatu-

ry, które do sterowania wymagają rąk. Opracowane rozwiązanie posiada takie same

możliwości, ale do sterowania wymaga jedynie niewielkich ruchów głowy oraz mrugnięć.

Urządzenie jest ponadto niewrażliwe na zewnętrzne warunki oświetleniowe.

6.1.1 Budowa urządzenia

Opracowano dwa warianty wykonania urządzenia, tj. wariant przewodowy i bezprzewodo-

wy. Zasadnicza część urządzenia realizująca opracowane metody sterowania w obu wariantach

pozostaje niezmienna. Różnica polega na sposobie komunikacji urządzenia z komputerem oraz

miejscu wykonywania obliczeń.

Niezależnie od wariantu, urządzenie przystosowane jest do montażu na głowie użytkowni-

ka. W opracowanych wariantach wykonania urządzenie przybiera postać okularów. Nie mniej

jednak może mieć inną formę, np. opaski, czapki, itp. Istotne jest sztywne przymocowanie

urządzenia do głowy, tak by ruch głowy przekładał się na ruch urządzenia. Tym samym wpły-

wał na kierunek rejestracji kamery głównej, która umieszczona jest w taki sposób, by

rejestrowała obszar, na który zwrócona jest twarz użytkownika. Podczas pracy z urządzeniem

kamera główna rejestruje obraz ekranu monitora bądź jego fragment.

Urządzenie posiada również dwa moduły mikrokamer, które usytuowane są w taki sposób,

by możliwa była rejestracja obrazów oczu użytkownika przy jednoczesnym nieograniczaniu

pola widzenia użytkownika.

Wariant przewodowy

Urządzenie w wariancie przewodowym (rysunek 6.1) ma postać okularów montowanych

na głowie (lub inną formę umożliwiającą prawidłowe rozmieszczenie podzespołów). Na bocz-

110

nym ramieniu urządzenia zainstalowana jest kamera główna, w taki sposób, by naprzeciwko

niej znajdował się ekran monitora. Kamera główna rejestruje obraz całego ekran lub jego czę-

ści. Na przedniej części urządzenia zamontowane są moduły mikrokamer. Jeden naprzeciwko

oka lewego i drugi naprzeciwko oka prawego. Moduł mikrokamery zbudowany jest z mikroka-

mery rejestrującej obrazy oka w paśmie światła podczerwonego oraz diody lub diod

emitujących światło podczerwone (rysunek 6.2). Diody umieszczone są w sposób umożliwiają-

cy oświetlenie oka, tak by światło odbite od powierzchni oka dostawało się do obiektywu

mikrokamery. Urządzenie jest połączone z komputerem poprzez przewód USB. Zapewnia on

komunikację z komputerem oraz zasilanie urządzenia.

111

Rys. 6.1. Budowa urządzenia w wariancie przewodowym.

Rys. 6.2. Moduł mikrokamery.

Wariant bezprzewodowy

Urządzenie w wariancie bezprzewodowym (rysunek 6.3) podobnie jak w wariancie prze-

wodowym ma postać okularów montowanych na głowie (lub inną formę umożliwiającą

prawidłowe rozmieszczenie podzespołów). Na bocznym ramieniu urządzenia zainstalowana

jest kamera główna w taki sposób, by naprzeciwko niej znajdował się ekran monitora. Na

przedniej części urządzenia zamontowane są dwa moduły mikrokamer do rejestracji obrazów

oka lewego i prawego (rysunek 6.2).

W odróżnieniu od wariantu przewodowego wariant bezprzewodowy zawiera dodatkowo

zainstalowany na drugim bocznym ramieniu moduł mikroprocesora. Moduł ten zbudowany jest

z trzech wzajemnie połączonych elementów, są to: mikroprocesor, nadajnik i układ zasilający

(rysunek 6.4). Przeznaczeniem procesora jest wstępne lub całkowite przetwarzanie i rozpozna-

wanie obrazów pobranych z kamery głównej i dwóch mikrokamer. Nadajnik jest niezbędny do

zapewnienia urządzeniu jednostronnej komunikacji z komputerem. Jako, że urządzenie pracuje

bezprzewodowo, tzn. nie jest podpięte w żaden sposób do komputera, do pracy wymaga układu

zasilającego.

112

Rys. 6.3. Budowa urządzenia w wariancie bezprzewodowym.

6.1.2 Parametry kamery rejestrującej obraz ekranu

Zastosowana kamera ma największy wpływ na sterowanie kursorem. Do najistotniejszych

parametrów kamery należą rozdzielczość oraz kąt widzenia. To one determinują wielkość kur-

sora na zarejestrowanym obrazie. Ma to niebagatelny wpływ na precyzję sterowania. Im

większy kąt widzenia, tym większą część ekranu rejestruje kamera, ale kursor na zarejestrowa-

nym obrazie jest mniejszy. Również zmniejszenie rozdzielczości skutkuje zmniejszeniem

kursora. Wpływ wielkości zarejestrowanego kursora na precyzję sterowania omówiono w pod-

rozdziale 4.1.2. Zwiększanie rozdzielczości pozytywnie wpływa na precyzję sterowania, ale

powoduje zwiększenie kosztów obliczeniowych podczas przetwarzania i rozpoznawania, które

są niepożądane szczególnie w wariancie bezprzewodowym urządzenia. Z kolei zmniejszenie

kąta widzenia skutkuje rejestracją mniejszego wycinak ekranu. Uniemożliwia to szybką zmia-

nę położenia kursora na ekranie. Parametry te, tj. rozdzielczości i kąt widzenia, powinny być

zatem dobierane w drodze kompromisu pomiędzy szybkością zmiany położenia kursora na

ekranie, precyzją tej zmiany oraz kosztem obliczeniowym. Tendencję zmiany tych wartości

w zależności od doboru parametrów przedstawiono w tabeli 6.1.

113

Rys. 6.4. Moduł mikroprocesora.

Tab. 6.1. Tendencja zmiany parametrów rejestracji w zależności od kąta widzenia

i rozdzielczości kamery.

Kąt widzenia

mały(<10°)

średni(10° - 25°)

duży(>25°)

Roz

dzie

lczo

ść

mał

a(<

0,3M

px) precyzja:

szybkość:

obliczenia:

średnia

mała

szybkie

precyzja:

szybkość:

obliczenia:

mała

średnia

szybkie

precyzja:

szybkość:

obliczenia:

bardzo mała

duża

szybkie

śred

nia

(0,3

-1M

px)

precyzja:

szybkość:

obliczenia:

duża

mała

średnie

precyzja:

szybkość:

obliczenia:

średnia

średnia

średnie

precyzja:

szybkość:

obliczenia:

mała

duża

średnie

duża

(>1M

px) precyzja:

szybkość:

obliczenia:

bardzo duża

mała

wolne

precyzja:

szybkość:

obliczenia:

duża

średnia

wolne

precyzja:

szybkość:

obliczenia:

średnia

duża

wolne

Zwiększanie rozdzielczości powoduje stopniowe zwiększanie precyzji sterowania oraz

kosztów obliczeniowych. Zwiększanie kąta widzenia powoduje natomiast zwiększanie szybko-

ści sterowania kosztem precyzji.

Wysoka rozdzielczość i mały kąt widzenia kamery jest bardzo ważny przy zastosowaniu

kursorów o unikatowym kształcie. Ma natomiast dużo mniejsze znaczenie przy kursorach, któ-

rych rozpoznanie bazuje na barwie.

Parametry kamery są dodatkowo uzależnione od wymienionych wcześniej parametrów

ekranu i odległości kamery od ekranu. Zwiększenie odległości wymaga, dla zachowania precy-

zji sterowania, zmniejszenia kąta widzenia lub zwiększenia rozdzielczości kamery. Odbywa się

to jednak kosztem szybkości sterowania lub zwiększeniem kosztów obliczeniowych.

Dobór parametrów powinien rozpoczynać się od wyznaczenia maksymalnej rozdzielczości

kamery, przy której koszt obliczeniowy jest akceptowalny. Następnie należy dobrać kąt widze-

nia kamery w zależności od przewidywanego zastosowania. Możliwe jest zwiększenie precyzji

kosztem szybkości lub zwiększenie szybkości kosztem precyzji.

Przedstawione powyżej parametry kamery nie są jedynymi mającymi wpływ na rejestrację

obrazu kursora. Szczególną rolę odgrywają takie parametry jak czas ekspozycji, balans bieli,

jasność, nasycenie, kontrast. Podczas pracy urządzenia nie mogą być one zmieniane. Ich war-

tość powinna być tak dobrana, by możliwa była prawidłowa rejestracja barw wyświetlanych na

114

ekranie. Są one zatem zależne od zastosowanego ekranu. Ekran podczas pracy generuje świa-

tło. Ma ono stałe właściwości dzięki czemu możliwy jest jednorazowy dobór parametrów

i pozostawienie ich bez zmian do czasu stosowania urządzenia z danym monitorem. Zastoso-

wanie niezmiennych parametrów rejestracji pozwala uniezależnić urządzenie od zewnętrznych

warunków oświetleniowych. Jest to bardzo ważna cecha urządzenia. Zewnętrzne oświetlenie

bardzo często ma istotny wpływ na pracę systemów bazujących na rejestracji obrazów [126].

Ważnym parametrem jest również częstotliwość próbkowania. Parametr ten wpływa na

szybkość sterowania. By ruch kursora był płynny i szybki konieczne jest pobieranie z kamery

głównej nie mniej niż dwudziestu pięciu klatek na sekundę. Oczywiście im większa częstotli-

wość próbkowania, tym większe koszty obliczeniowe. Istotne jest utrzymanie próbkowania na

co najmniej minimalnym dopuszczalnym poziomie, by zmiana położenia kursora nie następo-

wała skokowo. Mogłoby to być uciążliwe dla użytkownika.

6.1.3 Parametry mikrokamer rejestrujących obrazy oczu

Mikrokamery obserwujące oczy muszą być specjalnie przystosowana do tego celu. Podsta-

wowym parametrem kamer jest pasmo rejestrowanego światła. Powinny one rejestrować

wyłącznie światło podczerwone. Uniezależnia to pracę urządzenia od zewnętrznych warunków

oświetleniowych.

By sterowanie było precyzyjne, konieczna jest wysoka częstotliwość próbkowania. Jak

ustalono w podrozdziale 3.2, każda z mikrokamer powinna pobierać dwadzieścia pięć klatek na

sekundę. Zapewnienie wysokiej częstotliwości próbkowania pozwala prawidłowo zidentyfiko-

wać każde świadome przymknięcie oka.

Ważnym parametrem mikrokamer jest rozdzielczość rejestrowanych obrazów. Korzystając

z opracowanej metody wykrywania mrugnięć, opartej o analizę rozproszenia światła odbitego

od oka, możliwe jest zastosowanie bardzo małej rozdzielczości mikrokamer. Mowa tu o roz-

dzielczościach rzędu 4,8 tysiąca pikseli, tj. obrazach 80 na 60 pikseli. Nawet tak niska

rozdzielczość zapewnia zadowalający poziom skuteczności, ograniczając tym samym koszty

obliczeniowe. Nie mniej jednak zastosowanie wyższej rozdzielczości w granicach 0,3 mega-

piksela, tj 640 na 480 pikseli, podnosi skuteczność rozpoznawania mrugnięć. Przy takiej

rozdzielczości rejestrowanych obrazów możliwe jest uzyskanie skuteczność na poziomie bli-

skim 100% (podrozdział 7.2). Jak pokazały eksperymenty przeprowadzone na obrazach oka

115

zamkniętego i otwartego (łącznie 10000 obrazów), dalsze zwiększanie rozdzielczości nie wpły-

wa na skuteczność. Opracowana metoda przetwarzania zarejestrowanych przez mikrokamery

obrazów i rozpoznawania mrugnięć (zbadana i opisana w podrozdziale 4.2.2) cechuje się bar-

dzo niskim kosztem obliczeniowym. Nawet zastosowanie podwyższonej rozdzielczości

mikrokamer nie obciąża w znacznym stopniu procesora.

Kolejny parametr mikrokamer, to kąt widzenia. Nie ma rygorystycznych ograniczeń na ten

parametr. Mikrokamera może, ale nie musi, rejestrować obrazów całego oka. Ważne jest tylko,

by na zarejestrowanych obrazach fragmentu oka było widoczne odbicie światła wyemitowane-

go przez diodę lub diody IR wchodzące w skład modułu razem z mikrokamerą.

Z kolei zastosowane w urządzeniu diody IR, wchodzące w skład modułów razem z mikro-

kamerami, muszą spełniać tylko jeden istotny warunek. Emitowane przez nie światło nie może

być szkodliwe dla człowieka. Problem ten został omówiony w podrozdziale 3.3.

6.1.4 Komunikacja z komputerem

Urządzenie w zależności od wariantu komunikuje się z komputerem poprzez przewód albo

bezprzewodowo. W wariancie przewodowym informacje z urządzenia przekazywane są do

komputera za pomocą USB. Połączenie takie zapewnia również zasilanie urządzenia. Do kom-

putera przekazywane są nieprzetworzone obrazy z kamery głównej oraz dwóch mikrokamer.

Jest to komunikacja jednostronna. Urządzenie nie pobiera z komputera żadnych informacji.

W przypadku wariantu bezprzewodowego urządzenie nie jest podpięte do komputera.

Przekazywanie informacji odbywa się poprzez sieć bezprzewodową. Może to być WiFi, Blu-

etooth albo dowolna inna sieć radiowa. Konieczne jest zatem wyposażenie urządzenia

w odpowiedni nadajnik a komputera w odbiornik. Do komputera przekazywane są już prze-

tworzone informacje, co znacząco ograniczą liczbę przesyłanych danych w porównaniu

z wariantem przewodowym. Odległość pomiędzy urządzeniem a komputerem jest stosunkowo

mała, co wynika ze sposobu działania i zastosowania urządzenia. Sprawia to, że zastosowane

rozwiązanie komunikacyjne ma na celu przesyłanie małej liczby informacji na niedużą odle-

głość (podobnie jak bezprzewodowa mysz komputerowa). Tu również komunikacja jest

jednostronna.

116

6.1.5 Wpływ zewnętrznych warunków oświetleniowych

Przeprowadzone badania pozwoliły opracować metody sterowania, dzięki którym urządze-

nie jest niewrażliwe na zewnętrzne warunki oświetleniowe.

Kamera główna służąca do obserwacji ekranu posiada możliwość ręcznej regulacji takich

parametrów jak: czas ekspozycji, balans bieli, jasność, nasycenie, kontrast. Pozwala to na do-

bór odpowiednich parametrów kamery dla wykorzystywanego ekranu. Pozostają one

niezmienne niezależnie od oświetlenia zewnętrznego. Ponieważ ekran generuje światło, które

jest następnie rejestrowane przez kamerę, możliwa jest praca urządzenia, nawet przy braku

oświetlenia zewnętrznego.

Mikrokamery obserwujące oczy użytkownika rejestrują wyłącznie światło w paśmie pod-

czerwonym i wyposażone są w oświetlenie w postaci diod IR. Pozwala to na bezbłędną pracę

urządzenia przy dowolnym oświetleniu zewnętrznym, również przy braku oświetlenia ze-

wnętrznego.

6.2 Prototyp urządzenia

W celu udowodnienia skuteczności opracowanego interfejsu, został zbudowany prototyp

urządzenia. Umożliwiło to również przeprowadzenie niezbędnych eksperymentów oraz grun-

towne zbadanie większości problemów związanych z jego pracą i obsługą. Prototyp urządzenia

obejmuje zarówno sprzęt jak i oprogramowanie.

6.2.1 Sprzęt

Sprzęt stanowiący część prototypu został wykonany w wariancie przewodowym. Prototyp

wyglądem przypomina okulary, na których ramce rozmieszczono rejestratory. Widok prototypu

urządzenia z przodu przedstawiono na rysunku 6.5, a widok z góry na rysunku 6.6. Zastosowa-

ne kamery zostały tak dobrane pod względem parametrów, by możliwe było przy ich pomocy

badanie różnych metod sterowania.

117

Do zmiany położenia kursora zastosowano kamerę Microsoft LifeCam Studio. Została ona

zainstalowana na lewym boku okularów w sposób umożliwiający rejestrację przestrzeni, na

którą zwrócona jest twarz użytkownika (rysunek 6.7). Do najistotniejszych cech zastosowanej

kamery należą:

• rozdzielczość Full HD 1080p (1920x1080),

• wysoka jakość obrazu,

• autofocus,

• ostrość obrazu,

• dobre odwzorowanie barw,

118

Rys. 6.5. Prototyp urządzenia - widok z przodu.

Rys. 6.6. Prototyp urządzenia - widok z góry.

• możliwość ręcznej regulacji parametrów rejestracji (balans bieli, czas ekspozycji,

nasycenie, kontrast),

• małe gabaryty,

• niewielka waga,

• kształt umożliwiający łatwy montaż kamery na urządzeniu.

119

Rys. 6.8. Moduł mikrokamery zainstalowany na prototypie urządzenia.

Rys. 6.7. Kamera główna zainstalowana na prototypie urządzenia.

Zastosowana kamera cechuje się bardzo wysokimi parametrami rejestracji, pomimo, iż jest

to kamera o niewielkich gabarytach, przeznaczona do wykorzystania jako kamera internetowa.

Jakość i rozdzielczość rejestrowanych obrazów znacznie przewyższają wymagania stawiane

kamerze głównej w opracowanym rozwiązaniu. Nie mniej jednak zastosowanie właśnie takiej

kamery pozwoliło poszerzyć zakres badań. Kształt kamery umożliwił łatwy montaż na urzą-

dzeniu. Małe gabaryty, a przede wszystkim mała waga kamery, sprawiają, że urządzenie jest

komfortowe w użytkowaniu.

Wykrywanie mrugnięć oczu odbywa się poprzez dwie kamery Tracer Exclusive HD Roc-

ket. Kamery te zostały zmodyfikowane w sposób umożliwiający rejestrację światła w paśmie

podczerwonym i montaż na ramie urządzenia (rysunek 6.8). Modyfikacje objęły:

• demontaż obudowy, by zmniejszyć gabaryty kamer i umożliwić ich montaż na ramie

urządzenia,

• demontaż filtrów podczerwonych umożliwiając rejestrację pasma podczerwonego,

• instalację filtrów światła widzialnego w celu przystosowania kamer do rejestracji wy-

łącznie światła podczerwonego,

• zmianę obiektywów zwiększając kąt widzenia kamer,

• instalację w kamerach diod emitujących światło podczerwone w sposób umożliwiający

oświetlenie oczu użytkownika.

Przeprowadzone modyfikacje pozwoliły gruntownie zbadać opracowaną metodę sterowa-

nia poprzez mrugnięcia oczu, polegającą na analizie stopnia rozproszenia światła odbitego oraz

wykazać wysoką skuteczność tej metody. Tak zmodyfikowane kamery stanowią gotowe modu-

ły mikrokamer. Zostały one zainstalowane na urządzeniu w taki sposób, by każda mikrokamera

rejestrowała obrazy jednego oka. Zastosowano metodę montażu opisaną w podrozdziale 4.2.1

umożliwiającą obserwację oczu od strony zewnętrznej lekko z góry. Takie rozwiązanie nie

ogranicza użytkownikowi widoczności na wprost i zapewnia prawidłową rejestrację światła

odbitego od oka. Zastosowane w modułach diody cechują się natężeniem promieniowania

o wartości 10mW/sr. Przy uwzględnieniu dystansu dzielącego diodę i oko (wyznaczonego

w podrozdziale 4.2.1), dystans do siatkówki to od 45mm do 50mm. Przy takich założeniach,

emisja na poziomie siatkówki oka wynosi od 4W/m2 do 5W/m2. Jest to wartość nieprzekracza-

jąca 5% dopuszczalnej wartości emisji, która wynosi 100W/m2 (podrozdział 3.3).

Prototyp urządzenia łączy się z komputerem poprzez trzy przewody USB 2.0. Każda z ka-

mer podpięta jest bezpośrednio do komputera. Zapewnia to szybką transmisje danych, co jest

120

szczególnie ważne, przy przesyłaniu obrazów w wysokiej rozdzielczości zarejestrowanych

przez kamerę główną. Takie rozwiązanie umożliwia ponadto testowanie tylko wybranej funk-

cjonalności urządzenia, odcinając niepotrzebne moduły. Przewody zapewniają również

zasilanie.

6.2.2 Oprogramowanie

Oprócz urządzenia bardzo istotną częścią prototypu jest oprogramowanie wspomagające

jego pracę. Jak już nadmieniono, prototyp urządzenia wykonano w wariancie przewodowym.

Oznacza to, że rolą oprogramowania jest wykonanie wszystkich obliczeń niezbędnych do ste-

rowania pracą komputera. Najważniejsze funkcje oprogramowania to:

• wyświetlanie kursora na ekranie,

• pobieranie obrazów z kamer,

• przetwarzanie obrazów z kamery głównej,

• rozpoznawanie i lokalizacja kursora,

• zmiana położenia kursora w systemie,

• przetwarzanie obrazów z mikrokamer,

• identyfikacja mrugnięć oczu i generowanie sygnałów,

• interpretacja sygnałów generowanych na podstawie mrugnięć oczu i wykonywanie po-

leceń systemowych.

Większość, z wyżej wymienionych funkcji została zaprojektowana tak, by możliwe było

badanie rożnych wariantów sterowania i szybkie dodawanie nowych rozwiązań.

Wyświetlanie kursora na ekranie

Z uwagi na dużą różnorodność opracowanych kursorów oraz zmianę trybu ich wyświetla-

nia (podrozdział 4.1) jest to bardzo istotny element oprogramowania. Ma on na celu

prawidłową prezentację kursora na ekranie niezależnie od testowanej grupy kursorów. Czasami

konieczne jest zastąpienie kursora systemowego przez opracowany kursor, a czasami wyświe-

tlanie unikatowego wzoru w sąsiedztwie kursora w stałej odległości od niego. Istotna jest

również zmiana trybu wyświetlania w zależności od lokalizacji kursora.

121

Ważną kwestią było zapewnienie podczas testów, szybkiej zmiany kursora, niezależnie od

grupy z jakiej on pochodzi oraz możliwość modyfikacji parametrów określających zmianę try-

bu wyświetlania kursora bądź zablokowanie zmiany trybu.

Ta część oprogramowania jest ściśle powiązana z częściami odpowiedzialnymi za rejestra-

cję obrazu z kursorem i rozpoznawanie kursora.

Pobieranie obrazów z kamer

Oprogramowanie zostało tak zaprojektowane, aby pobieranie obrazów z każdej z kamer

było realizowane przez oddzielny wątek. Łącznie, ta część składa się aż z trzech niezależnych

wątków. Jest to bardzo istotne dla zapewnienia ciągłego dostarczania obrazów bez opóźnień.

Niezależnie jak szybko następuje przetwarzanie obrazów, pobieranie obrazów jest zsynchroni-

zowane z szybkością rejestracji i odbywa się 25 razy na sekundę. Umożliwia to szybką zmianę

położenia kursora oraz identyfikację mrugnięć oczu bez zbędnych opóźnień.

Przetwarzanie obrazów z kamery głównej

Przetwarzanie obrazów z kamery głównej jest ściśle uzależnione od zastosowanej grupy

kursorów. Ta część oprogramowania została tak zaprojektowana, by możliwa była szybka

zmiana algorytmu przetwarzającego oraz szybkie modyfikowanie i dodawanie nowych algoryt-

mów. Było to bardzo ważne ze względu na dużą liczbę przeprowadzanych badań urządzenia

z różnymi grupami kursorów.

Rozpoznawanie i lokalizacja kursora

Inaczej jak w przypadku przetwarzania, ta część oprogramowania jest mocno uzależniona

nie tylko od grupy kursorów, ale od konkretnego zastosowanego kursora. Jest to najbardziej

rozbudowana część całego oprogramowania. Dla każdego badanego kursora został napisany

oddzielny algorytm rozpoznawania bądź kilka algorytmów, by możliwe było porównanie ich

skuteczności i wybór najlepszego.

Dodatkowo, ta część oprogramowania umożliwia wybór metody lokalizacji kursora. Więk-

szość algorytmów lokalizacji może być stosowana dla prawie wszystkich grup kursorów. Tylko

122

kilka metod lokalizacji jest zaprojektowanych konkretnie pod daną grupę bądź pod konkretny

kursor.

Zmiana położenia kursora w systemie

Opracowano trzy iteracyjne metody zmiany położenia kursora na ekranie. Mogą być one

zastosowane z każdą grupą kursorów. Oprogramowanie umożliwia wybór dowolnej z tych me-

tod na potrzeby testów bądź dodanie i zastosowanie nowej metody.

Ta części oprogramowania ma podwójną rolę. Jej głównym zadaniem jest wyznaczenie

przesunięcia kursora na podstawie lokalizacji rozpoznanego kursora na zarejestrowanym obra-

zie. Dodatkowo jej celem jest zastosowanie wyznaczonego przesunięcia w systemie, tj. zmiana

położenia kursora na ekranie. Praca tej części oprogramowania jest bezpośrednio widoczna na

ekranie i skutkuje zmianą położenia kursora zgodnie z intencją użytkownika.

Przetwarzanie obrazów z mikrokamer

Przetwarzanie odbywa się niezależnie dla obrazów oka lewego i prawego. Ta część opro-

gramowania realizuje opracowany algorytm identyfikacji stopnia rozproszenia światła. Jego

zadaniem jest rozpoznanie najjaśniejszych pikseli obrazu, wskazanie punktu odbicia światła

emitowanego przez diody IR i wyznaczenie profilu jasności obrazu wzdłuż przekroju przez

punkt odbicia. Oprogramowanie umożliwia zmianę wszystkich parametrów przetwarzania oraz

dodanie nowego algorytmu przetwarzającego obrazy.

Identyfikacja mrugnięć oczu i generowanie sygnałów

Podobnie jak przetwarzanie, ta część oprogramowania realizuje zadania niezależnie dla

oka lewego i prawego. Jej celem jest określenie na podstawie wyznaczonych profili jasności

w jakim stanie znajduje się każde z oczu. Oprogramowanie umożliwia zmianę parametru iden-

tyfikacji, tj. progu określającego stopień rozproszenia. Efektem pracy tej części

oprogramowania są dwa sygnały binarne opisujące mrugnięcia oczu.

123

Interpretacja sygnałów generowanych na podstawie mrugnięć oczu

i wykonywanie poleceń systemowych

To bardzo rozbudowana część oprogramowania. Umożliwia ona zarówno dowolną inter-

pretację sygnałów generowanych na podstawie mrugnięć oczu jak i przypisanie do nich

dowolnych poleceń systemowych. Została tak zaprojektowana, by możliwe było testowanie

różnych wariantów sterowania oczami i opracowanie optymalnego języka gestów wykonywa-

nych oczami.

124

Rozdział 7

Eksperymenty

7.1 Szybkość oraz precyzja zmiany położenia kursora

na ekranie

Zbadano wpływ zastosowanej metody zmiany położenia kursora na ekranie na szybkość

oraz precyzję tej zmiany. Rozważono dwie metody zbadane i opisane w podrozdziale 4.1.4,

a mianowicie:

• metoda 1 - zmiana położenia o stałą wartość w kierunku wyznaczonym przez wektor,

• metoda 2 - adaptacyjna zmiana położenia w kierunku wskazanym przez wektor.

Pominięto metodę zmiany położenie o stałą wartość w każdej z osi, ponieważ jej praktycz-

ne zastosowanie jest bezcelowe. Jest to metoda nieprzyjazna użytkownikowi. Poza tym, jej

wyniki szybkości i precyzji są zbliżone do wyników metody 1.

W celu uwidocznienia wszystkich różnic pomiędzy opracowanymi metodami zmiany po-

łożenia badania przeprowadzono dla:

• trzech odległości pomiędzy kursorem a wskazywanym punktem (wyrażonej w pikse-

lach): 100px, 150px, 200px,

• trzech metod rejestracji obrazów z kursorem, wyrażonej w stosunku rozmiaru kursora

wyświetlonego na ekranie i tego na zarejestrowanym obrazie: ~1,25, ~1, ~0,75,

• pięciu parametrów dla każdej metody:

◦ wartość przesunięcia dla metody 1: 1px, 2px, 5px, 10px, 20px,

◦ parametr skalujący wektor przesunięcia dla metody 2: 0,5, 0,75, 1, 1,25, 1,5.

125

Wyniki pomiarów dla współczynników rejestracji równych: ~1,25, ~1 i ~0,75 przedsta-

wiono kolejno w tabelach 7.1, 7.2 i 7.3. Zaznaczono precyzję (różnice w pikselach pomiędzy

kursorem i punktem docelowym na ekranie), liczbę iteracji oraz czas przesunięcia. Czas jednej

iteracji przy taktowaniu 25 klatek na sekundę to 0,04s. W przypadku, gdy proces zmiany poło-

żenia kursora w jednej iteracji (rejestracja, przetwarzanie, rozpoznawanie, wyznaczanie

przesunięcia, dokonanie przesunięcia) jest dłuższy niż 0,04s, to czas zmiany położenia kursora

do punktu docelowego się wydłuża. Podczas wykonywania badań, zastosowano algorytmy

zoptymalizowane pod kątem wydajności oraz zapewniono procesor o odpowiedniej mocy obli-

czeniowej, by nie wpływały one na otrzymane wyniki.

Tab. 7.1. Wyniki pomiarów szybkości i precyzji zmiany położenia kursora dla współczynnika

rejestracji ~1,25.

metoda parametr

dystans 100px dystans 150px dystans 200px

precyzjaliczbaiteracji

czas [s]liczbaiteracji

czas [s]liczbaiteracji

czas [s]

1 1 100 4 150 6 200 8 1

1 2 50 2 75 3 100 4 2

1 5 19 0,76 30 1,2 40 1,6 5

1 10 10 0,4 15 0,6 20 0,8 10

1 20 9 0,36 12 0,48 14 0,56 20

2 0,5 9 0,36 9 0,36 10 0,4 1

2 0,75 5 0,2 6 0,24 6 0,24 1

2 1 3 0,12 4 0,16 4 0,16 1

2 1,25 1 0,04 1 0,04 1 0,04 1

2 1,5* 3 0,12 4 0,16 4 0,16 2* - wystąpienie oscylacji wokół punktu docelowego

126

Tab. 7.2. Wyniki pomiarów szybkości i precyzji zmiany położenia kursora dla współczynnika

rejestracji ~1.

metoda parametr

dystans 100px dystans 150px dystans 200px

precyzjaliczbaiteracji

czas [s]liczbaiteracji

czas [s]liczbaiteracji

czas [s]

1 1 100 4 150 6 200 8 0

1 2 50 2 75 3 100 4 1

1 5 19 0,76 30 1,2 40 1,6 4

1 10 10 0,4 15 0,6 20 0,8 9

1 20 9 0,36 12 0,48 14 0,56 19

2 0,5 7 0,28 8 0,32 8 0,32 0

2 0,75 4 0,16 4 0,16 4 0,16 0

2 1 1 0,04 1 0,04 1 0,04 0

2 1,25* 4 0,16 4 0,16 4 0,16 1

2 1,5* 8 0,32 8 0,32 8 0,32 1* - wystąpienie oscylacji wokół punktu docelowego

Tab. 7.3. Wyniki pomiarów szybkości i precyzji zmiany położenia kursora dla współczynnika

rejestracji ~0,75.

metoda parametr

dystans 100px dystans 150px dystans 200px

precyzjaliczbaiteracji

czas [s]liczbaiteracji

czas [s]liczbaiteracji

czas [s]

1 1 100 4 150 6 200 8 0

1 2 50 2 75 3 100 4 1

1 5 19 0,76 30 1,2 40 1,6 4

1 10 10 0,4 15 0,6 20 0,8 9

1 20 9 0,36 12 0,48 14 0,56 19

2 0,5 5 0,2 5 0,2 5 0,2 0

2 0,75 1 0,04 1 0,04 1 0,04 0

2 1* 5 0,2 5 0,2 5 0,2 1

2 1,25* 11 0,44 12 0,48 12 0,48 2

2 1,5** - - - - - - -* - wystąpienie oscylacji wokół punktu docelowego

** - wystąpienie oscylacji rozbieżnej wokół punktu docelowego

127

Analizując uzyskane wyniki można jednoznacznie stwierdzić, że metoda 2 jest zarówno

szybsza jak i bardziej precyzyjna od metody 1. Należy jednak zauważyć, że metoda 2 w odróż-

nieniu od metody 1 jest silnie zależna od współczynnika rejestracji.

Metoda 1 charakteryzuje się korelacją pomiędzy szybkością i precyzją. Zwiększenie

współczynnika przesunięcia powoduje wyraźne zwiększenie szybkości zmiany położenia kur-

sora przy jednoczesnym obniżeniu precyzji. Na uwagę zasługuje fakt, że współczynnik

rejestracji (zmieniający się np. podczas zmiany dystansu rejestracji) nie wpływa na liczbę itera-

cji potrzebnych do zmiany położenia kursora. Ma on natomiast wpływ na precyzję sterowania

w sytuacji, gdy jego wartość przekracza 1. Istotną wadą tej metody jest zmienna liczba iteracji

potrzebna do zmiany położenia kursora, która jest zależna od odległości kursora od punktu do-

celowego. Wynika to ze zmiany położenia kursora w każdej iteracji o stałą wartość.

Metoda 2 cechuje się bardzo szybką zmianą położenia kursora przy zachowaniu wysokiej

precyzji. Dodatkowo liczba iteracji, potrzebna do zmiany położenia, jest zbliżona niezależnie

od odległości kursora od punktu docelowego. Metoda ta, wymaga prawidłowego doboru para-

metru skalowania. Wykazano, że optymalna wartość tego parametru, to wartość współczynnika

rejestracji. Przy takim doborze parametru, zmiana położenia kursora na ekranie następuje

w jednej iteracji, przy zachowaniu precyzji na poziomie zero pikseli (dla współczynnika reje-

stracji mniejszego lub równego 1). Osiągnięcie takiego przesunięcia jest możliwe w warunkach

laboratoryjnych. W rzeczywistości parametr skalowania powinien być mniejszy od współczyn-

nika rejestracji. Im ta różnica jest większa, tym więcej iteracji jest wymagane do zmiany

położenia kursora. Precyzja sterowania zachowuje stałą wartość. Gdy parametr skalowania jest

większy od współczynnika rejestracji, mogą wystąpić dwie sytuacje. Kursor może oscylować

wokół punktu docelowego zbliżając się do niego z każdą iteracją bądź oddalając się od niego

(tabela 7.4). Choć w pierwszym przypadku kursor osiąga punkt docelowy, to obie te sytuacje są

niedopuszczalne. Oscylacja kursora wokół punktu docelowego negatywnie wpływa na komfort

pracy użytkownika oraz na precyzje sterowania.

128

Tab. 7.4. Oscylacja zbieżna i rozbieżna wokół punktu docelowego przy zastosowaniu

współczynnika rejestracji ~0,7.

iteracja

odległość kursora od punktu docelowego [px]

Parametr skalowania1,25

Parametr skalowania1,5

0 100 100

1 -72 -106

2 52 112

3 -38 -119

4 28 126

5 -20 -133

6 15 141

7 -11 -149

8 8 158

9 -6 -167

10 5 177

11 -4 -187

12 3 198

13 -3 -209

14 3 221

7.2 Skuteczność rozpoznawania mrugnięć oczu

Badaniu została poddana opracowana metoda rozpoznawania mrugnięć oczu. Metoda po-

lega na analizie stopnia rozproszenia światła podczerwonego odbitego od powierzchni oka lub

powieki (podrozdział 4.2.2). Zbadano skuteczność opracowanego algorytmu rozpoznawania

stanu oka oraz wynikającą z niej skuteczność rozpoznawania gestów wykonanych oczami.

Badanie skuteczności rozpoznawania stanów oczu polegało na przetworzeniu przez algo-

rytm wcześniej przygotowanych obrazów z bazy zawierającej 5000 obrazów oczu otwartych

i 5000 obrazów oczu zamkniętych. Obrazy zostały zarejestrowane poprzez mikrokamery proto-

typu urządzenia.

129

Skuteczność rozpoznawania gestów została zbadana poprzez przetworzenie przez opraco-

wany algorytm sekwencji różnego rodzaju gestów wykonanych oczami. Zbadano czy

rozpoznane przez algorytm gesty odpowiadają zadanym, tj. intencji użytkownika wykonujące-

go gest. Zarejestrowano 250 sekwencji przedstawiających wszystkie gesty opisane

w podrozdziale 4.2.3 oraz naturalne mrugnięcia.

Wyniki badania skuteczności rozpoznawania stanu oka zestawiono w tabeli 7.5. Skutecz-

ność rozpoznawania oka otwartego jest bardzo wysoka. Opracowany algorytm rozpoznawania,

oparty o analizę stopnia rozproszenia światła, pozwala niemal ze stuprocentową dokładnością

prawidłowo zidentyfikować oczy otwarte (99.94%). Skuteczność rozpoznawania oczu za-

mkniętych jest nieznacznie niższa i wynosi aż 99,42%. Podczas testów zdarzało się, że

algorytm błędnie zidentyfikował zamknięte oko. Wynikało to najczęściej z odbicia światła pod-

czerwonego, o małym stopniu rozproszenia, w okolicach rzęs. Niezależnie od przyczyny,

przypadki błędnego rozpoznania są rzadkością. Łączna skuteczność rozpoznawania stanu oka

wynosi 99,68%. Jest to bardzo dobry wynik tym bardziej, że istnieje niskie prawdopodobień-

stwo, by błędnie zidentyfikowane zostały więcej niż dwie sąsiednie klatki. Tak krótkotrwała

zmiana stanu oka z zamkniętego na otwarte jest pomijana i nie ma wpływu na sterowanie. Po-

dobnie zmiana stanu oka na zamknięte, trwająca tak krótki czas, zostanie potraktowana jako

naturalne mrugnięcie, a tym samym zostanie pominięta podczas identyfikacji gestów.

Tab. 7.5. Wyniki badania skuteczności rozpoznawania stanu oka.

Oko otwarte Oka zamknięte

Uznane za otwarte 4997 29

Uznane za zamknięte 3 4971

Skuteczność 99,94% 99,42%

Wyniki badania skuteczności rozpoznawania gestów przedstawiono w tabeli 7.6. Wszyst-

kie zbadane gesty zostały prawidłowo rozpoznane przez opracowany algorytm. Dwa błędne

rozpoznania wyszczególnione w tabeli 7.6 wynikają nie z błędnego rozpoznania gestu wykony-

wanego przez jedno z oczu, ale z rozpoznania przymknięcia na drugim oku, co spowodowało

przerwanie identyfikacji gestu. Tym samym rozpoznany gest nie pokrywał się z intencją użyt-

kownika, co skutkowało klasyfikacją testu jako błąd rozpoznania. Tego typu błędy są efektem

nieprawidłowo wykonanego gestu przez użytkownika (podrozdział 4.2.3). Gest jest uznany za

prawidłowy, jeżeli przez cały czas jego wykonywania, drugie oko pozostaje otwarte. W sytu-

130

acji, gdy użytkownik podczas wykonywania gestu przymknie drugie oko, identyfikacja zostaje

przerwana.

Tab. 7.6. Wyniki badania skuteczności rozpoznawania gestów wykonanych oczami.

Liczba testów Liczba błędów Skuteczność

250 2 99,20%

7.3 Opinie użytkowników

Przeprowadzono szereg eksperymentów na grupie trzydziestu użytkowników. Ekspery-

menty te, miały na celu zbadanie efektywności opracowanego interfejsu. W eksperymencie

brały udział osoby, na co dzień posługujące się myszą komputerową oraz klawiaturą i przedsta-

wione im rozwiązanie było dla nich całkowicie nowym podejściem.

Badania zostały przeprowadzone z wykorzystaniem opracowanego prototypu urządzenia

(podrozdział 6.2) oraz monitora o przekątnej 23 cale i rozdzielczości HDTV 1080p

(1920x1080 pikseli przy proporcji ekranu 16:9). Odległość użytkownika od ekranu wynosiła

około 75 centymetrów. Wszystkie testy zostały przeprowadzone przy użyciu kursora wielo-

barwnego o kształcie strzałki.

Wszystkim badanym przedstawiono i opisano stanowisko pomiarowe ze szczególnym

uwzględnieniem niewidocznego promieniowania IR, które jak wynika z obliczeń przeprowa-

dzonych w podrozdziale 6.2.1 jest nieszkodliwe dla człowieka. Wszyscy badani świadomie

wyrazili zgodę na udział w eksperymencie.

W eksperymencie oceniano szybkość reakcji, efektywność sterowania kursorem ekranu

i efektywność zastąpienia klawiszy myszy przez mruganie oczu. Dodatkowo, zbadano szyb-

kość i efektywność wprowadzania tekstu przy zastosowaniu klawiatury ekranowej.

Użytkownicy oceniali interfejs posługując się pięciostopniową subiektywną skalą (nie działa,

słabe, akceptowalne, dobre, lepsze od znanych). Ocenie poddane zostały:

• sterowanie kursorem (ruchy głowy): szybkość, precyzja, ergonomia,

• wykonywanie poleceń systemowych (mrugnięcia): szybkość, precyzja, ergonomia,

• wprowadzanie tekstu (klawiatura ekranowa): szybkość, precyzja, ergonomia,

• ogólna ocena interfejsu.

131

Tab. 7.7. Wyniki badań przeprowadzonych na grupie 30 użytkowników.uż

ytko

wni

kSterowaniekursorem

Sterowaniemrugnięciami

Wprowadzanietekstu

Oce

na o

góln

a

avg δszyb

kość

prec

yzja

ergo

nom

ia

szyb

kość

prec

yzja

ergo

nom

ia

szyb

kość

prec

yzja

ergo

nom

ia

1 5 5 5 4 5 3 5 5 4 5 4,60 0,702 5 4 5 5 5 4 5 5 4 5 4,70 0,483 4 5 5 3 4 4 4 5 5 4 4,30 0,674 5 5 5 4 5 4 5 5 5 5 4,80 0,425 4 5 5 5 5 3 4 4 4 4 4,30 0,676 4 4 5 3 4 3 3 4 4 4 3,80 0,637 4 5 5 4 5 4 4 5 4 5 4,50 0,538 3 4 4 2 3 2 3 3 3 3 3,00 0,679 4 5 5 4 5 4 4 5 5 5 4,60 0,5210 4 5 5 4 5 4 4 5 5 5 4,60 0,5211 5 5 5 4 5 3 5 5 4 5 4,60 0,7012 5 5 5 4 4 3 5 5 4 5 4,50 0,7113 5 5 5 5 5 4 5 5 5 5 4,90 0,3214 4 5 5 5 5 5 5 5 5 5 4,90 0,3215 4 4 5 4 5 3 4 4 3 4 4,00 0,6716 3 4 4 3 3 2 3 4 3 4 3,30 0,6717 5 5 5 5 5 4 4 5 5 5 4,80 0,4218 5 4 5 4 4 3 5 4 4 5 4,30 0,6719 4 5 5 5 4 4 4 5 4 5 4,50 0,5320 5 5 5 4 3 3 5 5 4 5 4,40 0,8421 5 5 5 4 5 5 5 5 5 5 4,90 0,3222 5 5 5 4 5 4 4 5 4 5 4,60 0,5223 4 4 5 2 3 2 3 3 3 3 3,20 0,9224 5 5 5 4 4 4 5 5 5 4 4,60 0,5225 5 5 5 5 5 5 5 5 5 5 5,00 0,0026 4 5 5 3 4 2 4 4 4 5 4,00 0,9427 5 5 5 5 5 4 5 5 5 5 4,90 0,3228 4 4 5 4 4 3 3 4 3 4 3,80 0,6329 5 5 5 4 5 3 4 5 4 5 4,50 0,7130 5 5 5 4 5 4 5 5 5 5 4,80 0,42

avg 4,47 4,73 4,93 4,00 4,47 3,50 4,30 4,63 4,23 4,63 4,39 0,56δ 0,63 0,45 0,25 0,83 0,73 0,86 0,75 0,61 0,73 0,61 0,52 0,20

avg 4,71 3,99 4,39δ 0,50 0,89 0,71

132

Badani użytkownicy, po procesie wdrożenia i swobodnej pracy z urządzeniem otrzymali

do wykonania zadania. Były one związane z obsługą systemu, pracą na plikach, obsługą prze-

glądarki internetowej oraz edytora tekstu, gdzie zmierzono również szybkość wprowadzania

tekstu poprzez klawiaturę ekranową. Wyniki eksperymentów zostały zebrane w tabeli 7.7.

Sterowanie kursorem myszy jest bardzo intuicyjne (kursor przesuwany jest w miejsce, na

które zwrócona jest twarz użytkownika), dlatego użytkownicy bardzo szybko przyswoili to

rozwiązanie i w pełni je zaakceptowali. Łączna ocena takiej metody sterowania kursorem jest

bardzo wysoka. Bardzo zadowalająca jest niska wartość odchylenia standardowego. Oznacza

to, że zdecydowana większość użytkowników bardzo wysoko oceniło tę metodę.

Szybkość sterowania kursorem jest nieco niższa niż poprzez mysz komputerową, co ma

przełożenie na ocenę tego parametru. Niemniej jednak fakt, że było to rozwiązanie nowe dla

wszystkich użytkowników biorących udział w eksperymencie wynik jest zadowalający. Na

uwagę zasługuje bardzo wysoka ocena precyzji, a w szczególności ergonomii. Uczestnicy testu

uznali przedstawioną im metodę sterowania kursorem za niezwykle dobrą i wygodną w użyt-

kowaniu.

Kilku użytkowników zgłosiło problem związany ze sterowaniem mrugnięciami. Problem

polegał głównie na nieumiejętności niezależnego mrugania okiem lewym i prawym. Choć nie

było to konieczne, po pewnym czasie użytkownicy biorący udział w eksperymencie posiedli tę

umiejętność i mogli bez problemów w pełni korzystać z możliwości urządzenia. Fakt ten jed-

nak wyraźnie wpłynął na ocenę użytkowników. Parametr ergonomii został oceniony poniżej

oczekiwań.

Należy zwrócić uwagę, że parametr precyzji sterowania poprzez mrugnięcia, uzyskał bar-

dzo wysoką ocenę, co świadczy o dużej skuteczność rozwiązania tj. sterowanie odbywało się

zgodnie z intencjami użytkowników. Również wynik szybkości sterowania mrugnięciami jest

na dobrym poziomie. Na uwagę zasługuje fakt, że wartość odchylenia standardowego jest

znacznie wyższa niż w przypadku sterowania kursorem poprzez ruchy głowy. Oznacza to, że

oceny użytkowników są bardzo zróżnicowane, od niskich po wysokie.

Bardzo wysoko zostało ocenione wprowadzanie tekstu poprzez klawiaturę ekranową. Na-

leży pamiętać, że użytkownicy nie używali rąk, a jedynie niewielkich ruchów głowy

i mrugnięć oczu. Wprowadzanie tekstu odbywało się nie tylko szybko, ale i z niewielką liczbą

pomyłek. Niezwykle rzadko następowało wprowadzenie niepożądanego znaku. Częściej zda-

rzały się pomyłki, polegające na wprowadzeniu dwa razy tego samego znaku. Wynikało to

133

z małej różnicy pomiędzy czasem t1 i t2 (podrozdział 4.2.3), nieprawidłowo dobranej do bada-

nego użytkownika. W opinii użytkowników taka metoda wprowadzania tekstu jest skutecznym

i ciekawym rozwiązaniem.

W początkowej fazie eksperymentu, użytkownicy wprowadzali tekst z szybkością 15-30

znaków na minutę. Po pewnym czasie, część użytkowników osiągała nawet 50-60 znaków na

minutę. Jest to bardzo dobry wynik biorąc pod uwagę, że wprowadzanie tekstu odbywało się

bez wykorzystania rąk.

Analizując przeprowadzone eksperymenty warto zwrócić uwagę na bardzo wysoką ocenę

ogólną interfejsu. Użytkownicy biorący udział w eksperymencie, na co dzień korzystający

z tradycyjnej myszy i klawiatury, niezwykle szybko przystosowali się do nowej metody stero-

wania kursorem. Sterowanie mrugnięciami wymagało nieco dłuższego wdrożenia, ale również

zostało opanowane i zaakceptowane przez badanych.

Oceny użytkowników świadczą o szybkości i dużej precyzji opracowanego interfejsu.

Jego zastosowanie nie spowoduje istotnego spowolnienia pracy z komputerem pomimo wyeli-

minowania z komunikacji rąk. Ocena ergonomii sugeruje wprowadzenie poprawek przy

sterowaniu poprzez mrugnięcia, ale ogólny wynik pokazuje, że proponowane rozwiązanie jest

wygodne w użytkowaniu i w pełni akceptowalne.

Istotny wpływ na ocenę ma fakt, że użytkownicy biorący udział w eksperymencie na co

dzień posługują się myszą i klawiaturą. Istnieje wysokie prawdopodobieństwo, że osoby nie-

pełnosprawne nie mogące wykorzystać w komunikacji z komputerem rąk, oceniłyby

opracowany interfejs wyraźnie lepiej i uznałyby go za niezwykle pomocny.

134

Rozdział 8

Obszary zastosowań

Opracowany interfejs komunikacyjny, został tak zaprojektowany, by mógł skutecznie za-

stąpić tradycyjną mysz komputerową i klawiaturę. Oprócz zastąpienia, możliwe jest również

uzupełnienie powszechnie stosowanych urządzeń sterujących dając człowiekowi większe moż-

liwości sterowania pracą komputera. Urządzenie wykorzystujące opracowane metody

sterowania może występować w dużej liczbie wariantów. Mowa tu nie tylko o wariancie bez-

przewodowym i przewodowym. Możliwe jest rozróżnienie urządzeń tego typu pod względem

jakości zastosowanych podzespołów, a tym samym precyzji, szybkości i obszaru zastosowania.

Możliwe jest wytwarzanie urządzeń od tanich i niekoniecznie ultra dokładnych dla przecięt-

nych użytkowników przez urządzenia dla osób niepełnosprawnych po bardzo precyzyjne,

bezprzewodowe i drogie urządzenia przeznaczone do sterowania pracą aparatury medycznej na

salach operacyjnych.

Podstawowym obszarem zastosowania opracowanego interfejsu jest zapewnienie komfor-

towej pracy z komputerem osobom niepełnosprawnym. Mowa o osobach niemogących

wykorzystać do pracy z komputerem rąk. Do sterowania komputerem poprzez opracowane me-

tody wymagane są jedynie niewielkie ruchy głowy i mrugnięcia oczu. Dlatego nawet osoby

o wysokim stopniu niepełnosprawności, np. sparaliżowane od szyi w dół, z pomocą opracowa-

nego interfejsu będą w stanie szybko i komfortowo korzystać z komputera niemal tak wydajnie

jak osoby pełnosprawne.

Należy mieć nadzieję, że przyczyni się to do polepszenia komfortu życia tych osób po-

przez umożliwienie im normalnej pracy z komputerem, a także do ich aktywizacji zawodowej.

Korzyści społeczne, wynikające z tego tytułu, mogą być bardzo duże.

Fakt, że sterowanie w opracowanej metodzie odbywa się bezdotykowo z zachowaniem

wysokiej precyzji, pozwala na wykorzystanie rozwiązania wszędzie tam, gdzie z jakichś powo-

dów niemożliwa jest ręczna obsługa urządzeń poprzez fizyczny kontakt. Pozwala to

135

wykorzystać opracowany interfejs w miejscach, gdzie konieczne jest zachowanie wysokiej ste-

rylności bądź obsługa jakiegoś urządzenia z powodu zagrożeń odbywa się zza ekranu

ochronnego. Jednym z przewidywanych obszarów zastosowania są zastosowania medyczne.

W szczególności na salach operacyjnych, gdzie zachowanie sterylności sprzyja zastosowaniu

sterowania bezdotykowego. Specyfika, opracowanego interfejsu, pozwala przenieść sterowanie

z rąk na ruchy głowy, co może być bardzo pomocne dla lekarzy prowadzących zabieg medycz-

ny. Mogliby oni sterować pracą aparatury medycznej na odległość, bezdotykowo, bez

konieczność wykorzystania rąk.

Jak już nadmieniono, opracowany interfejs umożliwia sterowanie pracą komputera, robota

czy dowolnego innego urządzenia zza ekranu ochronnego. Pozwala to na wykorzystanie go

podczas wykonywania niebezpiecznych badań naukowych oraz w przemyśle, gdzie występują

rożnego rodzaju zagrożenia. Konieczne jest jedynie, by ekran ochronny był chociaż częściowo

przezroczysty.

Opracowany interfejs komunikacyjny może być również wykorzystywany jako alternaty-

wa dla tradycyjnych urządzeń sterujących. Z powodzeniem może zastąpić mysz komputerową

oraz klawiaturę bądź stanowić ich uzupełnienie. Opracowane rozwiązanie przenosi sterowanie

na inny poziom niż w powszechnie stosowanych urządzeniach. Może więc znaleźć zastosowa-

nie zarówno w codziennej pracy z komputerem przez zwykłych użytkowników szukających

alternatywy jak i przez bardzo wymagających użytkowników, w tym graczy komputerowych,

dla których każda kolejna metoda sterowania jest bardzo cenna.

Kolejnym polem są zastosowania militarne i centra zarządzania kryzysowego. Tu również

przeniesienie sterowania bądź dodanie dodatkowego sterowania może być pomocne.

Opracowana metoda sterowania kursorem jest bardzo intuicyjna i wygodna dla człowieka

(kursor pojawia się na ekranie w miejscu, na które zwrócona jest twarz użytkownika). Umożli-

wia to jej wykorzystanie we wszystkich wyżej wymienionych zastosowaniach bez

długotrwałego procesu szkoleniowego.

136

Rozdział 9

Zakończenie

Niniejsza praca dotyczy badań związanych z interfejsem człowiek-komputer umożliwiają-

cym skuteczną i precyzyjną zmianę położenia kursora na ekranie poprzez niewielkie ruchy

głowy oraz wykonywanie poleceń systemowych poprzez mrugnięcia oczu. W rozdziale 2 zo-

stała postawiona teza oraz sformułowane zadania, których realizacja była potrzebna do

wykazania jej słuszności. Wszystkie zadania zostały pomyślnie zrealizowane i opisane.

Największym osiągnięciem autora jest opracowanie nowych metod sterowania pracą kom-

putera, a następnie zaprojektowanie i zbudowanie interfejsu człowiek-komputer realizującego

te metody. Powstałe urządzenie cechuje się wysoką skutecznością i precyzją. Ponadto jest roz-

wiązaniem innowacyjnym, dlatego stało się obiektem zgłoszenia patentowego [109].

Pierwszym z postawionych w pracy zadań było zbadanie możliwość szybkiej i precyzyjnej

zmiany położenia kursora na ekranie poprzez niewielkie ruchy głowy. Zasadnicza część rozwa-

żań nad tą metodą sterowania znajduje się w podrozdziale 4.1. W rozdziale 3 zaprezentowano

dane literaturowe dotyczące zakresu ruchów głowy i zbadano zakres zastosowania proponowa-

nego rozwiązania. W rozdziale 5 zbudowano model matematyczny, w którym wyprowadzono

wzory opisujące wpływ wykonywanych ruchów głowy na przesunięcie kursora.

Drugim zadaniem było zbadanie możliwości precyzyjnego identyfikowania mrugnięć

oczu. Opracowaną metodę polegającą na analizie stopnia rozproszenia światła odbitego od po-

wierzchni oka bądź powieki opisano w podrozdziale 4.2. Przeanalizowano tam również sposób

rejestracji obrazów oczu oraz opisano opracowany algorytm do ich analizy.

Trzecim zadaniem było opracowanie puli ergonomicznych gestów oczu wraz z metodą

przypisania do nich poleceń systemowych. Uzyskane wyniki przedstawiono w podrozdziale

4.2.3. Opracowana metoda nie wymaga od użytkownika wykonywania oczami skomplikowa-

nych gestów, jednocześnie zapewniając wystarczającą liczbę możliwych do wykonania zdarzeń

systemowych.

137

Czwartym zadaniem było zbadanie możliwości zbudowania urządzenia realizującego

opracowane metody sterowania. Realizacja tego zadania została opisana w podrozdziale 6.1.

Przeanalizowano i opisano tam możliwą formę urządzenia oraz określono parametry kamery

głównej i mikrokamer. Opracowano dwa warianty wykonania, oraz przedstawiono, jak może

wyglądać rozmieszczenie wszystkich podzespołów urządzenia dla tych wariantów.

Piątym zadaniem była budowa prototypu urządzenia. Opis realizacji tego zadania znajduje

się w podrozdziale 6.2. Wykorzystano wiedzą z podrozdziału 6.1, kamerę wysokiej rozdziel-

czości oraz dwie zmodyfikowane przez autora pracy mikrokamery. Powstało w ten sposób

urządzenie w wariancie przewodowym, realizujące opracowane metody sterowania.

Prototyp umożliwił realizację szóstego zadania, tj. przeprowadzenie eksperymentów celem

weryfikacji poprawności i skuteczności opracowanych metod sterowania. Najważniejsze

z przeprowadzonych eksperymentów, zostały opisane w rozdziale 7. Zbadano szybkość i pre-

cyzję zmiany położenia kursora na ekranie oraz skuteczność rozpoznawania stanu oka.

Dodatkowo przeprowadzono badania na grupie trzydziestu użytkowników.

Do najważniejszych osiągnięć, które według autora stanowią oryginalny wkład do dziedzi-

ny interakcja człowiek-komputer, można zaliczyć:

• Opracowanie, zbadanie i opisanie autorskiej metody zmiany położenia kursora na ekra-

nie poprzez niewielkie ruchy głowy. W tym, opracowanie dużej liczby kursorów,

podzielenie ich na cztery grupy oraz opracowanie dla każdej grupy metod przetwarza-

nia i rozpoznawania. Dodatkowo, opracowanie metody rejestracji kursora niezależnej

od zewnętrznych warunków oświetleniowych, opracowanie i zbadanie metod zmiany

położenia kursora na ekranie oraz zbadanie zjawisk wpływających na sterowanie

w opracowanej metodzie.

• Opracowanie, zbadanie i opisanie autorskiej metody generowania sygnałów sterujących

pracą komputera poprzez mrugnięcia oczu. W tym, opracowanie metody precyzyjnego

rozpoznawania mrugnięć, metody rejestracji obrazów oczu niewrażliwej na zewnętrzne

warunki oświetleniowe oraz metod skutecznej rejestracji nie mających wpływu na

ograniczenie pola widzenia użytkownika na wprost.

• Opracowanie puli ergonomicznych gestów oczu wraz z metodą przypisania do nich po-

leceń systemowych.

• Opracowanie w dwóch wariantach wykonania i opisanie nowatorskiego interfejsu wy-

korzystującego opracowane metody sterowania.

138

• Budowa prototypu opracowanego urządzenia uwzględniającego sprzęt jak i rozbudo-

wane oprogramowanie umożliwiające wykorzystanie i testowanie przewidzianej

funkcjonalności urządzenia jak również rozbudowę prototypu o dodatkowe funkcje.

• Opracowanie modelu matematycznego opisującego zależności występujące w opraco-

wanej metodzie sterowania poprzez ruchy głowy.

• Zebranie 10000 zdjęć oczu otwartych i zamkniętych oraz 250 sekwencji gestów wyko-

nanych oczami na potrzeby przeprowadzonych i przyszłych testów.

Teza postawiona w pracy zakłada, że: „Wykorzystanie ruchów głowy oraz mrugnięć oczu

pozwala na skuteczne sterowanie kursorem ekranu oraz generowanie sygnałów sterujących

pracą komputera w komunikacji człowiek-komputer”. W podrozdziale 4.1 przedstawiono wy-

niki badań nad metodą zmiany położenia kursora na ekranie poprzez niewielkie ruchy głowy.

W rozdziale 3, opierając się na wzorach wyprowadzonych w rozdziale 5, wykazano, że taka

metoda sterowania, nie wykracza poza możliwości ruchowe człowieka, a nawet pozwala na

efektywne sterowanie, przy minimalnym obciążeniu mięśni i więzadeł. W podrozdziale 4.2 za-

prezentowano wyniki badań nad metodą generowania sygnałów sterujących pracą komputera

na podstawie mrugnięć oczu. W rozdziale 6 pokazano, że jest możliwe zaprojektowanie i zbu-

dowanie urządzenia realizującego opracowane metody sterowania, a eksperymenty opisane

w rozdziale 7 potwierdziły wysoką skuteczność i precyzję opracowanych metod. Precyzja jaką

udało się uzyskać pozwala na umieszczenie kursora dokładnie na wskazanym przez użytkow-

nika pikselu w czasie nie przekraczającym 0,2 sekundy. Dodatkowo, opracowany interfejs

umożliwia wykonywanie zdarzeń systemowych zgodnie z intencją użytkownika poprzez ergo-

nomiczne gesty oczu.

W wyniku przeprowadzonych badań, w pełni potwierdzono, że możliwe jest szybkie i pre-

cyzyjne sterowanie kursorem ekranu przy wykorzystaniu niewielkich ruchów głowy oraz

efektywne generowanie sygnałów sterujących pracą komputera poprzez mrugnięcia oczu, co

było do wykazania w niniejszej rozprawie.

139

Bibliografia

[1] Richard Harper, Tom Rodden, Yvonne Rogers, Abigail Sellen. Being Human:Human-Computer Interaction in the year 2020. England: Microsoft Research Ltd.,2008.

[2] G. Riva, F. Vatalaro, F. Davide, M. Alcaniz. Ambient Intelligence, rozdział 1: NewTechnologies For Ambient Intelligence. IOS Press, 2005.

[3] Fakhreddine Karray, Milad Alemzadeh, Jamil Abou Saleh, Mo Nours Arab.Human-Computer Interaction: Overview on State of the Art. International Journal OnSmart Sensing And Intelligent Systems, 1.1:137-159, 2008.

[4] Jonathan Grudin. A Moving Target - The Evolution of Human-Computer Interaction.Human-Computer Interaction Handbook. Taylor & Francis, 2012.

[5] M.Tariq Malik. CS408 Human Computer Interaction. Virtual University of Pakistan,2014.

[6] Ivan E. Sutherland. Sketchpad, a man-machine graphical communication system.Massachusetts Institute of Technology, 1963.

[7] Gordon E. Moore. Cramming more components onto integrated circuits. Electronics,38.8, 1965.

[8] Claire Berger, Zhimin Song, Tianbo Li, Xuebin Li, Asmerom Y. Ogbazghi, Rui Feng,Zhenting Dai, Alexei N. Marchenkov, Edward H. Conrad, Phillip N. First, and Walt A.de Heer. Ultrathin epitaxial graphite: 2D electron gas properties and a route towardgraphene - based nanoelectronics. The Journal of Physical Chemistry B,108.52:19912-19916, 2004.

[9] K.S. Novoselov, A.K. Geim, S.V. Morozov, D. Jiang, Y. Zhang, S.V. Dubonos,I.V.Grigorieva, A.A. Firsov. Electric Field Effect in Atomically Thin Carbon Films.Science, 306.5696:666-669, 2004.

[10] Dhiren Parmar. Human Computer Interaction. School of Information Technology,2005.

[11] Robert J.K. Jacob. Human-Computer Interaction: Input Devices. ACM ComputingSurveys (CSUR), 28.1:177-179, 1996.

[12] Rachit Gupta. Human Computer Interaction - A Modern Overview. Int.J.ComputerTechnology & Applications, 3.5:1736-1740, 2012.

141

[13] Marcin Sikorski. Interakcja człowiek – komputer. PJWSTK, 2010.

[14] Jungong Han, Ling Shao, Dong Xu, Jamie Shotton. Enhanced Computer Vision withMicrosoft Kinect Sensor: A Review. IEEE Transactions On Cybernetics,43.5:1318-1334, 2013.

[15] Bo Hong, Yijun Wang, Xiaorong Gao, and Shangkai Gao. Quantitative EEG AnalysisMethods and Clinical Applications, rozdział 8: Quantitative EEG - BasedBrain-Computer Interface. Artech House, 2009.

[16] D. C. Engelbart, W. K. English,B. Huddart. Computer-aided display control Finalreport. NASA, 1965.

[17] Ronald Siegwart, Cédric Pradalier. History of Computer Pointing Input Devices. SwissFederal Institute of Technology Zurich, 2011.

[18] Input/Output Devices - Different ways to communicate. Poelman & Associates, 2005.

[19] Ken Hinckley, Robert J. K. Jacob, Colin Ware. Input/output devices and interactiontechniques. CRC Computer Science and Engineering Handbook, 2004.

[20] Carlos B. Mirick. Electrical Distant - Control System. United States Patent Office,1597416, 1926.

[21] International Business Machines Corporation. Force Sensitive Transducer for Use inA Computer Keyboard. Matthew F. Cali, Jerome J. Cuomo, Donald J. Mikalsen, JosephD. Rutledge, Edwin J. Selker. United States Patent Office, 5489900, 1996.

[22] Lexmark International, Inc. Analog Input Device Located in The Primary Typing Areaof A Keyboard. Edwin J. Selker, Joseph D. Rutledge. United States Patent Office,5521596, 1996.

[23] G. Drew Kessler and Larry F. Hodges. Evaluation of the CyberGlove™ as a WholeHand Input Device. ACM Transactions on Computer-Human Interaction (TOCHI),2.4:263-283, 1995.

[24] Qing Chen, Ayman El-Sawah, Chris Joslin, Nicolas D. Georganas. A Dynamic GestureInterface for Virtual Environments Based on Hidden Markov Models. Haptic AudioVisual Environments and their Applications, 2005. IEEE International Workshop on.IEEE, 2005.

[25] David Jack, Rares Boian, Alma S. Merians, Marilyn Tremaine, Grigore C. Burdea,Sergei V. Adamovich, Michael Recce, Howard Poizner. Virtual Reality - EnhancedStroke Rehabilitation. Neural Systems and Rehabilitation Engineering, IEEETransactions on. IEEE, 9.3:308-318, 2001.

[26] Masatake Sato, Vladimir Savchenko, Ryutarou Ohbuchi. 3D Freeform Design:Interactive Shape Deformations by the Use of CyberGlove. Cyberworlds, 2004International Conference on. IEEE, strony 147-154, 2014.

[27] Elena Sánchez-Nielsen, Luis Antón-Canalís, Mario Hernández-Tejera. Hand GestureRecognition for Human-Machine Interaction. Journal of WSCG, 12.1-3:395-402, 2004.

[28] J.Rekha, J.Bhattacharya and S.Majumder. Hand Gesture Recognition for SignLanguage: A New Hybrid Approach. Proceeding of International Conference onImage Processing, Computer Vision and Pattern Recognition, strony 80-86, 2011.

142

[29] Nasser H. Dardas, Mohammad Alhaj. Hand Gesture Interaction with a 3D VirtualEnvironment. The Research Bulletin of Jordan ACM - ISWSA, 11.111:86-94, 2011.

[30] Swapnil D. Badgujar, Gourab Talukdar, Omkar Gondhalekar, Mrs. S.Y. Kulkarni.Hand Gesture Recognition System. International Journal of Scientific and ResearchPublications, 4.2, 2014.

[31] Baoyun Zhang, Ruwei Yun, and Huaqing Qiu. Hand Gesture Recognition in NaturalState Based on Rotation Invariance and OpenCV Realization. Entertainment forEducation. Digital Techniques and Systems. Springer Berlin Heidelberg, strony486-496, 2010.

[32] Mohamed Alsheakhali, Ahmed Skaik, Mohammed Aldahdouh, Mahmoud Alhelou.Hand Gesture Recognition System. International Conference on Information andCommunication Systems, 2011.

[33] X. Zabulis, H. Baltzakis, A. Argyrosz. Vision-based Hand Gesture Recognition forHuman-Computer Interaction. The Universal Access Handbook. LEA, 2009.

[34] Vladimir Vezhnevets, Vassili Sazonov, Alla Andreeva. A Survey on Pixel-Based SkinColor Detection Techniques. Proc. Graphicon, 3:85-92, 2003.

[35] W. S. Mokrzycki, M. Tatol. Colour difference ΔE - A survey. Machine graphics &vision, 20.4: 383-411, 2011.

[36] Qing Chen, François Malric, Yi Zhang, Muhammad Abid, Albino Cordeiro, Emil M.Petriu, Nicolas D. Georganas. Interacting with Digital Signage Using Hand Gestures.Image Analysis and Recognition. Springer Berlin Heidelberg, strony 347-358, 2009.

[37] Hervé Lahamy, Derek Litchi. Real-time hand gesture recognition using range cameras.Canadian Geomatics Conference, 2010.

[38] Pia Breuer, Christian Eckes, Stefan Müller. Hand gesture recognition with a novel IRtime-of-flight range camera - a pilot study. Computer Vision/Computer GraphicsCollaboration Techniques. Springer Berlin Heidelberg, strony 247-260, 2007.

[39] Zhou Ren, Jingjing Meng, Junsong Yuan, Zhengyou Zhang. Robust hand gesture recognition with kinect sensor. Proceedings of the 19th ACM international conference on Multimedia. ACM, strony 759-760, 2011.

[40] Marcin Moranski, Andrzej Materka. Depth sensing with time-of-flight and stereovision- preliminary experiments. Signal Processing Algorithms, Architectures,Arrangements, and Applications Conference Proceedings (SPA). IEEE, strony 57-61,2009.

[41] Nguyen Dang Binh, Enokida Shuichi, Toshiaki Ejima. Real-Time Hand Tracking andGesture Recognition System. Proc. GVIP, strony 19-21, 2005.

[42] Joyeeta Singha, Karen Das. Hand Gesture Recognition Based on Karhunen-LoeveTransform. arXiv preprint arXiv:1306.2599, 2013.

[43] Pengfei Lu, Matt Huenerfauth. Accessible Motion-Capture Glove Calibration Protocolfor Recording Sign Language Data from Deaf Subjects. Proceedings of the 11thinternational ACM SIGACCESS conference on Computers and accessibility. ACM,strony 83-90, 2009.

143

[44] Mohamed A. Mohandes. Recognition of Two-handed Arabic Signs using theCyberGlove. ADVCOMP 2010, The Fourth International Conference on AdvancedEngineering Computing and Applications in Sciences, strony 124-129, 2010.

[45] R. Rak, M. Kołodziej, A. Majkowski. Brain-computer interface as measurement andcontrol system the review paper. Metrology and Measurement Systems,XIX.3:427-444, 2012.

[46] Jesse Sherwood, Reza Derakhshani. On Classifiability of Wavelet Features forEEG-Based Brain-computer Interfaces. Neural Networks, 2009. IJCNN 2009.International Joint Conference on. IEEE, strony 2895-2902, 2009.

[47] Christoph Guger, Alois Schlögl, Christa Neuper, Dirk Walterspacher, Thomas Strein,Gert Pfurtscheller. Rapid Prototyping of an EEG-Based Brain-Computer Interface(BCI). Neural Systems and Rehabilitation Engineering, IEEE Transactions on. IEEE,9.1:49-58, 2001.

[48] DengWang, Duoqian Miao, Gunnar Blohm. Multi-class motor imagery EEG decodingfor brain-computer interfaces. Frontiers in neuroscience, 6, 2012.

[49] Kyuwan Choi. Electroencephalography (EEG)-based neurofeedback training forbrain-computer interface (BCI). Experimental brain research, 231.3:351-365, 2013.

[50] W. L.Woon, A. Cichocki. Novel Features for Brain-Computer Interfaces.Computational Intelligence and Neuroscience, vol. 2007, nr artykułu 82827, 2007.

[51] Febo Cincottia, Donatella Mattiaa, Fabio Aloisea, Simona Bufalaria, Laura Astolfia,Fabrizio De Vico Fallania, Andrea Toccia, Luigi Bianchia, Maria Grazia Marciania,Shangkai Gaof, Jose Millang, Fabio Babilonia. High-resolution EEG techniques forbrain-computer interface applications. Journal of neuroscience methods, 167.1:31-42,2008.

[52] Thilo Hinterberger, Gerold Baier, Jürgen Mellinger, Niels Birbaumer. AuditoryFeedback of Human EEG for Direct Brain-Computer Communication. ICAD, 2004.

[53] Felix Lee, Reinhold Scherer, Robert Leeb, Christa Neuper, Horst Bischof, GertPfurtscheller. A Comparative Analysis of Multi-Class EEG Classification for BrainComputer Interface. Proceedings of the 10th Computer Vision Winter Workshop, strony195-204, 2005.

[54] Jaime F. Delgado Saa, Miguel Sotaquirá Gutierrez. EEG Signal Classification UsingPower Spectral Features and Linear Discriminant Analysis: A Brain ComputerInterface Application. Eighth Latin American and Caribbean Conference forEngineering and Technology, 2010.

[55] Virgílio Bento, Luís Paula, António Ferreira, Nuno Figueiredo, Ana Tomé, Filipe Silva,Joao Paulo, Cunha, Pétia Georgieva. Advances in EEG-based Brain-ComputerInterfaces for Control and Biometry. International Symposium on ComputationalIntelligence for Engineering Systems, 2009.

[56] Kirti A. Joshi, Dr. Narendra Bawane. EEG Feature Extraction Using WaveletTechniques For Brain Computer Interface. International Journal of EngineeringResearch and Applications (IJERA), strony 54-59, 2011.

144

[57] Tomasz M. Rutkowskia, Toshihisa Tanakab, Andrzej Cichockia, Donna Ericksonc,Jianting Caod, Danilo P. Mandice. Interactive component extraction from fEEG,fNIRS and peripheral biosignals for affective brain-machine interfacing paradigms.Computers in Human Behavior, 27.5:1512-1518, 2011.

[58] Robert Leeb, Doron Friedman, Gernot R. Müller-Putz, Reinhold Scherer, Mel Slater,Gert Pfurtscheller. Self-Paced (Asynchronous) BCI Control of a Wheelchair in VirtualEnvironments: A Case Study with a Tetraplegic. Computational Intelligence andNeuroscience, vol. 2007, nr artykułu 79642, 2007.

[59] Vijay Khare, Jayashree Santhosh, Sneh Anand, Manvir Bhatia. Brain ComputerInterface Based Real Time Control of Wheelchair Using Electroencephalogram.International Journal of Soft Computing and Engineering (IJSCE), 1.5:41-45, 2011.

[60] Chin-Teng Lin, Fu-Chang Lin, Shi-An Chen, Shao-Wei Lu, Te-Chi Chen, Li-Wei Ko.EEG-based Brain-computer Interface for Smart Living EnvironmentalAuto-adjustment. Journal of Medical and Biological Engineering, 30.4:237-245, 2010.

[61] Yu-Te Wang, Yijun Wang, Tzyy-Ping Jung. A Cell-Phone Based Brain-ComputerInterface for Communication in Daily Life. Artificial Intelligence and ComputationalIntelligence, strony 233-240, 2010.

[62] Mohammad H. Alomari, Ayman AbuBaker, Aiman Turani, Ali M. Baniyounes, AdnanManasreh. EEG Mouse: A Machine Learning-Based Brain Computer Interface.International Journal of Advanced Computer Science and Applications, 5.4, 2014.

[63] Rina R. Wehbe, Lennart Nacke. An Introduction to EEG Analysis Techniques andBrain-Computer Interfaces for Games User Researchers. DiGRA 2013 - DeFraggingGame Studies. DiGRA, 2013.

[64] Xing Song, S. Q. Xie, K. C. Aw. EEG-Based Brain Computer Interface for GameControl. International Conference on Affective Computing and Intelligent Interaction,10:47-54, 2012.

[65] Marina von Steinkirch. Introduction to the Microsoft Kinect for ComputationalPhotography and Vision. State University of New York at Stony Brook, 2013.

[66] Tommer Leyvand, Casey Meekhof, Yi-Chen Wei, Jian Sun, Baining Guo. KinectIdentity: Technology and Experience. Computer, 44.4:94-96, 2011.

[67] Heng Du, TszHang To. Hand Gesture Recognition Using Kinect. Boston University,Department of Electrical and Computer Engineering, 2011.

[68] Dongheng Li, Derrick J. Parkhurst. Starburst: A hybrid algorithm for video-based eyetracking combining feature-based and model-based approaches. Computer Vision andPattern Recognition - Workshops, 2005. CVPR Workshops. IEEE Computer SocietyConference on. IEEE, strona 79, 2005.

[69] Manu Kumar. Reducing the Cost of Eye Tracking Systems. Building, 4. Citeseer, 2006.

[70] Subramanya Amarnag, Raghunandan S. Kumaran, John N. Gowdy. Real Time EyeTracking For Human Computer Interfaces. Multimedia and Expo, 2003. ICME '03.Proceedings. 2003 International Conference on. IEEE, 3:III-557-60, 2003.

[71] Eyal M. Reingold. Eye tracking research and technology: Towards objectivemeasurement of data quality. Visual cognition, 22.3:635-652, 2014.

145

[72] Alex Poole, Linden J. Ball. Eye Tracking in Human-Computer Interaction andUsability Research: Current Status and Future Prospects. Encyclopedia of HumanComputer Interaction. Idea Group, 2005.

[73] Guillaume Boulay. Eye Pose Tracking & Gaze Estimation. Institut National desSciences Appliquées de Lyon, France. Département Télécommunications - Services& Usages, 2008.

[74] Yash S. Desai. Driver’s alertness detection for based on eye blink duration via EOG& EEG. International Journal, 2012.

[75] Yijia Sun, Stefanos Zafeiriou, Maja Pantic. A Hybrid System for On-line BlinkDetection. Forty-Sixth Annual Hawaii International Conference on System Sciences,2013.

[76] Dhaval Pimplaskar, Dr. M.S. Nagmode, Atul Borkar. Real Time Eye BlinkingDetection and Tracking Using Opencv. Dhaval Pimplaskar et al Int. Journal ofEngineering Research and Applications, 3.5:1780-1787, 2013.

[77] Shashidhar M. Sugur, Vidyagouri B. Hemadri, Dr. U.P.Kulkarni. Eye Blink DetectionBased on Shape Measurement. ASM's International E-Journal of Ongoing Research inManagement And IT, 2013.

[78] Michael Chau, Margrit Betke. Real Time Eye Tracking and Blink Detection with USBCameras. Boston University Computer Science Department, 2005.

[79] Ilkwon Park, Jung-Ho Ahn, and Hyeran Byun. Efficient Measurement of the EyeBlinking by Using Decision Function for Intelligent Vehicles. ComputationalScience-ICCS 2007. Springer Berlin Heidelberg, strony 546-549, 2007.

[80] Aleksandra Królak, Paweł Strumiłło. Eye-blink detection system for human-computerinteraction. Universal Access in the Information Society, 11.4:409-419, 2012.

[81] Marco La Cascia, John Isidoro, Stan Sclaroff. Head tracking via robust registration intexture map images. Computer Vision and Pattern Recognition, 1998. Proceedings.1998 IEEE Computer Society Conference on. IEEE, strony 508-514, 1998.

[82] Sumit Basu, Irfan Essa, Alex Pentland. Motion regularization for model-based headtracking. Pattern Recognition, 1996, Proceedings of the 13th International Conferenceon. IEEE, 3:611-616, 1996.

[83] A. Hogue, M. Robinson, M. R. Jenkin, R. S. Allison. A vision-based head trackingsystem for fully immersive displays. Proceedings of the workshop on Virtualenvironments 2003. ACM, strony 179-187, 2003.

[84] Robert S. Allison, Moshe Eizenman, Bob S. K. Cheung. Combinedl Head and EyeTracking System for Dynamic Testing of the Vestibular System. BiomedicalEngineering, IEEE Transactions on. IEEE, 43.11:1073-1082, 1996.

[85] Kun Liu, Yupin Luo, Gyomei Tei, Shiyuan Yang. Attention recognition of driversbased on head pose estimation. Vehicle Power and Propulsion Conference, 2008.VPPC '08. IEEE, strony 1-5, 2008.

[86] E. Murphy-Chutorian, M.M. Trivedi. Head pose estimation and augmented realitytracking: An integrated system and evaluation for monitoring driver awareness.Intelligent Transportation Systems, IEEE Transactions on. IEEE, 11.2:300-311, 2010.

146

[87] D. J. Kupetz, S. A. Wentzell, B. F. BuSha. Head motion controlled power wheelchair.Bioengineering Conference, Proceedings of the 2010 IEEE 36th Annual Northeast.IEEE, strony 1-2, 2010.

[88] Y. Song, Y. Luo, J. Lin. Detection of movements of head and mouth to providecomputer access for disabled. Technologies and Applications of Artificial Intelligence(TAAI), 2011 International Conference on, strony 223-226, 2011.

[89] B. Mandal, H-L. Eng, H. Lu, D.W.S. Chan, Y-L. Ng. Non-intrusive Head MovementAnalysis of Videotaped Seizures of Epileptic Origin. Engineering in Medicine andBiology Society (EMBC), 2012 Annual International Conference of the IEEE. IEEE,strony 6060-6063, 2012.

[90] L. Jian-Zheng, Z. Zheng. Head movement recognition based on LK algorithm andGentleboost. Networked Computing and Advanced Information Management (NCM),2011 7th International Conference on. IEEE, strony 232-236, 2011.

[91] Z. Zhao, Y. Wang, S. Fu. Head movement recognition based on Lucas-Kanadealgorithm. Computer Science & Service System (CSSS), 2012 International Conferenceon. IEEE, strony 2303-2306, 2012.

[92] Y. Zhao, H. Yan. Head orientation estimation using neural network. Computer Scienceand Network Technology (ICCSNT), 2011 International Conference on. IEEE, 3:2075-2078, 2011.

[93] A. Kapoor, R.W. Picard. A Real-Time Head Nod and Shake Detector. Proceedings ofthe 2001 workshop on Perceptive user interfaces. ACM, strony 1-5, 2001.

[94] F. Moreno, A. Tarrida, J. Andrade-Cetto, A. Sanfeliu. 3D real-time head tracking fusingcolor histograms and stereovision. Pattern Recognition, 2002. Proceedings. 16thInternational Conference on. IEEE, 1:368-371, 2002.

[95] C. Rougier, J. Meunier, A. St-Arnaud, J. Rousseau. 3D head tracking for fall detectionusing a single calibrated camera. Image and Vision Computing, 31.3:246-254, 2013.

[96] S. Manogna, S. Vaishnavi, B. Geethanjali. Head movement based assist system forphysically challenged. Bioinformatics and Biomedical Engineering (iCBBE), 2010 4thInternational Conference on. IEEE, strony 1-4, 2010.

[97] L.M. King, H.T. Nguyen, P.B. Taylor. Hands-free head-movement gesture recognitionusing artificial neural networks and the magnified gradient function. Engineering inMedicine and Biology Society, 2005. IEEE-EMBS 2005. 27th Annual InternationalConference of the. IEEE, strony 2063-2066, 2006.

[98] S.T. Nguyen, H.T. Nguyen, P.B. Taylor, J. Middleton. Improved head directioncommand classification using an optimized Bayesian neural network. Engineering inMedicine and Biology Society, 2006. EMBS'06. 28th Annual International Conferenceof the IEEE. IEEE, strony 5679-5682, 2006.

[99] S. Kim, M. Park, S. Anumas, J. Yoo. Head mouse system based on gyro- and opto-sensors. Biomedical Engineering and Informatics (BMEI), 2010 3rd InternationalConference on. IEEE, 4:1503-1506, 2010.

147

[100] A. Sasou. Acoustic head orientation estimation applied to powered wheelchair control.Robot Communication and Coordination, 2009. ROBOCOMM'09. SecondInternational Conference on. IEEE, strony 1-6, 2009.

[101] K. Satoh, S. Uchiyama, H. Yamamoto. A head tracking method using bird's-eye viewcamera and gyroscope. Proceedings of the 3rd IEEE/ACM International Symposiumon Mixed and Augmented Reality. IEEE Computer Society, strony 202-211, 2004.

[102] J. Kim, D. Lee, C.G. Park, H. Bang, J. Kim, S. Cho, Y. Kim, K. Baek. Construction ofintegrated simulator for developing head/eye tracking system. Control, Automationand Systems, 2008. ICCAS 2008. International Conference on. IEEE, strony 2485-2488, 2008.

[103] M. Iwata, Y. Ebisawa. PupilMouse supported by head pose detection. VirtualEnvironments, Human-Computer Interfaces and Measurement Systems, 2008.VECIMS 2008. IEEE Conference on. IEEE, strony 178-183, 2008.

[104] E. Perez, N. López, E. Orosco, C. Soria, V. Mut, T. Freire-Bastos. Robust HumanMachine Interface Based on Head Movements Applied to Assistive Robotics. TheScientific World Journal, 2013.

[105] A. Al-Rahayfeh, M. Faezipour. Eye Tracking and Head Movement Detection: A State-of-Art Survey. Translational Engineering in Health and Medicine, IEEE Journal of,1:2100212, 2013.

[106] H. Singh, J. Singh. Human Eye Tracking and Related Issues: A Review. InternationalJournal of Scientific and Research Publications, 2.9:1-9, 2012.

[107] P. Strumiłło, T. Pajor. A Vision-Based Head Movement Tracking System for Human-Computer Interfacing. Proc. New Trends in Audio & Video and Signal Processing:Algorithms, Architectures, Arrangements, and Applications (NTAV/SPA), 2012 JointConference. IEEE, strony 143-147, 2012.

[108] P. Bratoszewski, A. Czyżewski. Śledzenie głowy użytkownika komputera z użyciemkamery Time of Flight. Zeszyty Naukowe Wydziału Elektrotechniki i AutomatykiPolitechniki Gdańskiej, 36:35-38, 2013.

[109] Politechnika Warszawska. Urządzenie do sterowania komputera. Piotr Kowalczyk,Dariusz Sawicki. Urząd Patentowy RP, P-402798, 2013.

[110] Biomechanika Odcinka Szyjnego Kręgosłupa. Centrum Rehabilitacji Ruchowej,Olsztyńska Szkoła Wyższa, 2011.

[111] James W Youdas, Tom R Garrett, Vera J Suman, Connie L Bogard, Horace O Hallman,James R Carey. Normal Range of Motion of the Cervical Spine: An Initial GoniometricStudy. Physical Therapy, 72.11:770-780, 1992.

[112] James W Youdas, James R Carey, Tom R Garrett. Reliability of Measurements ofCervical Spine Range of Motion - Comparison of Three Methods. Physical Therapy,71.2:98-104, 1991.

[113] Per Sjölandera, Peter Michaelsonb, Slobodan Jaricb, Mats Djupsjöbackab.Sensorimotor disturbances in chronic neck pain - Range of motion, peak velocity,smoothness of movement, and repositioning acuity. Manual Therapy, 13.2:122-131,2008.

148

[114] Edmund LoPresti, David M. Brienza, Jennifer Angelo, Lars Gilbertson, JonathanSakai. Neck range of motion and use of computer head controls. Proceedings of thefourth international ACM conference on Assistive technologies. ACM, strony 121-128,2000.

[115] Karen French, Jane Veys. In the blink of an eye. Optometry Today, 47.18:40-43, 2007.

[116] P. Aditya Ratna Chowdary, Dr N.S. Murty Sarma, Mr K. Raja Sekhar, Mr V. DhanaRaj. An Interface of Human and Machine with Eye Blinking. IJRCCT, 1.7:429-435,2012.

[117] Laura C. Trutoiu, Elizabeth J. Carter, Iain Matthews, Jessica K. Hodgins. Modelingand Animating Eye Blinks. ACM Transactions on Applied Perception, 2.3, 2011.

[118] Agnieszka Wolska. Promieniowanie optyczne w środowisku pracy. Centralny InstytutOchrony Pracy - Państwowy Instytut Badawczy, 2013.

[119] Mitsuhiro Koden, Wide Viewing Angle Technologies of TFT-LCDs. Sharp TechnicalJournal, strony 55-60, 1999.

[120] Raziel Alvarez, Erik Millan, Alejandro Aceves-Lopez, Ricardo Swain-Oropeza.Mobile Robots: Perception & Navigation, rozdział 8: Accurate Color Classificationand Segmentation for Mobile Robots. INTECH, 2007.

[121] Petr Kobalicek, Michal Bliznak. Optimized RGB To HSV Color Conversion UsingSSE Technology. Annals of DAAAM & Proceedings, 22.1, 2011.

[122] Marcin Iwanowski. Metody morfologiczne w przetwarzaniu obrazów cyfrowych. EXIT,2009.

[123] Lawrence O’Gorman, Rangachar Kasturi. Document Image Analysis. Los Alamitos,CA: IEEE Computer Society Press, 1995.

[124] Machine Vision Introduction. SICK IVP, 2006. Version 2.2.

[125] Bui Tuong Phong. Illumination for Computer Generated Pictures. Communications ofthe ACM, 18.6:311-317, 1975.

[126] Daryl Martin. A Practical Guide to Machine Vision Lighting. Midwest Sales andSupport Manager, Advanced illumination, 2007.

149