0
Ce este de fapt Kinect-ul și cum îlputem folosi                               Radu Vunvulea
Agenda •   Scurt istoric •   Ce este de fapt Kinect-ul? •   Din ce este compus •   Ce contine •   Date tehnice despre senz...
Scurt istoric•   24/09/2009 - apare primul anunt oficial din partea Microsoft        Nume de proiect: Natal•   12/03/2010 ...
Ce este de fapt Kinect-ul?
Ce este de fapt Kinect-ul?•   Un dispozitiv periferic care permite utilizatorului sa    controleze un calculator sau o con...
Din ce este compus
Ce contine•   Un motoras pentru miscare pe verticala( +/- 27 °)•   O camera video VGA•   Un proiector inflarosu( inflared ...
Date tehnice despre sensori•   Distanta    • Distanta optima este intre 1.2m si 3.5m    • Senzorii pot sa masoare distanta...
Cum se calculeaza distanta•   Mecanismul folosit pentru a calcula distanta se numeste:      Stereo triangulation
Cum se calculeaza distanta•   Mecanismul folosit pentru a calcula distanta se numeste:      Stereo triangulation
De ce avem nevoie ca sa programam•   Un Kinect pentru XBOX 360 + un adaptor                              sau•   Un Kinect ...
Ce putem sa facem cu SDK-ul•   Capturi video si audio•   Tracking la jucatori (maxim 7 – pentru moment)•   Distanta fiecar...
DemoLet’s see Kinect in action
Cum sa pornim Kinect-ulKinectSensor kinect = KinectSensor.KinectSensors[0];kinect.Start();kinect.SkeletonStream.Enable();k...
Cum sa ne inregistram la un streamkinect.ColorStream.Enable(ColorImageFormat.RgbResolution1280x960Fps12);kinect.ColorFrame...
Ce date primim de la Depth sensor•   primii 13 bits din fiecare pixel reprezinta distanta    obiectului fata de device in ...
Skeleton•  Pentru fiecare punct (Joint) primim pozitia acestuia in   spatiu (x,y,z)• Nu este nevoie catoate punctele sa fi...
SkeletonSkeletonFrame frame = e.OpenSkeletonFrame();Skeleton[] skeletons = new Skeleton[frame.SkeletonArrayLength];frame.C...
LicentiereKinect pentru XBOX         - se poate folosi doar pentru aplicatii non-comercialeKinect pentru PC         - se p...
Bibliografie•   http://www.microsoft.com/en-us/kinectforwindows/•   http://openkinect.org/wiki/Main_Page•   http://channel...
Questions
Multumesc                  Radu Vunvulea           vunvulear@gmail.com       vunvulearadu.blogspot.com
Upcoming SlideShare
Loading in...5
×

Kinect SDK preview

1,363

Published on

A presentation of Kinect device and SDK.
This presentation was made for Codecamp event from 18/02/2012 from Cluj-Napoca, by Radu Vunvulea.
http://codecamp.ro/
http://vunvulearadu.blogspot.com/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,363
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Kinect SDK preview"

  1. 1. Ce este de fapt Kinect-ul și cum îlputem folosi Radu Vunvulea
  2. 2. Agenda • Scurt istoric • Ce este de fapt Kinect-ul? • Din ce este compus • Ce contine • Date tehnice despre senzori • Cum se calculeaza distanta • De ce avem nevoie ca sa programam • Ce putem sa facem cu SDK-ul • Demo • SDK preview • Licentiere • Bibliografie • Intrebari
  3. 3. Scurt istoric• 24/09/2009 - apare primul anunt oficial din partea Microsoft Nume de proiect: Natal• 12/03/2010 - este lansat oficial pe piata• 11/10/2010 – apare primul API open-source scris de catre un hacker• 1/02/2011 – se lanseaza primul SDK oficial pentru PC Data Unitati vandute 15/11/2010 1.000.000 29/11/2010 2.500.000 05/01/2011 8.000.000
  4. 4. Ce este de fapt Kinect-ul?
  5. 5. Ce este de fapt Kinect-ul?• Un dispozitiv periferic care permite utilizatorului sa controleze un calculator sau o consola prin intermediul gesturilor si a vocii• Permite interactiunea cu o unitate doar prin intermediul miscarii corpului• Orice miscare a unei persoane poate fi identificata prin urmarirea unor puncte
  6. 6. Din ce este compus
  7. 7. Ce contine• Un motoras pentru miscare pe verticala( +/- 27 °)• O camera video VGA• Un proiector inflarosu( inflared laser)• Un sensor CMOS monocrom• Patru microfoane• O mufa USB type A
  8. 8. Date tehnice despre sensori• Distanta • Distanta optima este intre 1.2m si 3.5m • Senzorii pot sa masoare distanta intre 0.7m si 6m • Unghiul de vizibilitate este de 57° pe orizontala si 43° pe verticala• Video stream de 640x480px (8 bits VGA la 30Hz)• Detectarea automata a unei persoane• Tracking la un set de puncte care formeaza corpul uman• Audio stream – 16kHz• Detectarea locatiei in spatiu de unde este emis sunetul• Identificarea unei persoane pe baza vocii
  9. 9. Cum se calculeaza distanta• Mecanismul folosit pentru a calcula distanta se numeste: Stereo triangulation
  10. 10. Cum se calculeaza distanta• Mecanismul folosit pentru a calcula distanta se numeste: Stereo triangulation
  11. 11. De ce avem nevoie ca sa programam• Un Kinect pentru XBOX 360 + un adaptor sau• Un Kinect pentru PC care vine in pachet cu adaptor• Windows 7 sau Windows 8 • Visual Studio 2010• Kinect SDK - http://www.microsoft.com/en- us/kinectforwindows/• O referinta la Microsoft.Kinect• Daca vreti sa faceti aplicatii complexe trebuie sa aveti cunostinte de geometrie, trigonometrie si vectori
  12. 12. Ce putem sa facem cu SDK-ul• Capturi video si audio• Tracking la jucatori (maxim 7 – pentru moment)• Distanta fiecarui punct fata de Kinect• Identificarea sursei audio• Recunoasterea unui utilizator pe baza vocii• Coordonatele in spatiu a unor puncte pentru fiecare jucator (maxim 4 jucatori) – aceste puncte formeaza Skeleton-ul
  13. 13. DemoLet’s see Kinect in action
  14. 14. Cum sa pornim Kinect-ulKinectSensor kinect = KinectSensor.KinectSensors[0];kinect.Start();kinect.SkeletonStream.Enable();kinect.ColorStream.Enable();…• Cand nu mai avem nevoie de Kinect trebuie apelatkinect.Stop()
  15. 15. Cum sa ne inregistram la un streamkinect.ColorStream.Enable(ColorImageFormat.RgbResolution1280x960Fps12);kinect.ColorFrameReady += new EventHandler(Kinect_ColorFrameReady);…void Kinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e){ ColorImageFrame frame = e.OpenColorImageFrame();}• De fiecare data cand un nou stream este disponibil acest eveniment o sa fie aruncat
  16. 16. Ce date primim de la Depth sensor• primii 13 bits din fiecare pixel reprezinta distanta obiectului fata de device in milimetrii• folosind alti 3 bits putem sa identificam index-ul jucatoruluiDepthImageFrame frame = e.OpenDepthImageFrame();short[] pixels = new short[frame.PixelDataLength];frame.CopyPixelDataTo(pixelInfos);int distanceInMillimeters = pixels[pixelIndex] >> DepthImageFrame.PlayerIndexBitmaskWidth;int playeNumber = pixels[pixelIndex] & DepthImageFrame.PlayerIndexBitmask;
  17. 17. Skeleton• Pentru fiecare punct (Joint) primim pozitia acestuia in spatiu (x,y,z)• Nu este nevoie catoate punctele sa fieurmarite de catre Kinect• Unele puncte se potsuprapune, din aceastacauza starea unui punctpoate sa fie Inferred
  18. 18. SkeletonSkeletonFrame frame = e.OpenSkeletonFrame();Skeleton[] skeletons = new Skeleton[frame.SkeletonArrayLength];frame.CopySkeletonDataTo(skeletons);foreach (Skeleton skeleton in skeletons){ foreach (Joint joint in skeleton.Joints) { If (joint.TrackingState != JointTrackingState.Tracked) continue;Console.Write(joint.JointType);Console.Write(string.Format(“({0},{1},{2})”, joint.Position.X, joint.Position.Y, joint.Position.Z); }}
  19. 19. LicentiereKinect pentru XBOX - se poate folosi doar pentru aplicatii non-comercialeKinect pentru PC - se poate folosi atat in aplicatii non-comerciale cat si in aplicatii comerciale - pretul device-ului este cu 100$ mai mare
  20. 20. Bibliografie• http://www.microsoft.com/en-us/kinectforwindows/• http://openkinect.org/wiki/Main_Page• http://channel9.msdn.com/coding4fun/kinect/Open- source-Kinect-gesture-recognition-project-Kinect-DTW• http://en.wikipedia.org/wiki/Kinect
  21. 21. Questions
  22. 22. Multumesc Radu Vunvulea vunvulear@gmail.com vunvulearadu.blogspot.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×