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