Kinect Experiments
overview of available kinect libraries and drivers
2011
We’ve been following the development of Kinect hacking from the beginning, and in particular the different implementations of Open Kinect / Libfreenect / OpenNI libraries that allow you to access the Kinect in different ways. We can see it’s use in a variety of situations, from interactive installations to virtual user interfaces.So, we compared a few different processing libraries – Daniel Shiffman’s OpenKinect (based on libfreenect, OSX only), SenseBloom OSCeleton (based on OpenNI skeleton tracking, cross platform), and SimpleOpenNI (a full OpenNI wrapper, cross platform).
libraries for kinect
Libfreenect – based on libfreenect, OSX only
Daniel Shiffman’s library which was one of the first ones that appeared to make use of the kinect with processing, allows us to access both the depth image and the rgb image of the Kinect camera. The depth image is useful for quickly checking the depth at a certain position as it returns a Z-depth for every pixel. While only working on OSX, it is the easiest and quickest to install and get running. It only provides basic functionality, but no skeleton tracking or proper hand recognition. If it is used to draw point clouds based upon the depth information, it can slow down dramatically.
http://www.shiffman.net/p5/kinect/ OSCeleton – based on OpenNI skeleton tracking, cross platform
OSCeleton is essentially a C program without a GUI, that tracks your skeleton via the Kinect, then sends the XYZ coordinates of each joint via OSC. You are able to receive this information in many applications/programming languages.
It is fast and accurate, but really only does one thing – skeletal tracking, which could work well for game design, but is inappropriate for any type of interface design. It also has the disadvantage of requiring a separate application to run – and one which requires constant (re-)calibration, and isn’t entirely stable.
http://tohmjudson.com
SimpleOpenNI – full OpenNI wrapper, cross platform
This is a wrapper for the OpenNI code, which has built in tracking and gestural recognition, making it fairly stable.
SimpleOpenNI seems – it is a rather new library – to offer the best all around functionality, with depth information, skeleton, and hand tracking, alongside gesture recognition. While it is not particularly slow, the development of the library can be expected to give a significant performance increase in the coming months. It does require a series of separate installations which aren’t foolproof, but as it is also cross-platform, our conclusion is that this is best all-around library to make use of at the moment. We could not withstand and played around with it a little and made the following video out of some of the material we captured.
SimpleOpenNI on forum.processing.org dLibs_freenect – based on libfreenect, windows only
We only had a very brief look at this library, it provides depth image and rgb image access, and access to the Kinect motor and LED, but does not bring any built in gestural or skeletal recognition. As we had some serious speed problems with this, it fully used our CPU, and did not seem to provide anything, that is worth spending time in searching where the problem is, we decided to keep on working with Simple OpenNI.
Nevertheless, if you’re on a windows machine and have some attractive ideas to make some Kinect tilting and LED blinking performances, you could give it a try.
https://github.com/diwi/dLibs Video
As we noticed there are some quite good installation tutorials for Kinect libraries out there, but even they leave some questions unanswered. So we decided, to write this tutorial, trying to help you further and telling you where to find the installation guides, we thought of being useful.
Component Requirements Overview
Libfreenect
- Libfreenect P5 library
OSCeleton
- OSCeleton
- OpenNi
- Nite
- Avin2 Kinect Drivers
- OSCP5 P5 library
simpleOpenNI
- SimpleOpenNI P5 library
- OpenNi
- Nite
- Avin2 Kinect Drivers
dlibs_freenect
- Kinect_driver_windows
- dlibs_freenect P5 library
Installation Help
Installing OpenNI Windows: To install OpenNI, Nite and the Kinect drivers follow
Vangos Pterneas tutorial. If you only want to use the Kinect with processing step 1-5 should be enough.
Mac: Follow
Tohm Judson’s tutorial for installing OpenNI and PrimeSense on OS X.
General notes:When searching for the software-downloads on the OpenNI website, always scroll down the download page and don’t use the github links.
The links to the OpenNI website sometimes only forward you to their landing page, but you can find the latest stable and unstable versions of the software you need in the download section yourself very easily.
Sometimes things don’t work, even if you did everything correctly. If you come to that point, try uninstalling the components, afterwards reinstall them. In our case this did the job, when we were already close to giving up.
Installing dlibs_freenectSimply download the package and follow the instructions of the readme, which is done very nicely.
https://github.com/diwi/dLibs