470 likes | 755 Vues
KINECT. Krystian Chrystowicz Tomasz Rokicki. AGENDA. Kinec t – co to jest i jak działa? Sensory ruchu Kinect SDK – wstęp Natural User Interface Ciekawe projekty z wykorzystaniem kontrolera. Kinect.
E N D
KINECT Krystian ChrystowiczTomasz Rokicki
AGENDA • Kinect – co to jest i jak działa? • Sensory ruchu • Kinect SDK – wstęp • Natural UserInterface • Ciekawe projekty z wykorzystaniem kontrolera
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 Pion Poziom
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.
0.4m/1.3 ft 0.8m/2.6 ft Tryb bliski (nearmode) Domyślnie
Odległość – Kinect Beta Stopy 1.3’ 2.6’ 9.8’ 13.1’ 26.2’ Metry .4 .8 3 4 8 Tryb domyślny Tryb bliski Nieznana Dobra
Odległość – Kinect 1+ Stopy 1.3’ 2.6’ 9.8’ 13.1’ 26.2’ Metry .4 .8 3 4 8 Tryb domyślny Tryb bliski Nieznana Za blisko Dobra Za daleko
RamięŚrod Głowa RamięPrawe Ramię Lewę Łokieć Prawy ŁokiećLewy NadgarstekPrawy NadgarstekLewy Kręgosłup Dłoń prawy BiodroŚrod Dłoń Lewa BiodroLewe BiodroPrawe KolanoPrawe KolanoiLewe • Maksymalnie dwie osoby przez Kinecta • Zalecane 6graczy KostkaPrawa KostkaLewa StopaPrawa StopaLewa
Koordynacja w trój wymiarze • Stawy metr od kamery + Oś Y Oś Z + Oś X - -
Śledzenie ruchu - połączenia • Połączenia mogą mieć następujące stany: • Śledzone, nie śledzone , zasłonięte • Inferred - Occluded, clippedlub low confidence joints Kinect przetwarza wygładzenie używając tzw. Metody Wygładzenia Wykładniczego
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ówz rozpoznawaniemmowy (Speech API): • Microsoft Speech Platform Runtime, wersja10.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 UserInerface)
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. skeletaltracking, 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ę).
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) Odległość Indeks gracza
Definicja odległości • Zakres: od850 mm do4000 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ówpublic 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.
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.AdditionalInfoKinect 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 (InertialMesuring 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