ASUS Xtion 2 的使用


啟動狀態上一篇《ASUS Xtion 2 開箱》基本上是大致介紹了 ASUS Xtion 2 的硬體。而這一篇,則來講一下它接上電腦使用的狀況吧~

華碩第一代的 Xtion 基本上是採用和第一代 Kinect 相同的 PrimeSense 方案;不過由於 PrimeSense 已經被 Apple 收購了,所以華碩的 Xtion 2 也不可能再使用這個架構了…

華碩官方並沒有提供 Xtion 2 採用的方案是哪一家的,不過在和華碩的人員確認過後,是得知他採用的是 ToF(Time of flight)技術的深度感應器,號稱精確率是 3%(還是應該是誤差率?)。

而在將 Xtion 2 接上 Windows 10 的電腦後,並不需要特別安裝驅動程式,他會被視為標準的影像裝置;在裝置管理員裡會出現下面的硬體:

xtion2device

  • ASUS Xtion 2 RGB
  • ASUS Xtion Depth
  • Realtek USB Audio
  • Microphone (Realtek USB Audio)

右圖就是在裝置管理員中,以「依連線」的方式看到的裝置列表。

也由於 Xtion 2 在系統中會被視為標準的影像裝置,所以這也代表了他的資料是可以透過一般可以讀取 webcam 畫面的程式來做取得的~

不過,要使用 Xtion 2 的話,USB 控制器似乎還是得注意一下。像是 Heresy 老電腦上的 ASMedia 的 USB 3.0 控制器雖然可以正確偵測到硬體,但是在使用上卻有一些小問題,導致深度影像可以取得,但是卻沒辦法顯示彩色影像…


OpenNI

根據華碩的說法,Xtion 2 是使用 OpenNI 2.2 做為開發環境。

但是由於官方版的 OpenNI 2 預設僅支援 PrimeSene 系列的深度感應器(含第一代 Kinect),所以如果本來已經有安裝過 OpenNI 2 的人,在執行 NiViewer 的時候,是偵測不到 Xtion 2 的。

xtion2這時候,就需要把本來安裝的 OpenNI 移除,改裝華碩光碟中的版本了。

ASUS Xtion 2 的光碟片的啟動程式還滿花俏的,不過實際上內容不算多,最主要的也僅有「SDK」底下的特製版 OpenNI 2.2 而已。

他有提供 Windows 和 Linux 的 32/64 位元版本,以 Windows 64 位元板來說,他的檔名是「OpenNI-x64-2.2withXtion2.msi」,完整的 OpenNI 版本編號是 2.2.0.33,也算是 OpenNI 官方推出的最後一個版本了。

而和官方版的 OpenNI 2 的差別,在於他在安裝資料夾中的「\Tools\OpenNI2\Drivers」路徑下,多了 Xtion 2 的驅動程式模組的檔案:RvcLib.dll 和 SenDuck.dll

其中,RvcLib.dll 是 Realtek 的程式,個人猜測應該是用來和 Xtion 2 做額外的溝通用的。他的詳細資料裡面是寫「Realtek semiconductor」,如果拿掉的話,執行 NiViewer 時會出現「calibrated data not found」的錯誤;此時雖然 NiViewer 還是可以跑,但是深度影像和彩色影像的對位會出問題。

SenDuck.dll 才是主要讓 OpenNI 2 可以讀取彩色影像和深度影像的驅動程式模組,在他的詳細資料中名稱是「Xtion2 Driver for OpenNI 2.2」,版本編號是 1.1.1.3。

基本上,只要安裝過一次華碩 Xtion 2 的特製版 OpenNI 2 後,就可以把這兩個檔案複製出來,之後只要把這兩個檔案放到對應的驅動程式路徑(\OpenNI2\Drivers)下,官方版的 OpenNI 2 也就可以存取 Xtion 2 了
而實際上,個人覺得華碩如果肯直接把這兩個 dll 檔放出來的話,其實對於既有的 OpenNI 開發者來說,應該會是更方便的事啊…

下圖就是 Xtion 2 在 NiViewer 裡面的畫面:

niviewer

至於深度影像上的比較,這邊就先不寫了。有興趣可以自行和《Intel RealSense F200 感應器簡單使用紀錄》和《Kinect for Xbox One @ Windows 簡單測試》這兩篇文章的圖片做比較。

不過,這邊也碰到一個問題了…華碩號稱 Xtion 2 的彩色影像最高解析度是 2592 x 1944,但是在 OpenNI 的環境中,不管是深度影像、彩色影像,還是紅外線影像,所回報支援的解析度,都只有 640×480 和 320×240 兩種

所以看來如果要使用更高解析度的彩色影像的話…似乎就不能透過 OpenNI 了
華碩為什麼會這樣設計呢?Heresy 個人猜測可能是為了深度影像和彩色影像的對位吧…不過這也是純粹個人臆測了。

而至於用來分析人體骨架的 PrimeSense NiTE 呢?恩,不意外地,不能用。
這點,主要應該還是卡在 PrimeSense 的 NiTE 有限制一定要使用自家的感應器才能用的授權協議上了…否則,老實說,要繞過他的限制其實是不難的。

但是實務上,也由於這樣的限制,Xtion 2 在搭配 OpenNI 2 使用時,是沒辦法使用 NiTE 2 進行追蹤人體骨架的
而這點,除非有其他支援 OpenNI 的人體骨架追蹤函式庫出現,否則大概是沒有比較好的解法了。

參考:OpenNI 2 的 Driver 模組(概念)


一般軟體

xtion2-rgb右圖就是 Heresy 試著用「Debut Video Capture Software」這套軟體來開啟 Xtion 2 的彩色影像攝影機時,可以使用的解析度設定;可以看到,最高解析度是 2592 x 1944,不過此時會只剩 15 fps。

而深度攝影機也可以在這套軟體中偵測到,他支援的解析度就比較少、也比較詭異了。下圖就是他偵測到的可用解析度:

Xtion2-depth 

理論上 Xtion 2 的深度攝影機應該最高解析度是 640 x480 30fps,不過在這邊僅能看到 640 x 240 30fps 就是最高解析度的選項了;而在選取之後,深度感應器的紅外線 LED 燈並不會亮起、程式抓到的畫面也只是奇怪的綠色條紋畫面:

xtion2-depth-image

在 Heresy 來看,使用其他軟體來讀取深度攝影機的話,應該是不太可行的方案。

畫面很奇怪的問題,基本上應該是由於對於影像單位像素的定義不同的關係,理論上或許還有可能靠自行計算來產生 640×480 的深度影像格式(話說,Heresy 完全不知道該怎麼解析他就是了…);但是紅外線 LED 沒有亮起,應該會讓深度值沒有意義,這點應該就是無解的了。


大致上就是這樣了。

基本上,個人始終還是比較好奇,華碩為什麼會現在又針對 OpenNI 推出新的感應器?不過,基本上現在大概就是當作又有一個深度影像品質比較好的感應器了。

而個人覺得比較可惜的是:

廣告

關於 Heresy
https://kheresy.wordpress.com

9 Responses to ASUS Xtion 2 的使用

  1. cec says:

    Heresy 先生你好,我最近也購入 Xtion 2,執行 NiViewer.exe 時沒問題(有看到深度和RGB畫面),

    但是用visual studio 2013 和 OpenNI 2 跑範例程式時,發現偵測不到Xtion 2,程式碼如下

    輸入:

    Array aDeviceList;

    OpenNI::enumerateDevices(&aDeviceList);

    cout << "There are " << aDeviceList.getSize() << " devices on this system." << endl;

    輸出:

    There are 0 devices on this system.

    想請問一下有什麼方法可以解決? 謝謝!

    按讚數

    • Heresy says:

      感覺上應該是驅動程式模組的問題?
      其實內容也有提到了,Xtion 2 的驅動程式模組是不一樣的,請確認執行檔對應的 \OpenNI2\Drivers 資料夾下有 RvcLib.dll 和 SenDuck.dll 這兩個檔案。

      按讚數

      • cec says:

        可以了! 謝謝你的幫忙!

        按讚數

    • 宮台盲 says:

      同样的问题发生错误。
      我想告诉你如何解决它。

      按讚數

      • Heresy says:

        Please Install the OpenNI with the CD provided by Xtion 2.
        Copy RvcLib.dll and SenDuck.dll from \OpenNI2\Drivers to your application driver directory.

        按讚數

  2. BrightGuo says:

    这么看,xtion2有点坑啊,╮( ̄▽ ̄")╭

    按讚數

    • Heresy says:

      在時間點和功能性上,都算有點尷尬的產品…

      按讚數

      • BrightGuo says:

        不知道最近二年还有没有其他的值得把玩体感设备。

        按讚數

        • Heresy says:

          如果以全身骨架追蹤為目的的話,似乎沒看到什麼完整的方案。
          Intel RealSense 貌似也沒什麼進一步發展。

          按讚數

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: