KINECT

47
KINECT Krystian Chrystowicz Tomasz Rokicki

description

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. - PowerPoint PPT Presentation

Transcript of KINECT

Page 1: KINECT

KINECT

Krystian ChrystowiczTomasz Rokicki

Page 2: KINECT

AGENDA

Kinect – co to jest i jak działa?

Sensory ruchu

Kinect SDK – wstęp

Natural User Interface

Ciekawe projekty z wykorzystaniem kontrolera

Page 3: KINECT

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.

Page 4: KINECT

Kamera RGBKamera głębokości

Automatyczny kontroler nachylenia

Zestaw mikrofonów

Emiter podczerwieni

Budowa

Page 5: KINECT

Kamera RGB

Poziom

Pion

Page 6: KINECT

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.

Page 7: KINECT

Tryb bliski(near mode) Domyślnie

0.4m/1.3 ft 0.8m/2.6 ft

Page 8: KINECT

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

Page 9: KINECT

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+

Page 10: KINECT

Skeleton Tracking - prawdopodobieństwo

Page 11: KINECT

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

Page 12: KINECT

Koordynacja w trój wymiarze

Oś Z Oś X

Oś Y • Stawy metr od kamery

-

+

+ -

Page 13: KINECT

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

Page 14: KINECT

Zaczynamy!

Page 15: KINECT

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

Page 16: KINECT

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

Page 17: KINECT

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)

Page 18: KINECT

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.

Page 19: KINECT

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

Page 20: KINECT

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ę).

Page 21: KINECT

Dane z kamery - przypomnienie

Page 22: KINECT

DEMKO

ColorStream

Page 23: KINECT

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

Page 24: KINECT

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

Page 25: KINECT

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

Page 26: KINECT

DEMKO

DepthStream

Page 27: KINECT

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.

Page 28: KINECT

tryb pasywny- położenie

tryb aktywny- dane każdego punktu- położenie punktów

Page 29: KINECT

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:

Page 30: KINECT

DEMKO

Skeleton Tracking

Page 31: KINECT

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.

Page 32: KINECT

DEMKO

Face Recognition

Page 33: KINECT

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.

Page 34: KINECT

• 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:

Page 35: KINECT

Zrzut okiem na klasę

Page 36: KINECT

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

Page 37: KINECT

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

Page 38: KINECT

DEMKO

Audio Basic

Page 39: KINECT

DEMKO

Kółko i Krzyżyk

Page 40: KINECT

Kinect Studio wchodzi w skład Kinect SDK 1.5 jest narzędziem umożliwiającym odtwarzanie wcześniej zarejestrowanych strumieni danych.

Kinect Studio

Page 41: KINECT

KINECT JAKO SKANER 3D

• ReconstructMe jest jedna z wielu aplikacji pozwalających na skanowanie obiektów 3D w czasie rzeczywistym

Page 42: KINECT

DEMKO

ReconstructMe

Page 43: KINECT

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.

Page 44: KINECT

Air Presenter for Kinect

Air Presenter umożliwia sterowanie prezentacjami Power Point pakietu Microsoft Office za pomocą gestów.

Page 45: KINECT

DEMKO

Air Presenter

Page 46: KINECT

Przydatne materiały

- Ta prezentacja

- MSDN http://msdn.microsoft.com/pl-pl/library/kinect-sdk--wprowadzenie.aspx

- http://www.codeplex.com

Page 47: KINECT

Dziękujemy