jwaliszko
jwaliszko

Reputation: 17074

Positional tracking using kinect - how to determine head position in closed 3d space

I suppose kinect standard way of usage is to put this device in some fixed position and let it do its calculation e.g. head tracking of someone which moves in front it.

But my use case is different. What I need to do is change the frame of reference - attach kinect to the head and start moving with it around the room. Then I need to calculate its position within the room (I have the room already mapped into memory).

So tracking should be now based on current device position itself and its relation with the room walls, floor and ceiling. As I understand kinect should be able to reflect light from the walls and give the deph - of what is my current distance from the wall etc. I need to get some information if this is even possible to achieve.

Can you provide me some constructive references, where I could go much deeper into the topic, for being able to start the implementation of desired behaviour then ?

Upvotes: 1

Views: 1202

Answers (1)

Sahand Seifi
Sahand Seifi

Reputation: 225

I suggest you look into research articles about image based indoor localization to learn more about this. The basics are: you have a set of training data (3D model of your room) and you want to see in which scenario (= in which physical location), the input data conforms better to your model.

There are two important things to consider in this case:

  1. Considering you already know the location of the user in the previous frame, what are the possible new locations of the user in the new frame? This is important because you don't want to test EVERY possible scenario like a brute force (imagine how many x, y, z and head angles the computer has to generate). For example you can only consider a radius of 10cm and a rotation of 10 degrees based on the previous known location of the user as all the possible new locations. You can probably think of much smarter solutions (e.g. based on user speed and movement direction).

  2. Test the conformity of these different possible scenarios with your 3D model. This requires a function that gets the 3D model of the real world from the point of view of a possible solution, and the input of the camera and then tells you the difference of these two as a number (or set of numbers). So if you can run this function for every possible location against the camera input, the location with minimum result (minimum difference) is the most probable location of the user. Now, there are many of these functions out there. I would recommend SAD (sum of absolute differences) as I've seen it being used in similar projects and it's pretty simple. For more sophistication, look into feature based image comparison.

Upvotes: 1

Related Questions