Past: Before the Kinect SDK 1.6 and before openni2.0
After a trial of Microsoft's Kinect SDK and openni's Kinect, I made some comparisons between them. Note: Microsoft's SDK version is the initial beta version, which is different from the latest released version.
Advantages of the Kinect SDK:
- Audio supported
- Support Motor
- Full body tracking. No need to set the posture (surrender); including the head, hands, feet, and clavicle; it looks better to deal with joint occlusion.
- Support for multiple sensors (multiple GPUs)
- Simplified installation (easier installation)
- When a new video or depth chart is valid, the SDK will have an event available.
Disadvantages of the Kinect SDK:
- Non-commercial (commercial)
- Only the whole body can be tracked (excluding the specific tracing mode: for example, a tracker only)
- The depth chart and color chart do not provide automatic alignment.
- Full body tracking. The joints only have coordinate data and no rotation data (but it has been solved in v1.5). The joints can only be traced to the whole body, excluding specific tracing modes, such as tracing hands or upper body;
- Compared with openni/nite, it seems to consume more CPU (no proper benchmark is used );
- Does not include a gesture recognition system;
- Primesense and Asus wavi xtion hardware platforms are not supported, but win7 (32-bit and 64-bit) is supported );
- The unity3d game engine is not supported;
- Data Record or playback to hard disk is not supported;
- Does not support infrared video data streams
- There are no such incidents, such as when a user is detected or lost.
Advantages of openni:
- Available for commercial use (no payment required)
- Includes a hand tracking framework
- Include Gesture Recognition Framework
- You can automatically align the depth chart data to the color chart data.
- Full body tracking. Contains coordinate data and rotation data; supports Special tracking modes: for example, only tracing hands and heads or upper body
- Less CPU consumption than Microsoft SDK
- Support for primesense and Asus wavi xtion hardware platforms
- It is a bit odd to support multiple sensors but requires installation and enumeration.
- Windows (including Vista & XP & win7), Linux, and Apple operating systems are supported)
- The built-in Code fully supports the unity3d game engine and ogre
- Supports data record to hard disk or playback from hard disk
- Infrared Data Stream holding
- This type of event occurs, for example, when a user is detected or lost. (Callback functions are provided for developers)
Openni disadvantages:
- Audio is not supported
- Motor is not supported. The motor is a patent of Microsoft, so primesense does not want to provoke Microsoft.
- Body Tracking; lack of the following joints: head, hands, feet, and clavicle; a calibration posture (surrender posture) is required to start tracing the bones (note: calibration data can be stored and extracted for reuse, but this has been solved in version 1.5 and no gestures are required)
- Joint occlusion not estimated
- It is odd to support multi-sensor installation and enumeration.
- Nite needs to be installed separately
Prepared remarks:
Microsoft still has advantages in terms of bone recognition and audio. openni seems to be more suitable for color-based point clouds and commercial projects on non-win7 platforms. If you want to develop projects based on upper half or hand recognition, you can use openni and nite. However, if it is full body recognition, Microsoft SDK is undoubtedly the best, however, you must write your own gesture recognition code.
From: http://www.diiduu.com/kinect-sdk-openni-difference.html
====================== Lili's line
However, since the release of openni2.0, the landscape has changed dramatically.
[1] The program interface is greatly updated. For more information, see openni migration guide and workshop.
[2] driver changes. Children's shoes that have used openni1.x should have known about the sensorkinect driver. However, in the openn2's environment, currently, Kinect can only be driven by Microsoft's official Kinect for Windows SDK. We expect cameras of other brands, there should also be different driving methods. The advantage of using the official driver is that it is easy to install, and Kinect
The for Windows SDK also comes with some development tools that can be tested and used, and the disadvantages are obvious. Because the Kinect for Windows SDK only supports Windows 7 and later operating systems, let those children's shoes that want to turn on the Kinect on Linux end up with disappointment.
[3] third-party middleware support. In the openni1.x world, nite is always the same. Currently, opennickel is only responsible for operating hardware, providing application data and maintaining independence from middleware. In addition to nite2, you can also find other middleware to use on the official website.