3. Agenda
What is Kinect v2
Specifications
New Features
Demo
Tutorial
4. Disclaimer
“This is preliminary software and/or hardware and APIs
are preliminary and subject to change.”
(Kinect for Windows v2は暫定的なものであり、ソフトウェア、ハード
ウェア、およびAPIは製品版で変更される可能性があります。)
5. Kinect for Windows v1 Sensor
MULTI-ARRAY MIC MOTORIZED TILT
3D DEPTH SENSORS
RGB CAMERA
6. Kinect for Windows v2 Sensor
MULTI-ARRAY MIC
3D DEPTH SENSOR
( IR Camera + IR Emitters )
RGB CAMERA
8. Specifications
Kinect for Windows v1 Kinect for Windows v2
Color 640×480 @ 30fps 1920×1080 @ 30fps
Depth 320×240 @ 30fps 512×424 @ 30fps
Sensor Structured Light
(PrimeSense Light Coding)
Time of Flight
(ToF)
Range 0.8~4.0 m 0.5~4.5 m
Angle of View
Horizontal / Vertical
57 / 43 degree 70 / 60 degree
Microphone Array ◯ ◯
9. Specifications
Kinect for Windows v1 Kinect for Windows v2
BodyIndex 6 people 6 people
Body 2 people 6 people
Joint 20 joint/people 25 joint/people
Hand State Open / Closed Open / Closed / Lasso
Gesture ☓ ◯
Face ◯
Speech / Beamforming ◯ ◯
10. Basic Features
Color
1920×1080@30fps / 15fps (Lighting Condition)
RGBA, YUV, BGRA, Bayer, YUY2
14. Basic Features
Body
6 people
25 joint / people (Add Tip, Thumb, Neck)
Orientation (Quaternion)
Hand Type (Right, Left),Hand State (Open, Closed, Lasso), Lean (-1.0f~1.0f)
25. Tutorial
Basic Flow of Programming (C++)
Sensor Stream Frame Data
Sensor Source Reader Frame Data
Kinect for Windows SDK v1
Kinect for Windows SDK v2
Source independent to each Data
(e.g. ColorSource, DepthSource, InfraredSource, BodyIndexSource, BodySource, …)
Doesn’t depend on each other Source
(e.g. Doesn't need to Depth Source when retrieve Body Data)
34. Tutorial
Sensor Source Reader Frame Data
for( int count = 0; count < BODY_COUNT; count++ ){
BOOLEAN bTracked = false;
hResult = pBody[count]->get_IsTracked( &bTracked );
if( SUCCEEDED( hResult ) && bTracked ){
Joint joint[JointType::JointType_Count];
hResult = pBody[count]->GetJoints( JointType::JointType_Count, joint );
if( SUCCEEDED( hResult ) ){
for( int type = 0; type < JointType::JointType_Count; type++ ){
if( joint[type].TrackingState != TrackingState::TrackingState_NotTracked ){
CameraSpacePoint cameraSpacePoint = joint[type].Position;
cameraSpacePoint.x; // x (+/- 1.0f)
cameraSpacePoint.y; // y (+/- 1.0f)
cameraSpacePoint.z; // z (500~4500[mm])
}
}
}
}
}
Data (Joint)
35. Tutorial
Coordinate System
ColorSpace (Coordinate System of the Color Image)
… Color
DepthSpace (Coordinate System of the Depth Data)
… Depth, Infrared, BodyIndex
CameraSpace (Coordinate System with the origin located the Depth Sensor)
… Body (Joint)
36. Tutorial
Coordinate Mapper
// Coordinate Mapper
ICoordinateMapper* pCoordinateMapper;
hResult = pSensor->get_CoordinateMapper( &pCoordinateMapper );
if( FAILED( hResult ) ){
std::cerr << "Error : IKinectSensor::get_CoordinateMapper()" << std::endl;
return -1;
}
ICoordinateMapper::Map○○○FrameTo△△△Space()
… Mapping Coordinate System in the Frame
ICoordinateMapper::Map○○○PointsTo△△△Space()
… Mapping Coordinate System in the Array of Points
ICoordinateMapper::Map○○○PointTo△△△Space()
… Mapping Coordinate System in the Point
37. Reference
Sample Program
Kinect2Sample | GitHub
https://github.com/UnaNancyOwen/Kinect2Sample
Article Series
Introduction to Kinect for Windows v2 | Build Insider
http://www.buildinsider.net/small/kinectv2cpp
Blog
Kinect | Summary?Blog
http://unanancyowen.com/?cat=3