這篇,基本上針對目前的 OpenNI 2.0(2.0.0.29/2.0.0.32),稍微談一下對於 Microsoft Kinect 感應器的支援的東西。 OpenNI 1.x 的時代
OpenNI 2 的現況 到了 OpenNI 2,由於架構整個改了,而對於 Kinect 的支援方式,也做了很大的修改。他由本來是由第三方驅動程式來支援,變成了是官方直接支援;而使用的方法,則變成和 kinect-mssdk-openni-bridge 一樣,是透過 Kinect for Windows SDK 來讀取感應器的資料。也因此,在 OpenNI 2 的架構下,如果要使用 Kinect 的感應器的話,是需要安裝 Kinect for Windows SDK 的。 會這樣做的原因,個人認為主要應該是微軟對 Kinect 感應器本身的授權問題(包含之前 1.x 沒有官方版驅動程式,應該也是同樣的原因)。而帶來的影響呢?在好的方面,就是現在 OpenNI 2 所需要的驅動程式,和 Kinect for Windows SDK 是相同的,所以兩者可以直接同時使用,不用有任何衝突、也不需要做任何驅動程式、或是設定上的調整。(不過把 Xtion Pro Live 和 Kinect 感應器同時接上電腦,似乎還是會有問題) 而在比較不好的方面呢?第一個問題,就是作業系統不再那麼地彈性了~OpenNI 1.x 基本上可以在 Windows、Linux、Mac OS X 上使用 Kinect 和 Xtion 感應器,相當地彈性。但是由於 OpenNI 2 是透過 Kinect for Windows SDK 來支援 Kinect 感應器的,所以使用環境就必須要能支援 Kinect for Windows SDK 才行;也就是,現在如果要透過 OpenNI 2 來使用 Kinect 感應器的話,系統需求就是 Kinect for Windows SDK 的系統需求。也就是說就算不管硬體的部分,作業系統現在一定得要使用 Windows 7 或 Windows 8,才可以使用 OpenNI 2 Kinect 這個組合了! 那 Mac OS X、Linux,或是 Windows XP、Vista 的使用者呢?很遺憾的,目前以官方的方案來說,是無法使用 Kinect 感應器的。所以對 Kinect 的使用者來說,OpenNI 2 的平台選擇的自由度,應該算是被縮小許多…(對於 ASUS Xtion 系列用戶沒有影響就是了) 除了作業系統的部分,在使用上的功能性的部分,由於是透過 Kinect for Windows SDK 來做存取,所以自然也就會受限於 Kinect for Windows SDK 的功能,不會像對華碩 Xtion 系列支援的那麼完整。目前 Heresy 發現最糟糕的一點,就是用來校正深度影像和彩色影像的 IMAGE_REGISTRATION_DEPTH_TO_COLOR 這項功能(參考《OpenNI 2 VideoStream 與 Device 的設定與使用》),在目前的版本是無法套用在 Kinect 上的!這點對於要把彩色影像和深度影像結合做處理的人來說,其實是相當糟糕的一件事啊… 由於上面提到的這兩個問題都相當地嚴重,所以其實官方論壇上也都有相關的討論、以及可能的解決方案。
作業系統的問題
深度、彩色影像的校正
這篇大概就先這樣了。接下來如果有發現什麼功能是在 Kinect 上要特別處理的,就在另外寫吧~ 不過,Heresy 自己也在想…基本上,OpenNI 1.x 和 OpenNI 2 應該是可以並存的,或許也可以考慮寫出可以寫出一個客製化的 driver 模組,透過 OpenNI 1.x 來使用 Kinect?如果可以的話,應該也可以解決上述的問題才對。不過,就不知道到底能不能做到了。
|