Bruno CapuanoMVP – Visual Studio ALMb.capuano@avanade.comAvanadewww.elbruno.comKinectfor Windows SDKPrimavera 2011Todavía no:(
XBOX llama a MSR: Septiembre 2008Necesitamos un body tracker conAll body motions…Allagilities…10x Real-time…Formultipleplayers…… and it has to be 3D 
Carta a los reyes magosSin calibraciónSin pose para inicio/pausa
Sin calibración para el fondo
Sin calibración para el cuerpoUso mínimo de la CPUIndependiente de la iluminación3
body sizehairFOVbody typeclothesanglepetsfurniturePruebas: The test matrix4
MSR & xBox: Machine LearningPaso 1: Recolección de informaciónEl equipo visita diferentes ubicaciones y se dedica a filmar usuarios reales de XboxHollywood motion capture studiogeneratesbillions of CG images
J. Shotton, J. Winn, C. Rother, A. Criminisi, TextonBoost: Joint Appearance, Shape and Context Modeling for Multi-Class Object Recognition and Segmentation.  European Conference on Computer Vision, 2006MSResearch: Reconocimiento de Objetos
TrainingMillones de imágenescomoreferncias-> millones de parámetros de clasificaciónVery far from “embarrassingly parallel”Nuevo algoritomopara resolver árboles de decisióndistribuidosUtilizaciónmasiva de DryadLINQDisponibleparadescargarDistributed Data-Parallel Computing Using a High-Level Programming LanguageM Isard, Y YuInternational Conference on Management of Data (SIGMOD), July 2009
Programmers View
¿Qué es Kinect?
¿QuéesKinect?Voice RecognitionUna nueva forma de jugar, donde TU eres el mandoGesture RecognitionFace RecognitionYouRecognition
Opción A:¿Porqué Kinect?
¿Porqué Kinect?Opción TU:
¿Qué es Kinect?Dispositivo que combina una cámara RGB, un sensor de profundidad y un array de micrófonosCámara RBG para el reconocimiento de los tres colores básicosSensor de Profundidad que permite “ver una habitación en 3D”El array de micrófonos detecta las voces y las aisla del ruido ambientalCaja negra de software que une todo y hace toda la magia
¿Qué es Kinect?①③②
Source: iFixit15¿Qué es Kinect?
¿Qué es Kinect?3D Depth Sensors①③
Invisible Infrared (IR) Dots 320x240
¿Qué es Kinect?RGB Camera②
19¿Qué es Kinect?IR laser projectorIR cameraRGB cameraSource: iFixit
RGB CameraSe utiliza para el reconocimiento facialEl reconocimiento facial requiere una fase de “training” Necesita una buena iluminación20
¿Qué es Kinect?Multi-array Microphone
Sensores de sonido224 channel multi-array microphone
Sincronizado con la consola para eliminar el sonido de los juegos¿Qué es Kinect?Motorized Tilt
Y la “cajanegra”SoftwareResearchTestingData collection
Prime Sense ChipXbox Hardware Engineering mejorónotablemente la calidad y velocidadbasado en los diseños de Prime Sense
Projected IR patternSource: www.ros.org26
Depth computationSource: http://j.mp/eXsCiE27
Depth mapSource: www.insidekinect.com28
Salida de video en Kinect30 HZ frame rate57deg field-of-view8-bit VGA RGB640 x 48011-bit monochrome320 x 24029
XBox 360 HardwareTriple Core PowerPC 970, 3.2GHz
Hyperthreaded, 2 threads/core
500 MHz ATI graphics card
DirectX 9.5
512 MB RAM
2005 performance envelope
Must handle
real-time vision AND
a modern gameSource: http://www.pcper.com/article.php?aid=940&type=expert30
¿Cómo funciona Kinect? (I)
1- ¿Cómo sabe Kinectlo que hago?“Xbox?!”“Let’s Play!”
Architectura extensible33Expert 1fuses the hypothesesArbiterExpert 2Expert 3probabilisticFinalestimateRawdataSkeletonestimatesSensorStatelessStatefull
Mapa de profundidadSensorSeparación por jugadorbasado en el fondoPaso a paso para el reconocimiento34Clasificación de partes del cuerpoIdentificación de “joints”Creación de“Skeleton”
Analizalasposiciones 3D del todaslaspartesidentificadas del cuerpoGenera unacolección (posicion, confidence)/parteGenera múltiplesopcionesparacada parte del cuerpoEl trabajo lo realiza la GPU35Paso 1: «Body» a «Joint Positions»
Basado en 3 modelos de “Skeleton“ El proceso se realiza en:Cálculo de distancia entre puntos conectados(relativos al «tamaño del cuerpo»)Cercanía de los huesos con las partes del cuerpoAplica además patrones para el «smoothness»36Paso 2: «Joint Positions» a «Skeleton»
Como definir el “skeleton”?37
Ejemplos38
KINECT FOR WINDOWS SDK
KINECT FOR WINDOWS SDKPresentado en el MIX11Permitirá desarrollos sobre .Net Framework en C#, Visual Basic.Net y C++Fecha prevista de lanzamiento «primavera 2011»

2011 05 23 Kinect for Windows SDK

Notas del editor

  • #7 http://research.microsoft.com/apps/video/default.aspx?id=139295
  • #8 http://research.microsoft.com/en-us/projects/DryadLINQ/DryadLINQ is a simple, powerful, and elegant programming environment for writing large-scale data parallel applications running on large PC clusters.
  • #9 kinetic," which means to be in motion, and "connect," which means it "connects you to the friends and entertainment you loveNatural User InterfaceMaking Beginners Feel Like Experts
  • #10 Color VGA video camera - This video camera aids in facial recognition and other detection features by detecting three color components: red, green and blue. Microsoft calls this an "RGB camera" referring to the color components it detects.Depth sensor - An infrared projector and a monochrome CMOS (complimentary metal-oxide semiconductor) sensor work together to "see" the room in 3-D regardless of the lighting conditions. Complementary metal–oxide–semiconductor (CMOS) (pronounced /ˈsiːmɒs/) is a technology for constructing integrated circuits. CMOS technology is used in microprocessors, microcontrollers, static RAM, and other digital logic circuits. CMOS technology is also used for several analog circuits such as image sensors, data converters, and highly integrated transceivers for many types of communicationMulti-array microphone - This is an array of four microphones that can isolate the voices of the players from the noise in the room. This allows the player to be a few feet away from the microphone and still use voice controls.What comes in the boxKinect sensor for Xbox 360Power supply cableUser's manualWi-Fi extension cableKinect Adventures gameColor VGA Motion Camera 640 x 480 pixel resolution at 30FPSDepth Camera 640 x 480 pixel resolution at 30FPSArray of 4 microphones supporting single speaker voice recognitionKinect's software layer is the essential component to add meaning to what the hardware detects. When you first start up Kinect, it reads the layout of your room and configures the play space you'll be moving in. Then, Kinect detects and tracks 32 points on each player's body, mapping them to a digital reproduction of that player's body shape and skeletal structure, including facial details.http://electronics.howstuffworks.com/microsoft-kinect3.htmhttp://www.popsci.com/gadgets/article/2010-01/exclusive-inside-microsofts-project-natalKinect Software Learns from "Experience"Kinect's software layer is the essential component to add meaning to what the hardware detects. When you first start up Kinect, it reads the layout of your room and configures the play space you'll be moving in. Then, Kinect detects and tracks 48 points on each player's body, mapping them to a digital reproduction of that player's body shape and skeletal structure, including facial details [source: Rule].In an interview with Scientific American, Alex Kipman, Microsoft's Director of Incubation for Xbox 360, explains Project Natal's approach to developing the Kinect software. Kipman explains, "Every single motion of the body is an input," which creates seemingly endless combinations of actions [source: Kuchinskas]. Knowing this, developers decided not to program that seemingly endless combination into pre-established actions and reactions in the software. Instead, it would "teach" the system how to react based on how humans learn: by classifying the gestures of people in the real world.To start the teaching process, Kinect developers gathered massive amounts of data from motion-capture in real-life scenarios. Then, they processed that data using a machine-learning algorithm by Jamie Shotton, a researcher at Microsoft Research Cambridge in England. Ultimately, the developers were able to map the data to models representing people of different ages, body types, genders and clothing. With select data, developers were able to teach the system to classify the skeletal movements of each model, emphasizing the joints and distances between those joints. An article in Popular Science describes the four steps Kinect's "brain" goes through 30 times per second to read and respond to your movements [source: Duffy].The Kinect software goes a step further than just detecting and reacting to what it can "see." Kinect can also distinguish players and their movements even if they're partially hidden. Kinect extrapolates what the rest of your body is doing as long as it can detect some parts of it. This allows players to jump in front of each other during a game or to stand behind pieces of furniture in the room.
  • #12 Depth sensor. An infrared projector combined with a monochrome CMOS sensor allows Kinect to see the room in 3-D (as opposed to inferring the room from a 2-D image) under any lighting conditions.
  • #13 a 320×240 depth stream. Depth is recovered by projecting invisible infrared (IR) dots into a room. The way the optical system works, on a hardware level, is fairly basic. A class 1 laser is projected into the room. The sensor is able to detect what's going on based on what's reflected back at it. Together, the projector and sensor create a depth map. The regular old video camera is held at a specific distance away from the 3D part of the optical system in a precise alignment, so that Kinect can blend together the depth map and RGB picture for dynamic, on-the-fly green screening.
  • #14 RGB camera. Kinect has a video camera that delivers the three basic color components. As part of the Kinect sensor, the RGB camera helps enable facial recognition and more.
  • #15 Four different microphones allow Kinect to figure out where the sound is coming from
  • #16 Multiarray microphone. Kinect has a microphone that is able to locate voices by sound and extract ambient noise. The multiarray microphone enables headset-free Xbox LIVE party chat and more.
  • #17 Microsoft software. A proprietary software layer makes the magic of Kinect possible. This layer differentiates Kinect from any other technology on the market through its ability to enable human body recognition and extract other visual noise.
  • #18 Micron scale tolerances on large componentsManufacturing process to yield ~1 device / 1.5 seconds