專利名稱:用于在主要尺寸的數據空間中導航的控制系統(tǒng)的制作方法
技術領域:
本發(fā)明一般涉及計算機系統(tǒng)領域,以及尤其涉及這樣的系統(tǒng)和方法該系統(tǒng)和方法使得能夠進行人類操作員的手的線性空間移動或執(zhí)行類似空間的活動,以控制在圖形或其它數據表示空間中的線性接近(verging)或移動(trucking)運動。
背景技術:
用戶使用諸如鼠標、鍵盤、游戲桿、十字鍵等,通過操縱窗口中或顯示器上的數據或圖像,或通過從與窗口或關聯(lián)程序相關聯(lián)的菜單中選擇操作,可以輸入命令并且與計算機系統(tǒng)交互。這樣的輸入設備還可用作位置轉換設備,該位置轉換設備能用于定位圖形的屏幕上指針,例如光標。例如,光標用于指示要被修改的字符,或用于指示要輸入數據或要執(zhí)行操作的位置。光標通常以某種形式或外表呈現在計算機顯示器上。使用者操縱輸入設備將導致光標的相應移動。因此,例如,鼠標或其它輸入設備的移動導致光標在同一方向上的移動。但是,這些傳統(tǒng)的輸入設備經常只是設備。用戶需要具有有線的或無線的鼠標或其它輸入設備,并且使用該設備來管理選擇、位置轉換、激活、和其它輸入功能。這些物理設備的使用經常不自然或不直觀。另一缺點是需要進行某些操作以改變輸入設備的上下文, 以便可執(zhí)行不同的功能。參考合并本說明書中提及的每個專利、專利申請、和/或公開通過參考整體上合并于此,以達到就好像具體地和個別地指示要通過參考而合并的每個單獨的專利、專利申請、和/或公開的程度。
圖1是根據實施例的姿勢(gesture)控制系統(tǒng)的方框圖。圖2是根據實施例的用于使用姿勢控制系統(tǒng)在數據空間中導航(navigate)的流程圖。圖3是根據實施例的在顯示器上呈現的示例數據幀。
圖4示出根據實施例的一側推回(one-sided pushback)的情景,其中,身體 (body)是處于打開位置的操作員的手,手掌面朝向前的方向(沿ζ軸)(例如,朝向在操作員前面的顯示屏)。圖5 (全體圖5a、圖5b、圖5c和圖5d)是根據實施例的指示在直到死區(qū)臨界 (threshold)點的死區(qū)(dead zone)中的身體推回姿勢的圖示符(glyph)的示例。圖6(全體圖6a、圖6b、圖6c和圖6d)是根據實施例的指示在超過死區(qū)臨界 (threshold)點(沿著ζ軸朝向顯示器并離開操作員)的死區(qū)(dead zone)中的身體推回姿勢的圖示符(glyph)的示例。圖7是根據實施例的由相應的推回引起的數據幀的第一相對ζ軸位移 (displacement)的不例。圖8是根據實施例的由相應的推回引起的數據幀的第二相對ζ軸位移 (displacement)的不例。圖9是根據實施例的由身體的側向(lateral)運動引起的數據幀的側向χ軸位移的示例。圖10示出根據實施例的示例物理情景,其中,將身體水平保持在類似平板的顯示表面之上。圖11是根據實施例的當使推回系統(tǒng)參與進來時以差別可見度逐漸增強的與當前層(例如當前數據幀)鄰近的層(例如數據幀)的示例。圖12是根據實施例的堆棧(stack)的向上平移的示例,其中,當與當前之前的層鄰近的層變得與當前之前的層一樣可見時,當前之前的層(例如,當前之前的數據幀)呈現更大的透明度(在該示例中變得不可見)。圖13是根據實施例的標記標簽的圖。圖14是根據實施例的在姿勢詞匯中的姿勢的圖。圖15是根據實施例的在姿勢詞匯中的取向的圖。圖16是根據實施例的在姿勢詞匯中的兩只手組合的圖。圖17是根據實施例的在姿勢詞匯中的取向混合(blend)的圖。圖18是根據實施例的系統(tǒng)操作的流程圖。圖19 (全體圖19/1和圖19/2)是根據實施例的命令的示例。圖20是根據實施例的用于在(over)擴展的景深上提取三維信息的基于姿勢的控制系統(tǒng)的方框圖。圖21是根據實施例的在基于姿勢的控制系統(tǒng)中使用的波前(wavefront)編碼成像系統(tǒng)的方框圖。圖22是根據實施例的用于使用包括兩臺波前編碼攝像機的波前編碼成像系統(tǒng)來在擴展的景深上提取三維信息的基于姿勢的控制系統(tǒng)的方框圖。圖23是根據實施例的用于在擴展的景深上提取三維信息的基于姿勢的控制系統(tǒng)的流程圖。圖24是根據實施例的在基于姿勢的控制系統(tǒng)中使用的波前編碼設計過程的方框圖。圖25是根據實施例的包括使用色拉(slaw)、蛋白質(protein)和池(pool)的數據表示的處理環(huán)境的方框圖。圖26是根據實施例的蛋白質的方框圖。圖27是根據實施例的記述的方框圖。圖28是根據實施例的攝取(ingest)的方框圖。圖29是根據實施例的色拉的方框圖。圖30A是根據實施例的在池中的蛋白質的方框圖。圖30B(全體圖30B/1和圖30B/2)示出根據實施例的色拉頭格式。圖30C是根據實施例的用于使用蛋白質的流程圖。圖30D是根據實施例的用于構建或生成蛋白質的流程圖。圖31是根據實施例的包括使用色拉(slaw)、蛋白質(protein)和池(pool)的數據交換的處理環(huán)境的方框圖。圖32是根據實施例的包括多個設備和在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、蛋白質和色拉)用于允許多個運行程序共享和共同地響應設備生成的事件。圖33是根據替換實施例的包括多個設備和在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、蛋白質和色拉)用于允許多個運行程序共享和共同地響應設備生成的事件。圖34是根據另一替換實施例的包括多個輸入設備和(coupled among)在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、蛋白質和色拉)用于允許多個運行程序共享和共同地響應輸入設備生成的事件。圖35是根據另一實施例的包括多個設備和(coupled among)在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、蛋白質和色拉)用于允許多個運行程序共享和共同地響應設備生成的圖像事件。圖36是根據另一實施例的包括多個設備和(coupled among)在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、蛋白質和色拉)用于允許運行程序的狀態(tài)(stateful)檢查、可視化、和調試。圖37是根據另外的替換實施例的包括多個設備和(coupled among)在設備中的一個或更多個上運行的多個程序的處理環(huán)境的方框圖,其中,原生質(plasma)構造(即池、 蛋白質和色拉)用于允許影響或控制在那個處理池中生成或放置的狀態(tài)信息的特性。
具體實施例方式描述了用于空間操作環(huán)境(SOE)的系統(tǒng)和方法。包括基于姿勢的控制系統(tǒng)的SOE 也被稱為空間用戶界面(SUI)或空間界面(Si)。描述了用于在SOE的數據空間中導航的系統(tǒng)和方法。導航包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢。姿勢數據是身體在時間點和物理空間點處的即時狀態(tài)的絕對三維空間位置數據。檢測包括使用姿勢數據來識別姿勢。導航包括將姿勢轉換成姿勢信號,以及響應于姿勢信號在數據空間中導航。數據空間是包括表示在物理空間中的數據集的數據表示空間。在以下描述中,為了提供對SOE的更深入的理解,詳細描述了多個特征。能夠看出的是,無需這些特定的細節(jié)也可以實現S0E。在其它情況下,沒有詳細描述公知的特征。
空間操作環(huán)境(SOE)圖1是根據實施例的SOE的方框圖。用戶將手101和102設置在攝像機104A-104D 的陣列的觀察區(qū)域中。攝像機檢測手指和手101、102的位置、取向和移動,以及生成到預處理器105的輸出信息。預處理器105將攝像機輸出轉換成被提供到系統(tǒng)的計算機處理單元 107的姿勢信號。計算機107使用輸入信息來生成用于控制一個或更多個屏幕上光標的命令,以及將視頻輸出提供到顯示器103。盡管示出系統(tǒng)具有作為輸入的單個用戶的手,但是可使用多個用戶來實現SOE 100。另外,排除手或加上手,系統(tǒng)可追蹤用戶身體的任意部位或多個部位,包括頭、腳、腿、 手臂、肘、膝蓋等。在示出的實施例中,使用四臺攝像機來檢測用戶的手101、102的位置、取向、和移動。應該理解的是,在不偏離SOE的范圍或精神的情況下,SOE 100也可包括更多的攝像機 (例如,六臺攝像機、八臺攝像機等)或更少的攝像機(例如,兩臺攝像機)或傳感器。另外, 盡管在示例實施例中對稱地布置攝像機或傳感器,但是在SOE 100中沒有對這種對稱的要求。在SOE 100中可使用允許用戶的手的位置、取向、和移動的任何數量或定位的攝像機或傳感器。在一個實施例中,使用的攝像機是能夠捕獲灰度級圖像的運動捕獲攝像機。在一個實施例中,使用的攝像機是Vicon制造的那些攝像機,例如Vicon MX40攝像機。該攝像機包括攝像機上的處理,以及能夠以每秒1000幀來捕獲圖像。運動捕獲攝像機能夠檢測和定位標記器。實施例的SOE中的攝像機或傳感器可采取各種形式。實施例使用耦合在一起的兩個或更多個小攝像機來形成立體視覺系統(tǒng)。該立體系統(tǒng)最少生成在其觀察區(qū)域內的對象的三維數據點群(cloud)。數據集中的點的解析深度(cbpth)準確度根據包括離攝像機基線的距離在內的多個因素而不同,但是該準確度為大約1mm。給定由立體傳感器集生成的點群,SOE的部件提取手和/或手指位置,反過來從手和/或手指位置可恢復量化的手姿勢和連續(xù)的手和手指取向向量。除了初始輸入是未組織的點群而不是聚集標簽(aggregate-tagged)的數據之外,用于該恢復的方法實質上類似于以下描述的方法。將手和手指表示提供給實現系統(tǒng)交互模式的機制。實施例使用多個立體耦合攝像機集合,或者使用修改的處理像素的相關性算法以操作多于一個的攝像機。增加攝像機的數量能夠例如擴展觀察區(qū)域,減少由手的部分的遮擋引起的困難,和/或增大點群數據的準確度。在描述的實施例中,攝像機是用于光檢測的傳感器。在其它實施例中,攝像機或其它檢測器可用于電磁檢測、靜磁檢測、RFID檢測或任何其它適合類型的檢測。預處理器105生成三維空間點重構和骨骼點標記。姿勢轉換器106將空間信息和標記器運動信息轉換成能被計算機處理器解釋的命令語言,以更新顯示器上光標的位置、 形狀和動作。在SOE 100的替換實施例中,將預處理器105和姿勢轉換器106集成或組合成單個設備。計算機107可以是例如由Apple、Dell、或其它適合的制造商制造的任何通用目的的計算機。計算機107運行應用并提供顯示輸出。要不然來自于鼠標或其它現有的輸入設備的光標信息現在來自于姿勢系統(tǒng)。
在數據空間中導航實施例的SOE使得能夠進行“推回”、進行人類操作員的手的線性空間移動、或執(zhí)行類似空間的活動,以控制在圖形或其它數據表示空間中的線性接近或移動運動。SOE及由其建立的計算和認知關聯(lián)提供了在縮放等級中導航的基礎的、組織化的方式,以遍歷大體上線性的“深度維”,或更一般地,以訪問量化的或“限位的(detented) ”參數空間。SOE還提供了操作員可自愿地獲取附加的上下文的有效方法用于了解是空間的、概念上的、還是計算的鄰近和鄰接的快速技術。在某些實施例中,推回技術可采用傳統(tǒng)的輸入設備(例如,鼠標、軌跡球、集成的滾動條和滑塊)或依靠操作員本人外部的被標記的或被追蹤的對象(例如,儀表運動關聯(lián)、 靜磁追蹤的“輸入磚塊(input brick)”)。在其它替換實施例中,推回實現可足夠作為整個控制系統(tǒng)。實施例的SOE是更大的空間交互系統(tǒng)的一部分或集成到更大的空間交互系統(tǒng)中,其中,更大的空間交互系統(tǒng)取代慣常的基于鼠標的用于控制計算機的圖形用戶界面 ("WIMP"UI)方法,該更大的空間交互系統(tǒng)替代地包括(a)追蹤一種或更多種對象(例如, 人手、在人手上的物體、無生命物體等)的物理傳感器;(b)用于將感測到的手的展開位置、 取向和姿勢解析成姿勢事件序列的裝置;(c)用于表示這種空間和姿勢事件的描述方案; (d)用于將這種姿勢事件分發(fā)給控制程序或分發(fā)到控制程序之內的框架(framework) ; (e) 用于將通過姿勢事件流編碼的人類意圖(命令)與事件流本身和應用特定的事件解釋序列這兩者的圖形描述、聽覺描述、和其它顯示形式的描述相同步,以下將詳細描述其全部。在這樣的實施例中,推回系統(tǒng)與附加的空間和姿勢輸入接口技術相集成。圖2是根據實施例的在數據空間中導航的流程圖。導航包括從經由檢測器202接收到的姿勢數據中檢測身體的姿勢。姿勢數據是身體在時間點和物理空間點處的即時狀態(tài)的絕對三維空間位置數據。檢測包括使用姿勢數據204來識別姿勢。導航包括將姿勢轉換成姿勢信號206,以及響應于姿勢信號208在數據空間中導航。數據空間是包括表示在物理空間中的數據集的數據表示空間。如果實施例的整體的往返延遲(手的運動到傳感器、到推回解釋系統(tǒng)的姿勢分析、到呈現到顯示設備的計算機圖形、返回到操作員的視覺系統(tǒng))保持為低(例如,實施例呈現大約15毫秒的延遲),以及當正確地調整系統(tǒng)的其它參數時,推回交互的感知結果是物理因果關系的明顯感覺S0E使推壓彈簧支承(spring-loaded)結構的物理諧振象征 (resonant metaphor)精確化(Iiteralize)。感知到的因果關系是非常有效的反饋。與推回系統(tǒng)提供的其它更抽象的圖形反饋形式以及有意抑制在解釋操作員移動方面的某種程度上的自由一起,這種反饋反過來允許穩(wěn)定、可靠、和可重復地將人類的大小肌肉活動用作控制機制。在估計SOE的上下文時,很多數據集本質上是空間的上述數據集表示在精確的 (literal)物理空間中的現象、事件、觀測或結構。對于更抽象的其它數據集或對精確的甚至非空間的信息進行編碼的其它數據集,經常期望的是,準備這樣的表示(視覺的、聽覺的、或涉及其它顯示形式的)通過標量值(scalar-valued)的參數來控制該表示的某個基礎方面。因而,將該參數與空間維相關聯(lián)經常也是有益的。如以下所描述的,從借助于推回機制的操縱中獲益的是對該單個標量參數的操縱。
表示還可將特權給予(privilege)數據集最優(yōu)考慮(regard)的表示參數的少量不連續(xù)值(實際上,有時僅一個值)。在這種情況下,論及“限位參數”是有用的,或者如果已將參數明確地映射到一維表示空間上,論及“限位參數”是有用的。本文中術語“限位”的使用旨在不僅描述參數的優(yōu)選量化,而且描述棘輪的視覺觸覺感覺、磁對準機制、穿梭變速 (jog-shuttle)輪、和其它大量的具有有意的機械限位器的已有設備。這樣的參數的不證自明甚至至關重要的示例包括但不限于(1)合成攝像機在計算機圖形環(huán)境中離數據集的可呈現(renderable)表示的距離;(2)從原始數據集中采樣數據和將數據轉換成可呈現形式的密度;(3)從時變數據集中檢索樣本和將樣本轉換成可呈現表示的時間指數。這些是通用方法,還存在無數的特定于域的參數化。SOE的推回一般將數據集的參數控制軸與物理空間中的本地相關的“深度維”對準,以及允許沿著深度維的結構化的真實空間運動,以影響沿控制軸的數據空間轉換。結果是用于在參數空間中導航的非常高效的方法。下面是如SOE中所實現的推回的代表實施例的詳細描述。在推回實施例中,操作員站在大的墻顯示器之前的舒適距離處,在該墻顯示器上出現包括文本和圖像的單個“數據幀”,其中,圖像數據元素可以是靜態(tài)的或動態(tài)的。圖3是根據實施例的在顯示器300上呈現的示例數據幀310。該實施例的數據幀310包括圖像, 但是不限于如此。本身是二維構造的數據幀310仍然常駐在三維計算機圖形呈現環(huán)境中, 該三維計算機圖形呈現環(huán)境的基礎坐標系統(tǒng)已被布置成與便于描述房間和包括顯示器300 及操作員的房間內容的真實世界的坐標系相一致。通過以高精確度和高的時間比率解析操作員的手指以及可能整個手的全體的位置和取向的傳感器來追蹤操作員的手。為了表征每只手的“姿勢”,即手指相對于彼此以及相對于手的全體的幾何布置,系統(tǒng)對結果空間數據進行分析。雖然該示例實施例追蹤的目標是人手,能夠追蹤作為替換實施例中的輸入設備的眾多的其它目標。圖4示出根據實施例的一側推回的場景,其中,身體400是處于打開位置的操作員的手,手掌面朝向前的方向 (沿ζ軸)(例如朝向在操作員之前的顯示屏)。為了該說明的目的,使墻顯示器(未示出) 占據χ維和y維,ζ描述操作員與顯示器之間的維。與該推回實施例相關聯(lián)的姿勢交互空間410包括在持續(xù)的ζ平面上鄰近的兩個空間,將遠離顯示器的限位間隔空間(即更接近于操作員)稱作“死區(qū)”412,而更接近的半邊空間是“活動區(qū)”414。死區(qū)412在向后的方向 (朝向操作員并遠離顯示器)上無限延伸,但向前僅延伸有限的距離,結束于死區(qū)臨界413。 活動區(qū)414從死區(qū)臨界413向前延伸到顯示器。身體在活動區(qū)414中的移動交互地控制或 “推回”402在顯示器上呈現的數據幀或多個數據幀。以與顯示器的尺寸和縱橫比精確匹配的尺寸和縱橫比來構造數據幀,以及定位數據幀和確定數據幀的方向,以便數據幀的中央和標準向量與顯示器的那些物理屬性相一致,盡管實施例不限于如此。在從顯示器直接向前以及與操作員粗略相隔一段距離處放置用于呈現場景的虛擬攝像機。在該上下文中,呈現的幀因此精確地充滿顯示器。多個額外的共面的數據幀邏輯地布置在可見幀的左邊和右邊,間隔一致并且以最適中的間隙各自與其緊鄰的鄰居(參見以下描述的圖6、圖7和圖8)相分離。因為側向放置的鄰近數據幀位于計算機圖形呈現幾何形狀的物理/虛擬呈現邊界之外,這些側向放置的鄰近數據幀不是初始可見的。如將看到的,數據空間(給定其幾何結構)擁有在ζ軸方向上的單個自然限位裝置以及多個x限位裝置。操作員將保持在第一松弛姿勢的手舉到肩部。然后,操作員張開手指以便手指指向上方,以及張開拇指以便拇指指向右邊。操作員的手掌面向屏幕(在以下詳細描述的姿勢描述語言中,該姿勢轉換將被表達為到111卜:χ )。檢測新姿勢的系統(tǒng)觸發(fā)推回交互,以及立即記錄首次輸入該姿勢的絕對三維空間的手的位置將該位置用作“原點”,隨后的手運動將被報告為離該“原點”的相對位移。立即,將兩個同中心的、部分透明的圖示符疊加在幀的中心上(因此位于顯示器的中心)。圖5是根據實施例的指示在直到死區(qū)臨界點的死區(qū)中的身體推回姿勢的圖示符 501/502的示例。第二圖示符502小于第一圖示符501 (參見圖5a)指示操作員的手位于死區(qū),由此“還”未使推回操作參與進來。當操作員將手向前移動時(向著死區(qū)臨界和顯示器),第二圖示符502逐漸擴大(依次參見圖5b、圖5c和圖5d)。在操作員的手位于死區(qū)臨界處的點處,第二圖示符502在尺寸上等同于第一圖示符501 (參見圖5d)。該實施例的圖示符501/502將圖示符的同中心元素的演進示出為操作員的手從其開始點向前朝著將死區(qū)與活動區(qū)分離的死區(qū)臨界的移動。當手接近臨界時,圖示符502的內部“露齒(toothy),, 部分擴大,以及這樣布置,以便當手到達臨界位置時,內部圖示符502和(靜態(tài))外部圖示符501精確匹配。當操作員將手從死區(qū)移開時,第二圖示符502在第一圖示符501內部在尺寸上收縮,但總是與第一圖示符501保持同中心,以及保持在顯示器的中央(依次參見圖5d、 圖5c、圖5b和圖5a)。至關重要的,僅將操作員的手運動的ζ分量映射到圖示符的縮放 (scaling),而伴隨手運動的χ分量和y分量沒有貢獻。當操作員的手遍歷前面的死區(qū)臨界、越過而進入活動區(qū)時,使推回機制參與進來。 手的相對ζ軸位置(從臨界測量的)執(zhí)行縮放函數,并且結果值用于實現數據幀及其側向鄰居的ζ軸位移,以便幀的呈現圖像被看見從顯示器后退。于是,鄰近數據幀也從顯示空間的邊緣“填充”而變得可見。當幀位于的平面遠離攝像機而移動時,合成攝像機的連續(xù)角范圍(angular subtent)幾何地“捕獲”幀所位于的更多個平面。連續(xù)地更新ζ位移,以便當操作員將手向著顯示器推和將手向著自己往回拉時,感知到直接響應其運動而后退和接近的幀的側向集合。圖7是根據實施例的由相應的推回引起的數據幀703的第一相對ζ軸位移 (displacement)的示例。如以上所描述的,數據幀703的呈現圖像被看見從顯示器700后退,以及鄰近數據幀702/704從顯示空間的邊緣“填充”而變得可見。將包括多個附加的共面數據幀的鄰近數據幀702/704邏輯地布置在可見幀的左邊和右邊,間隔一致并且以最適中的間隙各自與其緊鄰的鄰居相分離。圖8是根據實施例的由相應的推回引起的數據幀 703的第二相對ζ軸位移的示例??紤]第一相對ζ軸位移,并且假設從導致第一相對ζ軸位移的那個推起進一步推操作員的手(沿ζ軸向顯示器及遠離操作員進一步推),數據幀703 的呈現圖像被看見從顯示器700進一步后退,以便額外的鄰近數據幀701/705從顯示空間的邊緣進一步“填充”而變得可見。同時,成對的同中心圖示符現在呈現修改后的反饋在操作員的手在活動區(qū)時,第二圖示符502從基于縮放的反作用切換到旋轉反作用,在旋轉反作用中,手到臨界的物理ζ 軸位移被映射到正的(在平面中)角度位移。圖6是根據實施例的指示在超過死區(qū)臨界點(沿ζ軸朝向顯示器和離開操作員)的死區(qū)中的身體推回姿勢的圖示符501/502的示例。該實施例的圖示符501/502圖示了一旦操作員的手已越過了死區(qū)臨界時圖示符的演進一即, 當已主動使推回機制參與進來時。因此,第二圖示符502的順時針旋轉和逆時針旋轉可視地指示操作員的手向著顯示器的移動和遠離顯示器的移動(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒(toothy) ”元素520為手到臨界的位移的線性函數,從而將線性運動轉換成旋轉表示。所以,在該實施例中,第二圖示符502的遞增順時針旋轉510可視地指示手沿ζ軸向顯示器的移動的附加第一遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)), 使得圖示符的“露齒(toothy) ”元素520旋轉與手到臨界的位移的線性函數相對應的第一數量。第二圖示符502的遞增順時針旋轉512可視地指示手沿ζ軸向顯示器的移動的附加第二遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒 (toothy)”元素520旋轉與手到臨界的位移的線性函數相對應的第二數量。另外,第二圖示符502的遞增順時針旋轉514可視地指示手沿ζ軸向顯示器的移動的第三遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒(toothy),,元素520旋轉與手到臨界的位移的線性函數相對應的第三數量。在該樣本應用中,當操作員的手在活動區(qū)中時,使第二級維的靈敏度參與進來再次通過可能的縮放函數,將手的側向(X軸)運動映射到水平幀序列的X位移。如果縮放函數是正的,則效果為以下之一操作員的手的位置“跟隨(following) ”,以及操作員感覺其正在左右滑動幀。圖9是根據實施例的由身體的側向運動引起的數據幀的側向χ軸位移的示例。在該由側向身體運動引起的側向數據幀位移的示例中,數據幀從左向右滑動,使得特定的數據幀701/702經由顯示空間700的左邊緣從視圖中消失或部分消失,而另外的數據幀705從顯示空間700的右邊緣填充。最后,當操作員使其手退出手掌向前的姿勢(例如,通過將手閉合成拳),推回交互終止,以及將幀集合快速返回到其原始ζ限位裝置(即與顯示器共面)。同時,側向調整幀集合以實現單個幀與顯示器的X —致;結束因而顯示器居中的幀是在推回終止的一剎那離同中心的圖示符的中心最近的任何幀最近的X限位裝置??梢?,這里將圖示符結構用作選擇標線(reticle)的第二功能,但是實施例不限于如此。為了提供“彈簧支承返回 (spring-loaded return) ”的可視感,通常允許幀集合的ζ位置和χ位置在短時間間隔內前進到其最終的與顯示器相一致(display-coincident)的值。該實施例中所采用的推回提供了以下有效的控制形式(1)通過沿直的視覺上的視線一深度維一可變地對聚集的數據集進行位移來獲取認知上有價值的“鄰近上下文 (neighborhood context) ”,從而使更多的數據集進入視圖(為了換取使數據集的任意給定部分的角范圍(angular subtent)減小);(2)以熟悉的“滾動(scrolling) ”感,通過沿其自然的水平維對側向排列的數據集進行位移來獲取鄰近上下文,從而保持數據的任意給定部分的角范圍,但是用舊數據的可見性來換取新數據的可見性;(3)通過快速且維約束的導航來選擇數據集的離散化的元素。在實施例的推回的另一示例中,操作員緊挨著腰部顯示設備而站,顯示設備的活動表面位于與地面平行的水平平面內。這里,以與之前示例的方式相同的方式來建立坐標系統(tǒng)顯示表面位于X-Z平面,以便與物理重力矢量反向地對準表示表面法線的y軸。
圖10示出根據實施例的示例物理情景,其中,將身體1000水平保持在類似平板的顯示表面(未示出)之上。在該示例中,身體1000是操作員的手,但是本實施例不限于如此。推回交互是雙邊的,使得具有上側死區(qū)臨界1013U和下側死區(qū)臨界1013L。另外,用上側活動區(qū)域1014U中的離散空間限位裝置1015U(例如,“第一限位裝置”、“第二限位裝置”、“第三限位裝置”、“第四限位裝置”)以及下側活動區(qū)域1014L中的離散空間限位裝置 1015L(例如,“第一限位裝置”、“第二限位裝置”、“第三限位裝置”、“第四限位裝置”)提供了推回動作訪問的線性空間。配置實施例的交互空間,以便將包括上側死區(qū)1012U和下側死區(qū)1012L的相對小的死區(qū)居中在使推回參與進來的垂直(y軸)位置處,同時使活動區(qū)域 1014U在死區(qū)之上而活動區(qū)域1014L在死區(qū)之下。操作員正與堆棧中已被解析到離散平行平面(參見以下描述的圖10)的示例數據集一起工作,其中,該離散平行平面為數據幀??梢砸詳祿硎镜奈锢憩F實的自然結果 (例如,來自斷層掃描的離散切片,三維集成電路的多個層等)的方式來布置數據幀,或者因為分離數據或使數據離散化(例如,以多個光譜帶獲取的衛(wèi)星圖,地理地組織的在分層中具有每十年的數據的普查數據等)是邏輯的或提供消息的(information)。數據的可視表示還可以是靜態(tài)的或包括動態(tài)元素。在未使推回功能性參與進來期間,單個層被認為是“當前的”并且被顯示器以可視的突出來表示,以及被感知為與顯示器物理上相一致。在該示例中,當前層之上和之下的層未可視地顯現(盡管使用緊湊的插圖來指示其存在)。操作員在顯示器上方展開其閉合的右手;當操作員打開手時一手指向前伸展,拇指向左,并且手掌向下指(轉換到111卜:VX])—使推回系統(tǒng)參與進來。在短暫的間隔(例如200毫秒)期間,鄰近當前層的一些層以差別可見度逐漸增強;用模糊濾鏡和其“嚴重性(severity) ”取決于該層到當前層的順序距離的透明度,在下面或在上面(below or above)合成每個層。圖11是根據實施例的當使推回系統(tǒng)參與進來時以差別可見度逐漸增強的與當前層1101 (例如當前數據幀1101)鄰近的層1102 (例如數據幀1102)的示例。在該示例中,堆棧包括能夠使用推回系統(tǒng)進行遍歷的眾多數據幀1101-110X (其中,X是適合于數據幀的數據集的任意數量;在該示例中X為5,使得堆棧包括數據幀1101、1102、1103、1104和1105)。同時,出現從之前示例中已熟悉的同中心反饋圖示符;在這種情況下,配置交互, 使得小的死區(qū)居中在使推回參與進來處的垂直(y軸)位置處,同時使活動區(qū)域均在死區(qū)之上和在死區(qū)之下。該布置為“恢復(regain)”原始層提供了輔助。在這種情況下,圖示符伴隨有指示與相繼層的定向接近的附加的簡單圖形。當操作員的手保持在死區(qū)中時,不發(fā)生層堆棧的位移。圖示符呈現了與之前示例中的行為相同的“預備(pr印aratory) ”行為,其中,當手接近區(qū)域的兩個邊界中的任意一個時,內部圖示符逐漸增大(當然,這里的行為是雙邊的和對稱的在手的開始y位置處,內部圖示符處于最小尺寸,以及無論手上移或下移,內部圖示符向著與外部圖示符一致而逐漸增大)。當操作員的手向上移動超過死區(qū)的上平面時,內部圖示符與外部圖示符相結合, 以及像以前一樣,手在那個方向的進一步移動導致內部圖示符的逆時針旋轉運動。同時,層堆棧開始“向上平移(translate upward) ”在原始當前層在上的那些層呈現更大的透明度和模糊度;原始當前層本身變得更加透明和更加模糊;以及在原始當前層之下的層向更多的可見性和更少的模糊度移動。圖12是根據實施例的堆棧(stack)的向上平移的示例,其中,當與當前之前的層 1101鄰近的層1102 (例如,數據幀1102)變得與當前之前的層一樣可見時,當前之前的層 1101(例如,數據幀1101)(未示出,參見圖11)呈現更大的透明度(在該示例中變得不可見)。而且,當堆棧向上平移時,與目前當前層1102鄰近的層1103(例如,數據幀1103)以差別可見度逐漸增強。如以上所描述的,堆棧包括能夠使用推回系統(tǒng)進行遍歷的眾多數據幀1101-1IOX (其中,X是適合于數據幀的數據集的任意數量;在該示例中X為5,使得堆棧包括數據幀 1101、1102、1103、1104 和 1105)。用真實世界的距離(即,如以房間坐標系所測量的,操作員的手離其初始位置的位移)與相繼層間的邏輯距離之間的映射來對層堆棧進行配置。當然,與接近圖形的即時外表一樣,層堆棧的轉換是該映射的結果,同時,其指示(首先)顯示平面與當前層之間的逐漸增大的距離;其還指示顯示平面目前在當前層之下。繼續(xù)手的運動,并且層堆棧終于通過當前層和正好在下面的下一層橫跨顯示平面的位置;一旦超過該點,接近圖形改變成指示顯示平面現在高于當前層“當前層狀態(tài)”現在已被指定給下一更低的層。一般,當前層總是離物理顯示平面最近的那個層,并且是當操作員從推回系統(tǒng)中脫離出來時將被“選擇”的那個層。當操作員繼續(xù)舉起手時,使每個連續(xù)層向著顯示平面出現,從而逐漸地變得更加可分辨,獲得與顯示平面的即時一致,然后向有利于下一更低層的透明度和模糊度返回。當操作員使其手的運動的方向相反,使其向下時,則使過程相反,以及內部圖示符順時針旋轉。當手終于通過死區(qū)時,隨著原始當前層與顯示平面的精確的y對準,堆棧停止;然后,堆棧的y移動重新繼續(xù),使在原始當前層之上的那些平面進入相繼的焦點。操作員的整體感受是其正有力地和簡單地用手向下壓或向上拔層的堆棧。當最終操作員通過閉合手(或者以其它方式改變其姿勢)來釋放推回時,系統(tǒng)將堆?!皬?spring) ”到限位的與顯示平面的y軸對準中,當退出推回時將離顯示平面最近的任意層留下作為當前層。在該位置重新排列的短暫間隔期間,所有其它層逐漸減弱成完全透明,以及反饋圖示符平滑地消失。該實施例的數據集的離散化元素(這里是層)沿主要的推回(深度)軸而分布; 以前,元素(數據幀)沿垂直于深度軸的維是共面的并且被側向排列。與透明度技術的使用一起,本布置意味著數據經常是疊加的一一些層是通過其它層而被觀看的。該示例中的操作員仍然還享有(1)用于快速獲得鄰近上下文的設備(在當前層之上和在當前層之下的層的內容是什么?);以及(2)用于高效地在數據集中的平行的、堆棧的元素當中選擇和切換的設備。當操作員試圖(1)單獨的,死區(qū)的提供允許操作員確信地返回到原始選擇的層。在操縱的整個過程中,對兩個轉換維的抑制使得能夠有速度和準確度(對于大多數人, 垂直地平移手而沒有側向漂移是相當困難的,但是,如所描述的形式簡單地忽略任何這樣的側向位移)。為了某些目的,應該指出的是,,配置推回輸入空間使得死區(qū)具有無限小的范圍可能是方便的;然后,一旦使推回參與進來,也使其活動機制參與進來。在本文提出的第二示例中,這將意味著與任何其它層無差別地對待原始當前層一一旦已開始推回動作。根據經驗,死區(qū)的線性范圍是操作員偏好的問題。在該第二示例中描述的形式適用于各種各樣的顯示器,既包括二維設備(不管是投影的還是發(fā)光的),也包括三維設備(不管是否為自動立體的,還是是否為航空圖像生成的等)。在后者的高質量實現一即3D—的情況下,介質的某些特性能夠巨大地幫助成為推回的基礎的感知機制。例如,視差、光學景深、和眼調節(jié)現象的組合能夠允許多個層同時被理解領會,因此消除了嚴格地使遠離顯示平面的層減弱和模糊的需要。另外,不管顯示器的取向,應用上述形式如在示例中一樣,其可以主要是水平的;或者可以正如有用地被安裝在墻上的眼高(eye-height)處。對該第二示例的情形的擴展描述了兩只手操縱的有用性。在某些應用中,需要側向平移或者整個層堆?;蛘邌蝹€層(即在X和Z方向上)。在實施例中,例如通過以下形式,操作員的其它一即非推回一手能夠實現該轉換在該形式中,使手與顯示表面緊密接近允許數據集的層之一被“四處滑動(Slide around)”,使得其X-Z位置的偏移跟隨手的偏移。操作員通??砂l(fā)現同時采取側向平移和推回操作是方便的和容易操作的。也許以下提議不是完全不真實的將連續(xù)域的操縱指定給一只手以及將離散類型的工作指定給另一手可以對優(yōu)化認知負載有作用。有益的是,考慮在SOE下的推回的另一示例,其中,在該SOE中沒有數據集的自然的、可視的方面。代表性的是監(jiān)視多個音頻通道的問題以及間歇地從集合當中選擇一個的問題。推回系統(tǒng)的應用使得能夠進行在為聽覺輸出而不是為視覺輸出而供應的環(huán)境中的這樣的任務;形式與之前示例的形式非常相似。站著的或坐著的操作員正聆聽單個的音頻通道。概念上,該音頻存在于幾何地包括其耳朵的垂直面一稱為“聽覺面” 一中;音頻的附加通道存在于平行于聽覺面的平面中, 但是沿ζ軸向前和向后位移。打開手,保持在其前方九英寸處,同時手掌面向下,操作員使推回系統(tǒng)參與進來。 在若干最接近的平面中的音頻差別地逐漸增強;每個音頻的音量相反地取決于其離當前通道的平面的順序距離。實際上,感知上不現實的是,允許多于兩個或四個的附加通道變得可聽得見。同時,“音頻圖示符”逐漸增強以提哦能夠接近反饋。初始地,當操作員的手保持在死區(qū)中時,圖示符幾乎聽不到兩音高和弦(初始和諧地)。當操作員在死區(qū)中向前或向后移動其手時,音頻通道的音量保持固定,而圖示符的音量增大。當手越過死區(qū)的前面臨界或后面臨界時,圖示符到達其“活動”音量(其仍然服從于當前通道的音量)。一旦操作員的手開始在活動區(qū)域中移動一比方說,在向前的方向上一獲得對音頻通道的預期作用將當前通道平面推得離聽覺面更遠,并且其音量(以及還在更遠的前方的那些通道的音量)逐漸地減小。另一方面,當每個“背面的(dorsal) ”通道平面接近聽覺面時,其音量增大。同時,音頻圖示符已切換了模式。手的向前的行進伴隨著音調之一的頻率的上升; 在“中途點(midway point) ”,當聽覺面將一個音頻通道平面及鄰近面一分為二時,音調形成準確的五度音程(fifth)(數學上,其應該是三全音程間隔,但是存在避免這個的大量原因)。當手更遠地向前繼續(xù)時,可變音調的頻率繼續(xù)上升,直至操作員最終在音調精確地跨越八度音程的點處“到達”下一音頻面為止。繼續(xù)聽各個通道,操作員向前或向后平移手以依次訪問每個通道。最后,操作員僅僅閉合其手以選擇一個通道,終止推回進程并使音頻平面集合“彈(spring)”到對準中。其它通道(未選擇的)逐漸減弱到聽不見,圖示符也一樣。該示例已描述了關于推回應用的變型,其中,再次提供了相同的設備訪問鄰近上下文以及離散化數據元素的快速選擇(這里,單個的音頻流)。該情形代替了聽覺反饋機制,以及尤其是利用了可靠的用于辨別某些頻率間隔的人類能力的聽覺反饋機制,以向操作員提供關于其是否離目標通道足夠近以做出選擇的信息。在“聽得見的”信號僅僅間歇地呈現的語音通道的情況下,這尤其重要;即使當通道本身已變成無聲時,音頻反饋圖示符的連續(xù)特性也使其呈現而且清楚。應該指出,如果本示例中的SOE包括使音頻空間化的能力,則可以極大地提高對相繼音頻層后退到向前距離中以及從后面接近(反之亦然)的感受。另外,與在操作員前面的隨后層和在操作員后面的先前層一起,更確切地將選擇的音頻面“定位”在操作員的位置處的機會是有效地可利用的。音頻圖示符的其它例示是可能的,并且實際上各種通道內容的包括其頻譜分布的特性,趨向于指示哪種圖示符將是最清楚地可辨別的。通過示例,另一種音頻圖示符格式保持不變的音量,但是采用周期性的滴答聲(clicking),而滴答聲之間的間隔與聽覺面和最近的音頻通道平面之間的接近度成比例。最后,在某些情形下,并且取決于操作員的分辨能力(acuity),可能的是,使用推回而根本沒有反饋圖示符。參考推回機制,當在數據集的表示中的空間限位裝置的數量和密度增加趨向非常大時,空間及其參數化變得有效地連續(xù)一就是說,非限位的。推回在這種極端下仍然保持有效,部分是因為可以將在推回的每次調用之前的數據集的“初始狀態(tài)”視為被簡單實現為死區(qū)的臨時限位裝置。這種非定位的推回的應用可以在與無限(或至少充分地)可放大的圖有關的構思中發(fā)現。放大功能的推回控制將手位置的位移與仿射標度值(affine scale value)相關聯(lián),使得當操作員向前或向后推其手時,放大的程度減小或增大(分別地)。但是,因為位置到放大參數的直接映射確保了使控制手返回到死區(qū)也實現了放大值到其初始狀態(tài)的返回, 所以原始的、預推回的放大狀態(tài)總是能夠容易地訪問的。以上示例中描述的每個場景提供了對推回系統(tǒng)的顯著方面及其在SOE下的使用的描述。還應該理解的是,由于通過允許指導人類移動的特定類型的感知反饋所能夠得到的效率和精確度,本文中描述的動作中的每個能夠立即被準確地和綜合地采用。在其它場合中,操作員還發(fā)現在大哥連續(xù)推回“進程”中保持數十秒是有用的在更長時間間隔上的推回為瀏覽的和上下文獲取的目標工作得很好。以上描述的示例采用了物理輸入(姿勢)到表示空間的線性映射真實空間中的 A單元對控制手進行平移總是導致表示空間中的B單元(主要的)的平移,而不管在其上采取A平移的真實空間的位置。但是,其它映射是可能的。特別的,大多數人類操作員享受的良好的肌肉運動控制的程度允許使用非線性映射,其中,例如,與臨界附近的姿勢運動能轉換成沿參數化的維的位移相比,遠離活動臨界的差分姿勢平移能轉換成沿參數化的維的更大的位移。
標記標簽SOE或實施例預期用戶的一個或多個手指上的標記標簽的使用,使得系統(tǒng)能夠定位用戶的手、識別其正查看的是左手還是右手以及哪些手指是可見的。這允許該系統(tǒng)檢測用戶手的位置、取向以及移動。該信息允許多個姿勢被系統(tǒng)識別并且被用戶用作命令。在一個實施例中,標記標簽為物理標簽,其包括基片(在本實施例中適于附在人手上的各個位置)和以獨特識別圖案設置在基片表面上的離散標記。標記和相關聯(lián)的外部感測系統(tǒng)可以運行于允許準確、精確、快速并連續(xù)獲取它們的三維空間位置的任何域(光、電磁、靜磁等)中。標記本身可以有源地運行(例如通過發(fā)射結構化的電磁脈沖),或者無源地運行(例如與本實施例一樣通過光回射)。在獲取的每個幀中,檢測系統(tǒng)接收恢復后的三維空間位置的聚集“群(cloud) ”,其中,三維空間位置包括來自在儀器工作空間容積(在攝像機或其它檢測器的可見范圍內) 中存在的標簽的所有標記。每個標簽上的標記具有充分的多樣性,并以獨特的圖案來設置, 使得該檢測系統(tǒng)能夠執(zhí)行以下任務(1)分段,其中每個恢復后的標記位置被分配給形成單個標記的點的一個且僅一個子集合;(2)作標注,其中每個分段后的點的子集合被標識為特定標簽;(3)定位,其中標識后的標簽的三維空間位置被恢復;以及(4)取向,其中標識后的標簽的三維空間取向被恢復。如以下參考圖13所描述的,通過標記圖案的特定性質, 使任務⑴和⑵變成可能。在一個實施例中,標簽上的標記被附于常規(guī)網格位置的子集。如本實施例中一樣, 該基礎的網格可以是傳統(tǒng)的笛卡爾類型;或者替換地可以是某些其它常規(guī)平面棋盤式布置 (例如三角形/六邊形的平鋪排列)。相對于標記感測系統(tǒng)的已知空間分辨率來建立網格的尺寸和間隔,使得相鄰的網格位置不可能被混淆。針對所有標簽的標記圖案的選擇應該滿足以下約束通過旋轉、平移或鏡像的任意組合,標簽的圖案不與任何其它標簽的圖案相同??梢赃M一步對標記的多樣性和排列進行選擇,以便容許某指定數量的標記分量的丟失 (或遮擋)。在任意變換之后,其應該仍然不可能使折衷后的模塊與任何其它模塊相混淆。圖13是根據實施例的標記標簽的圖。示出了多個標簽1301A-1301E(左手)以及 1302A-1302E (右手),但是實施例不限于如此。每個標簽是矩形的,并且在本實施例中包括 5X7的網格陣列。選擇矩形形狀作為確定標簽取向的輔助,并且減少鏡像復制的可能性。 在所示出的實施例中,針對每個手上的每個手指都有標簽。在某些實施例中,每個手使用一個、兩個、三個或四個標簽可能就足夠了。每個標簽具有不同灰度等級或顏色陰影的邊界。 在該邊界之內是3X5的網格陣列。標記(由圖13中的黑點表示)被置于網格陣列中的某些點處以提供信息。通過將每個圖案分段成“公共”和“獨特”的子圖案,可以將資格信息編碼到標簽的標記圖案中。例如,本實施例規(guī)定了兩個可能的“邊界圖案”,矩形邊界周圍的標記的分布。 由此建立了標簽“家族”一計劃用于左手的標簽可能因此全部使用與標簽1301A-1301E中所示的相同的邊界圖案,而附到右手手指的那些標簽可能被分配如標簽1302A-1302E中所示的不同圖案。選擇該子圖案,使得在標簽的所有取向中左圖案能夠區(qū)別于右圖案。在所示的示例中,左手圖案包括在每個拐角中的標記以及從拐角網格位置起的第二中的一個標記。右手圖案具有僅在兩個拐角中的標記以及在非拐角網格位置中的兩個標記。對圖案的檢查表明,只要四個標記中的任何三個是可見的,左手圖案就肯定能夠區(qū)別于左手圖案。在一個實施例中,也可將邊界的顏色或陰影用作偏手性(handedness)的指示。當然,每個標簽必須仍然采用獨特的內部圖案,分布于其家族的公共邊界內的標記。在示出的示例中,已經發(fā)現由于手指的旋轉或取向,內部網格陣列中的兩個標記足以沒有重復地唯一標識十個手指中的每個。即使標記之一被遮擋,標簽的圖案及偏手性的組合也導致唯一的標識符。在本實施例中,柵格位置視覺上呈現在剛性基片上,作為對將每個回射標記附在其預期位置的(手動)任務的輔助。這些柵格和預期標記位置通過彩色噴墨打印機被精確打印到基片上,該基片在這里是一片(初始)柔軟的“收縮膜”。每個模塊從該片切開,然后被烘烤,在該熱處理期間,每個模塊經受精確并可重復的收縮。在該過程后的短暫間隔內, 冷卻的標簽可被輕微成型一例如,沿手指的長度曲線;其后,基片是適度剛性的,且標記可附在所指示的柵格點。在一個實施例中,標記自身是三維的,如通過粘合劑或某些其它適當方式附于基片的小的反射球。標記的三維性比二維標記更有助于檢測和定位。不過,兩者均可以使用, 而不脫離本發(fā)明的精神和范圍。目前,標簽通過維可牢(Velcro)或其它適當方式被附于操作員所戴的手套上,或者替選地,使用溫和的雙面膠帶直接附于操作員的手指上。在第三實施例中,可以與剛性基片一起分配,并將各標記直接粘附或“繪制”在操作員的手指和手上。姿勢詞匯本發(fā)明預期由手姿態(tài)、取向、手組合以及取向混合構成的姿勢詞匯。在本發(fā)明的姿勢詞匯中,還實施了用來設計并溝通姿態(tài)和姿勢的符號語言(notation language)。姿勢詞匯是用于以緊湊的文本形式來表示即時的運動關聯(lián)(kinematic linkage)的“姿態(tài)狀態(tài)” 的系統(tǒng)。這里所討論的關聯(lián)可以是生物學的(例如人手,或者整個人體;或者蝗蟲腿;或者狐猴的關節(jié)脊柱),或者替代地可以是非生物的(例如機器人手臂)。在任何情況下,關聯(lián)可以是單一的(脊柱)或者是分支的(手)。本發(fā)明的姿勢詞匯系統(tǒng)針對任何特定的關聯(lián)建立固定長度的字符串;因此,占據字符串“字符位置”的特定ASCII字符的聚集是關聯(lián)的即時狀態(tài)或“姿態(tài)”的唯一描述。手姿態(tài)圖14示出了根據實施例的在SOE姿勢詞匯中的手姿態(tài)。SOE假設一只手的五個手指中的每個都被使用。這些手指的代碼為P-小手指、r-無名指、m-中指、i-食指以及t-拇指。在實施例的姿勢詞匯中限定并示出了針對手指和拇指的多個姿態(tài)。姿勢詞匯字符串針對關聯(lián)中的每個可表達的自由度(本例中為手指)建立單個字符位置。此外,每個這樣的自由度被理解為離散化的(或“量化的”),從而可通過在該字符串位置分配有限數量的標準ASCII字符中的一個來表示其全范圍的運動。這些自由度相對于特定于身體的原點及坐標系統(tǒng)(手背,蝗蟲身體的中心;機器人手臂的基部等)來表示。因此,使用少量的附加姿勢詞匯字符位置,在更全局的坐標系統(tǒng)中來表示作為整體的關聯(lián)的位置和取向。使用ASCII字符來定義和標識了多個姿態(tài)。某些姿態(tài)被分成拇指的和非拇指的。 該實施例中的SOE使用編碼,使得ASCII字符本身就是姿態(tài)的暗示。不過,任何字符都可用于表示姿態(tài),無論是暗示性的與否。另外,本發(fā)明并不要求使用ASCII字符用于符號字符串。任何適當的符號、數字或其它表示都可使用,而不脫離本發(fā)明的范圍和精神。例如,如果需要,符號可以針對每個手指使用兩個比特,或者如所需要地使用其它數量的比特。彎曲的手指由字符來表示,而彎曲的拇指由“〉”表示。向上指的伸直的手指或拇指由“1”指示,而某個角度的手指或拇指由“\”或“/”表示?!癬”表示直指向側面的拇指,而“ χ ”表示指向平面內的拇指。使用這些單獨的手指和拇指描述,可以使用本發(fā)明的方案來定義和書寫穩(wěn)健數量的手姿態(tài)。每個姿態(tài)由五個字符利用上述的p-r-m-i-t順序來表示。保持平并平行于地面的手表示為“11111”。拳表示為“~~~~>”。"OK',標志被表示為“111~>”。當使用暗示性字符時,字符串提供了直接的“人可讀性”的機會。通常著眼于快速識別和明顯相似性來選擇描述每個自由度的可能的字符集。例如,豎杠(‘I’)可能意味著關聯(lián)元素為“直的”,(‘L’ )可能意味著90度的彎曲,而彎曲形()可指示急劇的彎曲。如以上所描述的,可以根據需要來使用任何字符或編碼。采用上述姿勢詞匯字符串的任何系統(tǒng)在此享受字符串比較的高計算效率的好處一識別或搜索任何指定的姿態(tài)完全變成在期望的姿態(tài)字符串和即時的真實字符串之間進行的“字符串比較”(例如,UNIX的‘strcmpO’功能)。此外,“通配符”的使用為編程人員或系統(tǒng)設計者提供了額外的熟悉效率和功效即時狀態(tài)與匹配無關的自由度可以被指定為問號(‘?’);可以分配另外的通配符的含義。取向除手指和拇指的姿態(tài)以外,手的取向也可以表示信息。描述全局空間取向的字符也可以透明地進行選擇;當在取向字符位置遇到字符‘〈’、‘>’、‘~’以及‘V’時,其可以用于指示左、右、上和下的意思。圖15是根據實施例的在姿勢詞匯中的取向的圖。姿勢詞匯的取向包括手取向描述符以及組合了姿態(tài)和取向的編碼示例。在本發(fā)明的一個實施例中, 兩個字符位置首先指定手掌的方向,其次是手指的方向(如果它們是直的,與手指的實際彎曲無關)。針對這兩個位置的可能的字符表示取向的‘身體為中心’概念‘_’、‘ + ’、‘X’、 ‘*’、‘~’以及‘V’描述了向中間、側向、前向(向前,從身體離開)、后向(向后,從身體離開)、頭部的(向上)以及尾部的(向下)。在本發(fā)明的實施例的符號方案中,指示字符的五個手指姿態(tài)后面跟著冒號,然后是兩個取向字符,以定義完整的命令姿態(tài)。在一個實施例中,起始位置指“xyz”姿態(tài),其中當該姿態(tài)用右手來作時,拇指向上直指,食指向前指,而中指垂直于食指指向左。這由字符串 “~~xl-:-x”表示?!甔YZ-手’是利用人手的幾何形狀以允許視覺呈現的三維結構的全部六_自由度 (six-degree-of-freedom)導航的技術。盡管該技術僅僅依賴于操作員手的大量平移和旋轉一使得其手指可以大體上保持于所需要的任何姿態(tài)一本發(fā)明實施例優(yōu)選靜態(tài)結構,其中食指指向離開身體的方向;拇指指向天花板;而中指指向左右。由此,這三個手指描述 (粗略地,但是具有清楚明顯的意圖)了三維空間坐標系統(tǒng)的三個相互正交的軸因此稱為 ‘XYZ 手,。然后,利用保持在操作員身體前預定‘中立位置(neutral location) ’處的手(處于如以上所描述的姿態(tài)的手指)來進行XYZ手導航。對三維空間物體(或相機)的三個平移和三個旋轉自由度的獲取以下面的自然方式來實現手的左右移動(相對于身體的自然坐標系統(tǒng))導致沿著計算上下文的X-軸移動;手的上下移動導致沿著受控上下文的Y-軸移動;而手的前后移動(朝向/離開操作員身體)導致在上下文內的2-軸運動。類似地, 操作員的手關于食指的旋轉導致計算上下文取向的‘滾動’變化;通過操作員手分別關于中指和拇指的旋轉,類似地實現‘傾斜(Pitch),和‘搖擺(yaw),變化。注意,盡管‘計算上下文’在此用來指通過XYZ手方法控制的實體一并且看起來暗示合成的三維空間物體或相機一應理解,該技術同樣可用于控制真實世界物體的各自由度例如,配備有適當的旋轉執(zhí)行器的視頻或運動畫面相機的搖動/傾斜/滾動(pan/ tilt/roll)控制。另外,甚至在虛擬域中,由XYZ-手姿態(tài)提供的物理自由度可能稍微較不完全地被映射在本實施例中,XYZ-手還用于提供對大全景顯示圖像的導航接入,從而操作員手的左右和上下運動導致關于圖像的預期的左右或上下‘搖動(panning)’,而操作員手的前后運動映射到‘縮放(zooming)’控制。在每種情況下,手的運動和所導致的計算平移/旋轉之間的耦合可以是直接的 (即,通過某些線性或非線性函數,操作員手的位置或旋轉偏移一對一地映射到計算上下文中的物體或相機的位置或旋轉偏移),或者是間接的(即,通過某些線性或非線性函數,操作員手的位置或旋轉偏移一對一地映射到計算上下文中的第一或更高階導數的位置/取向;然后,正在進行的積分實現計算上下文中的真實零階位置/取向的非靜態(tài)變化)。后面的這種控制手段類似于使用汽車的‘氣動踏板’,其中踏板的固定偏移或多或少地導致不變的汽車速度。作為真實世界XYZ-手的本地六-自由度坐標原點的‘中立位置’可以被建立作為 (1)空間中的絕對位置和取向(比方說,相對于封閉房間);(2)相對于操作員自身的固定位置和取向(例如,在身體前面八英寸,下顎以下十英寸以及側向與肩平面對齊),與操作員的整個位置和‘朝向’無關;或者(3)交互式地,通過操作員的有意的二次動作(例如,使用由操作員的‘另一只’手發(fā)出的姿勢命令,該命令指示XYZ手的當前位置和取向此后應被用作平移和旋轉的原點)。另外,方便的是提供關于XYZ手的中立位置的‘停止(detent)’區(qū)域(或‘死區(qū)’), 使得在該容積內的移動不映射到受控上下文中的移動。其它姿態(tài)可包括[lllll:vx]為手掌朝下且手指向前的平的手(拇指平行于手指)。[lllll:x"]為手掌朝前且手指朝向天花板的平的手。[11111:-χ]為手掌朝向身體中心(如果是左手則朝右,如果是右手則朝左)且手指朝前的平的手。[""""--x]為單手拇指向上(拇指指向天花板)。["~ -:-χ]為模仿指向前方的槍。兩手組合實施例的SOE預期單手命令和姿態(tài)以及兩只手的命令和姿態(tài)。圖16是根據實施例的在SOE的姿勢詞匯中的兩手組合和相關符號的圖?;仡櫟谝皇纠械姆枺巴耆V?(full stop) ”表明其包括兩個閉合的拳。“快照”示例中,每只手的拇指和食指伸展,拇指彼此互指,定義球門柱形的框?!岸婧凸?jié)流閥開始位置”為手指和拇指指向上、手掌朝向屏幕。取向混合圖17是根據實施例的在姿勢詞匯中的取向混合的圖。在所示出的示例中,該混合通過在手指姿態(tài)字符串之后將取向符號對放入括號中來表示。例如,第一命令顯示了全部直指的手指位置。第一對取向命令將導致手掌平、朝向顯示器,而第二對使手旋轉到向著屏幕45度的斜度。盡管在該示例中示出了混合對,但在SOE中預期任何數量的混合。示例性命令圖19是根據實施例的與SOE —起使用的多個命令的示例。盡管這里的某些討論是關于對顯示器上光標的控制,但是SOE不限于該行為。實際上,SOE可廣泛應用于操縱屏幕上的任何和全部的數據及部分數據以及顯示的狀態(tài)。例如,在視頻媒體的回放期間,可用命令來取代視頻控制。命令可以用于暫停、快進、回退等。另外,可以實施命令來放大或縮小圖像、改變圖像的取向、在任何方向上搖動等。SOE還可用于代替菜單命令,如打開、關閉、 保存等。換句話說,能夠想象到的任何命令或行為都可以利用手姿勢來實現。圖18是根據實施例的SOE的系統(tǒng)操作的流程圖。在1801,檢測系統(tǒng)檢測標記和標簽。在1802中,確定是否檢測到標簽和標記。如果沒有,系統(tǒng)返回到1801。如果在1802 中檢測到標簽和標記,則系統(tǒng)前進到1803。在1803中,系統(tǒng)從所檢測的標簽和標記中識別手、手指和姿態(tài)。在1804中,系統(tǒng)識別姿態(tài)的取向。在1805中,系統(tǒng)識別所檢測到的一只或多只手的三維空間位置。(請注意,1803、1804和1805中的任何或全部可以組合成單個步驟)。在SOE的一個實施例中,操作1801-1805通過相機上的處理器來完成。在其它實施例中,如果需要,處理可以通過系統(tǒng)計算機來完成。解析和轉換系統(tǒng)能夠“解析”和“轉換”由底層系統(tǒng)恢復的低級姿勢流,并將那些被分析和轉換的姿勢轉換成事件數據或命令流或,事件數據或命令流可用來控制寬范圍的計算機應用和系統(tǒng)。這些技術和算法可以在由計算機代碼構成的系統(tǒng)內實施,計算機代碼提供實施這些技術的引擎以及構建利用該引擎性能的計算機應用的平臺。一個實施例關注于使人手的豐富的姿勢能夠在計算機界面中使用,還能夠識別由其它身體部位(包括但不限于臂、軀干、腿和頭)作出的姿勢以及各種非手的物理工具作出的姿勢,物理工具為靜態(tài)的和有關節(jié)的,包括但不限于卡鉗、圓規(guī)、靈活的曲線近似器以及各種形狀的指向設備。標記和標簽可應用于可以由操作員根據需要攜帶和使用的物品和工具。這里所描述的系統(tǒng)合并了多個創(chuàng)新,多個創(chuàng)新使得可以建立具有豐富的可以被識別和按照其來動作的姿勢的姿勢系統(tǒng),而同時易于集成到應用中。一個實施例中的姿勢解析和轉換系統(tǒng)由以下構成1) 一種以幾個不同等級的聚集指定(用于在計算機程序中使用的編碼)姿勢的緊湊和有效的方式a.單手的“姿態(tài)”(相對于彼此的手的各部分的配置和取向),在三維空間中的單手的取向和位置。b.兩手組合,針對任一只手,考慮姿態(tài)、位置或兩者都考慮。c.多人組合;系統(tǒng)可跟蹤多于兩只手,因此多于一個人可協(xié)作地(或在游戲應用情況下,競爭地)控制目標系統(tǒng)。d.連續(xù)姿勢,其中姿態(tài)被組合在一個系列中;我們稱之為“動畫”姿勢。
e. “字形”姿勢,其中操作員跟蹤空間中的形狀。2) 一種注冊來自與給定的應用上下文有關的以上每一類別的特定姿勢的編程技術。3)用于解析姿勢流使得被注冊的姿勢可被識別以及封裝那些姿勢的事件可被傳遞到相關的應用上下文中的算法。具有構成元素(Ia)至(If)的規(guī)范系統(tǒng)(1)提供了使用這里所描述的系統(tǒng)的姿勢解析以及轉換能力的基礎。單手“姿態(tài)”被表示為以下的字符串i)手指和手背之間的相對取向,ii)量化到小數量的離散狀態(tài)。使用相對聯(lián)合取向使得這里所描述的系統(tǒng)可以避免與不同的手尺寸和幾何形狀有關的問題。使用該系統(tǒng)不需要“操作員校準”。另外,將姿態(tài)指定為字符串或者相對取向的集合使得更為復雜的姿勢規(guī)范通過將姿態(tài)描述與另外的過濾器的及規(guī)范組合而易于被創(chuàng)建。使用針對姿態(tài)規(guī)范的小數量的離散狀態(tài)使得能夠緊湊地指定姿態(tài),并能夠利用多種底層跟蹤技術(例如,使用相機的無源光學跟蹤、使用點亮的點和相機的有源光學跟蹤、 電磁場跟蹤等)來確保正確的姿態(tài)識別。在每一類別(Ia)至(If)中的姿勢可以被部分(或最小地)指定,從而忽略非關鍵數據。例如,其中兩個手指的位置確定而其它手指位置不重要的姿勢可以通過單個規(guī)范來表示,該單個規(guī)范中,給出了兩個相關手指的操作位置,且在相同字符串內,針對其它手指, 列出了 “通配符”或普通“忽略這些”的指示。這里所描述的用于姿勢識別所有創(chuàng)新包括但不限于多層次規(guī)范技術、使用相對取向、量化數據以及允許在每一級別的部分或最小規(guī)范,其推廣到手姿勢規(guī)范之外,推廣到使用其它身體部位以及“制造的”工具和物體的姿勢規(guī)范。用于“注冊姿勢”的編程技術(2)由限定的應用編程接口調用的集構成,其允許編程人員來定義引擎應使哪些姿勢可用于運行系統(tǒng)的其它部分。這些API例程可以在應用建立時間來使用,從而創(chuàng)建在整個運行系統(tǒng)的工作期間使用的靜態(tài)接口定義。這些API例程還可以在運行過程中使用,從而使接口特性在不工作時改變。這種接口的實時改變使得下述行為成為可能i)建立復雜的上下文和條件控制狀態(tài),ii)動態(tài)地添加滯后現象(hysterisis)到控制環(huán)境,并且iii)創(chuàng)建應用,其中用戶能夠改變或擴展運行系統(tǒng)自身的接口詞匯。用于解析姿勢流的算法(3)將在⑴中指定并在(2)中注冊的姿勢與進入的低級別姿勢數據進行比較。當針對注冊的姿勢的匹配被識別時,表示匹配姿勢的事件數據被向上傳遞到堆棧,到達運行的應用。在設計該系統(tǒng)時期望有效的實時匹配,且指定的姿勢被作為被盡可能快地處理的樹狀概率。另外,操作員內部使用的用以識別指定姿勢的原語比較也可以被應用程序的編程人員使用,使得即使從應用上下文內也可以進行進一步比較(例如,復雜或復合姿勢中的靈活的狀態(tài)檢查)。識別“加鎖(locking)”語義是這里所描述的系統(tǒng)的創(chuàng)新。這些語義通過注冊 API (2)(以及,在更小程度上,嵌入到規(guī)范詞匯(1)內)來暗示。注冊API調用包括i) “進入(entry) ”狀態(tài)通知者以及“繼續(xù)(continuation) ”狀態(tài)通知者,以及ii)姿勢優(yōu)先級指定者。如果姿勢已被識別,則針對相同或較低優(yōu)先級的姿勢,其“繼續(xù)”條件優(yōu)先于所有的“進入”條件。進入和繼續(xù)狀態(tài)之間的這種區(qū)別大大增加了所感知的系統(tǒng)的可用性。這里所描述的系統(tǒng)包括面對真實世界的錯誤和不確定性的健壯操作的算法。來自低級跟蹤系統(tǒng)的數據可能是不完整的(由于多種原因,包括在光學跟蹤、網絡丟棄或處理延時中標記的閉塞等)。丟失的數據通過解析系統(tǒng)來標記,且被插值(interpolate)成“最后已知”或“最有可能”的狀態(tài),這依賴于所丟失數據的量和上下文。如果關于特定姿勢組成的數據(例如,特定聯(lián)合的取向)丟失,但是該特定組成的 “最后已知”的狀態(tài)可被分析為在物理上是可能的,則系統(tǒng)在其實時匹配中使用該最后已知的狀態(tài)。相反地,如果該最后已知狀態(tài)被分析為在物理上是不可能的,則該系統(tǒng)回退到針對該組成的“最佳猜測范圍(best guess range) ”,并在其實時匹配中使用該合成數據。這里所描述的規(guī)范和解析系統(tǒng)已被仔細地設計以支持“偏手性不可知性”,使得對于多手的姿勢,任一只手被允許滿足姿態(tài)需求。使用在擴展的景深上提取的三維信息的基于姿勢的控制圖20是根據實施例的基于姿勢的控制系統(tǒng)2000的方框圖,其中,該控制系統(tǒng) 2000包括在擴展的景深上提取三維信息的成像系統(tǒng)。用戶將手101和102定位在攝像機2004A-2004D的陣列的觀察區(qū)域中。如以下詳細描述的,陣列2004A-2004D中的至少兩臺攝像機是波前編碼攝像機,波前編碼攝像機中的每臺包括波前編碼成像系統(tǒng)的元件,波前編碼成像系統(tǒng)包括波前編碼掩模(mask)(本文中也被稱為“非球面光學元件(optical aspheric element) ”或“光學元件”)。用戶的手和/或手指可以包括或不包括以上描述的標記標簽。攝像機2004A-2004D檢測或捕獲包括手指和手101、102的位置、取向及移動的手指和手101、102的圖像,以及生成到預處理器2005的輸出信息。如以下所描述的,預處理器2005包括或耦合到波前編碼數字信號處理2008。替選地,波前編碼數字信號處理能夠被包括在或分布在系統(tǒng)2000的一個或更多個其它組件中。波前編碼數字信號處理2008被配置成極大地擴展成像系統(tǒng)的景深。預處理器2005將攝像機輸出轉換成被提供到系統(tǒng)的計算機處理單元2007的姿勢信號。在這種情況下,預處理器2005生成三維空間點重構和骨骼點標記。姿勢轉換器2006 將空間信息和標記器運動信息轉換成能被計算機處理器解釋的命令語言,以更新顯示器上光標的位置、形狀和動作。計算機2007使用輸入信息來生成用于控制一個或更多個屏幕上光標的命令,以及將視頻輸出提供到顯示器2003。替換實施例的預處理器2005、姿勢轉換器2006和計算機2007中的一個或更多個能被組合成單個的設備。不考慮系統(tǒng)配置,預處理器2005、姿勢轉換器2006和計算機2007中的每個的功能和/或功能性與本文中其它地方描述的一樣。另外,雖然該示例示出了使用四臺攝像機來檢測用戶的手101、102的位置、取向、 和移動,實施例不限于如此。根據系統(tǒng)或工作站配置的需要,系統(tǒng)配置能夠包括兩個或更多個攝像機。另外,盡管在示例實施例中對稱地布置攝像機,但是沒有對這種對稱的要求。 因此,在下文中可使用允許用戶的手的位置、取向、和移動的具有任意定位的至少兩臺攝像機。盡管示出系統(tǒng)具有作為輸入的單個用戶的手,但是系統(tǒng)能夠追蹤任意數量的多個用戶的手。另外,排除手或加上手,系統(tǒng)可追蹤用戶身體的任意部位或多個部位,包括頭、 腳、腿、手臂、肘、膝蓋等。而且,系統(tǒng)能追蹤任意數量的有生命對象或無生命對象,以及不限于追蹤身體的部位。特別的,對于設置光學傳感器以致有意地或潛在地最接近于操作員的手的姿勢分析系統(tǒng)(或等同地被追蹤的工具),由此而被領會的元件通常將涵蓋若干級或許多級的相對距離量級的范圍,貫穿操作員運動的自然序列。始終如一地提供橫貫如此范圍的距離的事件的焦點分辨的記錄,超出了傳統(tǒng)光學成像系統(tǒng)的能力。但是,在為了宏觀設備和裝置設計目的的對象追蹤或操作員追蹤的上下文中,經常期望的是對中距離(medium-distance) 的幾何布置的這些特寫(close-approach)。因此,有價值的是,提供用于確保在操作員活動的預期范圍內的局部對比度或顯著特征穩(wěn)定性的技術(為了傳統(tǒng)光學裝置不適當的目的)。當描述如本文系統(tǒng)中所使用的在擴展的景深中提取三維信息時,到場景中的點的距離能夠根據該點在同時捕獲的兩個或更多個圖像中的位置而被估計。當已知成像器之間的3D關系時,能夠根據基本的幾何關系來計算點的三維(3D)位置。經常稱為立體相關或立體深度計算的根據多個圖像計算空間位置的挑戰(zhàn)是,自動地和精確地將在一個圖像中的點的映射與在另一圖像中的映射相關聯(lián)。這通常是通過將來自一個圖像的圖像特征與一個或更多個其它特征相互關聯(lián)來完成的。但是,所有立體匹配方法中的基礎的假設是,為了將該點與其在另一圖像中的位置相匹配,圖像中必須存在某個可識別的局部對比度或特征。因此,當由于散焦而在圖像中不存在具備對比度或特征時,問題出現了一立體匹配在散焦的圖像的區(qū)域中不產生準確的結果。用于擴展圖像的焦點深度的傳統(tǒng)方法是減少攝像機鏡頭光瞳的直徑(“縮小光圈 (stopping down)”)。但是,兩個副作用限制了該技術的有用性。首先,與光瞳直徑比的平方相等的因子降低了成像系統(tǒng)的靈敏度。第二,與光瞳直徑比相等的因子降低了最大空間頻率響應,其限制圖像的分辨率和對比度。因此,在傳統(tǒng)成像系統(tǒng)中,在景深、曝光時間、和整體對比度之間存在權衡。在多攝像機排列(ranging)系統(tǒng)的情況下,最后效果將是立體深度與工作范圍之間的折衷。增加景深而不縮小鏡頭光圈的替換方法是引入在攝像機鏡頭光瞳方面的指定規(guī)定的相位掩模(Phase mask) 0通過適當選擇相位函數,傳感器上捕獲的圖像的后續(xù)電子處理能夠恢復擴展的景深。被稱為波前編碼的這種技術通常提供了在景深、攝像機動態(tài)范圍、 和信噪比之間的折衷。波前編碼使為特定應用優(yōu)化攝像機參數成為可能。不需要非常高的動態(tài)范圍以及其中的照明處于用戶控制之下的應用,例如本文中描述的姿勢識別,能夠極大地從波前編碼中獲益以在規(guī)定容積的空間中取得高準確度。
如以上描述的,實施例的系統(tǒng)包括這樣的技術在該技術中,使用多個波前編碼攝像機的處理后的輸出來確定選擇的對象在場景中的位置。由波前編碼引用的擴展的景深能用于多個應用,包括姿勢識別和其它基于任務的成像工作的廣闊的陣列,以顯著地提供其性能。盡管需要最少兩個攝像機,但是該實施例中能夠使用的攝像機的數量沒有上限。場景提取能夠包括用于具有兩個或更多個攝像機的范圍提取的多個處理技術中的任意一個 (例如相關)。本文中描述的實施例包括所有的波前編碼相位函數及其相應的解碼內核,其中,解碼內核在處理后導致擴展的景深。如在波前編碼成像系統(tǒng)中所使用的,波前編碼是使用一般化的非球面光學裝置和數字信號處理來極大地提高成像系統(tǒng)的性能和/或減少成像系統(tǒng)的成本的通常技術。采用的非球面光學裝置的類型導致對散焦相關的相差(aberration)不敏感的光學成像特性。 但是,從光學裝置沒有直接產生銳利和清晰的圖像,施加到采樣圖像的數字信號處理產生銳利和清晰的最終圖像,最終圖像也對散焦相關的相差不敏感。使用波前編碼來極大地提高成像性能,同時還減小成像系統(tǒng)的大小、重量和成本。 波前編碼以基礎的方式來組合無旋轉對稱的非球面光學元件和數字信號處理,以極大地擴展成像系統(tǒng)的景深。例如,對于給定的光圈大小或F/#,與傳統(tǒng)的成像系統(tǒng)相比,利用波前編碼,成像系統(tǒng)的景深或焦點深度能提高十倍或更多倍。實施例的波前編碼光學元件為相表面,并且同樣地不吸收光或者不增加曝光或照明要求。關于傳統(tǒng)成像技術,如果沒有光強度的驚人損失,例如要求縮小光圈,則這樣的擴展景深性能是不可能的。增加的景深/焦點深度通過控制散焦相關的像差,還能夠使成像系統(tǒng)在物理上更便宜、更小或更輕,而傳統(tǒng)上是通過添加鏡頭元件或增加鏡頭復雜度來控制散焦相關的像差。能夠用波前編碼來控制的散焦相關的像差包括色像差(chromatic aberration)、匹茲堡彎曲(Petzval curvature)、散光(astigmatism)、球面像差(spherical aberration)以及溫度相關的散焦。作為混合成像方法的波前編碼組合了光學器件和電子器件以增加景深,并且減少光學元件的數量、制造公差(fabrication tolerance)、和整體的系統(tǒng)成本。圖21是根據實施例的在基于姿勢的控制系統(tǒng)中使用的波前編碼成像系統(tǒng)2100的方框圖。波前編碼成像系統(tǒng)2100的光學部2101是利用放置在孔徑光闌附近的波前編碼光學元件2102修改后的傳統(tǒng)光學系統(tǒng)或攝像機。添加編碼光學元件導致具有專門的、定義明確的模糊或點擴散函數的圖像,其中該模糊或點擴散函數對散焦不敏感。施加到采樣圖像的數字處理2103產生銳利的和清晰的圖像2104,圖像2104對散焦作用非常不敏感。圖22是根據實施例的用于使用包括兩臺波前編碼攝像機的波前編碼成像系統(tǒng)來在擴展的景深上提取三維信息的基于姿勢的控制系統(tǒng)2200的方框圖。系統(tǒng)2200包括如以上參考圖21所描述的至少兩個波前編碼攝像機2201、2202。處理器被耦合以接收波前編碼攝像機2201、2202的輸出,以及對攝像機輸出執(zhí)行數據處理。數據處理包括,僅舉幾個示例,去卷積2220和范圍提取2230、以及生成擴展焦點范圍的圖2240。在波前編碼系統(tǒng)2200中,系統(tǒng)的光學部分(例如,波前編碼攝像機2201、2202)對結果圖像進行“編碼(code)”以產生中間圖像2210。因為波前編碼元件(例如,圖21,元件 2102)有目的地使任何圖像中的所有點變模糊,中間圖像2210顯得散焦。在這樣的中間圖像2210中,使視野中的幾乎所有對象變模糊,但是相等地使其變模糊。相反,傳統(tǒng)的光學器件通常形成具有可變模糊函數的圖像,其中,該可變模糊函數取決于到場景中的每個對象的距離。為了從中間的波前編碼的圖像2210中產生銳利的和清晰的圖像,使用電子器件 (例如,波前編碼數字信號處理)來通過去除系統(tǒng)相關的圖像模糊,對模糊的中間圖像進行處理或“解碼(decode) ”2220、2230。能夠通過軟件或利用專用硬件解決方案來實時地執(zhí)行
數字濾波。實施例的系統(tǒng)光學器件包括如以上參考圖21所描述的、具有至少一個執(zhí)行波前編碼功能的附加光學元件的傳統(tǒng)組件。將該元件放置在光學路徑上,通常在系統(tǒng)的孔徑光闌附近,以使?jié)u暈(vignetting)最小化。對檢測到的圖像執(zhí)行的信號處理取決于光學器件、波前編碼元件、和數字檢測器的第一階屬性(first-order property) 0盡管能使用衍射表面,但是一般的波前編碼元件是無旋轉對稱的和光滑的。元件可以是分立組件,或者通過添加一般化的非球形表面能夠將元件集成到傳統(tǒng)的鏡頭元件上。所有的編碼元件對光進行重定向,使得除了同軸(on-axis)光線之外沒有光線向傳統(tǒng)的幾何焦點傳播。實際上,沒有兩條光線正沿著光軸向同一點傳播。系統(tǒng)不在任何圖像平面上形成清晰的圖像。波前編碼成像系統(tǒng)的光學器件部分的主要作用是使結果圖像對焦點相關的像差, 例如散焦、球面像差(spherical aberration)、散光(astigmatism)或像場彎曲(field curvature)不敏感。中間的模糊圖像對對象或成像系統(tǒng)中由散焦像差組成的改變不敏感或無變化。從系統(tǒng)分析的觀點來看,波前編碼系統(tǒng)的調制傳遞函數(MFT)和點擴散函數(PSF) 是相對于散焦無變化的。盡管來自波前編碼系統(tǒng)的中間圖像MTF示出很少隨散焦而改變,這樣的MTF與焦點對準的傳統(tǒng)系統(tǒng)相比的確具有減小的光強度。由于沒有使用孔障(apodization),所以保持了總的光強度。使用數字濾波或圖像重構處理來形成清晰的圖像。這些最終的MTF對散焦非常不敏感一因此,波前編碼成像系統(tǒng)具有非常大的景深。類似的,來自波前編碼系統(tǒng)的中間PSF不同于傳統(tǒng)的系統(tǒng)PSF,而是中間PSF隨著散焦的改變而很少改變。再次參考圖21,將特殊目的的非球面光學元件放置在傳統(tǒng)的成像系統(tǒng)的孔徑光闌上或附近,以形成波前編碼成像系統(tǒng)。該光學元件以這樣的方式修改了成像系統(tǒng)結果PSF 和光學傳遞函數(OTF)對散焦的范圍或散焦相關的像差的范圍不敏感。但是,PSF和OTF與用優(yōu)質的焦點對準的成像系統(tǒng)所獲得的PSF和OTF不相同。使成像系統(tǒng)對散焦像差不敏感的過程產生了具有專門的、定義明確的模糊的圖像;用波前編碼數字信號處理來去除該模糊。例如,來自傳統(tǒng)成像系統(tǒng)的PSF隨著散焦而劇烈地改變,而來自波前編碼成像系統(tǒng)的PSF隨著散焦幾乎沒有示出明顯的改變。去除施加到散焦的傳統(tǒng)成像系統(tǒng)的散焦模糊的數字處理,使用取決于圖像的不同區(qū)域中所呈現的散焦的數量的處理。在許多情形下,不知道而且難以計算散焦的數量。另外,散焦的傳統(tǒng)成像系統(tǒng)的MTF經??梢园慊蚩眨慊蚩者M一步增加了數字處理的困難。相反,來自波前編碼系統(tǒng)的PSF隨著散焦而不變的特性正是消除數字處理與散焦的相關性所需要的。施加到電荷耦合器件(CCD)檢測到的或互補金屬氧化物半導體(CMOS)檢測到的圖像的數字處理與散焦和被成像的實際場景無關。 另外,波前編碼成像系統(tǒng)的MTF,焦點對準的和散焦的,均不包含零或空,從而允許高質量的最終圖像。
用于擴展景深的波前編碼能夠將值添加到傳統(tǒng)方法(即,縮小光圈)一般不可接受的成像應用中。對照明水平、曝光時間、或空間分辨率的約束經常限制了之前光學方法的應用。通過使用波前編碼,應用能享受更少的散焦相關的問題,而不會犧牲曝光時間或要求大量的照明。如以上所描述的,波前編碼成像系統(tǒng)包括如非傳統(tǒng)的光學設計和結果圖像的數字信號處理。使用的數字信號處理取決于特定的光學系統(tǒng)。波前編碼光學器件取決于要使用的信號處理的類型和數量。由于光學器件和信號處理緊密耦合,期待這樣的系統(tǒng)的最佳性能是自然的在這樣的系統(tǒng)中,在設計期間聯(lián)合地優(yōu)化系統(tǒng)的光學組件和數字組件。光學組件被配置成使光學器件對散焦作用的改變或靈敏度最小化,以及使得能夠進行有效的信號處理。數字組件被配置成使算法復雜度、處理時間和數字處理對圖像噪音的影響最小化。圖23是根據實施例的用于在擴展的景深上提取三維信息的基于姿勢的控制系統(tǒng)的流程圖。實施例的基于姿勢的控制包括用成像系統(tǒng)對身體進行成像2302。成像2302包括生成身體的波前編碼圖像。實施例的基于姿勢的控制包括自動檢測2304身體的姿勢,姿勢包括身體的即時狀態(tài)。檢測2304包括即時地聚集姿勢的姿勢數據。姿勢數據包括在成像系統(tǒng)的景深中的身體的焦點分辨的數據。實施例的基于姿勢的控制包括將姿勢轉換成2306 姿勢信號。實施例的基于姿勢的控制包括響應于姿勢信號對耦合到計算機的組件進行控制 2308。實施例的波前編碼的基本例程能夠包括通過通常的球形或非球形表面以及一般的波前編碼表面形式來追蹤光線的光線追蹤(ray-trace)程序。使用光線追蹤程序計算退出光瞳以及優(yōu)化光學和數字品質函數或操作數的給定集合。圖24是根據實施例的在基于姿勢的控制系統(tǒng)中使用的波前編碼設計過程2400的方框圖。該設計的輸出包括但不限于以下傳統(tǒng)的光學表面、材料、厚度、和間距;波前編碼表面的參數;以及數字濾波器系數?,F在描述一般的光學/數字設計的循環(huán)。光線追蹤程序2402通過光學表面追蹤光學以計算退出光瞳光程差(OPD) 2404,以及優(yōu)化光學和數字品質函數或操作數的給定集合。 光線追蹤程序2402的輸入包括,僅舉幾個示例,光學表面、厚度、和運行條件(波長、視野、 溫度范圍、采樣對象圖像等)。計算或生成2406 0TF,以及添加2408與檢測器幾何形狀相關的像素0TF。計算采樣的OTF和PSF?;诓蓸拥腜SF,針對選擇的處理算法,生成2412 數字濾波器系數。處理通過形成濾波器的基于以下最小化的品質因數而繼續(xù)采樣的PSF 和MTF通過焦點的改變、采樣的PSF和MTF隨視場角的改變、采樣的PSF和MTF隨顏色的改變、采樣的PSF和MTF由于溫度改變的改變、采樣的PSF和MTF由于圖形失真的改變等;數字處理參數,例如處理數量、處理形式、處理相關的圖像噪音、數字濾波器噪音增益等。通過優(yōu)化例程將波前編碼操作數與傳統(tǒng)的光學操作數(賽德爾(Seidel)波前像差,RMS波前誤差等)相組合以修改光學表面。操作返回到經由傳統(tǒng)的光線追蹤來生成2402退出光瞳光程差(OPD)。將理論上計算的波前編碼表面形式用作光學優(yōu)化的開始點。矩形地可分離的表面形式的一個一般族(family)以標準化坐標系給出為S(x) = I β |sign(x) |x| °其中,對于χ > 0,sign(x) =+1,以及,對于χ 彡 0,sign(x) =-1。
指數參數α控制在散焦的范圍內的MTF的高度,以及參數β控制散焦的靈敏度。 一般,增加參數β減少了散焦的靈敏度,同時減少了 MTF的高度以及增加了結果PSF的長度。用于重建中間圖像和產生最終圖像的濾波過程能夠強加計算負擔。取決于光學系統(tǒng)和由編碼過程引入的景深的增加,圖像重建所需要的濾波器內核的大小可以與70X70 系數一樣大。一般,景深擴展越大,濾波器內核越大,而且噪音惡化或噪音增益越大。而且, 因為波前編碼使圖像中的每個像素變模糊,所以每個像素需要被濾波;因此,更大的圖像能夠比更小的圖像需要更多的計算。隨著圖像大小接近數千萬像素,高效的計算解決方案用于實際的和經濟的系統(tǒng)。計算實現,例如矩形地可分離的濾波器逼近,能夠幫助減小內核尺寸。例如,波前編碼元件能夠具有矩形地可分離的立方相形式,該立方相形式被描述為S (x, y) = a (x3+y3)對模糊的圖像進行濾波以去除模糊,實質上強加了根據空間頻率的放大和相移。 該放大增加了最終圖像中的信號還有噪音。對于非常大的景深增加,例如10倍以上,波前編碼系統(tǒng)中的噪音增益可以是四倍或五倍。對于兩倍或四倍的更溫和的景深增加,噪音增益通常為兩倍或更少。對于不相關的高斯噪音(對大多數圖像的好的假設),噪音增益是濾波器系數的 RMS值。對于景深擴展太大而不能產生合適的小噪音增益值的系統(tǒng),減小數字濾波器的分辨率或空間帶寬能減小噪音增益。減小最終圖像中的對比度也能夠減小增加的噪音的整體影響。專門的非線性濾波是用于去除波前編碼圖像中的噪音的最佳解決方案。因為實施例中的用于形成MTF和PSF的波前編碼光學元件是矩形地可分離的,所以使用的信號處理也可以是矩形地可分離的。矩形地可分離的處理能夠以一個數量級或更多地減少所需要的計算數量。由于用空間卷積來執(zhí)行數字濾波的事實,實施例的計算方法包括在整個內核上的一系列的通過濾波器系數來縮放數據的乘法和將所有縮放后的數據值加在一起的求和。這種計算的基礎單元是乘法累加(multiply-accumulate)操作。用于大的景深增加的通常的2-D波前編碼濾波器內核可以是30X30系數。該濾波器的矩形可分離版本會包含長為30系數的行濾波器和高為30系數的列濾波器,或包括總共60系數。 盡管波前編碼元件在設計中可以是矩形地可分離的,但是其不限于如此,而且高像差的系統(tǒng)可以使用不可分離的濾波。通過將光學成像技術與電子濾波相組合,波前編碼技術能夠提高廣闊范圍的成像系統(tǒng)的性能。高性能成像系統(tǒng)中的性能增益能夠包括非常大的景深,而不會犧牲聚光或空間分辨率。低成本成像系統(tǒng)中的性能增益能夠包括好的圖像質量,而具有比傳統(tǒng)所需要的更少的物理組件。一致的虛擬/顯示及物理空間如以上所描述的,實施例的SOE包括用于檢測、表示和解釋三維空間輸入的系統(tǒng)和方法。在SOE的上下文中,系統(tǒng)的實施例處理來自多個空間追蹤數據源的低水平數據,以及分析這些語義上不相關的時空數據,以及根據動態(tài)可配置的顯式和隱式姿勢描述的集合來生成高水平的姿勢事件。產生的事件適合于被交互系統(tǒng)消費,以及實施例提供了用于控制和實現到這些消費者的事件分發(fā)的一個或更多個機制。實施例還向其事件的消費者提供了用于在任意的空間和語義參考幀之間傳輸姿勢事件的設備。
系統(tǒng)可以提供一種環(huán)境,其中在一個或多個顯示設備(“屏幕”)上描繪的虛擬空間被當作與系統(tǒng)的一個或多個操作員所處的物理空間一致來處理。在此描述這種環(huán)境的一個實施例。該當前實施例包括在固定位置處由三個投影儀驅動的屏幕,由單個臺式計算機驅動,并且使用這里所描述的姿勢詞匯和接口系統(tǒng)來控制。然而,應注意,所描述的技術支持任何數量的屏幕;這些屏幕可以是移動的(而非固定的);屏幕可以被許多獨立的計算機同時驅動;且整個系統(tǒng)可以由任何輸入設備或技術來控制。本公開中描述的接口系統(tǒng)應具有確定屏幕在物理空間中的尺度、取向以及位置的裝置。給定該信息,系統(tǒng)能夠動態(tài)地將物理空間映射到在系統(tǒng)上運行的計算機應用的虛擬空間中,屏幕位于物理空間(且系統(tǒng)的操作員處于其中)中,這些屏幕作為投影。作為該自動映射的部分,系統(tǒng)還根據系統(tǒng)所掌管的應用的需要,以多種方式來轉換兩個空間的比例、 角度、深度、尺度以及其它空間特性。在物理和虛擬空間之間的這種連續(xù)的轉換使得可以連貫且普遍地使用在現有的應用平臺上難以實現的多種接口技術,或者必須針對現有平臺上運行的每個應用來逐件執(zhí)行。這些技術包括(但不限于)1)使用“精確指向” 一在姿勢接口環(huán)境中使用手,或使用物理指向工具或設備一作為普遍和自然的接口技術。2)自動補償屏幕的移動或重新定位。3)依賴于操作員位置而變化的圖形呈現,例如模仿視差移動以增強深度感。4)在屏上顯示中包含物理物體一考慮真實世界的位置、取向、狀態(tài)等。例如,站在大且不透明的屏幕前的操作員可以看見應用圖形以及屏幕后面的比例模型的真實位置的表示(以及也許移動的或改變的取向)。重要的是應該注意,精確指向不同于在基于鼠標的窗口接口以及大多數其它當代系統(tǒng)中使用的抽象指向。在那些系統(tǒng)中,操作員必須學會管理虛擬指針和物理指向設備之間的轉換,并且必須在兩個之間進行可認知地映射。與之對照,在本公開所描述的系統(tǒng)中,無論從應用或用戶角度,在虛擬和物理空間之間沒有不同(除了虛擬空間更服從于數學處理),因此對操作員沒有認知轉換的需求。與這里所描述的實施例所提供的精確指向的最類似的是觸敏屏(例如,如許多 ATM機器上所發(fā)現的)。觸敏屏提供屏幕上的兩維顯示空間和屏幕表面的兩維輸入空間之間的一到一映射。以類似方式,這里所描述的系統(tǒng)提供顯示在一個或多個屏幕上的虛擬空間和操作員所處于的物理空間之間的靈活映射(可能是,但不一定是,一到一)。盡管類似是有用的,應該理解的是,將該“影射方法”擴展到三維、任意大的結構環(huán)境以及多個屏幕并非是微不足道的。除了這里所描述的組成之外,系統(tǒng)還可以實施在環(huán)境的物理空間和每個屏幕上的顯示空間之間執(zhí)行連續(xù)、系統(tǒng)級映射(也許通過旋轉、平移、比例縮放或其它幾何變換來修改)的算法。描繪堆棧(rendering stack),其獲得計算的物體以及映射,并輸出虛擬空間的圖形表示。輸入事件處理堆棧,其從控制系統(tǒng)獲得事件數據(在當前的實施例中,來自系統(tǒng)和鼠標輸入的姿勢和指向數據二者)并將來自輸入事件的空間數據映射到虛擬空間中的坐標。經轉換的事件隨后被傳遞到正在運行的應用?!澳z層(glue layer)”,其允許系統(tǒng)掌管在局域網上的幾個計算機之上運行的應用。如以下詳細描述的,本文中將空間連續(xù)的輸入系統(tǒng)的實施例描述為包括基于網絡的數據表示、發(fā)送、和交換,其包括被稱為“原生質(Plasma)”的系統(tǒng),其中,該“原生質 (plasma)”包括子系統(tǒng)“色拉(slaw)”、“蛋白質(protein) ”和“池(pool)”。池和蛋白質是本文中描述的用于封裝將要在進程之間和跨越進程共享的數據的方法和系統(tǒng)的組件。這些機制除了蛋白質和池之外,還包括色拉(多個色拉)。一般,色拉提供最低水平的進程間交換的數據定義,蛋白質提供中等水平的用于查詢和過濾的結構和鉤子(hook),而池則提供高水平的組織和訪問語義。色拉包括有效的、不依賴于平臺的數據表示和訪問的機制。蛋白質提供使用色拉作為有效載荷的數據封裝和傳輸方案。池在進程在內、在本地進程當中、 跨越遠程或分布式進程之間的網絡并且經由較長期(例如在盤上等)存儲提供蛋白質的結構化并且靈活的聚集、排序、過濾和分發(fā)。本文中描述的實施例的配置和實現包括幾個一起使得能夠具有眾多能力的構造。 例如,如以上所描述的,本文中描述的實施例提供了數據在大量進程之間的有效交換。本文中描述的實施例還提供了靈活的數據“定型(typing) ”和結構,以便支持數據的廣泛變化的種類和使用。另外,本文中描述的實施例包括全都由基本上類似的應用程序編程接口(API) 驅動的用于數據交換(例如本地存儲器、盤、網絡等)的靈活機制。此外,描述的實施例使得能夠進行以不同的編程語言編寫的進程之間的數據交換。另外,本文中描述的實施例使得能夠自動維護數據緩存和聚集狀態(tài)。圖25是根據實施例的包括使用色拉、蛋白質和池的數據表示的處理環(huán)境的框圖。 在此提供的實施例的主要構造包括色拉(多個色拉)、蛋白質和池。如在此描述的色拉包括用于有效的不依賴于平臺的數據表示和訪問的機制。如在此詳細描述的蛋白質提供數據封裝和傳輸方案,并且實施例的蛋白質的有效載荷包括色拉。如在此描述的池提供蛋白質的結構化但卻靈活的聚集、排序、過濾和分發(fā)。池在進程之內、在本地進程當中、跨越遠程或分布式進程之間的網絡并且經由“較長期”(例如盤上)存儲借助于蛋白質提供對數據的訪問。圖26是根據實施例的蛋白質的框圖。蛋白質包括長度頭部、記述和攝取。如下面詳細描述的那樣,記述和攝取中的每一個都包括一個或多個色拉。圖27是根據實施例的記述的框圖。如下面詳細描述的那樣,記述包括偏移、長度和色拉。圖28是根據實施例的攝取的框圖。如下面詳細描述的那樣,攝取包括偏移、長度和色拉。圖29是根據實施例的色拉的框圖。如下面詳細描述的那樣,色拉包括類型頭部和類型專用數據。圖30A是根據實施例的池中蛋白質的框圖。蛋白質包括長度頭部(“蛋白質長度”)、記述偏移、攝取偏移、記述和攝取。記述包括偏移、長度和色拉。攝取包括偏移、長度和色拉。如在此描述的蛋白質是用于封裝數據的機制,數據需要在進程之間共享,或者需要跨越總線或網絡或其它處理結構而移動。作為例子,蛋白質提供了用于傳輸和操縱數據的改進機制,數據包括對應于或者關聯(lián)于用戶接口事件的數據;特別地,實施例的用戶接口事件包括以上描述的姿勢接口的用戶接口事件。作為進一步的例子,蛋白質提供了用于傳輸和操縱數據的改進機制,數據包括但不限于圖形數據或事件以及狀態(tài)信息,這只是舉幾個例子。蛋白質是結構化的記錄格式和用于操縱記錄的方法的相關集合。如在此使用的記錄的操縱包括將數據放到結構中、將數據從結構取出以及查詢數據的格式和存在。蛋白質配置成經由以多種計算機語言編寫的代碼來使用。如在此描述的那樣,蛋白質還配置成用于池的基本構筑塊。進而,蛋白質配置成天然地能夠在處理器之間并跨越網絡移動,同時維持它們包括的數據原封不動。與傳統(tǒng)的數據傳輸機制形成對照,蛋白質是未定型的。在未定型的同時,蛋白質提供了強大且靈活的模式匹配設施,在其上實施“類型相似”功能。如在此描述的那樣配置的蛋白質還固有地為多點(盡管作為多點傳輸的子集容易實現點對點形式)。另外,蛋白質定義了“通用”記錄格式,其例如在存儲器內、盤上和線(網絡)上格式之間并無不同(或者僅在所執(zhí)行的可選優(yōu)化的類型方面不同)。參考圖26和30A,實施例的蛋白質是字節(jié)的線性序列。在這些字節(jié)之內封裝有記述列表和被稱為攝取的關鍵值對的集合。記述列表包括任意精細但卻有效可過濾的每個蛋白質事件描述。攝取包括關鍵值對的集合,其包括蛋白質的實際內容。蛋白質與關鍵值對以及關于網絡友好和多點數據交換的某些核心思想的相關性, 與給予“元組(tuple) ”的概念特權的較早系統(tǒng)(例如Linda、Jini)共享。蛋白質與面向元組的系統(tǒng)在幾個主要方面不同,包括使用記述列表以提供標準的可優(yōu)化的模式匹配基底 (substrate)。蛋白質還與面向元組的系統(tǒng)在適合于多種存儲和語言構造的記錄格式的嚴格規(guī)范連同對該記錄格式的“接口”的幾個具體實施方面不同。轉向蛋白質的描述,蛋白質的前四個或八個字節(jié)指定了蛋白質的長度,其在實施例中必須是16字節(jié)的倍數。這個16字節(jié)粒度確保了字節(jié)準直和總線準直效能在當代的硬件上可實現。未被自然“四倍長字校直”的蛋白質被填充以任意字節(jié),以便它的長度是16字節(jié)的倍數。蛋白質的長度部分具有以下格式呈大端(big-endian)格式的指定長度的32位, 其中四個最低階位充當旗標以指示宏觀水平蛋白質結構特性;繼之以32個另外的位,如果蛋白質的長度大于2~32字節(jié)的話。實施例的16字節(jié)準直附文意味著前四個字節(jié)的最低階位作為旗標可用。而且因此前三個低階位旗標分別指示蛋白質的長度可以用前四個字節(jié)表示還是需要八個,蛋白質使用大端還是小端(little-endian)字節(jié)排序,以及蛋白質使用標準還是非標準結構,但是蛋白質不限于此。第四個旗標位被保留以供將來使用。如果八字節(jié)長度旗標位被設置,則蛋白質的長度通過以下計算讀取下四個字節(jié), 并且使用它們作為大端的八字節(jié)整數的高階字節(jié)(其中已經讀取的四個字節(jié)供應低階部分)。如果小端旗標被設置,則蛋白質中的所有二進制數值數據都將被解釋為小端(否則為大端)。如果非標準旗標位被設置,則蛋白質的剩余部分不符合下面將要描述的標準結構。在此不會進一步討論非標準蛋白質結構,除了要說的是,關于對使用蛋白質和池的系統(tǒng)程序員可用的非標準蛋白質格式,存在用于描述和同步化的各種方法,并且當空間或計算周期受到約束時,這些方法是可以使用的。例如,實施例的最短蛋白質是十六字節(jié)。 標準格式的蛋白質不能將任何實際的有效載荷數據裝配到這十六個字節(jié)中(其中的最大份額已經被移交以描述蛋白質的組成部分的位置)。但是非標準格式的蛋白質就能夠可以想象地使用16個字節(jié)中的12個用于數據。交換蛋白質的兩個應用程序可以相互決定它們發(fā)出的任何16字節(jié)長的蛋白質總是包括例如表示來自實時模擬數字轉換器的12個8位傳感器值的12個字節(jié)。緊跟著長度頭部,在蛋白質的標準結構中,出現兩個更多的可變長度整數。這些數分別指定了對記述列表中的第一個元素和第一個關鍵值對(攝取)的偏移。這些偏移在此也分別被稱為記述偏移和攝取偏移。這些數的每四倍的字節(jié)順序由蛋白質端旗標位指定。 對于每個而言,前四個字節(jié)的最高有效位確定數字是四個還是八個字節(jié)寬。如果最高有效位(msb)被設置,則前四個字節(jié)是雙字(八字節(jié))數字的最高有效字節(jié)。這在此被稱為“偏移形式”。指向記述和對的單獨偏移的使用允許記述和對通過不同的代碼路徑處理,使得例如與記述模式匹配和蛋白質裝配相關的特殊優(yōu)化成為可能。在蛋白質的開始處的這兩個偏移的存在還允許幾個有用的優(yōu)化。大多數蛋白質不會如此大以至于需要八字節(jié)的長度或指針,所以一般而言,長度 (具有旗標)和兩個偏移數字只會占據蛋白質的前三個字節(jié)。在許多硬件或系統(tǒng)體系結構上,超過第一個的一定數目字節(jié)的提取或讀取是“免費的”(例如16個字節(jié)正好占用與單個字節(jié)相同數目的時鐘周期以跨越單元處理器的主總線牽引)。在許多實例中,允許蛋白質內部的實施專用或環(huán)境專用的緩存或元數據都是有用的。偏移的使用允許在蛋白質的開始附近創(chuàng)建任意尺寸的“洞”,其中可以放置這樣的元數據。可以利用八個字節(jié)的元數據的實施在許多系統(tǒng)體系結構上免費得到那些字節(jié),其中每次提取蛋白質的長度頭部。記述偏移指定了蛋白質的開始與第一個記述條目之間的字節(jié)數。每個記述條目包括到下一個記述條目的偏移(當然是以偏移格式),繼之以可變寬度的長度字段(又是以偏移格式),繼之以色拉。如果沒有進一步的記述,則偏移按規(guī)定是四個字節(jié)的零。否則,偏移指定這個記述條目的開始與下一個記述條目之間的字節(jié)數。長度字段以字節(jié)的方式指定色拉的長度。在大多數蛋白質中,每個記述都是串,以色拉串的方式被格式化四字節(jié)長度/類型頭部,其中最高有效位被設置并且只有較低的30位用于指定長度,繼之以頭部的指示數目的數據字節(jié)。通常,長度頭部從蛋白質取其端。字節(jié)被假定編碼UTF-8字符(并且這樣一來——注意——字符數就不一定與字節(jié)數相同)。攝取偏移指定了蛋白質的開始與第一個攝取條目之間的字節(jié)數。每個攝取條目包括到下一個攝取條目的偏移(以偏移格式),又繼之以長度字段和色拉。攝取偏移在功能上等同于記述偏移,除了它指向下一個攝取條目而不是下一個記述條目之外。在大多數蛋白質中,每個攝取具有色拉cons類型,其包括雙值列表,一般用作關鍵/值對。色拉cons記錄包括四字節(jié)長度/類型頭部,其中第二最高有效位被設置并且只有較低的30位用于指定長度;到值(第二)元素開始的四字節(jié)偏移;四字節(jié)長度的關鍵元素;用于關鍵元素的色拉記錄;四字節(jié)長度的值元素;以及最后用于值元素的色拉記錄。一般而言,cons關鍵字是色拉串。跨越幾個蛋白質和色拉cons長度和偏移字段的數據的重復提供了用于細化和優(yōu)化的又一次機會。如以上所描述的,根據實施例使用的用于將定型的數據嵌入蛋白質內部的構造是被稱為“色拉”的標記字節(jié)序列規(guī)范和抽象。色拉是表示(可能是聚集的)定型數據的字節(jié)的線性序列,并且與編程語言專用API相關聯(lián),其允許色拉在存儲器空間、存儲介質和機器之間創(chuàng)建、修改和四處移動。色拉類型方案旨在可擴展并且盡可能重量輕,并且成為可以從任何編程語言使用的通用基底。建立有效的大規(guī)模的進程間通信機制的愿望是色拉配置的驅動器。傳統(tǒng)的編程語言提供了在進程專用存儲器布局中工作良好的復雜數據結構和類型設施,但是當數據需要在進程之間移動或存儲在盤上時,這些數據表示總是損壞。色拉體系結構是用于進程間通信的第一基本上有效的多平臺友好的低水平數據模型。但更重要的是,色拉配置成連同蛋白質一起影響并啟用未來計算硬件(微處理器、存儲器控制器、盤控制器)的開發(fā)。對比如公共可用的微處理器的指令集合的幾個專用添加使得色拉可以甚至對于單進程、存儲器內數據布局變得與大多數編程語言中使用的方案一樣有效。每個色拉包括可變長度類型頭部繼之以類型專用數據布局。在例如支持C、C++和 Ruby形式的全色拉功能的示例實施例中,通過可從每種語言訪問的系統(tǒng)頭部文件中定義的通用整數來指示類型。更加復雜和靈活的類型分辨功能也是可能的例如經由通用對象ID 和網絡查找的間接定型。實施例的色拉配置允許色拉記錄用作例如來自Ruby和C++兩者的語言友好方式的對象。C++編譯器外部的一套實用程序完整性檢查色拉字節(jié)布局,創(chuàng)建專用于單獨色拉類型的宏和頭部文件,并且自動生成用于Ruby的綁定。結果,良好配置的色拉類型即使當從單個進程之內使用時也十分有效。進程的可訪問存儲器中任何地方的任何色拉都可以被尋址而沒有復制或“去串行化”步驟。實施例的色拉功能包括用于執(zhí)行以下中的一個或多個的API設施創(chuàng)建特定類型的新色拉;創(chuàng)建或建立對來自盤上或存儲器內字節(jié)的色拉的語言專用引用;以類型專用方式將數據嵌入色拉之內;查詢色拉的尺寸;從色拉之內檢索數據;克隆色拉;以及轉換色拉之內全部數據的端和其它格式屬性。每個色拉都執(zhí)行上述行為。圖30B示出了根據實施例的色拉頭部格式。色拉的詳細描述如下。每個色拉的內部結構都優(yōu)化類型分辨、對封裝數據的訪問以及用于該色拉實例的尺寸信息中的每一個。在實施例中,色拉類型的完全集合被設計得最小完全,并且包括色拉串;色拉cons (亦即對);色拉列表;以及色拉數字對象,其自身表示被理解為半打排列或這種基本屬性的單獨數字類型的廣泛集合。任何色拉的其它基本性質是其尺寸。在實施例中,色拉具有量化成四的倍數的字節(jié)長度;這些四字節(jié)字在此被稱為“quad(四)”。一般而言,這樣的基于四的尺寸定位使得色拉與現代計算機硬件體系結構的配置良好配準。實施例中的每個色拉的前四個字節(jié)包括頭部結構,其編碼類型描述和其它元信息,并且將特定類型意義歸因于具體位模式。例如,色拉頭部的第一個(最高有效)位用于指定該色拉的尺寸(以四字的長度計)是否遵循初始四字節(jié)類型頭部。當這個位被設置時,可以理解的是,色拉的尺寸明確地記錄在色拉的下四個字節(jié)中(例如字節(jié)五至八); 如果色拉的尺寸是這樣的,以至于不能以四個字節(jié)來表示(亦即,如果尺寸是或大于二的三十二次冪),那么色拉的初始四個字節(jié)的下一個最高有效位也被設置,這表明色拉具有八字節(jié)(而不是四字節(jié))長度。在這種情況下,檢查過程會發(fā)現存儲在順序字節(jié)五至十二中的色拉長度。另一方面,小數目的色拉類型意味著在許多情況下完全指定的典型位模式“留下未使用”四字節(jié)色拉頭部中的許多位;并且在這樣的情況下這些位可以用于編碼色拉的長度,節(jié)省否則會需要的字節(jié)(五至八)。例如,實施例留下色拉頭部的最高有效位(“長度跟隨”旗標)未設置,并且設置下一位以指示色拉是“wee cons”,并且在這種情況下色拉的長度(以四計)被編碼在剩余的三十位中。類似地,“wee string”用頭部中的模式001來標記,其留下二十九位用于表示色拉串的長度;并且頭部中的引導0001描述“wee list”,其依靠二十八個可用長度表示位可以是高達二的二十八次冪個quad大小的色拉列表?!癴ull string”(或cons或list) 具有不同的頭部中的位簽名,其中最高有效頭部位必定被設置,因為色拉長度分開編碼在字節(jié)五至八(或十二,在極端情況下)中。注意,原生質實施在色拉構造之時“決定”是使用這些構造的“wee”還是“full”版本(該決定基于作為結果的尺寸是否會“配合”可用的 wee位),但是full對比于wee的細節(jié)相對于原生質實施的用戶是隱藏的,用戶只知道和關心她正在使用色拉串或色拉cons或色拉列表。數值色拉在實施例中用引導頭部模式00001指示。隨后的頭部位用于表示可能以任意排列進行組合的一組正交性質。實施例使用但不限于五個這樣的字符位以指示數字是否是(1)浮點;(2)復數;(3)無符號;(4) “寬(wide) ”; (5) “粗短(stumpy) ”((4) "wide" 和(5) “stumpy”進行排列以指示八、十六、三十二和六十四位數表示)。兩個另外的位(例如(7)和(8))指示封裝的數值數據是二、三或四元素矢量(其中兩個位為零表明數值是 “一元素矢量”(亦即標量)。在這個實施例中,第四個頭部字節(jié)的八個位用于編碼封裝的數值數據的尺寸(以字節(jié)計而不是quad)。這個尺寸編碼被偏移一,以便它可以表示包括一和二百五十六字節(jié)以及之間的任何尺寸。最后,兩個字符位(例如(9)和(10)用于指示數值數據編碼單獨數值條目的陣列,其中的每一個具有由字符位(1)至(8)描述的類型。在陣列的情況下,單獨數值條目不是每個用另外的頭部標記,而是包裝為連續(xù)的數據,其跟隨單個頭部以及可能的明確色拉尺寸信息。這個實施例提供了簡單而有效的色拉復制(其可以實施為字節(jié)對字節(jié)復制)以及極其直接和有效的色拉比較(在這個實施例中,當且僅當考慮序列的兩個色拉的組成部分字節(jié)中的每一個一一匹配時,這兩個色拉才相同)。這后一性質例如對于蛋白質體系結構的有效實施是重要的,蛋白質體系結構的關鍵性和普遍的特征之一是搜索或“匹配”蛋白質的記述歹丨J表。而且,此處的實施例允許簡單且有效地構造聚集色拉形式(例如色拉cons和色拉列表)。例如,實施例通過以下從兩部分色拉(其可以具有任何類型,包括它們自己聚集) 建立色拉cons (a)查詢每個部分色拉的尺寸;(b)分配尺寸等于兩個部分色拉的尺寸和頭部加上尺寸結構所需的一個、兩個或三個quad之和的存儲器;(c)在前四個、八個或十二個字節(jié)中記錄色拉頭部(加上尺寸信息);以及然后(d)依次將部分色拉的字節(jié)復制到緊接著后續(xù)的存儲器中。重要的是,這樣的構造例程不需要知道關于兩部分色拉的類型的任何東西;只有它們的尺寸(以及作為字節(jié)序列的可訪問性)要緊。相同的過程適用于色拉列表的構造,色拉列表是(可能地)異樣類型的任意許多子色拉的排序封裝。
作為存儲器內順序字節(jié)的色拉系統(tǒng)的基礎格式的另外后果結合“遍歷”活動—— 例如循環(huán)使用模式使用獲得對色拉列表中存儲的單獨色拉的順序訪問。表示蛋白質結構之內的記述和攝取的單獨色拉必須類似地遍歷。以令人暈倒的直接且有效的方式完成這樣的調度為了“到達”色拉列表中的下一個色拉,將當前色拉的長度添加到其存儲器內的位置, 并且作為結果的存儲器位置等同地為下一個色拉的頭部。這樣的簡化是可能的,因為色拉和蛋白質設計避免“間接”;不存在指針;相反地,數據簡單地以其全體存在就位。對于色拉比較這一點,原生質系統(tǒng)的完全實施必須承認跨越不同操作系統(tǒng)、CPU和硬件體系結構以及它們當中的不同且不兼容的數據表示方案的存在。大多數這樣的不同包括字節(jié)排序策略(例如小對比于大端)和浮點表示;其它不同也存在。原生質規(guī)范要求色拉所封裝的數據保證可解釋(亦即必須以從中檢查色拉的體系結構或平臺的自然格式出現)。這個要求依次表明原生質系統(tǒng)自身對數據格式轉換負責。然而,規(guī)范僅規(guī)定,在色拉變得對可能檢查它的執(zhí)行進程“根本可見”之前發(fā)生轉換。因此達到單獨的實施,在該點它選擇執(zhí)行這樣的格式c轉換;兩個適當的方法是,色拉數據有效載荷一致于本地體系結構的數據格式(1)當單獨的色拉從它已被包裝在其中的蛋白質中“拉出”時,或者(2)對于同時在蛋白質中的全部色拉,當該蛋白質從它處于其中的池中提取時。注意,轉換規(guī)定考慮硬件輔助實施的可能性。例如,建立有明確原生質能力的聯(lián)網芯片組可以基于接收系統(tǒng)的已知特性智能地并且在“傳輸時”執(zhí)行格式轉換。交替地,傳輸的過程可以將數據有效載荷轉換成規(guī)范格式,其中接收過程對稱地從規(guī)范轉換到“本地”格式。另一個實施例執(zhí)行“在金屬”的格式轉換,意味著數據總是以規(guī)范格式存儲,即使在本地存儲器中也是,并且當數據從存儲器中檢索并放置在就近CPU的寄存器中時,存儲器控制器硬件自身執(zhí)行轉換。實施例的最小(和只讀)蛋白質實施包括利用蛋白質的一個或多個應用程序或編程語言中的操作或行為。圖30C是根據實施例的用于使用蛋白質的流程圖3050。操作開始于查詢3052蛋白質的以字節(jié)計的長度。記述條目的數目被查詢30M。攝取的數目被查詢 3056。通過指數檢索3058記述條目。通過指數檢索3060攝取。本文中描述的實施例還定義了允許蛋白質被構造并填充以數據的基本方法、使一般任務對程序員更容易的助手方法以及用于創(chuàng)建優(yōu)化的鉤子。圖30D是根據實施例的用于構造或生成蛋白質的流程圖3070。操作開始于創(chuàng)建3072新蛋白質。一系列的記述條目被附加3074。攝取也被附加3076。匹配記述的存在被查詢3078,并且匹配攝取關鍵字的存在被查詢3080。給定攝取關鍵字,攝取值被檢索3082??缭接浭鰣?zhí)行3084模式匹配。在蛋白質的開始附近嵌入3086非結構化的元數據。如以上所描述的,色拉提供最低水平的用于進程間交換的數據定義,蛋白質提供中等水平的用于查詢和過濾的結構和鉤子,而池則提供高水平的組織和訪問語義。池是用于蛋白質的倉庫,提供線性序列和狀態(tài)緩存。池還提供通過眾多不同類型的多個程序或應用程序進行的多進程訪問。此外,池提供一組共同的可優(yōu)化的過濾和模式匹配行為。可以容納成千上萬個蛋白質的實施例的池用于維持狀態(tài),以便單獨的進程可以卸載對多進程程序代碼共同的大多數冗長簿記。池維持或保持過去可用蛋白質的大緩沖器——柏拉圖式理想的(Platonic)池明確地無限——以便參與的進程可以隨意在池中向后和向前掃描。緩沖器的尺寸當然依賴于實施,但是在通常使用中常??梢詫⒌鞍踪|保持在池中以小時或天計。
與現有的進程間通信框架所采取的機械式點對點方法形成對照,如本文中描述的池使用的最通常的風格遵守生物學比喻。名稱蛋白質暗指生物學靈感池中的數據蛋白質可用于大量計算進程進行的靈活查詢和模式匹配,就像活體組織中的化學蛋白質可用于大量細胞試劑進行的模式匹配和過濾。兩個另外的抽象依靠生物學比喻,包括使用“處理機(handl er) ”和高爾基 (Golgi)框架。參與池的進程一般創(chuàng)建若干處理機。處理機是將匹配條件與處理行為相關聯(lián)的相對小束的代碼。通過將一個或多個處理機聯(lián)系到池,進程設立靈活的回叫觸發(fā),其封裝狀態(tài)并對新的蛋白質起反應。參與幾個池的進程一般從抽象高爾基類繼承。高爾基框架提供若干有用的例程, 用于管理多個池和處理機。高爾基類還封裝雙親子女關系,提供不使用池的本地蛋白質交換的機制。根據實施例提供的池API配置成允許池以多種方式實施,以便既考慮系統(tǒng)專用目標,又考慮給定硬件和網絡體系結構的可用能力。池所依靠的兩個基本系統(tǒng)規(guī)定是存儲設施和進程間通信的裝置。在此描述的現存系統(tǒng)使用以下的靈活組合共享存儲器、虛擬存儲器和用于存儲設施的盤以及用于進程間通信的TCP/IP套接字和IPC隊列。實施例的池功能包括但不限于以下參與池;將蛋白質放置在池中;從池中檢索下一個未看到的蛋白質;反繞或快進池內的內容(例如蛋白質)。另外,池功能可以包括但不限于以下設立用于進程的流池回叫;選擇性地檢索匹配記述或攝取關鍵字的特殊模式的蛋白質;向后并向前掃描匹配記述或攝取關鍵字的特殊模式的蛋白質。上述蛋白質被提供給池,作為與其它應用程序共享蛋白質數據內容的方式。圖31 是根據實施例的包括使用色拉、蛋白質和池的數據交換的處理環(huán)境的框圖。這個實例環(huán)境包括三個裝置(例如裝置X、裝置Y和裝置Z,在此集體被稱為“裝置”),它們通過使用如以上所描述的色拉、蛋白質和池來共享數據。裝置中的每一個耦合到三個池(例如池1、池2、 池3)。池1包括眾多蛋白質(例如蛋白質XI、蛋白質Z2、蛋白質Y2、蛋白質X4、蛋白質W), 它們從各個裝置貢獻或傳送到池(例如,蛋白質Z2由裝置Z傳送或貢獻到池1,等等)。池 2包括眾多蛋白質(例如蛋白質Z4、蛋白質TO、蛋白質Z1、蛋白質X3),它們從各個裝置貢獻或傳送到池(例如,蛋白質Y3由裝置Y傳送或貢獻到池2,等等)。池3包括眾多蛋白質 (例如蛋白質Y1、蛋白質Z3、蛋白質X2),它們從各個裝置貢獻或傳送到池(例如,蛋白質X2 由裝置X傳送或貢獻到池3,等等)。雖然上面描述的例子包括耦合或連接在三個池當中的三個裝置,但是任何數目的裝置可以以任何方式或組合來耦合或連接在任何數目的池當中,并且任何池可以包括從任何數目或組合的裝置中貢獻的任何數目的蛋白質。這個示例的蛋白質和池與以上參考圖25-圖30所描述的一樣。圖32是根據實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置和在裝置中的一個或多個上運行的眾多程序,其中,原生質構造(例如池、蛋白質和色拉)用于允許眾多運行的程序共享并對裝置所生成的事件集體做出反應。這個系統(tǒng)只是多用戶、多裝置、多計算機交互控制場景或配置的一個例子。更加具體地,在這個例子中,包括多個裝置(例如裝置A、B等等)和在裝置上運行的若干程序(例如應用程序AA-AX、應用程序BA-BX等等)的交互系統(tǒng)使用原生質構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。
在這個例子中,每個裝置(例如裝置A、B等等)將由運行于各個裝置上的程序(例如應用程序AA-AX、應用程序BA-BX等等)生成的或者從其輸出的離散原始數據轉換成原生質蛋白質,并且將那些蛋白質存放到原生質池中。例如,程序AX生成數據或輸出并提供該輸出給裝置A,裝置A依次將原始數據轉換成蛋白質(例如蛋白質1A、蛋白質2A等等)并將那些蛋白質存放到池中。作為另一個例子,程序BC生成數據并提供該數據給裝置B,裝置B 依次將數據轉換成蛋白質(例如蛋白質1B、蛋白質2B等等)并將那些蛋白質存放到池中。每個蛋白質包含記述列表,其指定通過應用程序登記的數據或輸出以及用于程序自身的識別信息。在可能的情況下,蛋白質記述也可以給予輸出事件或動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于程序事件的有用狀態(tài)信息的全部集合。如以上所描述的,蛋白質在由耦合或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠經由本地存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性將負責生成處理事件的進程與使用或解釋事件的進程解耦。另一個后果是事件的源和消費者的多路化,以便裝置可以由一個人控制或者可以由幾個人同時使用(例如基于原生質的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。作為例子,裝置C可以從池中提取一個或多個蛋白質(例如蛋白質1A、蛋白質2A 等等)。在蛋白質提取之后,裝置C在蛋白質數據所對應的處理事件中可以使用從蛋白質的記述和攝取的色拉中檢索或讀取的蛋白質的數據。作為另一個例子,裝置B可以從池中提取一個或多個蛋白質(例如蛋白質1C、蛋白質2A等等)。在蛋白質提取之后,裝置B在蛋白質數據所對應的處理事件中可以使用蛋白質的數據。耦合或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現,然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。圖33是根據替換實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置和在裝置中的一個或多個上運行的眾多程序,其中,原生質構造(例如池、蛋白質和色拉)用于允許眾多運行的程序共享并對裝置所生成的事件集體做出反應。這個系統(tǒng)只是多用戶、多裝置、 多計算機交互控制場景或配置的一個例子。更加具體地,在這個例子中,包括多個裝置(例如分別耦合到裝置A和B的裝置X和Y)和在一個或多個計算機(例如裝置A、裝置B等等) 上運行的若干程序(例如應用程序AA-AX、應用程序BA-BX等等)的交互系統(tǒng)使用原生質構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。在這個例子中,每個裝置(例如分別耦合到裝置A和B的裝置X和Y)被管理和/ 或耦合以在一個或多個程序之下或者與其相結合地運行,一個或多個程序駐留在各個裝置上(例如裝置A、裝置B等等),各個裝置將由裝置(例如裝置X、裝置A、裝置Y、裝置B等等)硬件所生成的離散原始數據轉換成原生質蛋白質,并且將那些蛋白質存放到原生質池中。例如,與駐留在裝置A上的應用程序AB相結合地運行的裝置X生成原始數據,將離散的原始數據轉換成蛋白質(例如蛋白質1A、蛋白質2A等等)并將那些蛋白質存放到池中。 作為另一個例子,與駐留在裝置A上的應用程序AT相結合地運行的裝置X生成原始數據, 將離散的原始數據轉換成蛋白質(例如蛋白質1A、蛋白質2A等等)并將那些蛋白質存放到池中。作為還有另一個例子,與駐留在裝置C上的應用程序⑶相結合地運行的裝置Z生成原始數據,將離散的原始數據轉換成蛋白質(例如蛋白質1C、蛋白質2C等等)并將那些蛋白質存放到池中。每個蛋白質包含記述列表,其指定通過輸入裝置登記的動作以及用于裝置自身的識別信息。在可能的情況下,蛋白質記述也可以給予裝置動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于裝置事件的有用狀態(tài)信息的全部集合。如以上所描述的,蛋白質在由耦合或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠經由本地存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性將負責生成處理事件的進程與使用或解釋事件的進程解耦。另一個后果是事件的源和消費者的多路化,以便輸入裝置可以由一個人控制或者可以由幾個人同時使用(例如基于原生質的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。耦合或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現,然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。圖34是根據另一個替換實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個輸入裝置,多個輸入裝置耦合在運行于裝置中的一個或多個上的眾多程序當中,其中,原生質構造 (例如池、蛋白質和色拉)用于允許眾多運行的程序共享并對輸入裝置所生成的事件集體做出反應。這個系統(tǒng)只是多用戶、多裝置、多計算機交互控制場景或配置的一個例子。更加具體地,在這個例子中,包括多個輸入裝置(例如輸入裝置A、B、BA和BB等等)和在一個或多個計算機(例如裝置A、裝置B等等)上運行的若干程序(未示出)的交互系統(tǒng)使用原生質構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。在這個例子中,每個輸入裝置(例如輸入裝置A、B、BA和BB等等)由駐留在各個裝置上(例如裝置A、裝置B等等)的軟件驅動器程序管理,各個裝置將由輸入裝置硬件所生成的離散原始數據轉換成原生質蛋白質,并且將那些蛋白質存放到原生質池中。例如,輸入裝置A生成原始數據并提供該原始數據給裝置A,裝置A依次將離散的原始數據轉換成蛋白質(例如蛋白質1A、蛋白質2A等等)并將那些蛋白質存放到池中。作為另一個例子,輸入裝置BB生成原始數據并提供該原始數據給裝置B,裝置B依次將離散的原始數據轉換成蛋白質(例如蛋白質1B、蛋白質:3B等等)并將那些蛋白質存放到池中。每個蛋白質包含記述列表,其指定通過輸入裝置登記的動作以及用于裝置自身的識別信息。在可能的情況下,蛋白質記述也可以給予裝置動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于裝置事件的有用狀態(tài)信息的全部集合。
為了示意,這里是這樣的系統(tǒng)中的用于兩個典型事件的示例蛋白質。蛋白質在這里被表示為文本,然而在實際實施中,這些蛋白質的組成部分是定型的數據束(例如色拉)。描述一般而言“一根手指點擊”姿勢(在相關申請中有描述)的蛋白質如下
angle-axis => [ 0,0,0.0,0.0,0.707 ] gripe => ..八i|:vx time => 184437103.29}]作為進一步的例子,描述鼠標點擊的蛋白質如下 time => 184437124.80}]前述樣本蛋白質中的任一個或兩者可能使主機裝置的參與程序運行其代碼的特殊部分。這些程序可能對一般的語義標簽感興趣全部當中最一般的是“point”, 或者更特定的對“engage,one”?;蛘咚鼈兛梢詫ふ宜坪鮾H會由精確裝置生成的事件 “one-finger-engage”,乃至單個聚集對象 “hand-id-23”。如以上所描述的,蛋白質在由耦合或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠經由本地存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性將負責生成“輸入事件” 的進程與使用或解釋事件的進程解耦。另一個后果是事件的源和消費者的多路化,以便輸入裝置可以由一個人控制或者可以由幾個人同時使用(例如基于原生質的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。作為例子或蛋白質使用,裝置C可以從池中提取一個或多個蛋白質(例如蛋白質 IB等等)。在蛋白質提取之后,裝置C在處理蛋白質數據所對應的輸入裝置CA和CC的輸入事件時可以使用從蛋白質的記述和攝取的色拉中檢索或讀取的蛋白質的數據。作為另一個例子,裝置A可以從池中提取一個或多個蛋白質(例如蛋白質IB等等)。在蛋白質提取之后,裝置A在處理蛋白質數據所對應的輸入裝置A的輸入事件時可以使用蛋白質的數據。耦合或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現,然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。在此描述的系統(tǒng)實施例中使用的輸入裝置的例子包括如消費電子產品中使用的姿勢輸入傳感器、鍵盤、鼠標、紅外線遙控器以及面向任務的觸媒對象,這只是舉幾個例子。圖35是根據又一個替換實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦合在運行于裝置中的一個或多個上的眾多程序當中,其中,原生質構造(例如池、 蛋白質和色拉)用于允許眾多運行的程序共享并對裝置所生成的圖形事件集體做出反應。 這個系統(tǒng)只是包括多個運行程序(例如圖形A-E)和一個或多個顯示裝置(未示出)的系統(tǒng)的一個例子,其中,使得程序中的一些或全部的圖形輸出以協(xié)調的方式可用于其它程序, 使用原生質構造(例如池、蛋白質和色拉)以允許運行的程序共享并對裝置所生成的圖形事件集體做出反應。對于計算機程序而言通常有用的是顯示由另一個程序生成的圖形。幾個通常的例子包括視頻會議應用程序、基于網絡的放映幻燈片和演示程序以及視窗管理器。在這種配置下,池用作原生質庫以實施一般化的框架,該框架封裝視頻、網絡應用程序共享和視窗管理,并且允許程序員添加在這種程序的當前版本中通常不可用的若干特征。在原生質組成環(huán)境中運行的程序(例如圖形A-E)通過耦合和/或連接到池而參與協(xié)調池。每個程序都可以將蛋白質存放在該池中,以指示不同種類的圖形源的可用性??捎糜陲@示圖形的程序也存放蛋白質,以指示它們顯示的能力、安全和用戶簡檔以及物理和網絡位置。圖形數據也可以通過池傳輸,或者顯示程序可以指向其它種類的網絡資源(例如 RTSP流)。如在此使用的短語“圖形數據”指的是依賴寬闊連續(xù)區(qū)的多種不同表示;圖形數據的例子包括但不限于文字例子(例如“圖像”或像素塊)、程序性例子(例如“繪圖”指示的序列,諸如流下典型的openGL管線)以及描述性例子(例如借助于幾何轉換、裁剪和合成操作來組合其它圖形構造的指令)。在本地機器上,圖形數據可以通過平臺專用顯示驅動器優(yōu)化來遞送。即使當圖形沒有經由池傳輸時,通常周期性的屏幕捕捉也會存儲在協(xié)調池中,以便客戶在不直接訪問更深奧的源的情況下仍然可以顯示后退圖形。這里描述的系統(tǒng)的一個優(yōu)點在于,與大多數消息傳遞框架和網絡協(xié)議不同,池維持數據的顯著緩沖。所以程序可以向后回繞到池中以查看訪問和使用模式(在協(xié)調池的情況下)或者提取以前的圖形幀(在圖形池的情況下)。圖36是根據再一個替換實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦合在運行于裝置中的一個或多個上的眾多程序當中,其中,原生質構造(例如池、 蛋白質和色拉)用于允許對運行的程序進行狀態(tài)檢查、可視化和調試。這個系統(tǒng)只是包括多個裝置(例如裝置A、裝置B等等)上的多個運行程序(例如程序P-A、程序P-B等等) 的系統(tǒng)的一個例子,其中,一些程序使用或經由池訪問其它程序的內部狀態(tài)。大多數交互計算機系統(tǒng)包括彼此并排運行的許多程序,它們或者在單個機器上或者在多個機器上,并且跨越網絡進行交互。多程序系統(tǒng)可能難以配置、分析和調試,因為運行時間數據隱藏在每個進程內部并難以訪問。在此描述的實施例的一般化框架和原生質構造允許運行的程序使許多它們的數據經由池可用,以便其它程序可以檢查它們的狀態(tài)。這個框架啟用比傳統(tǒng)調試器更靈活的調試工具、復雜的系統(tǒng)維護工具以及可視化裝備,可視化裝備配置成允許人工操作員詳細地分析一個或多個程序已經過的狀態(tài)的序列。參考圖36,在這個框架中運行的程序(例如程序P-A、程序P-B等等)在程序啟動時生成或創(chuàng)建進程池。這個池登記在系統(tǒng)年鑒中,并且施加安全與訪問控制。更加具體地, 每個裝置(例如裝置A、B等等)將由運行于各個裝置上的程序(例如程序P-A、程序P-B 等等)生成的或者從其輸出的離散原始數據轉換成原生質蛋白質,并且將那些蛋白質存放到原生質池中。例如,程序P-A生成數據或輸出并提供該輸出給裝置A,裝置A依次將原始數據轉換成蛋白質(例如蛋白質1A、蛋白質2A、蛋白質3A等等)并將那些蛋白質存放到池中。作為另一個例子,程序P-B生成數據并提供該數據給裝置B,裝置B依次將數據轉換成蛋白質(例如蛋白質1B-4B等等)并將那些蛋白質存放到池中。在程序壽命的存續(xù)期間,具有充分訪問許可的其它程序可以附接到池并讀取程序存放的蛋白質;這表示基本檢查模態(tài),并且在概念上是“單路”或“只讀”命題在程序P-A 中感興趣的實體檢查由其進程池中的P-A存放的狀態(tài)信息流。例如,在裝置C下運行的檢查程序或應用程序可以從池中提取一個或多個蛋白質(例如蛋白質1A、蛋白質2A等等)。 在蛋白質提取之后,裝置C可以使用從蛋白質的記述和攝取的色拉中檢索或讀取的蛋白質的數據以訪問、解釋和檢查程序P-A的內部狀態(tài)。但是,回顧原生質系統(tǒng)不僅是有效的狀態(tài)傳輸方案,而且是全方向消息收發(fā)環(huán)境, 幾個另外的模式支持程序對程序狀態(tài)檢查。授權的檢查程序可以自己將蛋白質存放到程序 P的進程池中,以影響或控制在該進程池中產生和放置的狀態(tài)信息的特性(畢竟,程序P不僅向進程池中寫入而且還從中讀取)。圖37是根據另一個替換實施例的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦合在運行于裝置中的一個或多個上的眾多程序當中,其中,原生質構造(例如池、 蛋白質和色拉)用于允許影響或控制該進程池中產生和放置的狀態(tài)信息的特性。在這個系統(tǒng)例子中,裝置C的檢查程序例如可以請求程序(例如程序P-A、程序P-B等等)或者在單個即時或者在具體的一段時間傾卸比正常更多的狀態(tài)到池中。或者,預示調試通信的下一個“等級”,感興趣的程序可以請求程序(例如程序P-A、程序P-B等等)發(fā)出列舉其運行時間環(huán)境中現存的對象的蛋白質,它們單獨地能夠并且可用于經由調試池進行交互。由此可知,感興趣的程序可以“尋址”程序運行時間中的對象當中的個體,將蛋白質放置在具體的對象單獨會占用并做出反應的進程池中。感興趣的程序例如可以請求對象發(fā)出報告蛋白質,描述其全部成分變量的即時值。甚至更重要的是,感興趣的程序可以經由其它蛋白質指導對象改變其行為或其變量的值。更加具體地,在這個例子中,裝置C的檢查應用程序將對于對象列表的請求(例如 “請求對象列表”)(以蛋白質的形式)放置到池中,該請求然后由耦合到池的每個裝置(例如裝置A、裝置B等等)提取。響應于該請求,每個裝置(例如裝置A、裝置B等等)將列舉其運行時間環(huán)境中現存的對象的蛋白質(例如蛋白質1A、蛋白質IB等等)放置到池中,它們單獨地能夠并且可用于經由調試池進行交互。由此可知經由來自裝置的列舉,并且響應于對象的列舉,裝置C的檢查應用程序尋址程序運行時間中的對象當中的個體,將蛋白質放置在具體的對象單獨會占用并做出反應的進程池中。裝置C的檢查應用程序例如可以將請求蛋白質(例如蛋白質“請求報告 Ρ-Α-0”、“請求報告Ρ-Β-0”)放置在池中,對象(例如分別是對象Ρ-Α-0、對象Ρ-Β-0)發(fā)出報告蛋白質(例如蛋白質2A、蛋白質2B等等),描述其全部成分變量的即時值。每個對象(例如對象Ρ-Α-0、對象Ρ-Β-0)提取其請求(例如分別是“請求報告Ρ-Α-0”、“請求報告 Ρ-Β-0”),并且做為響應,將蛋白質放置到包括所請求的報告(例如分別為蛋白質2A、蛋白質2B)的池中。裝置C然后提取各種報告蛋白質(例如蛋白質2A、蛋白質2B等等),并且如對報告的內容適當的那樣采取隨后的處理動作。用這種方式,使用原生質作為互換介質最終趨于侵蝕調試、進程控制以及程序對程序通信與協(xié)調之間的區(qū)別。最后,一般化的原生質框架允許可視化和分析程序以松散耦合的方式設計。例如顯示存儲器訪問模式的可視化工具可以結合輸出其基本存儲器讀取和寫入至池的任何程序一起使用。經歷分析的程序不需要知道可視化工具的存在或設計,反之亦然。以上述方式使用池并不過度影響系統(tǒng)性能。例如,實施例已允許在池中每秒存放幾十萬個蛋白質,以便使得即使相對冗長的數據輸出也能夠不顯著地抑制大多數程序的響應性或交互特征。本文中描述的實施例包括一種用于在數據空間中導航的方法,該方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,檢測包括僅使用姿勢數據來識別姿勢;將姿勢轉換成姿勢信號;以及響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間。實施例的方法包括將數據集的參數控制軸與物理空間的維對準。實施例的維為深度維。實施例的維為水平維。實施例的維為垂直維。實施例的維為側向維。實施例的導航包括沿維的運動以實現沿參數控制軸的數據空間移動。實施例的導航包括導航到數據空間的量化參數空間。實施例的檢測包括檢測身體的演進的位置。實施例的檢測包括檢測身體的演進的取向。實施例的檢測包括檢測身體的演進的姿態(tài),其中,姿態(tài)是身體的部分相對于身體的至少一個其它部分的幾何布置。實施例的檢測包括檢測身體的演進的運動。實施例的檢測包括檢測以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。實施例的方法包括將姿勢解析成姿勢事件的序列。實施例的方法包括識別姿勢。實施例的姿勢的識別包括識別以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。
實施例的方法包括生成姿勢事件的序列中的姿勢事件的表示。實施例的方法包括將姿勢事件的表示分發(fā)到耦合到數據空間的至少一個控制組件。實施例的方法包括使姿勢事件的表示與數據空間的圖形描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的圖形描述同步。實施例的方法包括使姿勢事件的表示與數據空間的聽覺描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的聽覺描述同步。實施例的數據集表示空間信息。實施例的數據集表示以下至少之一的空間信息現象、事件、測量、觀測、和結構。實施例的數據集表示非空間信息。實施例的姿勢包括線性空間運動。實施例的導航包括在數據空間中的線性接近。實施例的方法包括在多個數據幀中呈現數據集,其中,數據幀是數據空間的多個區(qū)域的圖形描述。實施例的方法包括在顯示器上將每個數據幀顯示為可見幀。實施例的數據幀的大小和縱橫比與顯示器的大小和縱橫比相一致。實施例的數據幀的中心和法向矢量與顯示器的中心和法向矢量相一致。實施例的數據幀的位置和取向與顯示器的位置和取向相一致。實施例的每個數據幀包括表示數據集的元素的圖形數據元素。實施例的圖形數據元素為靜態(tài)元素。實施例的圖形數據元素為動態(tài)元素。實施例的數據幀為二維構造。實施例的數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,該坐標系與描述包括身體的本地環(huán)境的坐標系相一致。實施例的在數據空間中導航包括在多個數據幀中導航。實施例的方法包括檢測身體的第一姿態(tài)。實施例的方法包括響應于檢測到第一姿態(tài)而激活推回交互。實施例的方法包括記錄進入第一姿態(tài)的第一位置,其中,第一位置是三維空間的手位置。實施例的方法包括將第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與原點的相對偏移。實施例的方法包括通過檢測身體的移動來檢測姿勢。實施例的檢測包括檢測身體的第一移動,其中,第一移動是沿軸朝向顯示器的移動,其中,該軸被定義為與顯示器的觀看表面垂直的軸。響應身體的第一移動,實施例的導航包括沿軸位移多個數據幀,其中,數據幀所位于的平面中有較多平面變得可見,其中,看見顯示器上呈現的第一可見幀從顯示器后退,以及第一數據幀的鄰近數據幀變得可見。響應身體的第一移動,實施例的導航包括沿軸從當前數據幀位移多個數據幀,其中,數據幀向下平移,其中,當前數據幀是當前呈現在顯示器上的數據幀。實施例的每個數據幀的外表響應于位移而改變,其中,位于當前數據幀之下的數據幀呈現相對高的透明度和模糊度,其中,當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,位于當前數據幀之上的數據幀呈現相對更低的透明度和模糊度以及變得可見。實施例的檢測包括檢測身體的第二移動,其中,第二移動是沿軸遠離顯示器的移動。響應身體的第二移動,實施例的導航包括沿軸位移多個數據幀,其中,數據幀所位于的平面中有較少平面變得可見,其中,看見顯示器上呈現的第一可見幀從顯示器接近,以及第一數據幀的鄰近數據幀變得更少地可見。響應身體的第二移動,實施例的導航包括沿軸從當前數據幀位移多個數據幀,其中,數據幀向上平移,其中,當前數據幀是當前呈現在顯示器上的數據幀。實施例的每個數據幀的外表響應于位移而改變,其中,位于當前數據幀之上的數據幀呈現相對高的透明度和模糊度,其中,當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,位于當前數據幀之下的數據幀呈現相對更低的透明度和模糊度以及開始變得可見。實施例的檢測包括檢測身體的第三移動,其中,第三移動是在與顯示器的觀看表面平行的平面內的移動。響應身體的第三移動,實施例的導航包括在對應于第三移動的方向上位移多個數據幀。看見本實施例的呈現在顯示器上的當前數據幀在該方向上滑動,以及當前數據幀的鄰近數據幀從顯示器的與該方向相反的一側滑入視圖中,其中,當前數據幀是當前呈現在顯示器上的數據幀。實施例的導航包括直接響應身體的移動而連續(xù)更新多個數據幀的位移。實施例的方法包括檢測身體的第二姿態(tài)。實施例的方法包括響應于檢測到第二姿態(tài)而終止推回交互,其中,終止包括將多個數據幀中的數據幀顯示為與顯示器共面。實施例的方法包括在姿勢期間的身體位移的物理距離與在導航期間在數據空間中的相繼點間的邏輯距離之間的映射,其中,映射控制以下至少之一多個數據幀在數據空間中的相對位移、和每個離散數據幀的外表。實施例的方法包括形成包括活動區(qū)和死區(qū)的姿勢交互空間,其中,活動區(qū)鄰近顯示器,而死區(qū)鄰近活動區(qū)。當在活動區(qū)中檢測到姿勢時,響應于姿勢而激活本實施例的響應于姿勢信號在數據空間中的導航。實施例的方法包括呈現在顯示器上的反饋指示器。實施例的反饋指示器顯示指示身體在活動區(qū)和死區(qū)之一中的反饋。實施例的反饋指示器顯示指示身體離原點的物理偏移的反饋。實施例的檢測包括以下至少之一檢測身體的位置、檢測身體的取向、和檢測身體的運動。實施例的方法包括識別姿勢,其中,識別包括識別身體的部分的姿態(tài)和取向。實施例的檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物
皇A
朱口 ο實施例的檢測包括動態(tài)檢測耦合到身體的至少一個標簽的位置。
實施例的檢測包括動態(tài)檢測耦合到身體的標簽集的位置。實施例的標簽集中的每個標簽包括圖案,其中,標簽集中的每個標簽的每個圖案不同于多個標簽中的任意剩余標簽的任意圖案。實施例的檢測包括動態(tài)檢測和定位身體上的標記。實施例的檢測包括檢測耦合到身體的標記集的位置。實施例的標記集形成身體上的多個圖案。實施例的檢測包括使用耦合到附屬物中的每個的標記集來檢測身體的多個附屬物的位置。實施例的轉換包括將姿勢信息轉換成姿勢符號。實施例的姿勢符號表示姿勢詞匯,以及姿勢信號包括姿勢詞匯的通信。實施例的姿勢詞匯以文本形式表示身體的運動關聯(lián)(kinematic linkage)的即時姿態(tài)狀態(tài)。實施例的姿勢詞匯以文本形式表示身體的運動關聯(lián)(kinematic linkage)的取向。實施例的姿勢詞匯以文本形式表示身體的運動關聯(lián)(kinematic linkage)的取向的組合。實施例的姿勢詞匯包括表示身體的運動關聯(lián)的狀態(tài)的字符串。實施例的運動關聯(lián)是身體的至少一個第一附屬物。實施例的方法包括將字符串中的每個位置指定給第二附屬物,該第二附屬物連接到第一附屬物。實施例的方法包括將多個字符中的字符指定給第二附屬物的多個位置中的每個。實施例的多個位置相對于坐標系原點而建立。實施例的方法包括使用從由以下組成的組中選擇的位置以及交互地響應身體的動作來建立坐標系原點空間中的絕對位置和取向、不管身體的整體位置和朝向而相對于身體的固定位置和取向。實施例的方法包括將多個字符中的字符指定給第一附屬物的多個取向中的每個。實施例的檢測包括檢測身體的推測(extrapolated)位置何時與虛擬空間相交, 其中,虛擬空間包括在耦合到計算機的顯示裝置上描繪的空間。實施例的方法包括當推測的位置與虛擬空間中虛擬對象相交時控制虛擬對象。實施例的控制包括響應虛擬空間中的推測的位置控制虛擬空間中的虛擬對象的位置。實施例的控制包括響應于姿勢來控制虛擬空間中的虛擬對象的姿勢。實施例的方法包括對檢測和控制的定標(scaling)進行控制以產生虛擬空間與物理空間之間的一致性,其中,虛擬空間包括顯示器上描繪的空間,其中,物理空間包括身體所存在于的空間。實施例的方法包括響應于物理空間中的至少一個物理對象的移動來控制虛擬空間中的至少一個虛擬對象。實施例的方法包括利用成像系統(tǒng)對身體進行成像。實施例的成像包括生成身體的波前編碼圖像。
實施例的姿勢數據包括身體的在成像系統(tǒng)的景深之內的焦點分辨的數據。實施例的方法包括通過對成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。
實施例的中間圖像變得模糊。實施例的中間圖像對以下方面中的至少之一的改變不敏感身體,以及成像系統(tǒng)中包括散焦像差的多個光學檢測器。實施例的姿勢數據包括身體的在景深之內的焦點分辨的范圍數據。實施例的身體的在景深之內的焦點分辨的范圍數據是從成像系統(tǒng)的輸出導出的。實施例的姿勢數據包括身體的在景深之內的焦點分辨的位置數據。實施例的身體的在景深之內的焦點分辨的位置數據是從成像系統(tǒng)的輸出導出的。實施例的成像系統(tǒng)包括多個檢測器。實施例的至少兩個檢測器是包括波前編碼光學元件的波前編碼攝像機。實施例的至少兩個光學檢測器是包括增加成像的焦點深度的相位掩模的波前編碼攝像機。實施例的方法包括生成不隨身體和成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。實施例的方法包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。本文中描述的實施例包括一種系統(tǒng),該系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到檢測器的處理器,處理器自動從姿勢數據中檢測姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,處理器僅使用姿勢數據來識別姿勢,處理器將姿勢轉換成姿勢信號,處理器響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間。本文中描述的實施例包括一種用于在數據空間中導航的方法,該方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,檢測包括僅使用姿勢數據來識別姿勢;將姿勢轉換成姿勢信號;響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間;以及在多個共面數據幀中呈現數據集以及在顯示器上將每個數據幀顯示為可見幀,其中,多個共面數據幀是數據空間的多個區(qū)域的圖形描繪。實施例的方法包括檢測身體的第一姿態(tài)。實施例的方法包括響應于檢測到第一姿態(tài)而激活推回交互。實施例的方法包括記錄進入第一姿態(tài)的第一位置,其中,第一位置是三維空間的手位置。實施例的方法包括將第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與原點的相對偏移。實施例的檢測包括檢測身體的向前移動,其中,向前移動是沿ζ軸朝向顯示器的移動,其中,該ζ軸被定義為與顯示器的觀看表面垂直的軸。響應身體的向前移動,實施例的導航包括沿ζ軸位移多個數據幀,其中,數據幀所位于的平面中有較多平面變得可見,其中,看見顯示器上呈現的第一可見幀從顯示器后退, 以及第一數據幀的鄰近數據幀變得可見。實施例的檢測包括檢測身體的向后移動,其中,向后移動是沿ζ軸遠離顯示器的移動。
響應身體的向后移動,實施例的導航包括沿ζ軸位移多個數據幀,其中,數據幀所位于的平面中有較少平面變得可見,其中,看見顯示器上呈現的第一可見幀從顯示器接近, 以及第一數據幀的鄰近數據幀變得更少地可見。實施例的方法包括直接響應身體沿ζ軸的移動而連續(xù)更新多個數據幀的沿ζ軸的位移。實施例的方法包括檢測身體的第二姿態(tài)。實施例的方法包括響應于檢測到第二姿態(tài)而終止推回交互,其中,終止包括將多個數據幀中的數據幀顯示為與顯示器共面。實施例的檢測包括檢測身體的右側向移動,其中,右側向移動是沿χ軸的移動,其中,X軸存在于與顯示器的觀看表面平行的平面內。響應身體的右側向移動,實施例的導航包括沿χ軸向右位移多個數據幀,其中,看見呈現在顯示器上的第一可見幀從顯示器向顯示器的右側滑動,以及第一數據幀的鄰近數據幀從顯示器的左側滑入視圖中。實施例的檢測包括檢測身體的左側向移動,其中,左側向移動是沿χ軸的移動。響應身體的左側向移動,實施例的導航包括沿X軸向左位移多個數據幀,其中,看見呈現在顯示器上的第一可見幀從顯示器向顯示器的左側滑動,以及第一數據幀的鄰近數據幀從顯示器的右側滑入視圖中。實施例的方法包括直接響應身體沿χ軸的移動而連續(xù)更新多個數據幀的沿X軸的位移。實施例的方法包括檢測身體的第二姿態(tài)。實施例的方法包括響應于檢測到第二姿態(tài)而終止推回交互,其中,終止包括將多個數據幀中的數據幀顯示為與顯示器共面。實施例的數據空間包括布置在平面內的多個虛擬限位裝置(detent)。實施例的每個虛擬限位裝置對應于每個數據幀。實施例的方法包括形成包括活動區(qū)和死區(qū)的姿勢交互空間,其中,活動區(qū)鄰近顯示器,而死區(qū)鄰近活動區(qū)。當在活動區(qū)中檢測到姿勢時,響應于姿勢而激活本實施例的響應于姿勢信號在數據空間中的導航。實施例的方法包括呈現在顯示器上的反饋指示器。實施例的反饋指示器顯示指示身體在活動區(qū)和死區(qū)之一中的反饋。實施例的反饋指示器顯示指示身體離原點的物理偏移的反饋。實施例的方法包括將數據集的參數控制軸與物理空間的維對準。實施例的維為深度維。實施例的維為水平維。實施例的維為垂直維。實施例的維為側向維。實施例的導航包括沿維的運動以實現沿參數控制軸的數據空間移動。實施例的導航包括導航到數據空間的量化參數空間。實施例的檢測包括檢測身體的演進的位置。實施例的檢測包括檢測身體的演進的取向。實施例的檢測包括檢測身體的演進的姿態(tài),其中,姿態(tài)是身體的部分相對于身體的至少一個其它部分的幾何布置。實施例的檢測包括檢測身體的演進的運動。實施例的檢測包括檢測以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。實施例的方法包括將姿勢解析成姿勢事件的序列。實施例的方法包括識別姿勢。實施例的姿勢的識別包括識別以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。實施例的方法包括生成姿勢事件的序列中的姿勢事件的表示。實施例的方法包括將姿勢事件的表示分發(fā)到耦合到數據空間的至少一個控制組件。實施例的方法包括使姿勢事件的表示與數據空間的圖形描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的圖形描述同步。實施例的方法包括使姿勢事件的表示與數據空間的聽覺描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的聽覺描述同步。實施例的數據集表示空間信息。實施例的數據集表示以下至少之一的空間信息現象、事件、測量、觀測、和結構。實施例的數據集表示非空間信息。實施例的姿勢包括線性空間運動。實施例的導航包括在數據空間中的線性接近。實施例的方法包括在多個數據幀中呈現數據集,其中,數據幀是數據空間的多個區(qū)域的圖形描述。實施例的方法包括在顯示器上將每個數據幀顯示為可見幀。實施例的數據幀的大小和縱橫比與顯示器的大小和縱橫比相一致。實施例的數據幀的中心和法向矢量與顯示器的中心和法向矢量相一致。實施例的數據幀的位置和取向與顯示器的位置和取向相一致。實施例的每個數據幀包括表示數據集的元素的圖形數據元素。實施例的圖形數據元素為靜態(tài)元素。實施例的圖形數據元素為動態(tài)元素。實施例的數據幀為二維構造。實施例的數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,該坐標系與描述包括身體的本地環(huán)境的坐標系相一致。實施例的在數據空間中導航包括在多個數據幀中導航。實施例的方法包括識別姿勢,其中,識別包括識別身體的部分的姿態(tài)和取向。實施例的檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物
皇A
朱口 ο實施例的檢測包括動態(tài)檢測至少一個標簽的位置。實施例的檢測包括動態(tài)檢測和定位身體上的標記。實施例的轉換包括將姿勢信息轉換成姿勢符號。實施例的姿勢符號表示姿勢詞匯,以及姿勢信號包括姿勢詞匯的通信。
實施例的姿勢詞匯以文本形式表示身體的即時姿態(tài)狀態(tài)。實施例的姿勢詞匯以文本形式表示身體的取向。實施例的姿勢詞匯以文本形式表示身體的取向的組合。實施例的姿勢詞匯包括表示身體的狀態(tài)的字符串。檢測包括檢測身體的推測(extrapolated)位置何時與虛擬空間相交,其中,虛擬空間包括在顯示器上描繪的空間。實施例的方法包括當推測的位置與虛擬空間中的虛擬對象相交時控制虛擬對象。實施例的控制包括響應虛擬空間中的推測的位置控制虛擬空間中的虛擬對象的位置。實施例的方法包括對檢測和控制的定標(scaling)進行控制以產生虛擬空間與物理空間之間的一致性,其中,虛擬空間包括顯示器上描繪的空間,其中,物理空間包括身體所存在于的空間。實施例的方法包括利用成像系統(tǒng)對身體進行成像。實施例的成像包括生成身體的波前編碼圖像。實施例的姿勢數據包括身體的在成像系統(tǒng)的景深之內的焦點分辨的數據。實施例的方法包括通過對成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。實施例的中間圖像變得模糊。實施例的中間圖像對以下方面中的至少之一的改變不敏感身體,以及成像系統(tǒng)中包括散焦像差的多個光學檢測器。實施例的姿勢數據包括身體的在景深之內的焦點分辨的范圍數據。實施例的身體的在景深之內的焦點分辨的范圍數據是從成像系統(tǒng)的輸出導出的。實施例的姿勢數據包括身體的在景深之內的焦點分辨的位置數據。實施例的身體的在景深之內的焦點分辨的位置數據是從成像系統(tǒng)的輸出導出的。實施例的成像系統(tǒng)包括多個檢測器。實施例的至少兩個檢測器是包括波前編碼光學元件的波前編碼攝像機。實施例的至少兩個光學檢測器是包括增加成像的焦點深度的相位掩模的波前編碼攝像機。實施例的方法包括生成不隨身體和成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。實施例的方法包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。本文中描述的實施例包括一種系統(tǒng),該系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到檢測器的處理器,處理器自動從姿勢數據中檢測姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,處理器僅使用姿勢數據來識別姿勢,處理器將姿勢轉換成姿勢信號,處理器響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間,處理器在多個共面數據幀中呈現數據集以及在顯示器上將每個數據幀顯示為可見幀,其中, 多個共面數據幀是數據空間的多個區(qū)域的圖形描繪。本文中描述的實施例包括一種用于在數據空間中導航的方法,該方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,檢測包括僅使用姿勢數據來識別姿勢;將姿勢轉換成姿勢信號;響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間;以及在多個共面數據幀中呈現數據集以及在顯示器上將每個數據幀顯示為可見幀,其中,多個共面數據幀是數據空間的多個區(qū)域的圖形描繪;其中,多個數據幀包括布置在數據空間的多個平面內的離散數據幀的堆棧,其中,每個數據幀位于多個平面的分立平面內。實施例的方法包括檢測身體的第一姿態(tài)。實施例的方法包括響應于檢測到第一姿態(tài)而激活推回交互。實施例的方法包括記錄進入第一姿態(tài)的第一位置,其中,第一位置是三維空間的手位置。實施例的方法包括將第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與原點的相對偏移。實施例的檢測包括檢測身體的向上移動,其中,向上移動是沿y軸從顯示器向外的移動,其中,該y軸被定義為與顯示器的觀看表面垂直的軸。響應身體的向上移動,實施例的導航包括沿y軸從當前數據幀位移多個數據幀, 其中,堆棧的離散數據幀向上平移,其中,當前數據幀是當前呈現在顯示器上的離散數據幀。實施例的每個離散數據幀的外表響應于位移而改變,其中,堆棧中位于當前數據幀之上的離散數據幀呈現相對高的透明度和模糊度,其中,當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,堆棧中位于當前數據幀之下的離散數據幀呈現相對更低的透明度和模糊度以及開始變得可見。實施例的方法包括在姿勢期間的身體位移的物理距離與堆棧的相繼離散數據幀之間的邏輯距離之間的映射,其中,映射控制多個數據幀沿y軸的位移和每個離散數據幀的外表。實施例的檢測包括檢測身體的向下移動,其中,向下移動是沿y軸朝向顯示器的移動。響應身體的向下移動,實施例的導航包括沿y軸從當前數據幀位移多個數據幀, 其中,堆棧的離散數據幀向下平移。實施例的每個離散數據幀的外表響應于位移而改變,其中,堆棧中位于當前數據幀之下的離散數據幀呈現相對高的透明度和模糊度,其中,當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,堆棧中位于當前數據幀之上的離散數據幀呈現相對更低的透明度和模糊度以及變得可見。實施例的方法包括在姿勢期間的身體位移的物理距離與堆棧的相繼離散數據幀之間的邏輯距離之間的映射,其中,映射控制多個數據幀沿y軸的位移和每個離散數據幀的外表。實施例的方法包括直接響應身體沿y軸的移動而連續(xù)更新多個數據幀的沿y軸的位移。實施例的方法包括檢測身體的第二姿態(tài)。實施例的方法包括響應于檢測到第二姿態(tài)而終止推回交互,其中,終止包括將多個數據幀中的數據幀顯示為與顯示器共面。實施例的數據空間包括多個虛擬限位裝置。
實施例的每個虛擬限位裝置對應于多個平面中的每個平面。實施例的方法包括形成包括第一活動區(qū)、第二活動區(qū)和死區(qū)的姿勢交互空間,其中,第一活動區(qū)鄰近顯示器,死區(qū)鄰近第一活動區(qū),以及第二活動區(qū)鄰近死區(qū)。當在第一活動區(qū)和第二活動區(qū)之一中檢測到姿勢時,響應于姿勢而激活本實施例的響應于姿勢信號在數據空間中的導航。實施例的方法包括呈現在顯示器上的反饋指示器。實施例的反饋指示器顯示指示身體在第一活動區(qū)、第二活動區(qū)和死區(qū)之一中的反饋。實施例的反饋指示器顯示指示身體離原點的物理偏移的反饋。實施例的方法包括將數據集的參數控制軸與物理空間的維對準。實施例的維為深度維。實施例的維為水平維。實施例的維為垂直維。實施例的維為側向維。實施例的導航包括沿維的運動以實現沿參數控制軸的數據空間移動。實施例的導航包括導航到數據空間的量化參數空間。實施例的檢測包括檢測身體的演進的位置。實施例的檢測包括檢測身體的演進的取向。實施例的檢測包括檢測身體的演進的姿態(tài),其中,姿態(tài)是身體的部分相對于身體的至少一個其它部分的幾何布置。實施例的檢測包括檢測身體的演進的運動。實施例的檢測包括檢測以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。實施例的方法包括將姿勢解析成姿勢事件的序列。實施例的方法包括識別姿勢。實施例的姿勢的識別包括識別以下至少之一身體的演進的位置、身體的取向、身體的姿態(tài)、和身體的運動。實施例的方法包括生成姿勢事件的序列中的姿勢事件的表示。實施例的方法包括將姿勢事件的表示分發(fā)到耦合到數據空間的至少一個控制組件。實施例的方法包括使姿勢事件的表示與數據空間的圖形描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的圖形描述同步。實施例的方法包括使姿勢事件的表示與數據空間的聽覺描述同步。實施例的方法包括使姿勢事件的表示與在數據空間中的導航的聽覺描述同步。實施例的數據集表示空間信息。實施例的數據集表示以下至少之一的空間信息現象、事件、測量、觀測、和結構。實施例的數據集表示非空間信息。實施例的姿勢包括線性空間運動。實施例的導航包括在數據空間中的線性接近。
實施例的方法包括在多個數據幀中呈現數據集,其中,數據幀是數據空間的多個區(qū)域的圖形描述。實施例的方法包括在顯示器上將每個數據幀顯示為可見幀。實施例的數據幀的大小和縱橫比與顯示器的大小和縱橫比相一致。實施例的數據幀的中心和法向矢量與顯示器的中心和法向矢量相一致。實施例的數據幀的位置和取向與顯示器的位置和取向相一致。實施例的每個數據幀包括表示數據集的元素的圖形數據元素。實施例的圖形數據元素為靜態(tài)元素。實施例的圖形數據元素為動態(tài)元素。實施例的數據幀為二維構造。實施例的數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,該坐標系與描述包括身體的本地環(huán)境的坐標系相一致。實施例的在數據空間中導航包括在多個數據幀中導航。實施例的方法包括識別姿勢,其中,識別包括識別身體的部分的姿態(tài)和取向。實施例的檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物
皇A
朱口 ο實施例的檢測包括動態(tài)檢測至少一個標簽的位置。實施例的檢測包括動態(tài)檢測和定位身體上的標記。
實施例的轉換包括將姿勢信息轉換成姿勢符號。實施例的姿勢符號表示姿勢詞匯,以及姿勢信號包括姿勢詞匯的通信。實施例的姿勢詞匯以文本形式表示身體的即時姿態(tài)狀態(tài)。實施例的姿勢詞匯以文本形式表示身體的取向。實施例的姿勢詞匯以文本形式表示身體的取向的組合。實施例的姿勢詞匯包括表示身體的狀態(tài)的字符串。檢測包括檢測身體的推測(extrapolated)位置何時與虛擬空間相交,其中,虛擬空間包括在顯示器上描繪的空間。實施例的方法包括當推測的位置與虛擬空間中的虛擬對象相交時控制虛擬對象。實施例的控制包括響應虛擬空間中的推測的位置控制虛擬空間中的虛擬對象的位置。實施例的方法包括對檢測和導航的定標(scaling)進行控制以產生虛擬空間與物理空間之間的一致性,其中,虛擬空間包括顯示器上描繪的空間,其中,物理空間包括身體所存在于的空間。實施例的方法包括利用成像系統(tǒng)對身體進行成像。實施例的成像包括生成身體的波前編碼圖像。實施例的姿勢數據包括身體的在成像系統(tǒng)的景深之內的焦點分辨的數據。實施例的方法包括通過對成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。實施例的中間圖像變得模糊。實施例的中間圖像對以下方面中的至少之一的改變不敏感身體,以及成像系統(tǒng)中包括散焦像差的多個光學檢測器。實施例的姿勢數據包括身體的在景深之內的焦點分辨的范圍數據。
實施例的身體的在景深之內的焦點分辨的范圍數據是從成像系統(tǒng)的輸出導出的。實施例的姿勢數據包括身體的在景深之內的焦點分辨的位置數據。實施例的身體的在景深之內的焦點分辨的位置數據是從成像系統(tǒng)的輸出導出的。實施例的成像系統(tǒng)包括多個檢測器。實施例的至少兩個檢測器是包括波前編碼光學元件的波前編碼攝像機。實施例的至少兩個光學檢測器是包括增加成像的焦點深度的相位掩模的波前編碼攝像機。實施例的方法包括生成不隨身體和成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。實施例的方法包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。本文中描述的實施例包括一種系統(tǒng),該系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到檢測器的處理器,處理器自動從姿勢數據中檢測姿勢,其中,姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,處理器僅使用姿勢數據來識別姿勢,處理器將姿勢轉換成姿勢信號,處理器響應于姿勢信號在數據空間中導航,其中,數據空間是包括表示在物理空間中的數據集的數據表示空間,處理器在多個共面數據幀中呈現數據集以及在顯示器上將每個數據幀顯示為可見幀,其中, 多個共面數據幀是數據空間的多個區(qū)域的圖形描繪;其中,多個數據幀包括布置在數據空間的多個平面內的離散數據幀的堆棧,其中,每個數據幀位于多個平面的分立平面內。本文中描述的SOE包括處理系統(tǒng)和/或在處理系統(tǒng)下運行和/或與處理系統(tǒng)相關聯(lián)。如本領已知的,處理系統(tǒng)包括基于處理器的設備或一起運行的計算設備的任意集合、或者處理系統(tǒng)或設備的組件。例如,處理系統(tǒng)能夠包括一個或更多個便攜計算機、在通信網絡中運行的便攜通信設備和/或網絡服務器。便攜計算機可以是從個人計算機、移動電話、個人數字助理、便攜計算設備和便攜通信設備當中選擇的任意數量的設備和/或組合,但是不限于如此。處理系統(tǒng)能夠包括在更大的計算機系統(tǒng)中的組件。實施例的處理系統(tǒng)包括至少一個處理器和至少一個存儲裝置或子系統(tǒng)。處理系統(tǒng)還可以包括或耦合到至少一個數據庫。通常在此使用的術語“處理器”指的是任何邏輯處理單元,例如一個或多個中央處理單元(CPU)、數字信號處理器(DSP)、專用集成電路(ASIC) 等等。處理器和存儲器可以整體集成到單個芯片上,分布在主機系統(tǒng)的若干芯片或組成部分當中,和/或由算法的某種組合來提供。在此描述的方法可以在(一個或多個)軟件算法、程序、固件、硬件、部件、電路中的一個或多個中以任何組合實現。實施在此描述的系統(tǒng)和方法的系統(tǒng)部件可以位于一起或者位于分開的位置中。因此,實施在此描述的系統(tǒng)和方法的系統(tǒng)部件可以是單個系統(tǒng)、多個系統(tǒng)和/或地理上分開的系統(tǒng)的部件。這些部件也可以是單個系統(tǒng)、多個系統(tǒng)和/或地理上分開的系統(tǒng)的子部件或子系統(tǒng)。這些部件可以耦合到主機系統(tǒng)的或與該主機系統(tǒng)相耦合的系統(tǒng)的一個或多個其它部件。通信路徑耦合系統(tǒng)部件并包括用于在部件當中傳達或傳送文件的任何介質。通信路徑包括無線連接、有線連接和混合無線/有線連接。通信路徑還包括至網絡的耦合或連接,網絡包括局域網(LAN)、城域網(MAN)、廣域網(WAN)、專有網絡、局間或尾端網絡以及因特網。進而,通信路徑包括可移動固定介質像軟盤、硬盤驅動器、⑶-ROM盤以及快閃RAM、通用串行總線(USB)連接、RS-232連接、電話線、總線以及電子郵件消息。除非上下文明確要求,否則貫穿說明書,單詞“包括”等在與排除或窮舉的意義相反的包括的意義上闡釋;換言之,在“包括但不限于”的意義上闡釋。使用單數或復數的單詞也分別包括復數或單數。另外,單詞“在此”、“在下面”、“在上面”、“以下”以及類似含義的單詞指的是作為整體的本申請而不是本申請的任何特殊部分。當在引用兩個或更多條目的列表中使用單詞“或者”時,該單詞覆蓋了所有的以下單詞解釋冽表中的任何條目、列表中的所有條目以及列表中條目的任何組合。SOE的實施例的上述描述并不旨在窮舉或將描述的系統(tǒng)和方法限制到公開的精確形式。如本領域技術人員將會認識到的那樣,雖然為了示意的目的在此描述了 SOE的特定實施例和例子,各種等效修改在其它系統(tǒng)和方法的范圍之內都是可能的。在此提供的SOE 的教導可以適用于其它處理系統(tǒng)和方法,而不僅僅是用于上面描述的系統(tǒng)和方法。上述各種實施例的要素和行為可以進行組合以提供進一步的實施例??紤]到上述詳細描述,可以對SOE進行這些以及其它改變。一般,在下面的權利要求中,使用的術語不應該被解釋成限制本說明書和權利要求中公開的特定實施例的實例化,而是應該被解釋成包括根據權利要求運行的所有系統(tǒng)。 因此,實施例不被本文的公開限制,而是實際上實施例的范圍完全由權利要求來確定。盡管以下以某些權利要求的形式呈現了實施例的某些方面,發(fā)明人預期到以任意數量的權利要求形式的實施例的各個方面。因此,發(fā)明人保留在提交申請以后增加附加權利要求的權利,以追求針對實施例的其它方面的這樣的附加權利要求形式。
權利要求
1.一種用于在數據空間中導航的方法,所述方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述檢測包括僅使用所述姿勢數據來識別所述姿勢;將所述姿勢轉換成姿勢信號;以及響應所述姿勢信號在所述數據空間中導航,其中,所述數據空間是包括表示在物理空間中的數據集的數據表示空間。
2.根據權利要求1所述的方法,包括將所述數據集的參數控制軸與所述物理空間的維對準。
3.根據權利要求2所述的方法,其中,所述維為深度維。
4.根據權利要求2所述的方法,其中,所述維為水平維。
5.根據權利要求2所述的方法,其中,所述維為垂直維。
6.根據權利要求2所述的方法,其中,所述維為側向維。
7.根據權利要求2所述的方法,其中,所述導航包括沿所述維的運動以實現沿所述參數控制軸的數據空間平移。
8.根據權利要求2所述的方法,其中,所述導航包括導航到所述數據空間的量化參數空間。
9.根據權利要求1所述的方法,其中,所述檢測包括檢測所述身體的演進的位置。
10.根據權利要求1所述的方法,其中,所述檢測包括檢測所述身體的演進的取向。
11.根據權利要求1所述的方法,其中,所述檢測包括檢測所述身體的演進的姿態(tài),其中,所述姿態(tài)是所述身體的部分相對于所述身體的至少一個其它部分的幾何布置。
12.根據權利要求1所述的方法,其中,所述檢測包括檢測所述身體的演進的運動。
13.根據權利要求1所述的方法,其中,所述檢測包括檢測以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
14.根據權利要求1所述的方法,包括將所述姿勢解析成姿勢事件的序列。
15.根據權利要求14所述的方法,包括識別所述姿勢。
16.根據權利要求15所述的方法,其中,所述姿勢的識別包括識別以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
17.根據權利要求15所述的方法,包括生成所述姿勢事件的序列中的姿勢事件的表7J\ ο
18.根據權利要求17所述的方法,包括將所述姿勢事件的表示分發(fā)到耦合到所述數據空間的至少一個控制組件。
19.根據權利要求18所述的方法,包括使所述姿勢事件的表示與所述數據空間的圖形描述同步。
20.根據權利要求19所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的圖形描述同步。
21.根據權利要求18所述的方法,包括使所述姿勢事件的表示與所述數據空間的聽覺描述同步。
22.根據權利要求21所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的聽覺描述同步。
23.根據權利要求1所述的方法,其中,所述數據集表示空間信息。
24.根據權利要求23所述的方法,其中,所述數據集表示以下至少之一的空間信息現象、事件、測量、觀測、和結構。
25.根據權利要求1所述的方法,其中,所述數據集表示非空間信息。
26.根據權利要求1所述的方法,其中,所述姿勢包括線性空間運動。
27.根據權利要求1所述的方法,其中,所述導航包括在所述數據空間中的線性接近。
28.根據權利要求1所述的方法,包括在多個數據幀中呈現所述數據集,其中,所述數據幀是所述數據空間的多個區(qū)域的圖形描述;在顯示器上將每個數據幀顯示為可見幀。
29.根據權利要求觀所述的方法,其中,所述數據幀的大小和縱橫比與所述顯示器的大小和縱橫比相一致。
30.根據權利要求觀所述的方法,其中,所述數據幀的中心和法向矢量與所述顯示器的中心和法向矢量相一致
31.根據權利要求觀所述的方法,其中,所述數據幀的位置和取向與所述顯示器的位置和取向相一致。
32.根據權利要求觀所述的方法,其中,每個數據幀包括表示所述數據集的元素的圖形數據元素。
33.根據權利要求32所述的方法,其中,所述圖形數據元素為靜態(tài)元素。
34.根據權利要求32所述的方法,其中,所述圖形數據元素為動態(tài)元素。
35.根據權利要求觀所述的方法,其中,所述數據幀為二維構造。
36.根據權利要求35所述的方法,其中,所述數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,所述坐標系與描述包括所述身體的本地環(huán)境的坐標系相一致。
37.根據權利要求觀所述的方法,其中,所述在數據空間中導航包括在所述多個數據幀中導航。
38.根據權利要求觀所述的方法,包括檢測所述身體的第一姿態(tài);響應于檢測到第一姿態(tài)而激活推回交互。
39.根據權利要求38所述的方法,包括記錄進入所述第一姿態(tài)的第一位置,其中,所述第一位置是三維空間的手位置;將所述第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與所述原點的相對偏移。
40.根據權利要求39所述的方法,包括通過檢測所述身體的移動來檢測姿勢。
41.根據權利要求40所述的方法,其中,所述檢測包括檢測所述身體的第一移動,其中,所述第一移動是沿軸朝向所述顯示器的移動,其中,所述軸被定義為與所述顯示器的觀看表面垂直的軸。
42.根據權利要求41所述的方法,其中,響應所述身體的第一移動,所述導航包括沿軸位移多個數據幀,其中,所述數據幀所位于的平面中有較多平面變得可見,其中,看見所述顯示器上呈現的第一可見幀從所述顯示器后退,以及所述第一數據幀的鄰近數據幀變得可見。
43.根據權利要求41所述的方法,其中,響應所述身體的第一移動,所述導航包括沿所述軸從當前數據幀位移所述多個數據幀,其中,數據幀向下平移,其中,所述當前數據幀是當前呈現在所述顯示器上的數據幀。
44.根據權利要求43所述的方法,其中,每個數據幀的外表響應于所述位移而改變,其中,位于所述當前數據幀之下的數據幀呈現相對高的透明度和模糊度,其中,所述當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,位于所述當前數據幀之上的數據幀呈現相對更低的透明度和模糊度以及變得可見。
45.根據權利要求41所述的方法,其中,所述檢測包括檢測所述身體的第二移動,其中,所述第二移動是沿所述軸遠離所述顯示器的移動。
46.根據權利要求45所述的方法,其中,響應所述身體的第二移動,所述導航包括沿所述軸位移所述多個數據幀,其中,所述數據幀所位于的平面中有較少平面變得可見,其中, 看見所述顯示器上呈現的所述第一可見幀從顯示器接近,以及所述第一數據幀的鄰近數據幀變得更少地可見。
47.根據權利要求45所述的方法,其中,響應所述身體的第二移動,所述導航包括沿所述軸從當前數據幀位移所述多個數據幀,其中,所述數據幀向上平移,其中,所述當前數據幀是當前呈現在所述顯示器上的數據幀。
48.根據權利要求47所述的方法,其中,每個數據幀的外表響應于所述位移而改變,其中,位于所述當前數據幀之上的數據幀呈現相對高的透明度和模糊度,其中,所述當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,位于所述當前數據幀之下的數據幀呈現相對更低的透明度和模糊度以及開始變得可見。
49.根據權利要求40所述的方法,其中,所述檢測包括檢測所述身體的第三移動,其中,所述第三移動是在與所述顯示器的觀看表面平行的平面內的移動。
50.根據權利要求49所述的方法,其中,響應所述身體的第三移動,所述導航包括在對應于所述第三移動的方向上位移所述多個數據幀。
51.根據權利要求50所述的方法,其中,看見呈現在所述顯示器上的當前數據幀在所述方向上滑動,以及所述當前數據幀的鄰近數據幀從所述顯示器的與所述方向相反的一側滑入視圖中,其中,所述當前數據幀是當前呈現在所述顯示器上的數據幀。
52.根據權利要求40所述的方法,其中,所述導航包括直接響應所述身體的移動而連續(xù)更新所述多個數據幀的位移。
53.根據權利要求52所述的方法,包括檢測所述身體的第二姿態(tài);響應于檢測到所述第二姿態(tài)而終止推回交互,其中,所述終止包括將所述多個數據幀中的數據幀顯示為與所述顯示器共面。
54.根據權利要求40所述的方法,包括在姿勢期間的身體位移的物理距離與在所述導航期間在所述數據空間中的相繼點間的邏輯距離之間的映射,其中,所述映射控制以下至少之一所述多個數據幀在所述數據空間中的相對位移、和每個離散數據幀的外表。
55.根據權利要求40所述的方法,包括形成包括活動區(qū)和死區(qū)的姿勢交互空間,其中,所述活動區(qū)鄰近所述顯示器,而所述死區(qū)鄰近所述活動區(qū)。
56.根據權利要求55所述的方法,其中,當在所述活動區(qū)中檢測到所述姿勢時,響應所述姿勢而激活響應于所述姿勢信號在數據空間中的導航。
57.根據權利要求55所述的方法,包括呈現在所述顯示器上的反饋指示器。
58.根據權利要求57所述的方法,其中,所述反饋指示器顯示指示所述身體在所述活動區(qū)和所述死區(qū)之一中的反饋。
59.根據權利要求57所述的方法,其中,所述反饋指示器顯示指示所述身體離所述原點的物理偏移的反饋。
60.根據權利要求1所述的方法,其中,所述檢測包括以下至少之一檢測所述身體的位置、檢測所述身體的取向、和檢測所述身體的運動。
61.根據權利要求1所述的方法,包括識別所述姿勢,其中,所述識別包括識別所述身體的部分的姿態(tài)和取向。
62.根據權利要求1所述的方法,其中,所述檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物集合。
63.根據權利要求1所述的方法,其中,所述檢測包括動態(tài)檢測耦合到所述身體的至少一個標簽的位置。
64.根據權利要求63所述的方法,其中,所述檢測包括動態(tài)檢測耦合到所述身體的標簽集的位置。
65.根據權利要求64所述的方法,其中,所述標簽集中的每個標簽包括圖案,其中,所述標簽集中的每個標簽的每個圖案不同于所述多個標簽中的任意剩余標簽的任意圖案。
66.根據權利要求1所述的方法,其中,所述檢測包括動態(tài)檢測和定位所述身體上的標記。
67.根據權利要求66所述的方法,其中,所述檢測包括檢測耦合到所述身體的標記集的位置。
68.根據權利要求66所述的方法,其中,所述標記集形成所述身體上的多個圖案。
69.根據權利要求66所述的方法,其中,所述檢測包括使用耦合到所述附屬物中的每個的標記集來檢測所述身體的多個附屬物的位置。
70.根據權利要求1所述的方法,其中,所述轉換包括將所述姿勢的信息轉換成姿勢符號。
71.根據權利要求70所述的方法,其中,所述姿勢符號表示姿勢詞匯,以及所述姿勢信號包括所述姿勢詞匯的通信。
72.根據權利要求71所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動關聯(lián)的即時姿態(tài)狀態(tài)。
73.根據權利要求71所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動關聯(lián)的取向。
74.根據權利要求71所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動關聯(lián)的取向的組合。
75.根據權利要求71所述的方法,其中,所述姿勢詞匯包括表示所述身體的運動關聯(lián)的狀態(tài)的字符串。
76.根據權利要求75所述的方法,其中,所述運動關聯(lián)是所述身體的至少一個第一附屬物。
77.根據權利要求76所述的方法,包括將所述字符串中的每個位置指定給第二附屬物,所述第二附屬物連接到第一附屬物。
78.根據權利要求1所述的方法,包括將多個字符中的字符指定給第二附屬物的多個位置中的每個。
79.根據權利要求78所述的方法,其中,所述多個位置相對于坐標系原點而建立。
80.根據權利要求79所述的方法,包括使用從由以下組成的組中選擇的位置以及交互地響應所述身體的動作來建立所述坐標系原點空間中的絕對位置和取向、不管所述身體的整體位置和朝向而相對于所述身體的固定位置和取向。
81.根據權利要求78所述的方法,包括將多個字符中的字符指定給第一附屬物的多個取向中的每個。
82.根據權利要求76所述的方法,其中,所述檢測包括檢測所述身體的推測位置何時與虛擬空間相交,其中,所述虛擬空間包括在耦合到所述計算機的顯示裝置上描繪的空間。
83.根據權利要求82所述的方法,包括當所述推測的位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
84.根據權利要求83所述的方法,其中,所述控制包括響應所述虛擬空間中的所推測的位置控制所述虛擬空間中的所述虛擬對象的位置。
85.根據權利要求83所述的方法,其中,所述控制包括響應于所述姿勢來控制所述虛擬空間中的所述虛擬對象的姿勢。
86.根據權利要求1所述的方法,包括對所述檢測和所述控制的定標進行控制以產生虛擬空間與所述物理空間之間的一致性,其中,所述虛擬空間包括顯示器上描繪的空間,其中,所述物理空間包括所述身體所存在于的空間。
87.根據權利要求86所述的方法,包括響應于所述物理空間中的至少一個物理對象的移動來控制所述虛擬空間中的至少一個虛擬對象。
88.根據權利要求1所述的方法,包括利用成像系統(tǒng)對所述身體進行成像。
89.根據權利要求88所述的方法,其中,所述成像包括生成所述身體的波前編碼圖像。
90.根據權利要求89所述的方法,其中,所述姿勢數據包括所述身體的在所述成像系統(tǒng)的景深之內的焦點分辨的數據。
91.根據權利要求90所述的方法,包括通過對所述成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。
92.根據權利要求91所述的方法,其中,所述中間圖像變得模糊。
93.根據權利要求91所述的方法,其中,所述中間圖像對以下方面的至少之一的改變不敏感所述身體,以及所述成像系統(tǒng)中包括散焦像差的多個光學檢測器。
94.根據權利要求90所述的方法,其中,所述姿勢數據包括所述身體的在所述景深之內的焦點分辨的范圍數據。
95.根據權利要求94所述的方法,其中,所述身體的在所述景深之內的焦點分辨的范圍數據是從所述成像系統(tǒng)的輸出導出的。
96.根據權利要求90所述的方法,其中,所述姿勢數據包括所述身體的在所述景深之內的焦點分辨的位置數據。
97.根據權利要求96所述的方法,其中,所述身體的在所述景深之內的焦點分辨的位置數據是從所述成像系統(tǒng)的輸出導出的。
98.根據權利要求88所述的方法,其中,所述成像系統(tǒng)包括多個檢測器。
99.根據權利要求98所述的方法,其中,所述檢測器中的至少兩個是包括波前編碼光學元件的波前編碼攝像機。
100.根據權利要求98所述的方法,其中,所述光學檢測器中的至少兩個是包括增加所述成像的焦點深度的相位掩模的波前編碼攝像機。
101.根據權利要求88所述的方法,包括生成不隨所述身體和所述成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。
102.根據權利要求88所述的方法,包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。
103.一種系統(tǒng),所述系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到所述檢測器的處理器,所述處理器自動從所述姿勢數據中檢測所述姿勢,其中, 所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述處理器僅使用所述姿勢數據來識別所述姿勢,所述處理器將所述姿勢轉換成姿勢信號,所述處理器響應所述姿勢信號在數據空間中導航,其中,所述數據空間是包括表示在所述物理空間中的數據集的數據表示空間。
104.一種用于在數據空間中導航的方法,該方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述檢測包括僅使用所述姿勢數據來識別所述姿勢;將所述姿勢轉換成姿勢信號;響應所述姿勢信號在所述數據空間中導航,其中,所述數據空間是包括表示在所述物理空間中的數據集的數據表示空間;以及在多個共面數據幀中呈現所述數據集以及在顯示器上將每個數據幀顯示為可見幀,其中,所述多個共面數據幀是所述數據空間的多個區(qū)域的圖形描繪。
105.根據權利要求104所述的方法,包括檢測所述身體的第一姿態(tài);響應于檢測到所述第一姿態(tài)而激活推回交互。
106.根據權利要求105所述的方法,包括記錄進入所述第一姿態(tài)的第一位置,其中,所述第一位置是三維空間的手位置;將所述第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與所述原點的相對偏移。
107.根據權利要求106所述的方法,其中,所述檢測包括檢測身體的向前移動,其中, 所述向前移動是沿ζ軸朝向所述顯示器的移動,其中,所述ζ軸被定義為與所述顯示器的觀看表面垂直的軸。
108.根據權利要求107所述的方法,其中,響應所述身體的向前移動,所述導航包括沿所述ζ軸位移所述多個數據幀,其中,所述數據幀所位于的平面中有較多平面變得可見,其中,看見所述顯示器上呈現的第一可見幀從所述顯示器后退,以及所述第一數據幀的鄰近數據幀變得可見。
109.根據權利要求108所述的方法,其中,所述檢測包括檢測所述身體的向后移動,其中,所述向后移動是沿所述ζ軸遠離所述顯示器的移動。
110.根據權利要求109所述的方法,其中,響應所述身體的向后移動,所述導航包括沿所述ζ軸位移所述多個數據幀,其中,所述數據幀所位于的平面中有較少平面變得可見,其中,看見所述顯示器上呈現的所述第一可見幀從顯示器接近,以及所述第一數據幀的鄰近數據幀變得更少地可見。
111.根據權利要求110所述的方法,包括直接響應所述身體沿所述Z軸的移動而連續(xù)更新所述多個數據幀的沿所述ζ軸的位移。
112.根據權利要求111所述的方法,包括檢測所述身體的第二姿態(tài);響應于檢測到所述第二姿態(tài)而終止推回交互,其中,所述終止包括將所述多個數據幀中的數據幀顯示為與所述顯示器共面。
113.根據權利要求106所述的方法,其中,所述檢測包括檢測所述身體的右側向移動, 其中,所述右側向移動是沿χ軸的移動,其中,所述χ軸存在于與所述顯示器的觀看表面平行的平面內。
114.根據權利要求113所述的方法,其中,響應所述身體的右側向移動,所述導航包括沿所述χ軸向右位移所述多個數據幀,其中,看見呈現在所述顯示器上的第一可見幀從所述顯示器向所述顯示器的右側滑動,以及所述第一數據幀的鄰近數據幀從所述顯示器的左側滑入視圖中。
115.根據權利要求114所述的方法,其中,所述檢測包括檢測所述身體的左側向移動, 其中,所述左側向移動是沿所述χ軸的移動。
116.根據權利要求115所述的方法,其中,響應所述身體的左側向移動,所述導航包括沿所述χ軸向左位移所述多個數據幀,其中,看見呈現在所述顯示器上的第一可見幀從所述顯示器向所述顯示器的左側滑動,以及所述第一數據幀的鄰近數據幀從所述顯示器的右側滑入視圖中。
117.根據權利要求116所述的方法,包括直接響應所述身體沿所述χ軸的移動而連續(xù)更新所述多個數據幀的沿所述χ軸的位移。
118.根據權利要求17所述的方法,包括檢測所述身體的第二姿態(tài);響應于檢測到所述第二姿態(tài)而終止推回交互,其中,所述終止包括將所述多個數據幀中的數據幀顯示為與所述顯示器共面。
119.根據權利要求106所述的方法,其中,所述數據空間包括布置在所述平面內的多個虛擬限位裝置。
120.根據權利要求119所述的方法,其中,每個虛擬限位裝置對應于每個數據幀。
121.根據權利要求106所述的方法,包括形成包括活動區(qū)和死區(qū)的姿勢交互空間,其中,所述活動區(qū)鄰近所述顯示器,而所述死區(qū)鄰近所述活動區(qū)。
122.根據權利要求121所述的方法,其中,當在所述活動區(qū)中檢測到所述姿勢時,響應所述姿勢而激活響應于所述姿勢信號在數據空間中的所述導航。
123.根據權利要求121所述的方法,包括呈現在所述顯示器上的反饋指示器。
124.根據權利要求123所述的方法,其中,所述反饋指示器顯示指示所述身體在所述活動區(qū)和所述死區(qū)之一中的反饋。
125.根據權利要求123所述的方法,其中,所述反饋指示器顯示指示所述身體離所述原點的物理偏移的反饋。
126.根據權利要求104所述的方法,包括將所述數據集的參數控制軸與所述物理空間的維對準。
127.根據權利要求1 所述的方法,其中,所述維為深度維。
128.根據權利要求1 所述的方法,其中,所述維為水平維。
129.根據權利要求1 所述的方法,其中,所述維為垂直維。
130.根據權利要求1 所述的方法,其中,所述維為側向維。
131.根據權利要求1 所述的方法,其中,所述導航包括沿所述維的運動以實現沿所述參數控制軸的數據空間平移。
132.根據權利要求1 所述的方法,其中,所述導航包括導航到所述數據空間的量化參散空間。
133.根據權利要求104所述的方法,其中,所述檢測包括檢測所述身體的演進的位置。
134.根據權利要求104所述的方法,其中,所述檢測包括檢測所述身體的演進的取向。
135.根據權利要求104所述的方法,其中,所述檢測包括檢測所述身體的演進的姿態(tài), 其中,所述姿態(tài)是所述身體的部分相對于所述身體的至少一個其它部分的幾何布置。
136.根據權利要求104所述的方法,其中,所述檢測包括檢測所述身體的演進的運動。
137.根據權利要求104所述的方法,其中,所述檢測包括檢測以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
138.根據權利要求104所述的方法,包括將所述姿勢解析成姿勢事件的序列。
139.根據權利要求138所述的方法,包括識別所述姿勢。
140.根據權利要求139所述的方法,其中,所述姿勢的識別包括識別以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
141.根據權利要求139所述的方法,包括生成所述姿勢事件的序列中的姿勢事件的表示。
142.根據權利要求141所述的方法,包括將所述姿勢事件的表示分發(fā)到耦合到所述數據空間的至少一個控制組件。
143.根據權利要求142所述的方法,包括使所述姿勢事件的表示與所述數據空間的圖形描述同步。
144.根據權利要求143所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的圖形描述同步。
145.根據權利要求142所述的方法,包括使所述姿勢事件的表示與所述數據空間的聽覺描述同步。
146.根據權利要求145所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的聽覺描述同步。
147.根據權利要求104所述的方法,其中,所述數據集表示空間信息。
148.根據權利要求147所述的方法,其中,所述數據集表示以下至少之一的空間信息 現象、事件、測量、觀測、和結構。
149.根據權利要求104所述的方法,其中,所述數據集表示非空間信息。
150.根據權利要求104所述的方法,其中,所述姿勢包括線性空間運動。
151.根據權利要求104所述的方法,其中,所述導航包括在所述數據空間中的線性接近。
152.根據權利要求104所述的方法,包括在多個數據幀中呈現數據集,其中,所述數據幀是所述數據空間的多個區(qū)域的圖形描述;在顯示器上將每個數據幀顯示為可見幀。
153.根據權利要求152所述的方法,其中,所述數據幀的大小和縱橫比與所述顯示器的大小和縱橫比相一致。
154.根據權利要求152所述的方法,其中,所述數據幀的中心和法向矢量與所述顯示器的中心和法向矢量相一致。
155.根據權利要求152所述的方法,其中,所述數據幀的位置和取向與所述顯示器的位置和取向相一致。
156.根據權利要求152所述的方法,其中,每個數據幀包括表示所述數據集的元素的圖形數據元素。
157.根據權利要求156所述的方法,其中,所述圖形數據元素為靜態(tài)元素。
158.根據權利要求156所述的方法,其中,所述圖形數據元素為動態(tài)元素。
159.根據權利要求152所述的方法,其中,所述數據幀為二維構造。
160.根據權利要求159所述的方法,其中,所述數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,所述坐標系與描述包括所述身體的本地環(huán)境的坐標系相一致。
161.根據權利要求152所述的方法,其中,在所述數據空間中導航包括在所述多個數據幀中導航。
162.根據權利要求104所述的方法,包括識別所述姿勢,其中,所述識別包括識別所述身體的部分的姿態(tài)和取向。
163.根據權利要求104所述的方法,其中,所述檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物集合。
164.根據權利要求104所述的方法,其中,所述檢測包括動態(tài)檢測至少一個標簽的位置。
165.根據權利要求104所述的方法,其中,所述檢測包括動態(tài)檢測和定位所述身體上的標記。
166.根據權利要求104所述的方法,其中,所述轉換包括將所述姿勢的信息轉換成姿勢符號。
167.根據權利要求166所述的方法,其中,所述姿勢符號表示姿勢詞匯,以及所述姿勢信號包括所述姿勢詞匯的通信。
168.根據權利要求167所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的即時姿態(tài)狀態(tài)。
169.根據權利要求167所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的取向。
170.根據權利要求167所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的取向的組合。
171.根據權利要求167所述的方法,其中,所述姿勢詞匯包括表示所述身體的狀態(tài)的字符串。
172.根據權利要求104所述的方法,其中,所述檢測包括檢測所述身體的推測位置何時與虛擬空間相交,其中,所述虛擬空間包括在所述顯示器上描繪的空間。
173.根據權利要求172所述的方法,包括當所述推測的位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
174.根據權利要求173所述的方法,包括響應所述虛擬空間中的所推測的位置控制所述虛擬空間中的所述虛擬對象的位置。
175.根據權利要求104所述的方法,包括對所述檢測和所述導航的定標進行控制以產生虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括所述顯示器上描繪的空間,其中,所述物理空間包括所述身體所存在于的空間。
176.根據權利要求104所述的方法,包括利用成像系統(tǒng)對所述身體進行成像。
177.根據權利要求176所述的方法,其中,所述成像包括生成所述身體的波前編碼圖像。
178.根據權利要求177所述的方法,其中,所述姿勢數據包括所述身體的在所述成像系統(tǒng)的景深之內的焦點分辨的數據。
179.根據權利要求178所述的方法,包括通過對所述成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。
180.根據權利要求179所述的方法,其中,所述中間圖像變得模糊。
181.根據權利要求179所述的方法,其中,所述中間圖像對以下方面中的至少之一的改變不敏感所述身體,以及所述成像系統(tǒng)中包括散焦像差的多個光學檢測器。
182.根據權利要求178所述的方法,其中,所述姿勢數據包括所述身體的在所述景深之內的焦點分辨的范圍數據。
183.根據權利要求182所述的方法,其中,所述身體的在所述景深之內的焦點分辨的范圍數據是從所述成像系統(tǒng)的輸出導出的。
184.根據權利要求178所述的方法,其中,所述姿勢數據包括所述身體的在所述景深之內的焦點分辨的位置數據。
185.根據權利要求184所述的方法,其中,所述身體的在所述景深之內的焦點分辨的位置數據是從所述成像系統(tǒng)的輸出導出的。
186.根據權利要求176所述的方法,其中,所述成像系統(tǒng)包括多個檢測器。
187.根據權利要求186所述的方法,其中,所述檢測器中的至少兩個是包括波前編碼光學元件的波前編碼攝像機。
188.根據權利要求186所述的方法,其中,所述光學檢測器中的至少兩個是包括增加所述成像的焦點深度的相位掩模的波前編碼攝像機。
189.根據權利要求176所述的方法,包括生成不隨所述身體和所述成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。
190.根據權利要求176所述的方法,包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。
191.一種系統(tǒng),所述系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到所述檢測器的處理器,所述處理器自動從所述姿勢數據中檢測所述姿勢,其中, 所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述處理器僅使用所述姿勢數據來識別所述姿勢,所述處理器將所述姿勢轉換成姿勢信號,所述處理器響應所述姿勢信號在所述數據空間中導航,其中,所述數據空間是包括表示在所述物理空間中的數據集的數據表示空間,所述處理器在多個共面數據幀中呈現所述數據集以及在所述顯示器上將每個數據幀顯示為可見幀,其中,所述多個共面數據幀是所述數據空間的多個區(qū)域的圖形描繪。
192.一種用于在數據空間中導航的方法,所述方法包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢,其中,所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述檢測包括僅使用所述姿勢數據來識別所述姿勢;將所述姿勢轉換成姿勢信號;響應所述姿勢信號在所述數據空間中導航,其中,所述數據空間是包括表示在所述物理空間中的數據集的數據表示空間;以及在多個共面數據幀中呈現所述數據集以及在所述顯示器上將每個數據幀顯示為可見幀,其中,所述多個共面數據幀是所述數據空間的多個區(qū)域的圖形描繪;其中,所述多個數據幀包括布置在所述數據空間的多個平面內的離散數據幀的堆棧,其中,每個數據幀位于所述多個平面中的分立平面內。
193.根據權利要求192所述的方法,包括檢測所述身體的第一姿態(tài);響應于檢測到所述第一姿態(tài)而激活推回交互。
194.根據權利要求193所述的方法,包括記錄進入所述第一姿態(tài)的第一位置,其中,所述第一位置是三維空間的手位置;將所述第一位置設置為原點,其中,將隨后的檢測到的身體位置報告為與所述原點的相對偏移。
195.根據權利要求194所述的方法,其中,所述檢測包括檢測所述身體的向上移動,其中,所述向上移動是沿y軸從顯示器向外的移動,其中,所述y軸被定義為與所述顯示器的觀看表面垂直的軸。
196.根據權利要求195所述的方法,其中,響應所述身體的向上移動,所述導航包括沿所述y軸從當前數據幀位移多個數據幀,其中,所述堆棧的所述離散數據幀向上平移,其中,所述當前數據幀是當前呈現在所述顯示器上的離散數據幀。
197.根據權利要求196所述的方法,其中,每個離散數據幀的外表響應于所述位移而改變,其中,所述堆棧中位于所述當前數據幀之上的離散數據幀呈現相對高的透明度和模糊度,其中,所述當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,所述堆棧中位于所述當前數據幀之下的離散數據幀呈現相對更低的透明度和模糊度以及開始變得可見。
198.根據權利要求197所述的方法,包括在姿勢期間的身體位移的物理距離與所述堆棧的相繼離散數據幀之間的邏輯距離之間的映射,其中,所述映射控制所述多個數據幀沿所述y軸的位移和每個離散數據幀的外表。
199.根據權利要求198所述的方法,其中,所述檢測包括檢測所述身體的向下移動,其中,所述向下移動是沿所述y軸朝向所述顯示器的移動。
200.根據權利要求199所述的方法,其中,響應所述身體的向下移動,所述導航包括沿所述y軸從所述當前數據幀位移多個數據幀,其中,所述堆棧的離散數據幀向下平移。
201.根據權利要求200所述的方法,其中,每個離散數據幀的外表響應于所述位移而改變,其中,所述堆棧中位于所述當前數據幀之下的離散數據幀呈現相對高的透明度和模糊度,其中,所述當前數據幀從可見開始過渡以及開始呈現透明度和模糊度,其中,所述堆棧中位于所述當前數據幀之上的離散數據幀呈現相對更低的透明度和模糊度以及變得可見。
202.根據權利要求201所述的方法,包括在姿勢期間的身體位移的物理距離與所述堆棧的相繼離散數據幀之間的邏輯距離之間的映射,其中,所述映射控制所述多個數據幀沿所述y軸的位移和每個離散數據幀的外表。
203.根據權利要求202所述的方法,包括直接響應所述身體沿所述y軸的移動而連續(xù)更新所述多個數據幀的沿所述y軸的位移。
204.根據權利要求203所述的方法,包括檢測所述身體的第二姿態(tài);響應于檢測到所述第二姿態(tài)而終止推回交互,其中,所述終止包括將所述多個數據幀中的數據幀顯示為與所述顯示器共面。
205.根據權利要求192所述的方法,其中,所述數據空間包括多個虛擬限位裝置。
206.根據權利要求205所述的方法,其中,每個虛擬限位裝置對應于所述多個平面中的每個平面。
207.根據權利要求192所述的方法,包括形成包括第一活動區(qū)、第二活動區(qū)和死區(qū)的姿勢交互空間,其中,所述第一活動區(qū)鄰近所述顯示器,所述死區(qū)鄰近所述第一活動區(qū),以及所述第二活動區(qū)鄰近所述死區(qū)。
208.根據權利要求207所述的方法,其中,當在所述第一活動區(qū)和所述第二活動區(qū)之一中檢測到所述姿勢時,響應所述姿勢而激活所述響應于所述姿勢信號在數據空間中的導航。
209.根據權利要求207所述的方法,包括呈現在所述顯示器上的反饋指示器。
210.根據權利要求209所述的方法,其中,所述反饋指示器顯示指示所述身體在所述第一活動區(qū)、所述第二活動區(qū)和所述死區(qū)之一中的反饋。
211.根據權利要求209所述的方法,其中,所述反饋指示器顯示指示所述身體離所述原點的物理偏移的反饋。
212.根據權利要求192所述的方法,包括將所述數據集的參數控制軸與所述物理空間的維對準。
213.根據權利要求212所述的方法,其中,所述維為深度維。
214.根據權利要求212所述的方法,其中,所述維為水平維。
215.根據權利要求212所述的方法,其中,所述維為垂直維。
216.根據權利要求212所述的方法,其中,所述維為側向維。
217.根據權利要求212所述的方法,其中,所述導航包括沿所述維的運動以實現沿所述參數控制軸的數據空間平移。
218.根據權利要求212所述的方法,其中,所述導航包括導航到所述數據空間的量化參數空間。
219.根據權利要求192所述的方法,其中,所述檢測包括檢測所述身體的演進的位置。
220.根據權利要求192所述的方法,其中,所述檢測包括檢測所述身體的演進的取向。
221.根據權利要求192所述的方法,其中,所述檢測包括檢測所述身體的演進的姿態(tài), 其中,所述姿態(tài)是所述身體的部分相對于所述身體的至少一個其它部分的幾何布置。
222.根據權利要求192所述的方法,其中,所述檢測包括檢測所述身體的演進的運動。
223.根據權利要求192所述的方法,其中,所述檢測包括檢測以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
224.根據權利要求192所述的方法,包括將所述姿勢解析成姿勢事件的序列。
225.根據權利要求2M所述的方法,包括識別所述姿勢。
226.根據權利要求225所述的方法,其中,所述姿勢的識別包括識別以下至少之一所述身體的演進的位置、所述身體的取向、所述身體的姿態(tài)、和所述身體的運動。
227.根據權利要求225所述的方法,包括生成所述姿勢事件的序列中的姿勢事件的表示。
228.根據權利要求227所述的方法,包括將所述姿勢事件的表示分發(fā)到耦合到所述數據空間的至少一個控制組件。
229.根據權利要求2 所述的方法,包括使所述姿勢事件的表示與所述數據空間的圖形描述同步。
230.根據權利要求2 所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的圖形描述同步。
231.根據權利要求2 所述的方法,包括使所述姿勢事件的表示與所述數據空間的聽覺描述同步。
232.根據權利要求231所述的方法,包括使所述姿勢事件的表示與在所述數據空間中的導航的聽覺描述同步。
233.根據權利要求192所述的方法,其中,所述數據集表示空間信息。
234.根據權利要求233所述的方法,其中,所述數據集表示以下至少之一的空間信息 現象、事件、測量、觀測、和結構。
235.根據權利要求192所述的方法,其中,所述數據集表示非空間信息。
236.根據權利要求192所述的方法,其中,所述姿勢包括線性空間運動。
237.根據權利要求192所述的方法,其中,所述導航包括在所述數據空間中的線性接近。
238.根據權利要求192所述的方法,包括在多個數據幀中呈現數據集,其中,所述數據幀是所述數據空間的多個區(qū)域的圖形描述;在顯示器上將每個數據幀顯示為可見幀。
239.根據權利要求238所述的方法,其中,所述數據幀的大小和縱橫比與所述顯示器的大小和縱橫比相一致。
240.根據權利要求238所述的方法,其中,所述數據幀的中心和法向矢量與所述顯示器的中心和法向矢量相一致。
241.根據權利要求238所述的方法,其中,所述數據幀的位置和取向與所述顯示器的位置和取向相一致。
242.根據權利要求238所述的方法,其中,每個數據幀包括表示所述數據集的元素的圖形數據元素。
243.根據權利要求242所述的方法,其中,所述圖形數據元素為靜態(tài)元素。
244.根據權利要求242所述的方法,其中,所述圖形數據元素為動態(tài)元素。
245.根據權利要求238所述的方法,其中,所述數據幀為二維構造。
246.根據權利要求245所述的方法,其中,所述數據幀駐留在具有坐標系的三維圖形呈現環(huán)境中,其中,所述坐標系與描述包括所述身體的本地環(huán)境的坐標系相一致。
247.根據權利要求238所述的方法,其中,所述在數據空間中導航包括在所述多個數據幀中導航。
248.根據權利要求192所述的方法,包括識別所述姿勢,其中,所述識別包括識別所述身體的部分的姿態(tài)和取向。
249.根據權利要求192所述的方法,其中,所述檢測包括檢測以下至少之一第一身體附屬物集合、和第二身體附屬物集合。
250.根據權利要求192所述的方法,其中,所述檢測包括動態(tài)檢測至少一個標簽的位置。
251.根據權利要求192所述的方法,其中,所述檢測包括動態(tài)檢測和定位所述身體上的標記。
252.根據權利要求192所述的方法,其中,所述轉換包括將所述姿勢的信息轉換成姿勢符號。
253.根據權利要求252所述的方法,其中,所述姿勢符號表示姿勢詞匯,以及所述姿勢信號包括所述姿勢詞匯的通信。
254.根據權利要求253所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的即時姿態(tài)狀態(tài)。
255.根據權利要求253所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的取向。
256.根據權利要求253所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的取向的組合。
257.根據權利要求253所述的方法,其中,所述姿勢詞匯包括表示所述身體的狀態(tài)的字符串。
258.根據權利要求192所述的方法,其中,所述檢測包括檢測所述身體的推測位置何時與虛擬空間相交,其中,所述虛擬空間包括在所述顯示器上描繪的空間。
259.根據權利要求258所述的方法,包括當所述推測的位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
260.根據權利要求259所述的方法,其中,所述控制包括響應所述虛擬空間中的所推測的位置控制所述虛擬空間中的所述虛擬對象的位置。
261.根據權利要求192所述的方法,包括對所述檢測和所述導航的定標進行控制以產生虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括所述顯示器上描繪的空間, 其中,所述物理空間包括所述身體所存在于的空間。
262.根據權利要求192所述的方法,包括利用成像系統(tǒng)對所述身體進行成像。
263.根據權利要求262所述的方法,其中,所述成像包括生成所述身體的波前編碼圖像。
264.根據權利要求263所述的方法,其中,所述姿勢數據包括所述身體的在所述成像系統(tǒng)的景深之內的焦點分辨的數據。
265.根據權利要求264所述的方法,包括通過對所述成像系統(tǒng)采集的圖像進行編碼來生成中間圖像。
266.根據權利要求265所述的方法,其中,所述中間圖像變得模糊。
267.根據權利要求265所述的方法,其中,所述中間圖像對以下方面中的至少之一的改變不敏感所述身體,以及所述成像系統(tǒng)中包括散焦像差的多個光學檢測器。
268.根據權利要求264所述的方法,其中,所述姿勢數據包括所述身體的在景深之內的焦點分辨的范圍數據。
269.根據權利要求268所述的方法,其中,所述身體的在所述景深之內的焦點分辨的范圍數據是從所述成像系統(tǒng)的輸出導出的。
270.根據權利要求264所述的方法,其中,所述姿勢數據包括所述身體的在所述景深之內的焦點分辨的位置數據。
271.根據權利要求270所述的方法,其中,所述身體的在所述景深之內的焦點分辨的位置數據是從所述成像系統(tǒng)的輸出導出的。
272.根據權利要求262所述的方法,其中,所述成像系統(tǒng)包括多個檢測器。
273.根據權利要求272所述的方法,其中,所述檢測器中的至少兩個是包括波前編碼光學元件的波前編碼攝像機。
274.根據權利要求272所述的方法,其中,所述光學檢測器中的至少兩個是包括增加所述成像的焦點深度的相位掩模的波前編碼攝像機。
275.根據權利要求262所述的方法,包括生成不隨所述身體和所述成像系統(tǒng)之間的距離而變化的調制傳遞函數和點擴散函數。
276.根據權利要求262所述的方法,包括生成相對于散焦而無變化的調制傳遞函數和點擴散函數。
277.—種系統(tǒng),所述系統(tǒng)包括檢測器,用于接收表示身體做出的姿勢的姿勢數據;以及耦合到所述檢測器的處理器,所述處理器自動從所述姿勢數據中檢測所述姿勢,其中, 所述姿勢數據是所述身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據,所述處理器僅使用所述姿勢數據來識別所述姿勢,所述處理器將所述姿勢轉換成姿勢信號,所述處理器響應所述姿勢信號在所述數據空間中導航,其中,所述數據空間是包括表示在所述物理空間中的數據集的數據表示空間,所述處理器在多個共面數據幀中呈現所述數據集以及在所述顯示器上將每個數據幀顯示為可見幀,其中,所述多個共面數據幀是所述數據空間的多個區(qū)域的圖形描繪;其中,所述多個數據幀包括布置在所述數據空間的多個平面內的離散數據幀的堆棧,其中,每個數據幀位于所述多個平面中的分立平面內。
全文摘要
公開了用于在數據空間中導航的系統(tǒng)和方法。該導航包括從經由檢測器接收到的姿勢數據中檢測身體的姿勢。姿勢數據是身體在時間和物理空間中的點處的即時狀態(tài)的絕對三維空間位置數據。檢測包括使用姿勢數據來識別姿勢。該導航包括將姿勢轉換成姿勢信號,以及響應于姿勢信號在數據空間中導航。數據空間是包括表示在物理空間中的數據集的數據表示空間。
文檔編號G06F17/00GK102177513SQ200980140293
公開日2011年9月7日 申請日期2009年9月3日 優(yōu)先權日2008年9月3日
發(fā)明者克溫德拉·H·克拉默, 約翰·S·昂德科夫勒 申請人:奧布隆工業(yè)有限公司