Without the usual fanfare of a significant product launch, Microsoft released Kinect for Windows SDK 1.7 on Monday. In all honesty, this is the most significant update to the SDK since Microsoft originally shipped Kinect for Windows SDK 1.0. At the Engadget Expand Conference on March 17, Bob Heddle, director of Microsoft Kinect for Windows announced the Kinect for Windows SDK 1.7. You can watch the announcement and great demos of the new features in a video from the Engadget Expand Conference website.
I'm a Microsoft MVP for Kinect for Windows, and I've been anxiously waiting for the public release of this significant set of features, tools, and source code. This release is so revolutionary for the Kinect for Windows team that I can only speculate the reason it isn't called Kinect for Windows 2.0 is that they are waiting on a new Kinect device. Let me explain why this is so exciting. The new release now includes two significant features: Kinect Interactions and Kinect Fusion.
As developers, we are spoiled by controls. And we should be! Because there isn't a third-party market for Kinect for Windows controls, the power of building your own controls is often dependent upon the power of the underlying platform. Seemingly, the Kinect for Windows team realized this and built the plumbing into the platform by introducing Kinect Interactions, which supports automatically recognized gestures and lets developers use these gestures that are manifested in controls in our applications.
Figure 1: Kinect for Windows gestures
Kinect Interactions includes push-to-press buttons, grip-to-pan capabilities, and support for smart ways to accommodate multiple users and two-person interactions. Microsoft has invested thousands of hours of research, development, and testing to bring these functionalities to life. This potentially serves to standardize some of the common gestures that we use when interacting with software, ultimately making it simple for end users because of a highly consistent behavior in gestures from application to application. Lastly, this makes it much easier for developers to create NUI (Natural User Interface) enabled software because lower-level functionality has been manifested into the controls.
Most Kinect for Windows applications use skeletal tracking to track one or two users. Frankly, the Kinect for Windows team did such a great job on the skeletal tracking API that it's pretty simple to get started building applications with Kinect for Windows. In addition, Kinect for Windows also has a depth sensor that has made building applications more difficult and complicated due to the extensive amount of math that's required to make the application work. However, Microsoft's changing all of that with the introduction of Kinect Fusion, which recognizes physical objects from 3D objects from the depth sensor. Microsoft experts who are engaged in machine learning helped create this incredibly powerful 3D object modeler.
Kinect Fusion lets you create accurate and complete 3D models with fidelity. You move a Kinect for Windows sensor around a person, object, or environment and paint a 3D image of the person or thing in real time. These 3D images can then be used in real world applications -- ultimately tying the physical world to the digital one. There are endless and exciting use cases for this new functionality ranging anywhere from augmented reality to 3D printing to body scanning and industrial design.
Figure 2: Kinect Fusion
The updated SDK also includes an enhanced developer toolkit and additional developer resources, including, OpenCV and MATLAB samples that lets developers build advanced Kinect-enabled applications that adhere to industry standards.
Kinect Code Samples Are Now Available through Open-Source License
The Kinect for Windows SDK is unique for Microsoft because it includes so many compelling sample applications. In conjunction with the new release, Microsoft has announced they are releasing the Kinect for Windows samples under an open-source license. There are 22 unique samples in C#, C++, and Visual Basic. This marks the first time that Kinect for Windows code samples are made available through an open-source resource.
Roadmap for Kinect for Windows
Because the Kinect for Windows team is uniquely tied to the Windows team and Xbox group, they are extremely tight-lipped on their product roadmap. Software platform, tools, and plumbing updates such as these are exciting and powerful. But other 3D camera manufactures are looming, which include Leap, SoftKinetic, and Panasonic. Competition is a good thing. But I just can't help to think that Xbox team hasn't been sitting around doing nothing for two years. There has to be a Kinect 2.0 device looming with a better range and a smaller form factor. My guess is that timeframe would be right around October, when everyone else ships new consumer devices in time for the holidays.