微軟Kinect拆光光 運作原理簡單分析
|
2010/08/10 |
為了讓旗下Xbox 360更有「動感」,微軟先前宣佈了「誕生計畫 (Project Natal)」並於今年E3展上正式發表旗下動態感應攝影機「Kinect」。而近期微軟也邀請T3網站實際深入了解:「究竟Kinect是如何實際運作的?」。 |
為了讓旗下Xbox 360更有「動感」,微軟先前宣佈了「誕生計畫 (Project Natal)」並於今年E3展上正式發表旗下動態感應攝影機「Kinect」。而近期微軟也邀請T3網站實際深入了解:「究竟Kinect是如何實際運作的?」。 此次並不是由T3網站主導微軟Kinect拆光光活動,而是微軟邀請T3網站實際深入了解Kinect的實際運作方式。基本上,Kinect的運作區分成三個部份,分別是:動態追蹤、聲音解析以及運作。
動態追蹤
首先是動態追蹤的部份,Kinect透過鏡頭即時擷取使用者的動作,之後並會接著解析相對應的指令給予主機。透過內建的紅外線VGA鏡頭發出主動式雷射 (微軟表示:此類光線對於人體無害),在Kinect可掃描的範圍內藉由雷射反射過程判斷使用者位置,同時針對所有物件進行「景深 (Depth Field)」的標示組成,以不同顏色分別標示不同物件與Kinect之間的距離,例如距離近的使用者可能標示為紅色或綠色,距離比較遠的背景物件則標示為灰色。
而當標示完成後,Kinect會再針對使用者身體部份與背景物件作區隔,透過圖像識別系統正確判斷使用者的體態,其中包含使用者可能穿著較為寬鬆的衣服,或者會有長髮飄逸的情形,這些差異均能夠被正確解析並識別為「正常人體姿態」。
而當使用者的身體部位識別完畢後,Kinect會將所擷取到的資料整理成一組骨架圖,藉此用於對應各式的遊戲軟體應用。而為了避免遊玩過程中可能發生使用者動態無法完整被偵測到 (例如使用者跑出Kinect鏡頭拍攝範圍,或被其他物件遮蔽的情況),Kinect本身內建200多組常見人體姿勢,可用於配合「組成」使用者可能呈現的姿勢。
不過Kinect無法進一步解析到使用者手指的細微動作,而僅能針對大致的肢體動作判別。
Kinect以每秒30次的速率識別使用者動態,在正式使用Kinect之前必須先進行外觀「登錄」,之後的遊玩便會自動識別。但如果同一位使用者外觀有大幅度改變 (例如變太胖?),這時候可能就得再重新進行登錄。
聲音解析
Kinect在聲音解析上會有較大的難度,主要是如何有效過濾背景聲音,準確地判別使用者所發出的聲音 (以及語言部份),並不像影像方面可藉由光線折射判定各物件距離,以及透過影像識別肢體動作。因此,微軟開發人員特別透過250多組家庭環境實驗,使用16組麥克風在不同設定之下進行錄音測試,並找出最好的麥克風位置設定。
在Kinect本體下緣可以發現設有4組開口向下的麥克風,左邊設有一個,而右邊則有三個,同時也是為了對應麥克風收音效果,因此Kinect整體設計會做得較寬。
藉由這些麥克風收集所有環境聲音,再透過Kinect內部處理晶片過濾掉環境噪音等不需要的聲音內容,接著會經過一組名為「Beam Forming」的程式配合鏡頭所識別使用者正確位置後,即可將語音識別擷取範圍「鎖定」在使用者身上,而不會識別到其他使用者所發出的聲音。
而跟內建姿態資料一樣,微軟也在Kinect中建立了所謂的「聲音模型 (acoustical model)」,特別請來各國演員進行數百小時的語音錄製,好讓Kinect能對應各個國家特有口音辨識。而聲音辨識部份與體態辨識同樣是隨時進行的,使用者隨時可以透過Kinect下達語音指令,而無須透過按鍵進行操作 (當然部份還是視軟體內容而定)。
內建馬達運作
在使用者姿態與聲音識別完畢之後,最後便是實際運作的部份。任何透過光學感應運作的裝置,就像任天堂Wii有一定的感應角度與控制範圍,微軟Kinect也會有同樣的情形存在。因此微軟花了時間研究多數北美、歐洲以及亞洲地區的家庭環境,並將Kinect設計成可上下調整,以對應不同使用空間。
Kinect在底座部份的設計會特別沈重,主要是避免容易翻倒的可能性,另外微軟也在底座內設置了一組馬達,讓Kinect可作約30度的上下調整,當使用者無論是擺放於高處或一般桌上均可正常運作 (微軟建議使用高度範圍大約在1到2公尺之間,差不多是一般液晶電視的頂端或底部的高度)。
而這組馬達同時擔任Kinect自動調整焦距的功能,當使用者靠近鏡頭時便會自動拉近焦距,好讓焦點能隨時集中在使用者身上。而內建散熱風扇僅會在需要時才會啟動,避免轉動聲音影響到語音識別。
根據微軟實驗室針對這組內置馬達所進行的測試,在極高的溫度環境之下施行連續幾個月且每天上千次的調整操作,同時確認Kinect在操作時所產生的噪音僅有24分貝 (一般家庭環境噪音約為40分貝)。
結尾
與任天堂及索尼均需仰賴手持控制器的操作方式不同,目前看起來微軟希望打造「無須手持」的體感操作,Kinect可以提供使用者透過大致的身體動作,並配合語音指令進行內容操作。微軟是否能透過Kinect成功打下另一波體感操作局勢?就看未來遊戲市場表現吧!
目前台灣微軟表示將於今年11月正式讓Kinect在台上市,預計將同時推出Xbox 360主機與《Kinect Adventures》遊戲同捆組,另外也會推出內附《Kinect Adventures》遊戲的Kinect套件組。目前對應Kinect的遊戲除了微軟自家所開發的遊戲內容外,其他獨立廠商也陸續針對Kinect打造體感遊戲。 |
身體就是控制器,微軟Kinect是怎麼做到的?
這次E3展中,三大遊戲主機中的Microsoft和Sony終於都正式推出了體感裝置,最令人驚艷的莫過於不需要任何控制器的Kinect,之前我們票選的「三大遊戲新星你選哪一個?」也印證了這一點。最令人好奇的是,Kinect到底如何偵測全身體感?搭載了什麼特殊功能?各個鏡頭的用途是什麼?
大家應該都知道Kinect是靠攝影機鏡頭捕捉使用者的動作,但對於細節或許不是很清楚,近日隨著國外遊戲網站play.com公佈了Kinect的詳細規格,也讓我們可以間接了解更多細節。
先由Kinect的運作原理開始吧,Kinect一次可擷取三種東西,分別是彩色影像、3D深度影像、以及聲音訊號。首先是Kinect機身上有3顆鏡頭,中間的鏡頭是一般常見的RGB彩色攝影機,左右兩邊鏡頭則分別為紅外線發射器和紅外線CMOS攝影機所構成的3D深度感應器,Kinect主要就是靠3D深度感應器偵測玩家的動作。
中間視訊鏡頭則是用來辨識玩家身分(靠著人臉辨識和身體特徵)、以及辨識基本的臉部表情,此外也能應用在擴增實境遊戲、以及視訊通話時;同時Kinect還搭配了追焦技術,底座馬達會隨著對焦物體移動跟著轉動。
都用上了不用遙控器的體感裝置,哪裡還要玩家頭上掛個耳麥的道理,因此Kinect也內建了麥克風系統,用的還是陣列式麥克風。它的好處是藉由多組麥克風同時收音,比對後消除掉雜音,等於提供了降噪功能,讓玩家的聲音能更清楚的傳遞出去。
▲Kinect中間的鏡頭是攝影機、左右兩顆鏡頭則是3D深度感應器;同時具有追焦功能,底座馬達可左右旋轉27度。此外還有陣列式麥克風。(圖片來源:Games Blog)
▲Kinect可同時獲取彩色影像、3D深度影像、以及聲音訊號(引用PrimeSensor解說圖)。(圖片來源:PrimeSense)
▲Kinect的架構圖(引用PrimeSensor解說圖)。(圖片來源:PrimeSense)
使用這麼新穎的偵測技術,Kinect是用了什麼特殊規格的設備?事實上並沒有我們想的那麼特別,從規格表裡看到的,都是相當普通的內容,例如視訊攝影機的影像規格為640×480 30FPS、紅外線攝影機則為320×240 30FPS,關鍵其實是在Kinect所使用的偵測技術。也因為如此,Kinect才能開出149.99美元的售價,而不是買不起的天價。
Kinect到底怎麼偵測3D影像?
關於Kinect所使用的辨識技術,網路上有許多以訛傳訛的說法。例如用兩顆攝影鏡頭拍攝成3D影像、並以紅外線探測Z軸深度做感應;也有許多人以為Kinect是利用紅外線紀錄體溫的方式,來找出人體的影像,這些當然都不是正確答案。
微軟在去年(2009年)初收購了一家以色列籍的3DV Systems公司(來源:reuters),包含公司員工以及所有專利技術都歸微軟所有。該公司擁有名為ZCam的動作感測系統,採用TOF(Time of Flight)技術,讓許多人認為Project Natal誕生計畫(Kinect前身)就是採用TOF技術,但......最後證實大家還是猜錯了。
這裡簡單介紹一下TOF技術,大家應該可以從字面猜到含意,Time of Flight就是去計算光線飛行的時間。首先讓裝置發出脈衝光,並且在發射處接收目標物的反射光,藉由測量時間差算出目標物的距離;ZCam就是使用TOF技術,使用紅外線以及Accelerometers加速度計感應器,感測立體空間的相對位置變化,建構灰階距離影像的深度感應器。3DV Systems公司研發該技術已經長達10年,並取得許多專利技術,所以受到了微軟的矚目。
不過就在今年(2010年)年初時,微軟的開發人員卻大爆Project Natal誕生計畫並不是如外界傳言採用3DV Systems公司的TOF技術(來源:engadget)。微軟先進技術研究院副總裁Moshe Lichtman,於去年接受媒體訪問時,就表示併購3DV Systems公司目的不在於使用他們的技術,而是作為保障自家感測技術的後盾。因為專利技術認定上有時較為模糊,稍有不慎就會被對手告侵犯專利權;3DV Systems擁有許多相關專利,因此藉由併購3DV Systems快速取得專利,也能避免被其他對手併購,阻撓微軟的產品研發。
▲關於Kinect偵測方式網路上眾說云云,其實它與PrimeSense合作採用Light Coding技術。
微軟在今年4月時,正式公佈與另一家以色列公司PrimeSense合作(來源:gossipgamers),這下才讓Kinect使用的3D偵測技術有了著落。他們也是提供動作感測系統的公司,擁有體感偵測裝置PrimeSensor,以及感測晶片PS1080。PrimeSense用的並不是採用3DV Systems的TOF技術、而是Light Coding技術。
Light Coding技術理論是利用連續光(近紅外線)對測量空間進行編碼,經感應器讀取編碼的光線,交由晶片運算進行解碼後,產生成一張具有深度的圖像。Light Coding技術的關鍵是Laser Speckle雷射光散斑,當雷射光照射到粗糙物體、或是穿透毛玻璃後,會形成隨機的反射斑點,稱之為散斑。散斑具有高度隨機性,也會隨著距離而變換圖案,空間中任何兩處的散斑都會是不同的圖案,等於是將整個空間加上了標記,所以任何物體進入該空間、以及移動時,都可確切紀錄物體的位置。Light Coding發出雷射光對測量空間進行編碼,就是指產生散斑。
Kinect就是以紅外線發出人眼看不見的class 1雷射光,透過鏡頭前的diffuser(光柵、擴散片)將雷射光均勻分佈投射在測量空間中,再透過紅外線攝影機記錄下空間中的每個散斑,擷取原始資料後,再透過晶片計算成具有3D深度的圖像。
▲Light Coding是以發射紅外線產生散斑,透過感應器紀錄訊號後,交由晶片運算出深度圖像。(圖片來源:PrimeSense)
PrimeSence公司用的Light Coding技術,說穿了與微軟先前買下3DV公司所使用的TOF技術根本就毫不相關,只是產生的結果類似。這點更加印證了微軟收購3DV Systems,只是為了動作感測相關的專利權、取得領先地位。
由於微軟並沒有買斷PrimeSense公司的技術,因此PrimeSensor裝置未來也有可能出現在電視、電腦等消費性產品上,例如CyberLink訊連科技也與PrimsSense合作開發3D互動體驗介面(來源:PrimeSense)。面對將來有可能出現同質性產品,微軟則是強調Kinect的追焦旋轉功能是他們的專利,這點別人不能模仿。
▲PrimeSence公司展示應用Light Coding技術的體感偵測系統。該技術並未被微軟買斷,未來將有機會應用在其他裝置上。
另一關鍵:骨架追蹤系統
了解Kinect如何獲得影像後,接下來就是進行辨識的工作。透過Light Coding技術所獲得的只是基本的影像資料,重點還是要辨識影像,轉換為動作指令。據說Prime Sense公司並沒有提供辨識技術,所以辨識部份得靠微軟自己搞定。
微軟會將偵測到的3D深度圖像,轉換到骨架追蹤系統。該系統最多可同時偵測到6個人,包含同時辨識2個人的動作;每個人共可記錄20組細節,包含軀幹、四肢以及手指等都是追蹤的範圍,達成全身體感操作。為了看懂使用者的動作,微軟也用上機器學習技術(machine learning),建立出龐大的圖像資料庫,形成智慧辨識能力,盡可能理解使用者的肢體動作所代表的涵義。
Kinect偵測的最佳距離為1.2公尺到3.5公尺間,水平視野則是57度,偵測範圍似乎比原本想像的還要小,看來還是不能站的太隨意;Kinec也配備了追焦系統,如果玩家超出影像範圍,底座馬達可驅動Kinect左右旋轉27度。整體看來Kinect對操作空間的限制,似乎比其他體感裝置更嚴格些。
▲Prime Sense公司似乎只提供影像偵測,後面的辨識技術還是靠微軟自己來。(圖片來源:PrimeSense)
▲Kinect一次可追蹤2人的動態,每人能追蹤高達20組細節。(圖片來源:Gamespot)
延遲讓Kinect不精準?
由於Kinect攝影機的影像更新頻率為30FPS,代表動作傳遞將會有33ms(1/30秒)的延遲,CrunchGear也在文中質疑這會不會造成動作偵測上的延遲,為何不使用60FPS以上的錄影規格拍攝?這其實是PrimeSense公司提供的處理晶片能耐,它就只能處理VGA畫質、30FPS的影像。
30FPS影像更新頻率造成的延遲應該有限,因為人類對事物的反應速度幾乎都超過100ms,已經大於30FPS所帶來的33ms延遲,所以該怪的應該是你的反應太慢吧。比起偵測延遲,更該擔心的是辨識需要的時間、以及辨識的精準度。由於Kinect是透過辨識圖像再轉化為指令的方式,大量的影像處理、以及事後的辨識動作,恐怕才是讓Kinect使用者感受到延遲的原因。聽說支援Kinect的遊戲都有針對延遲做最佳化,盡可能讓使用者減少延遲的感受。
▲影像更新頻率並不是Kinect延遲的主因,反倒是晶片處理速度、軟體辨識的影響比較大。(圖片來源:Gamespot)
另外一點備受質疑的,就是在精準度方面的問題,國外調查Kinect的判斷精準度為4mm,的確是輸給了PlayStation Move的1mm。但論精準度,可能每種體感裝置都還比不上實體搖桿。但Kinect帶來的全身體感優勢,所能做的事情鐵定比PlayStation Move和Wii多更多,例如Ubisoft推出的健身遊戲《Your Shape Fitness Evolved》,類似Wii平台上的《Wii Fit》,但是透過骨架追蹤系統來玩瑜珈、武術等遊戲時,對姿勢的要求絕對高於Wii Remote+Wii Fit;舞蹈遊戲《Dance Central》也是相同的道理。
▲雖然Kinect在精準度上遭受到質疑,但全身體感的優勢大幅超越Wii和PlayStation Move。圖為遊戲《Your Shape Fitness Evolved》畫面。(圖片來源:Gamespot)
▲Kinect對姿勢的要求上,鐵定會比對手們來的嚴格許多,躺在沙發上玩體感遊戲這種事就別想了。圖為遊戲《Dance Central》畫面。(圖片來源:joystiq)
Kinect規格表:
感應器:
- 彩色和深度感應鏡頭
- 陣列式麥克風
- 輔助感應傾斜驅動馬達
- 完全相容所有的Xbox 360裝置
視野角度:
- 水平視野:57度
- 垂直視野:43度
- 實體傾斜範圍:± 27度
- 深度感應器範圍:1.2m – 3.5m
資料串流:
- 深度感應器:320×240 16-bit @ 30 frames/sec
- 彩色攝影機:640×480 32-bit @ 30 frames/sec
- 聲音規格:16-bit @ 16 kHz
骨架追蹤系統:
- 同時辨識6人,包含2人的動作追蹤
- 每人能追蹤20個點
- 能讓Xbox LIVE Avatars虛擬人物與使用者動作同步
聲音系統:
- 支援遊戲語音交談以及XBOX Live派對語音交談,需要金會員
- 具回音消除功能的聲音輸入
- 支援多國語言
延伸閱讀:
留言列表