2011-10-09 133 views
56

它们在哪里有区别?官方Kinect SDK与开源替代品

例如,选择libfreenect或OpenNI + SensorKinect的优势在官方SDK上,反之亦然?

有什么缺点?

+4

我在编译下面的列表。是否有任何特定的差异利益领域? –

+0

不是。一群朋友和我正在考虑开发一个小型的kinect应用程序,这可能会采用增强现实技术。 –

+0

问题是,我们中的一些人使用Linux/Mac,并且在编写强制锁定到Windows的代码时遇到问题。 –

回答

55

请注意下面的答案是按日期排列的,有些事实很可能在不久的将来会过时。官方Kinect SDK的当前状态是beta 1.00.12。

第一个明显的区别是,官方SDK由Microsoft Research团队维护,而OpenKinect是由开源社区维护的开源SDK。两者都有其缺点和优点。

  • 官方SDK由微软也开发了硬件开发,因此应该知道的是,开源社会必须扭转工程师装置的内部信息。显然这是为了微软的优势。
  • 微软正在为这款设备投入大量资金,我相信他们将会做他们觉得有必要保持其SDK高于标准的水平。经济背后有很多优点。
  • 另一方面,永远不要低估开源社会的力量:“OpenKinect社区由超过2000名成员贡献他们的时间和代码给项目。我们的成员加入了这个项目,其使命是创造最好的可能Kinect的应用套件。OpenKinect是一个真正的“开源”社区!“ - http://openkinect.org/wiki/Main_Page
  • OpenKinect早在官方SDK发布之前就已经发布了,因为Kinect设备在发布的第一天或第二天就被黑了。荣誉OpenKinect!支持

编程语言:

  • 官方SDK:C++,C#或Visual Basic通过使用Microsoft Visual Studio 2010中
  • OpenKinect:Python和C,C++,C#,Java的, Lisp等等!显然不需要Visual Studio。

操作系统的支持:

  • 官方SDK:只安装在Windows 7
  • OpenKinect:在Linux,OS X和Windows

运行显然优势OpenKinect。

许可:

  • 官方SDK是在目前的测试版状态仅用于测试。该SDK专门用于鼓励学术界,研究机构和爱好者社区进行广泛的探索和实验。 商业应用程序是不允许的。但是请注意,这可能会在SDK的未来版本中发生变化。访问FAQ以获取更多信息
  • OpenKinect吸引用于商业用途,但在线资源声明它可能并不那么简单。在发布任何商业应用程序之前,我会仔细看看这些条款。有关更多信息,请阅读Kinect – Licensing implications of open hardware projects

文档和支持:

  • 官方SDK:有据可查,并提供了support forum
  • OpenKinect:似乎有一个邮件列表,Twitter和IRC。但没有官方论坛/ QA?网站上的文档并不像我希望的那样丰富。

设备校准:

不同超高动力学装置可根据批量,它们在制作略有不同因而设备校准有时需要。但是:

  • 官方SDK不提供任何校准设置,但我至今不必校准我正在使用的设备。根据我在线阅读的内容(链接丢失),校准参数被写入到kinect设备,因此不需要官方SDK校准。
  • OpenKinect功能设备校准:http://openkinect.org/wiki/Calibration。因此,我相信如果你使用OpenKinect,你应该校准你的设备。

如果只有OpenKinect需要校准,这对于官方SDK来说是一个很大的优势,因为它更容易在没有这种需求的情况下分发和安装应用程序。


个人而言,与OpenKinect SDK失败重来,我与官方的SDK去,这

  1. 来到与安装开箱的驱动程序后
  2. 带着例子和代码,便于开展业务
  3. 总而言之:我可以在15分钟左右开始自己的发展。
  4. 现在,在使用Kinect几个月后,我不得不说我对提供的API非常满意。我不能将它与OpenKinect SDK进行比较,因为我实际上从来没有使用它(但也许它没有给它一个公平的尝试)。

UPDATE:截至2012年2月1日的还有本作的官方SDK商业许可: “此版本的商业许可授权的商业应用开发和销售现有SDK是一个测试版。 ,因此仅适用于研究,测试和试验,并且不适用于最终的商业产品。新许可证将使开发人员能够使用Kinect for for Windows为最终用户创建和销售Kinect for Windows应用程序Windows平台上的Windows硬件。“ Developer Frequently Asked Questions

+3

你也可以突出显示尝试OpenKinect SDK时遇到的一些困难?基于功能,设计,易用性和稳定性,你认为OpenKinect与官方SDK相比在这方面逊色吗? – greatwolf

+3

@VictorT .:夏天来临前我试了一下,我不记得失败的细节。我认为这是我未能安装的驱动程序。然而,官方的sdk,这只是一个双击(当然安装Windows 7后:))。 –

3

我会强烈建议煤渣框架。(libcinder.org)

它同时支持OpenNI和Kinect开发利用策略,如果你使用C++。它现在支持Kinect的SDK 1.7和OpenNI 2,通过这些Cinderblocks:

MS Kinect的SDK 1.7(稳定) https://github.com/BanTheRewind/Cinder-MsKinect

OpenNI 2/NITE 2.2(阿尔法) https://github.com/wieden-kennedy/Cinder-OpenNI

两者都可以进行骨骼跟踪,OpenNI可以同时跟踪多达六个骨架。 OpenNI 2在Kinect上获得了迅速的增长,尽管新的Kinect在下个月出现时可能会改变。然而,基本的基本原则不太可能改变。

最初版本的OpenNI的主要缺点是它需要一个完整的身体激活姿势来识别用户,这对于很多应用程序来说是一个交易断路器 - 然而这似乎已经在新版本中解决了, OpenNI 2还支持近距离的强大手部追踪,尽管它最初仍然需要对焦手势。如果你在Mac或Linux上工作,这几乎是你唯一的选择。

+0

我正在使用wieden-kennedy回购,但仍然无法识别kinect。但它会与xtion一起工作。 – Kat

5

正如他/她answer解释由Avada Kedavra,这些都是一些有趣的差异:

  • 支持的操作系统:你只能在Windows上使用微软的SDK,而开源解决方案通常能够工作在其他操作系统上;
  • 编程语言:开源解决方案有更多的选择,而微软只支持C++和C#(Visual Basic不再支持SDK 2.0);
  • 文档和支持:微软提供了一个很好的论坛和一个很好的文档(有很多样本);但有好几种开源解决方案有据可查;
  • 许可证:微软的专有权越来越少,开源越来越免费。还要考虑到开源的想法有时候被大公司收购,并且变成了一些不开放的东西。可能你的情况并非如此,但请记住这个额外的可能性。

我个人认为,开源解决方案与微软的SDK之间最显著的区别是严格相关的骨骼跟踪算法

尽管深度和RGB数据可以通过开放/免费API和Microsoft SDK有效提供,但实现骨架跟踪功能不仅仅是逆向工程的问题。

要实现这样的算法,开发人员必须在模式识别和机器学习领域拥有强大的竞争力,并且我确信这种知识在开源社区中是可用的。但是骨架跟踪的实现基于“训练好的”算法,这需要大量的实验来收集非常大量的数据。这些数据然后用于“训练”算法,可以识别骨骼关节。获得足够的数据,但也要调整和正确使用它们,需要大量的时间和金钱。微软的研究人员和开发人员处于这种工作的最佳状态,仅仅是因为这是他们的工作。

在我以前的经验中,我注意到开源解决方案提供了良好的骨架跟踪功能,但它们与微软提供的SDK不在同一级别。

还请记住,Microsoft SDK提供了许多额外的功能,如面部识别或联合定位,以及若干想要快速构建手势GUI的小部件非常有用。所以我建议如果你正在研究一个你只需要深度和/或RGB数据的项目,或者如果你有必要使用Microsoft SDK不支持的编程语言,那么你应该选择开源解决方案。否则,Microsoft SDK将是我的最佳选择。