2010-11-23 64 views
6

我有興趣爲Microsoft Kinect控制檯編寫一些自制代碼。我有幾個應用程序,我認爲它可以很好地轉化爲平臺。我一直在玩弄使用OpenKinect drivers and libraries的想法。顯然這將是很多工作,但我想知道多少。有沒有人有OpenKinect的經驗?你是否只從設備獲得原始視頻/音頻數據,或者是否有人編寫了更高級別的抽象概念來使常見任務更容易?OpenKinect成熟度

回答

13

OpenKinect庫基本上是一個驅動程序 - 至少現在 - 所以不要指望從它的很多高功能。你會或多或少地從兩個深度視頻攝像機得到原始數據
這基本上是每次幀到達時在回調函數中接收的數組。

您可以按照OpenKinect website上提供的說明進行試用,它的安裝和試用非常快,您可以使用glview應用程序玩一下,以瞭解可能的情況。 我已經使用opencv設置了一些演示,即使我沒有很多計算機視覺背景,也得到了非常酷的結果,所以我只能鼓勵你自己嘗試一下!

 
另外,如果你正在尋找更高級的功能,在OpenNI framework剛剛在本週公佈,並提供一些令人印象深刻的高層次的算法如骨架跟蹤和一些手勢識別。部分框架是PrimeSense的專有算法(如強大的骨架跟蹤模塊...)。我還沒有嘗試過它,不知道它與kinect和不同操作系統的整合程度如何,但是由於來自不同團體(OpenKinect,Willow Garage ...)的一羣人正在努力工作,在一週內不成問題。

+0

+1獲取openni驅動程序;因爲它們是由Kinect的製造商發佈的http://www.joystiq.com/2010/12/10/primesense-releases-open-source-drivers-middleware-for-kinect/ – LamonteCristo 2010-12-14 01:17:04

12

對Jules Olleon寫的內容進行了進一步闡述,我與OpenNI(http://www.openni.org)及其上面的算法(NITE)合作過,我強烈建議使用這些框架。這兩個框架都有詳細的文檔記錄,並附帶大量可供您開始使用的樣本。

基本上,OpenNI抽象與傳感器及其驅動你的工作的較低級別的詳細信息,併爲您提供了一個便捷的方式讓你從一個「發電機」想要的東西(如XN :: DepthGenerator用於獲取原始深度數據)。 OpenNI是開源的,可以在任何應用程序中免費使用。 OpenNI還爲您處理平臺抽象。截至今天,OpenNI支持Windows 32/64和linux,並且正在移植到OSX中。綁定可用於多種編程語言(C,C++,.NET,Python和我相信的一些其他語言)。

NITE在OpenNI之上構建了額外的接口,可以爲您提供更高級別的結果(例如跟蹤手形,骨架,場景分析等)。您需要檢查NITE許可證的時間/地點的微妙之處,但它仍然可能是現在獲得分析(例如骨架)的最簡單和最快速的方式。 NITE是封閉源碼,因此PrimeSense需要提供二進制版本供您使用。目前有Windows和Linux版本可用。

1

我還沒有制定與OpenKinect,但我一直在OpenNI和SensorKinect工作了幾個月,現在我的研究。如果您打算使用Kinect提供的原始數據,那麼它們可以爲您提供深度和視頻(它們不支持電機控制)。我在Windows 64bit和Ubuntu 32bit中都使用了C++和OpenGL,幾乎不需要修改代碼。如果您瞭解基本的C++,學習起來非常簡單。安裝它可能會有點頭疼。

對於更高級的功能,例如骨架檢測,手勢識別等,我強烈推薦使用NITE等中間件與OpenNI或在此處提供的中間件:Middlewares developed around OpenNI,而不是重新發明車輪。一旦你有OpenNI的工作,Nite也很容易使用;例如聯合識別是大約10-20行額外的代碼。

的東西,我會推薦給我的年輕的自己會學習,有基本的遊戲引擎(例如統一),而不是直接與OpenGL的工作。它會爲您提供更好,更愉快的圖形,減少麻煩,還可以讓您輕鬆地將您的程序與其他工具(如PhysX)結合使用。我還沒有嘗試過,但我知道有一些在Unity中使用Kinect驅動程序的插件。