搜尋此網誌

2011年8月3日 星期三

簡述Prime Sense API

Prime Sense API → NITE:
1、Prime Sense 以「OpenNI」為基礎建立「NITE」,再以「NITE」提供3D Gesture及其他應用。
2、NITE提供「hand tracking」、「user detector」、「depth detector」、「3d gestures detector」
2、Prime Sense Camera同於Kinet所使用的Camera,雖同以「OpenNI」為基礎,卻各自擁有不同的SDK。
3、NITE內的演算法以處理「hand tracking」為重點(人體骨架的使用仍需交給OpenNI處理)。
4、不同於Kinet,NITE的使用者需要做特定動作啟動程式(Initial Pose)。
5、NITE的「初始化手勢」有兩種,分別為「Wave」及「Click」。


API要角:
1、Detector及其Callbacks:
各種Detector,如 Wave Detector專門負責偵測使用者是否做了「Wave」,當使用者有需求時,將「WaveDetecotr」加入程式,再以callback取得wave偵測。NITE提供的 Detector包括「Wave」、「Circle」、「Swipe」、「Steady」、「Push」。
2、Session Manager:
相當於「總管」、「掌門」、「開關」的角色,決定偵測及偵測內容之執行。
3、Selectable Slider及其Callbacks:
相當方便的應用元件,包括「SelectableSlider1D」及「SelectableSlider2D」,能對Camera所偵測畫面做區域分割。
4、Flow Router   :
若一次只想偵測一種手勢時,請使用此元件。
5、Broadcaster   :
為「Flow Router」的進階,將想要偵測的手勢加入Broadcaster,即可同時偵測多項手勢。

NITE執行概念:

Step1:宣告「 Session Manager」元件
Step2:宣告欲使用的「Detector」及其「callbacks」
Step3:宣告「Flow Router」或「Broadcast」
Step4:將Detector加入「Flow Router」或「Broadcast」
Step5:將「Flow Router」或「Broadcast」加入「Session Manager」
Step6:宣告一Thread,以無限迴圈的方式執行 Session Manager內容,取得Camera內容並更新偵測內容。

以上,即可運用Prime Sense Camera配合程式碼完成3D操作的動作!