KINECT – czyli z czym to się je?
O czym będziemy mówić? Co to jest i jak działa Kinect? Jak przygotować komputer do pracy z Kinectem? Kinect SDK rzut oka. Kinect jako nietypowa kamera internetowa. Świat nie jest płaski – wkraczamy w 3D. Sekcja zwłok – zabawy szkieletem. Kinect jako nietypowy mikrofon.
Co to jest i jak działa Kinect?
SENSOR 3D KAMERA MIKROFON WIELOPŁASZCZYZNOWY KONTROLER NACHYLENIA
3 słowa o mikrofonach
Jak to działa? – semantyczna segmentacja obrazu w czasie rzeczywistym
Jak to działa? - prawdopodobieństwo
Jak to działa? – drzewa decyzyjne, uczenie maszynowe
Jak przygotować komputer do pracy z Kinectem?
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
Wymagania użytkownika: Kubek kawy Kontroler Kinect wraz z zasilaczem Silne nerwy ;d Dużo……dużo czasu ;D Opcjonalnie – ktoś do cenzurowania otoczenia
Pobierz i zainstaluj następujące rzeczy: Microsoft® Visual Studio® 2010 Express lub dowolną inną wersję Visual Studio 2010 .NET Framework 4.0 Gdy korzystamy z kodu niezarządzanego (C++): Microsoft DirectX® SDK - June 2010 lub wersję późniejszą Runtime for Microsoft DirectX® 9 Gdy chcemy korzystać z funkcji rozpoznawania mowy: Microsoft Speech Platform Runtime, version 10.2 (x86 edition) Microsoft Speech Platform - Software Development Kit, version 10.2 (x86 edition) Kinect for Windows Runtime Language Pack, version 0.9
Pobierz i zainstaluj następujące rzeczy: http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/default.aspx Oficjalne SKD z dnia 01.02.2012
Jak Kinect widoczny jest w systemie?
Kinect SDK rzut oka.
Biblioteka SDK dostępna z menu start>Microsoft Kinect>KinectSDK
Kinect jako nietypowa kamera internetowa.
Jakie informacje otrzymujemy z kamery?
Kąty widzenia obiektywów Zakres działania 1,2 – 3,5 metra od kontrolera Kąty widzenia obiektywów 43° pionowo 57° poziomo Nachylenie kontrolera w zakresie ±28°
Kamera Czujnik głębokości 640x480, 30 klatek na sekundę
Świat nie jest płaski – wkraczamy w 3D.
Dane z kamery - przypomnienie
Bufor głebokoś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.
Jak obliczyć odległość piksela? 2 bajty per piksel (16 bitów) Depth – odległość każdego piksela Distance (0,0) = (int)(Bits[0] | Bits[1] << 8); DepthAndPlayer Index – odległość dla każdego playera Distance (0,0) =(int)(Bits[0] >> 3 | Bits[1] << 5);
Definicja odległości Zakres: od 850 mm do 4000 mm Odległość = 0 oznacza odległość nieznaną Indeks playera 0 – brak gracza 1 – gracz 0 2 – gracz 1
Sekcja zwłok – zabawy szkieletem.
Skeleton API
Dane o szkielecie
Kości Nazewnictwo w języku polskim Można śledzić na raz dwóch graczy Każdy gracz ma określone wartości <x, y, z> dla każdej kości Każda kość ma przypisany jeden ze stanów: Tracked, Not tracked, Inferred Inferred – kość jest zasłonięta przez inną lub jakiś przedmiot itp. Not Tracked – raczej nie występuje, ale trzeba to sprawdzać
DEMO
Kinect jako nietypowy mikrofon.
Cechy mikrofonu Format dźwięku Cztery mikrofony 16-kHz, 16-bit mono pulse code modulation (PCM) Cztery mikrofony 24 bitowy konwerter analog-cyfra Sprzętowa redukcja szumów i echa
Audio API
DEMO
Bonus – gdzie szukać informacji http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk Dokumentacja SDK http://channel9.msdn.com/