at EXECOM
@gdjonovic
goran.djonovic@studentpartner.com
gdjonovic@execom.eu
but what's in it?
how does it work?
Depth data
but which one?
KINECT SKDs:
... and some/many other hacks
Kinect for xBox 360 SDKs (before 1.5) was
... and it was fun
Kinect for xBox 360 SDKs (before 1.5)
... and it was fun
Kinect SDK 1.5 (Kinect for Windows, February 21)
Kinect SDK 1.5 (Kinect for Windows)
Plato: An archetype of which a corresponding being in phenomenal reality is an imperfect replica.
Kant: A concept of reason that is transcendent but nonempirical.
Hegel: Absolute truth; the complete and ultimate product of reason.
Be aware of technical abilities and limitations
Be aware of technical abilities and limitations
Match your user/client needs and mindset.
...other
Guidelines
while(true){
}
in Budapest
30 highly motivated students from 13 different countries
8 days
7 teams
7 great ideas and countless more
First there were hits/clicks, then we got likes, but now we can have true emotions.
and analyzing
You will get
C++ application can directly use the face tracking libraries
In the other case, you should use a wrapper
Use:
kinectSensor.ColorStream.Enable();
kinectSensor.DepthStream.Range = DepthRange.Near;
kinectSensor.DepthStream.Enable(rez80X60);
kinectSensor.SkeletonStream.EnableTrackingInNearRange = true;
kinectSensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
skeletonData = new Skeleton[6];
kinectSensor.Start();
faceTracker = new FaceTracker(kinectSensor);
void kinectSensor_AllFramesReady(object sender, AllFramesReadyEventArgs e)
{
//you must track face on every frame
}
using (ColorImageFrame colorImageFrame = e.OpenColorImageFrame()) { if (colorImageFrame == null) return; colorImageFrame.CopyPixelDataTo(colorPixelData); } using (DepthImageFrame depthImageFrame = e.OpenDepthImageFrame()) { if (depthImageFrame == null) return; depthImageFrame.CopyPixelDataTo(depthPixelData); } using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame == null) return; skeletonFrame.CopySkeletonDataTo(skeletonData); }
var skeleton = skeletonData.FirstOrDefault(
s => s.TrackingState == SkeletonTrackingState.Tracked);
if (skeleton == null)
return;
// only track face if all data are there
FaceTrackFrame faceFrame = faceTracker.Track(
kinectSensor.ColorStream.Format, colorPixelData,
kinectSensor.DepthStream.Format, depthPixelData,
skeleton);
This method will return 87 face points in 3D
returns the same collection but in a 2D referential corresponding to a 640×480 pixels image.
is a method that you can use in association with the Get3DShape method. It will return you a collection of triangles.