Microsoft Kinect for Windows SDK – v1.0 Release Notes

Last updated: 1/31/12

 

Welcome to the Microsoft Kinect for Windows SDK. The Microsoft Kinect for Windows SDK provides the native and managed APIs and the tools you need to develop Kinect for Windows Applications. Developers can create rich experiences by using Microsoft Kinect for Windows sensor technology on computers running Windows 7, Windows 8 developer preview (desktop apps only), and Windows Embedded-based devices. Developing Kinect for Windows Applications is essentially the same as developing other Windows applications, except that this SDK provides support for the features of the Microsoft Kinect for Windows sensor (color images, depth images, audio, skeletal data, etc.).

 

Contents:

1. License Agreement
2. System Requirements
3. Installation

4. Getting Help
5. Changes in this release
6. Known Issues

 

1. License Agreement

By downloading, installing, accessing, or using the Microsoft Kinect for Windows Software Development Kit (SDK), you agree to be bound by the terms of its license. Please read the Microsoft Kinect for Windows SDK license here: End User License Agreement

 

2. System Requirements

Supported Operating Systems

*Since Windows 8 is not yet final, Kinect for Windows support for Windows 8 is not ready for commercial deployments.

Hardware Requirements
Software Requirements

3. Installation

Important: 
·         Make sure the Kinect sensor is not plugged into the USB port on the computer prior to running setup.
·         If you are upgrading from a pre-release version of this SDK, we recommend rebooting the computer after setup has completed.
·         You must uninstall any Microsoft Server Speech Platform components before installing this SDK, including the 10.2 runtime components that were used with Beta 2 and/or the latest 11.0 runtimes.  If you don’t uninstall them, setup will display an error.
To install the SDK:

1.    Make sure the Kinect sensor is not plugged into the USB port on the computer.

 

2.   If a previous version of the Microsoft Kinect for Windows SDK is installed, uninstall it before proceeding.

 

3.   Remove any other drivers for the Kinect sensor.

 

4.   Uninstall any Microsoft Server Speech Platform Runtime and SDK components including both the x86 and x64 bit versions, plus the Microsoft Server Speech Recognition Language – Kinect language pack.

 

5.   Close Visual Studio. You must close Visual Studio before installing the SDK and then restart it after installation to pick up the KINECTSDK10_DIR environment variables that the SDK requires.

 

6.    From the download location, double-click on KinectSDK-v1.0-Setup.exe.  This single installer works for both 32-bit and 64-bit Windows.

7.   Once this SDK has completed installing successfully, ensure the Kinect sensor is plugged into an external power source then plug the Kinect into the PC’s USB port.  The drivers will load automatically. 

8.   The Kinect sensor should now be working correctly. Launch the Kinect Explorer sample from Start, All Programs, Microsoft Kinect SDK v1.0, Kinect SDK Sample Browser and verify that the Kinect sensor is streaming skeletal, color image, depth image, and audio data.  

If the driver is installed correctly:

1.     Look for the solid green LED on the Microsoft Kinect for Windows sensor.

 

2.     The Microsoft Kinect for Windows sensor will appear in Device Manager as the following nodes under “Microsoft Kinect”:
• Microsoft Kinect Audio Array Control
• Microsoft Kinect Camera
• Microsoft Kinect Security Control
 

3.     The Microsoft Kinect for Windows sensor's microphone array will appear under Sound, video and game controllers in Device Manager as:
• Microsoft Kinect USB Audio

If you have trouble getting the sensor or the SDK working, see the “Driver Installation” section in the page called “Resources for Troubleshooting” in the SDK Documentation. After installing the SDK, open the SDK Documentation by looking for the link in the Start Menu, or running the Sample Browser.

 

4. Getting Help

The SDK documentation can be launched from the Start Menu. The Programming Guide section of the documentation has many important details for developers, including how to access the APIs from C++ and managed code projects, understanding the Natural User Interface APIs and Audio APIs, how to accomplish common tasks, etc.  The documentation also contains API reference information.

Online developer resources for Kinect for Windows include the following:

·     Technical Resources on the Kinect for Windows Website

·     The Kinect for Windows Blog

·     Kinect for Windows SDK Forums

·        Migrating from Beta 2

·     Coding4Fun Kinect Showcase

For general Windows development questions, try the following:

 

5. Changes since the Kinect for Windows SDK Beta 2 release

 

·         Skeletal Tracking

 

  

 

 

 

 

 

 

 

 

 

 

Correct FPS for High Res Mode

ColorImageFormat.RgbResolution1280x960Fps15 to ColorImageFormat.RgbResolution1280x960Fps12

 

Enum Polish

Added Undefined enum value to a few Enums: ColorImageFormat, DepthImageFormat, and KinectStatus

 

Depth Values

DepthImageStream now defaults IsTooFarRangeEnabled to true (and removed the property).

    Beyond the depth values that are returnable (800-4000 for DepthRange.Default and 400-3000 for DepthRange.Near), we also will return the following values:

DepthImageStream.TooNearDepth (for things that we know are less than the DepthImageStream.MinDepth)

DepthImageStream.TooFarDepth (for things that we know are more than the DepthImageStream.MaxDepth)

DepthImageStream.UnknownDepth (for things that we don’t know.)

 

Serializable Fixes for Skeleton Data

We’ve added the SerializableAttribute on Skeleton, JointCollection, Joint and SkeletonPoint

 

Mapping APIs

Performance improvements to the existing per pixel API.

Added a new API for doing full-frame conversions:

public void MapDepthFrameToColorFrame(DepthImageFormat depthImageFormat, short[] depthPixelData, ColorImageFormat colorImageFormat, ColorImagePoint[] colorCoordinates);

Added KinectSensor.MapSkeletonPointToColor()

public ColorImagePoint MapSkeletonPointToColor(SkeletonPoint skeletonPoint, ColorImageFormat colorImageFormat);

 

Misc

Renamed Skeleton.Quality to Skeleton.ClippedEdges

Changed return type of SkeletonFrame.FloorClipPlane to Tuple<int, int, int, int>.

Removed SkeletonFrame.NormalToGravity property.

 

·         Audio & Speech

 

 

 

 

 

 

·         Samples

 

 

 

 

 

 

 

6. Known Issues

·         .Net

·       When StatusChanged events occur, ensure that you call kinectSensor.Start() on the transition to KinectStatus.Connected. Call kinectSensor.Stop() on all transitions away from KinectStatus.Connected. (Test with unplugging, unpowering, and machine sleep/hibernate.) KinectSensorChooser and KinectExplorer samples do not current handle the sleep/hibernate case well. This will be addressed in a future release of the samples.

 

·       Calls to KinectSensor.Map* and DepthImageFrame.Map* after you have called kinectSensor.Stop() (or a sensor has been removed while the application is running) may fail. Ensure that you protect against that case - use a try/catch around all calls to those Map* APIs.

 

·         C++

·       The SkeletalViewer sample (C++/Direct2D+GDI), when CPU is stressed, may fail to draw skeletons. Best practice when being notified of a frame available is to check all pending streams for new frames.

 

·        If C++ code is executing NuiInitializa/NuiShutdown multiple times through the application’s lifetime, SetDeviceStatusCallback should be called once, before invoking those calls.

 

 

·         Number and date normalization in Kinect for Windows Speech Grammars

·        Kinect for Windows is now integrated with Microsoft Speech Platform Version 11, an upgrade from the Version 10.2 included in previous Beta versions. This version, in conjunction with the Kinect for Windows Speech Language Pack, provides superior speech recognition capabilities to Kinect for Windows.

 

·        Note that this version comes without the support for standard TN/ITN (numbers and dates normalization), requiring some changes to grammars built on top of previous Beta versions. Now you need to expand numbers and dates on your grammars. For example you need to use “Play song number five” in you grammars, instead of “Play song number 5”.

 

·         Microphone Array default gain setting is sub-optimal

·       The default gain applied to the sound recorded by the Kinect sensor’s Microphone array is higher than optimal and can affect speech recognition quality when users are speaking close to the Kinect sensor.

·       If you notice the Kinect audio signal clipping in your application, or experience the Speech Platform SDK reporting AudioSignalProblemOccurred events use TooLoud audio input, set the microphone gain level to 3 on a scale of 100.

·       To set the correct gain value:

·         Open the Windows Control Panel, select the Sound icon, then the Recording tab.

·         Select the Kinect Microphone Array and press Properties, select the Levels tab.

·         Set the Microphone Array gain level to 3 (three), changing it from the default of 100. Press Ok and then Ok again.

 

·         Audio is not processed if skeleton stream is enabled after starting audio capture

·         Due to a bug, enabling or disabling the SkeletonStream will stop the AudioSource Stream returned by the Kinect sensor.

·         The following sequence of instructions will stop the audio stream:

 

kinectSensor.Start();

kinectSensor.AudioSource.Start(); // --> this will create an audio stream

kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect

 

The workaround is to invert the order of the calls or to re-start the AudioSource after changing SkeletonStream status.

Workaround #1 (start audio after skeleton):

kinectSensor.Start();

kinectSensor.SkeletonStream.Enable();

kinectSensor.AudioSource.Start();

 

Workaround #2 (re-start audio after skeleton):

kinectSensor.Start();

kinectSensor.AudioSource.Start(); // --> this will create an audio stream

kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect

kinectSensor.AudioSource.Start(); // --> this will create another audio stream

 

·        Resetting the SkeletonStream engine status is an expensive call which should be made at application startup only, unless the app has specific needs that require turning Skeleton on and off.

 

·         Samples

·       On some machines, the C++ Skeletal Viewer sample occasionally won’t render the Skeleton properly – it may flash or not display. This is a known bug in the sample that will be addressed in a future version.

© 2012 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy