給想開始學 Kinect/OpenNI 程式開發的人 2016

這篇的主題,是要開始學 Kinect、或是 OpenNI 程式開發前,應該要知道的一些事情;基本上,主要的目的,是壤還搞不清楚狀況的人,知道自己可以使用哪個開發環境,還有該開發環境的狀況。

其實之前都寫在各個文章裡面了,不過由於不時還是有人會弄錯、或是不知道某些東西,所以這邊彙整一下。

基本上,要選擇體感程式、深度感應器的開發環境,主要要取決於你用的是哪個感應器;根據所使用的感應器的不同,能使用的開發環境自然也就不同了。

所以接下來,這邊就是以硬體為導向,開始分類。首先,下面是以表格形式的彙整:

感應器
ASUS Xtion 與其他 PrimeSene 架構感應器
第一代 Kinect
第二代 Kinect
OpenNI 1
可使用
可使用
不可使用
OpenNI 2
可使用
可使用
不建議使用
Kinect for Windows v1
不可使用
可使用
不可使用
Kinect for Windows v2
不可使用
不可使用
可使用

閱讀全文

201407、OpenNI 現況

在 2013 年底,Apple 正式收購了 OpenNI 的主導廠商、PrimeSense;而到了 2014 年的四月底、OpenNI 的官方網站也正式關閉,其後又過了一段時間後、連 PrimeSense 的官方網站也都停止運作了。而這也看得出來,所謂的 OpenNI 聯盟,其實只是靠 PrimeSense 玩起來的…

那現在,OpenNI 的狀況是怎樣呢?

首先,之前針對 iPad 推出外掛深度感應器「Structure Sensor」的公司 Occipital(官網),已經決定接手繼續維護 OpenNI 2 的 SDK 了!他也為此建立了一個專頁、提供了 OpenNI 2 相關的資源下載;其網址是:

http://structure.io/openni

閱讀全文

處理 NiTE2 的骨架關節點方向性資訊:Quaternion

之前已經在《NiTE2 的人體骨架追蹤》,提過怎麼在 OpenNI 2 的環境下,使用 NiTE2 這個函式庫,來做人體骨架的追蹤了。當時 Heresy 只有提到怎麼去處理骨架的關節點位置資料,而跳過了他的方向性資訊;而 NiTE 2 採用的 Quaternion 表示法似乎對不少人造成問題,所以雖然 NTE 已經不會再維護、發布了,但是這邊還是稍微解釋一下吧…

首先,「Quaternion」(翻譯似乎是「四元數」?)是一種在數學上、可以用來表示三度空間中的旋轉、或是方向性的表示法;他和 euler angles、或是旋轉矩陣這類比較有名的表示法相比,他有一些在實務上的優點,也因此在不少領域上都有用到。(參考:Quaternions and spatial rotation

而 Heresy 這邊主要是以實用為出發點,不去講 Quaternion 的數學細節;如果要比較學術性、完整的資料,就麻煩自己找書看吧。(其實是因為雖然學過,但是其實也算忘得差不多了 :p)
也希望下面的東西沒有錯了。(有錯也請麻煩指正)

閱讀全文

OpenNI 官網今日起關閉

在三月初的時候,已經有貼過《OpenNI 官網即將關站》這篇新聞了。而今天也就是當時宣告要關站的 4/23 了~所以理論上,再過一陣子,OpenNI 的官網就會關閉、東西也就不能下載了。

閱讀全文

OpenNI 官網即將關站

在去年年底,Apple 正是地收購了 PrimeSense,而這也代表了 OpenNI 這個社群的主要維護廠商已經被納入了 Apple 的勢力之下;基於 Apple 本身的一貫策略,大部分的人都對 PrimeSense 的深度感應器是否能繼續出貨、OpenNI 是否有辦法繼續維持下去,抱持的悲觀的態度。

而前幾天,OpenNI 官網也出現壞消息了…現在在官網首頁,就可以看到下面這張名為「gameover」的公告圖片了:

閱讀全文

Virtual Device for OpenNI 2

這是一個 OpenNI 2 用的虛擬裝置模組,他的功能基本上是提供 OpenNI 2 環境建立一個虛擬裝置的功能,讓程式開發者可以自行去指定這個虛擬裝置的資料;比如說,如果是有其他形式的深度影像、或是其他深度攝影機的資料,都可以透過這個模組,來讓資料可以在 OpenNI 2 的架構下來使用。

而另一方面,這也可以用來模擬類似 OpenN1 時提供的「Mock Node」、也就是可以用來修改取得道的深度資料、讓之後的 middleware(PrimeSense NiTE)可以使用。(參考《修改 User Generator 用來分析的深度影像》)

這個模組是以 OpenSource 的形式,放在 GitHub 上,他的網址是:https://github.com/VIML/VirtualDeviceForOpenNI2
另外,雖然這個模組也有以 tools 的形式 submit 給 OpenNI 了,但是看來似乎都沒有被處理。

閱讀全文

OpenNI2-Kinect2Driver

微軟已經在日前開始發布新版 Kinect、Kinect for Windows v2 的開發者預覽版了~沒弄錯的話,由於 2.0 版的 SDK 和目前的 Kinect for Windows SDK 1.x 並不完全相容,所以並沒有辦法讓新版的 Kinect 直接在 OpenNI 2 的環境下使用。

而如果希望讓新版的 Kinect 可以在 OpenNI 2 的環境下被讀取到的話,現在有有網友有寫出針對 Kinect for Windows v2 Developer Preview 所開發出來的驅動程式模組了~這份檔案在

https://github.com/kaorun55/OpenNI2-Kinect2Driver

理論上,使用這個版本的驅動程式模組,就可以在 OpenNI 2 的環境下來讀取 Kinect for Windows v2 感應器的資料了~不過,他也是不能對應 PrimeSense NiTE 的。

閱讀全文

OpenNI 2 用的 Intel Perceptual Computing 驅動程式模組

之前有介紹過了,Intel 有推出所謂的「Perceptual Computing SDK」,來搭配 Creative Senz3D 這款基於 SoftKinetic 公司的深度感應器,讓大家可以來開發體感程式。而現在,有人用 Intel Perceptual Computing SDK、寫出讓 Creative Senz3D 可以在 OpenNI 2 環境下使用的驅動程式模組了!

該開發者的名字是 vbystricky,他的這份模組,有放在自己的 GitHub 上,連結是:

https://github.com/vbystricky/OpenNI2/tree/PerCDevice/Source/Drivers/PerCDevice

閱讀全文

Apple 收購 PrimeSense

如果有再注意體感操作、或是深度攝影機這一塊領域的話,應該會注意到最近的一個大新聞,那就是 Apple 已經證實、他們以 3.6 億美元左右的價錢、把製作過第一代 Kinect 的深度感應器廠商 PrimeSense(官網) 買下來了!

主要的消息來源應該是 All Things D 的《Apple Confirms Acquisition of 3-D Sensor Startup PrimeSense》一文,而現在也有不少中文的相關消息了~有興趣的可以參考:

閱讀全文

OpenNI 2.2.0.33 / NiTE 2.2.0.11

OpenNI 在上個月底,把 OpenNI 2 的版本升級到了 2.2.0.32 Beta,算是一個小更新。而這兩天,OpenNI 又再度放出了更新,不過很遺憾,這次的更新還是沒有更新到開發支線上的 OpenNI 2.3、而是一個小版號的修改、升級後是變成 2.2.0.33 Beta、只差了最後一個數字。

檔案一樣可以在 OpenNI 官網下載:http://www.openni.org/openni-sdk/

至於這次從 2.2.0.32 升級到 2.2.0.33 改了什麼?基本上…感覺應該是完全沒改啊…就算是去翻 GitHub 上的更新紀錄(頁面),也只有看到修改「notice」這個文件的紀錄、以及修改版本編號的紀錄而已;感覺在程式上,應該是沒有去動吧?所以要不要更新,就自己決定吧…更新的意義應該不是很大就是了。

閱讀全文