2023年,nintendo發表了新時代遊戲主機wii,掀起了體感遊戲的序幕。「體感技術」的基本概念,在於人們可以很直接地使用肢體動作,與周邊的裝置或環境互動,而無需使用任何複雜的控制裝置,便可讓人們身歷其境地與內容做互動。舉個例子,當你站在一台電視前方,假使有某個體感裝置可以偵測你手部的動作,此時若是我們將手部分別向上、向下、向左及向右揮,用來控制電視台的快轉、倒轉、暫停以及終止等功能,便是一種很直接地以體感操控周邊裝置的例子,或是將此四個動作直接對應於遊戲角色的反應,便可讓人們得到身臨其境的遊戲體驗。其他關於體感技術的應用還包括:3d 虛擬實境、空間滑鼠、遊戲手柄、運動監測、健康醫療照護等,在未來都有很大的市場。
體感技術原理及技術演進
如圖1所示,中的玩家手持遊戲手柄進行「網球體感遊戲」,玩家的手部擊球動作可完全用來模擬並控制遊戲裡遊戲角色的球路,而玩家手部的動作與遊戲角色球路的對應是如何實現的呢?原理在於玩家手上的手柄能獲取玩家手部的各種物理引數,例如:加速度、角速度、位移……等等,然後再進一步通過演算法,將這些物理引數轉化為人體在空間中的三個位移量,以及三個旋轉量,如此一來便可將手部在空間中的各種動作(平移 + 旋轉)完全描述出來,接著再將此平移及旋轉量傳輸給遊戲角色,遊戲角色便可與玩家做出相同的動作對應。因此所謂的「體感遊戲」,便是通過各種感測器捕捉人體的肢體動作(平移 + 旋轉),並將所計算出的肢體動作對應於遊戲上角色的反應,使玩家的動作與遊戲中角色的反應呈現1:1擬真的對應。
圖2說明了近年來全世界在體感技術上的演進,依照體感方式與原理的不同,主要可分為三大類:慣**測、光學感測以及慣性及光學聯合感測。
慣**測:主要是以慣性感測器為主,例如用重力感測器,陀螺儀以及磁感測器等來感測使用者肢體動作的物理引數,分別為加速度、角速度以及磁場,再根據此些物理引數來求得使用者在空間中的各種動作。主要代表廠商為logitech在2023年推出空間滑鼠(mxair),使用三軸重力感測器以及兩軸陀螺儀,可感測使用者在空間中的手部動作,並將此動作轉化為滑鼠在螢幕上垂直方向與水平方向的位移。
光學感測: 主要代表廠商為 s o n y 及microsoft。早在 2023年以前,sony 便推出了光學感應套件——eyetoy,主要是通過光學感測器獲取人體影像,再將此人體影像的肢體動作與遊戲中的內容互動,主要是以2d平面為主,而內容也多屬較為簡易型別的互動遊戲。
直到 2023年,microsoft發表了跨世代的全新體感感應套件——kinect,號稱無需使用任何體感手柄,便可達到體感的效果,而比起 eyetoy更為進步的是,kinect 同時使用雷射及攝像頭(rgb)來獲取人體影像資訊,可捕捉人體3d全身影像,具有比起eyetoy更為進步的深度資訊,而且不受任何燈光環境限制。
慣性及光學聯合感測:主要代表廠商為nintendo及 sony。2023年所推出的 wii,主要是在手柄上放置乙個重力感測器,用來偵測手部三軸向的加速度,以及一紅外線感測器,用來感應在電視螢幕前方的紅外線發射器訊號,主要可用來偵測手部在垂直及水平方向的位移,來操控一空間滑鼠。這樣的配置往往只能偵測一些較為簡單的動作,因此nintendo在2023年推出了wii手柄的加強版——wii motion plus,主要為在原有的wii手柄上再插入乙個三軸陀螺儀,如此一來便可更精確地偵測人體手腕旋轉等動作,強化了在體感方面的體驗。至於在2023年推出eyetoy的sony,也不甘示弱地在2023年推出遊戲手柄move,主要配置包含乙個手柄及乙個攝像頭,手柄包含重力感測器、陀螺儀以及磁感測器,攝像頭用於捕捉人體影像,結合這兩種感測器,便可偵測人體手部在空間中的移動及轉動。
體感技術於移動裝置端最新應用——九軸體感技術 + 無線多**串流技術
體感技術應用移動裝置上時,往往受限於手機螢幕天生便嵌入手機的特性,因此僅能以較簡單的體感方式來操作所有的體感遊戲。
例如在圖3的賽車遊戲中,原本使用按鍵來控制賽車遊戲的轉向,現在便可透過傾斜手機的方式,來以體感方式真實模擬賽車遊戲中的轉向。然而,在圖4中的高爾夫球遊戲,若你同樣想要以體感的方式揮動手臂來模擬遊戲中人物的揮桿,便會發覺無法實現此操作,原因在於:當你揮動手臂時,手機的畫面也隨著手臂揮擊出,此時便無法觀察遊戲的進行,因此這型別的遊戲十分不適合體感操作。
最適用於移動裝置上之體感技術(1)——九軸慣**測(9-axis sensor fusion)
杭州**建設
對於一般移動裝置來說, 例如手機及table,皆為可攜式元件,因此需有固定於螢幕前方的光學感應棒的體感技術將受限。由於慣性體感感測無需任何感應棒置於玩家前方,因此以慣**測方式應用於手機體感遊戲將是最佳的解決方案。而慣**測中九軸混合感測演算法(9-axis sensor fusion),將提供真正1:1動作對應,實時以及 360°自由動作檢測的最佳體現。
使用九軸混合感測演算法的原因在於,各個單一的慣性感測器都有各自的缺點,因此勢必得使用混合感測的方式,通過彼此補償來加以改善各自的缺點。如圖6所示,如果僅僅只使用重力感測器,將會產生延遲反應、強烈誤動作以及奇異點等問題,這是因為重力感測器會同時量測到重力變化以及人體加速度變化,因此若無法將此兩個感測值加以分離,便會造成上述問題。而若是以重力感測器加上磁感測器,
除了延遲反應之外(磁感測器反應速率遠小於重力感測器),磁感測器也易受外界磁場的干擾,而造成感測錯誤的問題。而若是以重力感測器加上陀螺儀的組合,則會產生累積誤差,而且陀螺儀易受溫度影響而產生的感測值飄移(drifting)等問題。因此,最完美的組合方案便是將三種感測器結合起來進行混合感測及補償,便可達到最精確、最實時、絕對位置及不受磁場干擾等的體感體驗。
圖7中描述了cywee九軸混合演算法的各種輸出,其中的校正後的sensor原始資料,cywee提供了動態及靜態校正,可讓使用者在使用中不會遇到感測資料不精確的問題,同時,也可使得工廠製造端無需額外進行感測器校正程式。以及orientation、旋轉矩陣、四元素、 重力變化以及線性加速度輸出,也都提供了體感遊戲開發商直接呼叫。例如opengl定義的3d物體旋轉及平移的api,節省了遊戲開發商對於體感演算開發的時間,這些輸出已經被定義於google android 2.3之後版本的api中。
此外,cywee也提供了各種動作判斷輸出,可供體感遊戲開發商直接呼叫。圖8描述了cywee為開發商提供體感遊戲中各種體感動作演算法的輸出結果,稱為動作資料庫(motion library),可大大地節省體感遊戲開發商開發體感遊戲的時間及成本,根據不同的動作型別,可適用於不同型別的體感輸出,例如射擊類動作輸出、射箭類動作輸出、擊打類動作輸出等。
最適用於移動裝置上之體感技術(2)——無線多**串流技術(wireless hdmi)
圖9描述了世界上各個廠商對於無線多**串流技術的規格比較,可根據操作頻段、影像壓縮方式、功耗、傳輸頻寬、支援最大解析度、延時時間以及傳輸距離等因素來進行比較,可發現應用於移動裝置上時,功耗及傳輸所需頻寬為最大的問題。
最新動態與未來展望
cywee已擁有多年的發展體感技術的經驗,除了原本在體感遊戲及體感手柄銷售上有長足的進展外,在移動領域上更是為之前jil(joint innovation laboratory)project所唯一指定的體感方案供貨商。目前更進一步的授權許多國際大廠使用cywee體感演算法,並於android2.3版本上加以整合,以適配android 2.3 版本之後關於體感方面api的定義。
**
OpenCV在龍芯平台上的移植
opencv 2.2.0的移植方法 按照文章 opencv在arm上的移植 emouse 給出的步驟方法進行 修改的地方 1 原指定交叉編譯器為arm的都改為mipsel,交叉編譯器的路徑也為redhat虛擬機器中的實際路徑 usr local mips linux gcc gcc 3.4.6 2f...
CMMB在Android平台上的實現步驟簡介
前段時間完成了android平台上cmmb的實現,現將實現步驟簡單介紹如下。分兩個step來實現 一 基於530頻點 北京 cctv news臺清流頻道 寫死乙個頻點 乙個清流頻道 的除錯 1 在android上調通cmmb driver和firmware,使其有正確的輸出。2 ffmpeg在and...
Replication副本在各平台上的使用
本文主要分析replication副本在mysql,redis,zookeeper,kafka和mongodb這些平台上的使用 1 水平擴充套件 提高效能,讀寫分離。kafka的副本只是用來備份和故障轉移 2 備份和故障轉移 mysql 非同步,半同步,延遲同步 redis 非同步 部分重同步,全量...