Kinect2的安裝以及關於OpenNI2遇到的問題(OpenNI2顯示no devices found)

作爲一個研究生狗,最近應老闆的要求在學習關於Kinect方面的知識。


其中遇到一個問題就是:學校購入的Kinect是Kinect 2代,而且我所學習的框架必須依賴OpenNI庫,但是Kinect2和OpenNI2在查閱各種資料下,似乎是不兼容的。如圖:



爲了解決這個問題,花費了我許久的時間。不過還好,終於在某外網的問答下找到了答案。



首先,我先報下我的環境:

操作系統:win8.1(Kinect 2需要搭配 kinect for windows SDK 2.0,而SDK2.0需要win8及其以上系統。)

設備:Kinect Xbox One

軟件:Kinect for windows SDK 2.0  

          OpenNI 2.2


Kinect 2的安裝:

(雖然我的系統是64位,可我覺得32位更方便,以下所有軟件我都是使用的32位版本。)

一、下載並安裝Kinect for windows 2.0(記住,此時Kinect不能連接電腦)。因爲是微軟的比較霸道,不能更改安裝路徑。如果有想知道路徑的朋友,其路徑是C:\Program Files\Microsoft SDKs\Kinect

網上有很多關於Kinect的安裝教程,相信很多同學都看見過SDK1.x+OpenNI+NITE的安裝教程。那是在SDK 2.0之前,如果在windows系統上開發Kinect需要藉助OpenNI和NITE。SDK2.0發佈後,其實一般簡單的程序都有包括。目前Kinect 2代大致有兩種選擇:一、使用SDK;二、使用SDK+OpenNI2。兩者有各自的好,一個是開源,一個比較便利。這就需要自己去選擇啦。


二、連接Kinect(記住一定要用usb3.0接口)。之後電腦會自動安裝Kinect所需的驅動。


此時打開Kinect studio,點擊connected

可以測試電腦是否可以連接Kinect



如果你是隻安裝SDK,到此就安裝成功了,SDK中有很多例子(點擊SDK Browser),可以多看看,使用也很方便。



        

三、下載並安裝OpenNI2。這裏就不詳細講解了,設置好安裝路徑再一路next就可以了。

安裝完,點擊NiViewer測試是否成功。


成功!





OpenNI2遇到no devices found問題:


如開篇所說,查閱了很多資料都是Kinect 2 與 OpenNI2 不兼容,所以OpenNI識別不了Kinect 2設備。不過,誤打誤撞的我找到了解決方法:


一、下載OpenNI2-Kinect2Driver。點擊Download ZIP,下載到一個你想要的路徑,並解壓。




二、用vs2013運行OpenNI.sln。(關於vs的選擇,它雖然是vs2010編譯的,但是要求vs2012及其以上運行。我用vs2012運行會報錯並且需要改平臺工具集,所以試過之後我建議大家用vs2013。)



三、打開之後,大家會發現它默認的活動解決方案平臺是x64,並不是win32,鑑於上面我們都是用的32位的軟件,所以改爲win32(x86)。如果你需要的是64位不需要改平臺,以下也會順帶講解。

然後點擊生成OpenNI,成功。


右擊Kinect2,點擊屬性->配置屬性->vc++目錄:

配置包含目錄:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc

配置庫目錄:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x86(32位)

                    C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x64(64位)

再點擊鏈接器->輸入

配置附加依賴項:Kinect20.lib和XnLib.lib

配置好屬性後,點擊生成Kinect2


如果你的活動解決方案平臺是win32:

在:你選擇解壓的路徑\OpenNI2-kinect2\Bin\Win32-Debug\OpenNI2\Drivers中可以找到Kinect2.dll,Kinect.lib等

如果你的活動解決方案平臺是x64:

在:你選擇解壓的路徑\OpenNI2-kinect2\Bin\x64-Debug\OpenNI2\Drivers中可以找到Kinect2.dll,Kinect.lib等


將得到的文件複製到:

OpenNI2安裝目錄\OpenNI2\Tools\OpenNI2\Drivers下


運行NiViewer,成功~!



注:1.選擇你32位OpenNI2要對應選擇win32平臺,64位的OpenNI2要選擇對應的x64平臺。

       2.使用OpenNI時,記得要把OpenNI2\Redist中的所有內容複製到項目中。


困擾我很久的問題~通過自己的努力解決了~希望大家多多支持~科科~



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章