Transcript Kinect

KINECT
Krystian Chrystowicz
Tomasz Rokicki
AGENDA
Kinect
Sensor pozwalający na interaktywną rozrywkę bez
potrzeby wykorzystania dodatkowych kontrolerów.
Zaprojektowany pierwotnie dla konsoli Xbox 360,
dostępny jest jednak również osobna wersja dla
komputerów PC.
Budowa
Emiter podczerwieni
Kamera RGB
Kamera głębokości
Automatyczny kontroler
nachylenia
Zestaw mikrofonów
Kamera RGB
Określanie odległości
Odległość określana jest za pomocą emitera promieni
podczerwonych, których prędkość odbicia od obiektu pozwala na
określenie odległości danego punktu.
Odległość – Kinect Beta
Stopy
Metry
1.3’ 2.6’
.4
.8
9.8’
13.1’
26.2’
3
4
8
Tryb domyślny
Tryb bliski
Nieznana
Dobra
Odległość – Kinect 1+
Stopy
Metry
1.3’ 2.6’
.4
9.8’
13.1’
26.2’
.8
3
4
8
Nieznana
Za blisko
Tryb domyślny
Tryb bliski
Dobra
Za daleko
Skeleton Tracking - prawdopodobieństwo
Maksymalnie dwie osoby przez Kinecta
Zalecane 6 graczy
Koordynacja w trój wymiarze
• Stawy metr od kamery
+
+
-
-
Śledzenie ruchu - połączenia
Połączenia mogą mieć następujące stany:
Śledzone, nie śledzone , zasłonięte
Inferred - Occluded, clipped lub low confidence joints
Kinect przetwarza wygładzenie używając tzw. Metody Wygładzenia Wykładniczego
Zaczynamy!
Wymagania sprzętowe
 Komputer z procesorem co najmniej
dual-core 2.66-GHz
 2 GB RAM (rekomendowane 4 GB)
 Karta graficzna kompatybilna z
Windows 7 i wspierająca DirectX 9.0c
 Kontroler Kinect wraz z zasilaczem
Wymagane oprogramowanie
 System operacyjny Windows 7 / 8 (x86 lub x64)
 Środowisko Microsoft Visual Studio® 2010 / 2012 w dowolnej wersji
 Zainstalowana platforma Microsoft .NET Framework 4.0
 Dla przykładów opartych o C++
• Microsoft DirectX® SDK - Lipiec 2010 lub późniejszy
 Dla przykładów z rozpoznawaniem mowy (Speech API):
• Microsoft Speech Platform Runtime, wersja 10.2 lub późniejsza
• Microsoft Speech Platform - Software Development Kit, wersja 10.2
lub późniejsza’
 Kinect for Windows SDK
Co warto wiedzieć, że:
 Aplikacje piszemy w środowisku MS Visual Studio .NET
 Nagłówki oraz przykłady dostępne są w językach
C++ .NET / Visual Basic .NET / C# .NET
 Korzystamy z przestrzeni nazw Microsoft.Kinect
(wcześniej Microsoft.Research.Kinect)
 Podstawowe operację realizujemy za pomocą
NUI (ang. Natural User Inerface)
NUI – Natural User Interface
NUI jest interfejsem pomiędzy użytkownikiem a aplikacją, który pozwala na ich wzajemną interakcję,
bez potrzeby korzystania z dodatkowych urządzeń wskazujących. Ma pozwalać użytkownikom na
korzystanie z aplikacji w sposób naturalny dla człowieka.
 dostęp do sensora Kinect, podłączonego do komputera,
 dostęp do danych, pochodzących z kamer RGB i głębokości w środowisku programowym,
 dostarczenie narzędzi, umożliwiające tzw. skeletal tracking, czyli płynne reagowanie na zachowania,
wywołane ruchem szkieletu człowieka.
Do pojedynczego sensora Kinect, w danym czasie, posiada jedynie jedna aplikacja.
Podstawowe operacje
• Zmiana stanu Kinecta
– Do połączenia się z sensorem i pobieranie danych używamy
metody start() obiektu KinectSensor, w celu rozłączenia
anoglocznie metody stop()
• Do dyspozycji mamy następujące obiekty:
– ColorStream – obsługa otoczenia / kamery
– DepthStream – strumień głębokości
– SkeletonStream – kości
– AudioStream – rozpoznawanie mowy, dźwięku otoczenia
ColorStream
Obraz jest przetwarzany tak jak w przypadku tradycyjnych kamer
multimedialnych. Kinect zwraca nam obraz w dwóch możliwych
rozdzielczościach – pierwsza 640x480 (przy 30 ramkach na sekundę) i
1280x1024
(ale przy użyciu 15 ramek na sekundę).
Dane z kamery - przypomnienie
ColorStream
DEMKO
DepthStream – odległość
• Zwraca odległość i ilość graczy podczas gry
– Wymiary: 320 x 240 = 76,800 pikseli
• Odległość
– Odległość w mm od Kinecta, np..: 2,000mm (6.56 stopy)
• Ilość graczy
– 1-6 graczy
• Odległość jest zmienną typu short (ImageFrame.Image.Bits)
D
D
D
D
D
D
D
D
D
D
D
D
D
P
P
P
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Odległość
Indeks gracza
Definicja odległości
• Zakres: od 850 mm do 4000 mm
• Odległość - 0 oznacza odległość nieznaną
• Kinect SDK umożliwia uzyskanie odległości dla dwóch
graczy jednocześnie. Przyjmowanie są następujące
wartości:
 0 – brak gracza
 1 – gracz 0
 2 – gracz 1
Bufor głębokości
• ImageFrame.Image.Bits
• Tablica bajtów public byte[] Bits;
– punkt startu – lewy górny róg obrazka,
– zapis danych – od lewej do prawej, a potem krok w dół,
– mówi nam o odległości każdego piksela w mm
DepthStream
DEMKO
Skeleton Tracking
NUI Skeleton API dostarcza informacji
o położeniu dwóch postaci,
znajdujących się naprzeciwko sensora
Kinect.
Dane, pobierane przez sensor,
dostarczają informacji o położeniu 20
części ciała, pozwalają one na
określenie ich współrzędnych
względem sensora.
 tryb pasywny
- położenie
 tryb aktywny
- dane każdego punktu
- położenie punktów
NUI Skeleton API dostarcza algorytmy, pomagające w filtrowaniu i
wygładzaniu ruchów obiektów programu, będących odwzorowaniem
poszczególnych punktów (Joint). Objawia się to tym, iż po
przekazaniu odpowiednio ustawionych atrybutów wygładzania, dane
pochodzące z sensora są uśredniane, co powoduje zanik efektu
wibrowania, spowodowany czułością czujnika. Aby wyeliminować ten
problem, możemy użyć następującego kodu:
Skeleton Tracking
DEMKO
Face Recognition – Rozpoznawanie Twarzy
Kinect dla Windows oprócz sylwetki
postaci umożliwia dokładne rozponanie
twarzy. Możliwe jest zidentyfikowanie
ponad 80 różnych unikalnych punktów.
Face Recognition
DEMKO
Audio API
Dla przypomnienia kinect posiada on
4 mikrofony, co pozwala na
wykorzystanie urządzenia, po
poprawnym zainstalowaniu go na
komputerze, nie tylko jako zwykłego
mikrofonu.
Speech API umożliwia:
•
•
•
•
redukcja szumów i efektu echo
przechwytywanie dźwięku wysokiej jakości
lokalizacja źródła dźwięku (z dokładnością 10 stopni)
rozpoznawanie mowy.
Zrzut okiem na klasę
SPEECH RECOGNITION GRAMMAR
Biblioteki, odpowiedzialne za
dźwięk w Kinect SDK, są zgodne
ze standardem SRGS, który jest
powszechnie wykorzystywany w
portalach głosowych do
przeprowadzania dialogu z
użytkownikiem
SPE, a sprawa polska
Do obsługi języka polskiego potrzebny
jest dodatek TTS (Text-to-Speech)
Oficjalnie wg. danych obiektów
RecognizerInfo.AdditionalInfo Kinect
nie jest wspierany, możemy jednak
wymusić jego wykorzystanie.
Rozpoznawanie dialekty polskiego
podczas naszych testów działało
dobrze 
Audio Basic
DEMKO
Kółko i Krzyżyk
DEMKO
Kinect Studio
Kinect Studio wchodzi w skład
Kinect SDK 1.5 jest narzędziem
umożliwiającym odtwarzanie
wcześniej zarejestrowanych
strumieni danych.
KINECT JAKO SKANER 3D
• ReconstructMe jest jedna z wielu
aplikacji pozwalających na
skanowanie obiektów 3D w
czasie rzeczywistym
ReconstructMe
DEMKO
KINECT W DRONIE
Grupa studentów z MIT
wbudowała Kinecta w
dronę razem z IMU
(Inertial Mesuring Unit).
Bazuje na chmurze
punktów wytworzonej
przez kontroler.
Air Presenter for Kinect
Air Presenter umożliwia
sterowanie prezentacjami
Power Point pakietu
Microsoft Office za
pomocą gestów.
Air Presenter
DEMKO
Przydatne materiały
- Ta prezentacja 
- MSDN
http://msdn.microsoft.com/pl-pl/library/kinect-sdk--wprowadzenie.aspx
- http://www.codeplex.com
Dziękujemy 