Monday, June 20, 2011

Microsoft Kinect SDK vs PrimeSense OpenNI

After the release of Microsoft SDK, the FAQ was - "how it differs from OpenNI ?".
I have not tested Microsoft SDK yet, but have read a lot of blogs and watched many videos regarding to it.
The blog article which I liked much was from Brekel
Here is some things from his "pros and cons" list, which you must know, if you want to develop software for Kinect.




Microsoft’s Kinect SDK (Beta)

pro:

  • support for audio
  • support for motor/tilt
  • full body tracking:
    • does not need a calibration pose
    • includes head, hands, feet, clavicles
    • seems to deal better with occluded joints
  • supports multiple sensors
  • single no-fuss installer
  • SDK has events for when a new Video or new Depth frame is available

con:

  • licensed for non-commercial use only
  • only tracks full body (no mode for hand only tracking)
  • does not offer alignment of the color&depth image streams to one another yet
    • although there are features to align individual coordinates
    • and there are hints that support may come later
  • full body tracking:
    • only calculates positions for the joints, not rotations
    • only tracks the full body, no upperbody or hands only mode
    • seems to consume more CPU power than OpenNI/NITE (not properly benchmarked)
  • no gesture recognition system
  • no support for the PrimeSense and the ASUS WAVI Xtion sensors? (can anyone confirm this?)
  • only supports Win7 (x86 & x64)
  • no support for Unity3D game engine
  • no built in support for record/playback to disk
  • no support to stream the raw InfraRed video data
  • SDK does not have events for when new user enters frame, leaves frame etc

PrimeSense OpenNI/NITE

pro:

  • license includes commercial use
  • includes a framework for hand tracking
  • includes a framework for hand gesture recognition
  • can automatically align the depth image stream to the color image
  • full body tracking:
    • also calculates rotations for the joints
    • support for hands only mode
    • seems to consume less CPU power than Microsoft Kinect SDK’s tracker (not properly benchmarked)
  • also supports the Primesense and the ASUS WAVI Xtion sensors
  • supports multiple sensors although setup and enumeration is a bit quirky
  • supports Windows (including Vista&XP), Linux and Mac OSX
  • comes with code for full support in Unity3D game engine
  • support for record/playback to/from disk
  • support to stream the raw InfraRed video data
  • SDK has events for when new User enters frame, leaves frame etc

con:

  • no support for audio
  • no support for motor/tilt (although you can simultaneously use the CL-NUI motor drivers)
  • full body tracking:
    • lacks rotations for the head, hands, feet, clavicles
    • needs a calibration pose to start tracking (although it can be saved/loaded to/from disk for reuse)
    • occluded joints are not estimated
  • supports multiple sensors although setup and enumeration is a bit quirky
  • three separate installers and a NITE license string (although the process can be automated with my auto driver installer)
  • SDK does not have events for when new Video or new Depth frames is available

Source : http://www.brekel.com/?page_id=671

Regards,
Vahag

2 comments:

  1. do the both middle wares support multiple users?

    ReplyDelete
  2. Hello.

    Yes the both middle wares support multiple user tracking. I have not tested multiple user tracking via Kinect SDK myself, but according to Microsoft presentation, it supports too.

    Vahag

    ReplyDelete