KINECT
Krystian ChrystowiczTomasz Rokicki
AGENDA
Kinect – co to jest i jak działa?
Sensory ruchu
Kinect SDK – wstęp
Natural User Interface
Ciekawe projekty z wykorzystaniem kontrolera
KinectSensor 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.
Kamera RGBKamera głębokości
Automatyczny kontroler nachylenia
Zestaw mikrofonów
Emiter podczerwieni
Budowa
Kamera RGB
Poziom
Pion
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.
Tryb bliski(near mode) Domyślnie
0.4m/1.3 ft 0.8m/2.6 ft
1.3’ 2.6’ 9.8’ 13.1’ 26.2’
.4 .8 3 4 8
Tryb domyślny
Tryb bliski
Stopy
Metry
Nieznana Dobra
Odległość – Kinect Beta
1.3’ 2.6’ 9.8’ 13.1’ 26.2’
.4 .8 3 4 8
Tryb domyślny
Tryb bliski
Stopy
Metry
Nieznana Za blisko Dobra Za daleko
Odległość – Kinect 1+
Skeleton Tracking - prawdopodobieństwo
Maksymalnie dwie osoby przez Kinecta Zalecane 6 graczy
DłońLewa
NadgarstekLewy
Ramię Lewę
Głowa
ŁokiećLewy
RamięPrawe
Dłoń prawy
NadgarstekPrawy
Łokieć Prawy
RamięŚrod
StopaLewa
KostkaLewa
KolanoiLewe
BiodroLewe
BiodroŚrod
BiodroPrawe
StopaPrawa
KostkaPrawa
KolanoPrawe
Kręgosłup
Koordynacja w trój wymiarze
Oś Z Oś X
Oś Y • Stawy metr od kamery
-
+
+ -
Połączenia mogą mieć następujące stany:Śledzone, nie śledzone , zasłonięteInferred - Occluded, clipped lub low confidence joints
Kinect przetwarza wygładzenie używając tzw. Metody Wygładzenia Wykładniczego
Śledzenie ruchu - połączenia
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
ColorStreamObraz 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
DEMKO
ColorStream
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
DEMKO
DepthStream
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:
DEMKO
Skeleton Tracking
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.
DEMKO
Face Recognition
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.
• 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.
Speech API umożliwia:
Zrzut okiem na klasę
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
SPEECH RECOGNITION GRAMMAR
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
SPE, a sprawa polska
DEMKO
Audio Basic
DEMKO
Kółko i Krzyżyk
Kinect Studio wchodzi w skład Kinect SDK 1.5 jest narzędziem umożliwiającym odtwarzanie wcześniej zarejestrowanych strumieni danych.
Kinect Studio
KINECT JAKO SKANER 3D
• ReconstructMe jest jedna z wielu aplikacji pozwalających na skanowanie obiektów 3D w czasie rzeczywistym
DEMKO
ReconstructMe
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.
DEMKO
Air Presenter
Przydatne materiały
- Ta prezentacja
- MSDN http://msdn.microsoft.com/pl-pl/library/kinect-sdk--wprowadzenie.aspx
- http://www.codeplex.com
Dziękujemy
Top Related