用于初始化基于視覺的手跟蹤器的快速指尖檢測的制作方法
【專利摘要】描述了用于實時地初始化基于視覺的手跟蹤系統(tǒng)的系統(tǒng)和方法。所述用于初始化基于視覺的手跟蹤系統(tǒng)的系統(tǒng)和方法對身體成像并且接收作為在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據的姿勢數據,并且進行以下中的至少一個:使用身體的附肢確定身體的取向;以及使用取向和姿勢數據中的至少一個來跟蹤身體。
【專利說明】用于初始化基于視覺的手跟蹤器的快速指尖檢測
[0001]相關申請
[0002]本申請要求2011年3月25日提交的美國專利申請?zhí)?1/467,738的優(yōu)先權。
[0003]本申請是美國專利申請?zhí)?2/572,689、12/572,698、12/109,263、12/417,252、12/487,623、12/553,845、12/557,464、12/579,340、12/579,372、12/773,605 和12/789,129的延續(xù)部分申請。
【技術領域】
[0004]描述了涉及控制系統(tǒng)和裝置、更具體而言用于檢測和初始化基于視覺的跟蹤系統(tǒng)的實施方式。
【背景技術】
[0005]跟蹤算法通常依靠關于目標在先前幀中的位置的信息。所有目標跟蹤算法的一個關鍵方面是目標獲取和跟蹤初始化的問題。初始化是同時確定新的目標存在并且估計其位置以及任何其它相關形狀和外觀特征的過程。因此,在跟蹤系統(tǒng)中,需要連續(xù)的手檢測和跟蹤初始化以支持多個目標以及從錯誤恢復。
[0006]通過引用的合并
[0007]在本說明書中提到的每個專利、申請和/或公布通過引用以其全部內容相同程度地合并到本文中,如同每個單獨的專利、專利申請和/或公布具體地單獨地被指出通過引
用被合并一樣。
【專利附圖】
【附圖說明】
[0008]圖1是根據實施方式的姿勢控制系統(tǒng)的框圖。
[0009]圖1A是根據實施方式的、姿勢控制系統(tǒng)中的指尖檢測和手跟蹤160的框圖。
[0010]圖1B是根據實施方式的指尖檢測和手跟蹤160的流程圖。
[0011]圖2是根據實施方式的標記標簽的圖。
[0012]圖3是根據實施方式的姿勢詞匯中的姿態(tài)的圖。
[0013]圖4是根據實施方式的姿勢詞匯中的取向的圖。
[0014]圖5是根據實施方式的姿勢詞匯中的雙手組合的圖。
[0015]圖6是根據實施方式的姿勢詞匯中的取向混合的圖。
[0016]圖7是根據實施方式的系統(tǒng)操作的流程圖。
[0017]圖8/1和圖8/2示出了根據實施方式的示例命令。
[0018]圖9是根據實施方式的包括使用色拉(slaw)、蛋白質和池(pool)的數據表示的處理環(huán)境的框圖。
[0019]圖10是根據實施方式的蛋白質的框圖。
[0020]圖11是根據實施方式的描述的框圖。
[0021]圖12是根據實施方式的攝取的框圖。[0022]圖13是根據實施方式的色拉的框圖。
[0023]圖14A是根據實施方式的池中的蛋白質的框圖。
[0024]圖14B1和圖14B2示出了根據實施方式的色拉頭格式。
[0025]圖14C是根據實施方式的使用蛋白質的流程圖。
[0026]圖14D是根據實施方式的構造或生成蛋白質的流程圖。
[0027]圖15是根據實施方式的包括使用色拉、蛋白質和池的數據交換的處理環(huán)境的框圖。
[0028]圖16是根據實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置以及在多個裝置中的一個或更多個裝置上運行的大量程序,其中,等離子體構造(即,池、蛋白質和色拉)用于允許大量運行的程序共享并且集體地響應于裝置而生成的事件。
[0029]圖17是根據替選實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置以及在多個裝置中的一個或更多個裝置上運行的大量程序,其中,等離子體構造(即,池、蛋白質和色拉)用于允許大量運行的程序共享并且集體地響應于裝置而生成的事件。
[0030]圖18是根據另一替選實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個輸入裝置,該多個輸入裝置耦接在運行于多個裝置中的一個或更多個裝置上的大量程序之間,其中,等離子體構造(即,池、蛋白質和色拉)用于允許大量運行的程序共享并且集體地響應于裝置而生成的事件。
[0031]圖19是根據又另一替選實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦接在運行于多個裝置中的一個或更多個裝置上的大量程序之間,其中,等離子體構造(即,池、蛋白質和色拉)用于允許大量運行的程序共享并且集體地響應于裝置而生成的事件。
[0032]圖20是根據再又一替選實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦接在運行于多個裝置中的一個或更多個裝置上的大量程序之間,其中,等離子體構造(即,池、蛋白質和色拉)用于允許對運行的程序進行狀態(tài)檢測、可視化和調試。
[0033]圖21是根據額外的替選實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,多個裝置耦接在運行于多個裝置中的一個或更多個裝置上的大量程序之間,其中,等離子體構造(即,池、蛋白質和色拉)用于允許影響和控制在該處理池中產生和放置的狀態(tài)信息的特征。
【具體實施方式】
[0034]本文中所描述的實施方式包括用于實時初始化基于視覺的手跟蹤系統(tǒng)的系統(tǒng)和方法。本文中所描述的系統(tǒng)和方法將快速指尖檢測與健壯的局部手跟蹤組合,但并不這樣被限制。然而,當單獨使用時,任一部件對于可靠的基于姿勢的接口來說不是完全足夠的,該組合形成對于廣泛的挑戰(zhàn)性感知場景來說健壯的互補對。如下面更詳細地描述的,在空間操作環(huán)境(SOE)的背景中,提供了系統(tǒng)和方法的實施方式。例如,圖1是根據實施方式的空間操作環(huán)境(SOE)的框圖??商孢x地,包括姿勢控制系統(tǒng)或基于姿勢的控制系統(tǒng)的SOE可以被稱為空間用戶接口(Sn)或空間接口(SI)。
[0035]姿勢控制系統(tǒng)使用所捕捉的姿勢數據來檢測、標識、跟蹤和/或定位一個或更多個用戶的手的位置。實施方式的姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。姿勢數據包括但不限于像素、體素、像素數據、體素數據、靜態(tài)圖像數據、相機數據、視頻圖像數據、視頻數據、傳感器數據、深度數據、空間數據或沿著由深度數據暗示的表面的體積的數據中的一個或更多個。例如,如在本文中具體的實施方式中所描述的手跟蹤包括在視頻流的連續(xù)幀中檢測和定位一個或更多個用戶的手的位置的過程。在空間操作環(huán)境或其它姿勢接口的背景中,這樣的跟蹤用于確定用戶何時試圖與系統(tǒng)通信,提供用于檢測和識別臨時擴展的姿勢所需要的基本信息,以及允許交互如指示、拖放、選擇或其他直接操作的實時控制和反饋,這里列舉一些示例。
[0036]跟蹤算法通常依賴關于先前幀中的目標的位置的信息。該信息,經常與形狀和外觀特征耦接,可以有助于在新的幀中界定和指導目標的搜索。整體計算負擔中的所得到的減少允許實時處理速率,然而,時空背景有助于將真實的位置與錯誤的但視覺上相似的其它位置區(qū)別開。
[0037]所有目標跟蹤算法的一個重要方面是目標獲取和跟蹤初始化的問題。初始化是同時確定存在一個新的目標并且估計其位置連同任何其它相關的形狀和外觀特征的過程。在健壯的系統(tǒng)中,跟蹤初始化是正在進行的過程,因為無論新的目標何時出現(xiàn),必須檢測到它們。在姿勢接口的情況下,當手進入相機的視野或當手在由場景中的一些其它對象的臨時遮蔽之后變得可見時,初始化過程肩負著找到每個先前未觀察到的手的任務。另外,由于多于一個用戶出現(xiàn)或由于單個用戶在協(xié)同交互中使用兩個手,多個手可以存在于場景中。最終,由于挑戰(zhàn)性的感知輸入,可以產生假的檢測,這可以導致與真實的手位置分離的錯誤的跟蹤。在所有這些情況下,需要連續(xù)的手檢測和跟蹤初始化以支持多個目標以及從錯誤恢復。
[0038]用于跟蹤初始化的指尖檢測
[0039]圖1A是根據實施方式的、姿勢控制系統(tǒng)中的指尖檢測和手跟蹤160的框圖。圖1B是根據一種實施方式的指尖檢測和手跟蹤160的流程圖。參照圖1A,指尖檢測和手跟蹤160與一種實施方式的空間操作環(huán)境(SOE)集成,以及使用相機104的輸出(例如,圖1的104A至104D)生成到一種實施方式的應用和用戶接口處理器107(例如,圖1的預處理器105、姿勢翻譯器/輸出106和計算機處理器107中的一個或更多個)的輸入。應用和用戶接口處理器107生成命令以控制一個或更多個屏幕上光標,并且向例如顯示器103提供輸出。在本文中更詳細地描述SOE。
[0040]在手跟蹤的背景中,指尖可以提供可靠的指標,該指標在可見視場內是相對不同的。即使僅粗糙的前景/背景分隔也是可以的,擴展的指尖也可以顯示為具有圓頭的相對直的前景像素組。本文中所描述的指尖檢測和手跟蹤實施方式的一個部件為用于指尖檢測160的高效搜索和分類算法的應用。
[0041]指尖檢測算法160學習如何快速區(qū)分包含指尖的像素區(qū)域與不包含指尖的像素區(qū)域。一種實施方式的指尖檢測算法160實現(xiàn)高精確度而不管指尖取向,以及如果需要,可以被專門化以僅檢測特定范圍的取向內的指尖。關于較大范圍的典型的工作站和桌面場景,指尖大小和視距很大程度上不變。
[0042]實施方式的指尖檢測系統(tǒng)160采取條件分類器的級聯(lián)的形式。該級聯(lián)模型已經成功地用于其它計算機版本問題如臉和行人檢測。該級聯(lián)模型使用一系列過濾器并且又將測試像素區(qū)域呈現(xiàn)給每個過濾器。在每一級處,過濾器或者拒絕該區(qū)域或者將該區(qū)域傳遞至下一等級。如果級聯(lián)中的最后一個過濾器接受該區(qū)域,那么完全模型將該區(qū)域分類為積極出現(xiàn)。如果任一級拒絕該區(qū)域,那么返回消極分類。以這種方式,由于很多像素區(qū)域會由前幾個級中的一個級拒絕,這表示這些區(qū)域不再由其它級處理,該級聯(lián)可以非??焖俚夭僮?。
[0043]對于指尖檢測的問題,提取自定義特征,并且級聯(lián)模型被訓練使得該級聯(lián)模型被具體地調諧成以二進制(前景和/或背景)圖像找到指尖。一種實施方式特定地對該級聯(lián)的不同等級進行排序,以幫助將執(zhí)行時間最小化,因為該模型在每個視頻幀的預處理步驟中偶遇大量的像素區(qū)域。通過平衡計算特定特征的計算負擔與該特征正確地標識和拒絕寬范圍的像素區(qū)域的能力來確定該排序。在該級聯(lián)的開始處使用可以快速被計算以及仍然標識很多消極示例的級。
[0044]由一種實施方式的指尖檢測算法160所使用的特征采用兩種形式一盒子和環(huán),但實施方式并不這樣被限制。每個盒子由查詢區(qū)域內的左上和右下坐標規(guī)定并且由盒子內的大量的前景像素來表征。類似地,環(huán)為盒子內的(未被填充的)矩形??梢酝ㄟ^總計區(qū)域表格很快速地計算盒子特征,該總計區(qū)域表格是給出給定像素左上的所有像素的和的預先計算的映射。然后,可以通過如下將來自映射的四個實體組合來以恒定時間計算任意的盒子內的總和,
[0045]sum(x, y- > a, b) = sum (a, b)-sum(x_l,b) -sum (a, y_l)+sum(x_l,y-1)
[0046]其中(x,y)為盒子的左上角以及(a,b)為盒子的右下角。由于一種實施方式使用O值表示背景像素以及使用I值表示前景,盒子內的總和正好是該區(qū)域內的前景像素的數目。
[0047]如本文中所描述的,盒子特征的使用提供計算益處,同時提供快速拒絕具有太少前景像素的大區(qū)域。例如,在低分辨率圖像中,一種實施方式可以在具有15X15尺寸的像素區(qū)域中搜索指尖。然而,如果模型學習到指尖通常具有至少10個前景像素,那么該模型可以在不解析每個15X15平方構成成分的情況下拒絕較大的區(qū)域。這直接遵循如下事實:如果大區(qū)域具有少于N個前景像素,那么沒有子區(qū)域能夠具有多于N個像素。
[0048]從而,根據一種實施方式的指尖的搜索以自頂向下遞歸的方式進行。開始于全圖像的解析,將每個區(qū)域與指尖所需要的最小和相比較。如果失敗,那么不測試子區(qū)域。否則,搜索通過將該區(qū)域劃分成象限繼續(xù),直到象限匹配基本尺寸(在示例中15X15)。在這一點處,其余的級聯(lián)模型用于對該區(qū)域分類。
[0049]一種實施方式的級聯(lián)模型使用自適應提高(Adaboost)算法以學習級聯(lián)中的每個級處的分類器,但并不這樣被限制。由Adaboost組合的弱的學習者為“雙樹樁”,這類似于標準的決策樹樁但可以具有一個或兩個閾值,從而分別將特征空間劃分成兩個或三個區(qū)域。Adaboost使用該弱的學習者以評估描述查詢像素的每個特征的效用。
[0050]一種實施方式的特征為該區(qū)域內的很多不同尺寸的盒子和環(huán)。例如,在尺寸15X15的區(qū)域中,存在25,425個內部盒子以及近似這么多環(huán)。Adaboost增加地選擇幫助區(qū)分指尖與無指尖區(qū)域的特征,以及自動地形成所得到的決策樹樁的加權組合,以形成內聚分類器。盡管如果期望不同的成本或性能權衡,任何分類器可以被替代,提高的雙決策樹樁的選擇產生快速精確的分類器。
[0051]實施方式考慮圖像預處理以及初始化和跟蹤繼續(xù)的互補性質。然而,可以直接根據單個視頻幀直接檢測指尖,這樣的方法通常非常脆弱,因為它們依賴于在現(xiàn)實環(huán)境中經常不能實現(xiàn)的假設。實施方式的系統(tǒng)采用不同的方法,以便實現(xiàn)較高級別的健壯性。每個視頻幀104被轉換成二進制圖像,二進制圖像具有標記前景像素的目標,S卩,對應于手指、手和臂的這些像素具有值I而所有其它的像素被標記為O。通常,當背景模型被估計時,該處理被稱為“背景減法”,并且當背景估計僅為前面的幀時,該處理被稱為“時間差分”。然后,通過查找背景模型中的當前幀與相應像素之間的大的差異檢測前景像素。
[0052]盡管歷史悠久地研究背景減法方法,但沒有產生同時精確、健壯、實時且自適應環(huán)境變化的算法。當前景對象靜止時,由于非前景對象的運動、照明變化、陰影、傳感器噪聲和擴展周期,出現(xiàn)困難。因此,一種實施方式的系統(tǒng)起作用,使得精確的前景/背景分隔不是必須的??商孢x地,通過配對指尖檢測和幀間手跟蹤的互補長處來實現(xiàn)健壯性。
[0053]當目標易于從單幀中檢測到時或當基本的運動是可預測的時,跟蹤算法有效。由于人類的手是快速、靈巧的、視覺上均勻的、自封閉的目標,甚至在較短的時間段,其外觀可以生動地變化。在姿態(tài)接口的背景中,動態(tài)的反復無常的手運動是常見的,這使得基于運動的預測困難。在當手不遵循平滑的軌道時的這些時間期間,跟蹤是很魯棒的。這些相同的運動可以使得背景減法變復雜,然而,產生不好的指尖檢測結果。相反的場景也同樣適用。快速不規(guī)則的運動使得跟蹤更加困難,但這樣的運動通常產生清楚的前景映射以及從而精確的指尖檢測。本文中實施方式的核心的見識在于手跟蹤和指尖檢測在某些場景期間僅是單獨地可靠的,但這些場景是互補的。因此,手跟蹤和指尖檢測在一種實施方式中被配對,以利用它們的長處同時掩飾任何個別的弱點。
[0054]在本文中描述將指尖檢測和手跟蹤集成的實施方式。參照圖1B,一種實施方式的指尖檢測算法161運行為在跟蹤算法170更新其估計之前每個視頻幀104的預處理步驟。被分類為指尖的每個像素區(qū)域提供相應的手的證據。另外,系統(tǒng)通過解析沿著指尖區(qū)域的外部邊界的前景像素來估計暗示的手的取向165。該關鍵的觀察在于手指本身將擴展超越指尖區(qū)域,因此,可以通過搜索具有最高濃度的前景像素的邊界的子部來估計手指取向。手檢測166假定手位于與指尖相反的手指的取向中。然后,手檢測166可以將其搜索集中在由指尖和該取向預測的區(qū)域中。
[0055]具有檢測到的指尖的每個像素區(qū)域對應于潛在的手。類似地,手存在先前幀中為后續(xù)幀中的該相同的手提供證據。跟蹤模塊使用兩個信息來源來檢測新的幀中的手。
[0056]可以產生幾個場景。當跟蹤系統(tǒng)已經鎖定到移動的手上而背景估計仍足夠精確以支持指尖檢測時,被稱為具有現(xiàn)有手跟蹤的指尖的第一場景出現(xiàn)。兩個信息來源互相支持,導致跟蹤模塊分配額外的來源以搜索手存在的預測區(qū)域。
[0057]被稱為不具有手跟蹤的指尖的第二場景暗示跟蹤初始化。關于手位置的唯一信息來源來自指尖以及相應的手指取向的估計。手跟蹤模塊將在預定區(qū)域中進行搜索并且如果沒有找到足夠的證據可以確定不存在手。所需要的證據依賴于成像傳感器和在考慮中的視覺特征。例如,跟蹤器可以在使用主動照明的系統(tǒng)中查找皮膚色調、支持手形狀的有取向的邊緣像素或具有合適的亮度的像素。跟蹤模塊拒絕由指尖檢測器提供的候選的能力是對于來自不完美的指尖分類器的錯誤檢測(例如,由于類似手指對象如鋼筆或鉛筆或來自噪聲或前景/背景分隔中的其它不一致性)的重要防守。
[0058]第三場景被稱為不具有指尖的手跟蹤。在該場景下,當手保持靜止或相對慢地運動時,這樣的跟蹤繼續(xù)是常見的情況。在該場景下,背景估計會變得被污染,在前景映射中導致若干錯誤否定,這阻礙指尖檢測。無論如何,跟蹤模炔基于現(xiàn)有跟蹤生成手預測,然后可以估計更新的手姿態(tài)和外觀參數。
[0059] 當與廣泛的跟蹤算法配對時,指尖檢測可以用于手獲取或檢測以及跟蹤恢復。例如,實施方式已經使用基于退火粒子過濾器和使用基于粒子群優(yōu)化的過濾器被測試。類似地,由跟蹤算法用于評估特定的手估計(包括位置、取向和其它形狀或外觀特征)的具體視覺特征獨立于一種實施方式的初始化方法。常見的線索包括顏色模型、特征點的星座、邊緣模板和輪廓。本文中對關于使用粒子群優(yōu)化(PSO)用于局部跟蹤和使用基于樣條的輪廓作為手模型的特定情況的詳細描述進行描述。
[0060]參照圖1B,當使用PSO用于局部跟蹤和使用基于樣條的輪廓作為手模型時,通過創(chuàng)建與每個期望的姿態(tài)中的手的粗糙的二維(2D)形狀匹配的輪廓來構造一組手模型167。例如,可以期望跟蹤其中小指、無名指和中間卷曲而食指和拇指伸直的指示手的側視圖。輪廓本身可以由二次b樣條表示。通過計算輸入視頻幀(1)104的慢適應(slowly-adapting)運行平均來維持背景模型(BG) 162。通過用輸入幀與背景模型之間的大的差異(即,F(xiàn)G=| 1-BG|>閾值)標記每個像素來計算前景圖像(FG) 163。
[0061]通過使用上面所描述的級聯(lián)模型分析前景圖像163來檢測指尖161。對于每個被檢測到的指尖,位置和估計取向被存儲在手預測列表中。
[0062]通過例如運行Canny邊緣檢測器為輸入幀104計算邊緣圖像(E)164。Canny邊緣檢測器為使用多級算法檢測圖像中的寬范圍的邊緣的邊緣檢測算子。通過計算由局部偏導數(即,31"(^311((17/(^0,其中(dx, dy)可以由寬范圍標準低級視覺過程如Sobel或Prewitt算子計算171/172)暗示的角度來對于邊緣圖像164中的每個邊緣像素計算邊緣取向圖像(EO) 165。
[0063]如果手已經被跟蹤,那么其先前估計用于形成關于當前幀的相應的預測168。如果多個手假設被跟蹤,正如經常是當視覺輸入是模糊的時的情況,每個跟蹤生成獨立預測169。對預測的列表進行分析以檢測和移除復制件。因為跟蹤的手的指尖被檢測或因為多個跟蹤假設會聚,所有可以產生復制件。
[0064]對于每個預測,PSO用于高效地搜索最佳的局部手參數。PSO通過初始化預測位置周圍的隨機粒子來工作。每個粒子被給定隨機速度,這使得粒子能夠探索參數空間。粒子記住它們個人的最佳發(fā)現(xiàn)(稱為“局部最佳”)以及還知道由粒子中的任何粒子找到的最佳參數值(稱為“全局最佳)。在若干迭代的過程中,每個粒子根據其速度運動,但還駛向其個人最佳以及全部最佳。該拉力的強度開始較小,以及隨著時間增加以允許早期探索,但然后迫使粒子進入參數空間的最佳區(qū)域的細粒子搜索。在最后的迭代之后,全局最佳參數值被報告為目標的估計。
[0065]當粒子移動通過參數空間時,它們通過計算對應的手模型有多好地匹配視覺證據來對每個參數向量進行計分,例如,參數是手輪廓的(x,y)位置、比例和取向。因此,對于每個參數設置,基本手樣條的控制點通過平移、比例縮放和旋轉來被更新。然后,沿著樣條取樣本,并且將局部輪廓取向與邊緣取向圖像165中的有取向的邊緣相比較。依照主動形狀模型的方法,可通過沿著樣條的法線搜索具有匹配取向的、最靠近的邊緣來執(zhí)行比較。
[0066]通過使用由對應的PSO找到的最佳參數值來更新手預測。然后,通過移除具有很低得分的手預測來修剪它們。如果最高得分的預測超過閾值,該預測被報告為當前手位置;否則,系統(tǒng)報告手不存在當前幀中。即使當報告沒有手時,系統(tǒng)仍可以基于現(xiàn)在不存在足夠的視覺證據的可能性來保持跟蹤低得分的假設以輔助未來預測,但額外的幀可以提供必需的證據以接受或完全拒絕該假設。在這一點處完成當前幀的處理,并且整個過程隨后對于下一個視頻幀重復。
[0067]作為關于跟蹤初始化的示例,用戶接近配備有姿勢接口的系統(tǒng)。她以指示姿勢伸展她的手來開始控制網頁瀏覽器。直到該點,系統(tǒng)已經被閑置,即使盡管完全跟蹤系統(tǒng)正在運行。因為不存在現(xiàn)有跟蹤,所以不需要搜索每個新的幀中的更新。類似地,缺乏運動導致相對空的前景映射(也許一些零星的噪聲導致一些像素被分類為前景的一部分)。從而,分級指尖檢測算法可以在遞歸的第一級或第二級拒絕整個圖像,替代對成千上萬個可能的指尖大小的區(qū)域中的每個進行單獨解析。
[0068]當用戶接近系統(tǒng)并且開始指示姿勢時,系統(tǒng)檢測運動并且識別伸展的食指的指尖。檢測到的指尖觸發(fā)跟蹤模塊搜索附近的手并且開始跟蹤該手。在單幀之后,系統(tǒng)具有用戶的手的位置和形狀的粗略估計。在一些更多幀之后(在初始運動之后仍然小于100ms),系統(tǒng)已經鎖定手并且準備識別運動模式(動態(tài)姿勢)、具體的手形狀(靜態(tài)姿勢)和直接操縱(指示、選擇和拖放)。
[0069]作為關于跟蹤繼續(xù)的示例,在虛擬光盒應用中,編輯具有來自最新近模型拍攝的輸入的數字相片,并且對照片進行排序以將另外的處理區(qū)分優(yōu)先順序。該編輯查看具有很多圖像的視場屏幕,并且正好發(fā)現(xiàn)極好的候選以產生即將到來的物品。她使用指示姿勢選擇圖像并且開始將該圖片拖放到在其表示頂級圖片的第二監(jiān)視器上的區(qū)域。
[0070]在這一點處,控制系統(tǒng)已經鎖定編輯的手以及已識別出選擇姿勢。在每個新的幀中,跟蹤模塊基于現(xiàn)有跟蹤歷史對編輯的手形狀和位置作出預測。然后,該控制系統(tǒng)使用該預測來在該新的幀中進行集中搜索手,從而顧及不可避免的預測噪聲和微小的形狀變化。由于相對平滑運動和穩(wěn)定的手姿態(tài),跟蹤算法保持其貫穿該運動沒有問題。
[0071]作為涉及跟蹤恢復的示例,在存在于采礦單位處,項目管理員更具最新近地點測量總結發(fā)現(xiàn)。當管理員描述該測量結果時,她正在控制地理信息系統(tǒng)(GIS),該地理信息系統(tǒng)包括與局部地形準直的高分辨率地理數據。GIS通過使得管理員能夠自然地與觀眾交互而快速地導航虛擬地域和感興趣的高亮具體區(qū)域的姿勢接口被操作。
[0072]在完成關于潛在鉆井站點的討論之后,管理員發(fā)起飛的姿勢以導航到下一個站點。在這一點處,觀眾中的高管中的一個打斷以問一個問題。響應地,管理員擺脫飛行姿勢并且切換至選擇姿態(tài),選擇姿態(tài)意在加載和顯示關于先前的鉆井站點的相關的信息。
[0073]在中斷時,感知系統(tǒng)已經鎖定到管理員的飛行姿態(tài)并且跟蹤她的手。所估計出的三維姿態(tài)被翻譯成GIS的虛擬世界中的速度和三維軌跡。當管理員將飛行姿勢切換成選擇姿勢時發(fā)生突然的姿態(tài)和位置改變,導致跟蹤模塊丟失其鎖定。
[0074]理想情況下,系統(tǒng)將繼續(xù)跟蹤姿態(tài)變化,但在實踐中,突然的運動反轉和復雜的外觀移位可以破壞即使是最復雜的跟蹤算法。當管理員輸入選擇姿勢時,視覺模塊能夠估計一個相對干凈的前景/背景圖像,從而檢測從新的手姿態(tài)擴展的指尖。這種檢測導致新的手候選,然后新的手候選由跟蹤器證實和擴展。因此,雖然在幾個幀的跟蹤中存在中斷,知覺系統(tǒng)迅速恢復,所以從管理員的角度來看,沒有明顯的中斷。
[0075]作為涉及假的之間檢測的示例。保安使用使能姿勢的工作站來控制和監(jiān)視遍布在大型企業(yè)校園的地面上的遠程視頻相機。工作站包括幾個IXD監(jiān)視器,IXD監(jiān)視器顯示實時視頻反饋以及歷史視頻、地圖、時間表和關于校園的其它結構的記錄。感知系統(tǒng)使得姿勢接口能夠覆蓋保衛(wèi)室的相對大的部分,使得當坐在或站在監(jiān)視器中的任何監(jiān)視器前面時她可以與系統(tǒng)交互。
[0076]當保安在辦公室周圍運動時,系統(tǒng)的背景模塊可以由衣服、頭發(fā)或運動的家具的運動和紋理損壞。盡管模塊可以適應于隨著時間改變,但中間幀仍會具有嘈雜的前景/背景估計。這些臨時誤差可以導致任意的前景圖案,這可能偶爾看起來像擴展的手指。由于指尖檢測器基于局部形狀和外觀模型,其自己無法將這樣的圖案與真實的指尖區(qū)別開。從而,檢測器將這樣的區(qū)域接受為指尖,并且為跟蹤模塊提出候選的手位置。
[0077]然而,手跟蹤部件能夠與來自視頻反饋的更多信息合并,以便檢測有效的手。從而,當跟蹤器無法找到足夠的視覺證據以證實暗示的手時,基于假的之間檢測的錯誤的建議將會被決絕。在極端的情況下,跟蹤器可以找到模糊的證據并且延遲決策直到從后續(xù)的幀中收集到更多的信息。這種情況會導致跟蹤器創(chuàng)建內部手假設,但這樣的假設高于該活動性閾值產生的可能性非常小。以這種方式,手跟蹤器作為不完美的指尖檢測器的安全性檢測,而指尖檢測器工作以專注于跟蹤器并且?guī)椭櫰鞒跏蓟碌母?,以及從跟蹤錯誤恢復。
[0078]下面是用于初始化基于視覺的手跟蹤器的快速指尖檢測的參考文獻。
[0079]Argyros, A.A.和Lourakis, M,Vision-Based Interpretation of Hand Gesturesfor Remote Control of a Computer Mouse, Computer Vision in Human ComputerInteraction,第 40 至 51 頁,2006 年。
[0080]Athitsos, V.和 Sclaroff, S, Estimating3D Hand Pose from a Cluttered Image,IEEE Conference on Computer Vision and Pattern Recognition, 2003 年 6 月。
[0081]de Boor, C, A Practical Guide to Splines, Springer-Verlag, 1978 年。
[0082]Canny, J, A Computational Approach To Edge Detection, IEEE Transactionson Pattern Analysis and Machine Intelligence,第 8 (6)卷:679.98,1986 年。
[0083]Cootes, T.F.、Taylor, C.J.、Cooper, D.H.和 Graham, J, Active ShapeModels-Their Training and Application, Computer Vision and Image Understandin,第61 (I)卷,第38至59頁,1995年I月。
[0084]Deutscher, J.> Blake, A.和 Reid, I, Articulated Body Motion Capture byAnnealed Particle Filtering, IEEE Conference on Computer Vision and PatternRecognition,第 126 至 133 頁,2000 年 6 月。
[0085]Fergus, R.、Perona, P.和 Zisserman, A.0bject class recognition byunsupervised scale-1nvariant learning, IEEE Conference on Computer Vision andPattern Recognition, 2003 年。
[0086]Freund, Y.和 Schapire, R, A short introduction to boosting, Journal ofJapanese Society for Artificial Intelligence,第 14 (5)卷:第 771 至 780 頁 1999 年9月。
[0087]Kennedy, J.Eberhart, R.C., Swarm Intelligence,摩根考夫曼,ISBNl-55860-595-9,2001 年。[0088]Letessier, J.和Berard, F,Visual tracking of bare fingers for interactivesurfaces, ACM Symposium on User Interface Software and Technology,圣達菲,新墨西哥,美國,第19至122頁,2004年。
[0089]Viola, P.和 Jones, M.Robust Real-time Object Detection, InternationalJournal of Computer Vision, 2001 年。
[0090]空間操作環(huán)境(SOE)
[0091]在本文中在空間操作環(huán)境(SOE)的背景中描述空間連續(xù)輸入系統(tǒng)的實施方式。作為一個示例,圖1是根據實施方式的空間操作環(huán)境(SOE)的框圖。用戶將他的手101和102定位在相機陣列104A至104D的觀察區(qū)域150中。相機檢測手101和102以及手指的位置、取向和移動作為空間跟蹤數據,并且生成到預處理器105的輸出信號。預處理器105將相機輸出翻譯成姿勢信號,姿勢信號被提供至系統(tǒng)的計算機處理單元107。計算機107使用輸入信息生成命令以控制一個或多個屏上光標,并且向顯示器103提供視頻輸出。上面詳細地描述的用于實時地初始化基于視覺的手跟蹤系統(tǒng)的系統(tǒng)和方法可以用在例如SOE中以及類似的系統(tǒng)中。
[0092]盡管系統(tǒng)被示為具有單個用戶的手作為輸入,但也可以使用多個用戶實現(xiàn)SOElOO0另外,代替手或除了手以外,系統(tǒng)可跟蹤用戶身體的任何一個或多個部分,包括頭、腳、腿、臂、肘、膝等。
[0093]在所示出的實施方式中,采用四個相機或傳感器來檢測觀察區(qū)域150中的用戶的手101和102的位置、取向和運動。應當理解的是,在不偏離SOE的范圍或精神的情況下,SOE可以包括更多(例如,六個、八個等)或更少(例如,兩臺)相機或傳感器。另外,盡管多個相機或傳感器對稱地布置在示例實施方式中,但在S0E100中不要求這樣的對稱性。在SOE100中可以使用允許用戶的手的位置、取向和運動的任何數目或定位的相機或傳感器。
[0094]在一種實施方式中,所使用的相機是能夠捕捉灰度級圖像的運動捕捉相機。在一種實施方式中,所使用的相機為由Vicon (威康)制造的這些相機如威康MX40相機。該相機包括相機上的處理,并且能夠以每秒1000幀捕捉圖像。運動捕捉相機能夠檢測和定位標記。
[0095]在所描述的實施方式中,相機是用于光學檢測的傳感器。在其它實施方式中,相機或其它檢測器可以用于電磁檢測、靜磁檢測、RFID檢測、或任何其它合適類型的檢測。
[0096]預處理器105生成三維空間點重構和骨點標記。姿勢翻譯器106將三維空間信息和標記運動信息轉換成可以由計算機處理器解釋以在顯示器上更新光標的位置、形狀和動作的命令語言。在S0E100的可替選實施方式中,預處理器105和姿勢翻譯器106被集成或組合成單個裝置。
[0097]計算機107可以是任何通用計算機如由蘋果、戴爾或任何其它合適的制造商制造的計算機。計算機107運行應用并且提供顯示器輸出。原本來自鼠標或其他現(xiàn)有技術的輸入裝置的光標信息現(xiàn)在來自姿勢系統(tǒng)。
[0098]標記標簽
[0099]該SOE或實施方式考慮在用戶的一個或多個手指上使用標記標簽,以使得系統(tǒng)可定位用戶的手,標識其正在觀察左手還是右手以及哪些手指是可視的。這允許系統(tǒng)檢測用戶的手的位置、取向和運動。該信息允許多個姿勢由系統(tǒng)識別并且由用戶用作命令。[0100]實施方式中的標記標簽是物理標簽,該物理標簽包括襯底(在本實施方式中適合于貼附到人手上的各個位置)和以唯一標識圖案布置在襯底表面上的離散標記。
[0101]標記和相關聯(lián)的外部感測系統(tǒng)可以在允許準確、精確、迅速且持續(xù)地獲取其三度空間位置的任何域(光域、電磁域、靜磁域等)中工作。標記本身可主動地(例如,通過發(fā)射結構化電磁脈沖)工作或被動地(例如,通過如本實施方式中的光學回射標記)工作。
[0102]在每個獲取幀,檢測系統(tǒng)接收由恢復后的三維空間位置構成的聚集“云”,其包括目前在儀器化工作空間體積內(在相機或其他檢測器的可視范圍內)的標簽上的所有標記。每個標簽上的標記具有足夠的多樣性,并且被布置成唯一的圖案,從而檢測系統(tǒng)可執(zhí)行以下任務:(1)分割,其中每個恢復后的標記位置被分配給構成單個標簽的點的一個且僅一個子集;(2)標簽設定,其中點的每個分割后的子集被標識為特定標簽;(3)定位,其中被標識的標簽的三維空間位置被恢復;以及(4)取向,其中被標識的標簽的三維空間取向被恢復。如下面所述和如圖2中的一種實施方式所示的那樣,通過標記圖案的特定性質,使得任務(I)和(2)成為可能。
[0103]一種實施方式中的標簽上的標記被貼附于規(guī)則網格位置的子集。此基本網格如本實施方式中那樣可以是傳統(tǒng)笛卡爾類型的;或者代之以可以是某種其他的規(guī)則平面棋盤形布置(例如,三角形/六邊形平鋪布置)。鑒于標記感測系統(tǒng)的已知空間分辨率而確立網格的比例和間距,使得相鄰網格位置不大可能被混淆。所有標簽的標記圖案的選擇應滿足以下約束:標簽的圖案不應通過旋轉、平移或鏡像的任意組合而與任何其他標簽的圖案相一致,標記的多樣性和布置可進一步選擇為使得容許某個規(guī)定數目的分量標記的損失(或遮蔽)。在任何任意變換之后,應仍然不大可能將受損的模塊與任何其他模塊混淆。
[0104]現(xiàn)在參考圖2,示出了多個標簽201A-201E (左手)和202A-202E (右手)。每個標簽都是矩形的,并且在本實施方式中由5X7網格陣列構成。選擇矩形形狀來幫助確定標簽的取向以及降低鏡像重復的可能性。在所示的實施方式中,每個手上的每個指頭都有標簽。在一些實施方式中,每個手使用一個、兩個、三個或四個標簽可能是足夠的。每個標簽具有不同灰階或色彩明暗的邊界。此邊界內是3X5網格陣列。標記(由圖2中的黑點表示)被布置在該網格陣列的某些點處以提供信息。
[0105]通過將每個圖案分割成“共同的”和“唯一的”子圖案,鑒定信息可以用標簽的標記圖案進行編碼。例如,本實施方式規(guī)定了兩種可能的“邊界圖案”(標記圍繞矩形邊界的分布)。由此建立了標簽“族”一意圖用于左手的標簽由此可能都使用如標簽201A-201E中所示的相同邊界圖案,而附著到右手手指的標簽可能被分配如標簽202A-202E中所示的不同圖案。此子圖案被選擇為使得在標簽的所有取向上都可區(qū)分左圖案與右圖案。在所示的例子中,左手圖案在每個角落都包括標記,并且在從角落起第二個網格位置包括標記。右手圖案在僅兩個角落有標記,并且在非角落網格位置有兩個標記。從該圖案可以看出:只要四個標記中的任何三個是可視的,就能明確區(qū)分左手圖案與右手圖案。在一種實施方式中,邊界的色彩或陰影也可用作偏手性的指示。
[0106]每個標簽當然必須仍采用唯一的內部圖案,標記分布在其族的共同邊界內。在所示的實施方式中,已發(fā)現(xiàn),內部網格陣列中的兩個標記足以唯一地標識十個手指中的每個,而不會因手指的旋轉或取向而發(fā)生重復。即使標記中有一個被遮蔽,標簽的偏手性和圖案的組合也產生唯一標識符。[0107]在本實施方式中,網格位置可視地存在于剛性襯底上,來幫助執(zhí)行將每個回射標記貼附于其預期位置的人工任務。借助彩色噴墨打印機將這些網格和預期標記位置精確地打印到襯底上,這里襯底是由初始時為撓性的“收縮膜”構成的片。將每個模塊從該片切下,然后用爐烘烤,在該熱處理過程中每個模塊經歷精確和可重復的收縮。在此過程后的短暫間隔內,冷卻標簽可略微變形——以模仿例如手指的縱向彎曲;此后,襯底是適當剛性的,標記可被粘附于所指示的網格點。
[0108]在一種實施方式中,標記本身是三維的,比如借助粘合劑或其他合適的裝置貼附到襯底的小反射球。標記的三維性可幫助對二維標記的檢測和定位。然而,在不脫離本發(fā)明的精神和范圍的情況下,可使用任一個。
[0109]目前,標簽借助VelciO或其他合適的裝置貼附到操作者佩戴的手套,或者可替選地使用雙面膠帶直接貼附到操作者的手指。在第三實施方式中,可以完全省去剛性襯底,而將各個標記貼附(或“涂”)在操作者的手指和手上。
[0110]姿勢詞匯
[0111]實施方式的SOE考慮由手姿態(tài)、取向、手組合和取向混合組成的姿勢詞匯。還實施記號語言來設計和傳達本發(fā)明的姿勢詞匯中的姿態(tài)和姿勢。姿勢詞匯是以緊湊的文本形式來表示運動學聯(lián)動機構(kinematic linkages)的瞬時‘姿態(tài)狀態(tài)’的系統(tǒng)。所討論的聯(lián)動機構可以是生物的(例如人手;或整個人體;或蚱蜢腿;或狐猴的具關節(jié)的脊柱)或者代之以可以是非生物的(例如機器臂)。在任何情況下,該聯(lián)動機構可以是簡單的(脊柱)或有分支的(手)。本發(fā)明的姿勢詞匯系統(tǒng)為任何具體聯(lián)動機構建立恒定長度的串;于是,占據該串的‘字符位置’的具體ASCII字符集是聯(lián)動機構的瞬時狀態(tài)或‘姿態(tài)’的唯一描述。
[0112]手姿態(tài)
[0113]圖3圖示了使用本發(fā)明的姿勢詞匯的一種實施方式中的手姿態(tài)。本發(fā)明假設手上的五個手指中的每個都被使用。這些手指是諸如P-小指、r-無名指、m-中指、1-食指和t_拇指的碼。圖3中定義并示出了手指和拇指的多個姿態(tài)。姿勢詞匯串為聯(lián)動機構(在此情況下為手指)中的每個可表達的自由度確立單個字符位置。此外,每個這樣的自由度被理解為離散化的(或‘量子化的’),從而可通過在該串位置分配有限數目的標準ASCII字符之一來表達其全程運動。這些自由度是相對于身體特有的原點和坐標系(手的背面,蚱蜢身體的中心;機器臂的底座等)而表達的。因此,使用小數目的額外姿勢詞匯字符位置來表達聯(lián)動機構‘作為整體’在更全局的坐標系中的位置和取向。
[0114]仍參照圖8,使用ASCII字符定義和標識多個姿態(tài)。其中一些姿態(tài)在拇指和非拇指之間加以劃分。本發(fā)明在此實施方式中使用編碼,從而ASCII字符本身就暗示著姿態(tài)。然而,無論暗示與否,任何字符都可用來表示姿態(tài)。另外,在本發(fā)明中不必須為記號串使用ASCII字符。在不脫離本發(fā)明的范圍和精神的情況下,可以使用任何合適的符號、數字或其他表示法。例如,如果需要,記號可采用每手指兩位或某個其他位數。
[0115]彎曲的手指由字符表示,而彎曲的拇指由“〉”表示。指向上方的直的手指或拇指由“I”表示,指向某個角度的直的手指或拇指由“\”或“/”表示?!啊北硎局赶蛘齻确降哪粗?,“ X ”表示指向平面內的拇指。
[0116]使用這些單獨的手指和拇指描述,可觀數目的手姿態(tài)可使用本發(fā)明的方案來限定和書寫。每個姿態(tài)由如上所述順序為p-r-m-1-t的五個字符表示。圖3圖示了多個姿態(tài),并且在此通過圖示和舉例對少數姿態(tài)進行了描述。保持平坦且平行于地面的手由“ 11111”
表示。拳頭由表示?!?K”符號由表示。
[0117]字符串當使用暗示性字符時提供了淺顯“易讀”的機會。著眼于快速的識別和直白的模擬,通??蛇x擇描述每個自由度的可能字符的集合。例如,豎條(‘ I ’)意在表明聯(lián)動機構元件是‘直的’,L形(‘L’)可表示九十度彎曲,抑揚符(‘ ~ )可表示銳角彎曲。如上所述,可按照需要使用任何字符或編碼。
[0118]采用如這里所述的姿勢詞匯串的任何系統(tǒng)都受益于串比較的高計算效率——標識或搜索任何規(guī)定的姿態(tài)事實上變成期望姿態(tài)串與瞬時實際串之間的‘串比較’(例如UNIX的‘strcmp O’函數)。此外,‘通配符’的使用為程序員或系統(tǒng)設計者提供了額外的常見效能和功效:可將其瞬時狀態(tài)對于匹配不相關的自由度規(guī)定為問號可賦予額外的通配符含義。
[0119]取向
[0120]除了手指和拇指的姿態(tài)以外,手的取向也可表示信息。顯然,亦可選擇描述全局空間取向的字符:字符‘〈’、和‘V’當以取向字符位置出現(xiàn)時可用來表示左、右、上和下的概念。圖4圖示了組合了姿態(tài)和取向的編碼的例子以及手取向描述符。在本發(fā)明的一種實施方式中,兩個字符位置首先規(guī)定手掌的方向,然后規(guī)定手指的方向(如果手指是直的,不管手指的實際彎曲)。這兩個位置的可能字符表達取向的‘身體中心’記號:
‘X’、‘*’、和‘V’描述中間的、側面的、前面的(向前的,離開身體)、后面的(向后的,離開身體)、頭部的(向上的)和尾部的(向下的)。
[0121]在本發(fā)明的一種實施方式的記號方案中,表不五個手指姿態(tài)的字符的后面是冒號和兩個取向字符,以定義完整的命令姿態(tài)。在一種實施方式中,起始位置被稱為“xyz”姿態(tài),其中拇指指向正上方,食指指向前方,中指垂直于食指,當姿態(tài)用右手作出時指向左方。這由串“ xl_:_x”表不。
[0122]“XYZ-手”是利用人手的幾何結構來允許對視覺上呈現(xiàn)的三維結構進行全部六個自由度的導航的技術。盡管該技術僅依賴于操作者的手的整體平移和旋轉——從而其手指原則上可保持在任何期望姿態(tài)——在本實施方式中更可取的是靜態(tài)配置,其中食指指向遠離身體的方向;拇指指向天花板;中指指向左-右。這三個手指由此描述(粗略但意圖明晰地描述)了三度空間坐標系的三個互相正交的軸:由此‘XYZ-手’。
[0123]于是,進行XYZ-手導航,其中手、手指呈如上所述的姿態(tài)并保持在操作者身體之前、預定的‘中性位置’。以下面的自然方式實現(xiàn)對三度空間對象(或相機)的三個平移和三個旋轉自由度的理解:手的左右移動(相對于身體的自然坐標系)導致沿著計算環(huán)境的X軸的移動;手的上下移動導致沿著受控環(huán)境的y軸的移動;手的前后移動(朝著或遠離操作者的身體)導致該環(huán)境內的z軸運動。類似地,操作者的手圍繞食指的旋轉導致計算環(huán)境的取向的‘滾動’變化;類似地,分別通過使操作者的手圍繞中指和拇指的旋轉來實現(xiàn)‘俯仰’和‘搖擺’的變化。
[0124]注意,,盡管‘計算環(huán)境’這里用來指代由XYZ-手方法控制的實體一并且似乎暗示合成的三度空間對象或者相機,但應理解該技術同樣可用于控制真實世界對象的各種自由度:例如配備有適當旋轉致動器的攝像機或攝影機的搖攝/傾斜/滾動控制。此外,由XYZ-手姿態(tài)提供的物理自由度可能稍微有些不精確地映射在虛擬域中:在本實施方式中,XYZ-手還用來提供對大的全景顯示圖像的導航訪問,從而操作者的手的左右和上下運動導致圍繞圖像的預期左右或上下‘搖攝’,而操作者的手的前后運動映射到‘變焦’控制。
[0125]在所有情況下,手的運動與所引起的計算平移/旋轉之間的耦接可以是直接的(即,操作者的手的位置或旋轉偏移借助某個線性或非線性函數而一一映射到在計算環(huán)境內對象或相機的位置或旋轉偏移)或間接的(即,操作者的手的位置或旋轉偏移借助某個線
性或非線性函數而--映射到在計算環(huán)境內位置/取向的一階或更高階導數;正在進行的
積分于是實現(xiàn)計算環(huán)境的實際零階位置/取向的非靜態(tài)變化)。此后一控制手段類似于汽車的‘氣動踏板’的使用,其中該踏板的恒定偏移或多或少導致恒定的車速。
[0126]作為真實世界XYZ-手的局部六自由度坐標原點的‘中性位置’可以(I)被確立為空間中的絕對位置和取向(相對于比如封閉室);(2)被確立為相對于操作者自身的固定位置和取向(例如,在身體前方八英寸、在下巴下方十英寸、以及在側面與肩膀平面成一直線),而無論操作者的總體位置和‘朝向’如何;或者(3)通過操作者的有意的副動作(例如采用由操作者的‘另一只’手作出的姿態(tài)命令,所述命令表明XYZ-手的當前位置和取向自此以后應當被用作平移和旋轉原點)來被交互地確立。
[0127]此外,方便的是,提供圍繞XYZ-手的中性位置的‘封鎖’區(qū)(或‘死區(qū)’),使得該體積內的移動不映射到受控環(huán)境內的移動。
[0128]可以包括其它姿態(tài):
[0129][I I I I 1:v x]是手掌面朝下方且手指朝前方的扁平手(拇指平行于手指)。
[0130][I I I I I:X~]是手掌面朝前方且手指朝天花板的扁平手。
[0131][I I I I I:-χ]是手掌面朝身體中心(左手情況下為右,右手情況下為左)且手指朝前方的扁平手。
[0132]是單手豎起大拇指(拇指指向天花板)
[0133]~ ~ 1-: -X]是模仿槍指向前方
[0134]雙手組合
[0135]實施方式的SOE預期單手命令和姿態(tài)以及雙手命令和姿態(tài)。圖5示出了本發(fā)明的一種實施方式中的雙手組合和相關聯(lián)的記號的例子。觀察第一個例子的記號,“完全停止”表明其包括兩個合上的拳頭。“快照”例子的每個手的拇指和食指伸展,各拇指指向彼此,從而定義球門柱形狀的框架?!胺较蚨婧陀烷T起始位置”是手指和拇指指向上方,手掌面朝屏幕。取向混合
[0136]圖6圖示了本發(fā)明的一種實施方式中的取向混合的例子。在所示的例子中,通過在手指姿態(tài)串之后將成對的取向記號括在括號內來表示該混合。例如,第一個命令示出了全部直指的手指位置。第一對取向命令將導致手掌平坦地朝著顯示器,第二對使手旋轉到斜向顯示器45度的斜度。盡管本例子中示出了成對的混合,但在本發(fā)明中可考慮任何數目的混合。示例命令
[0137]圖8/1和圖8/2示出了可以與SOE —起使用的多個可能的命令。盡管這里的討論有一些是關于控制顯示器上的光標的,但本發(fā)明不限于該工作。實際上,本發(fā)明在操縱屏幕上的任何和所有數據及部分數據、以及顯示器的狀態(tài)時有大的應用。例如,這些命令可用于在視頻媒體的回放過程中取代視頻控制。這些命令可用來暫停、快進、倒回等。另外,可執(zhí)行命令來縮小或放大圖像、改變圖像的取向、在任何方向上搖攝等。本發(fā)明還可代替諸如打開、關閉、保存等的菜單命令而使用。換句話說,任何可想象的命令或工作都可用姿勢實現(xiàn)。
[0138]操作
[0139]圖1是示出了一種實施方式中的SOE的操作的流程圖。在701處,檢測系統(tǒng)檢測標記和標簽。在702處,確定是否檢測到標簽和標記。如果未檢測到,系統(tǒng)返回到步驟701。如果在步驟702檢測到標簽和標記,系統(tǒng)進入步驟703。在步驟703,系統(tǒng)根據檢測到的標簽和標記標識手、手指和姿態(tài)。在步驟704,系統(tǒng)標識姿態(tài)的取向。在步驟705,系統(tǒng)標識檢測到的一個或多個手的三維空間位置。(請注意,可以組合703、704和705中的任何一個或全部)。
[0140]在步驟706,信息被翻譯成上面描述的姿勢記號。在判定塊707,確定姿態(tài)是否有效。這可以通過使用所產生的記號串進行簡單的串比較來實現(xiàn)。如果姿態(tài)無效,系統(tǒng)返回到步驟701。如果姿態(tài)有效,系統(tǒng)在步驟708將記號和位置信息發(fā)送給計算機。計算機在步驟709確定為響應于姿勢而要采取的合適動作,并相應地在步驟710更新顯示器。
[0141]在SOE的一種實施方式中,步驟701-705是通過相機上處理器實現(xiàn)的。在其他實施方式中,如果需要,該處理可由系統(tǒng)計算機實現(xiàn)。
[0142]解析和翻譯
[0143]系統(tǒng)能夠“解析”和“翻譯”被底層系統(tǒng)恢復的低級姿勢所構成的流,并將那些經解析和翻譯的姿勢變成可用于控制大范圍的計算機應用和系統(tǒng)的命令或事件數據所構成的流。這些技術和算法可包含在由計算機代碼構成的系統(tǒng)中,系統(tǒng)既提供實施這些技術的引擎也提供構建對該引擎的能力進行利用的計算機應用的平臺。
[0144]一種實施方式致力于在計算機接口中實現(xiàn)人手的豐富姿勢使用,但也能夠識別由其他身體部分(包括但不限于臂、軀干、腿和頭)以及各種各樣的非手的物理工具(靜態(tài)的有關節(jié)的)作出的姿勢,所述非手的物理工具包括但不限于卡鉗、兩角規(guī)、撓性彎曲合攏器以及各種形狀的指點裝置??砂凑招枰獙擞浐蜆撕炇┘佑诳捎刹僮髡邤y帶和使用的物品和工具。
[0145]這里所述的系統(tǒng)合并了使得構建在可被識別和作用于的姿勢的范圍方面豐富的姿勢系統(tǒng)成為可能的多個創(chuàng)新,同時提供向應用中的簡單集成。
[0146]一種實施方式中的姿勢解析和翻譯系統(tǒng)的組成如下:
[0147]I)規(guī)定(為用在計算機程序中而編碼)如下幾個不同聚集水平的姿勢的簡潔有效的方式:
[0148]a.單只手的“姿態(tài)”(手的各部分相對于彼此的配置和取向)單只手在三維空間中的取向和位置。
[0149]b.雙手組合,對于任一只手,考慮姿態(tài)、位置或兩者。
[0150]c.多人組合;系統(tǒng)可跟蹤多于兩只的手,因此多于一個的人可協(xié)同地(或競爭地,在游戲應用的情況下)控制目標系統(tǒng)。
[0151]d.按順序的姿勢,其中姿態(tài)被組合成一系列;我們稱它們?yōu)椤盎顒拥摹弊藙荨?br>
[0152]e.“語義圖”姿勢,其中操作者在空間中描繪形狀。
[0153]2)用于注冊與給定應用環(huán)境相關的上述每個種類中的具體姿勢的編程技術。
[0154]3)用于解析姿勢流以使得經注冊的姿勢可被標識且封裝了這些姿勢的事件可被傳送給相關應用環(huán)境的算法。[0155]具有組成要素(Ia)到(If)的規(guī)定系統(tǒng)(I)為利用這里所述的系統(tǒng)的姿勢解析和翻譯能力提供了基礎。
[0156]單手“姿態(tài)”被表示為:
[0157]i)手指與手背之間的相對取向所構成的串,以及
[0158]ii)被量子化成小數目的離散狀態(tài)。
[0159]使用相對聯(lián)接取向使得這里所述的系統(tǒng)可避免與不同的手大小和幾何結構相關聯(lián)的問題。本系統(tǒng)不要求“操作者校準”。另外,將姿態(tài)規(guī)定為相對取向的串或集合使得可通過將姿態(tài)表示法與另外的過濾器和規(guī)定相結合而容易地創(chuàng)建更復雜的姿勢規(guī)定。
[0160]使用小數目的用于姿態(tài)規(guī)定的離散狀態(tài)使得簡潔地規(guī)定姿態(tài)以及使用多種基本跟蹤技術(例如,使用相機的被動光學跟蹤、使用發(fā)光點和相機的主動跟蹤、電磁場跟蹤等)來確保準確的姿態(tài)識別成為可能。
[0161]可部分(或最小限度地)規(guī)定(Ia)到(If)的每個種類中的姿勢,以使得非關鍵的數據被忽略。例如,其中兩個手指的位置明確且其他手指位置不重要的姿勢可由這樣的單個規(guī)定來表示:其中給出兩個相關手指的操作位置,且在同一個串內,為其他手指列出“通配符”或一般的“忽略這些”指示。
[0162]這里所述的用于姿勢識別的所有創(chuàng)新(包括但不限于多層化規(guī)定技術、相對取向的使用、數據的量子化以及對每一級的部分或最小規(guī)定的允許)超越人的姿勢的規(guī)定而推廣到使用其他身體部分和“人造”工具和對象作出的姿勢的規(guī)定。
[0163]用于“注冊姿勢”(2)的編程技術由限定的一組應用編程接口調用組成,其允許程序員限定引擎應使哪些姿勢可為運行的系統(tǒng)的其他部分所用。
[0164]這些API例程可以在應用建立時間使用,從而創(chuàng)建在運行的應用的整個生命期使用的靜態(tài)接口定義。它們還可以在運行的過程中使用,從而允許接口特性在運行中改變。接口的該實時變更使得可以:
[0165]i)構建復雜的環(huán)境和條件控制狀態(tài),
[0166]ii)向控制環(huán)境動態(tài)地添加滯后,并且
[0167]iii)創(chuàng)建使得用戶能夠變更或擴展運行的系統(tǒng)本身的接口詞匯的應用。
[0168]用于解析姿勢流(3)的算法將在(I)中規(guī)定并在(2)中注冊的姿勢與輸入的低級姿勢數據相比較。當經注冊的姿勢的匹配被識別出時,表示匹配的姿勢的事件數據被堆棧上傳到運行的應用。
[0169]在本系統(tǒng)的設計中期望高效的實時匹配,將規(guī)定的姿勢處理為被盡可能快地處理的可能性的樹。
[0170]另外,在內部使用以識別規(guī)定的姿勢的簡單比較操作符也被暴露以供應用程序員使用,使得進一步的比較(例如,復雜或復合姿勢中的靈活的狀態(tài)檢查)甚至可以從應用環(huán)境內發(fā)生。
[0171]識別“鎖定”語義是這里所述系統(tǒng)的創(chuàng)新。這些語義由注冊API (2)暗示(并且,對于較小的范圍,嵌入在規(guī)定詞匯(I)內)。注冊API調用包括:
[0172]i) “進入”狀態(tài)通知符和“持續(xù)”狀態(tài)通知符,以及
[0173]ii)姿勢優(yōu)先級說明符。
[0174]如果姿勢已被識別出,則其“持續(xù)”狀態(tài)優(yōu)先于相同或較低優(yōu)先級的姿勢的所有“進入”狀態(tài)。進入和持續(xù)狀態(tài)之間的這種區(qū)別顯著增大了感知到的系統(tǒng)可用性。
[0175]這里所述的系統(tǒng)包括用于面對真實世界數據誤差和不確定性的魯棒操作的算法。來自低級跟蹤系統(tǒng)的數據可能是不完整的(由于多種原因,包括光學跟蹤中的標記遮蔽、網絡掉線或處理滯后等)。
[0176]取決于丟失數據的量和背景,丟失數據由解析系統(tǒng)標記,并被插入到“最后已知的”或“很可能的”狀態(tài)中。
[0177]如果關于特定姿勢成分(例如,特定關節(jié)的取向)的數據丟失,但該特定成分的“最后已知的”狀態(tài)可被解析為在物理上是可能的,則系統(tǒng)在其實時匹配時使用此最后已知的狀態(tài)。
[0178]相反,如果最后已知的狀態(tài)被解析為在物理上是不可能的,則系統(tǒng)后退到該成分的“最佳猜測范圍”,并在其實時匹配時使用此合成數據。
[0179]仔細地設計了這里所述的規(guī)定和解析系統(tǒng)以支持“偏手性不可知論”,從而對于多手姿勢,任一只手都被允許滿足姿勢要求。
[0180]導航數據空間
[0181]一種實施方式的SOE使得能夠進行“回推”、進行人類操作員的手的線性空間移動、或執(zhí)行類似空間的活動,以控制在圖形或其它數據表示空間中的線性接近或搬運運動。SOE及由其建立的計算和認知關聯(lián)提供了在比例水平中導航的基礎的、結構化的方式,以遍歷大體上線性的“深度維”,或更一般地,以訪問量化的或“限位的(detented)”參數空間。SOE還提供了操作員可自愿地獲取附加的背景的有效方法:用于了解是空間的、概念上的、還是計算的鄰近和鄰接的快速技術。
[0182]在某些實施方式中,回推技術可采用傳統(tǒng)的輸入設備(例如,鼠標、軌跡球、集成的滾動條和滑塊)或依靠操作員本人外部的被標記的或被追蹤的對象(例如,儀表運動聯(lián)動機構、靜磁追蹤的“輸入磚塊”)。在其它替換實施方式中,回推實現(xiàn)可足夠作為整個控制系統(tǒng)。
[0183]實施方式的SOE是更大的空間交互系統(tǒng)的一部分或集成到更大的空間交互系統(tǒng)中,其中,更大的空間交互系統(tǒng)取代慣常的基于鼠標的用于控制計算機的圖形用戶界面(iWIMP, UI)方法,該更大的空間交互系統(tǒng)可替選地包括(a)追蹤一種或更多種對象(例如,人手、在人手上的對象、無生命對象等)的物理傳感器;(b)用于將感測到的手的展開位置、取向和姿態(tài)分析成姿態(tài)事件序列的裝置;(C)用于表示這種空間和姿態(tài)事件的描述方案;(d)用于將這種姿態(tài)事件分發(fā)給控制程序或分發(fā)到控制程序之內的框架;(e)用于將通過姿態(tài)事件流編碼的人類意圖(命令)與事件流本身和應用特定的事件解釋序列這兩者的圖形描述、聽覺描述、和其它顯示形式的描述相同步,以下將詳細描述其全部。在這樣的實施方式中,回推系統(tǒng)與附加的空間和姿態(tài)輸入接口技術相集成。
[0184]通常,數據空間的導航包括根據通過檢測器接收到的姿勢數據來檢測身體的姿勢。姿勢數據是在時間和物理空間中的一點處身體的瞬時狀態(tài)的絕對三度空間位置數據。檢測包括使用姿勢數據來標識姿勢。導航包括將姿勢翻譯成姿勢信號,并且響應于姿勢信號而在數據空間中導航。數據空間是包括在物理空間中表示的數據集的數據表示空間。
[0185]如果實施方式的整體的往返延遲(手的運動到傳感器、到回推解釋系統(tǒng)的姿態(tài)分析、到呈現(xiàn)到顯示設備的計算機圖形、返回到操作員的視覺系統(tǒng))保持為低(例如,實施方式呈現(xiàn)大約15毫秒的延遲),并且當正確地調整系統(tǒng)的其它參數時,回推交互的感知結果是物理因果關系的明顯感覺:SOE使推壓彈簧承載結構的物理諧振象征(metaphor)精確化(literalize)。感知到的因果關系是非常有效的反饋。與回推系統(tǒng)提供的其它更抽象的圖形反饋形式以及有意抑制在解釋操作員移動方面的某種程度上的自由一起,這種反饋反過來允許穩(wěn)定、可靠、和可重復地將人類的大小肌肉活動用作控制機制。
[0186]在評估SOE的背景時,很多數據集固有地是空間的:它們表示精確的(literal)物理空間中的現(xiàn)象、事件、觀測或結構。對于更抽象的其它數據集或對精確的甚至非空間的信息進行編碼的其它數據集,經常期望的是,準備這樣的表示(視覺的、聽覺的、或涉及其它顯示形式的):通過標量值的參數來控制該表示的某個基礎方面。因而,將該參數與空間維相關聯(lián)經常也是有益的。如以下所描述的,從借助于回推機制的操縱中獲益的是對該單個標量參數的操縱。
[0187]表示還可將特權給予數據集最優(yōu)考慮的表示參數的少量離散值(實際上,有時僅一個值)。在這種情況下,論及“限位參數”是有用的,或者如果已將參數明確地映射到一維表示空間上,論及“限位參數”是有用的。本文中術語“限位”的使用旨在不僅描述參數的優(yōu)選量化,而且描述棘輪的視覺觸覺感覺、磁對準機制、穿梭變速輪、和其它大量的具有有意的機械限位器的已有設備。
[0188]這樣的參數的不證自明甚至至關重要的示例包括但不限于:(I)合成相機在計算機圖形環(huán)境中離數據集的可呈現(xiàn)表示的距離;(2)從原始數據集中采樣數據和將數據轉換成可呈現(xiàn)形式的密度;(3)從時變數據集中檢索樣本和將樣本轉換成可呈現(xiàn)表示的時間指數。這些是通用方法,還存在無數的特定于域的參數化。
[0189]SOE的回推通常將數據集的參數控制軸與物理空間中的局部相關的“深度維度”對準,并且允許沿著深度維度的結構化的真實世界運動實現(xiàn)沿著控制軸的平移。結果是用于對參數空間進行導航的非常高效的手段。下面是在SOE中實施的回推的代表性實施方式的詳細描述。
[0190]在回推例子中,操作員站在大的墻顯示器之前的舒適距離處,在該墻顯示器上出現(xiàn)包括文本和圖像的單個“數據幀”,其中,圖像數據元素可以是靜態(tài)的或動態(tài)的。數據幀可以包括圖像,但是不限于如此。本身是二維構造的數據幀仍然常駐在三維計算機圖形呈現(xiàn)環(huán)境中,該三維計算機圖形呈現(xiàn)環(huán)境的基礎坐標系統(tǒng)已被布置成與便于描述房間和包括顯示器及操作員的房間內容的真實世界的坐標系相一致。
[0191 ] 通過以高精確度和高的時間比率解析操作員的手指以及可能整個手的全體的位置和取向的傳感器來追蹤操作員的手。為了表征每只手的“姿態(tài)”,即手指相對于彼此以及相對于手的全體的幾何布置,系統(tǒng)對結果空間數據進行解析。雖然該示例實施方式追蹤的目標是人手,能夠追蹤作為替換實施方式中的輸入設備的眾多的其它目標。一個示例是一側回推的場景,在該場景中中身體是處于打開位置的操作員的手,手掌面朝向前的取向(沿著z軸)(例如朝向在操作員之前的顯示屏)。為了該說明的目的,使墻顯示器(未示出)占據X和y維,Z描述操作員與顯示器之間的維。與該回推實施方式相關聯(lián)的姿態(tài)交互空間包括在持續(xù)的z平面上鄰近的兩個空間,將遠離顯示器的限位間隔空間(即更接近于操作員)稱作“死區(qū)”,而更接近的半邊空間是“活動區(qū)”。死區(qū)在向后的取向(朝向操作員并遠離顯示器)上無限延伸,但向前僅延伸有限的距離,結束于死區(qū)閾值?;顒訁^(qū)從死區(qū)閾值向前延伸到顯示器。身體在活動區(qū)中的移動交互地控制或“回推”在顯示器上呈現(xiàn)的數據幀或多個數據幀。
[0192]以與顯示器的尺寸和縱橫比精確匹配的尺寸和縱橫比來構造數據幀,以及定位數據幀和確定數據幀的取向,以便數據幀的中央和標準向量與顯示器的那些物理屬性相一致,盡管實施方式不限于如此。在從顯示器直接向前以及與操作員粗略相隔一段距離處放置用于呈現(xiàn)場景的虛擬相機。在該背景中,呈現(xiàn)的幀因此精確地充滿顯示器。
[0193]多個額外的共面的數據幀邏輯地布置在可見幀的左邊和右邊,間隔一致并且以最適中的間隙各自與其緊鄰的鄰居相分離。因為側向放置的鄰近數據幀位于計算機圖形呈現(xiàn)幾何形狀的物理/虛擬呈現(xiàn)邊界之外,這些側向放置的鄰近數據幀不是初始可見的。如將看到的,數據空間(給定其幾何結構)擁有在Z軸取向上的單個自然限位裝置以及多個X限位裝置。
[0194]操作員將保持在第一松弛姿態(tài)的手舉到肩部。然后,操作員張開手指以便手指指向上方,以及張開拇指以便拇指指向右邊。操作員的手掌面向屏幕(在以下詳細描述的姿態(tài)描述語言中,該姿態(tài)翻譯將被表達為翻譯成111 |-:χ?)。檢測新姿態(tài)的系統(tǒng)觸發(fā)回推交互,以及立即記錄首次輸入該姿態(tài)的絕對三維空間的手的位置:將該位置用作“原點”,隨后的手運動將被報告為離該“原點”的相對位移。
[0195]立即,將兩個同中心的、部分透明的圖示 符疊加在幀的中心上(因此位于顯示器的中心)。圖示符可以指示在直到死區(qū)閾值點的死區(qū)中的身體回推姿態(tài)。第二圖示符小于第一圖示符指示操作員的手位于死區(qū),由此“還”未使回推操作參與進來。當操作員將手向前移動時(向著死區(qū)閾值和顯示器),第二圖示符逐漸擴大。在操作員的手位于死區(qū)閾值處的點處,第二圖示符在尺寸上等同于第一圖示符。該實施方式的圖示符將圖示符的同中心元素的演進示出為操作員的手從其開始點向前朝著將死區(qū)與活動區(qū)分離的死區(qū)閾值的移動。當手接近閾值時,圖示符的內部“露齒”部分擴大,以及這樣布置,以便當手到達閾值位置時,內部圖示符和(靜態(tài))外部圖示符精確匹配。
[0196]當操作員將手從死區(qū)移開并且遠離顯示器時,第二圖示符在第一圖示符內部在尺寸上收縮,但總是與第一圖示符保持同心,以及保持在顯示器的中央。至關重要的,僅將操作員的手運動的Z分量映射到圖示符的比例縮放,而伴隨手運動的X分量和y分量沒有貢獻。
[0197]當操作員的手遍歷前面的死區(qū)閾值、越過而進入活動區(qū)時,使回推機制參與進來。手的相對z軸位置(從閾值測量的)執(zhí)行比例縮放函數,并且結果值用于實現(xiàn)數據幀及其側向鄰居的z軸位移,以便幀的呈現(xiàn)圖像被看見從顯示器后退。于是,鄰近數據幀也從顯示空間的邊緣“填充”而變得可見。當幀所位于的平面遠離相機而移動時,合成相機的恒定角范圍幾何地“捕捉”幀所位于的更多個平面。連續(xù)地更新Z位移,以便當操作員將手向著顯示器推和將手向著自己往回拉時,感知到直接響應其運動而后退和接近的幀的側向集合。
[0198]作為由相應的回推引起的數據幀的第一相對z軸位移的示例,數據幀的呈現(xiàn)圖像被看見從顯示器后退,以及鄰近數據幀從顯示空間的邊緣“填充”而變得可見。將包括多個附加的共面數據幀的鄰近數據幀邏輯地布置在可見幀的左邊和右邊,間隔一致并且以最適中的間隙各自與其緊鄰的鄰居相分離。作為由相應的回推引起的數據幀的第二相對z軸位移的示例,考慮第一相對Z軸位移,并且假設從導致第一相對Z軸位移的那個推起進一步推操作員的手(沿Z軸向顯示器及遠離操作員進一步推),數據幀的呈現(xiàn)圖像被看見從顯示器進一步后退,以便額外的鄰近數據幀從顯示空間的邊緣進一步“填充”而變得可見。
[0199]同時,成對的同中心圖示符現(xiàn)在呈現(xiàn)修改后的反饋:在操作員的手在活動區(qū)時,第二圖示符從基于比例縮放的反作用切換到旋轉反作用,在旋轉反作用中,手到閾值的物理z軸位移被映射到正的(在平面中)角度位移。在指示在超過死區(qū)閾值點(沿z軸朝向顯示器和離開操作員)的死區(qū)中的身體回推姿態(tài)的圖示符的示例中,圖示符圖示了一旦操作員的手已越過了死區(qū)閾值時圖示符的演進-即,當已主動使回推機制參與進來時。因此,第二圖示符的順時針旋轉和逆時針旋轉可視地指示操作員的手向著顯示器的移動和遠離顯示器的移動(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒”元素為手相對于閾值的偏移的線性函數,從而將線性運動轉換成旋轉表示。
[0200]因此,在該實施方式中,第二圖示符的遞增順時針旋轉可視地指示手沿z軸向顯示器的移動的附加第一遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒”元素旋轉與手到閾值的位移的線性函數對應的第一數目。第二圖示符的遞增順時針旋轉可視地指示手沿z軸向顯示器的移動的附加第二遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒”元素旋轉與手到閾值的位移的線性函數對應的第二數目。另外,第二圖示符的遞增順時針旋轉可視地指示手沿Z軸向顯示器的移動的第三遞增(同時,如以前一樣,第一圖示符提供靜態(tài)的參考狀態(tài)),使得圖示符的“露齒”元素旋轉與手到閾值的位移的線性函數對應的第三數目。
[0201]在該樣本應用中,當操作員的手在活動區(qū)中時,使第二級維的靈敏度參與進來:再次通過可能的比例縮放函數,將手的側向(X軸)運動映射到水平幀序列的X位移。如果比例縮放函數是正的,則效果為以下之一:操作員的手的位置“跟隨”,以及操作員感覺其正在左右滑動幀。作為由身體的側向運動引起的數據幀的側向X軸位移的示例,數據幀從左向右滑動,使得特定的數據幀通過顯示空間的左邊緣從視圖中消失或部分消失,而另外的數據幀從顯示空間的右邊緣填充。
[0202]最后,當操作員使其手退出手掌向前的姿態(tài)(例如,通過將手閉合成拳),回推交互終止,以及將幀集合快速返回到其原始z限位裝置(即與顯示器共面)。同時,側向調整幀集合以實現(xiàn)單個幀與顯示器的X —致;結束因而顯示器居中的幀是在回推終止的一剎那最靠近同中心的圖示符的中心的任何幀:最近的X限位裝置。可見,這里將圖示符結構用作選擇標線的第二功能,但是實施方式不限于如此。為了提供“彈簧承載返回”的可視感,通常允許幀集合的Z位置和X位置在短時間間隔內前進到其最終的與顯示器相一致的值。
[0203]該示例中所采用的回推提供了以下有效的控制形式:(I)通過沿直的視覺上的視線一深度維一可變地對聚集的數據集進行位移來獲取認知上有價值的“鄰近背景”,從而使更多的數據集進入視圖(為了換取使數據集的任意給定部分的角范圍減小);(2)以熟悉的“滾動”感,通過沿其自然的水平維對側向排列的數據集進行位移來獲取鄰近背景,從而保持數據的任意給定部分的角范圍,但是用舊數據的可見性來換取新數據的可見性;(3)通過快速且維約束的導航來選擇數據集的離散化的元素。
[0204]在實施方式的回推的另一示例中,操作員緊挨著腰部顯示設備而站,顯示設備的活動表面位于與地面平行的水平平面內。這里,以與之前示例的方式相同的方式來建立坐標系統(tǒng):顯示表面位于X-Z平面,以便與物理重力矢量反向地對準表示表面法線的I軸。
[0205]在示例物理場景中,其中,將身體水平保持在類似平板的顯示表面(未示出)之上,身體是操作員的手,但本實施方式不限于如此?;赝平换ナ请p邊的,使得具有上側死區(qū)閾值和下側死區(qū)閾值。另外,用上側活動區(qū)域中的離散空間限位裝置(例如,“第一限位裝置”、“第二限位裝置”、“第三限位裝置”、“第四限位裝置”)以及下側活動區(qū)域中的離散空間限位裝置(例如,“第一限位裝置”、“第二限位裝置”、“第三限位裝置”、“第四限位裝置”)提供了回推動作訪問的線性空間。實施方式的交互空間被配置成使得包括上側死區(qū)和下側死區(qū)的相對小的死區(qū)居中在使回推參與進來的豎直(y軸)位置處,同時使活動區(qū)域在死區(qū)之上而活動區(qū)域在死區(qū)之下。
[0206]操作員正與堆棧中已被解析到離散平行平面的示例數據集一起工作,其中,該離散平行平面為數據幀??梢砸詳祿硎镜奈锢憩F(xiàn)實的自然結果(例如,來自斷層掃描的離散切片,三維集成電路的多個層等)的方式來布置數據幀,或者因為分離數據或使數據離散化(例如,以多個光譜帶獲取的衛(wèi)星圖,地理地組織的在分層中具有每十年的數據的普查數據等)是合乎邏輯的或富含信息的。數據的可視表示還可以是靜態(tài)的或包括動態(tài)元素。
[0207]在未使回推功能性參與進來期間,單個層被認為是“當前的”并且被顯示器以可視的突出來表示,以及被感知為與顯示器物理上相一致。在該示例中,當前層之上和之下的層未可視地顯現(xiàn)(盡管使用緊湊的插圖來指示其存在)。
[0208]操作員在顯示器上方展開其閉合的右手;當操作員打開手時一手指向前伸展,拇指向左,并且手掌向下指(翻譯:r~~~>:vx翻譯成111 |-:νχ])—使回推系統(tǒng)參與進來。在短暫的間隔(例如200毫秒)期間,鄰近當前層的一些層以差別可見度逐漸增強;用模糊濾鏡和其“嚴重性”取決于該層到當前層的順序距離的透明度,在下方或在上方合成每個層。
[0209]例如,當使回推系統(tǒng)參與進來時,以差別可見度逐漸增強與當前層(例如數據幀)鄰近的層(例如數據幀)。在該示例中,堆棧包括能夠使用回推系統(tǒng)進行遍歷的眾多數據幀(適合于數據幀的數據集的任意數目)。
[0210]同時,出現(xiàn)從之前示例中已熟悉的同中心反饋圖示符;在這種情況下,配置交互,使得小的死區(qū)居中在使回推參與進來處的垂直(y軸)位置處,同時使活動區(qū)域均在死區(qū)之上和在死區(qū)之下。該布置為“恢復”原始層提供了輔助。在這種情況下,圖示符伴隨有指示與相繼層的定向接近的附加的簡單圖形。
[0211]當操作員的手保持在死區(qū)中時,不發(fā)生層堆棧的位移。圖示符呈現(xiàn)了與之前示例中的行為相同的“預備”行為,其中,當手接近區(qū)域的兩個邊界中的任意一個時,內部圖示符逐漸增大(當然,這里的行為是雙邊的和對稱的:在手的開始y位置處,內部圖示符處于最小尺寸,以及無論手上移或下移,內部圖示符向著與外部圖示符一致而逐漸增大)。
[0212]當操作員的手向上移動超過死區(qū)的上平面時,內部圖示符與外部圖示符相結合,且像以前一樣,手在那個取向的進一步移動導致內部圖示符的逆時針旋轉運動。同時,層堆棧開始“向上平移”:在原始當前層在上的那些層呈現(xiàn)更大的透明度和模糊度;原始當前層本身變得更加透明和更加模糊;并且在原始當前層之下的層向更多的可見性和更少的模糊度移動。
[0213]在堆棧的向上平移的另一示例中,當與當前之前的層鄰近的層變得與當前之前的層一樣可見時,當前之前的層呈現(xiàn)更大的透明度(在該示例中變得不可見)。而且,當堆棧向上平移時,與目前當前層鄰近的層以差別可見度逐漸增強。如以上所描述的,堆棧包括能夠使用回推系統(tǒng)進行遍歷的眾多數據幀(適合于數據幀的數據集的任何數目)。[0214]用真實世界的距離(B卩,如以房間坐標系所測量的,操作員的手離其初始位置的位移)與相繼層間的邏輯距離之間的映射來對層堆棧進行配置。當然,與接近圖形的瞬時外表一樣,層堆棧的翻譯是該映射的結果,同時,其指示(首先)顯示平面與當前層之間的逐漸增大的距離;其還指示顯示平面目前在當前層之下。
[0215]繼續(xù)手的運動,并且層堆棧終于通過當前層和正好在下面的下一層跨顯示平面的位置;一旦超過該點,接近圖形改變成指示顯示平面現(xiàn)在高于當前層:“當前層狀態(tài)”現(xiàn)在已被分配給下一更低的層。一般,當前層總是最靠近物理顯示平面的那個層,并且是當操作員從回推系統(tǒng)中脫離出來時將被“選擇”的那個層。
[0216]當操作員繼續(xù)舉起手時,使每個連續(xù)層向著顯示平面出現(xiàn),從而逐漸地變得更加可分辨,獲得與顯示平面的瞬時一致,然后向有利于下一更低層的透明度和模糊度返回。當操作員使其手的運動的取向相反,使其向下時,則使過程相反,以及內部圖示符順時針旋轉。當手終于通過死區(qū)時,隨著原始當前層與顯示平面的精確的y對準,堆棧停止;然后,堆棧的y移動重新繼續(xù),使在原始當前層之上的那些平面進入相繼的焦點。操作員的整體感受是其正有力地和簡單地用手向下壓或向上拔層的堆棧。
[0217]當最終操作員通過閉合手(或者以其它方式改變其姿態(tài))來釋放回推時,系統(tǒng)將堆棧“彈”到限位的與顯示平面的I軸對準中,當退出回推時將最靠近顯示平面的任意層留下作為當前層。在該位置重新排列的短暫間隔期間,所有其它層逐漸減弱成完全透明,以及反饋圖示符平滑地消失。
[0218]該示例的數據集的離散化元素(這里是層)沿主要的回推(深度)軸而分布;以前,元素(數據幀)沿垂直于深度軸的維是共面的并且被側向排列。與透明度技術的使用一起,本布置意味著數據經常是疊加的一一些層是通過其它層而被觀看的。該示例中的操作員仍然還享有:(1)用于快速獲得鄰近背景的設備(在當前層之上和在當前層之下的層的內容是什么?);以及(2)用于高效地在數據集中的平行的、堆棧的元素當中選擇和切換的設備。當操作員試圖(I)單獨地,死區(qū)的提供允許操作員確信地返回到原始選擇的層。在操縱的整個過程中,對兩個平移維度的抑制使得能夠有速度和準確度(對于大多數人,垂直地平移手而沒有側向漂移是相當困難的,但是,如所描述的形式簡單地忽略任何這樣的側向位移)。
[0219]為了某些目的,應該指出的是,配置回推輸入空間使得死區(qū)具有無限小的范圍可能是方便的;然后,一旦使回推參與進來,也使其活動機制參與進來。在本文提出的第二示例中,這將意味著與任何其它層無差別地對待原始當前層——一旦已開始回推動作。根據經驗,死區(qū)的線性范圍是操作員偏好的問題。
[0220]在該第二示例中描述的形式適用于各種各樣的顯示器,既包括二維設備(不管是投影的還是發(fā)光的),也包括三維設備(不管是否為自動立體的,還是是否為航空圖像生成的等)。在后者的高質量實現(xiàn)一即三維一的情況下,介質的某些特性能夠巨大地幫助成為回推的基礎的感知機制。例如,視差、光學景深、和眼調節(jié)現(xiàn)象的組合能夠允許多個層同時被理解領會,因此消除了嚴格地使遠離顯示平面的層減弱和模糊的需要。另外,不管顯示器的取向,應用上述形式:如在示例中一樣,其可以主要是水平的;或者可以正如有用地被安裝在墻上的眼高度處。
[0221]對該第二示例的情形的擴展描述了雙手操縱的有用性。在某些應用中,需要側向平移或者整個層堆?;蛘邌蝹€層(即在X和Z取向上)。在實施方式中,例如通過以下形式,操作員的其它一即非回推一手能夠實現(xiàn)該變換:在該形式中,使手與顯示表面緊密接近允許數據集的層之一被“四處滑動”,使得其x-z位置的偏移跟隨手的偏移。
[0222]操作員通常可發(fā)現(xiàn)同時采取側向平移和回推操作是方便的和容易操作的。也許以下提議不是完全不真實的:將連續(xù)域的操縱分配給一只手以及將離散類型的工作分配給另一手可以對優(yōu)化認知負載有作用。
[0223]有益的是,考慮在SOE下的回推的又一示例,其中,在該SOE中沒有數據集的自然的、可視的方面。代表性的是監(jiān)視多個音頻通道的問題以及間歇地從集合當中選擇一個的問題?;赝葡到y(tǒng)的應用使得能夠進行在為聽覺輸出而不是為視覺輸出而供應的環(huán)境中的這樣的任務;形式與之前示例的形式非常相似。
[0224]站著的或坐著的操作員正聆聽單個的音頻通道。概念上,該音頻存在于幾何地包括其耳朵的垂直面一稱為“聽覺面” 一中;音頻的附加通道存在于平行于聽覺面的平面中,但是沿z軸向前和向后位移。
[0225]打開手,保持在其前方九英寸處,同時手掌面向下,操作員使回推系統(tǒng)參與進來。在若干最接近的平面中的音頻差別地逐漸增強;每個音頻的音量相反地取決于其離當前通道的平面的順序距離。實際上,感知上不現(xiàn)實的是,允許多于兩個或四個的附加通道變得可聽得見。同時,“音頻圖示符”逐漸增強以提供接近反饋。初始地,當操作員的手保持在死區(qū)中時,圖示符幾乎聽不到兩音高和弦(初始和諧地)。
[0226]當操作員在死區(qū)中向前或向后移動其手時,音頻通道的音量保持固定,而圖示符的音量增大。當手越過死區(qū)的前面閾值或后面閾值時,圖示符到達其“活動”音量(其仍然服從于當前通道的音量)。
[0227]一旦操作員的手開始在活動區(qū)域中移動一比方說,在向前的取向上——獲得對音頻通道的預期作用:將當前通道平面推得離聽覺面更遠,并且其音量(以及還在更遠的前方的那些通道的音量)逐漸地減小。另一方面,當每個“背面的”通道平面接近聽覺面時,其音量增大。
[0228]同時,音頻圖示符已切換了模式。手的向前的行進伴隨著音調之一的頻率的上升;在“中途點”,當聽覺面將一個音頻通道平面及鄰近面一分為二時,音調形成準確的五度音程(數學上,其應該是三全音程間隔,但是存在避免這個的大量原因)。當手更遠地向前繼續(xù)時,可變音調的頻率繼續(xù)上升,直至操作員最終在音調精確地跨越八度音程的點處“到達”下一音頻面為止。
[0229]繼續(xù)聽各個通道,操作員向前或向后平移手以依次訪問每個通道。最后,操作員僅僅閉合其手以選擇一個通道,終止回推進程并使音頻平面集合“彈”到對準中。其它通道(未選擇的)逐漸減弱到聽不見,圖示符也一樣。
[0230]該示例已描述了關于回推應用的變型,其中,再次提供了相同的設備:訪問鄰近背景以及離散化數據元素的快速選擇(這里,單個音頻流)。該情形代替了聽覺反饋機制,以及尤其是利用了可靠的用于區(qū)分某些頻率間隔的人類能力的聽覺反饋機制,以向操作員提供關于其是否離目標通道足夠近以做出選擇的信息。在“聽得見的”信號僅僅間歇地呈現(xiàn)的語音通道的情況下,這尤其重要;即使當通道本身已變成無聲時,音頻反饋圖示符的連續(xù)特性也使其呈現(xiàn)而且清楚。
[0231]應當指出,如果本示例中的SOE包括空間化音頻的能力,則可以極大地提高對相繼音頻層后退到向前距離中以及從后面接近(反之亦然)的感受。另外,與在操作員前面的隨后層和在操作員后面的先前層一起,更確切地將選擇的音頻面“定位”在操作員的位置處的機會是有效地可用的。
[0232]音頻圖示符的其它例示是可能的,并且實際上各種通道內容的包括其頻譜分布的特性,趨向于指示哪種圖示符將是最清楚地可區(qū)分的。通過示例,另一種音頻圖示符格式保持不變的音量,但是采用周期性的滴答聲,而滴答聲之間的間隔與聽覺面和最靠近的音頻通道平面之間的接近度成比例。最后,在某些情形下,并且取決于操作員的敏銳度,可能的是,使用回推而根本沒有反饋圖示符。
[0233]參考回推機制,當在數據集的表示中的空間限位裝置的數目和密度增加趨向非常大時,空間及其參數化變得有效地連續(xù)一就是說,非限位的。回推在這種極端下仍然保持有效,部分是因為可以將在回推的每次調用之前的數據集的“初始狀態(tài)”視為被簡單實現(xiàn)為死區(qū)的臨時限位裝置。
[0234]這種非定位的回推的應用可以在與無限(或至少充分地)可放大的圖有關的構思中發(fā)現(xiàn)。放大功能的回推控制將手位置的位移與仿射標度值相關聯(lián),使得當操作員向前或向后推其手時,放大的程度減小或增大(分別地)。但是,因為位置到放大參數的直接映射確保了使控制手返回到死區(qū)也實現(xiàn)了放大值到其初始狀態(tài)的返回,所以原始的、預回推的放大狀態(tài)總是能夠容易地訪問的。
[0235]以上示例中描述的每個場景提供了對回推系統(tǒng)的顯著方面及其在SOE下的使用的描述。還應該理解的是,由于通過允許指導人類移動的特定類型的感知反饋所能夠得到的效率和精確度,本文中描述的動作中的每個能夠立即被準確地和綜合地采用。在其它場合中,操作員還發(fā)現(xiàn)在大哥連續(xù)回推“進程”中保持數十秒是有用的:在更長時間間隔上的回推為瀏覽的和背景獲取的目標工作得很好。
[0236]以上描述的示例采用了物理輸入(姿勢)到表示空間的線性映射:真實空間中的A單元對控制手進行平移總是導致表示空間中的B單元(主要的)的平移,而不管在其上采取A平移的真實空間的位置。然而,其它映射是可能的。特別的,大多數人類操作員享受的良好的肌肉運動控制的程度允許使用非線性映射,其中,例如,與閾值附近的姿態(tài)運動可翻譯成沿著參數化的維的位移相比,遠離活動閾值的差分姿勢平移可翻譯成沿著參數化的尺度的更大的位移。
[0237]一致的虛擬/顯示以及物理空間
[0238]本系統(tǒng)可提供這樣的環(huán)境,其中被描繪在一個或多個顯示裝置(“屏幕”)上的虛擬空間被處理為與系統(tǒng)的一個或多個操作者所處的物理空間相一致。這里描述了這種環(huán)境的一種實施方式。該當前實施方式包括固定位置處的三個由投影儀驅動的屏幕,由單個臺式計算機驅動,并使用這里所述的姿勢詞匯和接口系統(tǒng)來控制。然而,請注意:所描述的技術支持任何數目的屏幕;這些屏幕可以是移動的(而非固定的);這些屏幕可由很多獨立的計算機同時驅動;且整個系統(tǒng)可通過任何輸入裝置或技術來控制。
[0239]本公開中描述的接口系統(tǒng)應具有確定屏幕在物理空間中的尺度、取向和位置的方法。給定此信息,系統(tǒng)能夠將這些屏幕所處(且系統(tǒng)的操作者所處)的物理空間作為投影動態(tài)地映射到在系統(tǒng)上運行的計算機應用的虛擬空間中。作為該自動映射的一部分,系統(tǒng)還根據由系統(tǒng)掌管的應用的需要、以多種方式翻譯這兩個空間的比例、角度、深度、尺度和其它空間特性。
[0240]物理和虛擬空間之間的這種連續(xù)翻譯使得多種接口技術的一致和普遍使用成為可能,這些接口技術在現(xiàn)有的應用平臺上難以實現(xiàn)或者必須針對在現(xiàn)有平臺上運行的每個應用個別地實施。這些技術包括(但不限于):
[0241](I)使用“精確指點”——在姿勢接口環(huán)境中使用手,或使用物理指點工具或裝置——作為普遍和自然的接口技術。
[0242](2)對屏幕的移動或重新定位的自動補償。
[0243](3)圖形渲染,其依操作者位置而變,例如模擬視差位移以增強深度感。
[0244](4)在屏幕顯示中包括物理對象——考慮真實世界位置、取向、狀態(tài)等。例如,站在大的不透明屏幕前方的操作者既能看到應用圖形也能看到在屏幕后方(并且可能正在移動或改變取向)的比例模型的真實位置的表示。
[0245]重要的是,注意精確指點不同于在基于鼠標的窗口接口和大多數其他現(xiàn)代系統(tǒng)中使用的抽象指點。在那些系統(tǒng)中,操作者必須學習管理虛擬指點器和物理指點裝置之間的翻譯,且必須在這兩者之間有認知力地映射。
[0246]相比之下,在本公開中所述的系統(tǒng)中,無論從應用還是用戶角度,虛擬和物理空間之間沒有差異(除了虛擬空間更適合于數學變換),因此操作者不需要有認知力的翻譯。
[0247]由這里所述的實施方式提供的精確指點的最接近模擬是觸摸屏(例如,可在很多ATM機上看到)。觸摸屏提供了屏幕上的二維顯示空間與屏幕表面的二維輸入空間之間的一一映射。以類似的方式,這里所述的系統(tǒng)提供了顯示在一個或多個屏幕上的虛擬空間與操作者所處的物理空間之間的靈活映射(可能但不必須是一一映射)。不管模擬的實用性如何,都值得理解該“映射方法”擴展到三維、任意大的架構環(huán)境以及多個屏幕不是無關緊要的。
[0248]除了這里所述的部件,系統(tǒng)還可執(zhí)行實現(xiàn)環(huán)境的物理空間與每個屏幕上的顯示空間之間的連續(xù)的系統(tǒng)級映射(可能已通過旋轉、平移、比例縮放或其他幾何變換加以修改)的算法。
[0249]渲染堆棧,其獲取計算對象和映射,并輸出虛擬空間的圖形表示。
[0250]輸入事件處理堆棧,其獲取來自控制系統(tǒng)的事件數據(在本實施方式中,是來自系統(tǒng)和鼠標輸入的姿勢和指點數據),并將來自輸入事件的空間數據映射到虛擬空間中的坐標。然后,經翻譯的事件被傳送到運行的應用。
[0251]“膠層”,其允許系統(tǒng)掌管在局域網上的若干計算機之間運行的應用。
[0252]在本文中將空間連續(xù)輸入系統(tǒng)的實施方式描述為包括基于網絡的數據表示、轉變和交換,包括稱作“等離子體”的系統(tǒng),如下面詳細描述的,系統(tǒng)包括子系統(tǒng)“色拉”、“蛋白質”和“池”。池和蛋白質是本文中所描述的用于封裝將要在進程之間或者跨越進程共享的數據的方法和系統(tǒng)的部件。除了蛋白質和池之外,這些機制還包括色拉。通常,色拉提供最低水平的用于進程間交換的數據定義,蛋白質提供中等水平的用于查詢和過濾的結構和鉤子,而池則提供高水平的組織和訪問語義。色拉包括用于有效的不依賴于平臺的數據表示和訪問的機制。蛋白質提供使用色拉作為有效載荷的數據封裝和傳輸方案。池在進程之內、在局部進程之間、跨越遠程或分布式進程之間的網絡并且通過較長期(例如盤上等)存儲提供蛋白質的結構化并且靈活的聚集、排序、過濾和分發(fā)。[0253]本文中所描述的實施方式的配置和實現(xiàn)包括幾個構造,它們一起使大量能力成為可能。例如,本文所描述的實施方式提供了數據在大量進程之間的有效交換。本文所描述的實施方式還提供了靈活的數據“定型”和結構,以便支持數據的廣泛變化的種類和使用。此外,本文所描述的實施方式包括全都由基本上類似的應用程序接口(API)驅動的用于數據交換的靈活機制(例如局部存儲器、盤、網絡等)。而且,所描述的實施方式使得以不同的編程語言編寫的進程之間的數據交換成為可能。另外,本文中所描述的實施方式使得高速緩存和聚集狀態(tài)的自動維護成為可能。
[0254]圖1是根據實施方式的包括使用色拉、蛋白質和池的數據表示的處理環(huán)境的框圖。在本文中提供的實施方式的主要構造包括色拉(色拉的復數)、蛋白質和池。如本文中所描述的,色拉包括用于有效的不依賴于平臺的數據表示和訪問的機制。如本文中詳細描述的,蛋白質提供數據封裝和傳輸方案,并且實施方式的蛋白質的有效載荷包括色拉。如本文中詳細描述的,池提供蛋白質的結構化且靈活的聚集、排序、過濾和分發(fā)。池在進程之內、在局部進程之間、跨越遠程或分布式進程之間的網絡并且通過較長期(例如盤上等)存儲借助于蛋白質提供對數據訪問。
[0255]圖10是根據實施方式的蛋白質的框圖。蛋白質包括長度頭、描述和攝取。如下面詳細描述的,描述和攝取中的每個包括一個色拉或多個色拉。
[0256]圖11是根據實施方式的描述的框圖。如下面詳細描述的,描述包括偏移、長度和色拉。
[0257]圖12是根據實施方式的攝取的框圖。如下面詳細描述的,攝取包括偏移、長度和色拉。
[0258]圖13是根據實施方式的色拉的框圖。如下面詳細描述的,色拉包括類型頭和特定于類型的數據。
[0259]圖14A是根據實施方式的池中的蛋白質的框圖。蛋白質包括長度頭(“蛋白質長度”)、描述偏移、攝取偏移、描述和攝取。描述包括偏移、長度和色拉。攝取包括偏移、長度和色拉。
[0260]本文中所描述的蛋白質是用于封裝數據的機制,數據需要在進程之間共享,或需要跨越總線或網絡或其它處理結構移動。作為示例,蛋白質提供了用于傳輸和操縱數據的改進機制,所述數據包括對應于用戶接口事件或與用戶接口事件相關聯(lián)的數據;特別地,實施方式的用戶接口事件包括上面所描述的姿勢接口的用戶接口事件。作為另外的示例,蛋白質提供了用于傳輸和操縱數據的改進機制,所述數據包括但不限于圖形數據或事件以及狀態(tài)信息,這只是舉幾個示例。蛋白質是結構化的記錄格式以及用于操縱記錄的方法的相關聯(lián)的集合。本文中所使用的記錄的操縱包括:將數據放到結構中、將數據從結構中取出以及查詢數據的格式和存在。蛋白質被配置成通過以各種計算機語言書寫的代碼被使用。蛋白質配被置成通過以多種計算機語言編寫的代碼來使用。如本文中所描述的,蛋白質還被配置成用于池的基本構筑塊。此外,蛋白質被配置成天然地能夠在處理器之間并跨越網絡移動,同時維持它們包括的數據完整。
[0261]與傳統(tǒng)的數據傳輸機制相反,蛋白質是未定型的。在未定型的同時,蛋白質提供了強大且靈活的模式匹配設施,在其上實施“類型相似”的功能。如本文中所描述的被配置的蛋白質還固有地為多個點(盡管作為多點傳輸的子集容易實現(xiàn)點對點形式)。另外,蛋白質定義“通用”記錄格式,該記錄格式例如在存儲器中、盤上和線(網絡)上格式之間相同(或僅在執(zhí)行的可選優(yōu)化的類型方面不同)。
[0262]參照圖15和圖19A,實施方式的蛋白質是字節(jié)的線性序列。在這些字節(jié)之內封裝有描述列表和被稱為攝取的關鍵值對的集合。描述列表包括任意精細但卻高效可過濾的每個蛋白質事件描述。攝取包括關鍵值對的集合,關鍵值對包括蛋白質的實際內容。
[0263]蛋白質與關鍵值對以及關于網絡友好和多點數據交換的一些核心思想的相關性,與給予“元組(tuple)”的概念特權的較早系統(tǒng)(例如Linda、Jini)共享。蛋白質與面向元組的系統(tǒng)在幾個主要方面不同,包括使用描述列表以提供標準的可優(yōu)化的模式匹配基片。蛋白質還與面向元組的系統(tǒng)在適合于多種存儲和語言構造的記錄格式的嚴格規(guī)范連同對該記錄格式的“接口”的幾個具體實施方面不同。
[0264]轉到蛋白質的描述,蛋白質的前四個或八個字節(jié)規(guī)定了蛋白質的長度,在一種實施方式中,蛋白質的長度必須是16個字節(jié)的倍數。該16字節(jié)粒度確保了字節(jié)準直和總線準直效能在現(xiàn)代硬件上是可實現(xiàn)的。不未被自然“四倍長字校直”的蛋白質被填充以任意字節(jié),以便它的長度是16字節(jié)的倍數。
[0265]蛋白質的長度部分具有以下格式:呈大端格式的規(guī)定長度的32位,其中四個最低階位充當旗標以指示宏觀水平蛋白質結構特性;繼之以32個另外的位,如果蛋白質的長度大于2 Λ 32字節(jié)的話。
[0266]實施方式的16字節(jié)準直附帶條件意味著前四個字節(jié)的最低階位作為旗標可用。而且因此前三個低階位旗標分別指示蛋白質的長度可以用前四個字節(jié)表示還是需要八個,蛋白質使用大端還是小端字節(jié)排序,以及蛋白質使用標準還是非標準結構,但是蛋白質不限于此。第四個旗標位被保留以供將來使用。
[0267]如果八字節(jié)長度旗標位被設置,則蛋白質的長度通過以下計算:讀取下四個字節(jié),并且使用它們作為大端的八字節(jié)整數的高階字節(jié)(其中已經讀取的四個字節(jié)供應低階部分)。如果小端旗標被設置,則蛋白質中的所有二進制數值數據都將被解釋為小端(否則為大端)。如果非標準旗標位被設置,則蛋白質的剩余部分不符合下面將要描述的標準結構。
[0268]在本文中不會進一步討論非標準蛋白質結構,除了要說的是,關于對使用蛋白質和池的系統(tǒng)程序員可用的非標準蛋白質格式,存在用于描述和同步化的各種方法,并且當空間或計算周期受到約束時,這些方法是可以使用的。例如,實施方式的最短蛋白質是十六字節(jié)。標準格式的蛋白質不能將任何實際的有效載荷數據裝配到這十六個字節(jié)中(其中的最大份額已經被移交以描述蛋白質的組成部分的位置)。但是非標準格式的蛋白質就能夠可以想象地使用16個字節(jié)中的12個用于數據。交換蛋白質的兩個應用可以相互決定它們發(fā)出的任何16字節(jié)長的蛋白質總是包括例如表示來自實時模擬數字轉換器的128位傳感器值的12個字節(jié)。
[0269]緊跟著長度頭,在蛋白質的標準結構中,出現(xiàn)多于兩個可變長度整數。這些數字分別規(guī)定了對描述列表中的第一元素以及第一個關鍵值對(攝取)的偏移。這些偏移在本文中也分別被稱為描述偏移和攝取偏移。這些數的每四倍的字節(jié)順序由蛋白質端旗標位規(guī)定。對于每個而言,前四個字節(jié)的最高有效位確定數字是四個還是八個字節(jié)寬。如果最高有效位(msb)被設置,則前四個字節(jié)是雙字(八字節(jié))數字的最高有效字節(jié)。在本文中這被稱為“偏移形式”。指向描述和對的單獨偏移的使用允許描述和對通過不同的代碼路徑處理,使得例如與描述模式匹配和蛋白質裝配相關的特殊優(yōu)化成為可能。在蛋白質的開始處的這兩個偏移的存在還允許幾個有用的優(yōu)化。
[0270]大多數蛋白質不會如此大以至于需要八字節(jié)的長度或指針,所以一般而言,長度(具有旗標)和兩個偏移數字只會占據蛋白質的前三個字節(jié)。在許多硬件或系統(tǒng)體系結構上,超過第一個的一定數目字節(jié)的提取或讀取是“免費的”(例如16個字節(jié)正好占用與單個字節(jié)相同數目的時鐘周期以跨越單元處理器的主總線牽引)。
[0271]在很多實方式中,允許蛋白質內部的特定于實施的或特定于環(huán)境的緩存或元據都是有用的。偏移的使用允許在蛋白質的開始附近創(chuàng)建任意尺寸的“洞”,其中可放置這樣的元數據??衫冒藗€字節(jié)的元數據的實施在許多系統(tǒng)體系結構上免費得到那些字節(jié),其中每次提取蛋白質的長度頭。
[0272]描述偏移規(guī)定蛋白質的開始與第一個描述條目之間的字節(jié)數。每個描述條目包括到下一個描述條目的偏移(當然以偏移格式),繼之以可變寬度的長度字段(又是以偏移格式),繼之以色拉。如果沒有進一步的描述,則偏移M定是四個字節(jié)的零。否則,偏移規(guī)定這個描述條目的開始與下一個描述條目之間的字節(jié)數。長度字段以字節(jié)的方式規(guī)定色拉的長度。
[0273]在大多數蛋白質中,每個描述都是串,以色拉串的方式被格式化:四字節(jié)長度/類型頭,其中最高有效位被設置并且只有較低的30位用于規(guī)定長度,繼之以頭的指示數目的數據字節(jié)。通常,長度頭從蛋白質取其端。字節(jié)被假定編碼UTF-8字符(并且這樣一來——注意——字符數就不一定與字節(jié)數相同)。
[0274]攝取偏移規(guī)定了蛋白質的開始與第一個攝取條目之間的字節(jié)數。每個攝取條目包括到下一個攝取條目的偏移(以偏移格式),又繼之以長度字段和色拉。攝取偏移在功能上等同于描述偏移,除了它指向下一個攝取條目而不是下一個描述條目之外。
[0275]在大多數蛋白質中,每個攝取具有色拉cons類型,其包括雙值列表,一般用作關鍵/值對。色拉cons記錄包括:四字節(jié)長度/類型頭,其中第二最高有效位被設置并且只有較低的30位用于規(guī)定長度;到值(第二)元素開始的四字節(jié)偏移;四字節(jié)長度的關鍵元素;用于關鍵元素的色拉記錄;四字節(jié)長度的值元素;以及最后用于值元素的色拉記錄。
[0276]一般而言,cons關鍵字是色拉串??缭綆讉€蛋白質和色拉cons長度和偏移字段的數據的重復提供了用于細化和優(yōu)化的又一次機會。
[0277]如上所述,根據實施方式使用的用于將定型的數據嵌入蛋白質內部的構造是被稱為“色拉”的標記字節(jié)序列規(guī)范和抽象。色拉是表示(可能是聚集的)定型數據的字節(jié)的線性序列,并且與特定于編程語言的API相關聯(lián),其允許色拉在存儲器空間、存儲介質和機器之間創(chuàng)建、修改和四處移動。色拉類型方案旨在可擴展并且盡可能重量輕,并且成為可以從任何編程語言使用的通用基片。
[0278]建立有效的大規(guī)模的進程間通信機制的愿望是色拉配置的驅動器。傳統(tǒng)的編程語言提供了在特定于進程的存儲器布局中工作良好的復雜數據結構和類型設施,但是當數據需要在進程之間移動或存儲在盤上時,這些數據表示總是損壞。色拉體系結構是用于進程間通信的第一基本上有效的多平臺友好的低水平數據模型。
[0279]但更重要的是,色拉被配置成連同蛋白質一起影響并啟用未來計算硬件(微處理器、存儲器控制器、盤控制器)的開發(fā)。對比如公共可用的微處理器的指令集合的幾個特定添加使得色拉可以甚至對于單進程、存儲器內數據布局變得與大多數編程語言中使用的方案一樣有效。
[0280]每個色拉包括可變長度類型頭繼之以特定于類型的數據布局。在例如支持C、C++和Ruby形式的全色拉功能的示例實施方式中,通過可從每種語言訪問的系統(tǒng)頭文件中定義的通用整數來指示類型。更加復雜和靈活的類型分辨功能也是可能的:例如通過通用對象ID和網絡查找的間接定型。
[0281]實施方式的色拉配置允許色拉記錄用作例如來自Ruby和C++兩者的語言友好方式的對象。C++編譯器外部的一套實用程序完整性檢查色拉字節(jié)布局,創(chuàng)建特定于單獨色拉類型的宏和頭文件,并且自動生成用于Ruby的綁定。結果,良好配置的色拉類型即使當從單個進程之內使用時也十分有效。進程的可訪問存儲器中任何地方的任何色拉都可以被尋址而沒有拷貝或“去串行化”步驟。
[0282]實施方式的色拉功能包括用于執(zhí)行以下中的一個或多個的API設施:創(chuàng)建特定類型的新色拉;創(chuàng)建或建立對來自盤上或存儲器內字節(jié)的色拉的語言特定引用;以特定于類型的方式將數據嵌入在色拉之內;查詢色拉的尺寸;從色拉之內檢索數據;克隆色拉;以及翻譯色拉之內數據的端和其它格式屬性。每個色拉都執(zhí)行上述行為。
[0283]圖14B/1和圖14B/2示出了根據實施方式的色拉頭格式。色拉的詳細描述如下。
[0284]每個色拉的內部結構都優(yōu)化類型分辨、對封裝數據的訪問以及用于該色拉實例的尺寸信息中的每個。在實施方式中,色拉類型的完全集合被設計得最小完全,并且包括:色拉串;色拉cons (亦即對);色拉列表;以及色拉數值對象,其自身表示被理解為半打排列或這種基本屬性的單獨數值類型的廣泛集合。任何色拉的其它基本性質是其尺寸。在實施方式中,色拉具有量化成四的倍數的字節(jié)長度;這些四字節(jié)字在本文中被稱為“四倍體”。一般而言,這樣的基于四的尺寸定位使得色拉與現(xiàn)代計算機硬件體系結構的配置良好配準。
[0285]實施方式中的每個色拉的前四個字節(jié)包括頭結構,其編碼類型描述和其它元信息,并且將特定類型意義歸因于具體位模式。例如,色拉頭的第一個(最高有效)位用于規(guī)定該色拉的尺寸(以四倍體字的長度計)是否遵循初始四字節(jié)類型頭。當這個位被設置時,可以理解的是,色拉的尺寸明確地記錄在色拉的下四個字節(jié)中(例如字節(jié)五至八);如果色拉的尺寸是這樣的,以至于不能以四個字節(jié)來表示(亦即,如果尺寸是或大于二的三十二次冪),那么色拉的初始四個字節(jié)的下一個最高有效位也被設置,這表示色拉具有八字節(jié)(而不是四字節(jié))長度。在這種情況下,檢查過程會發(fā)現(xiàn)存儲在順序字節(jié)五至十二中的色拉長度。另一方面,小數目的色拉類型意味著在許多情況下完全規(guī)定的典型位模式“留下未使用”四字節(jié)色拉頭中的許多位;并且在這樣的情況下這些位可以用于編碼色拉的長度,節(jié)省否則會需要的字節(jié)(五至八)。
[0286]例如,實施方式留下色拉頭的最高有效位(“長度跟隨”旗標)未設置,并且設置下一位以指示色拉是“wee cons”,并且在這種情況下色拉的長度(以四計)被編碼在剩余的三十位中。類似地,“wee串”用頭中的模式001來標記,其留下二十九位用于表示色拉串的長度;并且頭中的引導0001描述“wee列表”,其依靠二十八個可用長度表示位可以是高達二的二十八次冪個四倍體大小的色拉列表?!叭?或cons或列表)具有不同的頭中的位簽名,其中最高有效頭位必定被設置,因為色拉長度分開編碼在字節(jié)五至八(或十二,在極端情況下)中。注意,等離子體實施在色拉構造之時“決定”是使用這些構造的“wee”還是“全”版本(該決定基于作為結果的尺寸是否會“配合”可用的wee位),但是全對比于wee的細節(jié)相對于等離子體實施的用戶是隱藏的,用戶只知道和關心她正在使用色拉串或色拉cons或色拉列表。
[0287] 數值色拉在實施方式中由引導頭模式00001指示。隨后的頭位用于表示可能以任意排列進行組合的一組正交性質。實施方式使用但不限于五個這樣的字符位以指示數字是否是:(1)浮點;(2)復數;(3)無符號;(4) “寬”;(5) “粗短”((4) “寬”和(5) “粗短進行排列以指示八、十六、三十二和六十四位數據表示)。兩個另外的位(例如(7)和(8))指示封裝的數值數據是二、三或四元素矢量(其中兩個位為零表明數值是“一元素矢量”(亦即標量)。在這個實施方式中,第四個頭字節(jié)的八個位用于編碼封裝的數值數據的尺寸(以字節(jié)計而不是四倍體)。這個尺寸編碼被偏移一,以便它可以表示包括一和二百五十六字節(jié)以及之間的任何尺寸。最后,兩個字符位(例如(9 )和(10 )用于指示數值數據編碼單獨數值實體的陣列,其中的每一個具有由字符位(I)至(8)描述的類型。在陣列的情況下,單獨數值實體不是每個用另外的頭標記,而是包裝為連續(xù)的數據,其跟隨單個頭以及可能的明確色拉尺寸信息。
[0288]該實施方式提供了簡單有效的色拉復制(其可以實施為字節(jié)對字節(jié)拷貝)以及極其直接和有效的色拉比較(在這個實施方式中,當且僅當考慮序列的兩個色拉的組成部分
字節(jié)中的每一個--匹配時,這兩個色拉才相同)。這后一性質例如對于蛋白質體系結構的
有效實施是重要的,蛋白質體系結構的關鍵性和普遍的特征之一是搜索或‘匹配’蛋白質的描述列表。
[0289]進一步地,本文中的實施方式允許簡單且有效地構造聚集色拉形式(例如色拉cons和色拉列表)。例如,實施方式通過以下從兩部分色拉(其可以具有任何類型,包括它們自己聚集)建立色拉cons: (a)查詢每個部分色拉的尺寸;(b)分配尺寸等于兩個部分色拉的尺寸和頭加上尺寸結構所需的一個、兩個或三個四倍體之和的存儲器;(C)在前四個、八個或十二個字節(jié)中記錄色拉頭(加上尺寸信息);以及然后(d)依次將部分色拉的字節(jié)拷貝到緊接著后續(xù)的存儲器中。重要的是,這樣的構造例程不需要知道關于兩部分色拉的類型的任何東西;只有它們的尺寸(以及作為字節(jié)序列的可訪問性)要緊。相同的過程適用于色拉列表的構造,所述色拉列表是(可能地)異樣類型的任意許多子色拉的排序封裝。
[0290]作為存儲器內順序字節(jié)的色拉系統(tǒng)的基本格式的進一步結果結合“遍歷”活動——例如循環(huán)使用模式使用獲得對色拉列表中存儲的單獨色拉的順序訪問。表示蛋白質結構之內的描述和攝取的單獨色拉必須類似地遍歷。以令人暈倒的直接且有效的方式完成這樣的調度:為了 “到達”色拉列表中的下一個色拉,將當前色拉的長度添加到其存儲器內的位置,并且作為結果的存儲器位置等同地為下一個色拉的頭。這樣的簡化是可能的,因為色拉和蛋白質設計避免“間接”;不存在指針;相反地,數據簡單地以其全體存在就位。
[0291]關于色拉比較這一點,等離子體系統(tǒng)的完全實施必須承認跨越不同操作系統(tǒng)、CPU和硬件體系結構以及它們當中的不同且不兼容的數據表示方案的存在。大多數這樣的不同包括字節(jié)排序策略(例如小端對比于大端)和浮點表示;其它不同也存在。等離子體規(guī)范要求色拉所封裝的數據保證可解釋(亦即必須以從中檢查色拉的體系結構或平臺的自然格式出現(xiàn))。這個要求繼而表明等離子體系統(tǒng)自身對數據格式轉換負責。然而,規(guī)范僅規(guī)定,在色拉變得對可能檢查它的執(zhí)行進程“根本可見”之前發(fā)生轉換。因此達到單獨的實施,在該點它選擇執(zhí)行這樣的格式C轉換;兩個適當的方法是,色拉數據有效載荷一致于局部體系結構的數據格式(I)當單獨的色拉從它已被包裝在其中的蛋白質中“拉出”時,或者(2)對于同時在蛋白質中的全部色拉,當該蛋白質從它處于其中的池中提取時。注意,轉換規(guī)定考慮硬件輔助實施的可能性。例如,建立有明確等離子體能力的聯(lián)網芯片組可以基于接收系統(tǒng)的已知特性智能地并且在“傳輸時”執(zhí)行格式轉換。交替地,傳輸的過程可以將數據有效載荷轉換成規(guī)范格式,其中接收過程對稱地從規(guī)范轉換到“局部”格式。另一種實施方式執(zhí)行“在金屬”的格式轉換,意味著數據總是以規(guī)范格式存儲,即使在局部存儲器中也是,并且當數據從存儲器中檢索并放置在就近CPU的寄存器中時,存儲器控制器硬件自身執(zhí)行轉換。
[0292]實施方式的最小(和只讀)蛋白質實施包括利用蛋白質的一個或多個應用或編程語言中的操作或行為。圖14C是根據實施方式的用于使用蛋白質的流程圖650。操作開始于查詢652蛋白質的以字節(jié)計的長度。描述條目的數目被查詢654。攝取的數目被查詢656。通過指數檢索658描述條目。通過指數檢索660攝取。
[0293]本文中所描述的實施方式還定義了允許蛋白質被構造并填充以數據的基本方法、使一般任務對程序員更容易的助手方法以及用于創(chuàng)建優(yōu)化的鉤子。圖14D是根據實施方式的用于構造或生成蛋白質的流程圖670。操作開始于創(chuàng)建672新蛋白質。一系列的描述條目被附加674。攝取也被附加676。匹配描述的存在被查詢678,并且匹配攝取關鍵字的存在被查詢680。給定攝取關鍵字,攝取值被檢索682??缭矫枋鰣?zhí)行684模式匹配。在蛋白質的開始附近嵌入686非結構化的元數據。
[0294]如上所述,色拉提供最低水平的用于進程間交換的數據定義,蛋白質提供中等水平的用于查詢和過濾的結構和鉤子,而池則提供高水平的組織和訪問語義。池是用于蛋白質的倉庫,提供線性序列和狀態(tài)緩存。池還提供通過大量不同類型的多個程序或應用進行的多進程訪問。此外,池提供一組共同的可優(yōu)化的過濾和模式匹配行為。
[0295]可以容納成千上萬個蛋白質的實施方式的池起作用以維持狀態(tài),以便單獨的進程可以卸載對多進程程序代碼共同的大多數冗長簿記。池維持或保持過去可用蛋白質的大緩沖器一理想的池明確地無限一以便參與的進程可以隨意在池中向后和向前掃描。緩沖器的尺寸當然依賴于實施,但是在通常使用中常常可以將蛋白質保持在池中以小時或天計。
[0296]與現(xiàn)有的進程間通信框架所采取的機械式點對點方法形成對照,如本文中所描述的池使用的最通常的風格遵守生物學比喻。名稱蛋白質暗指生物學靈感:池中的數據蛋白質可用于大量計算進程進行的靈活查詢和模式匹配,就像活體組織中的化學蛋白質可用于大量細胞試劑進行的模式匹配和過濾。
[0297]兩個另外的抽象依靠生物學比喻,包括使用“處理機”和高爾基(Golgi)框架。參與池的進程一般創(chuàng)建若干處理機。處理機是將匹配條件與處理行為相關聯(lián)的相對小束的代碼。通過將一個或多個處理機聯(lián)系到池,進程設立靈活的回叫觸發(fā),其封裝狀態(tài)并對新的蛋白質反應。
[0298]參與幾個池的進程一般從抽象高爾基類繼承。高爾基框架提供若干有用的例程,用于管理多個池和處理機。高爾基類還封裝雙親-子女關系,提供不使用池的局部蛋白質交換的機制。
[0299]根據實施方式提供的池API被配置成允許池以多種方式實施,以便既考慮特定于系統(tǒng)的目標,又考慮給定硬件和網路體系結構的可用能力。池所依靠的兩個基本系統(tǒng)規(guī)定是存儲設施和進程間通信的裝置。本文所描述的現(xiàn)存系統(tǒng)使用以下的靈活組合:共享存儲器、虛擬存儲器和用于存儲設施的盤以及用于進程間通信的TCP/IP套接字和IPC隊列。
[0300]實施方式的池功能包括但不限于以下:參與池;將蛋白質放置在池中;從池中檢索下一個未看到的蛋白質;反繞或快進池內的內容(例如蛋白質)。另外,池功能可以包括但不限于以下:設立用于進程的流池回叫;選擇性檢索匹配描述或攝取關鍵字的特定模式的蛋白質;向后并向前掃描匹配描述或攝取關鍵字的特定模式的蛋白質。
[0301]上述蛋白質被提供給池,作為與其它應用共享蛋白質數據內容的方式。圖15是根據實施方式的包括使用色拉、蛋白質和池的數據交換的處理環(huán)境的框圖。這個實例環(huán)境包括三個裝置(例如裝置X、裝置Y和裝置Z,在此集體被稱為“裝置”),它們通過使用如上所述的色拉、蛋白質和池來共享數據。裝置中的每一個耦接到三個池(例如池1、池2、池3)。池I包括大量蛋白質(例如蛋白質X1、蛋白質Z2、蛋白質Y2、蛋白質X4、蛋白質Y4),它們從各個裝置貢獻或傳送到池(例如,蛋白質Z2由裝置Z傳送或貢獻到池1,等)。池2包括大量蛋白質(例如蛋白質Z4、蛋白質Y3、蛋白質Z1、蛋白質X3),它們從各個裝置貢獻或傳送到池(例如,蛋白質Y3由裝置Y傳送或貢獻到池2,等)。池3包括大量蛋白質(例如蛋白質Y1、蛋白質Z3、蛋白質X2),它們從各個裝置貢獻或傳送到池(例如,蛋白質X2由裝置X傳送或貢獻到池3,等)。雖然上面描述的示例包括耦接或連接在三個池當中的三個裝置,但是任何數目的裝置可以以任何方式或組合來耦接或連接在任何數目的池當中,并且任何池可以包括從任何數目或組合的裝置中貢獻的任何數目的蛋白質。這個示例的蛋白質和池如上所述參考圖18至圖23。
[0302]圖16是根據實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置和在所述裝置中的一個或多個上運行的大量程序,其中,等離子體構造(例如池、蛋白質和色拉)用于允許大量運行的程序共享并對裝置所生成的事件集體做出反應。這個系統(tǒng)只是多用戶、多裝置、多計算機交互控制場景或配置的一個示例。更加具體地,在這個示例中,包括多個裝置(例如裝置A、B等)和在裝置上運行的若干程序(例如應用AA-AX、應用BA-BX等)的交互系統(tǒng)使用等離子體構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。
[0303]在這個示例中,每個裝置(例如裝置A、B等)將由運行于各個裝置上的程序(例如應用AA-AX、應用BA-BX等)生成的或者從其輸出的離散原始數據翻譯成等離子體蛋白質,并且將那些蛋白質存放到等離子體池中。例如,程序AX生成數據或輸出并提供該輸出給裝置A,裝置A依次將原始數據翻譯成蛋白質(例如蛋白質1A、蛋白質2A等)并將那些蛋白質存放到池中。作為另一示例,程序BC生成數據并提供該數據給裝置B,裝置B依次將數據翻譯成蛋白質(例如蛋白質1B、蛋白質2B等)并將那些蛋白質存放到池中。
[0304]每個蛋白質包含描述列表,其規(guī)定通過應用登記的數據或輸出以及用于程序自身的標識信息。在可能的情況下,蛋白質描述也可以給予輸出事件或動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于程序事件的有用狀態(tài)信息的全部集合。
[0305]如上所述,蛋白質在由耦接或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型如何。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠通過局部存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性:將負責生成處理事件的進程與使用或解釋事件的進程解耦。另一后果是事件的源和消費者的多路化,以便裝置可以由一個人控制或者可以由幾個人同時使用(例如基于等離子體的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。
[0306]作為示例,裝置C可以從池中提取一個或多個蛋白質(例如蛋白質1A、蛋白質2A等)。在蛋白質提取之后,裝置C在蛋白質數據所對應的處理事件中可以使用從蛋白質的描述和攝取的色拉中檢索或讀取的蛋白質的數據。作為另一示例,裝置B可以從池中提取一個或多個蛋白質(例如蛋白質1C、蛋白質2A等)。在蛋白質提取之后,裝置B在蛋白質數據所對應的處理事件中可以使用蛋白質的數據。
[0307]耦接或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現(xiàn),然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現(xiàn)。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。
[0308]圖17是根據替換實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置和在所述裝置中的一個或多個上運行的大量程序,其中,等離子體構造(例如池、蛋白質和色拉)用于允許大量運行的程序共享并對裝置所生成的事件集體做出反應。這個系統(tǒng)只是多用戶、多裝置、多計算機交互控制場景或配置的一個示例。更加具體地,在這個示例中,包括多個裝置(例如分別耦接到裝置A和B的裝置X和Y)和在一個或多個計算機(例如裝置A、裝置B等)上運行的若干程序(例如應用AA-AX、應用BA-BX等)的交互系統(tǒng)使用等離子體構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。
[0309]在這個示例中,每個裝置(例如分別耦接到裝置A和B的裝置X和Y)被管理和/或耦接以在一個或多個程序之下或者與其相結合地運行,所述一個或多個程序駐留在各個裝置上(例如裝置A、裝置B等),各個裝置將由裝置(例如裝置X、裝置A、裝置Y、裝置B等)硬件所生成的離散原始數據翻譯成等離子體蛋白質,并且將那些蛋白質存放到等離子體池中。例如,與駐留在裝置A上的應用AB相結合地運行的裝置X生成原始數據,將離散的原始數據翻譯成蛋白質(例如蛋白質1A、蛋白質2A等)并將那些蛋白質存放到池中。作為另一個示例,與駐留在裝置A上的應用AT相結合地運行的裝置X生成原始數據,將離散的原始數據翻譯成蛋白質(例如蛋白質1A、蛋白質2A等)并將那些蛋白質存放到池中。作為又一示例,與駐留在裝置C上的應用CD相結合地運行的裝置Z生成原始數據,將離散的原始數據翻譯成蛋白質(例如蛋白質1C、蛋白質2C等)并將那些蛋白質存放到池中。
[0310]每個蛋白質包含描述列表,其規(guī)定通過輸入裝置登記的動作以及用于裝置自身的標識信息。在可能的情況下,蛋白質描述也可以給予裝置動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于裝置事件的有用狀態(tài)信息的全部集合。
[0311]如上所述,蛋白質在由耦接或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠通過局部存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性:將負責生成處理事件的進程與使用或解釋事件的進程解耦。另一后果是事件的源和消費者的多路化,以便輸入裝置可以由一個人控制或者可以由幾個人同時使用(例如基于等離子體的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。
[0312]耦接或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現(xiàn),然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現(xiàn)。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。
[0313]圖18是根據另一個替換實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個輸入裝置,所述多個輸入裝置耦接在運行于裝置中的一個或多個上的大量程序當中,其中,等離子體構造(例如池、蛋白質和色拉)用于允許大量運行的程序共享并對輸入裝置所生成的事件集體做出反應。系統(tǒng)只是多用戶、多裝置、多計算機交互控制場景或配置的一個示例。更加具體地,在這個示例中,包括多個輸入裝置(例如輸入裝置A、B、BA和BB等)和在一個或多個計算機(例如裝置A、裝置B等)上運行的若干程序(未示出)的交互系統(tǒng)使用等離子體構造(例如池、蛋白質和色拉)以允許運行的程序共享并對這些輸入裝置所生成的事件集體做出反應。
[0314]在這個示例中,每個輸入裝置(例如輸入裝置A、B、BA和BB等)由駐留在各個裝置上(例如裝置A、裝置B等)的軟件驅動器程序管理,所述各個裝置將由輸入裝置硬件所生成的離散原始數據翻譯成等離子體蛋白質,并且將那些蛋白質存放到等離子體池中。例如,輸入裝置A生成原始數據并提供該原始數據給裝置A,裝置A依次將離散的原始數據翻譯成蛋白質(例如蛋白質1A、蛋白質2A等)并將那些蛋白質存放到池中。作為另一個示例,輸入裝置BB生成原始數據并提供該原始數據給裝置B,裝置B依次將離散的原始數據翻譯成蛋白質(例如蛋白質1B、蛋白質2B等)并將那些蛋白質存放到池中。
[0315]每個蛋白質包含描述列表,其規(guī)定通過輸入裝置登記的動作以及用于裝置自身的標識信息。在可能的情況下,蛋白質描述也可以給予裝置動作以一般語義意義。蛋白質的數據有效載荷(例如攝取)承載了用于裝置事件的有用狀態(tài)信息的全部集合。
[0316]為了示意,這里是這樣的系統(tǒng)中的用于兩個典型事件的示例蛋白質。蛋白質在此被表示為文本,然而在實際實施中,這些蛋白質的組成部分是定型的數據束(例如色拉)。描述一般而言“一根手指點擊”姿態(tài)(在相關申請中有描述)的蛋白質如下:
[0317][描述:{點、引擎、一個、一個手指引擎、手、飛行員-1d-02、手-1d-23}
[0318]攝取:{飛行員-1d=>02,
[0319]手-1d=>23,
[0320]姿態(tài)=>[0.0,0.0,0.0]
[0321]角度-軸=>[0.0, 0.0, 0.0, 0.707]
[0322]緊握=>.,I1: νχ
[0323]時間=>184437103.29}]
[0324]作為進一步的示例,描述鼠標點擊的蛋白質如下:
[0325][描述:{點,點擊,一個,鼠標點擊,按鈕一,鼠標-1d-02}
[0326]攝取:{鼠標-1d=>23,[0327]姿態(tài)=>[0.0,0.0,0.0]
[0328]時間=>184437124.80}]
[0329]前述樣本蛋白質中的任一個或兩者可能使主機裝置的參與程序運行其代碼的特殊部分。這些程序可能對一般的語義標簽感興趣:全部當中最一般的是“點”,或者更特定的對“引擎、一個”?;蛘咚鼈兛梢詫ふ宜坪鮾H會由精確裝置生成的事件:“一個姿勢引擎”,乃至單個聚集對象“手id-23”。
[0330]如上所述,蛋白質在由耦接或連接到池的任何程序或裝置使用的池中是可用的,而不管程序或裝置的類型。因此,在任何數目的計算機上運行的任何數目的程序都可以從輸入池中提取事件蛋白質。這些裝置只需能夠通過局部存儲器總線或網絡連接而參與池,以便從池中提取蛋白質。這個的直接后果是以下有益的可能性:將負責生成“輸入事件”的進程與使用或解釋事件的進程解耦。另一個后果是事件的源和消費者的多路化,以便輸入裝置可以由一個人控制或者可以由幾個人同時使用(例如基于等離子體的輸入框架支持許多并發(fā)用戶),同時作為結果的事件流對多個事件消費者依次可見。
[0331]作為示例或蛋白質使用,裝置C可以從池中提取一個或多個蛋白質(例如蛋白質IB等)。在蛋白質提取之后,裝置C在處理蛋白質數據所對應的輸入裝置CA和CC的輸入事件時可以使用從蛋白質的描述和攝取的色拉中檢索或讀取的蛋白質的數據。作為另一示例,裝置A可以從池中提取一個或多個蛋白質(例如蛋白質IB等)。在蛋白質提取之后,裝置A在處理蛋白質數據所對應的輸入裝置A的輸入事件時可以使用蛋白質的數據。
[0332]耦接或連接到池的裝置和/或程序可以在池中向后和向前瀏覽以查找具體的蛋白質序列。通常有用的是,例如設立程序以等待匹配一定模式的蛋白質出現(xiàn),然后向后瀏覽以確定這個蛋白質是否已連同一定的其它蛋白質一起出現(xiàn)。用于利用輸入池中的存儲的事件歷史的這種設施通常使編寫狀態(tài)管理代碼不必要,或者至少顯著減少對這樣的不希望有的編碼模式的依靠。
[0333]在本文中所描述的系統(tǒng)實施方式中使用的輸入裝置的示例包括如消費電子產品中使用的姿態(tài)輸入傳感器、鍵盤、鼠標、紅外線遙控器以及面向任務的觸媒對象,這只是舉幾個示例。
[0334]圖19是根據又一替換實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,所述多個裝置耦接在運行于裝置中的一個或多個上的大量程序當中,其中,等離子體構造(例如池、蛋白質和色拉)用于允許大量運行的程序共享并對裝置所生成的圖形事件集體做出反應。這個系統(tǒng)只是包括多個運行程序(例如圖形A至E)和一個或多個顯示裝置(未示出)的系統(tǒng)的一個示例,其中,使得程序中的一些或全部的圖形輸出以協(xié)調的方式可用于其它程序,使用等離子體構造(例如池、蛋白質和色拉)以允許運行的程序共享并對裝置所生成的圖形事件集體做出反應。
[0335]對于計算機程序而言通常有用的是顯示由另一程序生成的圖形。幾個通常的示例包括視頻會議應用、基于網絡的放映幻燈片和演示程序以及視窗管理器。在這種配置下,池用作等離子體庫以實施一般化的框架,該框架封裝視頻、網絡應用共享和視窗管理,并且允許程序員添加在這種程序的當前版本中通常不可用的若干特征。
[0336]在等離子體組成環(huán)境中運行的程序(例如圖形A至E)通過耦接和/或連接到池而參與協(xié)調池。每個程序都可以將蛋白質存放在該池中,以指示不同種類的圖形源的可用性。可用于顯示圖形的程序也存放蛋白質,以指示它們顯示的能力、安全和用戶簡檔以及物理和網絡位置。
[0337]圖形數據也可以通過池傳輸,或者顯示程序可以指向其它種類的網絡資源(例如RTSP流)。如本文中所使用的短語“圖形數據”指代依賴寬闊連續(xù)區(qū)的多種不同表示;圖形數據的示例包括但不限于文字示例(例如“圖像”或像素塊)、程序性示例(例如“繪圖”指示的序列,諸如流下典型的openGL管線)以及描述性示例(例如借助于幾何變換、裁剪和合成操作來組合其它圖形構造的指令)。
[0338]在局部機器上,圖形數據可通過特定于平臺的顯示驅動器優(yōu)化來遞送。甚至當圖形沒有通過池傳輸時,常常周期性的屏幕捕捉也將存儲在協(xié)調池中,使得客戶在不直接訪問更深奧的源的情況下仍可顯示后退圖形。
[0339]這里描述的系統(tǒng)的一個優(yōu)點在于,與大多數消息傳遞框架和網絡協(xié)議不同,池維持數據的顯著緩沖。所以程序可以向后回繞到池中以查看訪問和使用模式(在協(xié)調池的情況下)或者提取以前的圖形幀(在圖形池的情況下)。
[0340]圖20是根據再一替換實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,所述多個裝置耦接在運行于裝置中的一個或多個上的大量程序當中,其中,等離子體構造(例如池、蛋白質和色拉)用于允許對運行的程序進行狀態(tài)檢查、可視化和調試。這個系統(tǒng)只是包括多個裝置(例如裝置A、裝置B等)上的多個運行程序(例如程序P-A、程序P-B等)的系統(tǒng)的一個示例,其中,一些程序使用或通過池訪問其它程序的內部狀態(tài)。
[0341]大多數交互計算機系統(tǒng)包括彼此并排運行的許多程序,它們或者在單個機器上或者在多個機器上,并且跨網絡進行交互。多程序系統(tǒng)可能難以配置、解析和調試,因為運行時間數據隱藏在每個進程內部并難以訪問。在此描述的實施方式的一般化框架和等離子體構造允許運行的程序使許多它們的數據通過池可用,以使得其它程序可以檢查它們的狀態(tài)。這個框架啟用比傳統(tǒng)調試器更靈活的調試工具、復雜的系統(tǒng)維護工具以及可視化裝備,所述可視化裝備配置成允許人工操作員詳細地解析一個或多個程序已經過的狀態(tài)的序列。
[0342]參考圖25,在這個框架中運行的程序(例如程序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依次將數據翻譯成蛋白質(例如蛋白質IB至蛋白質4B等)并將那些蛋白質存放到池中。
[0343]在程序壽命的存續(xù)期間,具有充分訪問許可的其它程序可以附接到池并讀取程序存放的蛋白質;這表示基本檢查模態(tài),并且在概念上是“單路”或“只讀”命題:在程序P-A中感興趣的實體檢查由其進程池中的P-A存放的狀態(tài)信息流。例如,在裝置C下運行的檢查程序或應用可以從池中提取一個或多個蛋白質(例如蛋白質IA、蛋白質2A等)。在蛋白質提取之后,裝置C可以使用從蛋白質的描述和攝取的色拉中檢索或讀取的蛋白質的數據以訪問、解釋和檢查程序P-A的內部狀態(tài)。
[0344]但是,回顧等離子體系統(tǒng)不僅是有效的狀態(tài)傳輸方案,而且是全取向消息收發(fā)環(huán)境,幾個另外的模式支持程序對程序狀態(tài)檢查。授權的檢查程序可以自己將蛋白質存放到程序P的進程池中,以影響或控制在該進程池中產生和放置的狀態(tài)信息的特性(畢竟,程序P不僅向所述進程池中寫入而且還從中讀取)。
[0345]圖21是根據另一替換實施方式的處理環(huán)境的框圖,該處理環(huán)境包括多個裝置,所述多個裝置耦接在運行于裝置中的一個或多個上的大量程序當中,其中,等離子體構造(例如池、蛋白質和色拉)用于允許影響或控制該進程池中產生和放置的狀態(tài)信息的特性。在這個系統(tǒng)示例中,裝置C的檢查程序例如可以請求程序(例如程序Ρ-A、程序P-B等)或者在單個瞬時或者在具體的一段時間傾卸比正常更多的狀態(tài)到池中?;蛘?,預示調試通信的下一個“等級”,感興趣的程序可以請求程序(例如程序Ρ-A、程序P-B等)發(fā)出列舉其運行時間環(huán)境中現(xiàn)存的對象的蛋白質,它們單獨地能夠并且可用于通過調試池進行交互。由此可知,感興趣的程序可以“尋址”程序運行時間中的對象當中的個體,將蛋白質放置在具體的對象單獨會占用并做出反應的進程池中。感興趣的程序例如可以請求對象發(fā)出報告蛋白質,描述其全部成分變量的瞬時值。甚至更重要的是,感興趣的程序可以通過其它蛋白質指導對象改變其行為或其變量的值。
[0346]更加具體地,在這個示例中,裝置C的檢查應用將對于對象列表的請求(例如“請求對象列表”)(以蛋白質的形式)放置到池中,該請求然后由耦接到池的每個裝置(例如裝置A、裝置B等)提取。響應于該請求,每個裝置(例如裝置A、裝置B等)將列舉其運行時間環(huán)境中現(xiàn)存的對象的蛋白質(例如蛋白質1A、蛋白質IB等)放置到池中,它們單獨地能夠并且可用于通過調試池進行交互。
[0347]由此可知通過來自裝置的列舉,并且響應于對象的列舉,裝置C的檢查應用尋址程序運行時間中的對象當中的個體,將蛋白質放置在具體的對象單獨會占用并做出反應的進程池中。裝置C的檢查應用例如可以將請求蛋白質(例如蛋白質“請求報告Ρ-Α-0”、“請求報告Ρ-Β-0”)放置在池中,對象(例如分別是對象Ρ-Α-0、對象Ρ-Β-0)發(fā)出報告蛋白質(例如蛋白質2A、蛋白質2B等),描述其全部成分變量的瞬時值。每個對象(例如對象P-A-Oji象Ρ-Β-0)提取其請求(例如分別是“請求報告Ρ-Α-0”、“請求報告Ρ-Β-0”),并且做為響應,將蛋白質放置到包括所請求的報告(例如分別為蛋白質2A、蛋白質2B)的池中。裝置C然后提取各種報告蛋白質(例如蛋白質2A、蛋白質2B等),并且如對報告的內容適當的那樣采取后續(xù)的處理動作。
[0348]以這種方式,使用等離子體作為互換介質最終趨于侵蝕調試、進程控制以及程序對程序通信與協(xié)調之間的區(qū)別。
[0349]最后,一般化的等離子體框架允許可視化和解析程序以松散耦接的方式設計。例如顯示存儲器訪問模式的可視化工具可以結合輸出其基本存儲器讀取和寫入至池的任何程序一起使用。經歷解析的程序不需要知道可視化工具的存在或設計,反之亦然。
[0350]以上述方式使用池并不過度影響系統(tǒng)性能。例如,實施方式已允許在池中每秒存放幾十萬個蛋白質,以便使得即使相對冗長的數據輸出也能夠不顯著地抑制大多數程序的響應性或交互特征。
[0351]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0352]本文中所描述的實施方式包括一種方法,該方法包括:通過光學檢測器接收姿勢數據,該姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;以及以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0353]根據一種實施方式的所述方法包括:使用所述姿勢數據檢測所述身體的所述附肢并且標識所述附肢的段。
[0354]根據一種實施方式的所述方法包括:通過如下方式檢測所述身體的所述附肢:區(qū)分包括所述附肢的至少一個第一像素區(qū)域與不存在所述附肢的至少一個第二像素區(qū)域。
[0355]根據一種實施方式的所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
[0356]根據一種實施方式的所述方法包括:將每個視頻幀轉換成二進制圖像。
[0357]根據一種實施方式的所述方法包括:對所述多個視頻幀中的每個視頻幀進行預處理,所述預處理包括對所述附肢的所述檢測以及對所述附肢的所述段的所述標識。
[0358]根據一種實施方式的所述方法包括:使用所述段的數據生成所述身體的估計取向。
[0359]根據一種實施方式的所述方法包括:將所述多個視頻幀中的每個視頻幀與背景模型相比較。
[0360]根據一種實施方式的所述方法包括:通過計算所述多個視頻幀的適應運行平均來生成所述背景模型。
[0361]根據一種實施方式的所述方法包括:將所述背景模型轉換成背景二進制圖像。
[0362]根據一種實施方式的所述方法包括:對于所述視頻幀的每個像素計算所述視頻幀的相應像素的第一像素值與所述背景模型的每個相應對應像素的第二像素值之間的像素值差異。
[0363]根據一種實施方式的所述方法包括:通過標記所述視頻幀的如下每個像素來生成被標記的像素:對于所述每個像素而言的所述像素值差異超過閾值。
[0364]根據一種實施方式的所述方法包括:生成包括所述被標記的像素的前景圖像。
[0365]根據一種實施方式的所述方法包括:從所述姿勢數據中提取至少一個特征,其中,所述至少一個特征包括所述前景圖像的至少一個像素。
[0366]根據一種實施方式的所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
[0367]根據一種實施方式的所述至少一個特征包括少一個盒子,其中,所述至少一個盒子是使用所述姿勢數據的至少一個查詢區(qū)域內的多個坐標來規(guī)定的。
[0368]根據一種實施方式的所述方法包括:使用所述至少一個盒子的左上坐標和右下坐標來規(guī)定所述至少一個盒子。
[0369]根據一種實施方式的所述至少一個盒子由所述至少一個前景圖像的多個像素來表征。
[0370]根據一種實施方式的所述至少一個特征包括至少一個環(huán),其中,所述至少一個環(huán)是盒子內的未被填充的矩形區(qū)域。
[0371]根據一種實施方式的所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
[0372]根據一種實施方式的所述附肢包括指尖。
[0373]根據一種實施方式的所述身體包括手指。
[0374]根據一種實施方式的所述身體包括手。
[0375]根據一種實施方式的所述身體包括臂。
[0376]根據一種實施方式的所述方法包括:對于所述附肢的每個被檢測到的實例生成與所述附肢對應的身體預測。
[0377]根據一種實施方式的所述身體預測包括與所述附肢對應的預測位置。
[0378]實施方式的所述身體預測包括與所述檢測區(qū)域對應的所述估計取向。
[0379]根據一種實施方式的所述方法包括:生成身體預測列表以及將所述身體預測存儲在所述身體預測列表中,其中,所述身體預測列表包括多個身體預測。
[0380]根據一種實施方式的所述方法包括:生成對于所述視頻幀而言的邊緣圖像。
[0381]根據一種實施方式的所述邊緣圖像的所述生成由邊緣檢測器提供。
[0382]根據一種實施方式的所述方法包括:生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
[0383]根據一種實施方式的所述邊緣取向圖像的所述生成包括計算由局部偏導數暗示的角度。
[0384]根據一種實施方式的所述方法包括:當所述對身體的跟蹤在進行中時,使用根據至少一個先前視頻幀對所述身體預測的先前估計來生成對于所述身體預測而言的預測估計。
[0385]根據一種實施方式的所述方法包括:當對多個身體假設的跟蹤在進行中時,使用根據至少一個先前視頻幀對所述身體預測的先前估計來對于每個身體假設生成對于所述身體預測而言的預測估計。
[0386]根據一種實施方式的所述方法包括:從所述身體預測列表中移除與所述視頻幀對應的所述身體預測的復制件。
[0387]根據一種實施方式的所述方法包括:對于每個預測估計標識最佳參數值。
[0388]根據一種實施方式的所述方法包括:使用粒子群優(yōu)化標識所述最佳參數值。
[0389]根據一種實施方式的所述方法包括:使用一組身體模型標識所述最佳參數值。
[0390]根據一種實施方式的所述組身體模型包括一組手模型。
[0391]根據一種實施方式的所述方法包括:通過創(chuàng)建與多個姿態(tài)中的每個姿態(tài)中的手的形狀匹配的輪廓來生成所述組手模型。
[0392]根據一種實施方式的所述方法包括:使用二次b樣條表示所述輪廓。
[0393]根據一種實施方式的所述最佳參數值包括最佳地匹配所述組身體模型中的身體模型的身體預測的至少一個參數值,其中,所述身體預測與所述姿勢數據對應。
[0394]根據一種實施方式的所述最佳參數值包括位置、比例和取向中的至少一個。
[0395]根據一種實施方式的所述最佳參數值包括位置。[0396]根據一種實施方式的所述最佳參數值包括比例。
[0397]根據一種實施方式的所述最佳參數值包括取向。
[0398]根據一種實施方式的所述方法包括:對于每個參數值,更新所述身體模型的手樣條的控制點。
[0399]根據一種實施方式的所述更新包括通過平移、比例縮放和旋轉中的至少一個來更新。
[0400]根據一種實施方式的所述更新包括通過平移來更新。
[0401]根據一種實施方式的所述更新包括通過比例縮放來更新
[0402]根據一種實施方式的所述更新包括通過旋轉來更新。
[0403]根據一種實施方式的所述方法包括:沿著所述手樣條進行采樣。
[0404]根據一種實施方式的所述方法包括:將所述手樣條的局部輪廓取向與所述視頻幀的所述邊緣取向圖像的有取向的邊緣相比較。
[0405]根據一種實施方式的所述方法包括:通過沿著所述手樣條的法線搜索具有匹配取向的、最靠近所述身體預測的邊緣來進行比較。
[0406]根據一種實施方式的所述方法包括:使用所述最佳參數值更新所述多個預測估計。
[0407]根據一種實施方式的所述方法包括:當最高得分的預測估計超過閾值時,將所述最高得分的預測估計報告為當前身體位置。
[0408]根據一種實施方式的所述方法包括:當所述最高得分的預測估計小于所述閾值時,報告對應的巾貞中不存在身體。
[0409]根據一種實施方式的所述方法包括:使用所述姿勢數據檢測所述身體的姿勢。
[0410]根據一種實施方式的所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
[0411]根據一種實施方式的所述方法包括:使用姿勢記號將所述姿勢翻譯成姿勢信號。
[0412]根據一種實施方式的所述方法包括:使用所述姿勢信號控制耦接到計算機的部件。
[0413]根據一種實施方式的所述方法包括:標識所述姿勢,其中,所述標識包括標識所述身體的一部分的姿態(tài)和取向。
[0414]根據一種實施方式的所述檢測包括生成表示所述姿勢的三維空間點數據并且標記所述空間點數據。
[0415]根據一種實施方式的所所述翻譯包括將所述空間點數據翻譯成適合于所述計算機的配置的命令。
[0416]根據一種實施方式的所述翻譯包括將所述姿勢的信息翻譯成姿勢記號。
[0417]根據一種實施方式的所述姿勢記號表示姿勢詞匯,并且所述姿勢信號包括所述姿勢詞匯的通信。
[0418]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的瞬時姿態(tài)狀態(tài)。
[0419]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向。
[0420]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向的組合。
[0421]根據一種實施方式的所述姿勢詞匯包括表示所述身體的運動學聯(lián)動機構的狀態(tài)的字符串。
[0422]根據一種實施方式的所述方法包括:將所述串中的每個位置分配給所述附肢。
[0423]根據一種實施方式的所述方法包括:將多個字符中的字符分配給所述附肢的多個位置中的每個位置。
[0424]根據一種實施方式的所述多個位置是相對于坐標原點建立的。
[0425]根據一種實施方式的所述方法包括:使用如下位置建立所述坐標原點:所述位置選自于包括空間中的絕對位置和取向、交互地響應于所述身體的動作的、以及不管所述身體的總體位置和朝向如何而相對于所述身體的固定位置和取向的組。
[0426]根據一種實施方式的所述方法包括:將所述多個字符中的字符分配給所述附肢的多個取向中的每個取向。
[0427]根據一種實施方式的控制所述部件包括通過將所述附肢的所述姿勢映射到三度空間對象來同時以六個自由度控制所述三度空間對象。
[0428]根據一種實施方式的控制所述部件包括通過三個平移自由度和三個旋轉自由度來控制三度空間對象。
[0429]根據一種實施方式的所述三度空間對象被呈現(xiàn)在耦接到所述計算機的顯示裝置上。
[0430]根據一種實施方式的所述三度空間對象耦接到所述計算機。
[0431]根據一種實施方式的所述檢測包括檢測所述對象的外推位置何時與虛擬空間相交,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間。
[0432]根據一種實施方式的控制所述部件包括當所述外推位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
[0433]根據一種實施方式的所述方法包括:控制所述檢測和控制的比例縮放以生成虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間,其中,所述物理空間包括由所述身體占據的空間。
[0434]根據一種實施方式的所述方法包括:確定耦接到所述計算機的顯示裝置的所述物理空間中的尺度、取向和位置。
[0435]根據一種實施方式的所述方法包括:將所述顯示裝置所位于的所述物理空間作為投影動態(tài)地映射到耦接到所述計算機的至少一個應用的所述虛擬空間中。
[0436]根據一種實施方式的所述方法包括:在所述虛擬空間與所述物理空間之間翻譯比例、角度、深度和尺度以適合于耦接到所述計算機的至少一個應用。
[0437]根據一種實施方式的所述方法包括:響應于至少一個物理對象在所述物理空間中的移動而控制所述虛擬空間中的至少一個虛擬對象。
[0438]根據一種實施方式的所述方法包括:響應于所述身體在物理空間中相對于所述顯示裝置的位置的位置而控制所述顯示裝置上的圖形渲染。
[0439]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域。所述方法包括以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0440]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域;以及以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0441]根據一種實施方式的所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
[0442]根據一種實施方式的所述方法包括:檢測所述多個視頻幀中的運動。
[0443]根據一種實施方式的所述方法包括:通過區(qū)分包括所述附肢的視頻幀的至少一個第一像素區(qū)域與不存在所述附肢的所述視頻幀的至少一個第二像素區(qū)域來檢測所述附肢。
[0444]根據一種實施方式的所述方法包括:檢測所述視頻幀的邊緣像素。
[0445]根據一種實施方式的所述方法包括:生成對于所述視頻幀而言的邊緣圖像。
[0446]根據一種實施方式的所述方法包括:生成所述邊緣圖像中的每個邊緣像素的邊緣取向圖像。
[0447]根據一種實施方式的所述邊緣取向圖像的所述生成包括計算由所述視頻幀的局部偏導數暗示的角度。
[0448]根據一種實施方式的所述方法包括:當跟蹤數據可用時,使用所述跟蹤數據生成身體預測。
[0449]根據一種實施方式的所述方法包括:使用所述邊緣像素、所述邊緣取向圖像和所述附肢中的至少一個來生成身體預測。
[0450]根據一種實施方式的所述方法包括:通過將所述身體預測與一組身體模型相比較來檢測所述身體。
[0451]根據一種實施方式的所述方法包括:跟蹤所述身體。
[0452]根據一種實施方式的所述方法,包括:使用所述姿勢數據檢測所述身體的姿勢。
[0453]根據一種實施方式的所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
[0454]根據一種實施方式的所述方法包括:使用姿勢記號將所述姿勢翻譯成姿勢信號。
[0455]根據一種實施方式的所述方法包括:使用所述姿勢信號控制計算機應用。
[0456]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括:檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向。所述方法包括:使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0457]本文中所描述的實施方式包括一種方法,所述方法包括:通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0458]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括:使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段。所述方法包括:使用所述段的數據生成所述身體的估計取向。所述方法包括:使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0459]本文中所描述的實施方式包括一種方法,所述方法包括:通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段;使用所述段的數據生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0460]本文中所描述的實施方式包括一種方法,所述方法包括根據通過光學檢測器接收到的姿勢數據來檢測身體的姿勢。所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間位置數據。所述檢測包括檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向。所述方法包括:使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且在跟蹤時使用所述姿勢數據標識所述姿勢。所述方法包括生成表示所述姿勢的姿勢信號以及提供所述姿勢信號作為控制信號。
[0461]本文中所描述的實施方式包括一種方法,所述方法包括:根據通過光學檢測器接收到的姿勢數據來檢測身體的姿勢,其中所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間位置數據,所述檢測包括檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向;使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且在跟蹤時使用所述姿勢數據標識所述姿勢;以及生成表示所述姿勢的姿勢信號以及提供所述姿勢信號作為控制信號。
[0462]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。所述方法包括:使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號。所述方法包括:響應于所述姿勢信號而控制耦接到計算機的部件。
[0463]本文中所描述的實施方式包括一種方法,所述方法包括:通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體;使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號;以及響應于所述姿勢信號而控制耦接到計算機的部件。
[0464]本文中所描述的實施方式包括一種方法,所述方法包括通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據。所述方法包括:使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向。所述方法包括:使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。所述方法包括僅使用所述姿勢數據檢測和標識所述身體的姿勢。所述方法包括將所述姿勢翻譯成姿勢信號。所述方法包括:使用所述姿勢信號控制計算機部件。
[0465]本文中所描述的實施方式包括一種方法,所述方法包括:通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向;使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體;僅使用所述姿勢數據檢測和標識所述身體的姿勢;將所述姿勢翻譯成姿勢信號;以及使用所述姿勢信號控制計算機部件。
[0466]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0467]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0468]根據一種實施方式的所述姿勢部件使用所述姿勢數據檢測所述身體的所述附肢并且標識所述附肢的段。
[0469]根據一種實施方式的所述姿勢部件通過如下方式檢測所述身體的所述附肢:區(qū)分包括所述附肢的至少一個第一像素區(qū)域與不存在所述附肢的至少一個第二像素區(qū)域。
[0470]根據一種實施方式的所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
[0471]根據一種實施方式的所述系統(tǒng)包括:將每個視頻幀轉換成二進制圖像。
[0472]根據一種實施方式的所述系統(tǒng)包括:對所述多個視頻幀的每個視頻幀進行預處理,所述預處理包括對所述附肢的所述檢測以及對所述附肢的所述段的所述標識
[0473]根據一種實施方式的所述姿勢部件使用所述段的數據生成所述身體的估計取向。
[0474]根據一種實施方式的所述姿勢部件將所述多個視頻幀中的每個視頻幀與背景模型相比較。
[0475]根據一種實施方式的所述姿勢部件通過計算所述多個視頻幀的適應滑動平均來生成所述背景模型。
[0476]根據一種實施方式的所述姿勢部件將所述背景模型轉換成背景二進制圖像。
[0477]根據一種實施方式的所述姿勢部件對于所述視頻幀的每個像素計算所述視頻幀的相應像素的第一像素值與所述背景模型的每個相應對應的像素的第二像素值之間的像素值差異。
[0478]根據一種實施方式的所述姿勢部件通過標記所述視頻幀的如下每個像素來生成被標記的像素:對于所述每個像素而言的所述像素值差異超過閾值。
[0479]根據一種實施方式的所述姿勢部件生成包括所述被標記的像素的前景圖像。
[0480]根據一種實施方式的所述姿勢部件從所述姿勢數據中提取至少一個特征,其中,所述至少一個特征包括所述前景圖像的至少一個像素。[0481]根據一種實施方式的所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
[0482]根據一種實施方式的所述至少一個特征包括至少一個盒子,其中,所述至少一個盒子使用所述姿勢數據中的至少一個查詢區(qū)域內的多個坐標來規(guī)定。
[0483]根據一種實施方式的所述姿勢部件使用所述至少一個盒子的左上坐標和右下坐標來規(guī)定所述至少一個盒子。
[0484]根據一種實施方式的所述至少一個盒子由所述至少一個前景圖像的多個像素來表征。
[0485]根據一種實施方式的所述至少一個特征包括至少一個環(huán),其中,所述至少一個環(huán)是盒子內的未被填充的矩形區(qū)域。
[0486]根據一種實施方式的所述姿勢部件又將所述至少一個特征施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時將所述至少一個特征標識為包括所述附肢。
[0487]根據一種實施方式的所述附肢包括指尖。
[0488]根據一種實施方式的所述身體包括手指。
[0489]根據一種實施方式的所述身體包括手。
[0490]根據一種實施方式的所述身體包括臂。
[0491]根據一種實施方式的所述姿勢部件對于所述附肢的每個被檢測到的實例生成與所述附肢對應的身體預測。
[0492]根據一種實施方式的所述身體預測包括與所述附肢對應的預測位置。
[0493]根據一種實施方式的所述身體預測包括與所述被檢測到的區(qū)域對應的所述估計取向。
[0494]根據一種實施方式的所述姿勢部件生成身體預測列表并且將所述身體預測包括在所述身體預測列表中,其中,所述身體預測列表包括多個身體預測。
[0495]根據一種實施方式的所述姿勢部件生成對于所述視頻幀而言的邊緣圖像。
[0496]根據一種實施方式的所述邊緣圖像的所述生成由邊緣檢測器提供。
[0497]根據一種實施方式的所述姿勢部件生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
[0498]根據一種實施方式的所述邊緣取向圖像的所述生成包括計算由局部偏導數暗示的角度。
[0499]根據一種實施方式的所述姿勢部件當對所述身體的跟蹤在進行中時使用根據至少一個先前視頻幀對所述身體預測的先前估計來生成對于所述身體預測而言的預測估計。
[0500]根據一種實施方式的所述姿勢部件當對多個身體假設的跟蹤在進行中時使用根據至少一個先前視頻幀對所述身體預測的先前估計來對于每個身體假設生成對于所述身體預測而言的預測估計。
[0501]根據一種實施方式的所述姿勢部件從所述身體預測列表中移除與所述視頻幀對應的所述身體預測的復制件。
[0502]根據一種實施方式的所述姿勢部件對于每個預測估計標識最佳參數值。[0503]根據一種實施方式的所述姿勢部件使用粒子群優(yōu)化標識所述最佳參數值。
[0504]根據一種實施方式的所述姿勢部件使用一組身體模型標識所述最佳參數值。
[0505]根據一種實施方式的所述組身體模型包括一組手模型。
[0506]根據一種實施方式的所述系統(tǒng)包括:通過創(chuàng)建與多個姿態(tài)中的每個姿態(tài)中的手的形狀匹配的輪廓來生成所述組手模型。
[0507]根據一種實施方式的所述系統(tǒng)包括:使用二次b樣條表示所述輪廓。
[0508]根據一種實施方式的所述最佳參數值包括最佳地匹配所述組身體模型中的身體模型的身體預測的至少一個參數值,其中,所述身體預測與所述姿勢數據對應。
[0509]根據一種實施方式的所述最佳參數值包括位置、比例和取向中的至少一個。
[0510]根據一種實施方式的所述最佳參數值包括位置。
[0511]根據一種實施方式的所述最佳參數值包括比例。
[0512]根據一種實施方式的所述最佳參數值包括取向。
[0513]根據一種實施方式的所述姿勢部件對于每個參數值更新所述身體模型的手樣條的控制點。
[0514]根據一種實施方式的所述更新包括通過平移、比例縮放和旋轉中的至少一個來更新。
[0515]根據一種實施方式的所述更新包括通過平移來更新。
[0516]根據一種實施方式的所述更新包括通過比例縮放來更新。
[0517]根據一種實施方式的所述更新包括通過旋轉來更新
[0518]根據一種實施方式的所述系統(tǒng)包括:沿著所述手樣條進行采樣。
[0519]根據一種實施方式的所述姿勢部件將所述手樣條的局部輪廓取向與所述視頻幀的所述邊緣取向圖像的有取向的邊緣相比較。
[0520]根據一種實施方式的所述姿勢部件通過沿著所述手樣條的法線搜索具有匹配取向的、最靠近所述身體預測的邊緣來進行比較。
[0521]根據一種實施方式的所述姿勢部件使用所述最佳參數值更新所述多個預測估計。
[0522]根據一種實施方式的所述姿勢部件當最高得分的預測估計超過閾值時,將所述最高得分的預測估計報告為當前身體位置。
[0523]根據一種實施方式的所述姿勢部件當所述最高得分的預測估計小于所述閾值時,報告對應的巾貞中不存在身體。
[0524]根據一種實施方式的所述姿勢部件使用所述姿勢數據檢測所述身體的姿勢。
[0525]根據一種實施方式的所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
[0526]根據一種實施方式的所述姿勢部件使用姿勢記號將所述姿勢翻譯成姿勢信號。
[0527]根據一種實施方式的所述姿勢部件使用所述姿勢信號控制耦接到計算機的部件。
[0528]根據一種實施方式的所述姿勢部件標識所述姿勢,其中,所述標識包括標識所述身體的一部分的姿態(tài)和取向。
[0529]根據一種實施方式的所述檢測包括生成表示所述姿勢的三維空間點數據并且標記所述空間點數據。
[0530]根據一種實施方式的所述翻譯包括將所述空間點數據翻譯成適合于所述計算機的配置的命令。[0531]根據一種實施方式的所述翻譯包括將所述姿勢的信息翻譯成姿勢記號。
[0532]根據一種實施方式的所述姿勢記號表示姿勢詞匯,并且所述姿勢信號包括所述姿勢詞匯的通信。
[0533]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的瞬時姿態(tài)狀態(tài)。
[0534]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向。
[0535]根據一種實施方式的所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向的組合。
[0536]根據一種實施方式的所述姿勢詞匯包括表示所述身體的運動學聯(lián)動機構的狀態(tài)的字符串。
[0537]根據一種實施方式的所述姿勢部件將所述串中的每個位置分配給所述附肢。
[0538]根據一種實施方式的所述姿勢部件將多個字符中的字符分配給所述附肢的多個位置中的每個位置。
[0539]根據一種實施方式的所述多個位置是相對于坐標原點建立的。
[0540]根據一種實施方式的所述姿勢部件使用如下位置建立所述坐標原點:所述位置選自于包括空間中的絕對位置和取向、交互地響應于所述身體的動作的、以及不管所述身體的總體位置和朝向如何而相對于所述身體的固定位置和取向的組。
[0541]根據一種實施方式的所述姿勢部件將所述多個字符中的字符分配給所述附肢的多個取向中的每個取向。
[0542]根據一種實施方式的控制所述部件包括通過將所述附肢的所述姿勢映射到三度空間對象來同時以六個自由度控制所述三度空間對象。
[0543]根據一種實施方式的控制所述部件包括通過三個平移自由度和三個旋轉自由度來控制三度空間對象。
[0544]根據一種實施方式的所述三度空間對象被呈現(xiàn)在耦接到所述計算機的顯示裝置上。
[0545]根據一種實施方式的所述三度空間對象耦接到所述計算機。
[0546]根據一種實施方式的所述檢測包括檢測所述對象的外推位置何時與虛擬空間相交,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間。
[0547]根據一種實施方式的控制所述部件包括當所述外推位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
[0548]根據一種實施方式的所述系統(tǒng)包括:控制所述檢測和控制的比例縮放以生成虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間,其中,所述物理空間包括由所述身體占據的空間。
[0549]根據一種實施方式的所述系統(tǒng)包括:確定耦接到所述計算機的顯示裝置的所述物理空間中的尺度、取向和位置。
[0550]根據一種實施方式的所述系統(tǒng)包括:將所述顯示裝置所位于的所述物理空間作為投影動態(tài)地映射到耦接到所述計算機的至少一個應用的所述虛擬空間中。
[0551]根據一種實施方式的所述系統(tǒng)包括:在所述虛擬空間與所述物理空間之間翻譯比例、角度、深度和尺度適合于耦接到所述計算機的至少一個應用。
[0552]根據一種實施方式的所述系統(tǒng)包括:響應于至少一個物理對象在所述物理空間中的移動而控制所述虛擬空間中的至少一個虛擬對象。
[0553]根據一種實施方式的所述系統(tǒng)包括:響應于所述身體在物理空間中相對于所述顯示裝置的位置的位置而控制所述顯示裝置上的圖形渲染。
[0554]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述至少一個姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域。所述至少一個姿勢部件進行以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0555]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述至少一個姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域;并且其中,所述至少一個姿勢部件進行以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0556]實施方式的所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
[0557]實施方式的所述至少一個姿勢部件檢測所述多個視頻幀中的運動。
[0558]實施方式的所述至少一個姿勢部件通過區(qū)分包括所述附肢的視頻幀的至少一個第一像素區(qū)域與不存在所述附肢的視頻幀的至少一個第二像素區(qū)域來檢測所述附肢。
[0559]實施方式的所述至少一個姿勢部件檢測所述視頻幀的邊緣像素。
[0560]實施方式的所述至少一個姿勢部件生成對于所述視頻幀而言的邊緣圖像。
[0561]實施方式的所述至少一個姿勢部件生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
[0562]實施方式的所述邊緣取向圖像的所述生成包括計算由所述視頻幀的局部偏導數暗示的角度。
[0563]實施方式的所述至少一個姿勢部件當跟蹤數據可得到時,使用所述跟蹤數據生成身體預測。
[0564]實施方式的所述至少一個姿勢部件使用所述邊緣像素、所述邊緣取向圖像和所述附肢中的至少一個來生成身體預測。
[0565]實施方式的所述至少一個姿勢部件通過將所述身體預測與一組身體模型相比較來檢測所述身體。
[0566]實施方式的所述至少一個姿勢部件跟蹤所述身體。
[0567]實施方式的所述至少一個姿勢部件使用所述姿勢數據檢測所述身體的姿勢。
[0568]實施方式的所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
[0569]實施方式的所述至少一個姿勢部件使用姿勢記號將所述姿勢翻譯成姿勢信號。[0570]實施方式的所述至少一個姿勢部件使用所述姿勢信號控制計算機應用。
[0571]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件檢測所述身體的附肢的段并且使用所述段確定所述身體的取向。所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0572]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件檢測所述身體的附肢的段并且使用所述段確定所述身體的取向;其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0573]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段。所述姿勢部件使用所述段的數據確定所述身體的取向。所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0574]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段;其中,所述姿勢部件使用所述段的數據確定所述身體的取向;并且其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0575]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件通過檢測所述身體的附肢的段并且使用所述段確定所述身體的取向來根據所述姿勢數據檢測所述身體的姿勢。所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且當跟蹤所述身體時使用所述姿勢數據標識所述姿勢。所述姿勢部件生成姿勢信號,所述姿勢信號表示所述姿勢并且提供所述姿勢信號作為控制信號。
[0576]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件通過檢測所述身體的附肢的段并且使用所述段確定所述身體的取向來根據所述姿勢數據檢測所述身體的姿勢;其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且當跟蹤所述身體時使用所述姿勢數據標識所述姿勢;并且其中,所述姿勢部件生成姿勢信號,所述姿勢信號表示所述姿勢并且提供所述姿勢信號作為控制信號。
[0577]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件進行以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號。所述姿勢部件響應于所述姿勢信號而控制耦接到計算機的部件。
[0578]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體;其中,所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號;并且其中,所述姿勢部件響應于所述姿勢信號而控制耦接到計算機的部件。
[0579]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向。所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。所述姿勢部件僅使用所述姿勢數據檢測和標識所述身體的姿勢。所述姿勢部件將所述姿勢翻譯成姿勢信號。所述姿勢部件使用所述姿勢信號控制計算機部件。
[0580]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向;其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體;其中,所述姿勢部件僅使用所述姿勢數據檢測和標識所述身體的姿勢;其中,所述姿勢部件將所述姿勢翻譯成姿勢信號;并且其中,所述姿勢部件使用所述姿勢信號控制計算機部件。
[0581]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件檢測所述身體的附肢的段并且使用所述段確定所述身體的取向。所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0582]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件檢測所述身體的附肢的段并且使用所述段確定所述身體的取向;其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
[0583]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器。所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據。所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢。所述姿勢部件將所述姿勢翻譯成姿勢信號并且使用所述姿勢信號控制計算機部件。
[0584]本文中所描述的實施方式包括一種系統(tǒng),所述系統(tǒng)包括:至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器;其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據;其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體;其中,所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢;并且其中,所述姿勢部件將所述姿勢翻譯成姿勢信號并且使用所述姿勢信號控制計算機部件。
[0585]這里所描述的系統(tǒng)和方法包括處理系統(tǒng),并且/或者在處理系統(tǒng)下運行和/或與處理系統(tǒng)相關聯(lián)地運行。在本領域中已知,處理系統(tǒng)包括處理系統(tǒng)或裝置的部件、或者一起工作的計算裝置或基于處理器的裝置的任何集合。例如,處理系統(tǒng)可包括便攜式計算機、在通信網絡中工作的便攜式通信裝置和/或網絡服務器中的一個或多個。便攜式計算機可以是從個人計算機、移動電話、個人數字助理、便攜式計算裝置和便攜式通信裝置中選擇的任何多個裝置和/或裝置組合,但不限于此。處理系統(tǒng)可包括更大的計算機系統(tǒng)內的部件。
[0586]實施方式的處理系統(tǒng)包括至少一個處理器和至少一個存儲器件或子系統(tǒng)。處理系統(tǒng)還可包括或耦接到至少一個數據庫。這里廣泛使用的術語“處理器”指的是任何邏輯處理單元,比如一個或多個中央處理單元(CPU)、數字信號處理器(DSP)、專用集成電路(ASIC)等。處理器和存儲器可單片地集成到單個芯片上,分布在主機系統(tǒng)的多個芯片或部件當中,和/或由某個算法組合提供。這里所述的方法可以用軟件算法、程序、固件、硬件、部件、電路中的一個或多個以任意組合加以實現(xiàn)。
[0587]體現(xiàn)這里所述的系統(tǒng)和方法的系統(tǒng)部件可放置在一起或者放置在分開的位置。因此,體現(xiàn)這里所述的系統(tǒng)和方法的系統(tǒng)部件可以是單個系統(tǒng)、多個系統(tǒng)和/或地理上分開的系統(tǒng)的部件。這些部件也可以是單個系統(tǒng)、多個系統(tǒng)和/或地理上分開的系統(tǒng)的子部件或子系統(tǒng)。這些部件可耦接到主機系統(tǒng)或與主機系統(tǒng)耦接的系統(tǒng)的一個或多個其他部件。
[0588]通信路徑將系統(tǒng)部件耦接,并包括用于在部件之間通信或傳遞文件的介質。通信路徑包括無線連接、有線連接和混合無線/有線連接。通信路徑還包括:與包括局域網(LAN)、城域網(MAN)、萬維網(WAN)、專用網絡、辦公網絡或后端網絡以及因特網在內的網絡的耦接或連接。此外,通信路徑包括可拆卸的固定介質,如軟盤、硬盤驅動器和CD-ROM盤、以及閃存RAM、通用串行總線(USB)連接、RS-232連接、電話線、總線和電子郵件消息。[0589]除了上下文另有明確要求,在整個描述中,詞語“包括”等應以與排他性或窮舉性含義相反的包括性含義來解釋;亦即,應以“包括但不限于”的含義加以解釋。同樣,使用單數或復數的詞語分別包括復數或單數。另外,詞語“這里”、“下文中”、“上面”、“下面”和意思類似的詞語是指本申請的整體,而不是指本申請的任何特定部分。當針對兩個或更多項目的列表而使用詞語“或”時,該詞語涵蓋該詞語的所有以下解釋:該列表中的任何項目、該列表中的所有項目以及該列表中的項目的任何組合。
[0590]對處理環(huán)境的實施方式的以上描述不意在是排他性的,所描述的系統(tǒng)和方法不限于所公開的精確形式。盡管這里為說明的目的描述了處理環(huán)境的【具體實施方式】和例子,但本領域的技術人員應認識到,在其他系統(tǒng)和方法的范圍內可以進行各種等效修改。這里提供的處理環(huán)境的教導可應用于其他處理系統(tǒng)和方法,而不僅是上面描述的系統(tǒng)和方法。
[0591]可將上面描述的各種實施方式的要素和操作相組合以提供更多的實施例??筛鶕厦娴脑敿毭枋鰧μ幚憝h(huán)境進行這些和其他改變。
【權利要求】
1.一種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據;以及 以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
2.根據權利要求1所述的方法,包括:使用所述姿勢數據檢測所述身體的所述附肢并且標識所述附肢的段。
3.根據權利要求2所述的方法,包括:通過如下方式檢測所述身體的所述附肢:區(qū)分包括所述附肢的至少一個第一像素區(qū)域與不存在所述附肢的至少一個第二像素區(qū)域。
4.根據權利要求2所述的方法,其中,所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
5.根據權利要求4所述的方法,包括:將每個視頻幀轉換成二進制圖像。
6.根據權利要求4所述的方法,包括:對所述多個視頻幀中的每個視頻幀進行預處理,所述預處理包括對所述附肢的所述檢測以及對所述附肢的所述段的所述標識。
7.根據權利要求6所述的方法,包括:使用所述段的數據生成所述身體的估計取向。
8.根據權利要求4所述的方法,包括:將所述多個視頻幀中的每個視頻幀與背景模型相比較。
9.根據權利要求8所述的方法,包括:通過計算所述多個視頻幀的適應運行平均來生成所述背景模型。
10.根據權利要求9所述的方法,包括:將所述背景模型轉換成背景二進制圖像。
11.根據權利要求8所述的方法,包括:對于所述視頻幀的每個像素計算所述視頻幀的相應像素的第一像素值與所述背景模型的每個相應對應像素的第二像素值之間的像素值差異。
12.根據權利要求11所述的方法,包括:通過標記所述視頻幀的如下每個像素來生成被標記的像素:對于所述每個像素而言的所述像素值差異超過閾值。
13.根據權利要求12所述的方法,包括:生成包括所述被標記的像素的前景圖像。
14.根據權利要求13所述的方法,包括:從所述姿勢數據中提取至少一個特征,其中,所述至少一個特征包括所述前景圖像的至少一個像素。
15.根據權利要求14所述的方法,其中,所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
16.根據權利要求14所述的方法,其中,所述至少一個特征包括至少一個盒子,其中,所述至少一個盒子是使用所述姿勢數據的至少一個查詢區(qū)域內的多個坐標來規(guī)定的。
17.根據權利要求16所述的方法,包括:使用所述至少一個盒子的左上坐標和右下坐標來規(guī)定所述至少一個盒子。
18.根據權利要求16所述的方法,其中,所述至少一個盒子由所述至少一個前景圖像的多個像素來表征。
19.根據權利要求16所述的方法,其中,所述至少一個特征包括至少一個環(huán),其中,所述至少一個環(huán)是盒子內的未被填充的矩形區(qū)域。
20.根據權利要求19所述的方法,其中,所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
21.根據權利要求20所述的方法,其中,所述附肢包括指尖。
22.根據權利要求21所述的方法,其中,所述身體包括手指。
23.根據權利要求20所述的方法,其中,所述身體包括手。
24.根據權利要求20所述的方法,其中,所述身體包括臂。
25.根據權利要求20所述的方法,包括:對于所述附肢的每個被檢測到的實例生成與所述附肢對應的身體預測。
26.根據權利要求25所述的方法,其中,所述身體預測包括與所述附肢對應的預測位置。
27.根據權利要求25所述的方法,其中,所述身體預測包括與所述被檢測到的區(qū)域對應的所述估計取向。
28.根據權利要求25所述的方法,包括:生成身體預測列表并且將所述身體預測存儲在所述身體預測列表中,其中,所述身體預測列表包括多個身體預測。
29.根據權利要求28所述的方法,包括:生成對于所述視頻幀而言的邊緣圖像。
30.根據權利要求29所述的方法,其中,所述邊緣圖像的所述生成由邊緣檢測器提供。
31.根據權利要求29所述的方法,包括:生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
32.根據權利要求31所述的方法,其中,所述邊緣取向圖像的所述生成包括計算由局部偏導數暗示的角度。
33.根據權利要求31所述的方法,包括:當對所述身體的跟蹤在進行中時,使用根據至少一個先前視頻幀對所述身體預測的先前估計來生成對于所述身體預測而言的預測估計。
34.根據權利要求33所述的方法,包括:當對多個身體假設的跟蹤在進行中時,使用根據至少一個先前視頻幀對所述身體預測的先前估計來對于每個身體假設生成對于所述身體預測而言的預測估計。
35.根據權利要求33所述的方法,包括:從所述身體預測列表中移除與所述視頻幀對應的所述身體預測的復制件。
36.根據權利要求33所述的方法,包括:對于每個預測估計標識最佳參數值。
37.根據權利要求36所述的方法,包括:使用粒子群優(yōu)化標識所述最佳參數值。
38.根據權利要求36所述的方法,包括:使用一組身體模型標識所述最佳參數值。
39.根據權利要求38所述的方法,其中,所述組身體模型包括一組手模型。
40.根據權利要求38所述的方法,包括:通過創(chuàng)建與多個姿態(tài)中的每個姿態(tài)中的手的形狀匹配的輪廓來生成所述組手模型。
41.根據權利要求40所述的方法,包括:使用二次b樣條表示所述輪廓。
42.根據權利要求38所述的方法,其中,所述最佳參數值包括與所述組身體模型中的身體模型最佳地匹配的身體預測的至少一個參數值,其中,所述身體預測與所述姿勢數據對應。
43.根據權利要求42所述的方法,其中,所述最佳參數值包括位置、比例和取向中的至少一個。
44.根據權利要求42所述的方法,其中,所述最佳參數值包括位置。
45.根據權利要求42所述的方法,其中,所述最佳參數值包括比例。
46.根據權利要求42所述的方法,其中,所述最佳參數值包括取向。
47.根據權利要求42所述的方法,包括:對于每個參數值更新所述身體模型的手樣條的控制點。
48.根據權利要求47所述的方法,其中,所述更新包括通過平移、比例縮放和旋轉中的至少一個來更新。
49.根據權利要求47所述的方法,其中,所述更新包括通過平移來更新。
50.根據權利要求47所述的方法,其中,所述更新包括通過比例縮放來更新。
51.根據權利要求47所述的方法,其中,所述更新包括通過旋轉來更新。
52.根據權利要求47所述的方法,包括:沿著所述手樣條進行采樣。
53.根據權利要求52所述的方法,包括:將所述手樣條的局部輪廓取向與所述視頻幀的所述邊緣取向圖像的有取向的邊緣相比較。
54.根據權利要求53所述的方法,包括:通過沿著所述手樣條的法線搜索具有匹配取向的、最靠近所述身體預測的邊緣來進行比較。
55.根據權利要求53所述的方法,包括:使用所述最佳參數值更新所述多個預測估計。
56.根據權利要求55所述的方法,包括:當最高得分的預測估計超過閾值時,將所述最高得分的預測估計報告為當前身體位置。
57.根據權利要求56所述的方法,包括:當所述最高得分的預測估計小于所述閾值時,報告對應的幀中不存在身體。
58.根據權利要求4所述的方法,包括:使用所述姿勢數據檢測所述身體的姿勢。
59.根據權利要求58所述的方法,其中,所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
60.根據權利要求58所述的方法,包括:使用姿勢記號將所述姿勢翻譯成姿勢信號。
61.根據權利要求60所述的方法,包括:使用所述姿勢信號控制耦接到計算機的部件。
62.根據權利要求61所述的方法,包括:標識所述姿勢,其中,所述標識包括標識所述身體的一部分的姿態(tài)和取向。
63.根據權利要求62所述的方法,其中,所述檢測包括生成表示所述姿勢的三維空間點數據并且標記所述空間點數據。
64.根據權利要求63所述的方法,其中,所述翻譯包括將所述空間點數據翻譯成適合于所述計算機的配置的命令。
65.根據權利要求61所述的方法,其中,所述翻譯包括將所述姿勢的信息翻譯成姿勢記號。
66.根據權利要求65所述的方法,其中,所述姿勢記號表示姿勢詞匯,并且所述姿勢信號包括所述姿勢詞匯的通信。
67.根據權利要求66所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的瞬時姿態(tài)狀態(tài)。
68.根據權利要求66所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向。
69.根據權利要求66所述的方法,其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向的組合。
70.根據權利要求66所述的方法,其中,所述姿勢詞匯包括表示所述身體的運動學聯(lián)動機構的狀態(tài)的字符串。
71.根據權利要求70所述的方法,包括:將所述串中的每個位置分配給所述附肢。
72.根據權利要求71所述的方法,包括:將多個字符中的字符分配給所述附肢的多個位置中的每個位置。
73.根據權利要求72所述的方法,其中,所述多個位置是相對于坐標原點建立的。
74.根據權利要求73所述的方法,包括:使用如下位置建立所述坐標原點:所述位置選自于包括空間中的絕對位置和取向、交互地響應于所述身體的動作的、以及不管所述身體的總體位置和朝向如何而相對于所述身體的固定位置和取向的組。
75.根據權利要求72所述的方法,包括:將所述多個字符中的字符分配給所述附肢的多個取向中的每個取向。
76.根據權利要求61所述的方法,其中,控制所述部件包括通過將所述附肢的所述姿勢映射到三度空間對象來同時以六個自由度控制所述三度空間對象。
77.根據權利要求61所述的方法,其中,控制所述部件包括通過三個平移自由度和三個旋轉自由度來控制三度空間對象。
78.根據權利要求77所述的方法,其中,所述三度空間對象被呈現(xiàn)在耦接到所述計算機的顯示裝置上。
79.根據權利要求77所述的方法,其中,所述三度空間對象耦接到所述計算機。
80.根據權利要求77所述的方法,其中,所述檢測包括檢測所述對象的外推位置何時與虛擬空間相交,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間。
81.根據權利要求80所述的方法,其中,控制所述部件包括當所述外推位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
82.根據權利要求58所述的方法,包括:控制所述檢測和控制的比例縮放以生成虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間,其中,所述物理空間包括由所述身體占據的空間。
83.根據權利要求82所述的方法,包括:確定耦接到所述計算機的顯示裝置的所述物理空間中的尺度、取向和位置。
84.根據權利要求83所述的方法,包括:將所述顯示裝置所位于的所述物理空間作為投影動態(tài)地映射到耦接到所述計算機的至少一個應用的所述虛擬空間中。
85.根據權利要求82所述的方法,包括:在所述虛擬空間與所述物理空間之間翻譯比例、角度、深度和尺度以適合于耦接到所述計算機的至少一個應用。
86.根據權利要求82所述的方法,包括:響應于至少一個物理對象在所述物理空間中的移動而控制所述虛擬空間中的至少一個虛擬對象。
87.根據權利要求82所述的方法,包括:響應于所述身體在物理空間中相對于所述顯示裝置的位置的位置而控制所述顯示裝置上的圖形渲染。
88.一種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據; 使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域;以及以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
89.根據權利要求88所述的方法,其中,所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
90.根據權利要求89所述的方法,包括:檢測所述多個視頻幀中的運動。
91.根據權利要求90所述的方法,包括:通過區(qū)分包括所述附肢的視頻幀的至少一個第一像素區(qū)域與不存在所述附肢的所述視頻幀的至少一個第二像素區(qū)域來檢測所述附肢。
92.根據權利要求91所述的方法,包括:檢測所述視頻幀的邊緣像素。
93.根據權利要求92所述的方法,包括:生成對于所述視頻幀而言的邊緣圖像。
94.根據權利要求93所述的方法,包括:生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
95.根據權利要求94 所述的方法,其中,所述邊緣取向圖像的所述生成包括計算由所述視頻幀的局部偏導數暗示的角度。
96.根據權利要求94所述的方法,包括:當跟蹤數據可用時,使用所述跟蹤數據生成身體預測。
97.根據權利要求96所述的方法,包括:使用所述邊緣像素、所述邊緣取向圖像和所述附肢中的至少一個來生成身體預測。
98.根據權利要求97所述的方法,包括:通過將所述身體預測與一組身體模型相比較來檢測所述身體。
99.根據權利要求98所述的方法,包括:跟蹤所述身體。
100.根據權利要求99所述的方法,包括:使用所述姿勢數據檢測所述身體的姿勢。
101.根據權利要求100所述的方法,其中,所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
102.根據權利要求100所述的方法,包括:使用姿勢記號將所述姿勢翻譯成姿勢信號。
103.根據權利要求102所述的方法,包括:使用所述姿勢信號控制計算機應用。
104.一種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據; 檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向;以及 使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
105.—種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據; 使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段; 使用所述段的數據生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
106.—種方法,包括: 根據通過光學檢測器接收到的姿勢數據來檢測身體的姿勢,其中,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間位置數據,所述檢測包括檢測所述身體的附肢的段并且使用所述段生成所述身體的估計取向; 使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且在跟蹤時使用所述姿勢數據標識所述姿勢;以及 生成表示所述姿勢的姿 勢信號并且提供所述姿勢信號作為控制信號。
107.一種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據; 以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體; 使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號;以及 響應于所述姿勢信號而控制耦接到計算機的部件。
108.—種方法,包括: 通過光學檢測器接收姿勢數據,所述姿勢數據是在時間和空間中的一點處身體的瞬時狀態(tài)的絕對三度空間數據; 使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向; 使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體; 僅使用所述姿勢數據檢測和標識所述身體的姿勢; 將所述姿勢翻譯成姿勢信號;以及 使用所述姿勢信號控制計算機部件。
109.一種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
110.根據權利要求1所述的系統(tǒng),其中,所述姿勢部件使用所述姿勢數據檢測所述身體的所述附肢并且標識所述附肢的段。
111.根據權利要求110所述的系統(tǒng),其中,所述姿勢部件通過如下方式檢測所述身體的所述附肢:區(qū)分包括所述附肢的至少一個第一像素區(qū)域與不存在所述附肢的至少一個第二像素區(qū)域。
112.根據權利要求110所述的系統(tǒng),其中,所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
113.根據權利要求112所述的系統(tǒng),包括:將每個視頻幀轉換成二進制圖像。
114.根據權利要求112所述的系統(tǒng),包括:對所述多個視頻幀中的每個視頻幀進行預處理,所述預處理包括對所述附肢的所述檢測以及對所述附肢的所述段的所述標識。
115.根據權利要求114所述的系統(tǒng),其中,所述姿勢部件使用所述段的數據生成所述身體的估計取向。
116.根據權利要求112所述的系統(tǒng),其中,所述姿勢部件將所述多個視頻幀中的每個視頻幀與背景模型相比較。
117.根據權利要求116所述的系統(tǒng),其中,所述姿勢部件通過計算所述多個視頻幀的適應運行平均來生成所述背景模型。
118.根據權利要求117所述的系統(tǒng),其中,所述姿勢部件將所述背景模型轉換成背景二進制圖像。
119.根據權利要求116所述的系統(tǒng),其中,所述姿勢部件對于所述視頻幀的每個像素計算所述視頻幀的相應像素的第一像素值與所述背景模型的每個相應對應像素的第二像素值之間的像素值差異。
120.根據權利要求119所述的系統(tǒng),其中,所述姿勢部件通過標記所述視頻幀的如下每個像素來生成被標記的像素:對于所述每個像素而言的所述像素值差異超過閾值。
121.根據權利要求120所述的系統(tǒng),其中,所述姿勢部件生成包括所述被標記的像素的前景圖像。
122.根據權利要求121所述的系統(tǒng),其中,所述姿勢部件從所述姿勢數據中提取至少一個特征,其中,所述至少一個特征包括所述前景圖像的至少一個像素。
123.根據權利要求122所述的系統(tǒng),其中,所述檢測包括:將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
124.根據權利要求122所述的系統(tǒng),其中,所述至少一個特征包括至少一個盒子,其中,所述至少一個盒子是使用所述姿勢數據的至少一個查詢區(qū)域內的多個坐標來規(guī)定的。
125.根據權利要求124所述的系統(tǒng),其中,所述姿勢部件使用所述至少一個盒子的左上坐標和右下坐標來規(guī)定所述至少一個盒子。
126.根據權利要求124所述的系統(tǒng),其中,所述至少一個盒子由所述至少一個前景圖像的多個像素來表征。
127.根據權利要求124所述的系統(tǒng),其中,所述至少一個特征包括至少一個環(huán),其中,所述至少一個環(huán)是盒子內的未被填充的矩形區(qū)域。
128.根據權利要求127所述的系統(tǒng),其中,所述姿勢部件將所述至少一個特征依次施加到多個過濾器,并且當所述至少一個特征被所述多個過濾器中的所有過濾器接受時,將所述至少一個特征標識為包括所述附肢。
129.根據權利要求128所述的系統(tǒng),其中,所述附肢包括指尖。
130.根據權利要求129所述的系統(tǒng),其中,所述身體包括手指。
131.根據權利要求128所述的系統(tǒng),其中,所述身體包括手。
132.根據權利要求128所述的系統(tǒng),其中,所述身體包括臂。
133.根據權利要求128所述的系統(tǒng),其中,所述姿勢部件對于所述附肢的每個被檢測到的實例生成與所述附肢對應的身體預測。
134.根據權利要求133所述的系統(tǒng),其中,所述身體預測包括與所述附肢對應的預測位置。
135.根據權利要求133所述的系統(tǒng),其中,所述身體預測包括與所述被檢測到的區(qū)域對應的所述估計取向。
136.根據權利要求133所述的系統(tǒng),其中,所述姿勢部件生成身體預測列表并且將所述身體預測包括在所述身體預測列表中,其中,所述身體預測列表包括多個身體預測。
137.根據權利要求136所述的系統(tǒng),其中,所述姿勢部件生成對于所述視頻幀而言的邊緣圖像。
138.根據權利要求137所述的系統(tǒng),其中,所述邊緣圖像的所述生成由邊緣檢測器提供。
139.根據權利要求137所述的系統(tǒng),其中,所述姿勢部件生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
140.根據權利要求139所述的系統(tǒng),其中,所述邊緣取向圖像的所述生成包括計算由局部偏導數暗示的角度。
141.根據權利要求139所述的系統(tǒng),其中,所述姿勢部件當對所述身體的跟蹤在進行中時使用根據至少一個先前視頻幀對所述身體預測的先前估計來生成對于所述身體預測而言的預測估計。
142.根據權利要求141所述的系統(tǒng),其中,所述姿勢部件當對多個身體假設的跟蹤在進行中時使用根據至少一個先前視頻幀對所述身體預測的先前估計來對于每個身體假設生成對于所述身體預測而言的預測估計。
143.根據權利要求141所述的系統(tǒng),其中,所述姿勢部件從所述身體預測列表中移除與所述視頻幀對應的所述身體預測的復制件。
144.根據權利要求141所述的系統(tǒng),其中,所述姿勢部件對于每個預測估計標識最佳參數值。
145.根據權利要求144所述的系統(tǒng),其中,所述姿勢部件使用粒子群優(yōu)化標識所述最佳參數值。
146.根據權利要求144所述的系統(tǒng),其中,所述姿勢部件使用一組身體模型標識所述最佳參數值。
147.根據權利要求146所述的系統(tǒng),其中,所述組身體模型包括一組手模型。
148.根據權利要求146所述的系統(tǒng),包括:通過創(chuàng)建與多個姿態(tài)中的每個姿態(tài)中的手的形狀匹配的輪廓來生成所述組手模型。
149.根據權利要求148所述的系統(tǒng),包括:使用二次b樣條表示所述輪廓。
150.根據權利要求146所述的系統(tǒng),其中,所述最佳參數值包括與所述組身體模型中的身體模型最佳地匹配的身體預測的至少一個參數值,其中,所述身體預測與所述姿勢數據對應。
151.根據權利要求150所述的系統(tǒng),其中,所述最佳參數值包括位置、比例和取向中的至少一個。
152.根據權利要求150所述的系統(tǒng),其中,所述最佳參數值包括位置。
153.根據權利要求150所述的系統(tǒng),其中,所述最佳參數值包括比例。
154.根據權利要求150所述的系統(tǒng),其中,所述最佳參數值包括取向。
155.根據權利要求150所述的系統(tǒng),其中,所述姿勢部件對于每個參數值更新所述身體模型的手樣條的控制點。
156.根據權利要求155所述的系統(tǒng),其中,所述更新包括通過平移、比例縮放和旋轉中的至少一個來更新。
157.根據權利要求155所述的系統(tǒng),其中,所述更新包括通過平移來更新。
158.根據權利要求155所述的系統(tǒng),其中,所述更新包括通過比例縮放來更新。
159.根據權利要求155所述的系統(tǒng),其中,所述更新包括通過旋轉來更新。
160.根據權利要求155所述的系統(tǒng),包括:沿著所述手樣條進行采樣。
161.根據權利要求160所述的系統(tǒng),其中,所述姿勢部件將所述手樣條的局部輪廓取向與所述視頻幀的所述邊緣取向圖像的有取向的邊緣相比較。
162.根 據權利要求161所述的系統(tǒng),其中,所述姿勢部件通過沿著所述手樣條的法線搜索具有匹配取向的、最靠近所述身體預測的邊緣來進行比較。
163.根據權利要求161所述的系統(tǒng),其中,所述姿勢部件使用所述最佳參數值更新所述多個預測估計。
164.根據權利要求163所述的系統(tǒng),其中,當最高得分的預測估計超過閾值時,所述姿勢部件將所述最高得分的預測估計報告為當前身體位置。
165.根據權利要求164所述的系統(tǒng),其中,當所述最高得分的預測估計小于所述閾值時,所述姿勢部件報告對應的幀中不存在身體。
166.根據權利要求112所述的系統(tǒng),其中,所述姿勢部件使用所述姿勢數據檢測所述身體的姿勢。
167.根據權利要求166所述的系統(tǒng),其中,所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
168.根據權利要求166所述的系統(tǒng),其中,所述姿勢部件使用姿勢記號將所述姿勢翻譯成姿勢信號。
169.根據權利要求168所述的系統(tǒng),其中,所述姿勢部件使用所述姿勢信號控制耦接到計算機的部件。
170.根據權利要求169所述的系統(tǒng),其中,所述姿勢部件標識所述姿勢,其中,所述標識包括標識所述身體的一部分的姿態(tài)和取向。
171.根據權利要求170所述的系統(tǒng),其中,所述檢測包括生成表示所述姿勢的三維空間點數據并且標記所述空間點數據。
172.根據權利要求171所述的系統(tǒng),其中,所述翻譯包括將所述空間點數據翻譯成適合于所述計算機的配置的命令。
173.根據權利要求169所述的系統(tǒng),其中,所述翻譯包括將所述姿勢的信息翻譯成姿勢記號。
174.根據權利要求173所述的系統(tǒng),其中,所述姿勢記號表示姿勢詞匯,并且所述姿勢信號包括所述姿勢詞匯的通信。
175.根據權利要求174所述的系統(tǒng),其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的瞬時姿態(tài)狀態(tài)。
176.根據權利要求174所述的系統(tǒng),其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向。
177.根據權利要求174所述的系統(tǒng),其中,所述姿勢詞匯以文本形式表示所述身體的運動學聯(lián)動機構的取向的組合。
178.根據權利要求174所述的系統(tǒng),其中,所述姿勢詞匯包括表示所述身體的運動學聯(lián)動機構的狀態(tài)的字符串。
179.根據權利要求178所述的系統(tǒng),其中,所述姿勢部件將所述串中的每個位置分配給所述附肢。
180.根據權利要求179所述的系統(tǒng),其中,所述姿勢部件將多個字符中的字符分配給所述附肢的多個位置中的每個位置。
181.根據權利要求180所述的系統(tǒng),其中,所述多個位置是相對于坐標原點建立的。
182.根據權利要求181所述的系統(tǒng),其中,所述姿勢部件使用如下位置建立所述坐標原點:所述位置選自于包括空間中的絕對位置和取向、交互地響應于所述身體的動作的、以及不管所述身體的總體位置和朝向如何而相對于所述身體的固定位置和取向的組。
183.根據權利要求180所述的系統(tǒng),其中,所述姿勢部件將所述多個字符中的字符分配給所述附肢的多個取向中的每個取向。
184.根據權利要求169所述的系統(tǒng),其中,控制所述部件包括通過將所述附肢的所述姿勢映射到三度空間對象來 同時以六個自由度控制所述三度空間對象。
185.根據權利要求169所述的系統(tǒng),其中,控制所述部件包括通過三個平移自由度和三個旋轉自由度來控制三度空間對象。
186.根據權利要求185所述的系統(tǒng),其中,所述三度空間對象被呈現(xiàn)在耦接到所述計算機的顯示裝置上。
187.根據權利要求185所述的系統(tǒng),其中,所述三度空間對象耦接到所述計算機。
188.根據權利要求185所述的系統(tǒng),其中,所述檢測包括檢測所述對象的外推位置何時與虛擬空間相交,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間。
189.根據權利要求188所述的系統(tǒng),其中,控制所述部件包括當所述外推位置與所述虛擬空間中的虛擬對象相交時控制所述虛擬對象。
190.根據權利要求166所述的系統(tǒng),包括:控制所述檢測和控制的比例縮放以生成虛擬空間與物理空間之間的一致性,其中,所述虛擬空間包括被描繪在耦接到所述計算機的顯示裝置上的空間,其中,所述物理空間包括由所述身體占據的空間。
191.根據權利要求190所述的系統(tǒng),包括:確定耦接到所述計算機的顯示裝置的所述物理空間中的尺度、取向和位置。
192.根據權利要求191所述的系統(tǒng),包括:將所述顯示裝置所位于的所述物理空間作為投影動態(tài)地映射到耦接到所述計算機的至少一個應用的所述虛擬空間中。
193.根據權利要求190所述的系統(tǒng),包括:在所述虛擬空間與所述物理空間之間翻譯比例、角度、深度和尺度以適合于耦接到所述計算機的至少一個應用。
194.根據權利要求190所述的系統(tǒng),包括:響應于至少一個物理對象在所述物理空間中的移動而控制所述虛擬空間中的至少一個虛擬對象。
195.根據權利要求190所述的系統(tǒng),包括:響應于所述身體在物理空間中相對于所述顯示裝置的位置的位置而控制所述顯示裝置上的圖形渲染。
196.一種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述至少一個姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的區(qū)域;并且 其中,所述至少一個姿勢部件進行以下中的至少一個:使用所述附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體。
197.根據權利要求196所述的系統(tǒng),其中,所述光學檢測器包括輸出多個視頻幀的視頻檢測器,所述多個視頻幀包括所述姿勢數據。
198.根據權利要求197所述的系統(tǒng),其中,所述至少一個姿勢部件檢測所述多個視頻幀中的運動。
199.根據權利要求198 所述的系統(tǒng),其中,所述至少一個姿勢部件通過區(qū)分包括所述附肢的視頻幀的至少一個第一像素區(qū)域與不存在所述附肢的視頻幀的至少一個第二像素區(qū)域來檢測所述附肢。
200.根據權利要求199所述的系統(tǒng),其中,所述至少一個姿勢部件檢測所述視頻幀的邊緣像素。
201.根據權利要求200所述的系統(tǒng),其中,所述至少一個姿勢部件生成對于所述視頻幀而言的邊緣圖像。
202.根據權利要求201所述的系統(tǒng),其中,所述至少一個姿勢部件生成對于所述邊緣圖像的每個邊緣像素而言的邊緣取向圖像。
203.根據權利要求202所述的系統(tǒng),其中,所述邊緣取向圖像的所述生成包括計算由所述視頻幀的局部偏導數暗示的角度。
204.根據權利要求202所述的系統(tǒng),其中,當跟蹤數據可用時,所述至少一個姿勢部件使用所述跟蹤數據生成身體預測。
205.根據權利要求204所述的系統(tǒng),其中,所述至少一個姿勢部件使用所述邊緣像素、所述邊緣取向圖像和所述附肢中的至少一個來生成身體預測。
206.根據權利要求205所述的系統(tǒng),其中,所述至少一個姿勢部件通過將所述身體預測與一組身體模型相比較來檢測所述身體。
207.根據權利要求206所述的系統(tǒng),其中,所述至少一個姿勢部件跟蹤所述身體。
208.根據權利要求207所述的系統(tǒng),其中,所述至少一個姿勢部件使用所述姿勢數據檢測所述身體的姿勢。
209.根據權利要求208所述的系統(tǒng),其中,所述姿勢包括所述身體的姿態(tài)和運動中的至少一個。
210.根據權利要求208所述的系統(tǒng),其中,所述至少一個姿勢部件使用姿勢記號將所述姿勢翻譯成姿勢信號。
211.根據權利要去210所述的系統(tǒng),其中,所述至少一個姿勢部件使用所述姿勢信號控制計算機應用。
212.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件檢測所述身體的附肢的段并且使用所述段確定所述身體的取向; 其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
213.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段; 其中,所述姿勢部件使用所述段的數據確定所述身體的取向;并且 其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
214.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件通過檢測所述身體的附肢的段并且使用所述段確定所述身體的取向來根據所述姿勢數據檢測所述身體的姿勢; 其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體,并且在跟蹤時使用所述姿勢數據標識所述姿勢;并且 其中,所述姿勢部件生成姿勢信號,所述姿勢信號表示所述姿勢并且提供所述姿勢信號作為控制信號。
215.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢生成所述身體的估計取向;以及使用所述估計取向和所述姿勢數據中的至少一個來跟蹤所述身體; 其中,所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢,并且將所述姿勢翻譯成姿勢信號;并且 其中,所述姿勢部件響應于所述姿勢信號而控制耦接到計算機的部件。
216.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件使用所述姿勢數據檢測所述身體的附肢并且標識所述附肢的段,并且使用所述段確定所述身體的取向;其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體; 其中,所述姿勢部件僅使用所述姿勢數據檢測和標識所述身體的姿勢; 其中,所述姿勢部件將所述姿勢翻譯成姿勢信號;并且 其中,所述姿勢部件使用所述姿勢信號控制計算機部件。
217.一種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件檢測 所述身體的附肢的段并且使用所述段確定所述身體的取向; 其中,所述姿勢部件使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體。
218.—種系統(tǒng),包括: 至少一個光學檢測器,所述至少一個光學檢測器耦接到執(zhí)行姿勢部件的處理器; 其中,所述至少一個光學檢測器對身體成像并且接收姿勢數據,所述姿勢數據是在時間和空間中的一點處所述身體的瞬時狀態(tài)的絕對三度空間數據; 其中,所述姿勢部件進行以下中的至少一個:使用所述身體的附肢確定所述身體的取向;以及使用所述取向和所述姿勢數據中的至少一個來跟蹤所述身體; 其中,所述姿勢部件使用所述姿勢數據檢測和標識所述身體的姿勢;并且 其中,所述姿勢部件將所述姿勢翻譯成姿勢信號并且使用所述姿勢信號控制計算機部件。
【文檔編號】G06F3/01GK103988150SQ201280025109
【公開日】2014年8月13日 申請日期:2012年3月26日 優(yōu)先權日:2011年3月25日
【發(fā)明者】大衛(wèi)·米寧 申請人:奧布隆工業(yè)有限公司