KINECT

Post on 24-Feb-2016

85 views 2 download

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

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