ASUS Xtion 2 的人體骨架追蹤:支援 NiTE 和 Nuitrack

這個也算是讓 Heresy 有點訝異的新消息了…

華碩在 OpenNI 已經半殘的狀況下,去年依舊推出了 ASUS Xtion 2 這款支援 OpenNI 的深度感應器;在當時,應該也使因為礙於 NiTE 授權的問題(僅能用於 PrimeSense 的硬體),所以只能存取深度與彩色影像,並沒有辦法支援體感的人體骨架追蹤。

在 Heresy 來看,除非 ASUS 能找到其他人體骨架的追蹤軟體方案,否則這個問題應該是無解的。而沒想到,前幾天 ASUS Xtion 的 Facebook 專頁,就多了一篇公告(連結),告訴大家他不但支援 NiTE、也找到另一套 middleware、Nuitrack(官網,這套是要付費的)了!

閱讀更多»

給想開始學 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

閱讀更多»

Kinect 錄製的 ONI 檔無法在 NiTE 2.2 使用的問題

恩…雖然由於 PrimeSense 被 Apple 收購的關係,OpenNI 官網已經關閉、而 PrimeSense 的 NiTE 也不再維護了,不過包括 Heresy 自己在內,還是有一些人有在用 OpenNI,所以這邊還是寫一下吧。

這邊主要的問題,是在最後的 OpenNI 2.2 和 NiTE 2.2 的環境下,在把 Kinect 的資料錄下來成 ONI 檔之後,錄下來的檔案會無法再給 NiTE 使用。(在建立 UserTracker 的時候,會出現「memory access violation error」的錯誤)

而 Heresy 雖然滿早就知道這個問題了,但是由於自己都沒碰到、也無法重現,所以也就放著沒管了。不過最近剛好有人向 Heresy 詢問這個問題,所以就認真地和他詢問了一些資訊,來試著釐清、解決了。

閱讀更多»

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

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

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

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

閱讀更多»

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 了,但是看來似乎都沒有被處理。

閱讀更多»

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」這個文件的紀錄、以及修改版本編號的紀錄而已;感覺在程式上,應該是沒有去動吧?所以要不要更新,就自己決定吧…更新的意義應該不是很大就是了。

閱讀更多»

使用 PrimeSense NiTE 和 GrabDetector 的簡易版滑鼠模擬器

在 OpenNI 1 的時候,Heresy 曾經在《OpenNI 的手部追蹤、外加簡單的滑鼠模擬》一文章,介紹過 OpenNI 1.x 的 HandsGenerator,並用他來做簡單的滑鼠模擬功能;而在當時,是直接使用 OpenNI 定義的「click」手勢,來當作左鍵,不過效果並不是很好…

而這一篇呢,Heresy 則是試著在 OpenNI 2 的環境下,使用 PrimeSense NiTE 2 的 HandTracker 來追蹤手的位置,並用 PrimeSense 另一套 middleware Grab Detector,來透過「grab」這個手勢,作為滑鼠左鍵的觸發條件。完整的範例程式,已經放到 Heresy 的 OpenNI 2 範例程式集裡面了,有興趣的話可以到 http://sdrv.ms/14VWxlb 下載。

閱讀更多»

201308 OpenNI 近期相關資訊整理

這一篇,算是稍微整理一下近期的 OpenNI 2 相關資訊的更新。


部落格內部文章

首先,是 Heresy 自己的網站的部分。之前雖然有弄一篇《OpenNI / Kinect 相關文章目錄》來做為總目錄,不過其實有一段時間沒更新了,新的文章也沒有加進去…前幾天,終於花了一點時間,又整理了一下;這次,除了把相關資訊補上之外,同時也把 OpenNI 2、以及對應的 middleware 的文章,獨立成一篇《OpenNI 2.x 教學文章》了~

另外,《OpenNI 2 & NiTE 2 課程投影片與範例》這邊所提供的投影片以及範例程式,也有再根據 OpenNI 2.2 的改變,做了一些對應的修改;有興趣的話可以參考看看。

閱讀更多»

NiTE 2 官方 Programmer Tutorial Guide

OpenNI 2 和 NiTE 2 已經推出好一段時間了,在這段期間裡面,雖然 OpenNI 2 算是有滿完整的教學、文件等資源,但是比較可惜的,是 NiTE 2 基本上只有 API 文件C:\Program Files\PrimeSense\NiTE2\Documentation、以及範例程式可以參考,對於很多初學者來說,應該會滿困擾的。

不過實際上,由於 NiTE 2 的程式使用邏輯和概念,和 OpenNI 2 是相同的,所以其實稍微看一下範例程式和  API Reference,要使用應該還是沒問題的!

而現在,PrimeSense 終於在官方網站上,放出了 NiTE 2 的教學文件了~他的網頁是:

http://www.primesense.com/solutions/nite-middleware/

最下方有個《NiTE™ 2 API Programmer Tutorial Guide》的 PDF 檔案連結,就是他提供的教學文件了。有興趣的人,可以抓來看看。

閱讀更多»