天天看點

Kinect sdk與OpenNi驅動的差別Kinect sdk與OpenNi驅動的差別

Kinect sdk與OpenNi驅動的差別

通過試玩過微軟的Kinect sdk與OPenNi的Kinect之後,下面對兩者作了一些比較。注意:微軟的sdk版本是最初的beta版,與最新的released版本會有所出入。

Kinect sdk優點:

  1. 支援音頻
  2. 支援馬達
  3. 全身追蹤。不需要标定姿勢(投降姿勢);包括頭,手,腳和鎖骨;看起來處理關節閉塞更好些。
  4. 支援多傳感器(多台Kinect)
  5. 簡化安裝(安裝更容易)
  6. 當新的視訊或深度圖有效時,SDK會有可用事件

Kinect sdk缺點:

  1. 非商用(商業需要付費)
  2. 隻能追蹤全身(不包含特定的追蹤模式:例如隻追蹤手)
  3. 深度圖與彩色圖不提供自動對齊
  4. 全身追蹤。關節隻有坐标資料,沒有旋轉資料 (不過在v1.5版本已經解決);隻能追蹤全身,不包含特定的追蹤模式:例如隻追蹤手或上半身;
  5. 和OpenNI/NITE相比,看起來更消耗CPU(沒有采用适當的基準);
  6. 不包含手勢識别系統 ;
  7. 不支援PrimeSense和華碩的WAVI Xtion硬體平台,隻支援Win7(32位和64位);
  8. 不支援Unity3D遊戲引擎;
  9. 不支援資料記錄或回放到硬碟 ;
  10. 不支援紅外線視訊資料流
  11. 沒有此類發生事件,例如當一個使用者被偵測到或使用者丢失等等。

OpenNi優點:

  1. 可以商用(不需要付費)
  2. 包含手部追蹤架構
  3. 包含手勢識别架構
  4. 可以自動對齊深度圖資料到彩色圖資料
  5. 全身追蹤。包含坐标資料和旋轉資料;支援特殊跟蹤模式:例如:隻追蹤手和頭或上半身
  6. 和微軟的sdk相比消耗的CPU更少
  7. 支援Primesense和華碩的WAVI Xtion硬體平台
  8. 支援多傳感器但是需要安裝和枚舉,這一點有點古怪
  9. 支援Windows(包括Vista&XP&WIN7),Linux系統和蘋果作業系統(翻者:也支援Android)
  10. 自帶的代碼全面支援Unity3D遊戲引擎,也支援Ogre
  11. 支援資料記錄到硬碟或從硬碟回放資料
  12. 持紅外資料流
  13. 有此類發生事件,例如:當一個使用者被偵測到或者使用者丢失。(提供回調函數供開發者使用)

OpenNi缺點:

  1. 不支援音頻
  2. 不支援馬達,馬達是微軟的專利,是以primesense公司不想惹微軟。
  3. 全身追蹤;缺乏以下關節:頭,手,腳,和鎖骨;需要一個标定姿勢(投降姿勢)才能開始追蹤骨骼(注意:标定資料是可以存儲和提取的友善重用,不過這在1.5版本已經解決,已經不需要手勢)
  4. 關節閉塞沒有被估算
  5. 支援多感應器但是需要安裝和枚舉,這一點有點古怪。
  6. 需要單獨安裝NITE

編後語:

微軟在骨骼識别和音頻方面還是比較有優勢,而OpenNI似乎更适合做一些帶顔色的點雲的工作,和在非Win7平台來開發商業項目。如果你想開發基于上半身或手識别的項目,可以使用OpenNI和NITE;但如果是全身識别毋庸置疑微軟的SDK是最好的,然而你必須自己編寫你自己的手勢識别代碼。

繼續閱讀