圖像處理中一般為了更好的獲取外部信息都會使用到Kinect,其優勢在於除了傳統的RGB攝像頭之外,還擁有一個獲取深度信息的3D深度感應器,因此可以獲得外界物體的3維信息實現物體的跟蹤、手勢識別等各項功能。更詳細的介紹可參考:身體就是控制器,微軟Kinect是怎麼做到的?
下面介紹OpenCV中Kinect的一些簡單的使用方法。
- Kinect驅動的安裝
這里選擇PrimeSense公司的OpenNI系列(開源+多平台64+32),主要由三部分組成(從底層到高層):PrimeSenser驅動(底層驅動),OPENNI軟件包(提供硬件與應用軟件連接的中間層),NITE軟件包(負責手勢和骨咯偵測)。
安裝順序如下:
1 OpenNI-Win32-1.3.2.1-Dev.msi
2 avin2-SensorKinect-0e5a176\Bin\SensorKinect-Win-OpenSource32-5.0.3.3.msi
3 NITE-Win32-1.4.0.5-Dev.msi
4 Sensor-Win32-5.0.3.3-Redist.msi
“OPENNI會根據(C:\Program Files\OpenNI)下面data下的3個xml文件來啟動硬件(值得注意的是,它不是直接訪問硬件傳輸數據,而是呼叫驅動代理C:\Program Files\PrimeSense\Sensor\Bin下面的*.exe[所以我們要先安裝openNI再安裝driver];
安裝好OPENNI和sensore dirver后,我們只可以運行openNI里面的部分事例(C:\Program Files\OpenNI\Samples);為什么是部分呢?因為OPENNI和骨咯軟件NITE是聯動的,里面高級的samples需要訪問NITE引擎”。
測試OpenNI驅動是否安裝成功的簡單方法便是運行其自帶的sample,如C:\Program Files\OpenNI\Samples\Bin\Release下的NiViewer.exe。
- 注意事項:
1:OpenNI官網上OpenNI以更新到2.0系列,其架構和組成已和1系列發生了很大的不同,其中包括安裝方法,組成等,而且更重要的一點是現在OpenCV的版本中還沒有開發出對應OpenNI2系列的接口,因此現在要通過OpenNI驅動Kinect的話必須要使用OpenNI 1系列,1和2系列的變化具體可參考官網:《Middleware Library Guidelines》;
2:要驅動Kinect的話,OpenCV應在自己的電腦上重新cmake過一遍,參見這里;
3:如果僅僅要利用Kinect獲取深度圖像的話,只需安裝1和2即可,如果要加入手勢識別和骨骼識別的話,3和4必不可少;
4:無論你的電腦是32(x86)還是64bit,32bit的OpenNI驅動都可以順利安裝成功,同理,OpenCV也一樣,一切都按照32bit的操作即可(包括VS的配置和使用);
5:無法定位程序輸入點XXXXX到OpenNI.dll庫上的解決方法。
參考資料:
Kinect OPENNI 安裝教程(for Win x64 i32)
2013-10-26