2011-10-09 135 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將是我的最佳選擇。