Via Channel 9
 
-----
 
 
 
As everyone reading this blog, and those in the Kinect for Windows
 space, knows today is a big day. From what was a cool peripheral for 
the XBox 360 last year, the Kinect for Windows SDK and now dedicated 
Kinect for Windows hardware device, has taken the world by storm. In the
 last year we've seen some simply amazing ideas and projects, many 
highlighted here in the Kinect for Windows Gallery, from health to 
education, to music expression to simply just fun.
 
And that was all with beta software and a device meant for a gaming console.
 
With a fully supported, allowed for use in commercial products, dedicated device and updated SDK, today the world changes again.
 
Welcome to the Kinect for Windows SDK v1!
 
 
 
On January 9th, Steve Ballmer announced at CES that we would be shipping Kinect for Windows on February 1st. I am very pleased to report that today version 1.0 of our SDK and runtime
 were made available for download, and distribution partners in our 
twelve launch countries are starting to ship Kinect for Windows 
hardware, enabling companies to start to deploy their solutions. The 
suggested retail price is $249, and later this year, we will offer 
special academic pricing of $149 for Qualified Educational Users.
 
In the three months since we released Beta 2, we have made many improvements to our SDK and runtime, including:
 
 
- Support for up to four Kinect sensors plugged into the same computer 
- Significantly
 improved skeletal tracking, including the ability for developers to 
control which user is being tracked by the sensor 
- Near Mode for
 the new Kinect for Windows hardware, which enables the depth camera to 
see objects as close as 40 centimeters in front of the device 
- Many API updates and enhancements in the managed and unmanaged runtimes 
- The latest Microsoft Speech components (V11) are now included as part of the SDK and runtime installer 
- Improved “far-talk” acoustic model that increases speech recognition accuracy 
- New
 and updated samples, such as Kinect Explorer, which enables developers 
to explore the full capabilities of the sensor and SDK, including audio 
beam and sound source angles, color modes, depth modes, skeletal 
tracking, and motor controls 
- A commercial-ready installer which
 can be included in an application’s set-up program, making it easy to 
install the Kinect for Windows runtime and driver components for 
end-user deployments. 
- Robustness improvements including driver stability, runtime fixes, and audio fixes 
More details can be found here.
 
 
If you're like me, you want to know more about what's new... So here's a snip from the Kinect for Windows SDK v1 Release Notes;
 
 
5. Changes since the Kinect for Windows SDK Beta 2 release
 
 
- Support for up to 4 Kinect sensors
 plugged into the same computer, assuming the computer is powerful 
enough and they are plugged in to different USB controllers so that 
there is enough bandwidth available. (As before, skeletal tracking can 
only be used on one Kinect per process. The developer can choose which 
Kinect sensor.) 
· Skeletal Tracking
 
 
 
- The
 Kinect for Windows Skeletal Tracking system is now tracking subjects 
with results equivalent to the Skeletal Tracking library available in 
the November 2011 Xbox 360 Development Kit. 
 
- The Near Mode feature is now available. It is only functional on Kinect for Windows Hardware; see the Kinect for Windows Blog post for more information. 
 
- Robustness improvement including driver stability, runtime and audio fixes. 
 
- API Updates and Enhancements 
 
 
 
- Many renaming changes to both the managed and native APIs for consistency and ease of development. Changes include: 
 
- Consolidation of managed and native runtime components into a minimal set of DLLs 
- Renaming of managed and native APIs to align with product team design guidelines 
- Renaming of headers, libs, and references assemblies 
 
 
 
- Significant managed API improvements: 
 
- Consolidation of namespaces into Microsoft.Kinect 
- Improvements to DepthData object 
- Skeleton data is now serializable 
- Audio API improvements, including the ability to connect to a specific Kinect on a computer with multiple Kinects 
- Improved error handling 
 
 
 
- Improved initialization APIs, including addition the Initializing state into the Status property and StatusChanged events 
 
 
- Set
 Tracked Skeleton API support is now available in native and managed 
code. Developers can use this API to lock on to 1 or 2 skeletons, among 
the possible 6 proposed. 
 
 
- Mapping APIs: The 
mapping APIs on KinectSensor that allow you to map depth pixels to color
 pixels have been updated for simplicity of usage, and are no longer 
restricted to 320x240 depth format. 
 
 
- The 
high-res RGB color mode of 1280x1024 has been replaced by the similar 
1280x960 mode, because that is the mode supported by the official Kinect
 for Windows hardware. 
 
 
- Frame event 
improvements. Developers now receive frame events in the same order as 
Xbox 360, i.e. color then depth then skeleton, followed by an 
AllFramesReady event when all data frames are available. 
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
 
 
 
- The
 Kinect SDK now includes the latest Microsoft Speech components (V11 
QFE). Our runtime installer chain-installs the appropriate runtime 
components (32-bit speech runtime for 32-bit Windows, and both 32-bit 
and 64-bit speech runtimes for 64-bit Windows), plus an updated English 
Language pack (en-us locale) with improved recognition accuracy. 
 
 
- Updated acoustic model that improves the accuracy in the confidence numbers returned by the speech APIs 
 
 
- Kinect Speech Acoustic Model has now the same icon and similar description as the rest of the Kinect components 
 
 
- Echo
 cancellation will now recognize the system default speaker and attempt 
to cancel the noise coming from it automatically, if enabled. 
 
 
- Kinect Audio with AEC enabled now works even when no sound is coming from the speakers. Previously, this case caused problems. 
 
 
- Audio initialization has changed: 
 
- C++ code must call NuiInitialize before using the audio stream 
- Managed code must call KinectSensor.Start() before KinectAudioSource.Start() 
- It takes about 4 seconds after initialize is called before audio data begins to be delivered 
- Audio/Speech samples now wait for 4 seconds for Kinect device to be ready before recording audio or recognizing speech. 
 
· Samples
 
 
 
- A sample browser has been added, making it easier to find and view samples. A link to it is installed in the Start menu. 
 
 
- ShapeGame
 and KinectAudioDemo (via a new KinectSensorChooser component) 
demonstrate how to handle Kinect Status as well as inform users about 
erroneously trying to use a Kinect for Xbox 360 sensor. 
 
 
- The
 Managed Skeletal Viewer sample has been replaced by Kinect Explorer, 
which adds displays for audio beam angle and sound source 
angle/confidence, and provides additional control options for the color 
modes, depth modes, skeletal tracking options, and motor control. Click 
on “(click for settings)” at the bottom of the screen for all the bells 
and whistles. 
 
 
- Kinect Explorer (via an 
improved SkeletonViewer component) displays bones and joints 
differently, to better illustrate which joints are tracked with high 
confidence and which are not. 
 
 
- KinectAudioDemo no longer saves unrecognized utterances files in temp folder. 
 
 
- An example of AEC and Beam Forming usage has been added to the KinectAudioDemo application. 
 
- Redistributable Kinect for Windows Runtime package 
 
- There
 is a redist package, located in the redist subdirectory of the SDK 
install location. This redist is an installer exe that an application 
can include in its setup program, which installs the Kinect for Windows 
runtime and driver components.