在 2013 年底,Apple 正式收購了 OpenNI 的主導廠商、PrimeSense;而到了 2014 年的四月底、OpenNI 的官方網站也正式關閉,其後又過了一段時間後、連 PrimeSense 的官方網站也都停止運作了。而這也看得出來,所謂的 OpenNI 聯盟,其實只是靠 PrimeSense 玩起來的…
那現在,OpenNI 的狀況是怎樣呢?
首先,之前針對 iPad 推出外掛深度感應器「Structure Sensor」的公司 Occipital(官網),已經決定接手繼續維護 OpenNI 2 的 SDK 了!他也為此建立了一個專頁、提供了 OpenNI 2 相關的資源下載;其網址是:
而原始碼的部分,由於 Github 上、OpenNI 帳號下的 repository(連結)所有權還在 PrimeSense 的人那(其實 Heresy 有試著連絡,但是沒有回應),所以之後基本上很難繼續維護;所以 Occipital 也在 Github 上 fork 了一份、並持續維護,其網址是:
雖然目前還沒有釋出新版本,不過他的 develop branch(連結)目前也已經做了不少修改;其中,Heresy 自己也有貢獻一些、修正一些問題。
所以,如果只是要透過 OpenNI 2 來存取深度影像的問,基本上還不用擔心會斷頭。至於感應器的支援部分,OpenNI 2 本身能直接支援的感應器,基本上還是以 PrimeSense 的相關產品為主,包括了:
而其他能支援的,應該也包括了像是 Occipital 的 Structure Sensor 這類直接採用 PrimeSense 方案的感應器。
但是由於 PrimeSense 已經被收購了,所以以後應該也難以取得新的感應器了,那如果有需要的話,該怎麼辦呢?基本上,目前也有不少第三方的驅動模組,可以用來讓 OpenNI 2 可以支援其他廠商的深度感應器,包括了:
- Openni2-DepthSenseDriver
- https://github.com/kaorun55/Openni2-DepthSenseDriver
- 支援 SoftKinetic 的感應器
- OpenNI 2 with Intel Perceptual Computing
- https://github.com/vbystricky/OpenNI2/tree/PerCDevice/Source/Drivers/PerCDevice
- 支援 Intel / Creative 的深度感應器
- OpenNI2-FreenectDriver
- 在非 Windows 環境下、透過 libfreenect 支援第一代 Kinect
- https://github.com/OpenKinect/libfreenect/tree/master/OpenNI2-FreenectDriver
- OpenNI2-Kinect2Driver
- https://github.com/kaorun55/OpenNI2-Kinect2Driver
- 支援 Microsoft Kinect for Windows v2,不過目前還是預覽版本
而如果是要針對其他裝置做測試話,也可以考慮用 Heresy 寫的 Virtual Device for OpenNI 2,自己餵資料進去做測試。
實際上,問題比較大的,應該還是 PrimeSense NiTE 這個為了 OpenNI 開發的人體骨架分析/追蹤軟體了。
因為不管是 OpenNI 1 或是 OpenNI 2,雖然 OpenNI SDK 本身都是免費、OpernSource 的,但是真正要開發體感程式的話,都還是需要 NiTE 這個非 OpenSource 的函式庫,來做深度影像的分析、以擷取出人體的骨架、並加以分析。
而實際上,NiTE 應該也算是 OpenNI 環境下、唯一個可以免費使用的人體骨架追蹤的函式庫;但是在 PrimeSense 被收購的現在,他不但不會再有更新,甚至連散佈的機會都消失了…
如果早期開始玩的人,手邊都還有備份的話,要繼續使用問題還不大;但是礙於其授權協議,他不但不能用於非 PrimeSense 的感應器、而且也不能自行散佈。這也就是為什麼 Occipital 沒有提供 NiTE 的備份下載的原因了。
不過雖然按照授權協議,是不能自行散布的,不過拜偉大的 Google 大神所賜,其實網路上要找到可以下載的地方,還不算太難(例如);但是有沒有可能下載到有問題的檔案,就比較難確定了。
說實話,以這部分來說,個人是希望可以有足以取代 NiTE 的開源方案可以使用。但是之前有認真找了一下,雖然並非沒有,不過好像還沒有真的可以取代 NiTE 的東西可以用啊…
真的有興趣的話,或許可以試試看下面這兩個:
不過 Heresy 自己還沒真的玩過,也不確定是否可以搭配 OpenNI 使用。如果有人知道有比較好的函式庫可以用,也歡迎提供資訊了。
附帶一提,其實這篇 Heresy 應該算是早就有打算寫了,不過因為之前有段時間,一直希望狀況可以有點改變,所以就一拖再拖、沒有寫這篇…而現在看來,應該是確定沒啥變化了,所以還是稍微整理一下吧。
[…] OpenNI 已經半殘的狀況下,去年依舊推出了 ASUS Xtion 2 這款支援 OpenNI […]
讚讚
几年过去了,机器视觉的骨骼算法的都走机器学习的算法 , OpenPose OpenDense 了,倒是IntelRealsense 系列被支援了 OpenNI2
讚讚
是啊,這幾年整個環境變很多了
讚讚
[…] Heresy 來看,會繼續選擇 OpenNI 這個環境,以現況來說…個人是覺得有點微妙?不知道華碩推出 Xtion 2 […]
讚讚
[…] PrimeSense 被 Apple 收購,OpenNI 雖然改由 Occipital 接手,但是由於硬體取得不易、沒有關鍵的 Middleware […]
讚讚
[…] PrimeSense 被 Apple 收購,OpenNI 雖然改由 Occipital 接手,但是由於硬體取得不易、沒有關鍵的 Middleware […]
讚讚
[…] 不過,如果是要使用 OpenNI 的方案的話,也請先參考《201407、OpenNI 現況》,了解他目前的狀況。 […]
讚讚
[…] 這家公司(官網),或許大家不是很耳熟,不過在 Microsoft Kinect 和 OpenNI 剛崛起的時候,他和已經被 Apple 收購的 PrimeSense […]
讚讚
OpenNI 還活著嗎? 有沒有比MS Kinect One還好深度品質的深度攝影機?
讚讚
目前狀況基本上就如同本文所述,是否算活著…請自行判斷。
至於其他深度感應器,Heresy 只能說自己沒玩過。不過實際上,願意花錢的話,有不少更專業的 3D 掃描器可能可以考慮,但是售價通常不低,也不見得符合使用條件。
基本上,Kinect 應該算是在一般人可以負擔的價位裡最好的。
讚讚
heresy老师,那么现在应该放弃使用openNI了吗?我现在在做基于kinect的手势识别的创新训练,是一个本科生,如果使用kinect SDK+openCV,来获取kinect的原始数据(据说sdk1.7后增加了对原始数据的支持),进行研究,可行吗?(似乎kinect SDK主要为了帮助开发应用程序,但我并不是为了开发应用程序,而是利用深度信息进行手势识别的一点研究。)希望能够获得您的建议,谢谢。
讚讚
如果只是要讀取深度圖的話,基本上 OpenNI 還是沒有問題的。
但是如果希望有人幫忙做好人體骨架追蹤的話,在沒有非 Windows 平台的需求下,Kinect for Windows SDK 應該會是比較好的選擇。
讚讚
谢谢老师了,我再根据会用到的方法再选择开发环境。
讚讚
關於PCL就有內建Kinect的範例,不過是base on OpenNI 1.5跟sensor driver。
另外還有openFramework本身也支援kinect,是吃libfreenect的driver。
說真的,自從OpenNI只支援官方driver以後,大概就失去它的發展性了。
讚讚
個人覺得這樣的說法不完全正確。
OpenNI 其實從頭開始,就沒有正式地支援 Kinect 感應器;不要忘了,SensorKinect 實際上也是第三方的套件、而非 OpenNI 直接提供的。
這部分應該是顧慮到微軟方面的硬體使用授權的關係,只是當時由於微軟尚未推出 Windows 版的驅動程式,所以才是透過 PrimeSense 的公版驅動程式做修改的。
而到了 OpenNI 2 的時候,由於 KInect for Windows SDK 已經發布,也有了完整的使用授權,所以才改由透過 Kinect for Windows SDK 做支援。
讚讚