View
228
Download
2
Category
Preview:
Citation preview
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
Recommended