In my own implementation the skeleton data is useless because it does not provide any detailed contextual data to help hug the contours of each humans body. The requirement of including the skeleton data may only be used to know where to place the mask and may have no benefit on Microsofts background removal.
Kinect sdk 1.8 windows 10 code#
I'm willing to be that the background removal API takes advantage of unmanaged code to speed up real time processing.
Kinect sdk 1.8 windows 10 64 Bit#
If you use EMGU CV, it requires individual 64 bit and 32bit dlls because it reaches into low level unmanaged code for much of the functionality it provides. You can tell this because the background removal API is oddly contained in a 32 and 64 bit separate DLL from the main Kinect SDK dll. I am confident that they are using external computer vision libraries that may have some licensing restrictions preventing them from being included in the official Kinect SDK DLL's.The tell in the 1.8 SDK that this is happening is when you wave your hands around or move fast, you can see some lag in the mask as it follows you which could either be from frame averaging or intentional slow down of processing to increase end user performance. In my testing, averaging the depth data was too slow of a process in managed C# code and the results were not very good for creating smooth masks that fit the contour of subjects so I threw out this technique.
During my own work I found this concept presented by Karl Sanford in his early work smoothing depth data.
While the results I came up with are not as good as the official SDK implementation they are pretty close and don't require detected skeletons. Than any other implementations I tested as well as writing my own box blur or gaussian blur. I also used a simple shader based blur effect available in Windows Presentation Foundation as it proved way faster The approach I used was to ignore skeleton data, and only use depth data, then run that raw data through EMGUCV(.Net OpenCV) and do blob detection, take the detected blobs, and run them throughĪ point by point averaging algorithm based on work done in openFrameworks.
Kinect sdk 1.8 windows 10 how to#
This summer for the Kinect Green Screen Photo kiosk I had at Maker Faire Detroit, I invested about a month of time figuring out how to get a good mask out of the Kinect in real time. A photo taken using the Kinect SDK 1.8 Background Removal API.