2-1 Kinect 規格及介紹
Kinect 為 Microsoft 推出的體感裝置[19],Kinect 一次可擷取三種 資訊,分別是彩色影像、3D 深度影像、以及聲音訊號。圖 2-1 為 Kinect 深度感應器的實機圖,Kinect 機身上有 3 顆鏡頭,中間的鏡頭是一般 常見的 RGB 彩色攝影機,左右兩邊鏡頭則分別為紅外線發射器和紅外 線 CMOS 攝影機所構成的 3D 深度感應器[20],最主要就是利用 3D 深 度資訊達到互動體感的需求[21]。
圖 2-1 Kinect 體感裝置
中間的視訊鏡頭則是單純應用在視訊通話,或是擴增實境遊戲用來 表達使用者身分;此外 Kinect 還具備了追焦技術,底座馬達可以跟著 對焦物體移動而隨著轉動。
- 6 -
- 7 -
- 8 -
透過感應器讀取編碼的光線,而後運算進行解碼後,形成一張 3D 深度 的影像。此技術用來進行編碼的關鍵在於 Laser Speckle(雷射光斑),當 雷射光照射到粗糙物體,或是穿透毛玻璃後,會形成隨機的反射斑點,
- 9 -
第三種立體成像技術則是投射結構光(Structure Lighting)[30]-[34],將 已知的圖案投射到物體上,由於物體的立體表面曲面的變化,會使投
- 10 -
依然在此定義之下,由此可知其微細的程度。
根據產生光斑效應的條件可以將光斑分成兩大類:雷射光是具有高 度時間性及空間相干性(Temporal and Spatial)的光源,物體表面也必 須具有某種程度的粗糙度,其表面微觀的高度變化需與照射光源的波 所產生的斑點稱為主體斑點(Subjective Speckle)。
由於粗糙物體表面的每一點都會散射出一些雷射光至觀測點,因此
- 11 -
投射至測量空間中的物體表面上而產生光斑,圖 2.2 為 Kinect 深度感 應器發出的紅外線雷射,經由 diffuser 產生許多小圓點的雷射光班,並 將其投射在箱子以及書本之上。
圖 2-2 Kinect 產生的光斑投射至物體上
為什麼利用雷射光斑就能夠判斷深度呢,我們使用圖2.3說明,此為 一光斑投射系統,點Op為光源,距離參考平面lp,點Oc為距離參考平 面lc的接收器,基本上,設定光束會射向參考平面的A點,然而在放置 物體於參考平面後,光束會射向點C,光斑本應該處於A點,在放置物 體之後,接收器所觀測到的光斑將位於B點,我們稱此為同平面移動的 位移量(in-plan displacement)為∆y。
- 12 -
- 13 -
在光斑投射成像術當中,同平面的位移量 v 可以利用 2D digital image correlation 技術[38]-[42]量測出來,因此實際的物理距離∆𝑦=Mv,而 M 指的是影像系統的放大倍率,可以將算式簡化成:
h(y) = kv (3) 其中的 k=M/ (𝑑𝑐
𝑙𝑐 +𝑑𝑝
𝑙𝑝),所以此時實際的物體物理高度 h 可以得到,
進而可描繪出物體的立體結構,而其中量測 h 的準確度極度依靠參數 k 的準確性,同樣的,同平面的位移量 v 也是需要高度準確性的參數,
因此事先知道測量物件的高度對於準確計算參數 k 是很重要的。
所謂的 DIC 是利用以下積分算出平面位移量,如下列算式表示:
∫ 𝑓(𝛿) ∙ 𝑔(𝛿 − 𝑥) ∙ 𝑑𝛿−∞∞ (4) 我們利用一個簡單的例子說明,假設有兩組一維矩陣,分別為
f=[0,0,0,1,0,0,0,0]以及 g=[1,2,3,2,1],將 f 與 g 積分,兩矩陣對齊之後,
缺項須補零,計算各項乘積之和,如圖 2-4 所示,最終兩個一維矩陣經 由 correlation 運算得到[0,0,0,1,2,3,2,1,0,0,0,0] 。
圖 2-4 Correlation 的機制
- 14 -
上述的積分運算僅止於數學上的運算,我們將利用圖 2-5 進行更詳細 的介紹並說明其物理意義。如下圖所示,兩組多維矩陣 x 與 z,將其中 元素中的 0 視為暗點,元素中的 1 視為亮點,可以發現矩陣 z 是矩陣 x 向右移動兩單位之後的情況,在投射光斑成像術中,我們稱 z 矩陣為 扭曲影像(Distorted image);之後在扭曲影像中找出特徵畫面,稱之為 y 矩陣,並將矩陣 x 與矩陣 y 進行 correlation 運算,得到一個 7x6 的 ans 矩陣;扣除掉之前補零的新增行列,可以得知在矩陣 ans 一列二行的元 素 3 是矩陣 x 與矩陣 y 的最高相關,而特徵矩陣 y 位於原矩陣一列四 行的位置,因此即可得知特徵矩陣 y 於原矩陣 x 向右移動了兩個單位,
也就是投射光斑成像術所提到的平面位移量。利用 DIC 方法可以計算 出平面位移量,而藉由平面位移量可以推算出物體的厚度,並進一步 描繪出物體整體輪廓。
圖 2-5 Correlation 運算的物理意義
- 15 -
在 Kinect 深度感應器中,必須先預先植入相隔之固定距離的光斑圖,
當作參考圖像,之後與感應器捕捉到的圖像做比對,形成 3D 立體圖像,
在固定時間內再度捕捉新圖像,持續與參考圖像比對,才能持續計算 出 3D 立體圖像,圖 2-6 為 speckle 成像術的流程圖
圖 2-6 光斑成像術的流程圖
我們實際去測量 Kinect 深度感應器所發出的光斑,圖 2-7 為實驗架 構俯視圖,利用文獻中的實驗架構,我們直接將 Kinect 啟動,利用紅 外線攝影機觀察 Kinect 所發出的紅外線光斑圖,並且固定好參考平面,
藉由本實驗架構,了解光斑成像術的原理及實作,並驗證其 Kinect 深 度感應器量測物體深度的精確度,實際測量 Kinect 所發射紅外線所形
- 16 -
成的光斑。
圖 2-7 實驗架構俯視圖
上圖中 S 為接收器與光源的距離,Z 為光源與接收器平面跟參考平 面的距離,Δz 為紙箱厚度,Δx 為同平面位移量,利用簡單的幾何圖形 相似運算,如圖 2-8 所示。
圖 2-8 幾何圖形相似運算之示意圖
圖 2-9 是直接正對參考平面的光斑圖,圖 2-10 與圖 2-11 分別是放置 一個九公分和二十二公分厚的紙箱,可以明顯看到圖二左下角長方形 方塊即為紙箱,實際測量時兩次分別放上九公分以及二十二公分的紙
- 17 -
箱,驗證數據如表 2-2:
圖 2-9 參考平面之光斑圖
圖 2-10 放上九公分紙箱的光斑圖
- 18 -
圖 2-11 放上二十二公分紙箱的光斑圖
DIC 運算過後得到的同平面位移量,經由簡單的幾何相似形運算,
分別與實際物體比較得到下表格:
表 2-2 驗證深度之實驗數據
由以上表格可以得知,Kinect 的深度資料運算是可以非常準確的,
誤差值皆低於 5.5%以下,顯示此深度感應器穩定且精確,適合運用在 姿勢辨識領域。
S(cm) Z(cm)
實際 Δz(cm)
經由 DIC ΔZ(cm)
誤差值 (%)
第一組 32 330 9 9.5 5.5
第二組 47 240 22 22.9787 4.4
- 19 -