As explained by Avada Kedavra in his / her answer , these are some interesting differences:
- supported operating systems : you can use the Microsoft SDK only on Windows, while open source solutions can usually work on other operating systems;
- programming languages : you have a wider choice of open source, while Microsoft only supports C ++ and C # (Visual Basic is no longer supported SDK 2.0);
- documentation and support . Microsoft offers a good forum and well-prepared documentation (with a large number of samples); but there are several open source solutions well documented;
- license . Microsoft has less or more patent, open source provides less or more free. Consider also that open source ideas are sometimes bought by large companies and transformed into something more open. Yours will probably not deal, but keep this extra opportunity in mind.
In my personal opinion, the biggest difference between open source solutions and the Microsoft SDK is strictly related to the skeletal tracking algorithm .
Although depth and RGB data can be effectively provided by both the open / free APIs and the Microsoft SDK, implementing skeleton tracking capabilities is not just a reverse engineering issue.
To implement such an algorithm, developers must have strong competencies in the areas of pattern recognition and machine learning, and I am absolutely sure that this kind of knowledge is available among the open source community. But the implementation of skeletal tracking is based on a "trained" algorithm, which requires a large number of experiments to collect a very large amount of data. This data is then used to “train” an algorithm that can recognize skeletal joints.
Obtaining a sufficient amount of data, but also its correction and proper use, requires a lot of time and money. Microsoft researchers and developers are in the best conditions to work on such things, simply because it is their job.
In my previous experience, I noticed that open source solutions provide good skeleton tracking capabilities, but they are not at the same level that Microsoft offers with its SDK.
Remember also that the Microsoft SDK provides many additional features, such as face recognition or co-orientation, and several widgets are very useful if you want to quickly build an inline GUI.
So, I suggest: if you are working on a project in which you just need depth and / or RGB data, or if you need to use a programming language that is not supported by the Microsoft SDK, then you should choose an open source solution. Otherwise, the best option would be the Microsoft SDK.
Vito Gentile May 23 '15 at 12:44 2015-05-23 00:44
source share