Kinect for Windows v2 的一些資源


雖然算是晚了不少,不過 Heresy 之前終於弄到了 Kinect v2 的感應器(for Xbox Onefor Windows),也寫了很簡單的開箱測試文了。

而雖然是想開始花時間來研究到底要怎麼寫 Kinect for Windows v2(以下簡稱 K4Wv2)的程式,但是由於最近都在做別的方面的東西,所以一直到現在都還沒有真的有時間下去玩…

不過最近,其他事前暫時算告一個段落了,所以接下來應該會來研究看看了吧~而在開始之前,這邊先來稍微整理一下,最近看到的一些相關資源。

首先,最主要的資源自然還是官方網站:

http://www.microsoft.com/en-us/kinectforwindows/

不管怎樣,應該都還是得先在這邊下載 SDK。

之後,在學習程式開發的部分,微軟虛擬學院有提供一系列的影片,可以作為學習的參考(不過應該是預覽版時代的影片就是了,之前的簡介):

http://www.microsoftvirtualacademy.com/training-courses/programming-kinect-for-windows-v2-jump-start

當然,最重要的,是 MDSN 上有完整的 API 文件(連結)。不過…Heresy 好像沒有看到類似 tutorial 之類的 programming guide? @@

而目前 Cater Ming 這位網友也有在他的部落格上,寫了一系列搭配 openFramework 來開發 K4Wv2 程式的教學了~有興趣的話,可以參考:

http://poco-cater.blogspot.tw/search/label/Kinect%20v2

如果看得懂日文的話,網路上也有日本網友有完整的教學,他的網站是:

http://www.buildinsider.net/small/kinectv2cpp

而就算看不懂日文,也可以參考它放在 GitHub 上的範例程式:

https://github.com/UnaNancyOwen/Kinect2Sample


Kinect v2 for OpenNI 2

首先,由於 Kinect for Windows v2 的 API 和 Kinect for Windows v1 是不相容的,驅動程式也不一樣,所以兩個世代的感應器、程式是無法混用的。

而像是 OpenNI 2 由於是開放原始碼的架構,所以也有人針對新版的 SDK,來寫出了支援 K4Wv2 的驅動程式模組(和之前的不同人寫的);他的原始碼是:

https://github.com/mvm9289/openni2_kinect2_driver

現在這份驅動程式模組也已經被整進 occipital 的 OpenNI 裡、並建立出一個新的分支了~它的位置是:

https://github.com/occipital/OpenNI2/tree/kinect2

所以,如果想要在 OpenNI 2 的環境下,使用 K4Wv2 的話,可以考慮下載這個分支來自己建置;如果不想自己建置的話,也可以考慮下載 Heresy 建置好的版本(連結)。

而 Heresy 自己在測試的時候,是發現他似乎還有點問題;Heresy 必須先執行一個 K4Wv2 的程式、再去開啟 OpenNI2 的程式,才能抓到感應器…不知道這方面算是什麼的問題?

當然,由於他是基於 K4Wv2 來寫的,所以基本上還是只能在 Windows 8 以後的 Windows x64 環境上運作…


libfreenect 2

在 OpenKinect(官網)的部分,目前也有針對第二代感應器釋出了 libfreenect2,他的網址是:

https://github.com/OpenKinect/libfreenect2

理論上,這個版本的驅動程式除了支援 Windows 外,也支援 Mac OS X 和  Ubuntu~所以,如果想在非 Windows 環境下使用 Kinect v2 感應器,或許可以考慮這個方案。

但是,由於他不是由微軟直接支援的,所以功能相對地比較少。


Kinect for Windows v2 C++ 程式開發目錄

對「Kinect for Windows v2 的一些資源」的想法

  1. 請問Heresy大大,我使用您提供的網站( https://github.com/KHeresy/OpenNI2/releases/tag/r1)建置Kinect v2 for OpenNI 2,vs2015來建置,但是無法成功建置,測試使用NiViewer可以執行,但是自行建置無法執行,有遇到找不到感應器但是先執行一個 K4Wv2 的程式、再去開啟 OpenNI2 的程式,也沒辦法運作,不知道出了什麼問題 。謝謝

    • 抱歉,看不太懂你的敘述。
      可否麻煩條列清楚各種狀況?是怎樣的狀況可以、怎樣不行?
      無法建置成功的錯誤是什麼?

      另外,這邊建議試著不要使用 Heresy 自己的版本,去用 occipital 的版本試試看。

    • OpenNI 的人體骨架分析套件是 NiTE,基本上不支援 Kinect 2。
      如果想要讓他可以動,就得找其他方法了。

      技術上不是做不到,只是有沒有人去做。

  2. 您好,有两个问题困扰我几天了,想像您请教一下,一个是关于骨骼图像与深度图像帧对齐的问题,如何才能确定骨骼图像上的关节点位置对应的是哪一幅图像的呢? 另外一个,如何获取连续的数据流,就比如现在kinect2的帧率是30fps,我想把程序运行期间每秒30张的深度图像(及骨骼关节点位置)都获取,于是我尝试使用了sdk中的 Savebitmaptofile函数,注释了判断是否截图的语句,让它一直执行存储的操作,发现并不能获取每秒的30张图像,只能接近1秒一张,有什么办法可以达到我说的目的呢?如果您能抽空解答,不胜感激!

    • 1. 人體骨架是根據深度影像來的,所以基本上就是當下他使用的哪張。
      2. 這會取決於電腦計算速度、以及你額外做的處理,不見得真的能到 30fps。
      如果你是卡在儲存的部分,建議修改輸出成更小的檔案格式;例如使用 JPEG 可以讓檔案小很多、減少輸出時所需的時間。或者,也可以換成更快的儲存裝置,例如 SSD。

    • 如果你是要在 Windows 下透過 OpenNI 2 來讀取 Kinect v2 的話,請把 Kinect2.dll 放到 \OpenNI2\Drivers 的目錄下(相對於 openni2.dll)。

      不過,老實說,並不建議這樣用,在很多地方可能會有問題,也不支援 NiTE。
      如果要使用 Kinect v2,最好還是使用 Kinect for Windows SDK。

  3. 請問你使用 Kinect v2 到現在 有什麼是 Kinect 2.0 不能開發的嗎 ~ 買不到v2 但有2.0可以買!!很猶豫 怕買了2.0 會很多限制

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料