SlideShare a Scribd company logo
1 of 79
Politechnika Gdańska
WYDZIAŁ ELEKTRONIKI
TELEKOMUNIKACJI I INFORMATYKI
Katedra: Architektury Systemów Komputerowych
Imię i nazwisko dyplomanta: Bartosz Nowakowski
Nr albumu: 109251
Forma i poziom studiów: Jednolite magisterskie
Kierunek studiów: Informatyka
Praca dyplomowa magisterska
Temat pracy: Interaktywna tablica Mendelejewa dla Wydziału Chemii PG
Kierujący pracą: dr inż. Tomasz Dziubich
Zakres pracy: Celem pracy jest zaprezentowanie idei przestrzeni interaktywnej,
analiza metod wykrywania osób i rozpoznawania gestów człowieka, projekt oraz
implementacja aplikacji interaktywnej tablicy Mendelejewa dla ściany wideo
zainstalowanej w budynku Wydziału Chemii PG. Tablica powinna reagować na gesty i
zachowania użytkowników zbliżających się do tablicy oraz wykrywać ich twarze.
Gdańsk, 2011 rok
Oświadczenie
Oświadczam, że niniejszą pracę dyplomową wykonałem samodzielnie.
Wszystkie informacje umieszczone w pracy uzyskane ze źródeł pisanych oraz
informacje ustne pochodzące od innych osób zostały udokumentowane w
wykazie literatury odpowiednimi odnośnikami.
podpis dyplomanta
Spis treści
1. Wstęp 8
2. Nowoczesne interfejsy użytkownika w przestrzeni publicznej 12
2.1. Przegląd istniejących rozwiązań 12
2.1.1. Interaktywna ściana Hello.Wall 12
2.1.2. Inne przykłady interakcji w przestrzeniach publicznych 14
2.2. Ogólna architektura systemów dla przestrzeni publicznych 18
3. Widzenie komputerowe jako zbiór technik automatycznej obserwacji
21
3.1. Elementy procesu widzenia ludzkiego 21
3.2. Przegląd zagadnień dotyczących wykrywania twarzy 23
3.2.1. Metody oparte o rysy twarzy 23
3.2.2. Metody oparte o wygląd 24
3.2.3. Metody oparte o szablon 26
3.2.4. Porównanie metod 27
4. Ambient Intelligence jako środowisko monitorowania zachowań
użytkowników 28
4.1. Przegląd zagadnień związanych ze śledzeniem ciała człowieka 29
4.1.1. Metody oparte o śledzenie punktów 29
4.1.2. Metody oparte o śledzenie rdzenia 30
4.1.3. Metody oparte o śledzenie zarysów 30
4.1.4. Porównanie metod 31
4.2. Przegląd zagadnień dotyczących skanowania trójwymiarowego 32
4.2.1. Metody oparte o skanowanie aktywne 32
4.2.2. Metody oparte o skanowanie pasywne 33
4.2.3. Porównanie metod 34
5. Metody interakcji człowieka z systemem komputerowym 35
5.1. Przegląd zagadnień związanych z rodzajem interfejsu użytkownika35
5.1.1. Tangible User Interface 35
5.1.2. Surface User Interface 36
5.1.3. Ambient User Interface 37
5.1.4. Porównanie rodzajów interfejsu 38
5.2. Klasyfikacja gestów 38
5.2.1. Porównanie rodzajów grup 39
5.3. Metody interakcji związanej z wykrywaniem gestów ręki 39
5.3.1. Ukryte modele Markowa 39
5.3.2. Self-organizing map 40
5.3.3. Porównanie metod 40
6. Projekt systemu 41
6.1. Wizja systemu 41
6.1.1. Opis organizacji 41
6.1.2. Kontekst systemu 41
6.1.3. Zakres funkcjonalności 46
6.1.4. Zapewnienie prywatności danych do projektu 48
6.1.5. Wymagania jakościowe 49
6.2. Przypadki użycia 49
6.3. Podział na klasy 52
6.4. Koncepcja modułowa systemu 53
7. Uzasadnienie decyzji projektowych 54
7.1. Przegląd technologii 54
7.2. Przegląd architektur systemu 57
7.3. Przegląd bibliotek do przetwarzania obrazu w czasie rzeczywistym59
7.4. Przegląd sensorów 60
7.5. Przegląd oprogramowania pośredniczego 63
8. Implementacja i testowanie 66
8.1. Wybrane rozwiązania implementacyjne 66
8.1.1. Wykorzystanie sensora Microsoft Kinect 66
8.1.2. Wykrywanie i klasyfikacja gestów 67
8.1.3. Wykrywanie twarzy 70
8.1.4. Wizualizacja modelu tablicy 70
8.2. Testowanie systemu 71
9. Wnioski i uwagi końcowe 74
10. Bibliografia 76
Spis tabel
Tabela 1. Skala ocen użyta do porównania technologii 54
Tabela 2. Porównanie technologii 56
Tabela 3. Skala ocen użyta do porównania architektur systemu 58
Tabela 4. Porównanie architektur systemu 59
Tabela 5. Porównanie bibliotek do przetwarzania obrazu w czasie
rzeczywistym 60
Tabela 6. Skala ocen użyta do porównania sensorów wspomagających
wykrywanie oraz śledzenie użytkowników 61
Tabela 7. Porównanie sensorów wspomagających wykrywanie oraz
śledzenie użytkowników 62
Tabela 8. Skala ocen użyta do porównania oprogramowania
pośredniczącego 63
Tabela 9. Porównanie oprogramowania pośredniczącego 64
Tabela 10. Wyniki testu wykrywania twarzy 72
Spis rysunków
Rysunek 1. Wizualizacja architektoniczna przedstawiająca wizję
interaktywnej ściany wideo 9
Rysunek 2. Strefy interakcji interaktywnej ściany Hello.Wall [5] 13
Rysunek 3. Sprawdzanie szczegółów powiadomienia za pomocą
indywidualnego urządzenia mobilnego [5] 14
Rysunek 4. Aplikacja interaktywna „Bounce” z instalacji artystycznej „Messa
di Voce” [26] 15
Rysunek 5. Prototyp aplikacji „The ubiquitous picture browser” 16
Rysunek 6. Fuji Xerox Plasma Poster [25] 17
Rysunek 7. Schemat budowy architektury systemów dla przestrzeni
publicznych 18
Rysunek 8. Diagram procesu interakcji użytkownika z systemem dla
przestrzeni publicznej 19
Rysunek 9. Algorytm wykorzystujący odkształcenia szablonów - schemat
blokowy i kolejne kroki algorytmu dla przykładowego obrazu [57] 24
Rysunek 10. Algorytm wykorzystujący skupienia i analizę głównych
składowych (PCA) - wyznaczanie głównych składowych podczas
szkolenia algorytmu [43] 25
Rysunek 11. Algorytm wykorzystujący active appearance model - kolejne
etapy tworzenia modelu wyglądu [6] 26
Rysunek 12. Siftables - przykład systemu wykorzystującego Tangible User
Interface 36
Rysunek 13. Micrososft Surface - przykład systemu wykorzystującego
Surface User Interface 37
Rysunek 14. Interactive Breezeway - przykład systemu wykorzystującego
Ambient User Interface 38
Rysunek 15. Diagramy przedstawiające zamysł zleceniodawcy dotyczący
grupy interakcji symbolizujących stany skupienia: wody, lodu, pary
wodnej 43
Rysunek 16. Plan lokalizacji poszczególnych elementów systemu w miejscu
powstającego korytarza 44
Rysunek 17. Schemat budowy ściany wideo tworzącej Ekran A 45
Rysunek 18. Schemat budowy ściany wideo tworzącej Ekran B 45
Rysunek 19. Wizualizacja architektoniczna interaktywnej ściany wideo
(Ekran B) umieszczonej na korytarzu Chemii Politechniki Gdańskiej46
Rysunek 20. Schemat stref przed ekranem, każda ze stref może wyróżniać
się indywidualnymi gestami 47
Rysunek 21. Diagram przypadków użycia 49
Rysunek 22. Diagram sekwencji dla przypadku użycia „Przenieś kamerę”50
Rysunek 23. Diagram sekwencji dla przypadku użycia „Wykryj twarze” 51
Rysunek 24. Diagram sekwencji dla przypadku użycia „Wykryj strefę” 52
Rysunek 25. Diagram klas 52
Rysunek 26. Diagram koncepcji modułowej systemu 53
Rysunek 27. Schemat blokowy architektury PrimeSense [35] 66
Rysunek 28. Inicjalizacja sensora Kinect w celu śledzenia użytkownika 67
Rysunek 29. Fragment konfiguracji sensora 67
Rysunek 30. Wskazanie metody, do której przekazywane będą dane
dotyczące śledzenia użytkownika 67
Rysunek 31. Schemat blokowy opisywanej klasyfikacji gestów przy użyciu
HMM 69
Rysunek 32. Proces uczenia klasyfikatora gestów 69
Rysunek 33. Detekcja gestów za pomocą wyszkolonych klasyfikatorów
gestów 69
Rysunek 34. Wskazanie metody, do której przekazywane będą dane
dotyczące wykrytych gestów użytkownika 70
Rysunek 35. Inicjalizacja kaskady Haar’a 70
Rysunek 36. Wykrywanie twarzy za pomocą kaskady Haar’a 70
Rysunek 37. Fragment kodu XAML opisujący scenę trójwymiarową 71
Rysunek 38. Wizualizacja trójwymiarowego modelu tablicy 71
Rysunek 39. Pozycja kalibracyjną wymagana do inicjacji śledzenia stawów
użytkownika przez NITE 73
1. Wstęp
W wielu dziedzinach życia możemy obserwować wzrost zainteresowania
filozofią nowoczesnych interfejsów użytkownika w systemach komputerowch
jaki i postępem technologii z nią powiązanych. Nie byłoby to możliwe bez
miniaturyzacji urządzeń wbudowanych i sensorów, rozwoju technologii
bezprzewodowych oraz ich integracji, dzięki czemu użytkownik może skupić
się na projektowaniu interfejsu systemu i jego funkcjonalności, zamiast na
projektowaniu urządzeń i elementów elektronicznych, z których się on składa.
Prekursor Ubiquitous Computing (przetwarzania wszechobecnego) - Mark
Weiser w latach dziewięćdziesiątych stwierdził, iż metafora komputera w
przyszłości polegać będzie na ukryciu sprzętu, tak aby użytkownik go nie
dostrzegał [49]. Jego zdaniem narzędzie pracy powinno być niewidzialne w taki
sposób, żeby nie przeszkadzało świadomości używającego. Jako przykładu
używa okularów - patrzmy przez nie na świat, a nie skupiamy się na samym
przedmiocie. Taka wizją rozwiązań zainteresowała architektów, którzy podjęli
próbę integracji tych technologii z przestrzenią publiczną. Przestrzeń
publiczna jest rozumiana jako miejsca ogólnodostępne dla społeczeństwa lub
członków określonej organizacji sprzyjające w nawiązywaniu kontaktów
między nimi. Dzięki budowie przestrzeni interaktywnych możliwy jest wzrost
przepływu informacji, która będzie odtąd dostępna gdziekolwiek i w każdym
czasie [47] oraz zwiększenie poczucia przynależności do organizacji, do której
należą jej użytkownicy. Nowy kanał informacji wyłania się dzięki trendowi
taniejących ekranów o dużej rozdzielczości umieszczanych w przestrzeni
publicznej takiej jak lotniska, szkoły i biura. Poprzez rozpowszechnianie
informacji otaczającemu ekran tłumowi tworzy się możliwość wymiany
informacji z poszczególnymi osobami w momencie przechodzenia w pobliżu
takiego ekranu. Przykładem opisanego systemu są interaktywne ściany wideo,
które bazują na wiedzy pochodzącej z następujących dziedzin:
• Ambient intelligence - inteligentne środowisko, zawierające sieć
czujników, które jest świadome przebywających w nich ludzi, na
których reaguje, w skrócie AmI; zapewnia sieć sensorów i czujników,
które pozwalają reagować na użytkownika,
• Human-Computer Interaction - filozofia tworzenia interfejsów
skupiająca się na jego użytkowniku, zamiast na urządzeniu; zapewnia
naturalny i intuicyjny interfejs dla użytkownika oraz
8
• Computer Vision - dziedzina skupiająca się na wydobywaniu
danych z obrazu, które służą do rozwiązywania stawianych
problemów; zapewnia przetwarzanie obrazów i strumieni wideo
pobranych z sensorów.
Poniższy rys. 1 stanowi wizualizację architektoniczną przedstawiającą
wizję interaktywnej ściany wideo. Użytkownik poprzez interfejs dotykowy ma
możliwość przeglądania produktów dostępnych w sklepie. Informacje
wyświetlane są na interaktywnym ekranie, który prezentuje treści w sposób dla
niego wygodny.
Rysunek 1. Wizualizacja architektoniczna przedstawiająca wizję interaktywnej
ściany wideo
Celem niniejszej pracy dyplomowej jest:
• opis uogólnionej architektury systemu komputerowego dla
przestrzeni interaktywnej,
• analiza metod wykrywania osób i rozpoznawania gestów
człowieka przebywającego w takiej przestrzeni,
9
• projekt i implementacja aplikacji, która kontrolować będzie
interaktywną tablicę, zgodną z nurtem nowoczesnych interfejsów.
Praca ta jest częścią projektu „Budowa przejścia podziemnego między
budynkami Wydziału Chemii” realizowanym na Politechnice Gdańskiej. Z
powodu braku gotowych frameworków (zestaw komponentów i bibliotek
stanowiący szkielet do budowy aplikacji), które byłyby w stanie kompletnie
zrealizować rzeczony system, w poniższej pracy zostanie zaprojektowane i
zrealizowane rozwiązanie dedykowane temu celowi. System powstawał będzie
we współpracy z architektami, którzy odpowiadają za zaplanowanie przebiegu
interakcji z użytkownikiem oraz za zaplanowanie całości przestrzeni. W tym
celu system powinien stosować rozwiązania nowoczesnych interfejsów: śledzić
sylwetkę użytkownika, rozpoznawać twarze i reagować na gesty. Aplikacja
powinna być wysoce elastyczna ze względu na możliwości zmiany w
interfejsach użytkownika.
Ze względu na młody wiek dziedziny, której ta praca dotyczy oraz
zważając na braki powszechnie rozpoznawanych ich tłumaczeń w języku
polskim, użyta pisownia pojęć i nazw pozostała w formie oryginalnej. Nie
mniej jednak przy pierwszym wystąpieniu zwrotu obcego została podjęta
próba jego wyjaśnienia.
Praca rozpoczyna się od rozdziału „Nowoczesne interfejsy w przestrzeni
publicznej”, który opisuje trendy panujące w nowoczesnych interfejsach na
podstawie studium istniejących rozwiązań. Rozdział ten zaczyna część
przeglądową tej pracy. Następne rozdziały przedstawiają działy związane z
nowoczesnymi interfejsami oraz opisują charakterystyczne zagadnienia dla
tych dziedzin. Rozdział „Widzenie komputerowe jako zbiór technik
automatycznej obserwacji” zawiera opis wykrywania obiektów za pomocą
sensorów. W rozdziale „Ambient Intelligence jako środowisko monitorowania
zachowań użytkowników” opisane zostało wykorzystanie sensorów i czujników
do śledzenia ciała człowieka w celu zapewnienia interakcji z użytkownikiem.
Rozdział „Metody interakcji człowieka z systemem komputerowym” zawiera
opis wykorzystania gestów wykonywanych przez człowieka jako sposobu
interakcji w ramach naturalnego interfejsu systemu. Kolejne rozdziały należą
do części praktycznej, opisującej projektowanie, wykonanie i testowanie
stworzonego systemu, wykorzystując analizę przeprowadzoną w części
przeglądowej niniejszej pracy. „Projekt systemu” zawiera spis wymagań
10
dotyczących systemu sformułowany przez architekta odpowiedzialnego za
realizację całości systemu. Kolejny rozdział „Uzasadnienie decyzji
projektowych” opisuje proces podejmowania decyzji projektowych w taki
sposób, aby użyte rozwiązania w systemie spełniały stawiane wymagania.
Następny rozdział „Implementacja i testowanie” przedstawia ciekawe
rozwiązania implementacyjne zastosowane podczas tworzenia tej pracy oraz
podejmuje próbę oceny funkcjonalności systemu. Ostatni rozdział „Wnioski i
uwagi końcowe” stanowi podsumowanie rezultatów osiągniętej w niniejszej
pracy.
11
2. Nowoczesne interfejsy użytkownika w
przestrzeni publicznej
Rozwiązania stosowane w nowoczesnych interfejsach zapewniają
możliwość nieinwazyjnej kontroli, a także łatwej obsługi. Często
wykorzystywane są one w przestrzeni publicznej, niejednokrotnie w formie
sztuki, zwiększając jej ekspresyjność, ale także angażując samych
oglądających. Ze względu na rozwój technologii oraz jej ekonomicznych
aspektów, przetwarzanie obrazów oraz przetwarzanie wszechobecne przestało
być głównie domeną naukowców, stwarzając artystom i hobbystom nowe
możliwości ich wykorzystania [1]. System, który tworzony jest w ramach
niniejszej pracy, należy do powyższej grupy aplikacji. W celu lepszego
zrozumienia opisywanej dziedziny zostaną przeanalizowane istniejące
rozwiązania.
2.1. Przegląd istniejących rozwiązań
Poniższy rozdziały zawierają przegląd aktualnych systemów
wykorzystujących zagadnienia Ambient Intelligence, Human-Computer
Interaction oraz Computer Vision, które skupiają się na interakcji z
użytkownikami będącymi w jego otoczeniu. Zawierają one szczegółowy opis
wybranej realizacji oraz przegląd istniejących rozwiązań związanych z
nowoczesnymi interfejsami w przestrzeni publicznej.
2.1.1. Interaktywna ściana Hello.Wall
Poniższy rozdział zawiera analizę systemu Hello.Wall wykonanego przez
Instytut Fraunhofera. System ten był częścią badań Ambient Agoras, którego
zadaniem było zapewnienie miejsca (gr. „agoras” - targ) wymiany informacji i
pomysłów w przestrzeni publicznej znajdującej się w biurach, gdzie jej
użytkownicy mogli się spotykać. System jest interaktywną tablicą (ang.
ambient display lub interactive wall) zawierającą wyświetlacz, jednak jego
zastosowanie jest szersze niż interfejs użytkownika, który znany jest z
komputerów osobistych [39]. Wyświetlacz składa się z 124 komórek ułożonych
we wzór przypominający strukturę plastra miodu, każda z komórek ma
możliwość niezależnego regulowania natężenia światła jakie emituje. Twórcy
systemu klasyfikują go jako sztuka informatywna (ang. informative art) ze
względu na prezentowanie informacji przeznaczonych zarówno dla ogółu
pracowników jak i indywidualnych stanowiąc jednocześnie integralną i
12
dekoracyjną część nowoczesnej przestrzeni biurowej [5]. System w celu
zapewnienia różnych poziomów szczegółowości interakcji dzieli obszar przed
interaktywną ścianą na trzy strefy: interakcji (ang. interactive zone),
powiadomień (ang. notification zone) oraz środowiska (ang. ambient zone),
czyniąc jego interakcję świadomą kontekstu (ang. contex-aware). Diagram stref
przedstawiony jest na poniższym rys. 2.
Rysunek 2. Strefy interakcji interaktywnej ściany Hello.Wall [5]
Przynależność użytkownika do strefy wyznaczana jest przy użyciu dwóch
sensorów, które dobrane są w taki sposób, aby zasięg ich komunikacji zgadzał
się z zasięgiem danej strefy, do której będą przypisane. W momencie gdy
ludzie są poza zasięgiem sensorów znajdują się w strefie środowiska. Wówczas
interaktywna tablica wyświetla ogólne informacje, które są niezależne od
konkretnych osób, są to przede wszystkim parametry wybrane w sposób
umożliwiający prezentację atmosfery panującej w organizacji za pomocą
wzorów ułożonych ze świateł, przykładowo: odsetek pracowników, którzy
przebywają obecnie w biurze lub średni poziom intensywności pracy. W
momencie gdy konkretna osoba podchodzi do interaktywnej tablicy lub
przechodząc zbliża się dostatecznie blisko do ściany, wkracza ona w strefę
powiadomień powodując reakcję ekranu. Wówczas interaktywna tablica
zmienia wyświetlany wzór świetlny ze stanu reprezentującego gotowość
13
zmienia się on w reprezentujący powiadomienie, który może być zarówno
indywidualny, jak i dotyczący członków grupy. W zamierzeniach poszczególne
wzory świetlne reprezentujące powiadomienia wraz z ich znaczeniami mogą
być niejawne i znane tylko ludziom, którzy są powiadamiani. Ze względu na
to, iż tablica interaktywna informuje użytkownika jedynie o sytuacji
występowania powiadomienia do celów tego prototypu wykorzystano mobile
urządzenia zwane ViewPort, indywidualne dla każdego z użytkowników, za
pomocą których jest on w stanie sprawdzić, zachować lub edytować szczegóły
danego powiadomienia, co obrazuje poniższy rys. 3.
Rysunek 3. Sprawdzanie szczegółów powiadomienia za pomocą
indywidualnego urządzenia mobilnego [5]
Ostatnia strefa, nazwana strefą interakcji, aktywuje się w momencie
zbliżenia się użytkownika na bardzo małą odległość od ściany interaktywnej.
W tym przypadku użytkownik dokonuje interakcji z pojedynczą komórką.
Takie podejście umożliwia zachowywanie oraz przepływ informacji w sposób
równoległy przy użyciu urządzeń mobilnych. Funkcjonalność ta umożliwia
uzyskanie zabawnych oraz angażujących interakcji, których nie dałoby się
uzyskać przy użyciu standardowych środków. Dodatkowym atutem jest
element zaskoczenia, który towarzyszy odkrywaniu interakcji poprzez
pojedynczą komórkę.
2.1.2. Inne przykłady interakcji w przestrzeniach publicznych
„Messa di Voce”
„Messa di Voce” (z włoskiego „umieszczanie głosu”) jest instalacją
artystyczną zaprezentowaną na wielu wystawach dotyczących interaktywnej
sztuki. System za pomocą zestawu aplikacji interaktywnych obrazuje i
wzmacniania mowę, krzyk oraz śpiew wykonywany przez wokalistów [24].
14
Pokaz skupia się na ogóle zagadnień związanych z komunikacją, synestezją
oraz udźwiękowieniem poprzez efektowne i wciągające animacje wzmocnione
dźwiękiem, które tworzone są na podstawie odcienia wokalnego śpiewaka.
Aplikacja interaktywna nie ogranicza się jedynie do wizualizowania głosu
wykonawcy, ale także służy mu jako kontroler odtwarzania nagrań
akustycznych. Podczas gdy grafika generowana poprzez dźwięk staje się
instrumentem, na którym gra wokalista, ruchy jego sylwetki dodatkowo
powtarzają dźwięki przez niego wydobywane, tworząc cykl interakcji
zapewniającej środowisko składające się z dźwięku, obiektów wizualnych
przetwarzanych w czasie rzeczywistym. System ustawiony jest na scenie, na
której znajduje się ekran, artysta ustawia się przed widownią, na jego tle. W
aplikacji „Bounce” wykonawca wykonuje trzepotanie policzkami, które jest
rozpoznawane przez system. Aplikacja śledzi pozycję głowy użytkownika i
podczas wydawania określonych dźwięków, w zależności od ich natężenia,
emituje z jego ust strumień unoszących się bąbelków, które tworzą chmurę na
górze ekranu. Na koniec prezentacji artysta odwraca się, co powoduje upadek
zgromadzonych bąbelków, które odbijają się od użytkownika.
Rysunek 4. Aplikacja interaktywna „Bounce” z instalacji artystycznej „Messa di
Voce” [24]
15
„The ubiquitous picture browser”
„The ubiquitous picture browser” jest prototypowym systemem
wykorzystującym framework TISCH (ang. Tangible Interactive Surfaces for
Collaboration between Humans) [11], którego interfejs użytkownika
przedstawiony jest na rys. 5. Aplikacja śledzi położenie rąk użytkownika,
analizuje jego gesty, które umożliwiają operacji selekcji obiektów, zmiany ich
rozmiaru oraz obrót obrazów. Użytkownik znajduje się na wprost ekranu, na
którym wyświetlony jest jego obszar roboczy zawierający porozrzucane
zdjęcia. Selekcja zdjęcia odbywa się poprzez gest pchnięcia jedną ręką. Po jego
wykonaniu wybrany obiekt jest podnoszony i możliwa jest zmiana jego pozycji
poprzez ruch ręką. Zdjęcie odkładane jest z powrotem w analogiczny sposób
jak jego podniesienie. Gest pchnięcia obiema rękami umożliwia zmianę
rozmiaru zdjęcia, poprzez zmianę odległości między rękoma oraz obrót
zdjęcia, poprzez poruszanie dłońmi po okręgu. Dzięki zastosowaniu
technologii multitouch (wielodotyk lub multidotyk) wszystkie operacje mogą
być wykonywane w sposób równoległy przez kilku użytkowników.
Rysunek 5. Prototyp aplikacji „The ubiquitous picture browser”
Fuji Xerox Plasma Poster
Fuji Xerox Plasma Poster jest prototypem interaktywnej ściany wideo
stworzonej dla pracowników korporacji, zlokalizowanych w dwóch odległych
od siebie ośrodkach [23]. Miała ona za zadanie zintegrować zespoły, a także
16
zmniejszyć bariery kulturowe pomiędzy nimi. System miał być
udoskonaleniem i uzupełnieniem metod stosowanych wcześniej:
wideokonferencji oraz intranetu. Użytkownicy podczas wykonywania swoich
codziennych zadań mieli możliwość dodania adnotacji do przeglądanego
zasobu lub tworzenie własnego i udostępnianie ich w obrębie swojego zespołu
lub organizacji. System gromadził te dane stosując do ich klasyfikacji
automatyczne rozpoznawanie zawartości, co odróżnia go od pozostałych
rozwiązań. Drugą częścią systemu jest interaktywna ściana wideo,
umieszczona w strefie publicznej, umożliwiająca przeglądanie zawartości
udostępnianych przez współpracowników, dostosowując się do preferencji
użytkownika. Prezentowane zasoby były przechowywane przez dwa tygodnie
od ich wprowadzenia, tak aby zapewnić regularne odświeżanie zawartości.
Każdy z wyświetlanych zasobów posiadał kod QR zwierający adres URL, który
umożliwiał dalsze przeglądanie zasobu w przestrzeni prywatnej użytkownika.
Rysunek 6. Fuji Xerox Plasma Poster [23]
17
2.2. Ogólna architektura systemów dla przestrzeni
publicznych
Na podstawie opisywanych powyżej, istniejących rozwiązań możemy
zauważyć, iż posiadają one wspólne elementy składające się na ich budowę.
Uogólniona architektura systemu komputerowego dla przestrzeni
interaktywnych została zobrazowana na poniższym rys. 7. Wśród warstw
możemy wyróżnić: warstwę sensorów, warstwę interaktywnej tablicy,
przestrzeń przed tablicą podzieloną na strefy oraz warstwę przetwarzającą i
realizującą logikę.
Rysunek 7. Schemat budowy architektury systemów dla przestrzeni publicznych
Należy też zauważyć istnienie zagadnień charakterystycznych dla
nowoczesnych interfejsów umieszczonych w przestrzeni publicznej.
Poszczególne warstwy realizują odrębne cele i wykorzystują charakterystyczne
dla siebie rozwiązania. Warstwa sensorów zawiera sieć czujników zbierających
dane, które posłużą do wykrycia obecności użytkownika oraz śledzenia jego
pozycji (zagadnienia z dziedziny Ambient Intelligence i Computer Vision).
Warstwa przetwarzająca pobiera surowy sygnał z warstwy sensorów i dokonuje
konwersji danych do postaci użytecznej i zoptymalizowanej do obliczeń
(zagadnienia z dziedziny Ambient Intelligence i Computer Vision). Warstwa
logiki w oparciu o uzyskane dane z warstwy przetwarzającej odpowiada za
wykrycie obecności użytkownika, śledzenie jego pozycji oraz reakcję na
czynności przez niego wykonywane (zagadnienia z dziedziny Ambient
Intelligence, Computer Vision i Human-Computer Interaction). Warstwa
interaktywnej tablicy ma za zadanie prezentację interaktywnej zawartości
18
systemu, a także wykrycie i klasyfikacja gestów w ramach naturalnego
interfejsu użytkownika (zagadnienia z dziedziny Human-Computer
Interaction).
Dla tak zdefiniowanej architektury można zamodelować następujący
proces interakcji użytkownika z systemem dla przestrzeni publicznej, który
przedstawiony jest na poniższym diagramie zawartym na rys. 8.
Rysunek 8. Diagram procesu interakcji użytkownika z systemem dla przestrzeni
publicznej
Poszczególne elementy procesu realizują odrębne zadania i wykorzystują
charakterystyczne dla siebie rozwiązania. W związku z zamiarem zrealizowania
celów pracy w początkowych rozdziałach zostanie przeprowadzona analiza
zagadnień stanowiących kolejne elementy powyższego procesu interakcji
zachowując podział na dziedziny, do których należą:
• Detekcja - wykrywanie twarzy za pomocą rozwiązań pochodzących z
„Computer Vision”,
• Śledzenie - śledzenie ciała ludzkiego za pomocą rozwiązań
pochodzących z „Ambient Intelligence”,
• Analiza - wykrywanie gestów za pomocą rozwiązań pochodzących z
„Human-Computer Interaction”,
• Logika - sterowanie działaniem tablicy.
Ze względu na fakt, iż zlecający projekt wymaga, aby użyte w systemie
sensory były ogólnodostępnymi i gotowymi urządzeniami rozdziały
przeglądowe zakładają istnienie generycznego sygnału zawierającego odczyty z
19
czujników pochodzących z sensora. Porównanie i wybór modeli sensorów
oraz opis interakcji z tablicą zostanie dokonany w rozdziałach praktycznych
niniejszej pracy.
20
3. Widzenie komputerowe jako zbiór technik
automatycznej obserwacji
Jednym z najsilniejszych zmysłów wpływających na sposób postrzegania
rzeczywistości przez człowieka jest jego wzrok. Ten fakt przy współudziale
szybkiego rozwoju kamer, wtórowanego przez wzrost mocy obliczeniowej
napędza rozwój dziedziny computer vision (widzenie komputerowe, dziedzina
komputerowego przetwarzania danych wizualnych pozyskanych z obrazu).
Celem tejże, jest podejmowanie użytecznych decyzji dotyczących realnych,
fizycznych obiektów i scen na podstawie pobranych obrazów [36]. Systemy
przemysłowe, przetwarzające obraz z kamer, których funkcjonalność była
bardzo ograniczona, odeszły do przeszłości. Współczesne systemy rozszerzają
zastosowania tych systemów do inwigilacji, rozpoznawania i indeksowania
wideo (identyfikacja osób, rozpoznawanie twarzy i obiektów). Computer vision
poza pierwotnymi zastosowaniami przemysłowymi, przeniknęło także do
nowoczesnych human-computer interaction (ogół interakcji pomiędzy
człowiekiem, a komputerem zachodzących poprzez interfejs użytkownika) oraz
sztuki.
Computer vision wykorzystuje np. obrazy pozyskane z kamer, jednakże
dane z nich pobrane przetwarza w odmienny od człowieka sposób.
Wymuszone jest to celem tejże dziedziny: aby podejmować decyzje dotyczące
fizycznych obiektów wymagane jest stworzenie ich usystematyzowanego
modelu opisu, nastawionego na rozwiązywanie problemów, który można
wydobyć z obrazu [3]. Człowiek jest w stanie rozwiązać wiele problemów
dotyczących obiektów, które widzi, bez większego problemu i zaangażowania,
nawet jeśli nie posiada szczegółowej wiedzy analitycznej dotyczącej procesu
percepcji obrazów. Surowe dane wizualne są chaotyczne, zawierają nieistotne
lub mylące składowe. Nasz układ wzrokowy jest w stanie wydobyć z takiego
obrazu wiarygodne, trójwymiarowe obiekty, korzystając z posiadanej wiedzy i
założeń. Computer vision korzysta z wiedzy dotyczącej procesu ludzkiego
widzenia i stara się naśladować jego działania [10].
3.1. Elementy procesu widzenia ludzkiego
Naukowcy przez kilka dekad podejmowali wiele prób i eksperymentów
mających na celu wyjaśnienie procesów zachodzących w ciele ludzkim
towarzyszącym procesowi widzenia. Oko człowieka, z którego układ nerwowy
21
pobiera widziany przez nas obraz, składa się z kilku prostych elementów
optycznych. Z tego powodu niemożliwym jest aby obraz padający na siatkówkę
był pozbawiony wad takich jak dyfrakcja oraz inne aberracje [31]. Fakt ten w
połączeniu z występowaniem dużych różnic posiadanych aberracji oraz
stopnia ich natężenia dla różnych oczu wiąże się z potrzebą istnienia
wyspecjalizowanych mechanizmów mogących zaradzić dużym
niedoskonałościom narządów pobierających obraz.
Eksperymenty prowadzone przez E. Freudera, J. Tenenbauma, H.
Barrowa dotyczyły rozpoznawania obiektów przez człowieka [16, 44]. Ich
rezultatem było stwierdzenie, iż w typowej scenie biurowej mózg ludzki używa
wiedzy „na biurkach znajdują się telefony i mają one kolor czarny” i na jej
podstawie oddziela czarną kroplę na brązowym tle z obrazu i rozpoznaje ją
jako telefon, nawet jeżeli dane wizualne były niewystarczające, aby to
jednoznacznie stwierdzić.
Badania prowadzone przez Elizabeth Warrington [48] dotyczyły
pacjentów z częściowym uszkodzeniem lewej lub prawej części ciemieniowej
mózgu. Spośród badanych wyróżniła grupę „konwencjonalną”, której
członkowie mieli uszkodzoną prawą część ciemieniową. Postrzeganie obiektów
przez pacjentów należących do tej grupy charakteryzowało się
rozpoznawaniem, nazywaniem, określaniem przeznaczenia, masy, rozmiaru itp.
Drugą wyróżnioną grupą była „niekonwencjonalna”, której pacjenci posiadali
uszkodzoną lewą część ciemieniową. Członkowie tej grupy mieli problemy z
rozpoznaniem obiektów, jednak prawidłowo postrzegali ich kształt i
geometrię. Poprzez swoje badanie autorka sformułowała następujące wnioski:
ośrodek w mózgu odpowiadający za kształty obiektów znajduje się w innym
miejscu niż ośrodki odpowiadające za rozpoznanie i określanie przeznaczenia
obiektów. Ponadto badania wykazały, iż układ wzrokowy jest w stanie określić
opis kształtu widzianego obiektu nawet jeśli obiekt ten nie został rozpoznany, a
jego użycie i cel jest dla niego nieznane.
Badania te wpłynęły na computer vision, które ówcześnie bazowało na
założeniu, iż rozpoznawanie obiektów jest zadaniem tak trudnym, że
potrzebuje każdego rodzaju informacji [28]. Warrington pokazała, iż mimo, że
jej pacjenci nie potrafili nazwać przedstawionych obiektów lub opisać ich
zastosowania, byli w stanie je schwytać na podstawie rozpoznanych kształtów,
22
nawet wtedy gdy próbowała utrudnić to zadanie poprzez dziwne ułożenie
przedmiotów lub ich specyficznym oświetleniem.
3.2. Przegląd zagadnień dotyczących wykrywania twarzy
Przez ostatnie lata stworzono wiele różnych algorytmów mających za
zadanie szybkie wykrywanie twarzy [43]. Z uwagi na liczbę różnych algorytmów
potrzebna była ich generalizacja, w celu omówienia i porównania zostanie
użyta klasyfikacja zaproponowana przez Yanga, Kriegmana, Ahuja [50], którą
sformułowali podczas badań nad tą dziedziną. Zaproponowana przez nich
taksonomia wyróżnia trzy metody:
• oparte o rysy twarzy (feature-based),
• oparte wygląd (appearance-based)
• oparte o szablony (template-based).
Poszczególne metody są opisane poniżej.
3.2.1. Metody oparte o rysy twarzy
Algorytmy opierające się na rysach twarzy podejmują próbę znalezienia
charakterystycznych cech takich jak oczy, usta, czy też brwi i sprawdzają
wiarygodność ich ułożenia względem siebie. W grupie tej znajduje się wiele
rozwiązań, które stanowiły wczesne podejścia do zagadnień wykrywania
twarzy (badania Fischlera i Elschlager, Kanade, Yuille), a także aktualne
algorytmy wykorzystujące wartości własne (badania Moghaddama i
Pentlanda), oparte na filtrach (badania Leung i Burl oraz Perona, Penev i
Atick, Wiskott i Fellous oraz Kruger). W ramach pracy przeanalizowano
algorytm wykorzystujący odkształcenia szablonów.
Algorytm wykorzystujący odkształcenia szablonów
Metoda opiera się na definiowaniu sparametryzowanych szablonów dla
szukanych rysów twarzy takich jak oczy i usta [53]. Każdy z nich posiada
zdefiniowaną funkcję energii, która opisuje stopnie natężenia obrazu
opisywanego szablonu. Następnie każdy szablon w sposób dynamiczny
modyfikuje swoje parametry (pozycja, orientacja, skala, itp) w tak aby
zminimalizować funkcję energii, deformując ją. Uzyskuje w ten sposób
najlepsze dopasowanie w źródłowym obrazie. Takie działania rozwiązują
problemy skutecznego wykrycia oczu za pomocą detekcji krawędzi. Znalezione
23
parametry stanowią deskryptory poszczególnych rysów twarzy, które mogą być
następnie użyte do ich śledzenia. Na poniższym rys. 9 przedstawiono diagram
blokowy wraz z zdjęciami ilustrującymi poszczególne etapy algorytmu.
Rysunek 9. Algorytm wykorzystujący odkształcenia szablonów - schemat
blokowy i kolejne kroki algorytmu dla przykładowego obrazu [53]
3.2.2. Metody oparte o wygląd
Rozwiązania opierające się na wyglądzie przeglądają małe, nakładające
się na siebie obszary w poszukiwaniu obiektów podobnych do twarzy. Z
powodu różnego położenia poszukiwanego obiektu i jego skali, obszary
wstępnego poszukiwania są wyznaczane przez kolejne przekroje piramidy. Dla
wstępnie znalezionych kandydatów stosują bardziej złożone algorytmy
(badania Sung i Poggio, Rowley i Baluja oraz Kanade, Romdhani i Torr oraz
Scholkopf, Fleuret i Geman, Viola i Jones). Większość rozwiązań używa
etykietowanych zestawów do nauki zawierających lub pozbawionych twarzy.
24
Algorytm wykorzystujący skupienia i analizę głównych składowych (PCA)
Algorytm używa bazy ręcznie przyciętych obrazów przedstawiających
twarze, a także obrazy jej nie zawierające, które pomagają rozróżnić tło od
poszukiwanego obiektu lub wykryć obiekty podobne to twarzy [40]. Zarówno
przeszukiwane obrazy wejściowe, jak i obrazy pochodzące z zestawu szkolącego
są zmniejszone do małych wymiarów (19 x 19 px). Szkolenie algorytmu polega
przygotowaniu modeli rozkładu intensywności pikseli zarówno dla zestawu z
twarzami jak i bez. Następnie empiryczne rozkłady są przybliżane za pomocą
metody k-średnich i analizę głównych składowych wyróżniając k skupień. W
celu wykrycia w obrazie wejściowym twarzy wybierane są różne jego obszary: o
różnych lokalizacjach i wielkościach. Każdy obszar porównywany jest z
rozkładami powstałymi z danych szkolących. Różnice pomiędzy
poszczególnymi obszarami są wyznaczane poprzez dwu-składnikową metrykę,
której wyniki są przekazywane na wejście sieci neuronowej MLP, której wynik
oznajmia wykrycie lub brak twarzy.
Rysunek 10. Algorytm wykorzystujący skupienia i analizę głównych składowych
(PCA) - wyznaczanie głównych składowych podczas szkolenia algorytmu [40]
25
3.2.3. Metody oparte o szablon
Algorytmy należące do tej grupy opierają się na active appearance
models (AAM, algorytmy w computer vision służące do dopasowywania
modelu statystycznego kształtu obiektu i jego wyglądu do obrazu) i bardzo
dobrze radzą sobie z wykrywaniem twarzy o różnych mimikach, czy różnym
położeniu jednak czas ich działania jest dłuży w porównaniu do
wcześniejszych grup.
Algorytm wykorzystujący active appearance model
W celu stworzenia modelu statystycznego algorytm korzysta z zestawu
szkolącego zawierającego obrazy, w których ręcznie zostały oznaczone
charakterystyczne punkty (np. środek i cztery skrajne punkty dla oka lub też
równo-oddalone od siebie punkty na skraju twarzy) [6]. Przy użyciu tych
danych tworzone są statystyczne modele kształtu, które następnie służą do
stworzenia znormalizowanych i teksturowanych łat. Po skojarzeniu kształtu i
tekstury obrazów szkolących tworzony jest wspólny i sparametryzowany model
wyglądu (apperance model). W celu rozpoznania twarzy na obraz wejściowy
nakładany jest model wyglądu, który jest w sposób iteracyjny do niego
dopasowywany. Proces dopasowywania jest kończony w momencie, gdy
kolejne przybliżenie nie stanowi poprawy w sensie różnic od wzorcowego
modelu. Wynikiem działania algorytmu jest odległość dopasowanego modelu
od wzorcowego.
Rysunek 11. Algorytm wykorzystujący active appearance model - kolejne etapy
tworzenia modelu wyglądu [6]
26
3.2.4. Porównanie metod
Pośród wielu różnić pomiędzy przedstawionymi algorytmami należy
wyróżnić przede wszystkim: złożoność obliczeniową, potrzebę uprzedniego
szkolenia algorytmu i złożoność przygotowania danych do tego celu, a także
ich dokładność wykrywania. Metody oparte o rysy twarzy nie wymagają
procesu uczenia, przez co ich implementacja jest szybsza, jednak ze względu
na małą odporność na zniekształcenia lub pozycję twarzy odmienną od
centralnej znajdują zastosowanie w specyficznych rozwiązaniach. Metody
oparte o szablon wykorzystują dane statystyczne pozyskane z zestawu
uczącego, zapewniają wysoką skuteczność, jednak ich duża złożoność nie
pozwala na zastosowanie w rozwiązaniach działających w czasie rzeczywistym.
Metody oparte o wygląd cechują się największą uniwersalnością, pozwalają na
zmianę takich parametrów jak dokładność przeszukiwania, czy też minimalny
rozmiar twarzy, które pozwalają uzyskać wymagany poziom skuteczności oraz
wydajności. Ponadto uczenie maszynowe umożliwia dostosowanie użycia tej
metody dla nietypowych warunków oświetlenia, czy też pozycji twarzy w
obrazie. Korzystając z powyższej analizy do realizacji celów pracy związanych z
wykrywaniem twarzy zostały wybrane metody oparte o wygląd.
27
4. Ambient Intelligence jako środowisko
monitorowania zachowań użytkowników
Ambient intelligence można zdefiniować jako „cyfrowe środowisko, które
w sposób aktywny, lecz rozważny, wspomaga ludzi w ich codziennym
życiu” [1]. Twórcy tego podejścia do jego głównych cech zaliczają:
wszechobecność, działanie w tle, dostosowywanie się i reagowanie na ludzi,
użyteczność w codziennym życiu. Rozwój tej filozofii obrazują przejściem z
komputerów typu mainframe (jeden komputer - wielu użytkowników, systemy
o dużej wydajności przetwarzania danych) poprzez komputery personalne
(jeden komputer - jeden użytkownik) aby finalnie ewoluować do Ubiquitous
computing (jedna osoba - wiele komputerów).
Nazwa AmI pierwszy raz została użyta w 1998 roku podczas wykładów Eli
Zelkha i Brian Epstein dla firmy Philips [13][14]. W czasie tych wystąpień
prezentowali oni przejście z konwencjonalnych urządzeń do inteligentnego
środowiska w kontekście elektroniki użytkowej. W opisywanych prezentacjach
badacze poruszają czynniki różnicujące otoczenia takie jak biuro w pracy oraz
pokój dzienny w domu, wymieniając m.in. zajmowaną pozycję i sposób oceny
technologii. Rozwój interfejsów programów komputerowych przyrównują do
procesu uczenia: aktualnie stosowane interfejsy traktują jako naukę jazdy na
rowerze, w obu przypadkach potrzebujemy nauczania poprawnego użycia.
Natomiast nowoczesne interfejsy traktują jako nieświadomą jazdę na rowerze,
nie staramy się myśleć o danej czynności, tylko ją podświadomie wykonujemy.
Zwracają także uwagę na fakt, iż ambient intelligence nie dotyczy wyłącznie
interfejsu użytkownika, a jego działanie polega na całym środowisku, w którym
użytkownik się znajduje, stosując odmienne metafory posługiwania się
komputerami, od tych które znamy z komputerów osobistych.
Systemy AmI w celu monitorowania zachowań użytkowników
przeprowadzają ich detekcję, a następnie śledzenie wykorzystując dane
pochodzące z sieci sensorów. Zagadnienia związane z tym procesem opisane są
w poniższych rozdziałach.
28
4.1. Przegląd zagadnień związanych ze śledzeniem ciała
człowieka
Śledzenie można zdefiniować jako dopasowanie obiektów w kolejnych
klatkach obrazu za pomocą cech takich jak punkty, linie i regiony. Poniższe
rozdziały opisują śledzenie dowolnego obiektu, natomiast niniejsza praca
wykorzystywać będzie śledzenie ciała człowieka. Metody te zazwyczaj
zakładają, że stopień deformacji i wielkość ruchu pomiędzy przylegającymi
klatkami jest mały. Z uwagi na liczbę różnych algorytmów potrzebna była ich
generalizacja, w celu omówienia i porównania zostanie użyta klasyfikacja
zaproponowana przez Yilmaza [51], którą sformułował podczas badań nad tą
dziedziną. Zaproponowana przez niego taksonomia wyróżnia trzy metody:
• oparte o punkty (ang. point tracking),
• oparte o rdzeń (ang. kernel tracking)
• oparte o zarysy (ang. silhouette tracking).
Poszczególne metody są opisane poniżej. Ponadto w wielu przypadkach,
wykorzystują one techniki skanowania trójwymiarowego opisanego w
rozdziale „Przegląd zagadnień dotyczących skanowania trójwymiarowego”.
4.1.1. Metody oparte o śledzenie punktów
Metody te używają osobnego mechanizmu służącemu detekcji obiektów
w każdej klatce. Po wykryciu takiego obiektu jest on reprezentowany przez
zbiór punktów, których wybór oparty jest o stan obiektu z poprzednich klatek
oraz ruch wykonany przez obiekt pomiędzy klatkami.
Algorytm wykorzystujący filtr Kalmana
Technika oparta o filtr Bayesowski, składający się z trzech osobnych
modeli probabilistycznych: systemowy, pomiarów, uprzedni [29]. Model
systemowy opisuje zmianę wektora stanu w czasie w postaci macierzy
przekształceń. Stan obiektu zawiera informacje o lokalizacji śledzonego
obiektu poprzez zapamiętanie punktów, które do niego należą. Model
pomiarów wiąże pomiary wektora do obecnego stanu poprzez macierz
pomiarów. Model uprzedni opisuje wiedzę dotyczącą stanu systemu przed
dokonaniem pierwszych pomiarów. Filtr Kalmana uśrednia przewidywania
stanu systemu używając średniej ważonej, faworyzującej przybliżenia, które
29
obarczone są mniejszą niepewnością. Uśrednione przybliżenie, które wyznacza
ruch obiektu, jest nowym stanem znajdującym się pomiędzy prognozowanym,
a zmierzonym stanem i posiada lepszą szacunkową niepewność niż
którykolwiek z nich. Proces uśrednionego przybliżenia działa rekursywnie
wykorzystując ostatnie najlepsze przybliżenie, nie korzystając z całej historii
stanów. Wykorzystanie trzech niezależnych przybliżeń zwiększa odporność
algorytmu na dane posiadające duże zakłócenia, szumy.
4.1.2. Metody oparte o śledzenie rdzenia
Rdzeniem może być kształt lub wygląd obiektu (przykładowo prostokątny
szablon lub eliptyczny kształt wraz z histogramem). Obiekty są śledzone
poprzez obliczenia ruchu rdzenia w kolejnych klatkach. Ruch jest zazwyczaj
formą parametryzowanych transformacji takich jak obrót, przesunięcia.
Algorytm ICP
Technika porównuje dwa zbiory punktów w przestrzeni trójwymiarowej
(np. zeskanowane dane trójwymiarowe oraz trójwymiarowy model obiektu,
który zamierzamy śledzić) [9]. Algorytm ICP (ang. Iterative Closest Point)
znajduje skorelowane ze sobą punkty i szacuje przybliżenia transformacji ich
ruchu pomiędzy dwoma zbiorami punktów minimalizując błąd (zazwyczaj
odległość Euklidesową). Metodyka ta pozwala zarówno na użycie
współrzędnych punktów w przestrzeni wraz z ich kolorami poprzez dołączenie
informacji o kolorze do odległości między punktami lub poprzez filtrowanie
dopasowań na podstawie podobieństw kolorów. Algorytm początkowo
wykonuje się niezależnie dla każdej kończyny trójwymiarowego modelu.
Początkowa pozycja kończyny jest przybliżeniem z poprzedniej klatki. Ważną
cechą opisywanego algorytmu jest wykorzystywanie tylko widocznych
punktów, jeżeli kończyna nie posiada widocznych punktów, zakłada się, że jej
ruch jest taki sam jak w poprzedniej klatce. W przypadku śledzenia człowieka
do modelu wzorcowego wprowadza się zależności pomiędzy poszczególnymi
kończynami.
4.1.3. Metody oparte o śledzenie zarysów
Śledzenie jest wykonywane przez szacowanie obszaru obiektu w każdej
klatce. Metody te używają informacji zawartej w obszarze obiektu, która
zazwyczaj jest reprezentowana przez model kształtu przykładowo mapy
30
krawędzi. Za pomocą użytego modelu dla obiektu śledzone są one poprzez
dopasowania kształtów lub rozwój zarysu.
Algorytm wykorzystujący optical flow
Metoda ta skupia się w dużej mierze na powierzchni widzianego obrazu,
określa z niego pozycję obserwatora, ruch obserwowanych obiektów wraz z ich
kierunkiem [28]. Technika korzysta z zależności pomiędzy obserwatorem, a
obserwowaną sceną powstających w wyniku ich relatywnego ruchu. Ze
względu na działanie metody wykorzystujące optical flow dzielą się na
algorytmy analizujące ruch wszystkich pikseli, zwane gęstymi oraz metody
rzadkie, które analizują wybrane piksele. Realizacją rzadkiej metody optical
flow jest algorytm Lucas-Kanade. Zakłada on stałość przepływu w obrębie
sąsiedztwa pikseli, które są wybrane do śledzenia. Sąsiedztwo piksela jest
wybierane za pomocą metody najmniejszych kwadratów. Realizacją gęstej
metody optical flow jest algorytm Horn-Schunck. Zakłada on płynność
przepływu w całym obrazie starając się minimalizować zniekształcenia w
przepływie.
4.1.4. Porównanie metod
Powyższe metody różnią się przede wszystkim sposobem tworzenia
modelu reprezentującego ciało ludzkie oraz rodzajem danych wejściowych.
Należy zauważyć, iż żadna z powyższych metod nie posiada cech
uniwersalnych (np. żadna z nich nie zapewnia złożoności umożliwiającej pracę
w czasie rzeczywistym). Tym samym trudno wyłonić metodę dominującą nad
pozostałymi, co może skłaniać do korzystania z różnych algorytmów w
zależności od dostępnego sprzętu lub oczekiwanej wydajności, bądź ich
syntezy. Ostatnie badania miały na celu znalezienie nowej metody
umożliwiającej śledzenie ciała ludzkiego w czasie rzeczywistym [37].
Wynaleziona metoda korzystała z danych pozyskanych ze skanera 3D
wykonując na nich algorytmy oparte o śledzenie zarysów. Całość metody
wsparto uczeniem maszynowym, w celu zmniejszenia złożoności obliczeniowej
algorytmów śledzących obiekty. Rozwiązanie takie ukazuje współczesne
podejście do opisywanego problemu, które zakłada potrzebę połączenia wielu
dziedzin i metod.
31
4.2. Przegląd zagadnień dotyczących skanowania
trójwymiarowego
Zagadnienia skanowania trójwymiarowego stosowane są w wielu
dziedzinach, począwszy od przemysłu filmowego i gier wideo, poprzez kontrolę
jakości, a skończywszy na wzornictwie przemysłowym. Dane dotyczące
trójwymiarowego modelu obiektów z powodzeniem zwiększają skuteczność
np. zagadnień związanych ze śledzeniem ciała ludzkiego opisanych w rozdziale
„Przegląd zagadnień związanych ze śledzeniem ciała człowieka”. Zgodnie z
taksonomią przyjętą przez Curlessa [7] wyróżniamy skanowania aktywne oraz
pasywne.
4.2.1. Metody oparte o skanowanie aktywne
Ze względu na niską prędkość skanowania oraz potrzebę stosowania
inwazyjnych maszyn współrzędnościowych, które wykluczają przydatność tych
technologii dla realizacji tej pracy, dalszy opis skanowania kontaktowego
zostanie pominięty.
Skupiając się na technologiach skanowania dystansowego możemy
wyróżnić m.in.:Time-of-flight [12] i Structured light [8].
Time-of-flight
Kamery typu time-of-flight wykrywają głębię poprzez emitowanie
impulsowego lub modulowanego sygnału świetlnego, dla którego mierzy się
różnice czasową czoła odbitej fali. Szczegółowy proces zależy od tekstury
skanowanej sceny, a jego realizacja, przy użyciu przybliżeń, możliwa jest w
czasie rzeczywistym, niestety, dane pozyskane tą metodą zawierają wiele
błędów pomiaru. Dodatkowo rozdzielczość sensora skanującego jest zazwyczaj
ograniczona do rozdzielczości 320 x 240 px lub mniejszej, co stanowi ułamek
rozdzielczości współczesnych aparatów. W celu przeciwdziałania tym
niedogodnościom istnieją techniki, które łączą kamerę mierzącą głębię w
niskiej rozdzielczości z kamerą RGB o wysokiej rozdzielczości. Opierają się
one w głównej mierze na zwiększaniu rozdzielczości obrazu wejściowego
zakładając, iż ułożenie i nieciągłości występują w obu obrazach na raz.
Usprawnienie takie co prawda zwiększa rozdzielczość skanowanej sceny i
poprawia jakość otrzymywanych obrazów, jednak dla niestandardowych
obiektów nie jest tak skuteczne.
32
Structured light
Skanery typu structured light składają się z jednej lub wielu kamer oraz
jednego lub wielu źródeł światła. Poszczególne realizacje rzeczonych skanerów
różnią się także rodzajem użytego światła, którego spektrum jest zazwyczaj
niewidoczne, spotyka się InfraRed Structured Light, Imperceptible
Structuded Light i Filtered Structured Light.W sposobie działania structured
light podobne jest do klasycznego sensora stereoskopowego, w którym kamera
zastąpiona została źródłem światła, zazwyczaj laserem lub rzutnikiem
przeźroczystym. Najprostszą formą skanera jest laser rzucający pojedynczy
promień, rzucający na skanowaną scenę pojedynczy punkt. Z powodu
potrzeby skanowania w obu osiach, zamiast niego stosuje się emisje
pojedynczej szczeliny, co wiąże się z potrzebą jej przesuwania lub
powszechniej siatki punktów rozłożonych równomiernie. W przypadku
problemów ze skorelowaniem punktów na siatce źródłowej z punktami
wyświetlonymi na skanowanej scenie stosuje się specjalny wzór siatki, w
którym każdy punkt jest łatwo odróżnialny od reszty.
4.2.2. Metody oparte o skanowanie pasywne
Pasywne skanery nie emitują żadnych promieni. Zamiast tego starają się
korzystać z promieniowania środowiska, które jest odbijane. W ramach metod
opartych o skanowanie pasywne możemy wyróżnić m.in.: stereoskopię oraz
fotometrię.
Stereoskopia
Systemy te używają zazwyczaj dwie kamery oddalone od siebie małym
odstępem, który równy jest średniemu rozstawowi oczu ludzkich - 65mm. Za
pomocą analizy różnicy pomiędzy obrazami uchwyconymi przez obie kamery
wyznacza się odległości pomiędzy punktami. Do zalet tych technik należy
zaliczyć uzyskiwanie obrazów w wysokiej rozdzielczości, a także bardzo niskie
koszty urządzeń. Zjawisko bazuje na postrzeganiu obrazu trójwymiarowego
przez człowieka, z tą różnicą, że oczy zmieniają kąty swoich nachyleń na
podstawie dystansu do obserwowanego obiektu.W celu zachowania zgodności
z tym zachowaniem stosuje się przekształcenia geometryczne. Dodatkowo
istnieje problem przynależności, który polega na przyporządkowaniu części
obrazu do innego ujęcia tej samej sceny. Jego rozwiązanie polega na
wykrywaniu podobieństw lub cech szczególnych.
33
Fotometria
Fotometria stereofoniczna jest techniką przybliżania wektorów
normalnych powierzchni poprzez obserwację obiektu w różnych warunkach
oświetlenia. Metoda opiera się na założeniach, iż korelacja punktów na
obiekcie znana jest a priori, ponieważ poszczególne zdjęcia wykonywane są z
tego samego miejsca. W tej technice kształt wyznaczany jest poprzez pomiary
ilości światła i jego kąta odbicia od skanowanego obiektu.
4.2.3. Porównanie metod
Powyższe metody różnią się przede wszystkim swoim zastosowaniem, w
przypadku potrzeby zeskanowania dużej sceny lepsze okażą się metody oparte
o skanowanie pasywne, w których wykorzystywane sensory mogą posiadać
dużą rozdzielczość. Jeżeli oczekiwane jest skanowanie z bardzo dużą
dokładnością lub kluczowy jest czas przetwarzania, wówczas należy wybrać
metody oparte o skanowanie aktywne.
34
5. Metody interakcji człowieka z systemem
komputerowym
Human-Computer Interaction jest filozofią tworzenia interfejsów
skupiając się na jego użytkowniku, zamiast na urządzeniu. Doktryna ta skupia
się na szerokim znaczeniu użytkowania systemu, dlatego też korzysta z badań
psychologicznych, nauk kognitywnych, ergonomii, socjologii, inżynierii,
biznesu, projektowania graficznego oraz projektowania systemów [17].
Filozofia ta nie skupia się wyłącznie na oprogramowaniu i jego interfejsie, a na
wszystkich czynnikach, które mają wpływ na interakcje z użytkownikiem (np.
sprzęt i środowisko). HCI we wszystkich swoich aspektach kładzie nacisk na
wygodę użytkownika.
5.1. Przegląd zagadnień związanych z rodzajem
interfejsu użytkownika
W celu uzyskania najlepszych wrażeń związanych używaniem systemu
wynaleziono nowe rodzaje interfejsów użytkownika stosowanych w Human-
Computer Interaction, które można podzielić na trzy kategorie: TUI (ang.
Tangible User Interface), SUI (ang. Surface User Interface), AUI (ang. Ambient
User Interface) [21]. Poszczególne kategorie zostały opisane w poniższych
rozdziałach.
5.1.1. Tangible User Interface
W odróżnieniu od GUI (ang. Graphical User Interface), który
przedstawia elementy poprzez wyświetlanie ich wirtualnych odpowiedników
na ekranie, TUI używa specjalnie zaprojektowanych fizycznych przedmiotów,
które zapewniają zarówno prezentację elementów jak i ich kontrolę [46].
Pierwsza definicja opisywanej kategorii interfejsów zakładała, że element
posiada swoje wejście i wyjście odzwierciedlone w fizycznym obiekcie, jednak
ewoluowała ona wraz z rozwojem tej dziedziny. Obecnie uznawany paradygmat
stwierdza, że użytkownik manipuluje fizycznym obiektem za pomocą gestów,
które są wykrywane przez system i używane do jego kontroli. Poprzez prostą
metaforę użytkowania i brak rozróżnienia pomiędzy urządzeniami sterujących
wejściem, a urządzeniami reprezentujących wyjście, TUI w odpowiednio
dobranych zastosowaniach stanowi naturalny sposób obsługi systemu dla
użytkownika. Należy przy tym pamiętać, iż brak tego rozróżnienia wymaga
35
dobrze zaprojektowanego interfejsu użytkownika oraz wyklucza zastosowania
w każdym scenariuszu. Na poniższym rys. 12 znajduje się system Siftables,
który używa specjalnych prostopadłościanów do kontrolowania aplikacji.
Rysunek 12. Siftables - przykład systemu wykorzystującegoTangible User
Interface
5.1.2. Surface User Interface
SUI jest klasą interfejsów użytkownika, które bazują na ekranie
emitującym światło (takim jak ekran LCD lub rzutnik cyfrowy), posiadającym
warstwę umożliwiającą jego kontrolę (taką jak ekran dotykowy - ang.
touchscreen) [20]. Podobnie jak w przypadku TUI wejścia i wyjścia z systemu
są ściśle ze sobą powiązane. W celu wykrycia danych wprowadzanych przez
użytkownika używa się różnych rozwiązań takich jak: Computer Vision,
membranę rezystywną lub pojemnościową. Wykorzystywane są zarówno w
przestrzeni publicznej (kioski interaktywne, nowoczesne bankomaty) oraz w
urządzeniach mobilnych (nowoczesne smartfony takie jak Apple iPhone) gdzie
odrębna klawiatura i mysz nie może lub nie powinna być zastosowana.
Projektując systemy wykorzystujące SUI należy pamiętać o fizycznych
odczuciach wyświetlanych elementów oraz o ograniczeniach konkretnego
sprzętu, który ma służyć jako interfejs. Na poniższym rys. 13 znajduje się
Microsoft Surface, który jest stosowany w wielu hotelach oraz lokalach
rozrywkowych jako punkty pozyskiwania informacji.
36
Rysunek 13. Micrososft Surface - przykład systemu wykorzystującego Surface
User Interface
5.1.3. Ambient User Interface
Opisywane powyżej technologie wymagają uwagi i zaangażowania
użytkownika. AUI stara się wyświetlić lub przekazać informację w taki sposób,
żeby mogła być ona zignorowana [35]. Użytkownik w zależności od potrzeby
jest w stanie uzyskać ją od systemu. Filozofia ta opiera się na pojęciu widzenia
obwodowego. Dowiedziono, iż człowiek posiada umiejętności do
rozpoznawania znanych mu struktur oraz identyfikacji szczególnych ruchów,
które znajdują się poza obszarem wzroku. W praktyce stosuje się wyświetlacze
środowiskowe (ang. ambient displays), dźwięk, ruch lub zapach, który może
przekazywać w tle informacje pochodzące z systemu. Ze względu na swoje
założenia systemy oparte o AUI nie opierają swojego działania w sposób
krytyczny o dane wejściowe, system może pobierać dane wejściowe gdy
użytkownik uzna to za odpowiednie i potrzebne. Na poniższym rys. 14
znajduje się interaktywna przestrzeń umieszczona w Rockefeller Center, która
reaguje na obecność użytkowników.
37
Rysunek 14. Interactive Breezeway - przykład systemu wykorzystującego
Ambient User Interface
5.1.4. Porównanie rodzajów interfejsu
Porównując powyższe rodzaje interfejsów użytkownika należy stwierdzić,
iż żaden z nich nie jest uniwersalny i decyzja o użyciu konkretnego
rozwiązania powinna wynikać z celu systemu. Przy projektowaniu interfejsów
zgodnych z Human-Computer Interaction należy wziąć pod uwagę stopień
zaangażowania użytkownika, ilość prezentowanych informacji oraz ilość
użytkowników i rodzaj wymaganej interakcji
5.2. Klasyfikacja gestów
Ze względu na rozległość dziedziny jakim jest rozpoznawanie gestów
postanowiono, iż ich analiza zostanie zawężona do gestów ręki z uwagi na
powszechność ich stosowania oraz ich największą uniwersalność, która
pozwala na ich przystosowanie do wymagań wybranych scenariuszy.
Kontrolowanie aplikacji za pomocą rozpoznawania gestów wykonywanych
przez człowieka korzysta z faktu, iż są one integralną częścią komunikacji. W
celu porównania różnych rodzajów wykonywanych gestów oraz określenia
rodzaju aplikacji, w których mogą być one stosowane, zastosowano taksonomię
opisaną przez Wu i Huanga [52]. Klasyfikacja ta oparta jest o reakcje na różne
grupy gestów: konwersacyjne, kontroli, manipulacyjne oraz komunikatywne.
Poszczególne grupy zostaną opisane i porównane poniżej.
38
• Gesty konwersacyjne - Do gestów konwersacyjnych zaliczamy języki
migowe, a aplikacje je rozpoznające używane są przede wszystkim w
środowiskach testowych lub przeznaczonych dla osób niepełnosprawnych.
• Gesty kontroli - Gesty kontroli służą przede wszystkim do wskazywania
obiektów za pomocą gestów wskazywania lub do nawigacji używając
wzajemnego położenia obu rąk w przestrzeni trójwymiarowej.
• Gesty manipulacyjne - Gesty manipulacyjne sprawdzają się najlepiej
podczas interakcji z wirtualnymi obiektami.
• Gesty komunikatywne - Gesty komunikatywne są subtelnymi ruchami
wykonywanymi przez ludzi podczas porozumiewania się i są przedmiotem
analizy psychologicznej, którą wspomagają aplikacje rozpoznające tą grupę
gestów.
5.2.1. Porównanie rodzajów grup
Powyższe grupy różnią się przede wszystkim swoim zastosowaniem oraz
rodzajem systemu, który ich używa. Najszersze zastosowanie posiadają gesty
manipulacyjne oraz kontroli ze względów podniesienia użyteczności aplikacji,
a także łatwości i intuicyjności takich rozwiązań.
5.3. Metody interakcji związanej z wykrywaniem gestów
ręki
Rozpoznawanie gestów jest zagadnieniem często opisywanym w
rozlicznych publikacjach naukowych. Dotychczasowe badania w dużej mierze
dotyczą gestów dynamicznych wykonywanych w dwuwymiarze lub gestów
statycznych w trójwymiarze. Obecnie powstające rozwiązania komercyjne
rozpoznają gesty dynamiczne w trójwymiarze lecz nie są one opisywane w
ogólnie dostępnych publikacjach. Wobec powyższego zaistniała potrzeba
utworzenia nowej metody rozpoznawania gestów bazującej na rozwiązaniach
znanych z dotychczasowych badań.
5.3.1. Ukryte modele Markowa
HMM (ang. Hidden Markov Model) jest procesem stochastycznym
generowanym przez dwa połączone ze sobą mechanizmy probabilistyczne [27].
Zakłada się, iż proces ten znajduje się w pewnym stanie w dyskretnych
momentach czasu. Jego obserwacja generowana jest przez losową funkcję
39
odpowiadającą bieżącemu stanowi procesu. Zmiany stanów zachodzą zgodnie
z macierzą prawdopodobieństw. Na zewnątrz widziany jest tylko wyjście
funkcji losowych związanych z każdym stanem i niemożliwa jest obserwacja
stanu (stany ukryte), w którym proces się znajduje. Dzięki swojej konstrukcji
Hidden Markov Model może być stosowany do rozwiązywania różnych klas
problemów, najbardziej przydatnym w przypadku rozpoznawania gestów jest
znalezienie prawdopodobieństwa występowania ciągu obserwacji dla
ustalonego modelu.Wówczas pojedynczy gest jest reprezentowany przez jeden
model.
5.3.2. Self-organizing map
Self-organizing map, zwana także mapą Kohonena, jest rodzajem sieci
neuronowej wykorzystującej sztuczną inteligencję. Uczenie maszynowe tejże
sieci przebiega w sposób nienadzorowany - bez nauczyciela. W wyniku
szkolenia sieci tworzona jest dyskretna reprezentacja wejściowej przestrzeni,
posiadającej małą ilość wymiarów (zazwyczaj dwa). Przestrzenie te noszą
miano map. W odróżnieniu od pozostałych sieci neuronowych self-organizing
map używają relacji sąsiedztwa w celu zachowania topologicznych własności
przestrzeni wejściowych. Związane jest to z samoistnym tworzeniem klastrów
węzłów mapy, w których odległość pomiędzy węzłami jest odwrotnie
proporcjonalna do podobieństwa między nimi. Metoda ta pozwala także na
czytelne obrazowanie zależności występujących w wielowymiarowych danych
używając do tego celu skalowania wielowymiarowego.
5.3.3. Porównanie metod
Powyższe metody różnią się przede wszystkim potrzebą występowania
nauczyciela podczas procesu uczenia sieci oraz wydajnością przetwarzania.
Zastosowanie self-organizing map eliminuje potrzebę ręcznego etykietowania
nagranych sekwencji gestów w procesie uczenia, jednakże jej złożoność
obliczeniowa w przypadku modeli posiadających dużą ilość wymiarów, jakimi
bez wątpienia są gesty, uniemożliwia ich klasyfikację w czasie rzeczywistym.
Hidden Markov Model mimo zwiększonego nakładu pracy spowodowanego
przez wymóg etykietowania nagranych sekwencji gestów w procesie uczenia,
dobrze radzi sobie z modelami o dużej ilości wymiarów i z tego względu
wydaje się stanowić lepsze rozwiązanie dla klasyfikatora gestów.
40
6. Projekt systemu
Poniższy rozdział zawiera opis procesu projektowania budowanego
systemu poprzez zebranie wymagań zleceniodawcy i podjęcie decyzji
projektowych na podstawie analizy przeprowadzonej w początkowej części
niniejszej pracy.
6.1. Wizja systemu
6.1.1. Opis organizacji
Realizowany system przeznaczony jest dla Wydziału Chemii Politechniki
Gdańskiej. Jego powstanie wiąże się z budową podziemnego łącznika na
terenie kampusu uczelni, który będzie łączył dotychczasowe trzy budynki
wydziału. Inwestycja poza powstaniem nowych pomieszczeń zakłada także
stworzenie kilku ekspozycji typu Ambient Intelligence w przestrzeni
publicznej w ich obrębie, stanowiąc nowy element interakcji z jego
użytkownikami. W projekcie przewidziano różne formy instalacji
interaktywnych zawierających ściany wideo, składających się z monitorów
modułowych o dużych przekątnych, kamery, czujniki, diody oraz inne
urządzenia, które mają składać się na interaktywny korytarz.
6.1.2. Kontekst systemu
Zleceniodawca projektu, profesor Elżbieta Ratajczyk-Piątkowska z
Katedry Architektury Użyteczności Publicznej Wydziału Architektury
Politechniki Gdańskiej, sformułowała wymagania opisujące planowane
interakcje dla wszystkich realizowanych systemów. Wizualizacja projekcji
cienia polega na stworzeniu wypełnionego obrysu, reprezentującego
użytkownika i wyświetleniu go na ścianie wideo. Animacja obrysu powinna
odzwierciedlać zmiany pozycji oraz ruchu użytkownika. Grupa interakcji
symbolizujących stany skupienia zawiera 3 wizualizacje: wody, lodu, pary
wodnej. Wizualizacja wody symbolizuje upłynnienie kształtu poprzez
wyświetlenie pionowych linii, które mogą być kształtowane przez ruchy
użytkownika. Animacja linii miałaby przypominać propagację fali tłumionej
poprzez na przykład ruch ręki. Wizualizacja lodu symbolizuje jego kruszenie
poprzez wyświetlanie siatki złożonej z pionowych i poziomych linii, które
mogą być transformowane przez ruchy użytkownika. Animacja linii miałaby
przypominać tworzenie za ich pomocą perspektywy poprzez ruchy całego ciała
41
użytkownika. Wizualizacja pary wodnej symbolizuje jej powstawanie na szybie
poprzez wyświetlanie nieregularnych spiral logarytmicznych, które mają za
zadanie reprezentować parę wodną powstającą po dmuchnięciu na szybę.
Animacja krzywych miałaby przypominać zwiększanie ich rozmiaru wraz z
przybliżaniem się użytkownika. Grupa wizualizacji została przedstawiona na
poniższym diagramie zawartym na rys. 15.
42
Rysunek 15. Diagramy przedstawiające zamysł zleceniodawcy dotyczący grupy
interakcji symbolizujących stany skupienia: wody, lodu, pary wodnej
Projekt interaktywnego korytarza zakłada utworzenie dwóch ścian
wideo, w miejscach, które zaplanowane są jako miejsce spotkań studentów. Ich
głównym zadaniem jest przeprowadzanie nieinwazyjnej interakcji z
przechodzącymi użytkownikami posiadając równocześnie atrakcyjną i
przyciągającą oko formę prezentacji. Do ich uzyskania planowane jest
powstanie różnych rodzajów systemów, wśród nich znajdują się: interaktywna
tablica Mendelejewa, tablica z ogłoszeniami, kontrolowana poprzez wysyłanie
wiadomości SMS z telefonów komórkowych, zestaw nieskomplikowanych gier
komputerowych, umożliwienie przeglądania stron internetowych oraz
wyświetlanie prezentacji multimedialnych. Na poniższym planie zawartym na
rys. 16 przedstawione jest rozmieszczenie poszczególnych systemów oraz ich
połączenie w powstających pomieszczeniach.
43
Rysunek 16. Plan lokalizacji poszczególnych elementów systemu w miejscu
powstającego korytarza
Projekt zawiera dwie ściany wideo różnych rozmiarów oznaczonych na
planie jako Ekran A, wyróżniony kolorem zielonym oraz Ekran B, wyróżniony
kolorem zielonym. Oba systemy połączone są do Centrum Sterowania, które
zawierać będzie serwery zarządzające ekranami oraz ich interakcją. Ściana
wideo według projektu składa się z 4 grup monitorów modułowych w układzie
2x2 każda w przypadku Ekranu A lub 6 monitorów w układzie 3x2 dla Ekranu
B. Do realizacji wybrane zostały monitory modułowe o przekątnej 46” o
44
rozdzielczości 1920 x 1080 px. W skład ściany wchodzi także serwer
zarządzający ekranem, do którego podłączone są także sensory takie jak:
kamery CMOS wraz z optyką, mikrofony kierunkowe, czujniki odległości,
nakładki dotykowe na ekran. Za wykonanie ścian wideo odpowiada
zewnętrzny wykonawca. Na poniższych schematach zawartych na rys. 17, rys.
18 przedstawiono budowę oraz elementy obu ścian.
Rysunek 17. Schemat budowy ściany wideo tworzącej Ekran A
Rysunek 18. Schemat budowy ściany wideo tworzącej Ekran B
Projektowany system, którego dotyczy ta praca, ma za zadanie
kontrolować interaktywną tablicę opisaną w projekcie jako Ekran B. Ściana
wideo ma zawierać wizualizację układu okresowego pierwiastków zwaną
tablicą Mendelejewa, w której pierwiastki zastąpione są zdjęciami
przedstawiającymi detale architektoniczne budynków Politechniki Gdańskiej.
45
Ściana wideo powinna prezentować trójwymiarową scenę zawierającą model
wizualizacji, którym jest opisywana tablica. Ściana wideo powinna reagować
na przechodzących w jej okolicach użytkowników poprzez wykrywanie ich
twarzy i zastępowanie nimi losowo wybranych pierwiastków na pewien okres
czasu. System powinien wykrywać i śledzić użytkowników w strefie przed
ekranem umożliwiając im kontrolowanie trójwymiarowego modelu tablicy
Mendelejewa za pomocą gestów rąk.
Rysunek 19. Wizualizacja architektoniczna interaktywnej ściany wideo (Ekran
B) umieszczonej na korytarzu Chemii Politechniki Gdańskiej
Użytkownikami nowego systemu będą przede wszystkim studenci oraz
wykładowcy, umieszczone ekspozycje mają na celu stać się miejscem spotkań
dla jego użytkowników. Do tej pory na kampusie uczelni nie były obecne
systemy tego typu, jednak ze względu na wysoki średni poziom zaawansowania
obsługi komputerów przyszłych użytkowników, a także nacisk na intuicyjność
użycia rozwiązań Human-Centric Interaction nie przewiduje się potrzeby
tworzenia szkoleń z obsługi systemu.
6.1.3. Zakres funkcjonalności
Interakcja z użytkownikami
Użytkownik systemu może pełnić dwie role w systemie: aktywną, poprzez
kontrolę aplikacji przez swoje gesty oraz pasywną, przez przebywanie w
pobliżu tablicy. System powinien wykrywać twarze użytkowników pasywnych
i wyświetlać je okresowo na ścianie wideo. Danymi wejściowymi do systemu
46
w takim przypadku jest strumień wideo zawierający przechodzących przez
korytarz użytkowników. Dane takie powinny pochodzić z sensora
umieszczonego nad ścianą wideo w kierunku korytarza. W wyniku
przeprowadzonych badań i eksperymentów stwierdzono, iż w celu
zapewnienia wykrywania twarzy użytkowników, sensory powinny zapewniać
obraz w rozdzielczości przynajmniej 1280×720 px. System powinien nadawać
role użytkownikom wykrywając pozycję użytkownika aktywnego: ustawienie
równoległe do ekranu, brak poruszania się podczas wykrywania. Przestrzeń,
przeznaczoną dla użytkowników aktywnych, przed przed ścianą możemy
podzielić na trzy strefy co przedstawia poniższy schemat na rys. 20.
Rysunek 20. Schemat stref przed ekranem, każda ze stref może wyróżniać się
indywidualnymi gestami
Poszczególne strefy mogą posiadać różne przypisane gesty, które są
rozpoznawane, a wykonywane przez przebywających w nich użytkowników.
Danymi wejściowymi do systemu w takim przypadku jest strumień wideo oraz
zestaw wskazań sensorów dotyczących przestrzeni przed ścianą wideo. Dane
takie powinny pochodzić z sensorów umieszczonych pod ścianą wideo w
47
kierunku korytarza. Odległość stref od ściany wideo podyktowana jest
zasięgiem działania sensora. Użytkownicy w strefie pierwszej mają możliwość
kontrolowania trójwymiarowego modelu wizualizacji. Mogą wykonać gest
przybliżania, który zmienia odległość kamery od modelu wizualizacji oraz gest
nawigacji, który za pomocą przesuwania kamery umożliwia oglądanie różnych
części modelu wizualizacji. Gest przybliżania polega na zmianie odległości
pomiędzy uniesionymi rękoma użytkownika ponad jego biodra, odległość ta
powinna być powiązana ze współczynnikiem odległości kamery od modelu
wizualizacji. Gest nawigacji polega na zmianie pozycji prawej ręki, która jest
uniesiona ponad biodro użytkownika, podczas gdy jego lewa ręka spoczywa
poniżej biodra, pozycja prawej ręki powinna być powiązana ze
współczynnikiem przesunięcia kamery. W wyniku przeprowadzonych badań i
eksperymentów stwierdzono, iż w celu zapewnienia analizy gestów w czasie
rzeczywistym, sensory wspomagające wykrywanie i śledzenie użytkowników
powinny zapewniać odczyty danych z częstotliwością większą lub równą 30 fps
oraz zapewniać obraz w rozdzielczości przynajmniej 640 x 480 px.
6.1.4. Zapewnienie prywatności danych do projektu
W systemach posiadających nowoczesny interfejs użytkownika
powszechne obawy budzi ochrona prywatności jego użytkowników, sposoby i
zakres przetwarzania danych, zebranych przez rozmaite czujniki. Współczesne
społeczeństwo zaczęło adaptować się do przebywania w przestrzeni pokrytej
przez sensory, które ingerują w ich prywatność, zarówno w domu (rozmowy
wideo, systemy antywłamaniowe) jak i w przestrzeni publicznej (fotoradary,
systemy monitoringu oraz systemy nawigacji i smatfony) [1]. Systemy takie
osiągnęły pewien poziom zaufania, jednak zauważono, że zbieranie i
przetwarzanie takich danych używając w tym celu systemów komputerowych
wzmaga obawy dotyczące ich użycia w niepowołanych celach [16]. Projektując
systemy opierające się na Ambient Intelligence należy zwrócić uwagę na kilka
czynników. Umieszczając system w przestrzeni publicznej możemy naruszać
obszar, który do tej pory był traktowany przez użytkowników jako zapewniający
pewien stopień prywatności. Zbierając dane, które można w łatwy sposób
przypisać do użytkownika, którego dotyczą (na przykład obraz pobrany z
sensorów CMOS), mogą być sklasyfikowane jako poufne. Przechowywanie
oraz dostęp do danych zgromadzonych wcześniej powinno być realizowane
tylko wtedy, gdy zachodzi taka potrzeba, pozostałe dane powinny mieć
charakter tymczasowy.
48
6.1.5. Wymagania jakościowe
Z uwagi na dużą ekspozycję oraz reprezentatywność tworzonego systemu
konieczne jest zapewnienie wysokiej dostępności implementując rozwiązania
Software Fault Tolerance (techniki unikania awarii w oprogramowaniu). Ze
względu na mnogość sensorów oraz powszechne obawy dotyczące prywatności
użytkowników poruszanych w rozdziale „Zapewnienie prywatności danych do
projektu”, system nie może przetwarzać zebranych danych do innych celów
niż wymaganych przez zakres funkcjonalności, dodatkowo system nie może
przechowywać zebranych danych w czasie dłuższym niż 15 minut. System
musi być elastyczny poprzez posiadanie modularnej budowy, tak żeby
poszczególne jego elementy mogły być użyte ponownie. System ze względu na
swoje interaktywne oraz multimedialne aspekty powinien zapewniać
konfigurowalność swoich modułów.
6.2. Przypadki użycia
Na poniższym diagramie zawartym na rys. 21 przedstawiono przypadki
użycia. Zostali zdefiniowani aktorzy reprezentujący użytkowników o zadanych
rolach oraz sensory zbierające dane. Przypadki użycia zostały sformułowane w
sposób ogólny, tak aby przedstawić podstawowe wymagania systemu.
Rysunek 21. Diagram przypadków użycia
W celu uszczegółowienia ogólnych pojęć zawartych na diagramie
przypadków użycia zaprezentowano przebiegi interakcji pomiędzy częściami
systemu. Poniższe diagramy sekwencji związane są z głównymi scenariuszami
użycia systemu.
49
Przypadek użycia „Przenieś kamerę”
Poniższy diagram zawarty na rys. 22 specyfikuje przebieg i współprace
komponentów realizujących przypadek użycia „Przenieś kamerę”. W jego
pierwszej części wymagane jest, aby system wykrył użytkownika znajdującego
się w przestrzeni aktywnej, następnie przeprowadził śledzenie jego ciała.
Sensor gestów poprzez warstwę pośredniczącą informuje w czasie
rzeczywistym logikę o wystąpieniu aktualizacji użytkownika wraz z nowymi
pozycjami jego stawów. Logika zbiera kolejne przesunięcia kończyn
użytkownika i przy pomocy klasyfikatora gestów wykrywa gesty wykonane
przez użytkownika. Logika na podstawie rodzaju wykrytego gestu podejmuje
akcję do niego przypisaną i dokonuje odpowiednich zmian w scenie
interaktywnej.
Rysunek 22. Diagram sekwencji dla przypadku użycia „Przenieś kamerę”
Przypadek użycia „Wykryj twarze”
Poniższy diagram zawarty na rys. 23 specyfikuje przebieg i współprace
komponentów realizujących przypadek użycia „Wykryj twarze”. W jego
pierwszej części wymagane jest, aby system pobrał ujęcie z sensora zawierające
bitmapę przestrzeni znajdującej się przed tablicą. Logika przy użyciu sensora i
50
warstwy pośredniczącej wykrywa twarze użytkowników pasywnych w
pobranym ujęciu. Logika na postawie zbioru wykrytych twarzy wykonuje
okresowe animacje przeprowadzone w scenie interaktywnej.
Rysunek 23. Diagram sekwencji dla przypadku użycia „Wykryj twarze”
Przypadek użycia „Wykryj strefę użytkownika”
Poniższy diagram zawarty na rys. 24 specyfikuje przebieg i współprace
komponentów realizujących przypadek użycia „Wykryj strefę użytkownika”. W
jego pierwszej części wymagane jest, aby system wykrył użytkownika
znajdującego się w przestrzeni aktywnej, następnie przeprowadził śledzenie
jego ciała. Sensor gestów poprzez warstwę pośredniczącą informuje w czasie
rzeczywistym logikę o wystąpieniu aktualizacji użytkownika wraz z nowymi
pozycjami jego stawów. Logika zbiera kolejne przesunięcia kończyn
użytkownika i przy ich pomocy wyznacza jego położenie przypisując go do
strefy, w której się znajduje. Informacja o strefie, w której użytkownik się
znajduje wykorzystywana jest do wyznaczania zbioru możliwych gestów.
51
Rysunek 24. Diagram sekwencji dla przypadku użycia „Wykryj strefę”
6.3. Podział na klasy
W celu zapewnienia elastyczności poniższy diagram klas zawarty na rys.
25 przedstawia wyłącznie interfejsy klas, tak aby można było je użyć w
wybranej później architekturze systemu.
Rysunek 25. Diagram klas
52
6.4. Koncepcja modułowa systemu
Na poniższym rys. 26 znajduje się diagram koncepcji modułowej
systemu, który złożony jest z warstw w celu zapewnienia wymagań opisanych
w rozdziale „Wymagania jakościowe”. System pozyskuje wymagane dane
poprzez odczyty czujników umieszczonych w sensorach i przekazuje je do
odpowiednich warstw pośredniczących, które dokonują konwersji surowych
danych do postaci użytecznej i zoptymalizowanej do obliczeń. Dane te
dostępne są poprzez warstwę danych, która zapewnia odpowiednie
przechowywanie oraz utylizację zgodnie z powyższymi wymaganiami. Warstwa
logiki na podstawie pozyskanych danych steruje działaniem tablicy
interaktywnej, która wyświetlana jest na ekranie przy użyciu warstwy
prezentacji. Logika powinna zapewniać funkcjonalności związane z
wykrywaniem twarzy, wykrywaniem oraz śledzeniem użytkowników wraz z
analizą ich gestów. Ze względu na cele pracy budowa modułów powinna
zapewniać elastyczność wymiany logiki i warstwy prezentacji.
Rysunek 26. Diagram koncepcji modułowej systemu
53
7. Uzasadnienie decyzji projektowych
W poniższych rozdziałach wybrane zostaną rozwiązania, które posłużą w
dalszej części do implementacji aplikacji. W celu porównania rozważanych
rozwiązań użyto metryki FP (ang. function point). W przypadku kryteriów
stopniowalnych przyjęto następującą skalę: średnia - 1 punkt, dobra - 2
punkty, bardzo dobra - 3 punkty. W przypadku kryteriów jednoznacznych
przyjęto następującą skalę: nie - 2 punkty, tak - 3 punkty. W tabelach
porównawczych pod uzyskaną oceną dla danego kryterium umieszczono ilość
FP, których suma decydowała o wyborze danego rozwiązania.
7.1. Przegląd technologii
W celu dobrania odpowiednich kryteriów porównawczych jak i doboru
konfrontowanych technologii należałoby w pierwszej kolejności określić
kategorie realizowanego systemu. Ze względu na funkcjonalności ekspozycji
interaktywnej tworzony system posiada cechy aplikacji graficznych oraz gier
wideo (animacje obiektów, interaktywność elementów, absorbujący wygląd).
Zważając na wymagania jakościowe dotyczących elastyczności tworzony
system musi posiadać cechy aplikacji modularnej (niezależność
poszczególnych modułów, możliwość przystosowania i późniejszego
wykorzystania części aplikacji). Dla wybranych kryteriów przyjęto skalę ocen
opisaną w poniższej tabeli 1.
Tabela 1. Skala ocen użyta do porównania technologii
Ocena Opis oceny
PrzenośnośćPrzenośnośćPrzenośność
Wydajność
obliczeń
Wydajność
obliczeń
Bardzo
dobra
brak problemów z przeniesieniem aplikacji na inny
wspierany system wraz z zależnościami
Dobra
brak problemów z przeniesieniem aplikacji na inny
wspierany system, występowanie problemów przy
przenoszeniu zależności
Średnia
występowanie problemów z przeniesieniem aplikacji na
inny wspierany system wraz z zależnościami
Bardzo
dobra
Wynik w teście http://bubblemark.com/ powyżej 100 fps
Dobra Wynik w teście http://bubblemark.com/ powyżej 50 fps
54
Ocena Opis oceny
Wydajność
obliczeń
Wsparcie dla
modularności
Wsparcie dla
modularności
Wsparcie dla
modularności
Wsparcie dla
obsługi
sprzętu
Wsparcie dla
obsługi
sprzętu
Wsparcie dla
obsługi
sprzętu
Wsparcie
bibliotek
interaktywny
ch
Wsparcie
bibliotek
interaktywny
ch
Wsparcie
bibliotek
interaktywny
ch
Średnia
Wynik w teście http://bubblemark.com/ poniżej lub
równym 50 fps
Bardzo
dobre
Wsparcie dla klas, interfejsów, typów generycznych,
wstrzykiwania zależności (ang. Dependency Injection),
odwrócenia sterowania (ang. Inversion of Control)
Dobre
Wsparcie dla klas, interfejsów, wstrzykiwania zależności
(ang. Dependency Injection), odwrócenia sterowania
(ang. Inversion of Control)
Średnie Wsparcie dla klas, interfejsów
Bardzo
dobre
Dostęp do urządzeń podpiętych przez port USB, dostęp
do sieci
Dobre
Dostęp do urządzeń podpiętych przez port USB i
ograniczony dostęp do sieci lub ograniczony dostęp do
urządzeń podpiętych przez port USB i dostęp do sieci
Średnie
Ograniczony dostęp do urządzeń podpiętych przez port
USB, ograniczony dostęp do sieci
Bardzo
dobre
Wsparcie bibliotek do przetwarzania obrazu w czasie
rzeczywistym, rozpoznawania obiektów, analizy ruchu,
śledzenia obiektów
Dobre
Wsparcie bibliotek do przetwarzania obrazu w czasie
rzeczywistym, rozpoznawania obiektów
Średnie
Wsparcie bibliotek do przetwarzania obrazu w czasie
rzeczywistym
Opierając się na powyższych przyporządkowaniach w tabeli 2 porównane
zostały następujące technologie: Adobe AIR, JavaFX, Microsoft WPF,
Microsoft XNA.
• Adobe AIR (ang. Adobe Integrated Runtime) – wieloplatformowa
technologia zapewniająca środowisko uruchomieniowe oraz framework RIA
(ang. Rich Internet Application, dynamiczne aplikacje internetowe) dla
aplikacji napisanych przy użyciu Adobe Flash, Action Script, Adobe Flex,
HTML oraz Ajax, które mogą być uruchomione w przeglądarce lub jako
samodzielna aplikacja [45],
55
• JavaFX – wieloplatformowa technologia zapewniająca środowisko
uruchomieniowe oraz framework RIA dla aplikacji napisanych w języku
Java, JavaFX Script, które mogą być uruchamiane w przeglądarce, telefonach
komórkowych lub jako samodzielna aplikacja [22],
• Microsoft WPF (ang. Windows Presentation Foundation) – część
frameworku .NET dla systemów Windows odpowiadająca za wyświetlanie
aplikacji multimedialnych napisanych w języku C#, VB, które uruchamiane
są jako samodzielne aplikacje [26],
• Microsoft XNA – technologia zapewniająca środowisko
uruchomieniowe oraz framework do tworzenia gier dla systemów Windows
oraz na platformę Microsoft Xbox wspierające aplikacje napisane w języku
C# [25].
Tabela 2. Porównanie technologii
Adobe AIR JavaFX
Microsoft
WPF
Microsoft
XNA
Obsługiwane
systemy
operacyjne
PrzenośnośćPrzenośność
Wsparcie dla
scen 3D
Wsparcie dla
scen 3D
Wsparcie dla
akceleracji
sprzętowej
Wsparcie dla
akceleracji
sprzętowej
Wsparcie dla
animacji
Wsparcie dla
animacji
Wydajność
obliczeń
Wydajność
obliczeń
Linux
Mac OS X
Windows
Mac OS X
Windows
Windows
Windows
Xbox 360
Bardzo dobra Bardzo dobra Dobra Średnia
2 2 1 0
Tak Tak Tak Tak
2 2 2 2
Nie Tak Tak Tak
0 2 2 2
Tak Tak Tak Tak
2 2 2 2
Dobra Bardzo dobra Bardzo dobra Bardzo dobra
1 2 2 2
56
Adobe AIR JavaFX
Microsoft
WPF
Microsoft
XNA
Wsparcie dla
modularności
Wsparcie dla
modularności
Wsparcie dla
obsługi sprzętu
Wsparcie dla
obsługi sprzętu
Wsparcie
bibliotek
interaktywnych
Wsparcie
bibliotek
interaktywnych
Dobre Bardzo dobre Bardzo dobre Bardzo dobre
1 2 2 2
Średnie Dobre Bardzo dobre Dobre
0 1 2 1
Średnie Dobre Bardzo dobre Średnie
0 1 2 0
FP 8 14 15 11
W wyniku analizy porównawczej, której podsumowanie znajduje się w
powyższej Tabeli, jako technologia użyta do implementacji systemu został
wybrany framework Microsoft Windows Presentation Foundation, który
charakteryzuje się przede wszystkim dobrym dostępem i wsparciem dla
sprzętu, takiego jak sensory oraz wydajnością i wsparciem dla aplikacji
intensywnych graficznie.
7.2. Przegląd architektur systemu
Przy wyborze kryteriów służących do porównania architektur systemów
kierowano się wymogiem modularnej budowy opisanym w rozdziale
„Wymagania jakościowe” oraz możliwością implementacji w technologii
wybranej w rozdziale „Przegląd technologii”. Dobierając konfrontowane
architektury systemu oparto się na wzorcach architektonicznych [15], które
stanowią sprawdzone wzorce projektowe dla opisywanej dziedziny. Ze względu
na posiadanie przez system cech gry wideo, takie jak potrzebę renderowania
scen trójwymiarowych, odrzucono rozwiązania oparte o architekturę klient-
serwer oraz architektury rozproszone. Dla wybranych kryteriów przyjęto skalę
ocen opisaną w poniższej tabeli 3.
57
Tabela 3. Skala ocen użyta do porównania architektur systemu
Ocena Opis oceny
Wsparcie dla
modularności
Wsparcie dla
modularności
Wsparcie dla
modularności
Wsparcie dla
obsługi
animacji
obiektów
Wsparcie dla
obsługi
animacji
obiektów
Wsparcie dla
obsługi
animacji
obiektów
Bardzo
dobre
Wsparcie dla rozdzielenia warstw (architektura
wielowarstwowa), wzorca separacji komponentów (ang.
Loose coupling), wstrzykiwania zależności (ang.
Dependency Injection)
Dobre
Wsparcie dla rozdzielenia warstw (architektura
wielowarstwowa), wzorca separacji komponentów (ang.
Loose coupling)
Średnie
Wsparcie dla rozdzielenia warstw (architektura
wielowarstwowa)
Bardzo
dobre
Wsparcie dla zmian atrybutów obiektów, kontrolowania
przebiegu animacji
Dobre
Wsparcie dla zmian atrybutów obiektów, kontrolowania
przebiegu animacji przy wykorzystaniu obejść (ang.
workaround)
Średnie Wsparcie dla zmian atrybutów obiektów
Opierając się na powyższych przyporządkowaniach w tabeli 4 poniżej
porównane zostały następujące wzorce projektowe:
• MVC (ang. Model–view–controller) - architektoniczny wzorzec
projektowy stosowany przy tworzeniu aplikacji z graficznym interfejsem
użytkownika posiadający trzy warstwy: model (przechowuje dane), view
(decyduje o sposobie wyświetlenia danych), controller (odpowiada za
zmiany w danych i widokach) [15],
• MVVM (ang. Model View ViewModel) - architektoniczny wzorzec
projektowy stosowany przy tworzeniu aplikacji z graficznym interfejsem
użytkownika posiadający trzy warstwy: model (przechowuje dane), view
(decyduje o sposobie wyświetlenia danych), view-model (odpowiada za
przekazanie obiektów zawierających dane w sposób łatwy do
przetworzenia) [19].
58
Tabela 4. Porównanie architektur systemu
MVC MVVM
Możliwość implementacji w
technologii Microsoft WPF
Możliwość implementacji w
technologii Microsoft WPF
Wsparcie dla modularnościWsparcie dla modularności
Wsparcie dla renderowania scen
trójwymiarowych
Wsparcie dla renderowania scen
trójwymiarowych
Wsparcie dla obsługi animacji
obiektów
Wsparcie dla obsługi animacji
obiektów
Tak Tak
2 2
Bardzo dobre Bardzo dobre
2 2
Tak Tak
2 2
Bardzo dobre Dobre
2 1
FP 8 7
W wyniku analizy porównawczej, której podsumowanie znajduje się w
powyższej tabeli 4, jako wzorzec architektoniczny użyty do implementacji
systemu został wybrany MVC, który charakteryzuje się dużą elastycznością jak
i wsparciem dla renderowania animacji trójwymiarowych.
7.3. Przegląd bibliotek do przetwarzania obrazu w
czasie rzeczywistym
Przy wyborze kryteriów służących do porównania bibliotek
przetwarzających obraz w czasie rzeczywistym kierowano się obsługą
algorytmów wybranych w rozdziale „Przegląd zagadnień dotyczących
wykrywania twarzy”, obsługą wielu sensorów CMOS związaną z wymaganiami
funkcjonalnymi opisanymi w rozdziale „Zakres funkcjonalności” oraz
wsparciem dla technologii wybranej w rozdziale „Przegląd technologii”.
Opierając się na powyższych założeniach w tabeli 5 poniżej porównane zostały
następujące biblioteki:
• AForge.NET - biblioteka wspomagająca przetwarzanie obrazu
oraz sztuczną inteligencję napisana w języku C# [41],
• OpenCV + Emgu CV - biblioteka wspomagająca przetwarzanie
obrazu napisana w języku C++, istnieje wiele bibliotek
pośredniczących (ang. wrapper), które zapewniają wsparcie dla innych
języków m.in. Emgu CV wspierające język C# [4],
59
• IVT - biblioteka wspomagająca przetwarzanie obrazu napisana w
języku C++ [2],
• Torch3vision - biblioteka wspomagająca przetwarzanie obrazu
oraz uczenie maszynowe napisana w języku C++ [18].
Tabela 5. Porównanie bibliotek do przetwarzania obrazu w czasie
rzeczywistym
AForge.NET OpenCV + Emgu CV IVT Torch3vision
Wsparcie dla
technologii
Microsoft WPF
Wsparcie dla
technologii
Microsoft WPF
Wsparcie dla wielu
kamer
Wsparcie dla wielu
kamer
Wsparcie dla
metod wykrywania
twarzy w oparciu o
wygląd
Wsparcie dla
metod wykrywania
twarzy w oparciu o
wygląd
Tak
Tak
(poprzez wrapper
Emgu CV)
Nie Nie
2 2 0 0
Tak
Nie
(biblioteka posiada
wsparcie, jednak
wrapper go nie
implementuje)
Tak Nie
2 0 2 0
Nie Tak Nie Tak
0 2 0 2
FP 4 4 2 2
W wyniku analizy, której podsumowanie znajduje się w tabeli 5,
stwierdzono, iż żadna z porównywanych bibliotek nie spełnia wszystkich
wymaganych kryteriów, w związku z czym wybrano bibliotekę AForge.NET do
obsługi obrazu z kamer oraz bibliotekę OpenCV wraz z wrapperem Emgu CV
dla języka C# do obsługi kaskad Haar’a wykrywających twarze bazując na
metodach opierających się o wygląd. Połączenie wybranych bibliotek pokrywa
wszystkie postawione wymagania.
7.4. Przegląd sensorów
Przy wyborze kryteriów służących do porównania sensorów kierowano
się wymogami zrealizowania opisu wymaganych interakcji z użytkownikiem
opisanych w rozdziale „Interakcja z użytkownikami”. W tym celu należy
60
wybrać dwa sensory: pierwszy wspomagający wykrywanie twarze
użytkowników pasywnych oraz drugi, który będzie w stanie wspomagać
wykrywanie oraz śledzenie użytkowników aktywnych.
Przegląd sensorów wspomagających wykrywanie twarzy użytkowników
Wiele sensorów spełnia wymagania opisane powyżej, przykładowym
urządzeniem jest IPC F725P, które zapewnia wystarczającą rozdzielczość, a
posiadany interfejs sieciowy pozwala na łatwą integrację z systemem. Ze
względu na brak opisywanego urządzenia podczas powstawania tej pracy dla
celów prototypowych zastąpiono je Logitech HD Pro Webcam.
Przegląd sensorów wspomagających wykrywanie oraz śledzenie
użytkowników
Zgodnie z opisanymi wyżej wymaganiami sensory wspomagające
wykrywanie oraz śledzenie użytkowników powinny zapewniać wydajność,
która umożliwi przetwarzanie pozyskanych z nich danych w czasie
rzeczywistym lub z opóźnieniem niezauważalnym dla użytkownika. Dla
wybranych kryteriów przyjęto skalę ocen opisaną w poniższej tabeli 6.
Tabela 6. Skala ocen użyta do porównania sensorów wspomagających
wykrywanie oraz śledzenie użytkowników
Ocena Opis oceny
Czas
skanowania
sceny
Czas
skanowania
sceny
Czas
skanowania
sceny
Dokładność
sensora
Dokładność
sensora
Dokładność
sensora
Bardzo
dobry
Skanowanie sceny o wyjściowej rozdzielczości 640 x 480
px z wydajnością większą lub równą 30 fps
Dobry
Skanowanie sceny o wyjściowej rozdzielczości 640 x 480
px z wydajnością większą lub równą 10 fps
Średni
Skanowanie sceny o wyjściowej rozdzielczości 640 x 480
px z wydajnością mniejszą niż 10 fps
Bardzo
dobra
Błąd pomiaru odległości w scenie o wyjściowej
rozdzielczości 640 x 480 px mniejszy lub równy 0.5 mm
Dobra
Błąd pomiaru odległości w scenie o wyjściowej
rozdzielczości 640 x 480 px mniejszy lub równy 1 mm
Średnia
Błąd pomiaru odległości w scenie o wyjściowej
rozdzielczości 640 x 480 px większy niż 1 mm
61
Ocena Opis oceny
Liczba
skanowanych
punktów
Liczba
skanowanych
punktów
Liczba
skanowanych
punktów
Bardzo
dobra
Liczba skanowanych punktów równa lub większa niż
300 000
Dobra
Liczba skanowanych punktów równa lub większa niż
200 000
Średnia Liczba skanowanych punktów mniejsza niż 100 000
Opierając się na powyższych przyporządkowaniach w tabeli 7 poniżej
porównane zostały następujące sensory:
• 3D3 HDI Base - skaner trójwymiarowy typu time-of-flight emitujący
białe światło, używa kamery HD do odczytu fal odbitych [38],
• David laserscanner - skaner trójwymiarowy typu time-of-flight
emitujący wiązkę laserową, używa kamery UXGA do odczytu fal odbitych
[42],
• Microsoft Kinect - skaner trójwymiarowy typu structured light
emitujący siatkę złożoną z punktów w podczerwieni, używa sensora
CMOS o rozdzielczości VGA od odczytu fal odbitych [32].
Tabela 7. Porównanie sensorów wspomagających wykrywanie oraz śledzenie
użytkowników
3D3 HDI
Base
David
laserscanner
Microsoft
Kinect
Wsparcie dla technologii
Microsoft WPF
Wsparcie dla technologii
Microsoft WPF
Wsparcie dla pracy z dowolnym
tłem
Wsparcie dla pracy z dowolnym
tłem
Wsparcie dla pracy bez kalibracjiWsparcie dla pracy bez kalibracji
Czas skanowania scenyCzas skanowania sceny
Nie Nie Tak
0 0 2
Tak Nie Tak
2 0 2
Tak Nie Tak
2 0 2
Dobry Średni Bardzo dobry
1 0 2
62
3D3 HDI
Base
David
laserscanner
Microsoft
Kinect
Dokładność sensoraDokładność sensora
Liczba skanowanych punktówLiczba skanowanych punktów
Bardzo dobra Dobra Średnia
2 1 0
Bardzo dobra Średnia Bardzo dobra
2 0 2
FP 9 1 10
W wyniku analizy porównawczej, której podsumowanie znajduje się w
powyższej tabeli, jako sensory wspomagające wykrywanie i śledzenie
użytkowników został wybrany Microsoft Kinect, który sprawdzi się najlepiej
dostarczając dane do przetworzenia w czasie rzeczywistym.
7.5. Przegląd oprogramowania pośredniczego
W celu integracji wybranych sensorów w rozdziale „Przegląd sensorów”
z systemem należy wybrać odpowiednie oprogramowanie pośredniczące
między urządzeniami. Do pobierania strumienia wideo z kamery można
wykorzystać bibliotekę AForge.NET wybraną w rozdziale „Przegląd bibliotek
do przetwarzania obrazu w czasie rzeczywistym”. Dla wybranych kryteriów
przyjęto skalę ocen opisaną w poniższej tabeli 8.
Tabela 8. Skala ocen użyta do porównania oprogramowania pośredniczącego
Ocena Opis oceny
Wsparcie dla
śledzenia
użytkowników
Wsparcie dla
śledzenia
użytkowników
Wsparcie dla
śledzenia
użytkowników
Wsparcie dla
śledzenia
stawów
użytkownika
Wsparcie dla
śledzenia
stawów
użytkownika
Bardzo
dobre
Śledzenie więcej niż 6 użytkowników
Dobre Śledzenie więcej niż 1 użytkownika
Średnie Śledzenie 1 użytkownika
Bardzo
dobre
Śledzenie co najmniej 10 stawów, w tym nadgarstków,
łokci, ramion, bioder
Dobre
Śledzenie co najmniej 6 stawów w tym nadgarstków,
łokci, ramion
63
Ocena Opis oceny
śledzenia
stawów
użytkownika
Wydajność
śledzenia
stawów
użytkownika
Wydajność
śledzenia
stawów
użytkownika
Wydajność
śledzenia
stawów
użytkownika
Średnie
Śledzenie mniej niż 6 stawów w tym, nadgarstków,
łokci
Bardzo
dobra
Śledzenie stawów użytkownika z wydajnością większą
lub równa 30fps
Dobra
Śledzenie stawów użytkownika z wydajnością większą
lub równa 20fps
Średnia
Śledzenie stawów użytkownika z wydajnością większą
lub równa 10fps
Ze względu na brak oficjalnego SDK (Software Development Kit - zestaw
narzędzi wspierający obsługę bibliotek) porównano jego planowaną
specyfikację z rozwiązaniami, które do tej pory powstały: OpenNI + NITE. W
tabeli 9 poniżej porównano następujące oprogramowanie pośredniczące:
• Microsoft Kinect SDK - oficjalne SDK producenta, którego wydanie
zapowiedziane jest na wiosnę tego roku, jednak do tej pory nie jest
dostępne, zapewnia odczyt danych z sensorów, śledzenie użytkowników
oraz dane dotyczące ich ruchu [34],
• OpenNI + NITE - SDK złożone z dwóch części: OpenNI zapewnia
dostęp do odczytów danych z sensorów, natomiast NITE zapewnia
śledzenie użytkowników oraz dane dotyczące ich ruchu [30].
Tabela 9. Porównanie oprogramowania pośredniczącego
Microsoft Kinect
SDK
OpenNI +
NITE
Wsparcie dla technologii Microsoft
WPF
Wsparcie dla technologii Microsoft
WPF
Wsparcie dla śledzenia użytkownikówWsparcie dla śledzenia użytkowników
Wsparcie dla śledzenia stawów
użytkownika
Wsparcie dla śledzenia stawów
użytkownika
Tak Tak
2 2
Dobre Dobre
1 1
Bardzo dobre Bardzo dobre
2 2
64
Microsoft Kinect
SDK
OpenNI +
NITE
Wsparcie dla śledzenia stawów
użytkownika bez kalibracji
Wsparcie dla śledzenia stawów
użytkownika bez kalibracji
Wydajność śledzenia stawów
użytkownika
Wydajność śledzenia stawów
użytkownika
Tak Nie
2 0
Bardzo dobra Dobra
2 1
FP 9 6
W wyniku analizy porównawczej, której podsumowanie znajduje się w
powyższej tabeli 9, jako oprogramowanie pośredniczące do obsługi sensora
Microsoft Kinect powinno zostać wybrane Microsoft Kinect SDK, lecz z
powodów daty wydania późniejszej niż powstawanie tej pracy zostanie ono
dla celów prototypowych zastąpione przez OpenNI wraz z NITE. Podczas
wdrażania systemu w docelowe środowisko wymagana będzie wymiana
komponentu warstwy pośredniczącej i zastąpienie jej wybraną wersją.
65
8. Implementacja i testowanie
8.1. Wybrane rozwiązania implementacyjne
Poniższy rozdział zawiera szczegółowe rozwiązania implementacyjne
wybranych problemów związanych z powstawaniem opisywanego systemu.
8.1.1. Wykorzystanie sensora Microsoft Kinect
W związku z krótkim okresem przebywania sensora Microsoft Kinect na
rynku oraz brakiem szczegółowej dokumentacji opisującej jego integrację
poniższy rozdział zawiera opis technologii związanych z wdrożeniem tego
urządzenia. Microsoft Kinect jest zestawem sensorów opartym o architekturę
PrimeSense [32], której schemat blokowy przedstawiony jest na poniższym
rys. 27.
Rysunek 27. Schemat blokowy architektury PrimeSense [32]
Urządzenie dzięki posiadaniu wielu sensorów (podczerwony czujnik
odległości CMOS, kamera CMOS, mikrofony kierunkowe) może w sposób
kompleksowy wspierać wykrywanie, śledzenie oraz identyfikację ludzi
używając do tego: macierzy mikrofonów kierunkowych, skanera 3D typu
structured light oraz sensora CMOS. Na wyjściu urządzenia otrzymujemy
obraz w czasie rzeczywistym o rozdzielczości 640x480 px z informacją o
odległości każdego piksela.
Podczas implementacji wykorzystano bibliotekę OpenNI oraz
Nui.Vision, która wspomaga śledzenie stawów użytkownika. W celu
66
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska
Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska

More Related Content

Similar to Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska

[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowychSpodek 2.0
 
Case study Pekao24 - K2 User Experience
Case study Pekao24 - K2 User ExperienceCase study Pekao24 - K2 User Experience
Case study Pekao24 - K2 User ExperienceMaciej Lipiec
 
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...ecommerce2007
 
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...World Usability Day Tour 2009
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaWydawnictwo Helion
 
Programowanie zorientowane obiektowo
Programowanie zorientowane obiektowoProgramowanie zorientowane obiektowo
Programowanie zorientowane obiektowoWydawnictwo Helion
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...Future Processing
 
08 Wykonanie impozycji i proofingu 311[28].Z2.04
08 Wykonanie impozycji i proofingu 311[28].Z2.0408 Wykonanie impozycji i proofingu 311[28].Z2.04
08 Wykonanie impozycji i proofingu 311[28].Z2.04Beata Piekielko
 
Samsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinSamsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinMarcin Bauer
 
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Łukasz Szczepański
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
 

Similar to Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska (20)

Z2.04
Z2.04Z2.04
Z2.04
 
[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych
 
Case study Pekao24 - K2 User Experience
Case study Pekao24 - K2 User ExperienceCase study Pekao24 - K2 User Experience
Case study Pekao24 - K2 User Experience
 
exec_2.0
exec_2.0exec_2.0
exec_2.0
 
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...
Konferencja e-commerce 2007 Funkcjonalnosc witryn internetowych i metody ich ...
 
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...
WUD 2009 - Testowanie użyteczności aplikacji translatorskich na przykładzie t...
 
Wtm pl
Wtm plWtm pl
Wtm pl
 
Encoder
EncoderEncoder
Encoder
 
Microsoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga ekspertaMicrosoft Visual Basic .NET 2003. Księga eksperta
Microsoft Visual Basic .NET 2003. Księga eksperta
 
Programowanie zorientowane obiektowo
Programowanie zorientowane obiektowoProgramowanie zorientowane obiektowo
Programowanie zorientowane obiektowo
 
Fototechnik 313[01] z2.02_u
Fototechnik 313[01] z2.02_uFototechnik 313[01] z2.02_u
Fototechnik 313[01] z2.02_u
 
Z2.02
Z2.02Z2.02
Z2.02
 
Fototechnik 313[01] z2.02_u
Fototechnik 313[01] z2.02_uFototechnik 313[01] z2.02_u
Fototechnik 313[01] z2.02_u
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
08 Wykonanie impozycji i proofingu 311[28].Z2.04
08 Wykonanie impozycji i proofingu 311[28].Z2.0408 Wykonanie impozycji i proofingu 311[28].Z2.04
08 Wykonanie impozycji i proofingu 311[28].Z2.04
 
Samsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinSamsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop Szczecin
 
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
 
5
55
5
 
5
55
5
 

Interaktywna tablica Mendelejewa dla Wydziału Chemii PG - Praca dyplomowa magisterska

  • 1. Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra: Architektury Systemów Komputerowych Imię i nazwisko dyplomanta: Bartosz Nowakowski Nr albumu: 109251 Forma i poziom studiów: Jednolite magisterskie Kierunek studiów: Informatyka Praca dyplomowa magisterska Temat pracy: Interaktywna tablica Mendelejewa dla Wydziału Chemii PG Kierujący pracą: dr inż. Tomasz Dziubich Zakres pracy: Celem pracy jest zaprezentowanie idei przestrzeni interaktywnej, analiza metod wykrywania osób i rozpoznawania gestów człowieka, projekt oraz implementacja aplikacji interaktywnej tablicy Mendelejewa dla ściany wideo zainstalowanej w budynku Wydziału Chemii PG. Tablica powinna reagować na gesty i zachowania użytkowników zbliżających się do tablicy oraz wykrywać ich twarze. Gdańsk, 2011 rok
  • 2. Oświadczenie Oświadczam, że niniejszą pracę dyplomową wykonałem samodzielnie. Wszystkie informacje umieszczone w pracy uzyskane ze źródeł pisanych oraz informacje ustne pochodzące od innych osób zostały udokumentowane w wykazie literatury odpowiednimi odnośnikami. podpis dyplomanta
  • 3. Spis treści 1. Wstęp 8 2. Nowoczesne interfejsy użytkownika w przestrzeni publicznej 12 2.1. Przegląd istniejących rozwiązań 12 2.1.1. Interaktywna ściana Hello.Wall 12 2.1.2. Inne przykłady interakcji w przestrzeniach publicznych 14 2.2. Ogólna architektura systemów dla przestrzeni publicznych 18 3. Widzenie komputerowe jako zbiór technik automatycznej obserwacji 21 3.1. Elementy procesu widzenia ludzkiego 21 3.2. Przegląd zagadnień dotyczących wykrywania twarzy 23 3.2.1. Metody oparte o rysy twarzy 23 3.2.2. Metody oparte o wygląd 24 3.2.3. Metody oparte o szablon 26 3.2.4. Porównanie metod 27 4. Ambient Intelligence jako środowisko monitorowania zachowań użytkowników 28 4.1. Przegląd zagadnień związanych ze śledzeniem ciała człowieka 29 4.1.1. Metody oparte o śledzenie punktów 29 4.1.2. Metody oparte o śledzenie rdzenia 30 4.1.3. Metody oparte o śledzenie zarysów 30 4.1.4. Porównanie metod 31 4.2. Przegląd zagadnień dotyczących skanowania trójwymiarowego 32 4.2.1. Metody oparte o skanowanie aktywne 32 4.2.2. Metody oparte o skanowanie pasywne 33 4.2.3. Porównanie metod 34 5. Metody interakcji człowieka z systemem komputerowym 35 5.1. Przegląd zagadnień związanych z rodzajem interfejsu użytkownika35 5.1.1. Tangible User Interface 35 5.1.2. Surface User Interface 36 5.1.3. Ambient User Interface 37 5.1.4. Porównanie rodzajów interfejsu 38 5.2. Klasyfikacja gestów 38 5.2.1. Porównanie rodzajów grup 39 5.3. Metody interakcji związanej z wykrywaniem gestów ręki 39
  • 4. 5.3.1. Ukryte modele Markowa 39 5.3.2. Self-organizing map 40 5.3.3. Porównanie metod 40 6. Projekt systemu 41 6.1. Wizja systemu 41 6.1.1. Opis organizacji 41 6.1.2. Kontekst systemu 41 6.1.3. Zakres funkcjonalności 46 6.1.4. Zapewnienie prywatności danych do projektu 48 6.1.5. Wymagania jakościowe 49 6.2. Przypadki użycia 49 6.3. Podział na klasy 52 6.4. Koncepcja modułowa systemu 53 7. Uzasadnienie decyzji projektowych 54 7.1. Przegląd technologii 54 7.2. Przegląd architektur systemu 57 7.3. Przegląd bibliotek do przetwarzania obrazu w czasie rzeczywistym59 7.4. Przegląd sensorów 60 7.5. Przegląd oprogramowania pośredniczego 63 8. Implementacja i testowanie 66 8.1. Wybrane rozwiązania implementacyjne 66 8.1.1. Wykorzystanie sensora Microsoft Kinect 66 8.1.2. Wykrywanie i klasyfikacja gestów 67 8.1.3. Wykrywanie twarzy 70 8.1.4. Wizualizacja modelu tablicy 70 8.2. Testowanie systemu 71 9. Wnioski i uwagi końcowe 74 10. Bibliografia 76
  • 5. Spis tabel Tabela 1. Skala ocen użyta do porównania technologii 54 Tabela 2. Porównanie technologii 56 Tabela 3. Skala ocen użyta do porównania architektur systemu 58 Tabela 4. Porównanie architektur systemu 59 Tabela 5. Porównanie bibliotek do przetwarzania obrazu w czasie rzeczywistym 60 Tabela 6. Skala ocen użyta do porównania sensorów wspomagających wykrywanie oraz śledzenie użytkowników 61 Tabela 7. Porównanie sensorów wspomagających wykrywanie oraz śledzenie użytkowników 62 Tabela 8. Skala ocen użyta do porównania oprogramowania pośredniczącego 63 Tabela 9. Porównanie oprogramowania pośredniczącego 64 Tabela 10. Wyniki testu wykrywania twarzy 72
  • 6. Spis rysunków Rysunek 1. Wizualizacja architektoniczna przedstawiająca wizję interaktywnej ściany wideo 9 Rysunek 2. Strefy interakcji interaktywnej ściany Hello.Wall [5] 13 Rysunek 3. Sprawdzanie szczegółów powiadomienia za pomocą indywidualnego urządzenia mobilnego [5] 14 Rysunek 4. Aplikacja interaktywna „Bounce” z instalacji artystycznej „Messa di Voce” [26] 15 Rysunek 5. Prototyp aplikacji „The ubiquitous picture browser” 16 Rysunek 6. Fuji Xerox Plasma Poster [25] 17 Rysunek 7. Schemat budowy architektury systemów dla przestrzeni publicznych 18 Rysunek 8. Diagram procesu interakcji użytkownika z systemem dla przestrzeni publicznej 19 Rysunek 9. Algorytm wykorzystujący odkształcenia szablonów - schemat blokowy i kolejne kroki algorytmu dla przykładowego obrazu [57] 24 Rysunek 10. Algorytm wykorzystujący skupienia i analizę głównych składowych (PCA) - wyznaczanie głównych składowych podczas szkolenia algorytmu [43] 25 Rysunek 11. Algorytm wykorzystujący active appearance model - kolejne etapy tworzenia modelu wyglądu [6] 26 Rysunek 12. Siftables - przykład systemu wykorzystującego Tangible User Interface 36 Rysunek 13. Micrososft Surface - przykład systemu wykorzystującego Surface User Interface 37 Rysunek 14. Interactive Breezeway - przykład systemu wykorzystującego Ambient User Interface 38 Rysunek 15. Diagramy przedstawiające zamysł zleceniodawcy dotyczący grupy interakcji symbolizujących stany skupienia: wody, lodu, pary wodnej 43 Rysunek 16. Plan lokalizacji poszczególnych elementów systemu w miejscu powstającego korytarza 44 Rysunek 17. Schemat budowy ściany wideo tworzącej Ekran A 45 Rysunek 18. Schemat budowy ściany wideo tworzącej Ekran B 45 Rysunek 19. Wizualizacja architektoniczna interaktywnej ściany wideo (Ekran B) umieszczonej na korytarzu Chemii Politechniki Gdańskiej46
  • 7. Rysunek 20. Schemat stref przed ekranem, każda ze stref może wyróżniać się indywidualnymi gestami 47 Rysunek 21. Diagram przypadków użycia 49 Rysunek 22. Diagram sekwencji dla przypadku użycia „Przenieś kamerę”50 Rysunek 23. Diagram sekwencji dla przypadku użycia „Wykryj twarze” 51 Rysunek 24. Diagram sekwencji dla przypadku użycia „Wykryj strefę” 52 Rysunek 25. Diagram klas 52 Rysunek 26. Diagram koncepcji modułowej systemu 53 Rysunek 27. Schemat blokowy architektury PrimeSense [35] 66 Rysunek 28. Inicjalizacja sensora Kinect w celu śledzenia użytkownika 67 Rysunek 29. Fragment konfiguracji sensora 67 Rysunek 30. Wskazanie metody, do której przekazywane będą dane dotyczące śledzenia użytkownika 67 Rysunek 31. Schemat blokowy opisywanej klasyfikacji gestów przy użyciu HMM 69 Rysunek 32. Proces uczenia klasyfikatora gestów 69 Rysunek 33. Detekcja gestów za pomocą wyszkolonych klasyfikatorów gestów 69 Rysunek 34. Wskazanie metody, do której przekazywane będą dane dotyczące wykrytych gestów użytkownika 70 Rysunek 35. Inicjalizacja kaskady Haar’a 70 Rysunek 36. Wykrywanie twarzy za pomocą kaskady Haar’a 70 Rysunek 37. Fragment kodu XAML opisujący scenę trójwymiarową 71 Rysunek 38. Wizualizacja trójwymiarowego modelu tablicy 71 Rysunek 39. Pozycja kalibracyjną wymagana do inicjacji śledzenia stawów użytkownika przez NITE 73
  • 8. 1. Wstęp W wielu dziedzinach życia możemy obserwować wzrost zainteresowania filozofią nowoczesnych interfejsów użytkownika w systemach komputerowch jaki i postępem technologii z nią powiązanych. Nie byłoby to możliwe bez miniaturyzacji urządzeń wbudowanych i sensorów, rozwoju technologii bezprzewodowych oraz ich integracji, dzięki czemu użytkownik może skupić się na projektowaniu interfejsu systemu i jego funkcjonalności, zamiast na projektowaniu urządzeń i elementów elektronicznych, z których się on składa. Prekursor Ubiquitous Computing (przetwarzania wszechobecnego) - Mark Weiser w latach dziewięćdziesiątych stwierdził, iż metafora komputera w przyszłości polegać będzie na ukryciu sprzętu, tak aby użytkownik go nie dostrzegał [49]. Jego zdaniem narzędzie pracy powinno być niewidzialne w taki sposób, żeby nie przeszkadzało świadomości używającego. Jako przykładu używa okularów - patrzmy przez nie na świat, a nie skupiamy się na samym przedmiocie. Taka wizją rozwiązań zainteresowała architektów, którzy podjęli próbę integracji tych technologii z przestrzenią publiczną. Przestrzeń publiczna jest rozumiana jako miejsca ogólnodostępne dla społeczeństwa lub członków określonej organizacji sprzyjające w nawiązywaniu kontaktów między nimi. Dzięki budowie przestrzeni interaktywnych możliwy jest wzrost przepływu informacji, która będzie odtąd dostępna gdziekolwiek i w każdym czasie [47] oraz zwiększenie poczucia przynależności do organizacji, do której należą jej użytkownicy. Nowy kanał informacji wyłania się dzięki trendowi taniejących ekranów o dużej rozdzielczości umieszczanych w przestrzeni publicznej takiej jak lotniska, szkoły i biura. Poprzez rozpowszechnianie informacji otaczającemu ekran tłumowi tworzy się możliwość wymiany informacji z poszczególnymi osobami w momencie przechodzenia w pobliżu takiego ekranu. Przykładem opisanego systemu są interaktywne ściany wideo, które bazują na wiedzy pochodzącej z następujących dziedzin: • Ambient intelligence - inteligentne środowisko, zawierające sieć czujników, które jest świadome przebywających w nich ludzi, na których reaguje, w skrócie AmI; zapewnia sieć sensorów i czujników, które pozwalają reagować na użytkownika, • Human-Computer Interaction - filozofia tworzenia interfejsów skupiająca się na jego użytkowniku, zamiast na urządzeniu; zapewnia naturalny i intuicyjny interfejs dla użytkownika oraz 8
  • 9. • Computer Vision - dziedzina skupiająca się na wydobywaniu danych z obrazu, które służą do rozwiązywania stawianych problemów; zapewnia przetwarzanie obrazów i strumieni wideo pobranych z sensorów. Poniższy rys. 1 stanowi wizualizację architektoniczną przedstawiającą wizję interaktywnej ściany wideo. Użytkownik poprzez interfejs dotykowy ma możliwość przeglądania produktów dostępnych w sklepie. Informacje wyświetlane są na interaktywnym ekranie, który prezentuje treści w sposób dla niego wygodny. Rysunek 1. Wizualizacja architektoniczna przedstawiająca wizję interaktywnej ściany wideo Celem niniejszej pracy dyplomowej jest: • opis uogólnionej architektury systemu komputerowego dla przestrzeni interaktywnej, • analiza metod wykrywania osób i rozpoznawania gestów człowieka przebywającego w takiej przestrzeni, 9
  • 10. • projekt i implementacja aplikacji, która kontrolować będzie interaktywną tablicę, zgodną z nurtem nowoczesnych interfejsów. Praca ta jest częścią projektu „Budowa przejścia podziemnego między budynkami Wydziału Chemii” realizowanym na Politechnice Gdańskiej. Z powodu braku gotowych frameworków (zestaw komponentów i bibliotek stanowiący szkielet do budowy aplikacji), które byłyby w stanie kompletnie zrealizować rzeczony system, w poniższej pracy zostanie zaprojektowane i zrealizowane rozwiązanie dedykowane temu celowi. System powstawał będzie we współpracy z architektami, którzy odpowiadają za zaplanowanie przebiegu interakcji z użytkownikiem oraz za zaplanowanie całości przestrzeni. W tym celu system powinien stosować rozwiązania nowoczesnych interfejsów: śledzić sylwetkę użytkownika, rozpoznawać twarze i reagować na gesty. Aplikacja powinna być wysoce elastyczna ze względu na możliwości zmiany w interfejsach użytkownika. Ze względu na młody wiek dziedziny, której ta praca dotyczy oraz zważając na braki powszechnie rozpoznawanych ich tłumaczeń w języku polskim, użyta pisownia pojęć i nazw pozostała w formie oryginalnej. Nie mniej jednak przy pierwszym wystąpieniu zwrotu obcego została podjęta próba jego wyjaśnienia. Praca rozpoczyna się od rozdziału „Nowoczesne interfejsy w przestrzeni publicznej”, który opisuje trendy panujące w nowoczesnych interfejsach na podstawie studium istniejących rozwiązań. Rozdział ten zaczyna część przeglądową tej pracy. Następne rozdziały przedstawiają działy związane z nowoczesnymi interfejsami oraz opisują charakterystyczne zagadnienia dla tych dziedzin. Rozdział „Widzenie komputerowe jako zbiór technik automatycznej obserwacji” zawiera opis wykrywania obiektów za pomocą sensorów. W rozdziale „Ambient Intelligence jako środowisko monitorowania zachowań użytkowników” opisane zostało wykorzystanie sensorów i czujników do śledzenia ciała człowieka w celu zapewnienia interakcji z użytkownikiem. Rozdział „Metody interakcji człowieka z systemem komputerowym” zawiera opis wykorzystania gestów wykonywanych przez człowieka jako sposobu interakcji w ramach naturalnego interfejsu systemu. Kolejne rozdziały należą do części praktycznej, opisującej projektowanie, wykonanie i testowanie stworzonego systemu, wykorzystując analizę przeprowadzoną w części przeglądowej niniejszej pracy. „Projekt systemu” zawiera spis wymagań 10
  • 11. dotyczących systemu sformułowany przez architekta odpowiedzialnego za realizację całości systemu. Kolejny rozdział „Uzasadnienie decyzji projektowych” opisuje proces podejmowania decyzji projektowych w taki sposób, aby użyte rozwiązania w systemie spełniały stawiane wymagania. Następny rozdział „Implementacja i testowanie” przedstawia ciekawe rozwiązania implementacyjne zastosowane podczas tworzenia tej pracy oraz podejmuje próbę oceny funkcjonalności systemu. Ostatni rozdział „Wnioski i uwagi końcowe” stanowi podsumowanie rezultatów osiągniętej w niniejszej pracy. 11
  • 12. 2. Nowoczesne interfejsy użytkownika w przestrzeni publicznej Rozwiązania stosowane w nowoczesnych interfejsach zapewniają możliwość nieinwazyjnej kontroli, a także łatwej obsługi. Często wykorzystywane są one w przestrzeni publicznej, niejednokrotnie w formie sztuki, zwiększając jej ekspresyjność, ale także angażując samych oglądających. Ze względu na rozwój technologii oraz jej ekonomicznych aspektów, przetwarzanie obrazów oraz przetwarzanie wszechobecne przestało być głównie domeną naukowców, stwarzając artystom i hobbystom nowe możliwości ich wykorzystania [1]. System, który tworzony jest w ramach niniejszej pracy, należy do powyższej grupy aplikacji. W celu lepszego zrozumienia opisywanej dziedziny zostaną przeanalizowane istniejące rozwiązania. 2.1. Przegląd istniejących rozwiązań Poniższy rozdziały zawierają przegląd aktualnych systemów wykorzystujących zagadnienia Ambient Intelligence, Human-Computer Interaction oraz Computer Vision, które skupiają się na interakcji z użytkownikami będącymi w jego otoczeniu. Zawierają one szczegółowy opis wybranej realizacji oraz przegląd istniejących rozwiązań związanych z nowoczesnymi interfejsami w przestrzeni publicznej. 2.1.1. Interaktywna ściana Hello.Wall Poniższy rozdział zawiera analizę systemu Hello.Wall wykonanego przez Instytut Fraunhofera. System ten był częścią badań Ambient Agoras, którego zadaniem było zapewnienie miejsca (gr. „agoras” - targ) wymiany informacji i pomysłów w przestrzeni publicznej znajdującej się w biurach, gdzie jej użytkownicy mogli się spotykać. System jest interaktywną tablicą (ang. ambient display lub interactive wall) zawierającą wyświetlacz, jednak jego zastosowanie jest szersze niż interfejs użytkownika, który znany jest z komputerów osobistych [39]. Wyświetlacz składa się z 124 komórek ułożonych we wzór przypominający strukturę plastra miodu, każda z komórek ma możliwość niezależnego regulowania natężenia światła jakie emituje. Twórcy systemu klasyfikują go jako sztuka informatywna (ang. informative art) ze względu na prezentowanie informacji przeznaczonych zarówno dla ogółu pracowników jak i indywidualnych stanowiąc jednocześnie integralną i 12
  • 13. dekoracyjną część nowoczesnej przestrzeni biurowej [5]. System w celu zapewnienia różnych poziomów szczegółowości interakcji dzieli obszar przed interaktywną ścianą na trzy strefy: interakcji (ang. interactive zone), powiadomień (ang. notification zone) oraz środowiska (ang. ambient zone), czyniąc jego interakcję świadomą kontekstu (ang. contex-aware). Diagram stref przedstawiony jest na poniższym rys. 2. Rysunek 2. Strefy interakcji interaktywnej ściany Hello.Wall [5] Przynależność użytkownika do strefy wyznaczana jest przy użyciu dwóch sensorów, które dobrane są w taki sposób, aby zasięg ich komunikacji zgadzał się z zasięgiem danej strefy, do której będą przypisane. W momencie gdy ludzie są poza zasięgiem sensorów znajdują się w strefie środowiska. Wówczas interaktywna tablica wyświetla ogólne informacje, które są niezależne od konkretnych osób, są to przede wszystkim parametry wybrane w sposób umożliwiający prezentację atmosfery panującej w organizacji za pomocą wzorów ułożonych ze świateł, przykładowo: odsetek pracowników, którzy przebywają obecnie w biurze lub średni poziom intensywności pracy. W momencie gdy konkretna osoba podchodzi do interaktywnej tablicy lub przechodząc zbliża się dostatecznie blisko do ściany, wkracza ona w strefę powiadomień powodując reakcję ekranu. Wówczas interaktywna tablica zmienia wyświetlany wzór świetlny ze stanu reprezentującego gotowość 13
  • 14. zmienia się on w reprezentujący powiadomienie, który może być zarówno indywidualny, jak i dotyczący członków grupy. W zamierzeniach poszczególne wzory świetlne reprezentujące powiadomienia wraz z ich znaczeniami mogą być niejawne i znane tylko ludziom, którzy są powiadamiani. Ze względu na to, iż tablica interaktywna informuje użytkownika jedynie o sytuacji występowania powiadomienia do celów tego prototypu wykorzystano mobile urządzenia zwane ViewPort, indywidualne dla każdego z użytkowników, za pomocą których jest on w stanie sprawdzić, zachować lub edytować szczegóły danego powiadomienia, co obrazuje poniższy rys. 3. Rysunek 3. Sprawdzanie szczegółów powiadomienia za pomocą indywidualnego urządzenia mobilnego [5] Ostatnia strefa, nazwana strefą interakcji, aktywuje się w momencie zbliżenia się użytkownika na bardzo małą odległość od ściany interaktywnej. W tym przypadku użytkownik dokonuje interakcji z pojedynczą komórką. Takie podejście umożliwia zachowywanie oraz przepływ informacji w sposób równoległy przy użyciu urządzeń mobilnych. Funkcjonalność ta umożliwia uzyskanie zabawnych oraz angażujących interakcji, których nie dałoby się uzyskać przy użyciu standardowych środków. Dodatkowym atutem jest element zaskoczenia, który towarzyszy odkrywaniu interakcji poprzez pojedynczą komórkę. 2.1.2. Inne przykłady interakcji w przestrzeniach publicznych „Messa di Voce” „Messa di Voce” (z włoskiego „umieszczanie głosu”) jest instalacją artystyczną zaprezentowaną na wielu wystawach dotyczących interaktywnej sztuki. System za pomocą zestawu aplikacji interaktywnych obrazuje i wzmacniania mowę, krzyk oraz śpiew wykonywany przez wokalistów [24]. 14
  • 15. Pokaz skupia się na ogóle zagadnień związanych z komunikacją, synestezją oraz udźwiękowieniem poprzez efektowne i wciągające animacje wzmocnione dźwiękiem, które tworzone są na podstawie odcienia wokalnego śpiewaka. Aplikacja interaktywna nie ogranicza się jedynie do wizualizowania głosu wykonawcy, ale także służy mu jako kontroler odtwarzania nagrań akustycznych. Podczas gdy grafika generowana poprzez dźwięk staje się instrumentem, na którym gra wokalista, ruchy jego sylwetki dodatkowo powtarzają dźwięki przez niego wydobywane, tworząc cykl interakcji zapewniającej środowisko składające się z dźwięku, obiektów wizualnych przetwarzanych w czasie rzeczywistym. System ustawiony jest na scenie, na której znajduje się ekran, artysta ustawia się przed widownią, na jego tle. W aplikacji „Bounce” wykonawca wykonuje trzepotanie policzkami, które jest rozpoznawane przez system. Aplikacja śledzi pozycję głowy użytkownika i podczas wydawania określonych dźwięków, w zależności od ich natężenia, emituje z jego ust strumień unoszących się bąbelków, które tworzą chmurę na górze ekranu. Na koniec prezentacji artysta odwraca się, co powoduje upadek zgromadzonych bąbelków, które odbijają się od użytkownika. Rysunek 4. Aplikacja interaktywna „Bounce” z instalacji artystycznej „Messa di Voce” [24] 15
  • 16. „The ubiquitous picture browser” „The ubiquitous picture browser” jest prototypowym systemem wykorzystującym framework TISCH (ang. Tangible Interactive Surfaces for Collaboration between Humans) [11], którego interfejs użytkownika przedstawiony jest na rys. 5. Aplikacja śledzi położenie rąk użytkownika, analizuje jego gesty, które umożliwiają operacji selekcji obiektów, zmiany ich rozmiaru oraz obrót obrazów. Użytkownik znajduje się na wprost ekranu, na którym wyświetlony jest jego obszar roboczy zawierający porozrzucane zdjęcia. Selekcja zdjęcia odbywa się poprzez gest pchnięcia jedną ręką. Po jego wykonaniu wybrany obiekt jest podnoszony i możliwa jest zmiana jego pozycji poprzez ruch ręką. Zdjęcie odkładane jest z powrotem w analogiczny sposób jak jego podniesienie. Gest pchnięcia obiema rękami umożliwia zmianę rozmiaru zdjęcia, poprzez zmianę odległości między rękoma oraz obrót zdjęcia, poprzez poruszanie dłońmi po okręgu. Dzięki zastosowaniu technologii multitouch (wielodotyk lub multidotyk) wszystkie operacje mogą być wykonywane w sposób równoległy przez kilku użytkowników. Rysunek 5. Prototyp aplikacji „The ubiquitous picture browser” Fuji Xerox Plasma Poster Fuji Xerox Plasma Poster jest prototypem interaktywnej ściany wideo stworzonej dla pracowników korporacji, zlokalizowanych w dwóch odległych od siebie ośrodkach [23]. Miała ona za zadanie zintegrować zespoły, a także 16
  • 17. zmniejszyć bariery kulturowe pomiędzy nimi. System miał być udoskonaleniem i uzupełnieniem metod stosowanych wcześniej: wideokonferencji oraz intranetu. Użytkownicy podczas wykonywania swoich codziennych zadań mieli możliwość dodania adnotacji do przeglądanego zasobu lub tworzenie własnego i udostępnianie ich w obrębie swojego zespołu lub organizacji. System gromadził te dane stosując do ich klasyfikacji automatyczne rozpoznawanie zawartości, co odróżnia go od pozostałych rozwiązań. Drugą częścią systemu jest interaktywna ściana wideo, umieszczona w strefie publicznej, umożliwiająca przeglądanie zawartości udostępnianych przez współpracowników, dostosowując się do preferencji użytkownika. Prezentowane zasoby były przechowywane przez dwa tygodnie od ich wprowadzenia, tak aby zapewnić regularne odświeżanie zawartości. Każdy z wyświetlanych zasobów posiadał kod QR zwierający adres URL, który umożliwiał dalsze przeglądanie zasobu w przestrzeni prywatnej użytkownika. Rysunek 6. Fuji Xerox Plasma Poster [23] 17
  • 18. 2.2. Ogólna architektura systemów dla przestrzeni publicznych Na podstawie opisywanych powyżej, istniejących rozwiązań możemy zauważyć, iż posiadają one wspólne elementy składające się na ich budowę. Uogólniona architektura systemu komputerowego dla przestrzeni interaktywnych została zobrazowana na poniższym rys. 7. Wśród warstw możemy wyróżnić: warstwę sensorów, warstwę interaktywnej tablicy, przestrzeń przed tablicą podzieloną na strefy oraz warstwę przetwarzającą i realizującą logikę. Rysunek 7. Schemat budowy architektury systemów dla przestrzeni publicznych Należy też zauważyć istnienie zagadnień charakterystycznych dla nowoczesnych interfejsów umieszczonych w przestrzeni publicznej. Poszczególne warstwy realizują odrębne cele i wykorzystują charakterystyczne dla siebie rozwiązania. Warstwa sensorów zawiera sieć czujników zbierających dane, które posłużą do wykrycia obecności użytkownika oraz śledzenia jego pozycji (zagadnienia z dziedziny Ambient Intelligence i Computer Vision). Warstwa przetwarzająca pobiera surowy sygnał z warstwy sensorów i dokonuje konwersji danych do postaci użytecznej i zoptymalizowanej do obliczeń (zagadnienia z dziedziny Ambient Intelligence i Computer Vision). Warstwa logiki w oparciu o uzyskane dane z warstwy przetwarzającej odpowiada za wykrycie obecności użytkownika, śledzenie jego pozycji oraz reakcję na czynności przez niego wykonywane (zagadnienia z dziedziny Ambient Intelligence, Computer Vision i Human-Computer Interaction). Warstwa interaktywnej tablicy ma za zadanie prezentację interaktywnej zawartości 18
  • 19. systemu, a także wykrycie i klasyfikacja gestów w ramach naturalnego interfejsu użytkownika (zagadnienia z dziedziny Human-Computer Interaction). Dla tak zdefiniowanej architektury można zamodelować następujący proces interakcji użytkownika z systemem dla przestrzeni publicznej, który przedstawiony jest na poniższym diagramie zawartym na rys. 8. Rysunek 8. Diagram procesu interakcji użytkownika z systemem dla przestrzeni publicznej Poszczególne elementy procesu realizują odrębne zadania i wykorzystują charakterystyczne dla siebie rozwiązania. W związku z zamiarem zrealizowania celów pracy w początkowych rozdziałach zostanie przeprowadzona analiza zagadnień stanowiących kolejne elementy powyższego procesu interakcji zachowując podział na dziedziny, do których należą: • Detekcja - wykrywanie twarzy za pomocą rozwiązań pochodzących z „Computer Vision”, • Śledzenie - śledzenie ciała ludzkiego za pomocą rozwiązań pochodzących z „Ambient Intelligence”, • Analiza - wykrywanie gestów za pomocą rozwiązań pochodzących z „Human-Computer Interaction”, • Logika - sterowanie działaniem tablicy. Ze względu na fakt, iż zlecający projekt wymaga, aby użyte w systemie sensory były ogólnodostępnymi i gotowymi urządzeniami rozdziały przeglądowe zakładają istnienie generycznego sygnału zawierającego odczyty z 19
  • 20. czujników pochodzących z sensora. Porównanie i wybór modeli sensorów oraz opis interakcji z tablicą zostanie dokonany w rozdziałach praktycznych niniejszej pracy. 20
  • 21. 3. Widzenie komputerowe jako zbiór technik automatycznej obserwacji Jednym z najsilniejszych zmysłów wpływających na sposób postrzegania rzeczywistości przez człowieka jest jego wzrok. Ten fakt przy współudziale szybkiego rozwoju kamer, wtórowanego przez wzrost mocy obliczeniowej napędza rozwój dziedziny computer vision (widzenie komputerowe, dziedzina komputerowego przetwarzania danych wizualnych pozyskanych z obrazu). Celem tejże, jest podejmowanie użytecznych decyzji dotyczących realnych, fizycznych obiektów i scen na podstawie pobranych obrazów [36]. Systemy przemysłowe, przetwarzające obraz z kamer, których funkcjonalność była bardzo ograniczona, odeszły do przeszłości. Współczesne systemy rozszerzają zastosowania tych systemów do inwigilacji, rozpoznawania i indeksowania wideo (identyfikacja osób, rozpoznawanie twarzy i obiektów). Computer vision poza pierwotnymi zastosowaniami przemysłowymi, przeniknęło także do nowoczesnych human-computer interaction (ogół interakcji pomiędzy człowiekiem, a komputerem zachodzących poprzez interfejs użytkownika) oraz sztuki. Computer vision wykorzystuje np. obrazy pozyskane z kamer, jednakże dane z nich pobrane przetwarza w odmienny od człowieka sposób. Wymuszone jest to celem tejże dziedziny: aby podejmować decyzje dotyczące fizycznych obiektów wymagane jest stworzenie ich usystematyzowanego modelu opisu, nastawionego na rozwiązywanie problemów, który można wydobyć z obrazu [3]. Człowiek jest w stanie rozwiązać wiele problemów dotyczących obiektów, które widzi, bez większego problemu i zaangażowania, nawet jeśli nie posiada szczegółowej wiedzy analitycznej dotyczącej procesu percepcji obrazów. Surowe dane wizualne są chaotyczne, zawierają nieistotne lub mylące składowe. Nasz układ wzrokowy jest w stanie wydobyć z takiego obrazu wiarygodne, trójwymiarowe obiekty, korzystając z posiadanej wiedzy i założeń. Computer vision korzysta z wiedzy dotyczącej procesu ludzkiego widzenia i stara się naśladować jego działania [10]. 3.1. Elementy procesu widzenia ludzkiego Naukowcy przez kilka dekad podejmowali wiele prób i eksperymentów mających na celu wyjaśnienie procesów zachodzących w ciele ludzkim towarzyszącym procesowi widzenia. Oko człowieka, z którego układ nerwowy 21
  • 22. pobiera widziany przez nas obraz, składa się z kilku prostych elementów optycznych. Z tego powodu niemożliwym jest aby obraz padający na siatkówkę był pozbawiony wad takich jak dyfrakcja oraz inne aberracje [31]. Fakt ten w połączeniu z występowaniem dużych różnic posiadanych aberracji oraz stopnia ich natężenia dla różnych oczu wiąże się z potrzebą istnienia wyspecjalizowanych mechanizmów mogących zaradzić dużym niedoskonałościom narządów pobierających obraz. Eksperymenty prowadzone przez E. Freudera, J. Tenenbauma, H. Barrowa dotyczyły rozpoznawania obiektów przez człowieka [16, 44]. Ich rezultatem było stwierdzenie, iż w typowej scenie biurowej mózg ludzki używa wiedzy „na biurkach znajdują się telefony i mają one kolor czarny” i na jej podstawie oddziela czarną kroplę na brązowym tle z obrazu i rozpoznaje ją jako telefon, nawet jeżeli dane wizualne były niewystarczające, aby to jednoznacznie stwierdzić. Badania prowadzone przez Elizabeth Warrington [48] dotyczyły pacjentów z częściowym uszkodzeniem lewej lub prawej części ciemieniowej mózgu. Spośród badanych wyróżniła grupę „konwencjonalną”, której członkowie mieli uszkodzoną prawą część ciemieniową. Postrzeganie obiektów przez pacjentów należących do tej grupy charakteryzowało się rozpoznawaniem, nazywaniem, określaniem przeznaczenia, masy, rozmiaru itp. Drugą wyróżnioną grupą była „niekonwencjonalna”, której pacjenci posiadali uszkodzoną lewą część ciemieniową. Członkowie tej grupy mieli problemy z rozpoznaniem obiektów, jednak prawidłowo postrzegali ich kształt i geometrię. Poprzez swoje badanie autorka sformułowała następujące wnioski: ośrodek w mózgu odpowiadający za kształty obiektów znajduje się w innym miejscu niż ośrodki odpowiadające za rozpoznanie i określanie przeznaczenia obiektów. Ponadto badania wykazały, iż układ wzrokowy jest w stanie określić opis kształtu widzianego obiektu nawet jeśli obiekt ten nie został rozpoznany, a jego użycie i cel jest dla niego nieznane. Badania te wpłynęły na computer vision, które ówcześnie bazowało na założeniu, iż rozpoznawanie obiektów jest zadaniem tak trudnym, że potrzebuje każdego rodzaju informacji [28]. Warrington pokazała, iż mimo, że jej pacjenci nie potrafili nazwać przedstawionych obiektów lub opisać ich zastosowania, byli w stanie je schwytać na podstawie rozpoznanych kształtów, 22
  • 23. nawet wtedy gdy próbowała utrudnić to zadanie poprzez dziwne ułożenie przedmiotów lub ich specyficznym oświetleniem. 3.2. Przegląd zagadnień dotyczących wykrywania twarzy Przez ostatnie lata stworzono wiele różnych algorytmów mających za zadanie szybkie wykrywanie twarzy [43]. Z uwagi na liczbę różnych algorytmów potrzebna była ich generalizacja, w celu omówienia i porównania zostanie użyta klasyfikacja zaproponowana przez Yanga, Kriegmana, Ahuja [50], którą sformułowali podczas badań nad tą dziedziną. Zaproponowana przez nich taksonomia wyróżnia trzy metody: • oparte o rysy twarzy (feature-based), • oparte wygląd (appearance-based) • oparte o szablony (template-based). Poszczególne metody są opisane poniżej. 3.2.1. Metody oparte o rysy twarzy Algorytmy opierające się na rysach twarzy podejmują próbę znalezienia charakterystycznych cech takich jak oczy, usta, czy też brwi i sprawdzają wiarygodność ich ułożenia względem siebie. W grupie tej znajduje się wiele rozwiązań, które stanowiły wczesne podejścia do zagadnień wykrywania twarzy (badania Fischlera i Elschlager, Kanade, Yuille), a także aktualne algorytmy wykorzystujące wartości własne (badania Moghaddama i Pentlanda), oparte na filtrach (badania Leung i Burl oraz Perona, Penev i Atick, Wiskott i Fellous oraz Kruger). W ramach pracy przeanalizowano algorytm wykorzystujący odkształcenia szablonów. Algorytm wykorzystujący odkształcenia szablonów Metoda opiera się na definiowaniu sparametryzowanych szablonów dla szukanych rysów twarzy takich jak oczy i usta [53]. Każdy z nich posiada zdefiniowaną funkcję energii, która opisuje stopnie natężenia obrazu opisywanego szablonu. Następnie każdy szablon w sposób dynamiczny modyfikuje swoje parametry (pozycja, orientacja, skala, itp) w tak aby zminimalizować funkcję energii, deformując ją. Uzyskuje w ten sposób najlepsze dopasowanie w źródłowym obrazie. Takie działania rozwiązują problemy skutecznego wykrycia oczu za pomocą detekcji krawędzi. Znalezione 23
  • 24. parametry stanowią deskryptory poszczególnych rysów twarzy, które mogą być następnie użyte do ich śledzenia. Na poniższym rys. 9 przedstawiono diagram blokowy wraz z zdjęciami ilustrującymi poszczególne etapy algorytmu. Rysunek 9. Algorytm wykorzystujący odkształcenia szablonów - schemat blokowy i kolejne kroki algorytmu dla przykładowego obrazu [53] 3.2.2. Metody oparte o wygląd Rozwiązania opierające się na wyglądzie przeglądają małe, nakładające się na siebie obszary w poszukiwaniu obiektów podobnych do twarzy. Z powodu różnego położenia poszukiwanego obiektu i jego skali, obszary wstępnego poszukiwania są wyznaczane przez kolejne przekroje piramidy. Dla wstępnie znalezionych kandydatów stosują bardziej złożone algorytmy (badania Sung i Poggio, Rowley i Baluja oraz Kanade, Romdhani i Torr oraz Scholkopf, Fleuret i Geman, Viola i Jones). Większość rozwiązań używa etykietowanych zestawów do nauki zawierających lub pozbawionych twarzy. 24
  • 25. Algorytm wykorzystujący skupienia i analizę głównych składowych (PCA) Algorytm używa bazy ręcznie przyciętych obrazów przedstawiających twarze, a także obrazy jej nie zawierające, które pomagają rozróżnić tło od poszukiwanego obiektu lub wykryć obiekty podobne to twarzy [40]. Zarówno przeszukiwane obrazy wejściowe, jak i obrazy pochodzące z zestawu szkolącego są zmniejszone do małych wymiarów (19 x 19 px). Szkolenie algorytmu polega przygotowaniu modeli rozkładu intensywności pikseli zarówno dla zestawu z twarzami jak i bez. Następnie empiryczne rozkłady są przybliżane za pomocą metody k-średnich i analizę głównych składowych wyróżniając k skupień. W celu wykrycia w obrazie wejściowym twarzy wybierane są różne jego obszary: o różnych lokalizacjach i wielkościach. Każdy obszar porównywany jest z rozkładami powstałymi z danych szkolących. Różnice pomiędzy poszczególnymi obszarami są wyznaczane poprzez dwu-składnikową metrykę, której wyniki są przekazywane na wejście sieci neuronowej MLP, której wynik oznajmia wykrycie lub brak twarzy. Rysunek 10. Algorytm wykorzystujący skupienia i analizę głównych składowych (PCA) - wyznaczanie głównych składowych podczas szkolenia algorytmu [40] 25
  • 26. 3.2.3. Metody oparte o szablon Algorytmy należące do tej grupy opierają się na active appearance models (AAM, algorytmy w computer vision służące do dopasowywania modelu statystycznego kształtu obiektu i jego wyglądu do obrazu) i bardzo dobrze radzą sobie z wykrywaniem twarzy o różnych mimikach, czy różnym położeniu jednak czas ich działania jest dłuży w porównaniu do wcześniejszych grup. Algorytm wykorzystujący active appearance model W celu stworzenia modelu statystycznego algorytm korzysta z zestawu szkolącego zawierającego obrazy, w których ręcznie zostały oznaczone charakterystyczne punkty (np. środek i cztery skrajne punkty dla oka lub też równo-oddalone od siebie punkty na skraju twarzy) [6]. Przy użyciu tych danych tworzone są statystyczne modele kształtu, które następnie służą do stworzenia znormalizowanych i teksturowanych łat. Po skojarzeniu kształtu i tekstury obrazów szkolących tworzony jest wspólny i sparametryzowany model wyglądu (apperance model). W celu rozpoznania twarzy na obraz wejściowy nakładany jest model wyglądu, który jest w sposób iteracyjny do niego dopasowywany. Proces dopasowywania jest kończony w momencie, gdy kolejne przybliżenie nie stanowi poprawy w sensie różnic od wzorcowego modelu. Wynikiem działania algorytmu jest odległość dopasowanego modelu od wzorcowego. Rysunek 11. Algorytm wykorzystujący active appearance model - kolejne etapy tworzenia modelu wyglądu [6] 26
  • 27. 3.2.4. Porównanie metod Pośród wielu różnić pomiędzy przedstawionymi algorytmami należy wyróżnić przede wszystkim: złożoność obliczeniową, potrzebę uprzedniego szkolenia algorytmu i złożoność przygotowania danych do tego celu, a także ich dokładność wykrywania. Metody oparte o rysy twarzy nie wymagają procesu uczenia, przez co ich implementacja jest szybsza, jednak ze względu na małą odporność na zniekształcenia lub pozycję twarzy odmienną od centralnej znajdują zastosowanie w specyficznych rozwiązaniach. Metody oparte o szablon wykorzystują dane statystyczne pozyskane z zestawu uczącego, zapewniają wysoką skuteczność, jednak ich duża złożoność nie pozwala na zastosowanie w rozwiązaniach działających w czasie rzeczywistym. Metody oparte o wygląd cechują się największą uniwersalnością, pozwalają na zmianę takich parametrów jak dokładność przeszukiwania, czy też minimalny rozmiar twarzy, które pozwalają uzyskać wymagany poziom skuteczności oraz wydajności. Ponadto uczenie maszynowe umożliwia dostosowanie użycia tej metody dla nietypowych warunków oświetlenia, czy też pozycji twarzy w obrazie. Korzystając z powyższej analizy do realizacji celów pracy związanych z wykrywaniem twarzy zostały wybrane metody oparte o wygląd. 27
  • 28. 4. Ambient Intelligence jako środowisko monitorowania zachowań użytkowników Ambient intelligence można zdefiniować jako „cyfrowe środowisko, które w sposób aktywny, lecz rozważny, wspomaga ludzi w ich codziennym życiu” [1]. Twórcy tego podejścia do jego głównych cech zaliczają: wszechobecność, działanie w tle, dostosowywanie się i reagowanie na ludzi, użyteczność w codziennym życiu. Rozwój tej filozofii obrazują przejściem z komputerów typu mainframe (jeden komputer - wielu użytkowników, systemy o dużej wydajności przetwarzania danych) poprzez komputery personalne (jeden komputer - jeden użytkownik) aby finalnie ewoluować do Ubiquitous computing (jedna osoba - wiele komputerów). Nazwa AmI pierwszy raz została użyta w 1998 roku podczas wykładów Eli Zelkha i Brian Epstein dla firmy Philips [13][14]. W czasie tych wystąpień prezentowali oni przejście z konwencjonalnych urządzeń do inteligentnego środowiska w kontekście elektroniki użytkowej. W opisywanych prezentacjach badacze poruszają czynniki różnicujące otoczenia takie jak biuro w pracy oraz pokój dzienny w domu, wymieniając m.in. zajmowaną pozycję i sposób oceny technologii. Rozwój interfejsów programów komputerowych przyrównują do procesu uczenia: aktualnie stosowane interfejsy traktują jako naukę jazdy na rowerze, w obu przypadkach potrzebujemy nauczania poprawnego użycia. Natomiast nowoczesne interfejsy traktują jako nieświadomą jazdę na rowerze, nie staramy się myśleć o danej czynności, tylko ją podświadomie wykonujemy. Zwracają także uwagę na fakt, iż ambient intelligence nie dotyczy wyłącznie interfejsu użytkownika, a jego działanie polega na całym środowisku, w którym użytkownik się znajduje, stosując odmienne metafory posługiwania się komputerami, od tych które znamy z komputerów osobistych. Systemy AmI w celu monitorowania zachowań użytkowników przeprowadzają ich detekcję, a następnie śledzenie wykorzystując dane pochodzące z sieci sensorów. Zagadnienia związane z tym procesem opisane są w poniższych rozdziałach. 28
  • 29. 4.1. Przegląd zagadnień związanych ze śledzeniem ciała człowieka Śledzenie można zdefiniować jako dopasowanie obiektów w kolejnych klatkach obrazu za pomocą cech takich jak punkty, linie i regiony. Poniższe rozdziały opisują śledzenie dowolnego obiektu, natomiast niniejsza praca wykorzystywać będzie śledzenie ciała człowieka. Metody te zazwyczaj zakładają, że stopień deformacji i wielkość ruchu pomiędzy przylegającymi klatkami jest mały. Z uwagi na liczbę różnych algorytmów potrzebna była ich generalizacja, w celu omówienia i porównania zostanie użyta klasyfikacja zaproponowana przez Yilmaza [51], którą sformułował podczas badań nad tą dziedziną. Zaproponowana przez niego taksonomia wyróżnia trzy metody: • oparte o punkty (ang. point tracking), • oparte o rdzeń (ang. kernel tracking) • oparte o zarysy (ang. silhouette tracking). Poszczególne metody są opisane poniżej. Ponadto w wielu przypadkach, wykorzystują one techniki skanowania trójwymiarowego opisanego w rozdziale „Przegląd zagadnień dotyczących skanowania trójwymiarowego”. 4.1.1. Metody oparte o śledzenie punktów Metody te używają osobnego mechanizmu służącemu detekcji obiektów w każdej klatce. Po wykryciu takiego obiektu jest on reprezentowany przez zbiór punktów, których wybór oparty jest o stan obiektu z poprzednich klatek oraz ruch wykonany przez obiekt pomiędzy klatkami. Algorytm wykorzystujący filtr Kalmana Technika oparta o filtr Bayesowski, składający się z trzech osobnych modeli probabilistycznych: systemowy, pomiarów, uprzedni [29]. Model systemowy opisuje zmianę wektora stanu w czasie w postaci macierzy przekształceń. Stan obiektu zawiera informacje o lokalizacji śledzonego obiektu poprzez zapamiętanie punktów, które do niego należą. Model pomiarów wiąże pomiary wektora do obecnego stanu poprzez macierz pomiarów. Model uprzedni opisuje wiedzę dotyczącą stanu systemu przed dokonaniem pierwszych pomiarów. Filtr Kalmana uśrednia przewidywania stanu systemu używając średniej ważonej, faworyzującej przybliżenia, które 29
  • 30. obarczone są mniejszą niepewnością. Uśrednione przybliżenie, które wyznacza ruch obiektu, jest nowym stanem znajdującym się pomiędzy prognozowanym, a zmierzonym stanem i posiada lepszą szacunkową niepewność niż którykolwiek z nich. Proces uśrednionego przybliżenia działa rekursywnie wykorzystując ostatnie najlepsze przybliżenie, nie korzystając z całej historii stanów. Wykorzystanie trzech niezależnych przybliżeń zwiększa odporność algorytmu na dane posiadające duże zakłócenia, szumy. 4.1.2. Metody oparte o śledzenie rdzenia Rdzeniem może być kształt lub wygląd obiektu (przykładowo prostokątny szablon lub eliptyczny kształt wraz z histogramem). Obiekty są śledzone poprzez obliczenia ruchu rdzenia w kolejnych klatkach. Ruch jest zazwyczaj formą parametryzowanych transformacji takich jak obrót, przesunięcia. Algorytm ICP Technika porównuje dwa zbiory punktów w przestrzeni trójwymiarowej (np. zeskanowane dane trójwymiarowe oraz trójwymiarowy model obiektu, który zamierzamy śledzić) [9]. Algorytm ICP (ang. Iterative Closest Point) znajduje skorelowane ze sobą punkty i szacuje przybliżenia transformacji ich ruchu pomiędzy dwoma zbiorami punktów minimalizując błąd (zazwyczaj odległość Euklidesową). Metodyka ta pozwala zarówno na użycie współrzędnych punktów w przestrzeni wraz z ich kolorami poprzez dołączenie informacji o kolorze do odległości między punktami lub poprzez filtrowanie dopasowań na podstawie podobieństw kolorów. Algorytm początkowo wykonuje się niezależnie dla każdej kończyny trójwymiarowego modelu. Początkowa pozycja kończyny jest przybliżeniem z poprzedniej klatki. Ważną cechą opisywanego algorytmu jest wykorzystywanie tylko widocznych punktów, jeżeli kończyna nie posiada widocznych punktów, zakłada się, że jej ruch jest taki sam jak w poprzedniej klatce. W przypadku śledzenia człowieka do modelu wzorcowego wprowadza się zależności pomiędzy poszczególnymi kończynami. 4.1.3. Metody oparte o śledzenie zarysów Śledzenie jest wykonywane przez szacowanie obszaru obiektu w każdej klatce. Metody te używają informacji zawartej w obszarze obiektu, która zazwyczaj jest reprezentowana przez model kształtu przykładowo mapy 30
  • 31. krawędzi. Za pomocą użytego modelu dla obiektu śledzone są one poprzez dopasowania kształtów lub rozwój zarysu. Algorytm wykorzystujący optical flow Metoda ta skupia się w dużej mierze na powierzchni widzianego obrazu, określa z niego pozycję obserwatora, ruch obserwowanych obiektów wraz z ich kierunkiem [28]. Technika korzysta z zależności pomiędzy obserwatorem, a obserwowaną sceną powstających w wyniku ich relatywnego ruchu. Ze względu na działanie metody wykorzystujące optical flow dzielą się na algorytmy analizujące ruch wszystkich pikseli, zwane gęstymi oraz metody rzadkie, które analizują wybrane piksele. Realizacją rzadkiej metody optical flow jest algorytm Lucas-Kanade. Zakłada on stałość przepływu w obrębie sąsiedztwa pikseli, które są wybrane do śledzenia. Sąsiedztwo piksela jest wybierane za pomocą metody najmniejszych kwadratów. Realizacją gęstej metody optical flow jest algorytm Horn-Schunck. Zakłada on płynność przepływu w całym obrazie starając się minimalizować zniekształcenia w przepływie. 4.1.4. Porównanie metod Powyższe metody różnią się przede wszystkim sposobem tworzenia modelu reprezentującego ciało ludzkie oraz rodzajem danych wejściowych. Należy zauważyć, iż żadna z powyższych metod nie posiada cech uniwersalnych (np. żadna z nich nie zapewnia złożoności umożliwiającej pracę w czasie rzeczywistym). Tym samym trudno wyłonić metodę dominującą nad pozostałymi, co może skłaniać do korzystania z różnych algorytmów w zależności od dostępnego sprzętu lub oczekiwanej wydajności, bądź ich syntezy. Ostatnie badania miały na celu znalezienie nowej metody umożliwiającej śledzenie ciała ludzkiego w czasie rzeczywistym [37]. Wynaleziona metoda korzystała z danych pozyskanych ze skanera 3D wykonując na nich algorytmy oparte o śledzenie zarysów. Całość metody wsparto uczeniem maszynowym, w celu zmniejszenia złożoności obliczeniowej algorytmów śledzących obiekty. Rozwiązanie takie ukazuje współczesne podejście do opisywanego problemu, które zakłada potrzebę połączenia wielu dziedzin i metod. 31
  • 32. 4.2. Przegląd zagadnień dotyczących skanowania trójwymiarowego Zagadnienia skanowania trójwymiarowego stosowane są w wielu dziedzinach, począwszy od przemysłu filmowego i gier wideo, poprzez kontrolę jakości, a skończywszy na wzornictwie przemysłowym. Dane dotyczące trójwymiarowego modelu obiektów z powodzeniem zwiększają skuteczność np. zagadnień związanych ze śledzeniem ciała ludzkiego opisanych w rozdziale „Przegląd zagadnień związanych ze śledzeniem ciała człowieka”. Zgodnie z taksonomią przyjętą przez Curlessa [7] wyróżniamy skanowania aktywne oraz pasywne. 4.2.1. Metody oparte o skanowanie aktywne Ze względu na niską prędkość skanowania oraz potrzebę stosowania inwazyjnych maszyn współrzędnościowych, które wykluczają przydatność tych technologii dla realizacji tej pracy, dalszy opis skanowania kontaktowego zostanie pominięty. Skupiając się na technologiach skanowania dystansowego możemy wyróżnić m.in.:Time-of-flight [12] i Structured light [8]. Time-of-flight Kamery typu time-of-flight wykrywają głębię poprzez emitowanie impulsowego lub modulowanego sygnału świetlnego, dla którego mierzy się różnice czasową czoła odbitej fali. Szczegółowy proces zależy od tekstury skanowanej sceny, a jego realizacja, przy użyciu przybliżeń, możliwa jest w czasie rzeczywistym, niestety, dane pozyskane tą metodą zawierają wiele błędów pomiaru. Dodatkowo rozdzielczość sensora skanującego jest zazwyczaj ograniczona do rozdzielczości 320 x 240 px lub mniejszej, co stanowi ułamek rozdzielczości współczesnych aparatów. W celu przeciwdziałania tym niedogodnościom istnieją techniki, które łączą kamerę mierzącą głębię w niskiej rozdzielczości z kamerą RGB o wysokiej rozdzielczości. Opierają się one w głównej mierze na zwiększaniu rozdzielczości obrazu wejściowego zakładając, iż ułożenie i nieciągłości występują w obu obrazach na raz. Usprawnienie takie co prawda zwiększa rozdzielczość skanowanej sceny i poprawia jakość otrzymywanych obrazów, jednak dla niestandardowych obiektów nie jest tak skuteczne. 32
  • 33. Structured light Skanery typu structured light składają się z jednej lub wielu kamer oraz jednego lub wielu źródeł światła. Poszczególne realizacje rzeczonych skanerów różnią się także rodzajem użytego światła, którego spektrum jest zazwyczaj niewidoczne, spotyka się InfraRed Structured Light, Imperceptible Structuded Light i Filtered Structured Light.W sposobie działania structured light podobne jest do klasycznego sensora stereoskopowego, w którym kamera zastąpiona została źródłem światła, zazwyczaj laserem lub rzutnikiem przeźroczystym. Najprostszą formą skanera jest laser rzucający pojedynczy promień, rzucający na skanowaną scenę pojedynczy punkt. Z powodu potrzeby skanowania w obu osiach, zamiast niego stosuje się emisje pojedynczej szczeliny, co wiąże się z potrzebą jej przesuwania lub powszechniej siatki punktów rozłożonych równomiernie. W przypadku problemów ze skorelowaniem punktów na siatce źródłowej z punktami wyświetlonymi na skanowanej scenie stosuje się specjalny wzór siatki, w którym każdy punkt jest łatwo odróżnialny od reszty. 4.2.2. Metody oparte o skanowanie pasywne Pasywne skanery nie emitują żadnych promieni. Zamiast tego starają się korzystać z promieniowania środowiska, które jest odbijane. W ramach metod opartych o skanowanie pasywne możemy wyróżnić m.in.: stereoskopię oraz fotometrię. Stereoskopia Systemy te używają zazwyczaj dwie kamery oddalone od siebie małym odstępem, który równy jest średniemu rozstawowi oczu ludzkich - 65mm. Za pomocą analizy różnicy pomiędzy obrazami uchwyconymi przez obie kamery wyznacza się odległości pomiędzy punktami. Do zalet tych technik należy zaliczyć uzyskiwanie obrazów w wysokiej rozdzielczości, a także bardzo niskie koszty urządzeń. Zjawisko bazuje na postrzeganiu obrazu trójwymiarowego przez człowieka, z tą różnicą, że oczy zmieniają kąty swoich nachyleń na podstawie dystansu do obserwowanego obiektu.W celu zachowania zgodności z tym zachowaniem stosuje się przekształcenia geometryczne. Dodatkowo istnieje problem przynależności, który polega na przyporządkowaniu części obrazu do innego ujęcia tej samej sceny. Jego rozwiązanie polega na wykrywaniu podobieństw lub cech szczególnych. 33
  • 34. Fotometria Fotometria stereofoniczna jest techniką przybliżania wektorów normalnych powierzchni poprzez obserwację obiektu w różnych warunkach oświetlenia. Metoda opiera się na założeniach, iż korelacja punktów na obiekcie znana jest a priori, ponieważ poszczególne zdjęcia wykonywane są z tego samego miejsca. W tej technice kształt wyznaczany jest poprzez pomiary ilości światła i jego kąta odbicia od skanowanego obiektu. 4.2.3. Porównanie metod Powyższe metody różnią się przede wszystkim swoim zastosowaniem, w przypadku potrzeby zeskanowania dużej sceny lepsze okażą się metody oparte o skanowanie pasywne, w których wykorzystywane sensory mogą posiadać dużą rozdzielczość. Jeżeli oczekiwane jest skanowanie z bardzo dużą dokładnością lub kluczowy jest czas przetwarzania, wówczas należy wybrać metody oparte o skanowanie aktywne. 34
  • 35. 5. Metody interakcji człowieka z systemem komputerowym Human-Computer Interaction jest filozofią tworzenia interfejsów skupiając się na jego użytkowniku, zamiast na urządzeniu. Doktryna ta skupia się na szerokim znaczeniu użytkowania systemu, dlatego też korzysta z badań psychologicznych, nauk kognitywnych, ergonomii, socjologii, inżynierii, biznesu, projektowania graficznego oraz projektowania systemów [17]. Filozofia ta nie skupia się wyłącznie na oprogramowaniu i jego interfejsie, a na wszystkich czynnikach, które mają wpływ na interakcje z użytkownikiem (np. sprzęt i środowisko). HCI we wszystkich swoich aspektach kładzie nacisk na wygodę użytkownika. 5.1. Przegląd zagadnień związanych z rodzajem interfejsu użytkownika W celu uzyskania najlepszych wrażeń związanych używaniem systemu wynaleziono nowe rodzaje interfejsów użytkownika stosowanych w Human- Computer Interaction, które można podzielić na trzy kategorie: TUI (ang. Tangible User Interface), SUI (ang. Surface User Interface), AUI (ang. Ambient User Interface) [21]. Poszczególne kategorie zostały opisane w poniższych rozdziałach. 5.1.1. Tangible User Interface W odróżnieniu od GUI (ang. Graphical User Interface), który przedstawia elementy poprzez wyświetlanie ich wirtualnych odpowiedników na ekranie, TUI używa specjalnie zaprojektowanych fizycznych przedmiotów, które zapewniają zarówno prezentację elementów jak i ich kontrolę [46]. Pierwsza definicja opisywanej kategorii interfejsów zakładała, że element posiada swoje wejście i wyjście odzwierciedlone w fizycznym obiekcie, jednak ewoluowała ona wraz z rozwojem tej dziedziny. Obecnie uznawany paradygmat stwierdza, że użytkownik manipuluje fizycznym obiektem za pomocą gestów, które są wykrywane przez system i używane do jego kontroli. Poprzez prostą metaforę użytkowania i brak rozróżnienia pomiędzy urządzeniami sterujących wejściem, a urządzeniami reprezentujących wyjście, TUI w odpowiednio dobranych zastosowaniach stanowi naturalny sposób obsługi systemu dla użytkownika. Należy przy tym pamiętać, iż brak tego rozróżnienia wymaga 35
  • 36. dobrze zaprojektowanego interfejsu użytkownika oraz wyklucza zastosowania w każdym scenariuszu. Na poniższym rys. 12 znajduje się system Siftables, który używa specjalnych prostopadłościanów do kontrolowania aplikacji. Rysunek 12. Siftables - przykład systemu wykorzystującegoTangible User Interface 5.1.2. Surface User Interface SUI jest klasą interfejsów użytkownika, które bazują na ekranie emitującym światło (takim jak ekran LCD lub rzutnik cyfrowy), posiadającym warstwę umożliwiającą jego kontrolę (taką jak ekran dotykowy - ang. touchscreen) [20]. Podobnie jak w przypadku TUI wejścia i wyjścia z systemu są ściśle ze sobą powiązane. W celu wykrycia danych wprowadzanych przez użytkownika używa się różnych rozwiązań takich jak: Computer Vision, membranę rezystywną lub pojemnościową. Wykorzystywane są zarówno w przestrzeni publicznej (kioski interaktywne, nowoczesne bankomaty) oraz w urządzeniach mobilnych (nowoczesne smartfony takie jak Apple iPhone) gdzie odrębna klawiatura i mysz nie może lub nie powinna być zastosowana. Projektując systemy wykorzystujące SUI należy pamiętać o fizycznych odczuciach wyświetlanych elementów oraz o ograniczeniach konkretnego sprzętu, który ma służyć jako interfejs. Na poniższym rys. 13 znajduje się Microsoft Surface, który jest stosowany w wielu hotelach oraz lokalach rozrywkowych jako punkty pozyskiwania informacji. 36
  • 37. Rysunek 13. Micrososft Surface - przykład systemu wykorzystującego Surface User Interface 5.1.3. Ambient User Interface Opisywane powyżej technologie wymagają uwagi i zaangażowania użytkownika. AUI stara się wyświetlić lub przekazać informację w taki sposób, żeby mogła być ona zignorowana [35]. Użytkownik w zależności od potrzeby jest w stanie uzyskać ją od systemu. Filozofia ta opiera się na pojęciu widzenia obwodowego. Dowiedziono, iż człowiek posiada umiejętności do rozpoznawania znanych mu struktur oraz identyfikacji szczególnych ruchów, które znajdują się poza obszarem wzroku. W praktyce stosuje się wyświetlacze środowiskowe (ang. ambient displays), dźwięk, ruch lub zapach, który może przekazywać w tle informacje pochodzące z systemu. Ze względu na swoje założenia systemy oparte o AUI nie opierają swojego działania w sposób krytyczny o dane wejściowe, system może pobierać dane wejściowe gdy użytkownik uzna to za odpowiednie i potrzebne. Na poniższym rys. 14 znajduje się interaktywna przestrzeń umieszczona w Rockefeller Center, która reaguje na obecność użytkowników. 37
  • 38. Rysunek 14. Interactive Breezeway - przykład systemu wykorzystującego Ambient User Interface 5.1.4. Porównanie rodzajów interfejsu Porównując powyższe rodzaje interfejsów użytkownika należy stwierdzić, iż żaden z nich nie jest uniwersalny i decyzja o użyciu konkretnego rozwiązania powinna wynikać z celu systemu. Przy projektowaniu interfejsów zgodnych z Human-Computer Interaction należy wziąć pod uwagę stopień zaangażowania użytkownika, ilość prezentowanych informacji oraz ilość użytkowników i rodzaj wymaganej interakcji 5.2. Klasyfikacja gestów Ze względu na rozległość dziedziny jakim jest rozpoznawanie gestów postanowiono, iż ich analiza zostanie zawężona do gestów ręki z uwagi na powszechność ich stosowania oraz ich największą uniwersalność, która pozwala na ich przystosowanie do wymagań wybranych scenariuszy. Kontrolowanie aplikacji za pomocą rozpoznawania gestów wykonywanych przez człowieka korzysta z faktu, iż są one integralną częścią komunikacji. W celu porównania różnych rodzajów wykonywanych gestów oraz określenia rodzaju aplikacji, w których mogą być one stosowane, zastosowano taksonomię opisaną przez Wu i Huanga [52]. Klasyfikacja ta oparta jest o reakcje na różne grupy gestów: konwersacyjne, kontroli, manipulacyjne oraz komunikatywne. Poszczególne grupy zostaną opisane i porównane poniżej. 38
  • 39. • Gesty konwersacyjne - Do gestów konwersacyjnych zaliczamy języki migowe, a aplikacje je rozpoznające używane są przede wszystkim w środowiskach testowych lub przeznaczonych dla osób niepełnosprawnych. • Gesty kontroli - Gesty kontroli służą przede wszystkim do wskazywania obiektów za pomocą gestów wskazywania lub do nawigacji używając wzajemnego położenia obu rąk w przestrzeni trójwymiarowej. • Gesty manipulacyjne - Gesty manipulacyjne sprawdzają się najlepiej podczas interakcji z wirtualnymi obiektami. • Gesty komunikatywne - Gesty komunikatywne są subtelnymi ruchami wykonywanymi przez ludzi podczas porozumiewania się i są przedmiotem analizy psychologicznej, którą wspomagają aplikacje rozpoznające tą grupę gestów. 5.2.1. Porównanie rodzajów grup Powyższe grupy różnią się przede wszystkim swoim zastosowaniem oraz rodzajem systemu, który ich używa. Najszersze zastosowanie posiadają gesty manipulacyjne oraz kontroli ze względów podniesienia użyteczności aplikacji, a także łatwości i intuicyjności takich rozwiązań. 5.3. Metody interakcji związanej z wykrywaniem gestów ręki Rozpoznawanie gestów jest zagadnieniem często opisywanym w rozlicznych publikacjach naukowych. Dotychczasowe badania w dużej mierze dotyczą gestów dynamicznych wykonywanych w dwuwymiarze lub gestów statycznych w trójwymiarze. Obecnie powstające rozwiązania komercyjne rozpoznają gesty dynamiczne w trójwymiarze lecz nie są one opisywane w ogólnie dostępnych publikacjach. Wobec powyższego zaistniała potrzeba utworzenia nowej metody rozpoznawania gestów bazującej na rozwiązaniach znanych z dotychczasowych badań. 5.3.1. Ukryte modele Markowa HMM (ang. Hidden Markov Model) jest procesem stochastycznym generowanym przez dwa połączone ze sobą mechanizmy probabilistyczne [27]. Zakłada się, iż proces ten znajduje się w pewnym stanie w dyskretnych momentach czasu. Jego obserwacja generowana jest przez losową funkcję 39
  • 40. odpowiadającą bieżącemu stanowi procesu. Zmiany stanów zachodzą zgodnie z macierzą prawdopodobieństw. Na zewnątrz widziany jest tylko wyjście funkcji losowych związanych z każdym stanem i niemożliwa jest obserwacja stanu (stany ukryte), w którym proces się znajduje. Dzięki swojej konstrukcji Hidden Markov Model może być stosowany do rozwiązywania różnych klas problemów, najbardziej przydatnym w przypadku rozpoznawania gestów jest znalezienie prawdopodobieństwa występowania ciągu obserwacji dla ustalonego modelu.Wówczas pojedynczy gest jest reprezentowany przez jeden model. 5.3.2. Self-organizing map Self-organizing map, zwana także mapą Kohonena, jest rodzajem sieci neuronowej wykorzystującej sztuczną inteligencję. Uczenie maszynowe tejże sieci przebiega w sposób nienadzorowany - bez nauczyciela. W wyniku szkolenia sieci tworzona jest dyskretna reprezentacja wejściowej przestrzeni, posiadającej małą ilość wymiarów (zazwyczaj dwa). Przestrzenie te noszą miano map. W odróżnieniu od pozostałych sieci neuronowych self-organizing map używają relacji sąsiedztwa w celu zachowania topologicznych własności przestrzeni wejściowych. Związane jest to z samoistnym tworzeniem klastrów węzłów mapy, w których odległość pomiędzy węzłami jest odwrotnie proporcjonalna do podobieństwa między nimi. Metoda ta pozwala także na czytelne obrazowanie zależności występujących w wielowymiarowych danych używając do tego celu skalowania wielowymiarowego. 5.3.3. Porównanie metod Powyższe metody różnią się przede wszystkim potrzebą występowania nauczyciela podczas procesu uczenia sieci oraz wydajnością przetwarzania. Zastosowanie self-organizing map eliminuje potrzebę ręcznego etykietowania nagranych sekwencji gestów w procesie uczenia, jednakże jej złożoność obliczeniowa w przypadku modeli posiadających dużą ilość wymiarów, jakimi bez wątpienia są gesty, uniemożliwia ich klasyfikację w czasie rzeczywistym. Hidden Markov Model mimo zwiększonego nakładu pracy spowodowanego przez wymóg etykietowania nagranych sekwencji gestów w procesie uczenia, dobrze radzi sobie z modelami o dużej ilości wymiarów i z tego względu wydaje się stanowić lepsze rozwiązanie dla klasyfikatora gestów. 40
  • 41. 6. Projekt systemu Poniższy rozdział zawiera opis procesu projektowania budowanego systemu poprzez zebranie wymagań zleceniodawcy i podjęcie decyzji projektowych na podstawie analizy przeprowadzonej w początkowej części niniejszej pracy. 6.1. Wizja systemu 6.1.1. Opis organizacji Realizowany system przeznaczony jest dla Wydziału Chemii Politechniki Gdańskiej. Jego powstanie wiąże się z budową podziemnego łącznika na terenie kampusu uczelni, który będzie łączył dotychczasowe trzy budynki wydziału. Inwestycja poza powstaniem nowych pomieszczeń zakłada także stworzenie kilku ekspozycji typu Ambient Intelligence w przestrzeni publicznej w ich obrębie, stanowiąc nowy element interakcji z jego użytkownikami. W projekcie przewidziano różne formy instalacji interaktywnych zawierających ściany wideo, składających się z monitorów modułowych o dużych przekątnych, kamery, czujniki, diody oraz inne urządzenia, które mają składać się na interaktywny korytarz. 6.1.2. Kontekst systemu Zleceniodawca projektu, profesor Elżbieta Ratajczyk-Piątkowska z Katedry Architektury Użyteczności Publicznej Wydziału Architektury Politechniki Gdańskiej, sformułowała wymagania opisujące planowane interakcje dla wszystkich realizowanych systemów. Wizualizacja projekcji cienia polega na stworzeniu wypełnionego obrysu, reprezentującego użytkownika i wyświetleniu go na ścianie wideo. Animacja obrysu powinna odzwierciedlać zmiany pozycji oraz ruchu użytkownika. Grupa interakcji symbolizujących stany skupienia zawiera 3 wizualizacje: wody, lodu, pary wodnej. Wizualizacja wody symbolizuje upłynnienie kształtu poprzez wyświetlenie pionowych linii, które mogą być kształtowane przez ruchy użytkownika. Animacja linii miałaby przypominać propagację fali tłumionej poprzez na przykład ruch ręki. Wizualizacja lodu symbolizuje jego kruszenie poprzez wyświetlanie siatki złożonej z pionowych i poziomych linii, które mogą być transformowane przez ruchy użytkownika. Animacja linii miałaby przypominać tworzenie za ich pomocą perspektywy poprzez ruchy całego ciała 41
  • 42. użytkownika. Wizualizacja pary wodnej symbolizuje jej powstawanie na szybie poprzez wyświetlanie nieregularnych spiral logarytmicznych, które mają za zadanie reprezentować parę wodną powstającą po dmuchnięciu na szybę. Animacja krzywych miałaby przypominać zwiększanie ich rozmiaru wraz z przybliżaniem się użytkownika. Grupa wizualizacji została przedstawiona na poniższym diagramie zawartym na rys. 15. 42
  • 43. Rysunek 15. Diagramy przedstawiające zamysł zleceniodawcy dotyczący grupy interakcji symbolizujących stany skupienia: wody, lodu, pary wodnej Projekt interaktywnego korytarza zakłada utworzenie dwóch ścian wideo, w miejscach, które zaplanowane są jako miejsce spotkań studentów. Ich głównym zadaniem jest przeprowadzanie nieinwazyjnej interakcji z przechodzącymi użytkownikami posiadając równocześnie atrakcyjną i przyciągającą oko formę prezentacji. Do ich uzyskania planowane jest powstanie różnych rodzajów systemów, wśród nich znajdują się: interaktywna tablica Mendelejewa, tablica z ogłoszeniami, kontrolowana poprzez wysyłanie wiadomości SMS z telefonów komórkowych, zestaw nieskomplikowanych gier komputerowych, umożliwienie przeglądania stron internetowych oraz wyświetlanie prezentacji multimedialnych. Na poniższym planie zawartym na rys. 16 przedstawione jest rozmieszczenie poszczególnych systemów oraz ich połączenie w powstających pomieszczeniach. 43
  • 44. Rysunek 16. Plan lokalizacji poszczególnych elementów systemu w miejscu powstającego korytarza Projekt zawiera dwie ściany wideo różnych rozmiarów oznaczonych na planie jako Ekran A, wyróżniony kolorem zielonym oraz Ekran B, wyróżniony kolorem zielonym. Oba systemy połączone są do Centrum Sterowania, które zawierać będzie serwery zarządzające ekranami oraz ich interakcją. Ściana wideo według projektu składa się z 4 grup monitorów modułowych w układzie 2x2 każda w przypadku Ekranu A lub 6 monitorów w układzie 3x2 dla Ekranu B. Do realizacji wybrane zostały monitory modułowe o przekątnej 46” o 44
  • 45. rozdzielczości 1920 x 1080 px. W skład ściany wchodzi także serwer zarządzający ekranem, do którego podłączone są także sensory takie jak: kamery CMOS wraz z optyką, mikrofony kierunkowe, czujniki odległości, nakładki dotykowe na ekran. Za wykonanie ścian wideo odpowiada zewnętrzny wykonawca. Na poniższych schematach zawartych na rys. 17, rys. 18 przedstawiono budowę oraz elementy obu ścian. Rysunek 17. Schemat budowy ściany wideo tworzącej Ekran A Rysunek 18. Schemat budowy ściany wideo tworzącej Ekran B Projektowany system, którego dotyczy ta praca, ma za zadanie kontrolować interaktywną tablicę opisaną w projekcie jako Ekran B. Ściana wideo ma zawierać wizualizację układu okresowego pierwiastków zwaną tablicą Mendelejewa, w której pierwiastki zastąpione są zdjęciami przedstawiającymi detale architektoniczne budynków Politechniki Gdańskiej. 45
  • 46. Ściana wideo powinna prezentować trójwymiarową scenę zawierającą model wizualizacji, którym jest opisywana tablica. Ściana wideo powinna reagować na przechodzących w jej okolicach użytkowników poprzez wykrywanie ich twarzy i zastępowanie nimi losowo wybranych pierwiastków na pewien okres czasu. System powinien wykrywać i śledzić użytkowników w strefie przed ekranem umożliwiając im kontrolowanie trójwymiarowego modelu tablicy Mendelejewa za pomocą gestów rąk. Rysunek 19. Wizualizacja architektoniczna interaktywnej ściany wideo (Ekran B) umieszczonej na korytarzu Chemii Politechniki Gdańskiej Użytkownikami nowego systemu będą przede wszystkim studenci oraz wykładowcy, umieszczone ekspozycje mają na celu stać się miejscem spotkań dla jego użytkowników. Do tej pory na kampusie uczelni nie były obecne systemy tego typu, jednak ze względu na wysoki średni poziom zaawansowania obsługi komputerów przyszłych użytkowników, a także nacisk na intuicyjność użycia rozwiązań Human-Centric Interaction nie przewiduje się potrzeby tworzenia szkoleń z obsługi systemu. 6.1.3. Zakres funkcjonalności Interakcja z użytkownikami Użytkownik systemu może pełnić dwie role w systemie: aktywną, poprzez kontrolę aplikacji przez swoje gesty oraz pasywną, przez przebywanie w pobliżu tablicy. System powinien wykrywać twarze użytkowników pasywnych i wyświetlać je okresowo na ścianie wideo. Danymi wejściowymi do systemu 46
  • 47. w takim przypadku jest strumień wideo zawierający przechodzących przez korytarz użytkowników. Dane takie powinny pochodzić z sensora umieszczonego nad ścianą wideo w kierunku korytarza. W wyniku przeprowadzonych badań i eksperymentów stwierdzono, iż w celu zapewnienia wykrywania twarzy użytkowników, sensory powinny zapewniać obraz w rozdzielczości przynajmniej 1280×720 px. System powinien nadawać role użytkownikom wykrywając pozycję użytkownika aktywnego: ustawienie równoległe do ekranu, brak poruszania się podczas wykrywania. Przestrzeń, przeznaczoną dla użytkowników aktywnych, przed przed ścianą możemy podzielić na trzy strefy co przedstawia poniższy schemat na rys. 20. Rysunek 20. Schemat stref przed ekranem, każda ze stref może wyróżniać się indywidualnymi gestami Poszczególne strefy mogą posiadać różne przypisane gesty, które są rozpoznawane, a wykonywane przez przebywających w nich użytkowników. Danymi wejściowymi do systemu w takim przypadku jest strumień wideo oraz zestaw wskazań sensorów dotyczących przestrzeni przed ścianą wideo. Dane takie powinny pochodzić z sensorów umieszczonych pod ścianą wideo w 47
  • 48. kierunku korytarza. Odległość stref od ściany wideo podyktowana jest zasięgiem działania sensora. Użytkownicy w strefie pierwszej mają możliwość kontrolowania trójwymiarowego modelu wizualizacji. Mogą wykonać gest przybliżania, który zmienia odległość kamery od modelu wizualizacji oraz gest nawigacji, który za pomocą przesuwania kamery umożliwia oglądanie różnych części modelu wizualizacji. Gest przybliżania polega na zmianie odległości pomiędzy uniesionymi rękoma użytkownika ponad jego biodra, odległość ta powinna być powiązana ze współczynnikiem odległości kamery od modelu wizualizacji. Gest nawigacji polega na zmianie pozycji prawej ręki, która jest uniesiona ponad biodro użytkownika, podczas gdy jego lewa ręka spoczywa poniżej biodra, pozycja prawej ręki powinna być powiązana ze współczynnikiem przesunięcia kamery. W wyniku przeprowadzonych badań i eksperymentów stwierdzono, iż w celu zapewnienia analizy gestów w czasie rzeczywistym, sensory wspomagające wykrywanie i śledzenie użytkowników powinny zapewniać odczyty danych z częstotliwością większą lub równą 30 fps oraz zapewniać obraz w rozdzielczości przynajmniej 640 x 480 px. 6.1.4. Zapewnienie prywatności danych do projektu W systemach posiadających nowoczesny interfejs użytkownika powszechne obawy budzi ochrona prywatności jego użytkowników, sposoby i zakres przetwarzania danych, zebranych przez rozmaite czujniki. Współczesne społeczeństwo zaczęło adaptować się do przebywania w przestrzeni pokrytej przez sensory, które ingerują w ich prywatność, zarówno w domu (rozmowy wideo, systemy antywłamaniowe) jak i w przestrzeni publicznej (fotoradary, systemy monitoringu oraz systemy nawigacji i smatfony) [1]. Systemy takie osiągnęły pewien poziom zaufania, jednak zauważono, że zbieranie i przetwarzanie takich danych używając w tym celu systemów komputerowych wzmaga obawy dotyczące ich użycia w niepowołanych celach [16]. Projektując systemy opierające się na Ambient Intelligence należy zwrócić uwagę na kilka czynników. Umieszczając system w przestrzeni publicznej możemy naruszać obszar, który do tej pory był traktowany przez użytkowników jako zapewniający pewien stopień prywatności. Zbierając dane, które można w łatwy sposób przypisać do użytkownika, którego dotyczą (na przykład obraz pobrany z sensorów CMOS), mogą być sklasyfikowane jako poufne. Przechowywanie oraz dostęp do danych zgromadzonych wcześniej powinno być realizowane tylko wtedy, gdy zachodzi taka potrzeba, pozostałe dane powinny mieć charakter tymczasowy. 48
  • 49. 6.1.5. Wymagania jakościowe Z uwagi na dużą ekspozycję oraz reprezentatywność tworzonego systemu konieczne jest zapewnienie wysokiej dostępności implementując rozwiązania Software Fault Tolerance (techniki unikania awarii w oprogramowaniu). Ze względu na mnogość sensorów oraz powszechne obawy dotyczące prywatności użytkowników poruszanych w rozdziale „Zapewnienie prywatności danych do projektu”, system nie może przetwarzać zebranych danych do innych celów niż wymaganych przez zakres funkcjonalności, dodatkowo system nie może przechowywać zebranych danych w czasie dłuższym niż 15 minut. System musi być elastyczny poprzez posiadanie modularnej budowy, tak żeby poszczególne jego elementy mogły być użyte ponownie. System ze względu na swoje interaktywne oraz multimedialne aspekty powinien zapewniać konfigurowalność swoich modułów. 6.2. Przypadki użycia Na poniższym diagramie zawartym na rys. 21 przedstawiono przypadki użycia. Zostali zdefiniowani aktorzy reprezentujący użytkowników o zadanych rolach oraz sensory zbierające dane. Przypadki użycia zostały sformułowane w sposób ogólny, tak aby przedstawić podstawowe wymagania systemu. Rysunek 21. Diagram przypadków użycia W celu uszczegółowienia ogólnych pojęć zawartych na diagramie przypadków użycia zaprezentowano przebiegi interakcji pomiędzy częściami systemu. Poniższe diagramy sekwencji związane są z głównymi scenariuszami użycia systemu. 49
  • 50. Przypadek użycia „Przenieś kamerę” Poniższy diagram zawarty na rys. 22 specyfikuje przebieg i współprace komponentów realizujących przypadek użycia „Przenieś kamerę”. W jego pierwszej części wymagane jest, aby system wykrył użytkownika znajdującego się w przestrzeni aktywnej, następnie przeprowadził śledzenie jego ciała. Sensor gestów poprzez warstwę pośredniczącą informuje w czasie rzeczywistym logikę o wystąpieniu aktualizacji użytkownika wraz z nowymi pozycjami jego stawów. Logika zbiera kolejne przesunięcia kończyn użytkownika i przy pomocy klasyfikatora gestów wykrywa gesty wykonane przez użytkownika. Logika na podstawie rodzaju wykrytego gestu podejmuje akcję do niego przypisaną i dokonuje odpowiednich zmian w scenie interaktywnej. Rysunek 22. Diagram sekwencji dla przypadku użycia „Przenieś kamerę” Przypadek użycia „Wykryj twarze” Poniższy diagram zawarty na rys. 23 specyfikuje przebieg i współprace komponentów realizujących przypadek użycia „Wykryj twarze”. W jego pierwszej części wymagane jest, aby system pobrał ujęcie z sensora zawierające bitmapę przestrzeni znajdującej się przed tablicą. Logika przy użyciu sensora i 50
  • 51. warstwy pośredniczącej wykrywa twarze użytkowników pasywnych w pobranym ujęciu. Logika na postawie zbioru wykrytych twarzy wykonuje okresowe animacje przeprowadzone w scenie interaktywnej. Rysunek 23. Diagram sekwencji dla przypadku użycia „Wykryj twarze” Przypadek użycia „Wykryj strefę użytkownika” Poniższy diagram zawarty na rys. 24 specyfikuje przebieg i współprace komponentów realizujących przypadek użycia „Wykryj strefę użytkownika”. W jego pierwszej części wymagane jest, aby system wykrył użytkownika znajdującego się w przestrzeni aktywnej, następnie przeprowadził śledzenie jego ciała. Sensor gestów poprzez warstwę pośredniczącą informuje w czasie rzeczywistym logikę o wystąpieniu aktualizacji użytkownika wraz z nowymi pozycjami jego stawów. Logika zbiera kolejne przesunięcia kończyn użytkownika i przy ich pomocy wyznacza jego położenie przypisując go do strefy, w której się znajduje. Informacja o strefie, w której użytkownik się znajduje wykorzystywana jest do wyznaczania zbioru możliwych gestów. 51
  • 52. Rysunek 24. Diagram sekwencji dla przypadku użycia „Wykryj strefę” 6.3. Podział na klasy W celu zapewnienia elastyczności poniższy diagram klas zawarty na rys. 25 przedstawia wyłącznie interfejsy klas, tak aby można było je użyć w wybranej później architekturze systemu. Rysunek 25. Diagram klas 52
  • 53. 6.4. Koncepcja modułowa systemu Na poniższym rys. 26 znajduje się diagram koncepcji modułowej systemu, który złożony jest z warstw w celu zapewnienia wymagań opisanych w rozdziale „Wymagania jakościowe”. System pozyskuje wymagane dane poprzez odczyty czujników umieszczonych w sensorach i przekazuje je do odpowiednich warstw pośredniczących, które dokonują konwersji surowych danych do postaci użytecznej i zoptymalizowanej do obliczeń. Dane te dostępne są poprzez warstwę danych, która zapewnia odpowiednie przechowywanie oraz utylizację zgodnie z powyższymi wymaganiami. Warstwa logiki na podstawie pozyskanych danych steruje działaniem tablicy interaktywnej, która wyświetlana jest na ekranie przy użyciu warstwy prezentacji. Logika powinna zapewniać funkcjonalności związane z wykrywaniem twarzy, wykrywaniem oraz śledzeniem użytkowników wraz z analizą ich gestów. Ze względu na cele pracy budowa modułów powinna zapewniać elastyczność wymiany logiki i warstwy prezentacji. Rysunek 26. Diagram koncepcji modułowej systemu 53
  • 54. 7. Uzasadnienie decyzji projektowych W poniższych rozdziałach wybrane zostaną rozwiązania, które posłużą w dalszej części do implementacji aplikacji. W celu porównania rozważanych rozwiązań użyto metryki FP (ang. function point). W przypadku kryteriów stopniowalnych przyjęto następującą skalę: średnia - 1 punkt, dobra - 2 punkty, bardzo dobra - 3 punkty. W przypadku kryteriów jednoznacznych przyjęto następującą skalę: nie - 2 punkty, tak - 3 punkty. W tabelach porównawczych pod uzyskaną oceną dla danego kryterium umieszczono ilość FP, których suma decydowała o wyborze danego rozwiązania. 7.1. Przegląd technologii W celu dobrania odpowiednich kryteriów porównawczych jak i doboru konfrontowanych technologii należałoby w pierwszej kolejności określić kategorie realizowanego systemu. Ze względu na funkcjonalności ekspozycji interaktywnej tworzony system posiada cechy aplikacji graficznych oraz gier wideo (animacje obiektów, interaktywność elementów, absorbujący wygląd). Zważając na wymagania jakościowe dotyczących elastyczności tworzony system musi posiadać cechy aplikacji modularnej (niezależność poszczególnych modułów, możliwość przystosowania i późniejszego wykorzystania części aplikacji). Dla wybranych kryteriów przyjęto skalę ocen opisaną w poniższej tabeli 1. Tabela 1. Skala ocen użyta do porównania technologii Ocena Opis oceny PrzenośnośćPrzenośnośćPrzenośność Wydajność obliczeń Wydajność obliczeń Bardzo dobra brak problemów z przeniesieniem aplikacji na inny wspierany system wraz z zależnościami Dobra brak problemów z przeniesieniem aplikacji na inny wspierany system, występowanie problemów przy przenoszeniu zależności Średnia występowanie problemów z przeniesieniem aplikacji na inny wspierany system wraz z zależnościami Bardzo dobra Wynik w teście http://bubblemark.com/ powyżej 100 fps Dobra Wynik w teście http://bubblemark.com/ powyżej 50 fps 54
  • 55. Ocena Opis oceny Wydajność obliczeń Wsparcie dla modularności Wsparcie dla modularności Wsparcie dla modularności Wsparcie dla obsługi sprzętu Wsparcie dla obsługi sprzętu Wsparcie dla obsługi sprzętu Wsparcie bibliotek interaktywny ch Wsparcie bibliotek interaktywny ch Wsparcie bibliotek interaktywny ch Średnia Wynik w teście http://bubblemark.com/ poniżej lub równym 50 fps Bardzo dobre Wsparcie dla klas, interfejsów, typów generycznych, wstrzykiwania zależności (ang. Dependency Injection), odwrócenia sterowania (ang. Inversion of Control) Dobre Wsparcie dla klas, interfejsów, wstrzykiwania zależności (ang. Dependency Injection), odwrócenia sterowania (ang. Inversion of Control) Średnie Wsparcie dla klas, interfejsów Bardzo dobre Dostęp do urządzeń podpiętych przez port USB, dostęp do sieci Dobre Dostęp do urządzeń podpiętych przez port USB i ograniczony dostęp do sieci lub ograniczony dostęp do urządzeń podpiętych przez port USB i dostęp do sieci Średnie Ograniczony dostęp do urządzeń podpiętych przez port USB, ograniczony dostęp do sieci Bardzo dobre Wsparcie bibliotek do przetwarzania obrazu w czasie rzeczywistym, rozpoznawania obiektów, analizy ruchu, śledzenia obiektów Dobre Wsparcie bibliotek do przetwarzania obrazu w czasie rzeczywistym, rozpoznawania obiektów Średnie Wsparcie bibliotek do przetwarzania obrazu w czasie rzeczywistym Opierając się na powyższych przyporządkowaniach w tabeli 2 porównane zostały następujące technologie: Adobe AIR, JavaFX, Microsoft WPF, Microsoft XNA. • Adobe AIR (ang. Adobe Integrated Runtime) – wieloplatformowa technologia zapewniająca środowisko uruchomieniowe oraz framework RIA (ang. Rich Internet Application, dynamiczne aplikacje internetowe) dla aplikacji napisanych przy użyciu Adobe Flash, Action Script, Adobe Flex, HTML oraz Ajax, które mogą być uruchomione w przeglądarce lub jako samodzielna aplikacja [45], 55
  • 56. • JavaFX – wieloplatformowa technologia zapewniająca środowisko uruchomieniowe oraz framework RIA dla aplikacji napisanych w języku Java, JavaFX Script, które mogą być uruchamiane w przeglądarce, telefonach komórkowych lub jako samodzielna aplikacja [22], • Microsoft WPF (ang. Windows Presentation Foundation) – część frameworku .NET dla systemów Windows odpowiadająca za wyświetlanie aplikacji multimedialnych napisanych w języku C#, VB, które uruchamiane są jako samodzielne aplikacje [26], • Microsoft XNA – technologia zapewniająca środowisko uruchomieniowe oraz framework do tworzenia gier dla systemów Windows oraz na platformę Microsoft Xbox wspierające aplikacje napisane w języku C# [25]. Tabela 2. Porównanie technologii Adobe AIR JavaFX Microsoft WPF Microsoft XNA Obsługiwane systemy operacyjne PrzenośnośćPrzenośność Wsparcie dla scen 3D Wsparcie dla scen 3D Wsparcie dla akceleracji sprzętowej Wsparcie dla akceleracji sprzętowej Wsparcie dla animacji Wsparcie dla animacji Wydajność obliczeń Wydajność obliczeń Linux Mac OS X Windows Mac OS X Windows Windows Windows Xbox 360 Bardzo dobra Bardzo dobra Dobra Średnia 2 2 1 0 Tak Tak Tak Tak 2 2 2 2 Nie Tak Tak Tak 0 2 2 2 Tak Tak Tak Tak 2 2 2 2 Dobra Bardzo dobra Bardzo dobra Bardzo dobra 1 2 2 2 56
  • 57. Adobe AIR JavaFX Microsoft WPF Microsoft XNA Wsparcie dla modularności Wsparcie dla modularności Wsparcie dla obsługi sprzętu Wsparcie dla obsługi sprzętu Wsparcie bibliotek interaktywnych Wsparcie bibliotek interaktywnych Dobre Bardzo dobre Bardzo dobre Bardzo dobre 1 2 2 2 Średnie Dobre Bardzo dobre Dobre 0 1 2 1 Średnie Dobre Bardzo dobre Średnie 0 1 2 0 FP 8 14 15 11 W wyniku analizy porównawczej, której podsumowanie znajduje się w powyższej Tabeli, jako technologia użyta do implementacji systemu został wybrany framework Microsoft Windows Presentation Foundation, który charakteryzuje się przede wszystkim dobrym dostępem i wsparciem dla sprzętu, takiego jak sensory oraz wydajnością i wsparciem dla aplikacji intensywnych graficznie. 7.2. Przegląd architektur systemu Przy wyborze kryteriów służących do porównania architektur systemów kierowano się wymogiem modularnej budowy opisanym w rozdziale „Wymagania jakościowe” oraz możliwością implementacji w technologii wybranej w rozdziale „Przegląd technologii”. Dobierając konfrontowane architektury systemu oparto się na wzorcach architektonicznych [15], które stanowią sprawdzone wzorce projektowe dla opisywanej dziedziny. Ze względu na posiadanie przez system cech gry wideo, takie jak potrzebę renderowania scen trójwymiarowych, odrzucono rozwiązania oparte o architekturę klient- serwer oraz architektury rozproszone. Dla wybranych kryteriów przyjęto skalę ocen opisaną w poniższej tabeli 3. 57
  • 58. Tabela 3. Skala ocen użyta do porównania architektur systemu Ocena Opis oceny Wsparcie dla modularności Wsparcie dla modularności Wsparcie dla modularności Wsparcie dla obsługi animacji obiektów Wsparcie dla obsługi animacji obiektów Wsparcie dla obsługi animacji obiektów Bardzo dobre Wsparcie dla rozdzielenia warstw (architektura wielowarstwowa), wzorca separacji komponentów (ang. Loose coupling), wstrzykiwania zależności (ang. Dependency Injection) Dobre Wsparcie dla rozdzielenia warstw (architektura wielowarstwowa), wzorca separacji komponentów (ang. Loose coupling) Średnie Wsparcie dla rozdzielenia warstw (architektura wielowarstwowa) Bardzo dobre Wsparcie dla zmian atrybutów obiektów, kontrolowania przebiegu animacji Dobre Wsparcie dla zmian atrybutów obiektów, kontrolowania przebiegu animacji przy wykorzystaniu obejść (ang. workaround) Średnie Wsparcie dla zmian atrybutów obiektów Opierając się na powyższych przyporządkowaniach w tabeli 4 poniżej porównane zostały następujące wzorce projektowe: • MVC (ang. Model–view–controller) - architektoniczny wzorzec projektowy stosowany przy tworzeniu aplikacji z graficznym interfejsem użytkownika posiadający trzy warstwy: model (przechowuje dane), view (decyduje o sposobie wyświetlenia danych), controller (odpowiada za zmiany w danych i widokach) [15], • MVVM (ang. Model View ViewModel) - architektoniczny wzorzec projektowy stosowany przy tworzeniu aplikacji z graficznym interfejsem użytkownika posiadający trzy warstwy: model (przechowuje dane), view (decyduje o sposobie wyświetlenia danych), view-model (odpowiada za przekazanie obiektów zawierających dane w sposób łatwy do przetworzenia) [19]. 58
  • 59. Tabela 4. Porównanie architektur systemu MVC MVVM Możliwość implementacji w technologii Microsoft WPF Możliwość implementacji w technologii Microsoft WPF Wsparcie dla modularnościWsparcie dla modularności Wsparcie dla renderowania scen trójwymiarowych Wsparcie dla renderowania scen trójwymiarowych Wsparcie dla obsługi animacji obiektów Wsparcie dla obsługi animacji obiektów Tak Tak 2 2 Bardzo dobre Bardzo dobre 2 2 Tak Tak 2 2 Bardzo dobre Dobre 2 1 FP 8 7 W wyniku analizy porównawczej, której podsumowanie znajduje się w powyższej tabeli 4, jako wzorzec architektoniczny użyty do implementacji systemu został wybrany MVC, który charakteryzuje się dużą elastycznością jak i wsparciem dla renderowania animacji trójwymiarowych. 7.3. Przegląd bibliotek do przetwarzania obrazu w czasie rzeczywistym Przy wyborze kryteriów służących do porównania bibliotek przetwarzających obraz w czasie rzeczywistym kierowano się obsługą algorytmów wybranych w rozdziale „Przegląd zagadnień dotyczących wykrywania twarzy”, obsługą wielu sensorów CMOS związaną z wymaganiami funkcjonalnymi opisanymi w rozdziale „Zakres funkcjonalności” oraz wsparciem dla technologii wybranej w rozdziale „Przegląd technologii”. Opierając się na powyższych założeniach w tabeli 5 poniżej porównane zostały następujące biblioteki: • AForge.NET - biblioteka wspomagająca przetwarzanie obrazu oraz sztuczną inteligencję napisana w języku C# [41], • OpenCV + Emgu CV - biblioteka wspomagająca przetwarzanie obrazu napisana w języku C++, istnieje wiele bibliotek pośredniczących (ang. wrapper), które zapewniają wsparcie dla innych języków m.in. Emgu CV wspierające język C# [4], 59
  • 60. • IVT - biblioteka wspomagająca przetwarzanie obrazu napisana w języku C++ [2], • Torch3vision - biblioteka wspomagająca przetwarzanie obrazu oraz uczenie maszynowe napisana w języku C++ [18]. Tabela 5. Porównanie bibliotek do przetwarzania obrazu w czasie rzeczywistym AForge.NET OpenCV + Emgu CV IVT Torch3vision Wsparcie dla technologii Microsoft WPF Wsparcie dla technologii Microsoft WPF Wsparcie dla wielu kamer Wsparcie dla wielu kamer Wsparcie dla metod wykrywania twarzy w oparciu o wygląd Wsparcie dla metod wykrywania twarzy w oparciu o wygląd Tak Tak (poprzez wrapper Emgu CV) Nie Nie 2 2 0 0 Tak Nie (biblioteka posiada wsparcie, jednak wrapper go nie implementuje) Tak Nie 2 0 2 0 Nie Tak Nie Tak 0 2 0 2 FP 4 4 2 2 W wyniku analizy, której podsumowanie znajduje się w tabeli 5, stwierdzono, iż żadna z porównywanych bibliotek nie spełnia wszystkich wymaganych kryteriów, w związku z czym wybrano bibliotekę AForge.NET do obsługi obrazu z kamer oraz bibliotekę OpenCV wraz z wrapperem Emgu CV dla języka C# do obsługi kaskad Haar’a wykrywających twarze bazując na metodach opierających się o wygląd. Połączenie wybranych bibliotek pokrywa wszystkie postawione wymagania. 7.4. Przegląd sensorów Przy wyborze kryteriów służących do porównania sensorów kierowano się wymogami zrealizowania opisu wymaganych interakcji z użytkownikiem opisanych w rozdziale „Interakcja z użytkownikami”. W tym celu należy 60
  • 61. wybrać dwa sensory: pierwszy wspomagający wykrywanie twarze użytkowników pasywnych oraz drugi, który będzie w stanie wspomagać wykrywanie oraz śledzenie użytkowników aktywnych. Przegląd sensorów wspomagających wykrywanie twarzy użytkowników Wiele sensorów spełnia wymagania opisane powyżej, przykładowym urządzeniem jest IPC F725P, które zapewnia wystarczającą rozdzielczość, a posiadany interfejs sieciowy pozwala na łatwą integrację z systemem. Ze względu na brak opisywanego urządzenia podczas powstawania tej pracy dla celów prototypowych zastąpiono je Logitech HD Pro Webcam. Przegląd sensorów wspomagających wykrywanie oraz śledzenie użytkowników Zgodnie z opisanymi wyżej wymaganiami sensory wspomagające wykrywanie oraz śledzenie użytkowników powinny zapewniać wydajność, która umożliwi przetwarzanie pozyskanych z nich danych w czasie rzeczywistym lub z opóźnieniem niezauważalnym dla użytkownika. Dla wybranych kryteriów przyjęto skalę ocen opisaną w poniższej tabeli 6. Tabela 6. Skala ocen użyta do porównania sensorów wspomagających wykrywanie oraz śledzenie użytkowników Ocena Opis oceny Czas skanowania sceny Czas skanowania sceny Czas skanowania sceny Dokładność sensora Dokładność sensora Dokładność sensora Bardzo dobry Skanowanie sceny o wyjściowej rozdzielczości 640 x 480 px z wydajnością większą lub równą 30 fps Dobry Skanowanie sceny o wyjściowej rozdzielczości 640 x 480 px z wydajnością większą lub równą 10 fps Średni Skanowanie sceny o wyjściowej rozdzielczości 640 x 480 px z wydajnością mniejszą niż 10 fps Bardzo dobra Błąd pomiaru odległości w scenie o wyjściowej rozdzielczości 640 x 480 px mniejszy lub równy 0.5 mm Dobra Błąd pomiaru odległości w scenie o wyjściowej rozdzielczości 640 x 480 px mniejszy lub równy 1 mm Średnia Błąd pomiaru odległości w scenie o wyjściowej rozdzielczości 640 x 480 px większy niż 1 mm 61
  • 62. Ocena Opis oceny Liczba skanowanych punktów Liczba skanowanych punktów Liczba skanowanych punktów Bardzo dobra Liczba skanowanych punktów równa lub większa niż 300 000 Dobra Liczba skanowanych punktów równa lub większa niż 200 000 Średnia Liczba skanowanych punktów mniejsza niż 100 000 Opierając się na powyższych przyporządkowaniach w tabeli 7 poniżej porównane zostały następujące sensory: • 3D3 HDI Base - skaner trójwymiarowy typu time-of-flight emitujący białe światło, używa kamery HD do odczytu fal odbitych [38], • David laserscanner - skaner trójwymiarowy typu time-of-flight emitujący wiązkę laserową, używa kamery UXGA do odczytu fal odbitych [42], • Microsoft Kinect - skaner trójwymiarowy typu structured light emitujący siatkę złożoną z punktów w podczerwieni, używa sensora CMOS o rozdzielczości VGA od odczytu fal odbitych [32]. Tabela 7. Porównanie sensorów wspomagających wykrywanie oraz śledzenie użytkowników 3D3 HDI Base David laserscanner Microsoft Kinect Wsparcie dla technologii Microsoft WPF Wsparcie dla technologii Microsoft WPF Wsparcie dla pracy z dowolnym tłem Wsparcie dla pracy z dowolnym tłem Wsparcie dla pracy bez kalibracjiWsparcie dla pracy bez kalibracji Czas skanowania scenyCzas skanowania sceny Nie Nie Tak 0 0 2 Tak Nie Tak 2 0 2 Tak Nie Tak 2 0 2 Dobry Średni Bardzo dobry 1 0 2 62
  • 63. 3D3 HDI Base David laserscanner Microsoft Kinect Dokładność sensoraDokładność sensora Liczba skanowanych punktówLiczba skanowanych punktów Bardzo dobra Dobra Średnia 2 1 0 Bardzo dobra Średnia Bardzo dobra 2 0 2 FP 9 1 10 W wyniku analizy porównawczej, której podsumowanie znajduje się w powyższej tabeli, jako sensory wspomagające wykrywanie i śledzenie użytkowników został wybrany Microsoft Kinect, który sprawdzi się najlepiej dostarczając dane do przetworzenia w czasie rzeczywistym. 7.5. Przegląd oprogramowania pośredniczego W celu integracji wybranych sensorów w rozdziale „Przegląd sensorów” z systemem należy wybrać odpowiednie oprogramowanie pośredniczące między urządzeniami. Do pobierania strumienia wideo z kamery można wykorzystać bibliotekę AForge.NET wybraną w rozdziale „Przegląd bibliotek do przetwarzania obrazu w czasie rzeczywistym”. Dla wybranych kryteriów przyjęto skalę ocen opisaną w poniższej tabeli 8. Tabela 8. Skala ocen użyta do porównania oprogramowania pośredniczącego Ocena Opis oceny Wsparcie dla śledzenia użytkowników Wsparcie dla śledzenia użytkowników Wsparcie dla śledzenia użytkowników Wsparcie dla śledzenia stawów użytkownika Wsparcie dla śledzenia stawów użytkownika Bardzo dobre Śledzenie więcej niż 6 użytkowników Dobre Śledzenie więcej niż 1 użytkownika Średnie Śledzenie 1 użytkownika Bardzo dobre Śledzenie co najmniej 10 stawów, w tym nadgarstków, łokci, ramion, bioder Dobre Śledzenie co najmniej 6 stawów w tym nadgarstków, łokci, ramion 63
  • 64. Ocena Opis oceny śledzenia stawów użytkownika Wydajność śledzenia stawów użytkownika Wydajność śledzenia stawów użytkownika Wydajność śledzenia stawów użytkownika Średnie Śledzenie mniej niż 6 stawów w tym, nadgarstków, łokci Bardzo dobra Śledzenie stawów użytkownika z wydajnością większą lub równa 30fps Dobra Śledzenie stawów użytkownika z wydajnością większą lub równa 20fps Średnia Śledzenie stawów użytkownika z wydajnością większą lub równa 10fps Ze względu na brak oficjalnego SDK (Software Development Kit - zestaw narzędzi wspierający obsługę bibliotek) porównano jego planowaną specyfikację z rozwiązaniami, które do tej pory powstały: OpenNI + NITE. W tabeli 9 poniżej porównano następujące oprogramowanie pośredniczące: • Microsoft Kinect SDK - oficjalne SDK producenta, którego wydanie zapowiedziane jest na wiosnę tego roku, jednak do tej pory nie jest dostępne, zapewnia odczyt danych z sensorów, śledzenie użytkowników oraz dane dotyczące ich ruchu [34], • OpenNI + NITE - SDK złożone z dwóch części: OpenNI zapewnia dostęp do odczytów danych z sensorów, natomiast NITE zapewnia śledzenie użytkowników oraz dane dotyczące ich ruchu [30]. Tabela 9. Porównanie oprogramowania pośredniczącego Microsoft Kinect SDK OpenNI + NITE Wsparcie dla technologii Microsoft WPF Wsparcie dla technologii Microsoft WPF Wsparcie dla śledzenia użytkownikówWsparcie dla śledzenia użytkowników Wsparcie dla śledzenia stawów użytkownika Wsparcie dla śledzenia stawów użytkownika Tak Tak 2 2 Dobre Dobre 1 1 Bardzo dobre Bardzo dobre 2 2 64
  • 65. Microsoft Kinect SDK OpenNI + NITE Wsparcie dla śledzenia stawów użytkownika bez kalibracji Wsparcie dla śledzenia stawów użytkownika bez kalibracji Wydajność śledzenia stawów użytkownika Wydajność śledzenia stawów użytkownika Tak Nie 2 0 Bardzo dobra Dobra 2 1 FP 9 6 W wyniku analizy porównawczej, której podsumowanie znajduje się w powyższej tabeli 9, jako oprogramowanie pośredniczące do obsługi sensora Microsoft Kinect powinno zostać wybrane Microsoft Kinect SDK, lecz z powodów daty wydania późniejszej niż powstawanie tej pracy zostanie ono dla celów prototypowych zastąpione przez OpenNI wraz z NITE. Podczas wdrażania systemu w docelowe środowisko wymagana będzie wymiana komponentu warstwy pośredniczącej i zastąpienie jej wybraną wersją. 65
  • 66. 8. Implementacja i testowanie 8.1. Wybrane rozwiązania implementacyjne Poniższy rozdział zawiera szczegółowe rozwiązania implementacyjne wybranych problemów związanych z powstawaniem opisywanego systemu. 8.1.1. Wykorzystanie sensora Microsoft Kinect W związku z krótkim okresem przebywania sensora Microsoft Kinect na rynku oraz brakiem szczegółowej dokumentacji opisującej jego integrację poniższy rozdział zawiera opis technologii związanych z wdrożeniem tego urządzenia. Microsoft Kinect jest zestawem sensorów opartym o architekturę PrimeSense [32], której schemat blokowy przedstawiony jest na poniższym rys. 27. Rysunek 27. Schemat blokowy architektury PrimeSense [32] Urządzenie dzięki posiadaniu wielu sensorów (podczerwony czujnik odległości CMOS, kamera CMOS, mikrofony kierunkowe) może w sposób kompleksowy wspierać wykrywanie, śledzenie oraz identyfikację ludzi używając do tego: macierzy mikrofonów kierunkowych, skanera 3D typu structured light oraz sensora CMOS. Na wyjściu urządzenia otrzymujemy obraz w czasie rzeczywistym o rozdzielczości 640x480 px z informacją o odległości każdego piksela. Podczas implementacji wykorzystano bibliotekę OpenNI oraz Nui.Vision, która wspomaga śledzenie stawów użytkownika. W celu 66