Max Baron
摘要:剖析了Moven和ADI展示的一件集慣性傳感器、處理器以及無線通信模塊于一身的衣服,這件衣服可記錄穿著者的運動狀態,并在電腦屏幕上實時顯示出三維的運動圖像。MEMS傳感器、DSP乃至SoC、軟件在運動捕捉類應用上具有特殊的結構。
關鍵詞:MEMS;DSP;虛擬現實;慣性傳感器;陀螺儀
第三個例子為拳擊比賽中的應用。拳擊手Hutton(曼徹斯特,英國)擊拳平均記錄數據為0.1秒內達到40km/h。假設從0速度開始進行均勻線性加速至40km/h或11.1m/s,斜率為1.13g/s,加速度計可以輕松應對。
這些數據的采樣及數字處理頻率更多取決于數值積分的準確性,而不是奈奎斯特采樣定理中所需的MEMS最大輸出頻率的兩倍(2x1600=3200Hz或2x550Hz=1100Hz)。也就是說,是否需要傳感器所提供的最佳頻率響應。Moven認為奈奎斯特定理應用于測量隨意人類運動所需的最大頻率,通常不高于10Hz(對于沖擊可能會稍微高些),而約100Hz的奈奎斯特頻率應當足以應付沖擊和較慢的隨意運動。
我們僅能估計很小部分的工作量。首先我們進行角速率長方形積分所需的三次乘累加,將其分量加到前一角度。假設三角函數分開計算或由查表得出,我們僅考慮上述本源矩陣運算。經過軸旋轉和簡單長方形積分,我們發現,通過15次累乘和3次乘加,加速度被積分為速度在基準坐標系的三個分量——x,y,z,并將其累加到積分常數,也就是先前的速度。3次附加的乘加將提供坐標系中新的x,y,z位置—這將使計算總數提至24次。注意采用不同的取向表示,如四元數可節約工作量處理性能。四元數采用4個參數。一個描述將要用于單位向量的標尺,另外3個虛系數標注單位向量的旋轉。
繼續先前的算法,假設采樣頻率可能超過要求,是電視(60fps)的兩倍,120×3200Hz=384000Hz。上述簡單矩陣計算需要每秒9216000次運算。處理附于運動捕捉服的16個基于MEMS的慣性單元(2個為任選)的讀數需要大約147.5Mops(百萬次運算每秒),如果只是這一項,DSP器件(女11ADI的Blackfin)是可以輕松應對的。
運動捕捉服和PC間的通訊采用基于藍牙標準的無線連接Moven采用了經優化/調諧的藍牙2.0(aka1.2)Class 1。藍牙1.0和1.2擁有721kbit/s收發速率。更新的藍牙2.0規格為3Mbit/s,但實際只支持2.1Mbit/s。我們現在需要考慮由藍牙連接至PC所造成的限制。由于沒有其它選擇,我們只能在運動捕捉服上進行數據轉換。每個傳感器產生3個加速增量的讀數,3個角速率增量和3個溫度(可在本地采用參考電壓,以幫助提高準確性)。假設數據以每個慣性傳感器16bit和32bit初始字段表示,如只使用一個藍牙信道,我們需要每個傳感器發送9×16+32=176bit,一共16個傳感器共需179×16=2864bit。如前面所講的,采樣率為384000Hz,這樣,每秒傳送的總比特為每秒2864×384000bit,即約1.1Gbits。藍牙2.0只能支持2.1Mbit/s的傳輸速率,那么2.1Mbit/s/2864約為746采樣/秒。該采樣率可支持每周期單個樣品下的MEMS的頻率帶寬約為373Hz。藍牙1.0、1.1和1.2標準則更糟,對應MEMS頻率約為128Hz,只允許每秒256次采樣。在所有傳感器中建立的此均一速率下,不可能正確檢測足球和拳擊等劇烈運動的高速碰撞,但至少可以定義可支持運動和移動的速度。根據Moven的經驗,可做到在采樣速度很低的情況下依然能可靠地捕捉人類動作。Moven支持無線通信高達120Hz。Moven也提供有線通信,有線通信的帶寬可達512Hz,采樣率更高,足以滿足某些運動的苛求。
在該運動捕捉服上的DSP、高性能微控制器或移動微處理器可以減少需傳遞至PC的數據量,甚至可以在該服裝上集成大容量閃存以記錄本地信息。其它減少數據通信的方法為:由于MEMS斜率較低,可傳遞增量讀數,減少表示數據所需的大小或通過定義頭文件發送可變大小的數據。
上述最后一種辦法以及本地存儲數據,似乎是減少數據通信的最有希望的辦法。人體知識為增加準確性提供了選擇:一種有關節的、具有23部分的生物機械體軟件模型用于限制動作,消除由于現實世界改變參數及積分不準確導致的滑步和積分漂移。
使其物有所值的軟件
假定大部分數據處理工作在安裝MovenStudio2.0應用程序的PC或筆記本進行,該軟件旨在為所采集的動作數據和高級應用程序架起一座“橋梁”,因此軟件隱藏了系統控制和必須處理的數學算法,用戶界面也非常簡單。
Moven公司網站上可供下載的演示版程序,但在沒有運動捕捉服的情況下,該演示版程序幾乎毫無用處。但是Moven在該軟件中,以XML文件格式(文件后綴名為mvnx)保存了幾個短肢體層次結構代碼和動作樣本。用戶可以播放并由不同的虛擬照相機觀看這些文件。有些控制在演示版中是可用的。復制和粘貼僅支持二進制源格式MVN。你可以將一個MVN文件粘貼到一個新的MVNX文件。所捕捉的動作可以divx或mov視頻格式輸出。
當運動捕捉服連接后,MovenStudio2.0的控制菜單被激活。控制菜單包括“捕捉服狀態”、“預覽和記錄窗口”、“開始新記錄”、“記錄‘mvn文件”、“重新定位傳感器”及“校準動作捕捉服”?!靶蕜幼鞑蹲椒笔侵府斢脩舸┥显摲b并做出預定的初始化動作或姿勢時,系統會得到加速度、旋轉率、溫度和電壓等幾個參數初始讀數,從而校準系統。此外,幾個附加的校準動作用于得到穿該服裝用戶的特定身體參數。幫助菜單僅有“關于”一項。幸運的是,動作采本文件可作為*bvh標準文件導出。Moven2.0輸出BVH格式文件以兼容Poser、Motion Builder以及3D Studio Max等軟件。Moven Studio2.0也可輸出FBX格式文件,此種格式文件更為靈活并得到Autodesk軟件的支持。FBX可以提供身體任一部分的數據,而不僅是旋轉。BVH文件格式在寫本文最初由Biovision開發。用于Biovision等級數據的BVH標準。該文件由兩部分組成:首字段描述目標的層級結構并提供描述目標骨骼的初始姿勢。這些將為第一積分常數。數據字段含有動作數據。Universi鑼of Wisconsin提供的一個例子給出了這種文件資源(見源代碼邊注或http://www.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeft/Examplel.bvh)。
使用動作捕捉數據
描述過BVH格式文件的組成結構之后,現在我們來看一下這類文件如何被高級程序使用,如人物動畫、游戲、虛擬顯示、訓練、廣告、駕駛以及體育等。作者將描述Moven數據在程序中的使用,作者用這些程序積累了一下經驗,Poser 7和Anime Studio Pro5.6,可使用Poser 7創造的3D圖像。兩個程序都可由e-frontier(現已被Smith MicroSoftware Inc.收購)得到。
第一個令人愉快的事情是(a)Poser7可導入BVH文件。(b)Moven可提供與Poser7定義的“骨骼”架構所兼容的文件。這解釋了Moven2.0中“重新定位傳感器”命令的需要。下一個經驗就不那么美妙了。當Poser7讀取BVH文件時,Poser7提示有些關節或四肢缺少數據或數據太多。盡管如此,但令人高興的是,Poser7確實可以處理這些數據,并將其分配給程序員。Moven稱可同時記錄源自多個人的動作數據,但沒有定義人數的上限以及所收集數據的類型。作者認為有可能使用幾個不同的Moven系統,將時間和三維距離積分留給PC或程序(如Poser 7)做后期處理。在Poster7中,可以獲得展示幾個人的情景,具體方法為:首先讓某人位于程序前臺,之后通過輸入控制此人的BVH文件,這樣,即便之后此人位于后臺程序也可控制其圖像。
Poster7允許程序員定義并塑造3D面龐,并使其可隨著動作、相機角度以及距離的變化而變化。甚至可以使人物彼此同步其不同時間軸的關系。盡管效果可以很好,許多改變可由手工完成且并不困難。但是制作和測試很耗時。為了在虛擬現實行業中實現創作的多產,這個行業需要創作更多的工具,加入Moven的動作捕捉可使編輯和測試變得更加容易。
將一個動作文件指定給一個圖像中的人物的過程相當簡單:首先,由某人經歷一系列的運動,此人的身體測量參數和服裝尺寸也將所需記錄動作的數據的一部分。后續步驟由一機械體展示,該機械體可以展示實際動作。當其從不同相機角度(更多3D數學變換)和距離觀看時,結果可以在PC或Mac按每一幀觀看,或作為視頻播放。
通過將動作數據文件指定給人物,我們準備好設計某女士穿越視野,并跳躍由作者插入的障礙物的一系列動作。
作者沒有更正穿紅T恤的男士的動作,因為他的動作不好配合。此外,也沒有為女士提供頭發,不過女士的頭發可以從Poster7中的本地素材庫選取,也可以從網上找到由專業人員和業余人員創作或出售相關素材。Moven探究導致兩程序通訊不同的特定原因:一種可能性是萬向節死鎖——指兩旋轉陀螺儀進入某位置禁止第三陀螺儀矯直平臺。
近乎完整的系統
現在,我們可以容易的看到設計這種系統所需涉及的階段,從慣性傳感器和芯片,到RF,到PC,到軟件程序和界面以及其它如游戲設計等。盡管這些步驟的順序和步驟清楚,也定義了最終規格,但是最難解決的問題是處理資源的分配,如可能,一種產品應滿足多種應用的需求。對于野外訓練而言,是否采用DSP進行本地數據處理,從而使運動捕捉服裝獨立于PC更好?兩個RF藍牙2.0信道是否能幫助更好地分配功效?是否需要一個像Moven2.0的前端附于Poser7以提供網上實時游戲,而這種做法對性能及網絡接入時間會有何影響?是否Moven或其它公司應當創造一個“編輯”服裝以直接連接游戲開發環境來更快的調試修改游戲?
我們需要調整系統的每個組件以保證性能但并不一定是最佳性能,因為在這個情況下,系統中的其它一些因素,例如通訊,可能是真正的瓶頸。例如,在微分中,人們試圖在系數等分中發現最適條件。比如,正方形優于長方形。
似乎只是最近,動作捕捉可以通過處理取自12個照相機的數據得以實現,但這些照相機無法克服外界物體所造成的遮擋。在Moven的慣性動作捕捉技術的出現之前,動作捕捉不可能在任意地點和完全漆黑的情況下進行,因為動作捕捉一直受到相機的限制——即只有在相機能正常工作的地方,才能進行動作捕捉。
業界做了很多工作以加速虛擬世界的創造,如文字和聲頻/視頻等,但我們用來創造虛擬世界的工具還只是開始。
隨著SoC漸漸成為系統名副其實的一部分,對系統范圍的理解將日益重要。(本文選自《微處理器報告》,莫怡欣譯)