Kinect for Xbox One @ Windows 簡單測試


之前在《Kinect for Xbox One @ Windows 開箱文》已經簡單介紹過微軟第二代的 Kinect 感應器、並且開箱了~不過由於台灣無法直接買到 Windows 的版本,所以 Heresy 這邊是購買給 Xbox One 用的,然後再加買給 Windows 用的轉接線。

不過由於 Heresy 是拿到東西後,才發現第二代的 Kinect 很挑  USB 3.0 的控制器;Heresy 自己在用的開發機因為是採用 ASMedia 的 USB 3.0 控制器,所以根本不能用…這幾天則是終於弄到了一張 Renesas(NEC)晶片的 USB 3.0 擴充卡,才終於可以讓他上線了~

所以這一篇,則是來看一些簡單的初步測試結果吧~(還沒有程式開發相關的東西)

首先,下面是 Heresy 手邊有的深度感應器的疊疊樂!由上而下,依序是 ASUS Xtion Pro LiveKinect for Xbox 360(以下稱 Kinect v1)、以及這次的主角 Kinect for Xbox One(以下稱 Kinect v2)。

 

可以看到,基本上 ASUS Xtion 系列的感應器,由於在功能上算是比較少的,所以體積也最小,同時也不用接電。

而 Kinect v1 和 Kinect v2 的大小都相當大,而且還需要額外的電源;兩者比較起來,Kinect v1 雖然比較寬,但這應該是外型的關係,實際上體積應該是相差無幾的。但是如果考慮到連接線的話,Kinect v2 就徹底輸了…因為他不像 Kinect v1 一樣,靠一條轉接線就可以搞定,而還需要集線器和變壓器,這也讓他的可攜性大打折扣。

如果要比較這幾款感應器的規格的話,大概會如下:

 
Kinect v2
Kinect v1
Xtion Pro Live
深度影像
512 x 484 @30 Hz
FOV: 70 x 60
640 x 480 @30FPS
FOV: 57 x 43
640×480 @30FPS
FOV: 58 x 45
彩色影像
1920 x 1080 @30hz
(低光源模式為 15hz)
1280×960 @12FPS
640×480 @30FPS
1280×1024 @30FPS
紅外線影像
512 x 484 @30 Hz
640×640 @30FPS
1280×1024 @30FPS

上面的資訊,Kinect v2 的部分主要是參考微軟的《Kinect for Windows features》,而 Kinect v1 和 Xtion Pro Live 的部分,則是透過 OpenNI 2 來取得的(參考)。

其中,Kinect v1 和 Xtion Pro Live 其實都是採用 PrimeSense 的 PS1080SoC 這個使用 Light Coding 的方案,所以其實規格算是大同小異,只是微軟又根據自己的需求,做了一點修改而已。而在這個方案裡,他的紅外線影像實際上是透過彩色影像的感應器來取得的,兩者並不能同時使用。

而 Kinect v2 則不再使用 PrimeSense 的技術,而是改採用 ToF(Time of Flight)的技術來取得深度,所以規格和 Kinect v1 有相當大的差異。

和 PS1080 相比,Kinect v2 的深度影像的解析度從 640 x 480 變成了 512 x 484,其實算是縮小的~但是雖然解析度降低了,但是其實它的深度影像的品質應該算是變好的!另外,FOV(Field of View、可視區域角度)也大幅地增加,所以可以再更近的距離、就抓到整個人體了。

彩色影像的攝影機也由 1280 x 1024 提升到 FullHD、也就是 1920 x 1080 的水準,不但解析度提高了,看起來的畫質也變好了。

在紅外線的部分,Kinect v2 的紅外線影像來源應該是深度感應器(解析度相同),而且可以同時使用~所以如果使用 Kinect v2 的話,要同時開啟三個感應器,基本上是沒有問題的~

下面,就是三者的深度影像與彩色影像的畫質比較(可以點開看大圖):

深度影像
彩色影像
Kinect v2
Kinect v1
Xtion

影像擷取的部分,Xtion Pro Live 是使用 OpenNI 2.2 的 NiViewer、Kinect v1 是使用 Kinect for Windows SDK 1.8 的範例程式,Kinect v2 則是使用 Kinect for Windows SDK 2.0 的範例程式。(Kinect for Windows SDK 1.x 僅能用在第一代感應器,Kinect for Windows SDK 2.0 僅能用在第二代感應器,兩者可同時安裝、使用。)

三台感應器基本上是放在接近的位置(上面疊疊樂的方法)、同一狀態下來做畫面擷取的。可以看到,Kinect v2 的深度影由於 FOV 較大,所以能看到的東西比較多,而他的解析度雖然略為降低,但是畫質卻比較好、邊緣破碎的程度和使用 PS1080 的感應器比起來,算是降低了不少;這應該也就是微軟所說的「提高三倍精確度」(參考)了~

不過,雖然畫質的確較好了,但是在畫面中依然可以看到深度點閃爍的問題,不過相對起來,應該是比較不嚴重了;而針對特定顏色/材質,依舊有可能會有較差的感應效果,這點應該是紅外線光學是深度感應器無可避免的問題了。但是在 Heresy 這邊之前用 PS1080 的感應器一直抓不到日光燈燈罩,在 Kinect v2 則是有的時候可以抓到了!雖然還是不穩定,但是效果已經好不少了~

至於彩色影像的部分,由於感應器和鏡頭的升級(至少鏡頭變大了),所以畫質也有相當地提升,和之前比起來,應該算是感覺的到的差別了~

紅外線影像的話,Kinect v2 的畫面可以參考右圖。這邊雖然沒有貼出比較,但是或許是由於 Kinect v2 不是採用 Light Coding 這種紅外線散斑,所以她的紅外線影像相當地乾淨、不像 PS1080 的一樣會拍到一堆雜點,而畫質也滿漂亮的,感覺就像看紀錄片的夜視畫面一樣。


而在後續的分析部分,Kinect v2 的人體骨架追蹤人數由兩人增加到了六個人,而關節點的數量也由 20 個增加為 25 個;其中最重要的,應該就是現在還可以偵測手部的開闔狀況了!

下面左圖,就是官方的範例程式的畫面,右圖則是 Kinect Studio 的畫面。可以看到,他在手掌部分多了一些關節點,而也用顏色來標示出目前手掌的狀態。

 

由於現在在某種程度上可以偵測到手是否有握起來(捏住)了(感覺類似 PrimeSense 的 Grab Detector),所以在互動的設計上,應該會更好實作了。

而簡單地玩了一下後,感覺上他的骨架的穩定性、正確性應該都算是不錯的~但是在捏住的動作上,感覺還是有些模糊的空間,沒有那麼精準就是了。

另外,在人臉的追蹤與辨識這塊,這一代的 Kinect 針對人臉,還可以做出進一步的資訊分析,包括了基本的情緒、兩眼與嘴巴的開闔、臉的方向性等等(這些應該是基於彩色攝影機的畫面?)

這些資訊如果可以善加利用的話,應該也是可以玩出一些東西。(比如說,使用者是不是已經用到火大了? XD)

但是個人在測試的時候,是覺得她的人臉追蹤的穩定性不如骨架高,常常會有沒找到人臉的狀況;而部分資訊判讀的準確性,看來也不是相當精確。這點就不確定是測試環境的問題還是怎樣了。

而右圖則是微軟提供的「HD Face」的範例;他基本上是把抓到的表情,套到一個虛擬的人臉上,感覺還算滿有趣的。


至於內部結構的部分,有興趣的話,可以參考 ifixit 的《Xbox One Kinect Teardown 》這篇潔體紀錄;下圖就是取自於該文章的內部結構圖(這個感應器應該是上下顛倒的):

Heresy 自己也有使用 Xtion 的紅外線影像、在不破壞機體的情況下,試著拍裡面的狀況;其結果如下:

 

基本上,可以看到最感應器最右側的是彩色攝影機,而中間則有很名前的三個白色方塊、旁邊還有一個圓形;沒弄錯的話,這一組就是 Kinect v2 的深度感應器模組了~

不過個人比較好奇的,是在左邊 Xbox 的 logo 旁邊,還可以看到一個白色的圓;而在 ifixit 的拆解圖裡面,也可以看到這邊的確有留一個洞、後面看來有一個 LED 燈(應該是吧?)。但是這個燈到底是用來幹嘛的?Heresy 就不曉得了,因為就算 Heresy 把這個區域遮住,Kinect 的所有功能看來都還是正常運作啊…如果有人知道他是幹嘛的話,也麻煩講一下吧~


整體來說,Kinect v2 的感應器,姑且不論軟體方面的改進,在硬體上、原始資料的品質,也算是提升了不少~如果是想在 Windows 上玩體感互動,應該算是個升級版的選擇。

而個人覺得比較可惜的,是微軟選擇針對新的感應器發展新的 SDK,導致新的 SDK 不能用在舊的感應器上,這也讓舊有的程式如果要用在新的感應器上,就得重新修改過,而新的 SDK 的功能也無法在舊的感應器上使用…個人實在不太喜歡這種完全不相容的做法啊…

總之,之後應該會試著開始寫 Kinect for Windows v2 的程式吧~

對「Kinect for Xbox One @ Windows 簡單測試」的想法

  1. 請問:
    我目前電腦安裝win7 64位元
    若我要使用kinect v2,則必須要安裝Kinect for Windows SDK 2.0嗎
    但這樣會遇到相容性問題吧?因為SDK2.0規定至少要win8以上
    但因為我目前這台電腦上有很多點雲的環境都設定好了
    該怎麼做呢?我可以用SDK 1.8來操作kinect v2嗎
    謝謝

  2. 你好,我最近開始用kinect v2開放,可是買了伽利略的usb 3.0擴充卡(NEC Renesas 720202),Kinect 一樣報不相容,方便知道您的電腦規格及擴充卡的型號嗎?
    謝謝

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料