I need to develop an application where a user (physiotherapist) will perform a movement in front of the Kinect, I'll write the data for the movement in the database and then the patient will try to imitate this motion. The system will calculate the similarity between the movement recorded and executed.

My first idea is to store the position of the recorded points and then compare them in the execution time to the patient's movement. I know that this approach is too simple, however, because I imagine that in people of different sizes the skeleton is recognized differently, so the comparison is not reliable.

My question is about the best way to compare a saved motion with a movement executed (on the fly).

  • \$\begingroup\$ I'm doing a really similar project to this , did you have any success with it ? \$\endgroup\$ – user27341 Mar 12 '13 at 16:12
  • \$\begingroup\$ yes @Ben, in fact some bugs needs to be solved, but my project works fine. If you need, i will help you. By now, read my questions on stack overflow stackoverflow.com/users/256925/ewerton?tab=questions \$\endgroup\$ – Ewerton Mar 12 '13 at 19:46

You can calibrate the Kinect before using it. Like letting the patient stretch his arms, stand straight, just let him do some predefined poses. From this data you can calculate his skeleton and then use relative data to compare it.

Another possible way would be to focus on angles at the joints. This may be a bit more unrelated to body size, but I don´t know if this can provide all the information you need.

| improve this answer | |
  • \$\begingroup\$ Yes, this is the two aproaches ive ended up, but um can decide how is better. Iam thinking os create a "Normalized skeleton", record the movements based on the normalized skeleton and after, compare it with the normalized skeleton. In fact this sounds a good idea, but a have no idea how to start to develop this "normalized skeleton". \$\endgroup\$ – Ewerton Oct 4 '12 at 23:06
  • \$\begingroup\$ I think the idea of angles good too, but i projected the interface to physioterapist to choose the "joints of interest". If i use the angles aproach, i will need to change it. I think the angle can be a complimentary information to joints information. \$\endgroup\$ – Ewerton Oct 4 '12 at 23:10
  • \$\begingroup\$ mybe this helps: embedded101.com/Blogs/JamesYWilson/tabid/70/entryid/167/… \$\endgroup\$ – floAr Oct 5 '12 at 22:45

I would see this answer on SO which explains both the algorithms, code, and theory for how to do this, along with an example project.

| improve this answer | |
  • \$\begingroup\$ this question was asked by me, too, and actualy this doesnt explain how to handle different skeleton sizes, or, if is better to record the joints positions or the angle between joints. \$\endgroup\$ – Ewerton Oct 8 '12 at 12:34
  • \$\begingroup\$ I think that floAr's answer explains that, and it is some pretty basic code (although a large amount of it) \$\endgroup\$ – Kinected Oct 9 '12 at 1:03
  • \$\begingroup\$ @Ewerton also the example project has the bones adjust to the current skeleton, not skewing data \$\endgroup\$ – Kinected Oct 13 '12 at 4:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.