Skeleton tracking in crowds - Kinect v2 RRS feed

  • General discussion

  • I am working on an installation that uses skeleton tracking and there will be times where more than 6 people will be in the field of view of the camera. I need to lock onto a single user standing 6 feet from the sensor in the center of the frame. I am doing this by checking the position of skeletons remembering the Body.TrackingId. Once 'locked' in, I ignore all other skeletons. I'm trying to figure out what happens in crowds. What if 6 skeletons are recognized and a 7th user walks into the field of view and stands on the hot-spot.

    Is there a safe way to pause or close the sensor to clear all skeletons? 

    I'm going on the assumption that the kinect will detect the closest, centered users first. Is this correct?



    Saturday, May 16, 2015 2:48 AM

All replies

  • Kinect body tracking is always scanning and finding candidate bodies to track. The body tracking only locks on when it detects head and shoulders of the person facing the camera. You could do something like look for stable blob points in the target area and if there isn't a tracked body, reset the Kinect Monitor service.

    The SDK is resilient to this type of failure of the runtime, but it is a hard approach. Additionally, you could employ a way to cover the depth camera (your hand) to reset the tracking since this will make all depth/ir invalid and will need to rebuild.

    Carmine Sirignano - MSFT

    Monday, May 18, 2015 11:44 PM
  • Thanks for the suggestions Carmine.

    I've been using the by-hand method successfully for a while and that definitely works - when I'm in the crowd :)

    I have started calling KinectSensor.Close() and KinectSensor.Open() when there are >6 skeletons if none are in the target area. That seems to be working well too. Now I just need a crowd to test with.

    I'll share results. Thanks again.


    Tuesday, May 19, 2015 12:16 AM
  • I recommend you use Kinect Studio :) it is a great way to replay the scenario when you happen to get enough people to do the tests. Keep in mind to make sure you record depth and ir color feeds and if you need color, be sure you have enough disk space. When recording, start with the sensor covered to ensure you are capturing all the data with a consistent data feed of "no data" to start. This help because you are replaying the data with the same from the start and not some "unknown" point

    Carmine Sirignano - MSFT

    Wednesday, May 20, 2015 8:14 PM