Here is the new version of Skeltrack, the Free Software library for human skeleton tracking from depth buffers.
Since the last release, I have presented Skeltrack at two events and built a cool demo of what can be done with this library.
Apart from some bug fixes, this 0.1.4 version also introduces unit tests for making our development easier.
Yet, the big feature introduced in this version is the joints’ smoothing. If you have tried Skeltrack or watched the videos, you might have noticed that the skeleton is all jittery as if the joints were doing some caribbean dance. This is due to noise and other small changes in the depth buffer that happen in devices like the Kinect (and if you are wondering, it happens to the proprietary alternatives as well), so I implemented a way to smooth the joints’ jitters.
Smooth and quiet
This improvement was implemented using Holt’s Double Exponential Smoothing (which, for example, is what Microsoft’s Kinect SDK uses).
There are two properties that control this feature. The self-explanatory “enable-smoothing” property will turn the smoothing on or off and the “smoothing-factor” determines how much it should be smoothed. This value ranges from 0 to 1 and works as described in the mentioned Holt’s algorithm: values closer to 0 will give more weight to previous values of the joints as opposed to values closer to 1 that will consider the latest and current joints’ values more important. This means that values closer to 0 will offer a better smoothing but a bit of lag might be noticed so users should really choose this value themselves, as there’s no “good for all” factor. The smoothing is enabled by default with a factor of 0.5.
To show how well this might improve your Skeltrack-powered application, here is a video showing Skeltrack with the smoothing disabled and then enabled with a factor of 0.25.
(direct link to video in Vimeo)
The application shown in the video is the Kinect example we ship with Skeltrack which was also updated to allow controlling the smoothing feature.
There are still a good number of tasks to be done that will improve Skeltrack. You can contribute too by forking the project at GitHub and sending us patches or you can of course hire Igalia to boost its development and make it rock even harder.
Let me know of any applications you’re developing with Skeltrack and how we can make it better. Check out the documentation and file some bugs if you run into trouble.
I will be travelling to wonderful Berlin next Wednesday to attend LinuxTag 2012.
I really liked the event last year and got good feedback from the people that attended my OCRFeeder‘s presentation.
This year I am presenting Skeltrack, a Free Software skeleton tracking library I created in Igalia. If you haven’t heard about it, take a look at these videos to see what it is about. My presentation will be on Saturday, at 10:30, in Europa II room.
I’m looking forward to meet people in there so let’s have a beer together and talk about Free Software.
I spent the first half of this week in the beautiful city of Évora, where I was born. The occasion was the Semana da Ciência e Técnologia (Science and Technology Week) of the University of Évora to which I was invited.
I also ended up giving the organization a hand by asking Thomas Perl (the restless mind behind gPodder) and Lucas Rocha (well known GNOME developer now using his powers in Mozilla) who kindly accepted.
Having participated in the organization of events during the University, I’m always happy to see these initiatives taking place.
It was also great to spend a couple of days with the folks at my University and meet with old friends.
About the talks, Thomas gave an overview of gPodder and the infrastructure used to manage the project. Lucas gave a really nice talk about what Mozilla is, what it does and why you should care; because of it, I ended up installing Firefox Mobile nightly build for Android and it has improved a LOT.
My friend Luís Rodrigues (no blog because he’s a badass) talked about CERN, where he works. What an amazing place! He talked about how much CERN uses Python and Django to manage their data. As a Python lover, this makes me really happy.
This was also the first time I presented Skeltrack, my latest creation inside Igalia. Presenting such an algorithm is not an easy job so I took mental notes about what to improve the next time (which will be at LinuxTag) but I was happy that people made good questions about it.
I’d like to thank to the AAUE (Students Association) for the great time we all spent in there.
Presentation slides :