微軟前幾天,就有在官方部過格上,發表了《Kinect for Windows announces new version of SDK coming March 18》,宣告會在 3/18,發布最新的 Kinect for Windows SDK 1.7 版,同時也號稱這會是自 Kinect for Windows SDK(以下簡稱 K4W)推出之後,最明顯的更新!
這次更新距離上次的 1.6 版,隔了快半年,算是有點久。不過,這個等待應該算是值得的!因為,在這一版裡面,微軟加入了兩個非常重要、也實際的功能!一個是互動用的「Kinect Interactions」、另一個則是微軟很早之前就展示過、非常炫的「Kinect Fusion」!而詳細的公新內容,也可以參考官方的 Release Note。
雖然 Heresy 寫這篇的時候,微軟還沒有把 1.7 版的 SDK 和 Toolkit 放出來,不過由於 release note 和 MSDN 都已經更新了,所以 Heresy 就先以此來寫了~
之後,微軟應該會把檔案放在 Kinect for Windows SDK 的官網:
http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
到時候,大家就可以下載來玩了~
Kinect Interactions
「Kinect Interactions」不是 SDK 本身的功能,而是新版 Toolkit 的一部分;而顧名思義,他就是補上了 K4W 一直以來缺乏的官方版的動作偵測的功能;透過這個模組,K4W 的開發者,可以更簡單地開發出使用手勢來控制的系統。
在這次的版本裡,他的互動基本上提供了下列的功能:
- 追蹤最多兩的使用者的雙手並偵測手部的狀態
- 往前推按下按鈕(push)
- 握住與放開(grip / release)
- 捲動(Scroll)
- KinectInteraction Controls(.Net / WPF 的控制元件)
更完整的說明,可以參考 MSDN 的說明文件。
Kinect Fusion
「Kinect Fusion」基本上是微軟透過 Kinect 的深度感應器,進行 3D 掃描和物體重建的一個應用;之前都只有展示,而這次終於把他放給大家玩了~(應該也是在 Toolkit 裡、而非 SDK)
不過,要注意的是,要即時做這件事是很吃計算資源的,所以它的硬體要求非常地高!由於微軟為了要壤他跑得夠快,而使用了自家的 C AMP、來用顯示卡做大量平行計算(GPGPU),所以要使用的話,需要有一張支援 Direct X 11 的顯示卡才行;而且,如果要順暢的話,還需要中高階的顯示卡才行(官方是使用 nVIDIA GeForce GTX 560 和 AMD Radeon 6950 測試過)。所以如果沒有夠好的顯示卡的話?快去買一張吧~(完整版的 nVIDIA Kepler、GK110 的 GeForce GTX Titan 應該是個不錯的選擇 :p)
而他基本的實作概念,基本上就是如下方的流程圖:
雖然 Heresy 對技術細節很有興趣,不過這邊就不講了,更詳細的說明,請參考官方 MSDN 文件。
而除了這兩項大功能外,這一版的 SDK 也另外提供了使用 OpenCV 和 Matlab 來處理 Kinect 資料的範例,應該對本來使用這兩的人說,算是滿有用的吧~
整體來說…Kinect for Windows SDK 在微軟的加持下,功能真的越來越多了…雖然 Heresy 本身是 OpenNI 派的,但是不能不說,在微軟的財力和研發能力下,功能看來真的強大許多啊…
不過,OpenNI 2 在捨棄了 OpenNI 1 有功能局限性的 API 後,看來也是有比較多的 middleware library 出現了;不過讓 Heresy 覺得比較可惜的是,似乎有不少都是商業、要付費的版本…而且也由於是各家各自開發的,所以在介面上也失去了一致性,這也會提高一些學習的門檻。
接下來,還是希望開放原始碼的社群,可以盡量跟上吧~像是 Point Cloud Library,基本上就算是一個可能可以做出類似 KinectFusion 功能的開放原始碼函式庫;不過雖然 Heresy 一直很想玩,但是到現在還是沒時間…
您好,我也一直在做相关的学习,发现kineck sdk1.7的push手势识别的非常好,请问通过openni可以达到这个效果吗?或者提供个思路也行
to 魁子
或許可以參考看看
http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=1&PAPER_ID=450