OpenNI 2.0 - Another Way To Use Kinect
Written by Harry Fairhead   
Saturday, 22 December 2012

PrimeSense, the company who invented the Kinect hardware, has just released Version 2 of its OpenNI SDK and it's a major revision. What does it have to offer the Kinect or depth camera programmer?

OpenNI  is a framework for 3D Natural Interaction sensors including PrimeSense's own reference device and the Asus Xtion sensor. It also supports Microsoft's Kinect but in this case you also have to install the Microsoft SDK to provide the special drivers that are needed.


The new version is available for Windows 32 and 64 bit and Linux an OSX version is in the pipeline. Once installed you can create programs using C++ via Visual Studio or GCC. To quote the documentation:

"OpenNI 2.0 represents a major change in the underlying design philosophy of OpenNI.  A careful analysis of the existing API has revealed that it has many features that are rarely or never used by the community.  When designing OpenNI 2.0, the OpenNI team endeavored to greatly reduce the complexity of the API.  Features have been redesigned to reflect actual use by the community.  The method used to communicate with depth sensors has been made easier to understand. "

In other words, some of the more complex features have been removed from the SDK and, if appropriate, moved into the "middleware". The SDK doesn't do much more than give you access to the raw data provided by the sensor. It you want to gain access to higher level "processed" - gestures and skeleton detection and tracking then you have to install an additional layer of middleware. There are two problems with the Middleware. The first is that it isn't open source like the SDK and you have to register to use it. The second is that many Kinect programmers are of the opinion that Microsoft's "middleware" included in the Microsoft SDK is very difficult to beat.  PrimeSense's own middleware, NiTE 2.0 has also been revamped to work with the new SDK.




Other improvements in the SDK include simplified approach to data types and the dropping of the complicated metaphors for using the device via its data. Overall the SDK is said to be easier to use and easier to learn. This may be true but if you have some software that makes use of the old SDK you are going to have to some work to upgrade it.

So why would you choose the OpenNI SDK over the Microsoft SDK?

If you have a non-Microsoft depth camera then you really don't have a choice the new SDK is all that is available. If you are working with the Kinect then you might opt for the OpenNI SDK because it is open source but its dependence on the Microsoft SDK rather spoils this advantage. The latest Microsoft SDK also has more resources and feature and comes with the "middleware" built in. It also allows you to code in .NET languages as well as C++.

If the recent announcement by PrimeSense that it is about to unveil a new and much smaller depth camera suitable for mobile devices proves good, then the role of OpenNI might just become much more important.



More Information




The Kinect Is About To Shrink

Kinect Tracks A Single Finger With A New SDK

Kinected Browser - Kinect On The Web

All About Kinect

Introduction To Kinect

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.


kotlin book



or email your comment to:



Apache NiFi Adds Python Processor Support

Apache NiFi 2, a project for processing and distributing data, has been released with support for Python processors in the MiNiFi framework, and a completely rebuilt user interface.

Look Once to Hear - A Spy's Dream Come True

Deep learning has triumphed again. You can don a pair of headphones, look at a person talking and from then on the system will track the person so you can hear them as they move away or become swamped [ ... ]

More News



Last Updated ( Saturday, 22 December 2012 )