4

I would like to be able to keep track of people that enter and exit a premises. Basically when the user approaches the Kinect, it will store his/her facial and skeletal data. Then upon leaving, that data will be removed. For now I am only wondering if this is possible or not with the Microsoft SDK. I have seen videos/demos of the Kinect being able to track people but my goal is to identify them uniquely. Any information will be greatly appreciated.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Ray
  • 325
  • 4
  • 15

2 Answers2

1

You may well be able to store skeletal data, but as far as I'm aware the Kinect doesn't have the resolution required for facial recognition (especially if you're going to have it sat in the corner of the room).

There are commercial solutions for 3D face recognition - Cybula, however these solutions typically cost thousands.

I wouldn't know how accurate skeletal data would be - if all your users are the same hight then you might have a few issues. You'd have to work out the tolerance of measurement, and make sure none of your users are within this (which if this is for the general public, might be an issue).

stormCloud
  • 983
  • 1
  • 9
  • 24
  • Yeah, only skeletal data might be inaccurate since a few of my users are probably very close in height. But check this out http://msdn.microsoft.com/en-us/library/jj130970.aspx Im checking out the section "Face Tracking Outputs". There are points across the nose, eyes, etc. Think I would be able to calculate the distance across a few points to implement the recognition? Just a thought... – Ray Jun 26 '12 at 16:18
1

Yes you can save skeleton and face data.... but for what you are doing, it sounds like you only want to save that for the session. Since as soon as they leave, the data will be removed, you can use a Skeleton Tracking ID... or a Indexes

SkeletonFrame sf = e.SkeletonFrame;
//check which skeletons in array are active and
// use that array indexes for player index
SkeletonData player1 = sf.Skeletons[playerIndex1];
SkeletonData player2 = sf.Skeletons[playerIndex2];

You can look to my answer on Kinect user Detection for more information.

Community
  • 1
  • 1
Liam McInroy
  • 4,339
  • 5
  • 32
  • 53
  • Thanks a lot! I followed your link and that was very helpful. Okay so now I have all I need to save skeletal data... But what about facial? Currently I am looking at the sample "FaceTrackingBasics" provided in the SDK, but I'm not sure if I can use this to do any recognition. Basically I would need to obtain some sort of "facial signature" that ID's a user with his/her skeletal data... To put simply, would this even be possible? Because storing skeletal data is great but there would be a lot of room for error. – Ray Jun 27 '12 at 13:22
  • @Ray Are you interested in skeleton data, or face? Also I will create a chatroom for us.. It is called the Kinect Room – Liam McInroy Jun 27 '12 at 13:24