這個頁面是 OpenNI 2.x 版的相關教學文章。由於 OpenNI 2.x 的架構與介面都和 1.x 差異相當大,所以特別把 OpenNI 2.x、以及一些對應的 middleware library 的相關教學,在這邊做個整理,如果有需要的話,可以參考。
OpenNI 和 Kinect 相關文章的總目錄,請參考《OpenNI / Kinect 相關文章目錄》。
首先,這邊是 OpenNI 2 的課程投影片與範例程式介紹;主要是針對 OpenNI 2 和 NiTE 2 做介紹。
下面是 OpenNI 2 的教學文章:
-
2013 OpenNI 簡介
OpenNI 2 簡介OpenNI 2.0 的基本功能、架構介紹,包含了簡單的安裝說明。
-
OpenNI 2 基本程式範例 / OpenNI 2 的錯誤處理
從 VisualStudio 2010 的專案設定說明開始,一個最簡單的 OpenNI 2.0 讀取深度資料的範例程式。
-
OpenNI 2 VideoStream 與 Device 的設定與使用
用 OpenCV 畫出 OpenNI 2 的深度、彩色影像
說明在讀取深度彩色影像時的參數設定方法(包含解析度),另外也簡單介紹把資料轉換成 OpenCV 和 Qt 的格式的方法。
-
OpenNI 2 的座標系統轉換
使用 CoordinateConverter 來進行 OpenNI 2 的彩色、深度、世界座標系統之間的轉換。
-
OpenNI 2 的資料錄製與重播
把資料錄成 ONI 檔案、以及撥放 ONI 檔案的教學。
-
在 OpenNI 2 環境下使用多個 Device
列出 OpenNI 的硬體、並使用特定硬體的教學。
-
OpenNI 2 的 Listener 模式
-
OpenNI 2 對 Kinect 的支援
OpenNI 2 的 Kinect 驅動模組加強版針對 OpenNI 2 對於 Kinect for Xbox 360 / Kinect for Windows 感應器的支援性,做一些說明。另外也有補強版的驅動程式模組,可以用來替換本來的版本。
-
OpenNI 2 的 Driver 模組(概念)
如果要使用其他的感應器的話,可以看看這些非 OpenNI 官方的驅動程式模組:
-
Virtual Device for OpenNI 2
OpenNI 2 用的虛擬裝置,可以用來彌補 OpenNI 2 沒有 OpenNI 1 的 mock node 的缺憾。
-
在 OpenNI2 環境使用 Webcam 來讀取彩色影像:WebCam4OpenNI2
透過 OpenCV 來讀取一般 Webcam 的畫面,來讓 OpenNI 使用;不過,只支援彩色影像。
-
OpenNI 2 用的 Intel Perceptual Computing 驅動程式模組
透過 Intel Perceptual Computing SDK、來讀取 Creative Senz3D 的資料。
另外,文中也有給 SoftKinetic 的感應器用的驅動程式模組。 -
OpenNI2-Kinect2Driver
Kinect for Windows SDK v2 開發者預覽版的驅動程式模組。
接下來,下面則是 Middleware library 的部分。
-
PrimeSense NiTE 2
-
PrimeSense Grab Detector
-
3Gear Systems Finger-Precise Tracking
其他工具介紹:
您好,想請教一下 Heresy板主:
我想要偵測人體目前走到地上9宮格(已繪製好在地上)上的哪一格
目前是想要將從Kinect得到的 座標 投影到地面上 偵測他目前為在哪一格 請問有甚麼方法做到嗎 ?
我有看到板主的教材 其中有提到 可以得到地板資訊 getFloor() ,請問有沒有sample code呢?
我有試著利用 UserFrame 取找找這個函式 但都找不到 。 感謝~
讚讚
getFloor() 應該是 UserTrackerFrameRef 的函式。
這邊有類似的範例:
https://onedrive.live.com/?authkey=%21APILH8MLu%2Dcra3E&id=E0070FB8ECF9015F%2114259&cid=E0070FB8ECF9015F
不過九宮格是虛擬的
不過,個人覺得你該做的是透過影像處理的機制去偵測地上的九宮格,來做位置的判斷。
讚讚
請問一下 如果我有 Kinect V1.8 , openNI2 , VC++2012 跟硬體
我想要做 kinect fusion 我還缺少什麼軟體嗎 ?
拜託您了
讚讚
Kinect Fusion 是 Kinect for Windows SDK 提供個功能,和 OpenNI 無關。
而如果你只是要使用 Kinect Fusion 來建模的話,基本上直接用微軟提供的工具(範例程式)就可以了。
這部分可以參考:
https://kheresy.wordpress.com/2015/05/13/kinect-fusion-part-0/
不過這邊是針對 v2.0 寫的,所以在細節上會有所不同,但是在概念上基本上應該會是相同的。
讚讚
heresy你好
請問heresy有沒使用過""sift"" 這一個演算法呢?
請問如何讓kinect 可以做動態的比對呢?
william
讚讚
抱歉,Heresy 沒用過。
讚讚
你好!
想請問幾個問題:
1.請問openni2現在有其他方法可以讓 深度 與 色彩影像align了嗎?
2.因為有照者H老師介紹的文章去做,tomato作者所提供的kinect.dll,位置、版本都確認過,
但是運行kinect時會錯誤。
或是應該朝哪個方向,才能完成,registration的工作。
讚讚
個人會建議,請在相關的文章回應,這樣會比較好整理。
再來,理論上現行修改過的 Kinect.dll 應該是可以運作的,或者麻煩你再試試看:
https://kheresy.wordpress.com/2013/06/12/enhanced-version-of-kinect-module-for-openni-2/
或者,建議去下載 OpenNI 2.3 的原始碼來自己建置。
讚讚
Heresy大你好,請問有辦法將OpenNI + NiTE porting在embedded system上面嗎,還是說有什麼辦法能夠不使用NiTE的method只用OpenNI的深度圖來抓骨幹呢?
讚讚
基本上,PrimeSense 的 NiTE 只有釋出 binary,所以如果不能用,也沒辦法自己移植。
如果不使用 NiTE 的話,就是要自己找合適的函式庫來用了。
不過很遺憾, Heresy 到目前為止沒找到替代方案。
讚讚
Heresy你好,最近在做一個項目就是準備把Kinect撷取的視設備上面實頻傳輸到iOS時播放,不知道如何實現,關於OpenCV這一塊不太熟悉,望指教.
讚讚
本篇已經有基本的 OpenNI + OpenCV 的整合教學了,如果針對內容有問題,請先確認你的問題是什麼。
讚讚
您好,我想问一下用Niviewer录制视频(.oni)和用kinect studio录制的视频(.xed)有什么区别呢? 貌似.xed这种视频只能使用studio播放,也不能对里面的信息进行提取,是这样么?
讚讚
這兩者都是他們自己定義的格式,彼此之間完全不相容,也只能用他們自己的方法來讀取。
讚讚
那么,用kinect studio录制的视频(.xed) 也可以通过VS来进行编译,读取其内部的数据么?
讚讚
抱歉,Heresy 自己沒有在用 Kinect For Windows SDK,所以不確定
讚讚
哦,好的,谢谢你
讚讚
[…] OpenNI 2.x 教學文章 […]
讚讚
你好,请问我可以用提取的深度数据转化成二值图像,找出手部的轮廓,通过模板匹配,完成手势识别的嘛?
讚讚
OpenNI 或 NiTE 本身都沒提供這樣的功能,不過你可以試著用 OpenCV 這類的函式庫來實作。
讚讚
[…] OpenNI 2.x 教學文章 […]
讚讚