wzor IVKKTI - Politechnika Gdańska

Transkrypt

wzor IVKKTI - Politechnika Gdańska
ZESZYTY NAUKOWE WYDZIAŁU ETI POLITECHNIKI GDAŃSKIEJ
Nr 9
Seria: Wytwarzanie Gier Komputerowych
2011
Michał Lech, Bożena Kostek, Andrzej Czyżewski
Politechnika Gdańska, Katedra Systemów Multimedialnych
ROZPOZNAWANIE DYNAMICZNYCH I STATYCZNYCH
GESTÓW RĄK W ZASTOSOWANIU DO STEROWANIA
APLIKACJAMI KOMPUTEROWYMI
Streszczenie
W referacie przedstawiono interfejs, metody oraz algorytmy sterowania komputerem za pomocą
dynamicznych i statycznych gestów rąk. Komponentami opracowanego rozwiązania są komputer
klasy PC wraz z opracowanym interfejsem i oprogramowaniem, kamera internetowa oraz projektor
multimedialny. Gesty rozpoznawane są w procesie analizy obrazu wizyjnego pozyskanego z kamery
internetowej przymocowanej do projektora oraz analizy obrazu wyświetlanego przez projektor
(pozyskanego z komputera). Do rozpoznawania gestów dynamicznych zastosowano modelowanie
trajektorii ruchu rąk za pomocą reguł logiki rozmytej. Gesty statyczne rozpoznawane są za pomocą
maszyn wektorów nośnych (SVM). W referacie przedstawiono wyniki badania wydajności
opracowanego systemu. We wnioskach przedstawiono również plany dotyczące rozbudowy systemu
o algorytmy umożliwiające pracę z kamerą umieszczoną przed użytkownikiem.
1. WPROWADZENIE
Gry komputerowe są dziedziną, w której można zaobserwować dużą różnorodność
interfejsów umożliwiających interakcję człowieka z komputerem (HCI). Od roku 1972,
kiedy firma Atari zaprezentowała jeden z pierwszych masowo produkowanych automatów
do gry Pong, obsługiwany za pomocą pokręteł sterujących (ang. paddle), powstało szereg
interfejsów zwiększających stopień zanurzenia użytkownika w wirtualnej rzeczywistości.
W chronologicznym porządku wymienić można dżojstiki, pady, pistolety świetlne, pedały i
kierownice z dźwigniami zmiany biegów w grach wyścigowych oraz kontrolery
wyposażone w akcelerometry i kamerę pracującą w paśmie podczerwieni [1, 2].
Szczególnie innowacyjnym przykładem interfejsu, mogącym znaleźć zastosowanie w
obsłudze gier komputerowych, jest kask przechwytujący potencjały elektryczne mózgu [3].
Rozwiązanie firmy Emotiv oferowane jest wraz z grą komputerową, w której za pomocą
myśli możliwe jest przesuwanie obiektów [4]. Obecnie wiele uwagi poświęca się tworzeniu
interfejsów, których podstawą działania jest przetwarzanie obrazu pozyskanego z kamery
rejestrującej ruchy użytkownika. Zaletami rozwiązań tego typu są uniwersalność oraz
zapewnienie bezdotykowej interakcji. Obiektami sterującymi w interfejsach
2
Michał Lech, Bożena Kostek, Andrzej Czyżewski
wykorzystujących kamerę nie muszą być jedynie ręce użytkownika. Znane jest
rozwiązanie, które umożliwia sterowanie aplikacjami komputerowymi za pomocą ust
formowanych w różne kształty [5]. Interfejsem, który obecnie cieszy się dużą
popularnością jest rozwiązanie firmy Microsoft o nazwie Kinect [6]. Zasada działania
systemu polega na analizie relacji pomiędzy punktami wyświetlanymi za pomocą diod
podczerwieni znajdujących się przed użytkownikiem.
W referacie przedstawiono opracowany interfejs sterowania aplikacjami
komputerowymi za pomocą gestów rąk. Rozwiązanie to nie wykorzystuje diod
podczerwieni. Dodatkowo, w przeciwieństwie do większości podobnych rozwiązań,
kamera znajduje się za użytkownikiem.
2. INTERFEJS STEROWANIA KOMPUTEREM ZA POMOCĄ
GESTÓW RĄK
Przedstawiony w referacie system składa się z komputera klasy PC, kamery
internetowej, projektora multimedialnego i ekranu dla obrazu z projektora (rys. 1).
Projektor podwieszony jest pod sufitem z kamerą przymocowaną bezpośrednio do niego.
Obiektyw kamery skierowany jest na ekran i ustawiony w ten sposób, aby wyświetlany
przez projektor obraz był możliwie największych rozmiarów w pozyskiwanym strumieniu
wizyjnym i był w nim zawarty w całości. Użytkownik systemu znajduje się pomiędzy
projektorem a ekranem.
Rys. 1. Komponenty systemu i lokalizacja użytkownika
Zasada działania interfejsu opiera się na odejmowaniu obrazu pozyskanego z kamery
od obrazu wyświetlanego przez projektor. Gesty rozpoznawane są w przetworzonym
obrazie będącym wynikiem tej operacji. Algorytmy przetwarzania obrazu przedstawiono
we wcześniejszej publikacji, dlatego nie zostaną dokładniej przywołane [7]. Interfejs
zapewnia rozpoznawanie gestów dynamicznych, bazujących na ruchu rąk, i statycznych,
polegających na formowaniu dłoni w określony kształt. Oba typy gestów są ze sobą
powiązane. Ten sam gest dynamiczny, w zależności od tego, z jakim gestem statycznym
jest wykonany, może wywołać inną akcję. Dodatkowo, wykonanie określonych gestów
dynamicznych w odpowiedniej kolejności interpretowane jest jako gest złożony, z którym
Rozpoznawanie dynamicznych i statycznych gestów rąk w zastosowaniu do sterowania…
3
również związana jest akcja systemowa. Zbiór predefiniowanych gestów przedstawiono w
tabeli 2.1. Gesty dynamiczne przedstawiono za pomocą strzałek określających trajektorie
ruchu. Kolejność ruchów należy rozpatrywać od lewej do prawej, z góry na dół. Gesty obu
rąk zaznaczono podwójnymi strzałkami.
Tablica 2.1
Zbiór predefiniowanych gestów







3. METODA ROZPOZNAWANIA GESTÓW DYNAMICZNYCH
Gesty dynamiczne rozpoznawane są w oparciu o metody logiki rozmytej. Trajektorie
ruchu rąk zamodelowano za pomocą 30 reguł rozmytych opisujących relacje pomiędzy
kolejnymi wektorami ruchu. Pojedynczy wektor ruchu tworzony jest w oparciu o punkty
stanowiące pozycje rąk określone dla ramki obrazu o numerze n i ramki o numerze n + 3.
Optymalny interwał pomiędzy kluczowymi ramkami, wynoszący dwie ramki, został
dobrany w sposób empiryczny w oparciu o analizę wyników skuteczności detekcji dla
sekwencji 20 strumieni wizyjnych zawierających gesty dynamiczne wykonywane przez 20
osób. Użytkownik może zmieniać wartość interwału korzystając z interfejsu graficznego i
w ten sposób dostosowywać przetwarzanie danych do prędkości, z jaką wykonuje gesty.
Sposób wyznaczania pozycji ręki zależny jest od fragmentu obrazu, jaki ona zajmuje. Jeśli
ręka znajduje się w lewej połowie kadru, za pozycję przyjmuje się prawy górny róg
prostokątnego obszaru, w który wpisuje się dłoń. Dla prawej połowy kadru pozycja ręki
tożsama jest z lewym górnym rogiem tego obszaru. Przedstawiony sposób wyznaczania
pozycji ręki w obrazie zastosowany był w celu zapewnienia skutecznej detekcji gestów
zarówno jednej, jak i obu rąk. Jako zmienne lingwistyczne opisujące wektor ruchu wybrano
prędkość i kierunek. Trajektorie ruchu analizowano w kartezjańskim układzie
współrzędnych (rys. 2).
Michał Lech, Bożena Kostek, Andrzej Czyżewski
4
y’
y

u 21

u 10
a21
(x2, y2)

u32
(x3, y3)
x’
(x1, y1)
a10

u43
(x0, y0)
północ
(x4, y4)
x
wschód
wschód
Rys. 2. Wektory ruchu opisane na trajektorii ruchu ręki w prawo, z wyszczególnieniem początkowej
fazy ruchu
Prędkość vij wyznaczono zgodnie ze wzorem (3.1). Kierunek wyrażono poprzez kąt
αij pomiędzy wektorem ruchu a wersorem osi y, zgodnie ze wzorem (3.2).
2
ij 
gdzie: j
xi
xj
yi
yj
=
–
–
–
–
x  x  y  y 
 i
  i

j
j


2
t t
i
j
(3.1)
i˗1
pozycja x ręki w obrazie w chwili ti
pozycja x ręki w obrazie w chwili tj
pozycja y ręki w obrazie w chwili ti
pozycja y ręki w obrazie w chwili tj
ij


u
 180  arc cos y




u


ij
ij
,u  0 


x

a ij  

ij
u


y


180  arc cos



u
ij
360 

ij
, u  0

x


(3.2)
Rozpoznawanie dynamicznych i statycznych gestów rąk w zastosowaniu do sterowania…
gdzie: aij –

u ij –
uyij –
uxij –
5
kąt pomiędzy wektorem uij a wersorem osi y
wektor ruchu skonstruowany w oparciu o punkty w chwili ti i ti-1
współrzędna y wektora skonstruowanego w oparciu o punkty w chwili ti i ti-1
współrzędna x wektora skonstruowanego w oparciu o punkty w chwili ti i ti-1
Zdefiniowano 4 zbiory rozmyte dla wartości prędkości i 4 zbiory rozmyte dla kątów
określających kierunek (rys. 3).
Rys. 3. Zbiory rozmyte dla zmiennych lingwistycznych: prędkość i kierunek
Dla wszystkich zbiorów przyjęto trójkątne funkcje przynależności. Zbiory wynikowe
każdej reguły, reprezentujące klasy gestów, przyjęły postać singletonów, zgodnie z
modelem Takagi-Sugeno zerowego rzędu. Wartością wynikową systemu wnioskowania
była odpowiedź reguły, dla której wartość wynikowej funkcji przynależności była
maksymalna. Dodatkowo, wprowadzono próg o wartości 0,5, poniżej którego aktywność
ruchowa nie była kojarzona z żadnym z gestów. W ten sposób rozwiązano problem
klasyfikowania ruchów przejściowych pomiędzy kolejnymi gestami jako gest.
W celu uwzględnienia naturalności motoryki ludzkich gestów, reguły rozmyte zostały
zdefiniowane w oparciu o wspomnianą sekwencję 20 strumieni wizyjnych zawierających
zarejestrowane ruchy. Zauważono, że pełen ruch ręką, przykładowo, z lewej do prawej
strony kadru, wykonywany jest po okręgu. Po przedstawieniu takiego ruchu w postaci
trajektorii opisanej wektorami (rys. 2), wyróżnić można trzy kierunki, dla których wartości
funkcji przynależności należą w największym stopniu do zbiorów rozmytych oznaczonych
kolejno jako: północ, wschód, południe. Z tego względu przemieszczenie ręki w prawo
zostało zamodelowane za pomocą 3 reguł rozmytych uwzględniających kolejne fazy ruchu,
zgodnie z przykładem przedstawionym poniżej. Reguły rozmyte wyrażono w języku FCL
(ang. Fuzzy Control Language). Dodatkowo, jako przykład zamodelowania gestu obu rąk,
zawarto regułę reprezentującą aktywność ruchową polegającą na oddaleniu wyciągniętych
przed siebie rąk, jedna od drugiej.
// początkowa faza ruchu lewej ręki w prawo
RULE 8 : IF directionLt0 IS North AND directionLt1 IS East
AND velocityLt0 IS NOT small AND velocityLt1 IS NOT small
AND velocityRt0 IS vsmall AND velocityRt1 IS vsmall
THEN gesture IS g2;
// środkowa faza ruchu lewej ręki w prawo
RULE 9 : IF directionLt0 IS East AND directionLt1 IS East
AND velocityLt0 IS NOT small AND velocityLt1 IS NOT small
AND velocityRt0 IS vsmall AND velocityRt1 IS vsmall
THEN gesture IS g2;
6
Michał Lech, Bożena Kostek, Andrzej Czyżewski
// końcowa faza ruchu lewej ręki w prawo
RULE 10 : IF directionLt0 IS East AND directionLt1 IS South
AND velocityLt0 IS NOT small AND velocityLt1 IS NOT small
AND velocityRt0 IS vsmall AND velocityRt1 IS vsmall
THEN gesture IS g2;
// oddalenie rąk, jedna od drugiej
RULE 26 : IF directionLt0 IS West AND directionLt1 IS West
AND directionRt0 IS East AND directionRt1 IS East
AND velocityLt0 IS NOT vsmall AND velocityLt1 IS NOT vsmall
AND velocityRt0 IS NOT vsmall AND velocityRt1 IS NOT vsmall
THEN gesture IS g6;
Część systemu odpowiedzialną za rozpoznawanie gestów dynamicznych stworzono w
oparciu o platformę Java SE. Metody logiki rozmytej zaimplementowano wykorzystując
bibliotekę jFuzzyLogic.
Wyniki testów skuteczności rozpoznawania wybranych gestów dynamicznych
zamieszczono we wcześniejszej publikacji autorów [7], dlatego w niniejszym referacie
ograniczono się jedynie do podania uśrednionych globalnych wartości. Testy
przeprowadzono w formie analizy porównawczej detekcji gestów opartej na logice
rozmytej i bez jej zastosowania. Skuteczność detekcji wykorzystującej logikę rozmytą
wyniosła 98%. Dla algorytmów wykorzystujących stałe progi rozdzielające zbiory wartości
prędkości i kierunku, skuteczność wyniosła 94%.
4. METODA ROZPOZNAWANIA GESTÓW STATYCZNYCH
Część systemu odpowiedzialną za rozpoznawanie gestów statycznych stworzono w
oparciu o środowisko Visual Studio C++ i bibliotekę OpenCV [8]. Za rozpoznawanie
gestów statycznych w systemie odpowiedzialne są maszyny wektorów nośnych
(klasyfikatory SVM) typu C-SVC (ang. C-Support Vector Classification).
W systemie zdefiniowano domyślnie trzy klasy gestów statycznych, które zostały
przedstawione w tabeli 2.1. Dla dłoni lewej gesty są odbiciem zwierciadlanym gestów
wykonywanych prawą dłonią. Z każdą klasą gestu związany jest jeden klasyfikator. Aby
możliwe było rozpoznawanie różnych gestów statycznych wykonywanych jednocześnie
obiema rękoma, tworzone są osobne klasyfikatory dla lewej i prawej dłoni. Parametry
poszczególnych klasyfikatorów są identyczne.
Klasyfikatory zaimplementowano wykorzystując bibliotekę LIBSVM [9]. Ze względu
na nieliniową zależność pomiędzy wektorami danych wejściowych a wynikami klasyfikacji
przyjęto jądro RBF (ang. radial basis function). Parametry klasyfikatorów C i  przyjęły
wartości, odpowiednio, 100 i 0,02. Wartości określono w procesie analizy wyników
klasyfikacji otrzymywanych dla różnych wartości parametrów klasyfikatora i tych samych
wektorów parametrów wejściowych. Za środowisko badawcze posłużyła aplikacja Weka.
Wektory parametrów wejściowych zawierają wartości opisujące kontur dłoni wykrytej
w obrazie. Parametryzacja kształtu dłoni realizowana jest za pomocą histogramów PGH
(ang. Pairwise Geometrical Histogram) o liczbie przedziałów klasowych równej 15 i
wysokości równej 10 jednostek. Poprzez zastosowanie tej metody parametryzacji uzyskano
niewrażliwość detekcji na kąt obrotu dłoni wokół osi prostopadłej do płaszczyzny ekranu.
W procesie trenowania klasyfikatorów każda klasa gestu reprezentowana jest przez 100
histogramów. Wektory opisujące klasy gestów dzielone są na dwa zbiory. Do jednego
Rozpoznawanie dynamicznych i statycznych gestów rąk w zastosowaniu do sterowania…
7
zbioru należą wektory reprezentujące klasę, dla której dany klasyfikator jest trenowany, do
drugiego – wszystkie pozostałe wektory.
Algorytmy maszyny wektorów nośnych, udostępnianej przez bibliotekę LIBSVM, w
stosunku do klasycznej metody są rozszerzone o wartości prawdopodobieństw
przynależności rozpoznawanego obiektu do danej klasy. W systemie wykorzystano tę
właściwość, określając próg podjęcia decyzji o przynależności kształtu dłoni do klasy gestu
jako 0,8. Za odpowiedź całego systemu klasyfikacji przyjmuje się pozytywną odpowiedź
klasyfikatora, który zwraca maksymalną wartość prawdopodobieństwa.
5. WYDAJNOŚĆ SYSTEMU
Wydajność opracowanego systemu została zbadana w kontekście czasów wykonania
operacji. W poniższej tabeli zebrano uśrednione z 1000 iteracji czasy wykonania
kluczowych operacji. Badania zostały przeprowadzone na komputerze z procesorem Intel
Core 2 Duo P7350 2.0 GHz i pamięcią RAM DDR2 400 MHz o czasach opóźnień
6:6:6:18. Aplikacja pracowała w środowisku 32-bitowego systemu operacyjnego Windows
Vista Business. W trakcie testów zauważono, że wydajność systemu jest silnie uzależniona
od systemowych ustawień efektów wizualnych. W tabeli 5.1. przedstawiono wyniki dla
ustawień zapewniających pełen zbiór efektów wizualnych stosowanych podczas
wyświetlania grafiki systemu i ustawień zapewniających maksymalną wydajność przy
braku takich efektów. Ustawienia zapewniające najlepszą grafikę były tożsame z
automatycznie wybieranymi przez system ustawieniami optymalnymi. Ustawiona w
systemie rozdzielczość obrazu wynosiła 1024 x 768 pikseli. W każdej iteracji cyklu pracy
opracowanego interfejsu, z kamery pozyskiwany był obraz o rozmiarze 320 x 240 pikseli.
Do takiego samego rozmiaru przeskalowywany był aktualny widok ekranu. W trakcie
testów wydajności dla obu ustawień użytkownik wykonywał ten sam gest dynamiczny,
który polegał na ruchu ręką do góry i do dołu w zakresie wysokości kadru. Zachowane było
stałe tempo wynoszące 1 ruch w danym kierunku na sekundę. Ręka skierowana była
zewnętrzną stroną do obiektywu kamery, a palce dłoni były złożone. Kształt ten został
zadeklarowany w systemie jako jeden z gestów statycznych. W trakcie przeprowadzania
obu testów bieżący profil zasilania ustawiony był na maksymalną wydajność. Jedyną
działającą aplikacją był interfejs rozpoznawania gestów. Testy wykonywane były dla
identycznego widoku ekranu, różniącego się jedynie wykończeniem elementów grafiki, co
wynikało z badanych ustawień. Funkcje, dla których w tabeli nie podano nazwy biblioteki
pochodzą z pakietu OpenCV.
Tablica 5.1
Czasy wykonania poszczególnych operacji
Ustawienie: Najlepszy wygląd
Ustawienie: Maksymalna
wydajność
Pozyskanie ramki
Funkcja
Czas wykonania [ms]
cvQueryFrame
1,66
19,14
Pozyskanie widoku ekranu (w tym*)
Biblioteka
windef.h, winuser.h, wingdi.h
Funkcja
CreateCompatibleBitmap
Michał Lech, Bożena Kostek, Andrzej Czyżewski
8
Czas wykonania [ms]
41,44
10,19
*Przeskalowanie
Funkcja
Czas wykonania [ms]
cvResize
0,36
0,36
Korekcja perspektywy
Funkcja
Czas wykonania [ms]
cvWarpPerspective
7,09
7,09
Ekstrakcja obszaru efektywnego
Funkcja
Czas wykonania [ms]
cvGetSubRect
0,003
0,003
Odejmowanie obrazów
Funkcja
Czas wykonania [ms]
cvAbsDiff
0,34
0,35
Kalibracja barwowa
Czas wykonania [ms]
4,96
4,28
Binaryzacja
Funkcja
Czas wykonania [ms]
cvThreshold
0,07
0,07
Filtracja medianowa
Funkcja
Czas wykonania [ms]
cvSmooth
4,71
4,90
Detekcja obiektu w obrazie
Funkcja
cvFindContours
cvDrawContours
Czas wykonania [ms]
0,46
0,45
Filtracja Kalmana
Funkcja
cvKalmanCorrect
cvMatMulAdd
Czas wykonania [ms]
4,71
0,03
Detekcja gestu dynamicznego
Biblioteka
jFuzzyLogic
Funkcja
Czas wykonania [ms]
rule.getDegreeOfSupport
0,28
0,29
Ekstrakcja kształtu dłoni
Funkcja
Czas wykonania [ms]
cvGetSubRect, cvFindContours, cvDrawContours, cvBoundingRect
0,07
0,08
Detekcja gestu statycznego
Biblioteka
LIBSVM, OpenCV
Funkcja
CalcPGH, svm_predict_probability
Czas wykonania [ms]
7,66
8,98
Całkowity czas wykonania
(zbadany) [ms]
79,64
66,75
Całkowity czas wykonania
69,12
56,20
Rozpoznawanie dynamicznych i statycznych gestów rąk w zastosowaniu do sterowania…
9
(suma) [ms]
Rozdzielczość czasowa
12,56
14,98
[klatki / s]
Znaczna różnica pomiędzy czasem pozyskania ramki z kamery przy ustawieniu
maksymalnej wydajności i czasem przy ustawieniu najlepszego wyglądu spowodowana
była sposobem implementacji funkcji cvQueryFrame. Zauważono, że w zależności od
producenta kamery, funkcja automatycznie wprowadza odpowiednie opóźnienia w celu
zapewnienia pozyskiwania strumienia wizyjnego, w którym każde dwie sąsiednie klatki
zawsze różnią się od siebie. Opóźnienia te zależne są od obciążenia zasobów
generowanego przez pozostałe funkcje, tzn. im większe obciążenie tym wprowadzane
opóźnienie jest mniejsze. W badaniach wykorzystano kamerę Logitech Portable Webcam
C905.
Różnica pomiędzy zbadanym uśrednionym czasem wykonania pojedynczej iteracji
rozpoznawania gestu a czasem wynikającym z sumy wszystkich zmierzonych wartości
wynikała z konieczności stosowania dodatkowych operacji, których celem było
dopasowanie formatów danych. Przykładem takich operacji mogą być funkcje: cvFlip,
cvCvtColor, cvSplit, które realizowały odpowiednio: rotację obrazu względem danej osi,
konwersję kolorów, zastąpienie wszystkich składowych koloru jedną, wybraną składową.
Uzyskana rozdzielczość czasowa systemu dla trybu maksymalnej wydajności,
wynosząca około 15 klatek / s pozwoliła na obsługę interfejsu bez zauważalnego
opóźnienia. Wyniki testów wydajności systemu pokazują, że na rozdzielczość czasową
wpływ mają nie tylko zasoby sprzętowe komputera, ale również programowe opcje
wydajności systemu operacyjnego.
6. PODSUMOWANIE
Przedstawiony system w obecnej postaci funkcjonuje z kamerą umieszczoną za
użytkownikiem. Specyfikę pracy z opracowanym interfejsem w środowisku projektora
multimedialnego wykorzystano tworząc aplikację o nazwie Wirtualna Tablica [10].
Oprogramowanie w połączeniu z przedstawionymi komponentami sprzętowymi pozwala
na emulowanie elektronicznej tablicy szkolnej, przy czym zasadniczą zaletą jest brak
konieczności stosowania specjalnych pisaków czy potrzeby ścierania tablicy. Aplikacja
poza spełnieniem podstawowej funkcjonalności, jaką jest nanoszenie treści na tablicę
poprzez ruch ręki, pozwala na interakcję z wyświetlanymi obiektami, np. obrót i
powiększanie zawartości tablicy.
W środowisku projektora i ekranu dla wyświetlanego przez niego obrazu,
umiejscowienie kamery za użytkownikiem jest pożądane. Umieszczenie kamery przed
użytkownikiem byłoby problematyczne ze względu na silne światło z projektora padające
na obiektyw kamery i sposób mocowania do ekranu. Jednakże, do obsługi aplikacji nie
wymagających użycia projektora bardziej naturalne jest umiejscowienie kamery
bezpośrednio przy monitorze. Z tego względu, planuje się rozszerzenie systemu o
algorytmy detekcji rąk bezpośrednio w przetworzonym obrazie pozyskanym z kamery. W
tym celu przewiduje się zastosowanie algorytmu Camshift (Continuously adaptive meanshift) [11], którego implementację zawiera biblioteka OpenCV.
Michał Lech, Bożena Kostek, Andrzej Czyżewski
10
PODZIĘKOWANIA
Praca została wykonana w ramach projektu POIG.01.03.01-22-017/08 pt.: "Opracowanie typoszeregu
komputerowych interfejsów multimodalnych oraz ich wdrożenie w zastosowaniach edukacyjnych,
medycznych, w obronności i w przemyśle". Projekt jest współfinansowany ze środków
Europejskiego Funduszu Rozwoju Regionalnego i budżetu państwa.
BIBLIOGRAFIA
[1] Cuciz, D., Total Control – A History of Game Controllers, gamespy.com/PlanetHardware, March
17, 2003, http://archive.gamespy.com/hardware/june02/sticks1/index.shtml, dostęp: 06.06.2011.
[2] Catalin I., History of the game controller: A quick run down on everyone’s favorite input device,
Softpedia, 2009, http://gadgets.softpedia.com/newsPDF/History-of-the-Game-Controller2737.pdf, dostęp: 06.06.2011.
[3] Kaszuba K., Kopaczewski K., Odya P., Kostek B., Biofeedback-based brain hemispheric
synchronizing employing man-machine interface, W: G.A. Tsihrintzis et al. (Eds.): Intelligent
Interactive Multimedia Systems and Services, Springer-Verlag, vol. 6, pp. 56–69, 2010.
[4] Ranky G.N., Adamovich S., Analysis of a Commercial EEG Device for the Control of a Robot
Arm, Proc. of the 2010 IEEE 36th Annual Northeast, 2010.
[5] Dalka P., Czyżewski A., Human-Computer Interface Based on Visual Lip Movement and Gesture
Recognition, International Journal of Computer Science and Applications, no. 3, vol. 7, pp. 124–
139, 2010.
[6] Leyvand T., Meekhof C., Yi-Chen Wei, Jian Sun and Baining Guo, Kinect Identity: Technology
and Experience, Computer, IEEE Computer Society, 2011.
[7] Lech M., Kostek B., Fuzzy Rule-based Dynamic Gesture Recognition Employing Camera &
Multimedia Projector, in: Advances in Intelligent and Soft Computing, Advances in Multimedia
and Network Information System Technologies series, Springer-Verlag, pp. 69–78, 2010.
[8] Bradski G., Kaehler A., Learning OpenCV, O’Reilly, 2008.
[9] Chih-Wei Hsu, Chih-Chung Chang and Chih-Jen Lin, A Practical Guide to Support Vector
Classification, 2010, http://www.csie.ntu.edu.tw/~cjlin/libsvm, acquired 01.06.2011.
[10] Lech M., Kostek B., Gesture-based Computer Control System Applied to the Interactive
Whiteboard, Zeszyty Naukowe Wydziału ETI PG, no. 8/2010, pp. 121 - 126, 2010.
[11] Fukunaga K., Introduction to Statistical Pattern Recognition, Boston: Academic Press, 1990.
RECOGNITION OF DYNAMIC AND STATIC HAND GESTURES
APPLIED TO COMPUTER APPLICATION CONTROLLING
Summary
In the paper an interface, methods and algorithms of controlling a computer by dynamic and static
hand gestures have been presented. The solution consists of a PC on which engineered software is
installed, a webcam and a multimedia projector. Gestures are recognized based on analysis of a video
stream obtained from the webcam attached to the multimedia projector and on analysis of video
stream displayed by the projector (retrieved from the computer). For the purpose of dynamic gestures
recognition motion trajectory has been modeled by fuzzy rules. Static gestures are recognized using
Support Vector Machines. In the paper results of efficiency examination of the interface engineered
have been given. In conclusions, further plans to extend the system with algorithms enabling to work
with the camera placed front-faced have been presented.

Podobne dokumenty