The Kinect body tracking pipeline Oliver Williams, Mihai Budiu Microsoft Research, Silicon Valley With slides contributed by Johnny Lee, Jamie Shotton.

Slides:



Advertisements
Similar presentations
Cluster Computing with Dryad Mihai Budiu, MSR-SVC LiveLabs, March 2008.
Advertisements

For Internal Use Only. © CT T IN EM. All rights reserved. 3D Reconstruction Using Aerial Images A Dense Structure from Motion pipeline Ramakrishna Vedantam.
Joshua Fabian Tyler Young James C. Peyton Jones Garrett M. Clayton Integrating the Microsoft Kinect With Simulink: Real-Time Object Tracking Example (
KINECT REHABILITATION
INTERACTING WITH SIMULATION ENVIRONMENTS THROUGH THE KINECT Fayez Alazmi Supervisor: Dr. Brett Wilkinson Flinders University Image 1Image 2Image 3 Source.
By : Adham Suwan Mohammed Zaza Ahmed Mafarjeh. Achieving Security through Kinect using Skeleton Analysis (ASKSA)
Big Data Platforms Mihai Budiu, Oct My work Ph.D. from Carnegie Mellon, 2003 Hardware synthesis Reconfigurable hardware Compilers and computer.
1.Introduction 2.Article [1] Real Time Motion Capture Using a Single TOF Camera (2010) 3.Article [2] Real Time Human Pose Recognition In Parts Using a.
Real-Time Human Pose Recognition in Parts from Single Depth Images Presented by: Mohammad A. Gowayyed.
DryadLINQ A System for General-Purpose Distributed Data-Parallel Computing Yuan Yu, Michael Isard, Dennis Fetterly, Mihai Budiu, Úlfar Erlingsson, Pradeep.
PARALLELIZING LARGE-SCALE DATA- PROCESSING APPLICATIONS WITH DATA SKEW: A CASE STUDY IN PRODUCT-OFFER MATCHING Ekaterina Gonina UC Berkeley Anitha Kannan,
Optimus: A Dynamic Rewriting Framework for Data-Parallel Execution Plans Qifa Ke, Michael Isard, Yuan Yu Microsoft Research Silicon Valley EuroSys 2013.
Department of Electrical and Computer Engineering He Zhou Hui Zheng William Mai Xiang Guo Advisor: Professor Patrick Kelly ASLLENGE.
Kinect Case Study CSE P 576 Larry Zitnick
Monitoring and Debugging Dryad(LINQ) Applications with Daphne Vilas Jagannath, Zuoning Yin, Mihai Budiu University of Illinois, Microsoft Research SVC.
Game Development with Kinect
Real-Time Face Detection and Tracking Using Multiple Cameras RIT Computer Engineering Senior Design Project John RuppertJustin HnatowJared Holsopple This.
1 References: 1. J.M. Hart, Windows System Programming, 4th Ed., Addison-Wesley, 2010, Ch.12 2.Microsoft Kinect SDK for Developers,
(CONTROLLER-FREE GAMING
U.S. Department of the Interior U.S. Geological Survey David V. Hill, Information Dynamics, Contractor to USGS/EROS 12/08/2011 Satellite Image Processing.
A Brief Overview of Computer Vision Jinxiang Chai.
Professor : Yih-Ran Sheu Student’s name : Nguyen Van Binh Student ID: MA02B203 Kinect camera 1 Southern Taiwan University Department of Electrical Engineering.
Interpreting the data: Parallel analysis with Sawzall LIN Wenbin 25 Mar 2014.
Introduction Kinect for Xbox 360, referred to as Kinect, is developed by Microsoft, used in Xbox 360 video game console and Windows PCs peripheral equipment.
GAMING CONSOLES … “Evolution to the next level” Presented by:- Manindar Singh Ratan Regd.No.: Branch:- IT, Group:- ‘B’ Sem:- 7 th,CVRCE Game.
Zhengyou Zhang Microsoft Research Digital Object Identifier: /MMUL Publication Year: 2012, Page(s): Professor: Yih-Ran Sheu Student.
KinectFusion : Real-Time Dense Surface Mapping and Tracking IEEE International Symposium on Mixed and Augmented Reality 2011 Science and Technology Proceedings.
Programming clusters with DryadLINQ Mihai Budiu Microsoft Research, Silicon Valley Association of C and C++ Users (ACCU) Mountain View, CA, April 13, 2011.
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
A General Framework for Tracking Multiple People from a Moving Camera
Page 1 | Microsoft Work With Color Data Kinect for Windows Video Courses Jan 2013.
A Method for Hand Gesture Recognition Jaya Shukla Department of Computer Science Shiv Nadar University Gautam Budh Nagar, India Ashutosh Dwivedi.
International Conference on Computer Vision and Graphics, ICCVG ‘2002 Algorithm for Fusion of 3D Scene by Subgraph Isomorphism with Procrustes Analysis.
Training Kinect Mihai Budiu Microsoft Research, Silicon Valley UCSD CNS 2012 RESEARCH REVIEW February 8, 2012.
1 Dryad Distributed Data-Parallel Programs from Sequential Building Blocks Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, Dennis Fetterly of Microsoft.
S ENSORS U SED I N G AMES By Wusqa Waqar. What are sensors and how are they used in games? A sensor is a converter that measures a physical quantity and.
MATRIX MULTIPLY WITH DRYAD B649 Course Project Introduction.
DIEGO AGUIRRE COMPUTER VISION INTRODUCTION 1. QUESTION What is Computer Vision? 2.
Artemis Logs Database View Data Collectio n GUI Dryad Overview Data collection Distributed system Plug-ins GUI Plug-ins Hunting for Bugs with Artemis System.
ECE 8443 – Pattern Recognition EE 3512 – Signals: Continuous and Discrete Objectives: Spectrograms Revisited Feature Extraction Filter Bank Analysis EEG.
Human pose recognition from depth image MS Research Cambridge.
Hung-chih Yang 1, Ali Dasdan 1 Ruey-Lung Hsiao 2, D. Stott Parker 2
Dryad and DryaLINQ. Dryad and DryadLINQ Dryad provides automatic distributed execution DryadLINQ provides automatic query plan generation Dryad provides.
CONTENT 1. Introduction to Kinect 2. Some Libraries for Kinect 3. Implement 4. Conclusion & Future works 1.
By Naveen kumar Badam. Contents INTRODUCTION ARCHITECTURE OF THE PROPOSED MODEL MODULES INVOLVED IN THE MODEL FUTURE WORKS CONCLUSION.
MATRIX MULTIPLY WITH DRYAD B649 Course Project Introduction.
KINECT FOR WINDOWS Ken Casada Developer Evangelist, Microsoft Switzerland | blogblog.
COMP24111: Machine Learning Ensemble Models Gavin Brown
1 End-to-End Learning for Automatic Cell Phenotyping Paolo Emilio Barbano, Koray Kavukcuoglu, Marco Scoffier, Yann LeCun April 26, 2006.
RGB-D Images and Applications
EEC-693/793 Applied Computer Vision with Depth Cameras Lecture 8 Wenbing Zhao
Large-scale Machine Learning using DryadLINQ Mihai Budiu Microsoft Research, Silicon Valley Ambient Intelligence: From Sensor Networks to Smart Environments.
Product: Microsoft Kinect Team I Alex Styborski Brandon Sayre Brandon Rouhier Section 2B.
Presenter: Jae Sung Park
COMP413: Computer Graphics Overview of Graphics Systems Chapter 1.
Microsoft Kinect How does a machine infer body position?
Creative Coding & the New Kinect
Southern Taiwan University Department of Electrical Engineering
GPU Architecture and Its Application
Computer Graphics: An Introduction
Recognition of biological cells – development
Chapter 10 Computer Graphics
Real-Time Human Pose Recognition in Parts from Single Depth Image
EEC-693/793 Applied Computer Vision with Depth Cameras
EEC-693/793 Applied Computer Vision with Depth Cameras
Rob Fergus Computer Vision
Kinect for Creative Development with open source frameworks
EEC-693/793 Applied Computer Vision with Depth Cameras
EEC-693/793 Applied Computer Vision with Depth Cameras
Analysis of Structured or Semi-structured Data on a Hadoop Cluster
Presentation transcript:

The Kinect body tracking pipeline Oliver Williams, Mihai Budiu Microsoft Research, Silicon Valley With slides contributed by Johnny Lee, Jamie Shotton NASA Ames, February 14, 2011

Outline Hardware overview The body tracking pipeline Learning a classifier from large data Conclusions 2

What is Kinect? 3

~2000 people 4 Caveat: we only have knowledge about a small part of this process.

Input device 5

The Innards Source: iFixit 6

The vision system Source: iFixit 7 IR laser projector IR camera RGB camera

RGB Camera Used for face recognition Face recognition requires training Needs good illumination 8

The audio sensors 9 4 channel multi-array microphone Time-locked with console to remove game audio

Prime Sense Chip 10 Xbox Hardware Engineering dramatically improved upon Prime Sense reference design performance Micron scale tolerances on large components Manufacturing process to yield ~1 device / 1.5 seconds

Projected IR pattern Source: 11

Depth computation Source: 12

Depth map Source: 13

Kinect video output 30 HZ frame rate 57deg field-of-view 8-bit VGA RGB 640 x bit monochrome 320 x

XBox 360 Hardware Source: 15 Triple Core PowerPC 970, 3.2GHz Hyperthreaded, 2 threads/core 500 MHz ATI graphics card DirectX MB RAM 2005 performance envelope Must handle  real-time vision AND  a modern game

THE BODY TRACKING PIPELINE 16

Generic Extensible Architecture 17 Expert 1 Expert 2 Expert 3 Arbiter Stateless Raw data Sensor Skeleton estimates Final estimate probabilistic fuses the hypotheses Statefull

Background segmentation Player separation Body Part Classifier One Expert: Pipeline Stages 18 Depth mapSensor Body Part Identification Skeleton

Sample test frames 19

Constraints No calibration -no start/recovery pose -no background calibration -no body calibration Minimal CPU usage Illumination-independent 20

body size hair body type clothes furniture pets FOV angle The test matrix 21

Preprocessing 22 Identify ground plane Separate background (couch) Identify players via clustering

Two trackers Hands + head trackingBody tracking 23 not exposed through SDK

The body tracking problem 24 Input Depth map Output Body parts Classifier Runs on 320x240

Training the classifier 25 Start from ground-truth data – depth paired with body parts Train classifier to work across – pose – scene position – Height, body shape

Getting the Ground Truth (1) 26 Use synthetic data (3D avatar model) Inject noise

Motion Capture: -Unrealistic environments -Unrealistic clothing -Low throughput Getting the Ground Truth (2) 27

Getting the Ground Truth (3) 28 Manual Tagging: -Requires training many people -Potentially expensive -Tagging tool influences biases in data. -Quality control is an issue contractors ~= 20 years

Getting the Ground Truth (4) 29 Amazon Mechanical Turk: -Build web based tool -Tagging tool is 2D only -Quality control can be done with redundant HITS $0.04/HIT -> 6 $80/hr

Classifying pixels Compute P(c i |w i ) – pixels i = (x, y) – body part c i – image window w i Learn classifier P(c i |w i ) from training data – randomized decision forests example image windows window moves with classifier 30

Features depth of pixel x in image I -- parameter describing offets u and v

From body parts to joint positions Compute 3D centroids for all parts Generates (position, confidence)/part Multiple proposals for each body part Done on GPU 32

From joints positions to skeleton Tree model of skeleton topology Has cost terms for: – Distances between connected parts (relative to “body size”) – Bone proximity to body parts – Motion terms for smoothness 33

Where is the skeleton? 34

LEARNING THE BODY PARTS CLASSIFIER FROM A MOUNTAIN OF DATA 35

Learn from Data 36 Classifier Training examples Machine learning

Cluster-based training 37 Classifier Training examples Dryad DryadLINQ Machine learning > Millions of input frames > objects manipulated Sparse, multi-dimensional data Complex datatypes (images, video, matrices, etc.)

Execution Application Data-Parallel Computation 38 Storage Language Parallel Databases Map- Reduce GFS BigTable Cosmos Azure SQL Server Dryad DryadLINQ Scope Sawzall,FlumeJava Hadoop HDFS S3 Pig, Hive SQL≈SQLLINQ, SQLSawzall, Java

Dryad = 2-D Piping Unix Pipes: 1-D grep | sed | sort | awk | perl Dryad: 2-D grep 1000 | sed 500 | sort 1000 | awk 500 | perl 50 39

Virtualized 2-D Pipelines 40

Virtualized 2-D Pipelines 41

Virtualized 2-D Pipelines 42

Virtualized 2-D Pipelines 43

Virtualized 2-D Pipelines 44 2D DAG multi-machine virtualized

Fault Tolerance

LINQ 46 Dryad => DryadLINQ

47 LINQ =.Net+ Queries Collection collection; bool IsLegal(Key); string Hash(Key); var results = from c in collection where IsLegal(c.key) select new { Hash(c.key), c.value};

DryadLINQ Data Model 48 Partition Collection.Net objects

Collection collection; bool IsLegal(Key k); string Hash(Key); var results = from c in collection where IsLegal(c.key) select new { Hash(c.key), c.value}; 49 DryadLINQ = LINQ + Dryad C# collection results C# Vertex code Query plan (Dryad job) Data

Language Summary 50 Where Select GroupBy OrderBy Aggregate Join

Highly efficient parallellization 51 time machine

CONCLUSIONS 52

Huge Commercial Success 53

Tremendous Interest from Developers 54

Consumer Technologies Push The Envelope 55 Price: 6000$ Price: 150$

Unique Opportunity for Technology Transfer 56

I can finally explain to my son what I do for a living… 57