Friday, June 17, 2011

Candescent NUI with Microsoft Kinect SDK

With change set 7506 Candescent NUI now supports both OpenNI and Microsoft Kinect SDK.

You can choose to use OpenNI or Kinect SDK. Selecting the one you don't have installed will result in an exception.

Warning 1!  It seems like the SDK returns depth data only between 850mm - 4000mm distance. The default range for the clustering is set to 500mm - 800mm. The algorithm works best at this range. You can try to use it at 850mm - 1000mm, but it's not very reliable.

I don't know yet whether there is an option to get the SDK to return values closer than 85cm (the device clearly can do it with OpenNI).

Warning 2! This was a fast checkin, I will have to refactor quite a lot (did some copy - paste to get it up faster, shame on me).


  1. Wow you are fast!

  2. Hello,
    I am also using your code for a school-project, and reading your post regarding OpenNI vs. MicrosoftSDK (not working together) I was afraid to install it. (I'm under time pressure so I don't want to spend time installing and uninstalling.. )
    But still I am curious: Is there an advantage by using the SDK? is the finger detection more reliable, for example? If you say that it has more benefits, than I will switch to the SDK, otherwise I am pretty much satisfied with the previous version too, many thanks for it! :) (I wanted to leave the Thank You for the time when I can show you also the result of my project, but now it will follow this one, at the beginning of July :) )

  3. Hi zizuka

    I'd recommend against installing it at the moment. For my project there are no advantages (yet?), only disadvantages. For example no depth data closer than 85cm.

    I haven't compared performance yet.

    There are advantages over OpenNI in general:
    - Easier installation
    - Audio data is supported
    - You can control the motor
    - Personally I like that the skeleton tracking does not need the Y calibration pose


  4. hey stefan,

    - at frist. thanks!
    - second: yes. i watched a launch video and red the spec of the sdk and it looks like 850cm is the minimum distance.
    - third: the programm is runnning, i get a depth and and a rgb image. but no clustering and fingertracking...

  5. setting clustering maximum depth threshold to 900cm /which makes sense) fixed it.

    the audio stuff is really great. see

    - speech recognition
    - direction recognition
    - audio filter (hear voice when a lot of noise)
    and so on

    thanks again!

  6. Thanks for the answers! I only use the finger-detection part, so no SDK in this project for me! :)

  7. absolutly. the same reason for me. But now i can't go back to openni :(

    But this finger recognition is the best i found... and working one. because a lot of stuff is not working because of no standard and different drivers all over the place. maybe this will change in future with the kinectsdk?

  8. Hi zizuka

    And by the way: You're welcome and I'm looking forward to see your project!


  9. @Anonymous:

    I'm sorry I can't help you with getting OpenNI back working. I don't want to risk installing the SDK on my main PC yet. But I guess others will have this problem too. There is a discussion here for example:

  10. thats me :P
    maybe you try installing openni on your pc where you installed the kinectsdk.
    Then we can see if it is only me with that problem...

  11. I tested and it pretty awesome so far. Good Job.

  12. Hi Deacon

    Thanks for testing and for the comment!