新四季網

姿勢教練的製作方法

2023-05-26 15:57:31

專利名稱:姿勢教練的製作方法
背景技術:
諸如計算機遊戲、多媒體應用、辦公應用等許多計算應用使用控制來允許用戶操縱遊戲角色或應用的其他方面。通常使用例如控制器、遙控器、鍵盤、滑鼠等等來輸入這樣的控制。不幸的是,這些控制可能是難以學習的,由此造成了用戶和這些遊戲及應用之間的障礙。此外,這些控制可能與這些控制所用於的實際遊戲動作或其他應用動作不同。例如, 使得遊戲角色揮動棒球拍的遊戲控制可能不與揮動棒球拍的實際運動相對應。

發明內容
在某些系統中,顯示設備可顯示映射到已由系統捕捉的用戶運動的模型。例如,該模型可被顯示為屏幕上的化身,其中該化身的運動可通過將該化身在應用空間中的運動映射到用戶在物理空間中的運動來得到控制。用戶可能不熟悉對用戶的運動進行映射的系統。例如,用戶可能不知道什麼姿勢適用於正在執行的應用。在一些情況下,用戶不了解或不知道如何執行適用於正在執行的應用的姿勢。手冊中的手寫或圖片描述可能不足以教導用戶如何正確地作出姿勢。此處公開了用於姿勢訓練的系統和方法。用戶試圖作出姿勢時,可以分析所捕捉的用戶數據以及來自與該所捕捉的用戶數據相對應的姿勢過濾器的輸出,以確定用戶正在試圖但未能執行姿勢,以及向用戶提供幫助是合適的。該幫助可以包括教導用戶執行該姿勢的正確方法。例如,對過濾器的輸出包括執行對應的姿勢的置信度水平,並且該置信度水平低於識別閾值時,可以確定該幫助對於教導用戶以對應的置信度水平處於或超過該識別閾值的方式執行姿勢是適合的。提供本發明內容以便以簡化形式介紹在以下具體實施方式
中進一步描述的一些概念。本發明內容並不旨在標識所要求保護主題的關鍵特徵或必要特徵,也不旨在用於限制所要求保護主題的範圍。此外,所要求保護的主題不限於解決在本發明的任一部分中提及的任何或所有缺點的實現。


參考附圖來進一步描述根據本說明書的用於姿勢訓練的系統、方法和計算機可讀介質圖IA和IB示出了關於用戶玩遊戲的目標識別、分析和跟蹤系統的示例實施例。圖2示出了可在目標識別、分析和跟蹤系統中使用並且包括姿勢訓練的捕捉設備的示例實施例。圖3示出了其中可實現此處公開的用於姿勢訓練的技術的計算環境的另一個示例實施例。圖4示出了其中可實現此處公開的用於姿勢訓練的技術的計算環境的另一個示例實施例。圖5A示出了從深度圖像生成的用戶的骨架映射。
圖5B示出了圖2所示的姿勢識別器體系結構的進一步細節。圖6A-6D示出其中用戶正在玩拳擊遊戲的目標識別、分析及跟蹤的另一示例實施例。圖7A-7D示出與用戶的姿勢的視覺表示並排的視覺幫助的示例顯示。圖8A示出疊加在用戶的姿勢的視覺表示之上的視覺幫助的示例顯示。圖8B示出包括姿勢的示範的視覺幫助的示例顯示。圖9示出用於進入練習模式以接收視覺幫助的選項的示例顯示。圖10示出通過網絡連接進行交互的遠程用戶,其中一個用戶的運動的視覺幫助被提供給第二用戶。圖IlA描繪用於姿勢訓練的示例操作過程。圖IlB和IlC描繪了與姿勢識別器引擎和應用集成的用於姿勢訓練的示例體系結構。圖12A和12B描繪了示例過濾器輸出,從其可以確定姿勢訓練是合適的。
具體實施例方式如本文中將描述的,用戶可通過執行一個或多個姿勢來控制在諸如遊戲控制臺、 計算機等計算環境上執行的應用。本文公開了用於向用戶示範所需姿勢的運動的系統和方法。例如,該計算環境可提供用於訓練用戶如何作出適用於正在執行的應用的適當運動的視覺幫助。為了生成表示物理空間中的目標或物體的模型,捕捉設備可以捕捉該物理空間的深度圖像並掃描該場景中的各個目標。目標可包括該場景中的人類或其他物體。在一個實施例中,捕捉設備可以確定場景中的一個或多個目標是否對應於諸如用戶等人類目標。為了確定場景中的目標是否對應於人類目標,可對每個目標進行泛色填充並將其與人體模型的圖案作比較。可掃描被標識為人類的目標來生成與其相關聯的骨架模型。然後可將該骨架模型提供給計算環境來跟蹤該骨架模型並呈現與該骨架模型相關聯的化身。該計算環境可將用戶在物理空間中的運動映射到顯示設備上的諸如化身等視覺表示。該計算環境可基於例如識別出並被映射到骨架模型的用戶的姿勢來確定在計算機環境上執行的應用中要執行哪些控制命令。因此,可以顯示用戶幫助,如經由屏幕上的化身,並且用戶可控制該化身的運動並執行對作業系統或正在執行的應用的控制,例如通過在物理空間中作出各個姿勢。在一些情況下,提供用於教導用戶如何正確地作出姿勢來控制正在執行的應用的視覺幫助是合乎需要的。例如,用戶可能不知道與適用於正在執行的應用的特定姿勢相對應的運動或不知道如何執行該運動。該系統可以檢測用戶的姿勢中的錯誤,從而指示該用戶需要練習來正確地作出姿勢。本說明書中描述的功能單元中的一些被標記為模塊以更具體地強調它們的實現獨立性。例如,模塊可被實現為硬體電路,該硬體電路包括自定義VLSI電路或門陣列,諸如邏輯晶片、電晶體等現貨半導體,或其他分立組件。模塊還可用可編程硬體器件來實現,如現場可編程門陣列、可編程陣列邏輯、可編程邏輯器件等。模塊也可以用由各種類型的處理器來執行的軟體來實現。所標識的可執行代碼的模塊例如包括計算機指令的一個或多個物理或邏輯塊,該計算機指令例如可被組織成目標、過程、或函數。然而,所標識的模塊的可執行代碼不必在物理上位於一處,而是可包括存儲在不同位置的不同指令,當這些指令在邏輯上聯合在一起時組成該模塊並實現該模塊的規定目的。本文描述的提供視覺練習幫助的系統、方法和組件可在諸如遊戲控制臺之類的多媒體控制臺中實施,或可在需要提供視覺幫助的任何其他計算設備中實施,作為示例但非預期的限制,這些其他計算設備包括衛星接收機、機頂盒、電子遊戲機、個人計算機(PC)、可攜式電話、個人數字助理(PDA)、以及其他手持式設備。圖IA和IB示出伴隨用戶18玩拳擊遊戲的目標識別、分析和跟蹤系統10的配置的示例實施例。在一示例實施例中,系統10可識別、分析和/或跟蹤諸如用戶18之類的人類目標。系統10可以收集與用戶在物理空間中的姿勢相關的信息。系統10可以向用戶提供示範所需姿勢的視覺幫助。可以用多種方式來觸發對視覺幫助的提供。例如,該系統可檢測到用戶運動中的錯誤或與預期運動的偏差。檢測到這樣的錯誤或偏差可觸發示範所需姿勢的視覺幫助。在另一示例中,正在執行的應用可以提供用於練習目的的、示範適當控制運動的視覺幫助。幫助可以採取各種形式,如觸覺、聽覺、 以及視覺。在一實施例中,幫助包括音頻幫助、視覺幫助、改變顯示元素的色彩、顯示元素的襯裡、顯示元素的褪色、顯示元素的閃光、這些形式的幫助的某種組合的追蹤模式。如圖IA所示,目標識別、分析及跟蹤系統10可包括計算環境12。計算環境12可以是計算機、遊戲系統或控制臺等等。根據一示例實施例,計算環境12可包括硬體組件和 /或軟體組件,使得計算環境12可用於執行諸如遊戲應用、非遊戲應用等應用。如圖IA所示,目標識別、分析及跟蹤系統10還可包括捕捉設備20。捕捉設備20 可以是例如相機,該相機可用於在視覺上監視諸如用戶18等一個或多個用戶,以使得可以捕捉、分析並跟蹤一個或多個用戶所執行的姿勢以執行應用中的一個或多個控制或動作, 如將在下面更詳細地描述的。根據一個實施例,目標識別、分析及跟蹤系統10可連接到可向諸如用戶18等用戶提供遊戲或應用視覺和/或音頻的視聽設備16,如電視機、監視器、高畫質電視機(HDTV)等。 例如,計算環境12可包括諸如圖形卡等視頻適配器和/或諸如音效卡等音頻適配器,這些適配器可提供與遊戲應用、非遊戲應用等相關聯的視聽信號。視聽設備16可從計算環境12接收視聽信號,然後可向用戶18輸出與該視聽信號相關聯的遊戲或應用視覺和/或音頻。根據一個實施例,視聽設備16可經由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA 電纜等連接到計算環境12。如圖IA和IB所示,目標識別、分析和跟蹤系統10可用於識別、分析和/或跟蹤諸如用戶18等的人類目標。例如,可使用捕捉設備20來跟蹤用戶18,以使得可將用戶18的移動解釋為可用於影響由計算機環境12執行的應用的控制。因而,根據一個實施例,用戶 18可移動他或她的身體來控制應用。如圖IA和IB所示,在一示例實施例中,在計算環境12上執行的應用可以是用戶 18可能正在玩的拳擊遊戲。例如,計算環境12可使用視聽設備16來向用戶18提供拳擊對手38的視覺表示。計算環境12還可使用視聽設備16來提供用戶18可通過他的或她的移動來控制的玩家化身40的視覺表示。例如,如圖IB所示,用戶18可在物理空間中揮拳
6來使得玩家化身40在遊戲空間中揮拳。因此,根據一示例實施例,目標識別、分析及跟蹤系統10的計算環境12和捕捉設備20可用於識別和分析用戶18在物理空間中的出拳,從而使得該出拳可被解釋為對遊戲空間中的玩家化身40的遊戲控制。用戶18的其他移動也可被解釋為其他控制或動作,諸如上下快速擺動、閃避、滑步、格擋、直拳或揮動各種不同力度的拳等控制。此外,某些移動可被解釋為可對應於除控制玩家化身40之外的動作的控制。例如,玩家可以使用移動來結束、暫停或保存遊戲、選擇級別、查看高分、與朋友交流等。如下文更詳細地描述的,系統10可以向用戶18提供用於示範適用於正在執行的應用的姿勢的視覺幫助。在一示例實施例中,視覺幫助是骨架表示、重影圖像、或玩家化身等形式的預記錄內容。在另一示例實施例中,可向用戶呈現實況內容。在各示例實施例中,諸如用戶18等人類目標可持有一物體。在這些實施例中,電子遊戲的用戶可手持物體從而可以使用玩家和物體的運動來調整和/或控制遊戲的參數。 例如,可以跟蹤並利用玩家手持球拍的運動來控制電子運動遊戲中的屏幕上球拍。在另一示例實施例中,可以跟蹤並利用玩家手持物體的運動來控制電子格鬥遊戲中的屏幕上武器。系統10可以提供用於示範與用戶相對於該玩家所持物體的在物理空間中和/或在應用空間中的運動相關的姿勢的視覺幫助。根據其他示例實施例,目標識別、分析及跟蹤系統10還可用於將目標移動解釋為遊戲領域之外的作業系統和/或應用控制。例如,事實上作業系統和/或應用的任何可控方面可由諸如用戶18等目標的移動來控制。並且系統10可以提供用於示範與作業系統和 /或應用的任何可控制方面相關的姿勢的視覺幫助。圖2示出可在目標識別、分析及跟蹤系統10中使用的捕捉設備20的示例實施例。 根據一示例實施例,捕捉設備20可被配置成經由任何合適的技術,包括例如飛行時間、結構化光、立體圖像等來捕捉包括深度圖像的帶有深度信息的視頻,該深度信息可包括深度值。根據一個實施例,捕捉設備20可將所計算的深度信息組織為「Z層」,或與從深度相機沿其視線延伸的Z軸垂直的層。如圖2所示,捕捉設備20可包括圖像相機組件22。根據一示例實施例,圖像相機組件22可以是可捕捉場景的深度圖像的深度相機或可捕捉來自該場景的色彩的RGB相機觀。深度圖像可包括被捕捉的場景的二維O-D)像素區域,其中2-D像素區域中的每一個像素都可以(例如以釐米、毫米等等為單位)表示來自相機的被捕捉的場景中的物體的長度。如圖2所示,根據一示例實施例,圖像相機組件22可包括可用於捕捉場景的深度圖像的頂光組件對、三維(3-D)相機沈、和RGB相機觀。例如,在飛行時間分析中,捕捉設備20的頂光組件M可以將紅外光發射到場景上,然後,可以使用傳感器(未示出),用例如三維相機沈和/或RGB相機觀,來檢測從場景中的一個或多個目標和物體的表面反向散射的光。在某些實施例中,可以使用脈衝紅外光,使得可以測量出射光脈衝和相應的入射光脈衝之間的時間差並將其用於確定從捕捉設備20到場景中的目標或物體上的特定位置的物理距離。另外,在其他示例性實施例中,可將出射光波的相位與入射光波的相位進行比較來確定相移。然後可以使用該相移來確定從捕捉設備到目標或物體上的特定位置的物理距
根據另一示例實施例,可使用飛行時間分析,通過經由包括例如快門式光脈衝成像在內的各種技術來隨時間分析反射光束的強度以間接地確定從捕捉設備20到目標或物體上的特定位置的物理距離。在另一示例實施例中,捕捉設備20可使用結構化光來捕捉深度信息。在該分析中,圖案化光(即,被顯示為例如網格圖案或條紋圖案的已知圖案的光)可經由例如頂光組件M被投影到場景上。在落到場景中的一個或多個目標或物體的表面上時,作為響應, 圖案可變形。圖案的這種變形可由例如3-D相機沈和/或RGB相機觀來捕捉,然後可被分析來確定從捕捉設備到目標或物體上的特定位置的物理距離。根據另一實施例,捕捉設備20可包括兩個或更多個物理上分開的相機,這些相機可從不同角度查看場景來獲得可被解析以生成深度信息的視覺立體數據。捕捉設備20還可包括話筒30。話筒30可包括可接收聲音並將其轉換成電信號的換能器或傳感器。根據一個實施例,話筒30可以被用來減少目標識別、分析及跟蹤系統10 中的捕捉設備20和計算環境12之間的幫助。另外,話筒30可用於接收也可由用戶提供的音頻信號,以控制可由計算環境12執行的諸如遊戲應用、非遊戲應用等應用。在示例實施例中,捕捉設備20還可以包括可與圖像相機組件22進行可操作的通信的處理器32。處理器32可包括可執行指令的標準處理器、專用處理器、微處理器等,這些指令可包括用於接收深度圖像的指令、用於確定合適的目標是否可被包括在深度圖像中的指令、用於將合適的目標轉換成該目標的骨架表示或模型的指令、或任何其他合適的指令。捕捉設備20還可以包括存儲器組件34,該存儲器組件34可以存儲可以由處理器 32執行的指令、由3-D相機或RGB相機捕捉到的圖像或圖像的幀、或任何其他合適的信息、 圖像等等。根據一個示例實施例,存儲器組件34可包括隨機存取存儲器(RAM)、只讀存儲器 (ROM)、高速緩存、快閃記憶體、硬碟或任何其他合適的存儲組件。如圖2所示,在一個實施例中,存儲器組件34可以是與圖像捕捉組件22和處理器32進行通信的單獨的組件。根據另一實施例,存儲器組件34可被集成到處理器32和/或圖像捕捉組件22中。如圖2所示,捕捉設備20可經由通信鏈路36與計算環境12進行通信。通信鏈路36可以是包括例如USB連接、火線連接、乙太網電纜連接等的有線連接和/或諸如無線 802. lib,802. llg、802. Ila或802. Iln連接等的無線連接。根據一個實施例,計算環境12 可以經由通信鏈路36向捕捉設備20提供時鐘,可以使用該時鐘來確定何時捕捉例如場景。另外,捕捉設備20可以通過通信鏈路36向計算環境12提供深度信息和由例如 3-D相機沈和/或RGB相機觀捕捉到的圖像,以及可以由捕捉設備20生成的骨架模型。 計算環境12然後可使用該骨架模型、深度信息和捕捉的圖像來例如識別用戶姿勢以及作為響應來控制諸如遊戲或文字處理程序等應用。例如,如圖所示,在圖2中,計算環境12可包括姿勢識別引擎190和包含一個或多個姿勢過濾器192的姿勢庫190。每一過濾器191可包括定義姿勢以及該姿勢的參數或元數據的信息。可以將由相機沈、觀和設備20以骨架模型及與之相關聯的移動的形式捕捉的數據與姿勢庫192中的姿勢過濾器進行比較,以標識(如由骨架模型所表示的)用戶何時執行了一個或多個姿勢。 對諸如過濾器191等過濾器的輸入可包括諸如關於用戶的關節位置的關節數據,像在關節處相交的骨所形成的角度、來自場景的RGB色彩數據、以及用戶的某一方面的變化速率等內容。
例如,包括一隻手從身體背後到身體前方的運動的投擲可被實現為包括表示用戶的一隻手從身體背後到身體前方的移動的信息的姿勢過濾器,該移動將由深度相機來捕捉。來自該場景的圖像數據也可以從RGB相機來捕捉。如所提到的,可為姿勢設置參數。在姿勢是投擲的情況下,參數可以是該手必須達到的閾值速度、該手必須行進的距離(絕對的,或相對於用戶的整體大小)、以及識別器引擎對發生了該姿勢的置信評級。用於姿勢的這些參數可以隨時間在各應用之間、在單個應用的各上下文之間、或在一個應用的一個上下文內變化。來自過濾器191的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運動的速度、以及作出姿勢運動的時間等內容。這些姿勢可與應用的各種控制相關聯。因此,計算環境12可使用姿勢識別器引擎190來解釋骨架模型的移動並基於該移動來控制應用。在實施例中,姿勢過濾器包括算法,該算法接受關於用戶的一個或多個數據作為輸入,並且返回關於對應的姿勢的一個或多個輸出。例如,「用戶身高」姿勢過濾器算法可以將用戶的骨架映射作為輸入,處理該數據,並且返回由該算法計算出的用戶身高的輸出。計算環境12可包括處理器195,處理器195可處理深度圖像來確定場景中有什麼目標,如房間中的用戶18或物體。這可例如通過將深度圖像中共享相似距離值的像素分組在一起來實現。該圖像也可被解析來產生用戶的骨架表示,其中標識諸如關節和關節之間的組織等特徵。存在骨架映射技術,其使用深度相機來捕捉個人,並從中確定該用戶骨架上的多個點,手、腕、肘、膝、鼻、踝、肩的關節,以及骨盆與脊椎相交之處。其他技術包括將圖像轉換為人的人體模型表示以及將圖像轉換為人的網格模型表示。在一個實施例中,處理是在捕捉設備20本身上執行的,且深度和色彩(其中捕捉設備20包括3-D相機)值的原始圖像數據經由鏈路36被發送到計算環境12。在另一實施例中,處理由耦合到相機402的處理器32來執行,然後經解析的圖像數據被發送到計算環境12。在又一實施例中,原始圖像數據和經解析的圖像數據兩者被發送到計算環境12。計算環境12可接收經解析的圖像,但是它仍可接收原始數據來執行當前過程或應用。例如, 如果場景的圖像通過計算機網絡發送到另一用戶,則計算環境12可發送供另一計算環境處理的原始數據。計算環境12可使用姿勢庫192來解釋骨架模型的移動並基於該移動來控制應用。 計算環境12可對用戶的表示進行建模和顯示,例如採用諸如顯示設備194之類的顯示器上的化身或指針的形式。顯示設備194可包括計算機監視器、電視機屏幕、或任何合適的顯示設備。例如,相機控制的計算機系統可捕捉用戶圖像數據,並在電視機屏幕上顯示映射到用戶的姿勢的用戶幫助。用戶幫助可被顯示為屏幕上的化身,如圖IA和IB中所示。視覺幫助庫193可包括與一組姿勢的視覺幫助相關的信息。視覺幫助庫193可以向顯示設備194提供用以顯示指導性姿勢數據的視覺表示的信息。例如,顯示設備可以顯示可示範姿勢的骨架表示、重影圖像、或玩家化身。如在下文更詳細地描述的,圖7A-7D示出用戶幫助和包括指導性姿勢數據的視覺幫助兩者,這兩者是並排示出的。圖8A示出疊加在用戶的姿勢的視覺表示之上的視覺幫助的示例顯示。圖8B示出包括姿勢的示範的視覺幫助的示例顯示。圖9示出用於進入練習模式以接收視覺幫助的選項的示例顯示。圖10 示出通過網絡連接進行交互的遠程用戶,其中一個用戶向第二用戶提供實況視覺幫助。各種事件都可以觸發用於姿勢示範的視覺幫助的顯示。該系統可以檢測用戶運動
9中的錯誤,用戶運動可能不與已識別的姿勢相對應,用戶可以請求練習來學習特定姿勢等。 對用戶運動的分析可以觸發應用向用戶提供視覺幫助,或提供查看視覺幫助的選項,以教導例如用於該應用所識別的投擲姿勢的正確運動。如上所述,視覺幫助可以是示範例如正確的舉手過肩投擲姿勢的骨架表示的形式。用於該姿勢的這些參數和錯誤標識符可以隨時間在各應用之間、在單個應用的各上下文之間、或在一個應用的一個上下文內變化。可以提供視覺幫助信息來用於練習、校正、修改、或教導用戶在物理空間中正確地移動以觸發特定運動,或正確地移動來在應用中成功。例如,用戶可能正在玩拳擊遊戲。計算環境12可以標識適用於正在執行的應用的姿勢,如上勾拳,並指導顯示設備194來提供包括如何執行該上勾拳的指示的視覺幫助。視覺幫助可以是屏幕上的示範該上勾拳的正確運動的化身。姿勢庫192中的可識別、跟蹤、或標識姿勢的姿勢過濾器191還可標識何時應當提供視覺幫助。例如,當姿勢是舉手過肩投擲時,相機26J8和設備20以骨架模型為形式來捕捉的數據以及與它相關聯的移動可以與姿勢庫192中的姿勢過濾器進行比較。過濾器的輸出可以是標識出用戶(如由骨架模型所表示的)正在執行舉手過肩投擲姿勢。包括一隻手從身體背後到身體前方的運動的舉手過肩投擲可被實現為包括表示用戶的一隻手從身體背後到身體前方的移動的信息的姿勢過濾器,該移動將由深度相機來捕捉。用戶的姿勢與過濾器中為舉手過肩投擲姿勢所設置的參數之間的差異可以指示用戶姿勢中的失敗,並觸發進入練習模式來教導用戶正確的運動。基於過濾器參數檢測到所標識的姿勢中的錯誤或變化可觸發視覺幫助的顯示。可為舉手過肩投擲設置幫助標識用戶姿勢中的錯誤的各參數。例如,該系統可以是正在執行棒球遊戲的應用。舉手過肩投擲姿勢可以將用戶手臂應當在其中移動的空間體作為參數。如果姿勢過濾器191在所標識的舉手過肩投擲運動中標識出用戶的手臂移出該空間體之外,則這可指示用戶運動中的錯誤而非轉變到不同姿勢。該應用可能在期待舉手過肩投擲姿勢,因為該遊戲正處於用戶向擊球手投球的時刻。未能將用戶的姿勢識別為預期舉手過肩投擲姿勢可觸發視覺幫助的顯示。 姿勢過濾器可能不再能將該姿勢識別為舉手過肩投擲姿勢,因為該運動不再滿足舉手過肩投擲的參數,而是改為滿足不同姿勢的過濾器參數,如手不過肩投擲運動。不同姿勢之間的非預期轉變可觸發視覺幫助的顯示。如所提到的,可為姿勢設置參數。例如,在姿勢是投擲的情況下,參數可以是該手必須達到的閾值速度、該手必須行進的距離(絕對的,或相對於用戶的整體大小)、以及識別器引擎對發生了該姿勢的置信評級。可為指示用戶注釋中的錯誤的各參數設置各種閾值和範圍。例如,取決於用戶的技能水平,用戶手臂應當通過的空間體的大小可以變化。與每一姿勢相對應的參數可以基於用戶的表現、正在執行的應用、上下文、技能水平等而變化。例如,「新手」技能水平的舉手過肩橄欖球投擲的參數可包括手可通過的較大空間體,使得該系統將舉手過肩投擲與該姿勢進行關聯並相應地處理它。通過改變與一姿勢相關聯的特定參數,該系統可以適應具有較少經驗的玩家。若干可能的姿勢可以對應於該用戶的姿勢。例如,在物理空間中測量到的用戶姿勢可以滿足若干過濾器的準則,每一過濾器包括可能姿勢的參數。表示測量到的姿勢的數據與可能姿勢的過濾器參數之間的差異可以指示測量到的姿勢的執行中的失敗。如果表示用戶姿勢的數據不與可能姿勢的任何過濾器參數相對應,則用戶可能沒有正確地執行該姿勢,因為它與正在執行的應用相關。如果用戶的姿勢未被註冊為各可能姿勢之一,則為該用戶觸發練習會話是合乎需要的。如果用戶的姿勢不與任何過濾器數據相對應,則該系統可以預測該用戶姿勢的意圖。該系統可以基於在當時什麼姿勢將適用於正在執行的應用來預測預期姿勢。該預測可以基於表示測量到的姿勢的數據與過濾器參數之間的比較並標識帶有最接近地匹配測量到的姿勢數據的姿勢。表示測量到的姿勢的數據與可能姿勢的過濾器參數之間的差異可以指示測量到的姿勢的執行中的失敗。該差異可以與閾值接受水平進行比較,其中低於該閾值的差異量可以觸髮帶有指導性姿勢數據的視覺幫助。閾值接受水平可以與置信度評級相關。如上所述,來自過濾器的輸出可包括諸如正在作出給定姿勢的置信度等事物。低置信度評級可以是用戶沒有正確地作出姿勢的指示。閾值接受水平可以基於置信度評級來設置。例如,如果姿勢被姿勢識別器引擎標識為舉手過肩投擲,而置信度評級是低的,則該系統可以觸發具有指導性姿勢數據的視覺幫助的顯示。或者,該系統可能需要高置信度評級以使得存在用戶正在嘗試特定姿勢的較高置信度。在表示測量到的姿勢的數據與過濾器參數之間的差異低於閾值接受水平時,視覺幫助可以觸發。閾值接受水平可以是為特定過濾器參數設置的值。表示一姿勢的過濾器的每一參數可具有閾值接受水平。閾值接受水平可以是單個閾值或可接受的值範圍。如果對用戶的測量到的姿勢的測量不滿足閾值水平或未落在可接受範圍內,則顯示包括指導性姿勢數據的視覺幫助是合乎需要的。例如,舉手過肩投擲的閾值接受水平(在它適用於棒球遊戲中的投球運動時)可被設為速度等於25mph。因此,如果用戶的姿勢被標識為舉手過肩投擲, 則舉手過肩投擲的過濾器的速度參數可以與用戶的測量到的姿勢的速度進行比較。如果用戶的測量到的速度不滿足25mph,則這可觸發視覺幫助的顯示,以教導用戶如何正確地作運動來達到正確速度。取決於上下文、用戶、基於姿勢的系統、用戶的歷史數據、應用的歷史數據、改進的身份等,閾值接受水平可被設置、修改、或改變。閾值水平可以是與優選參數的或與關聯於可能姿勢的參數值範圍的可接受的差異量。閾值接受水平的值可以基於用戶的表現、正在執行的應用、上下文、技能水平等。閾值接受水平可以基於特定姿勢的單個過濾器參數或多個過濾器參數。類似地,該系統可以適應一姿勢的閾值接受水平。例如,閾值水平可以隨時間被修改,例如由用戶、該系統或應用改變。過濾器參數和閾值接受水平可被設置成使得視覺幫助的觸發不會過度或根據用戶偏好。例如,一些用戶可能不想要任何練習幫助或用戶可能不想要因練習會話而中斷正在執行的應用,而是改為選擇用於指導目的的練習模式。並非在每次存在與姿勢的過濾器數據的差異時都觸發視覺幫助,該系統可以基於各種觸發來確定是否顯示指導性姿勢數據。過濾器參數和用於錯誤標識的閾值接受水平可被修改,使得視覺幫助只在有用的時刻觸發。例如,在提供幫助之前,舉手過肩投擲的姿勢可能需要被識別X次。因此,該系統可以監視用戶的運動,並且不給出幫助直至不正確或有變化的運動做了特定次數為止。這樣,如果作出了一次失誤的投擲,它不觸發。但是,如果該程序標識出用戶可以改變的一些事物,則即使用戶成功執行了該姿勢,該系統也可提供用於練習的選項。例如,在標識出了用戶的舉手過肩投擲的情況下,該系統可以標識對用戶的較低身體的改變可以產生更大速度,或用戶的擊球完成運動中的改變會產生曲線球運動。在沒有經驗的用戶或新手用戶在玩投擲遊戲的情況下,定義空間體的過濾器參數可以較大,從而在觸發該姿勢的視覺幫助之前允許較大的錯誤餘量。在用戶沒有滿足特定技能水平時,該用戶還可請求提供視覺幫助。用戶可以請求視覺幫助來幫助達到更高的技能水平。取決於用戶的技能水平,參數的閾值可以改變。例如,對於新手玩家而言,出拳或舉手過肩投擲的空間體可具有更大的可接受錯誤餘量。因此,取決於應用的參數、用戶所選擇的設置、該應用可用的練習類型等,進入練習模式的觸發或提供視覺幫助的觸發會改變。視覺幫助庫193可包括提供對存儲的訪問權並處理用於對姿勢進行示範的視覺幫助信息的各模塊。視覺幫助可以專用於應用、用戶、或特定姿勢。一些姿勢適用於特定應用,其中另一應用中的同一姿勢造成不同的控制。例如,在一個應用中,揮手可以是表示飛翔的姿勢;在另一應用中,抬起雙臂並緩慢地來回擺動可以是表示飛翔的姿勢。與視覺幫助庫193中的視覺反饋相關的信息可以採取任何合適的形式。在一示例實施例中,視覺幫助是預記錄內容的形式,即這一內容是在使用該內容之前的一階段期間記錄的內容。預記錄內容模塊196可以記錄或存儲支持顯示姿勢的示範的預記錄內容,如與一姿勢相關的預記錄音頻或視頻。預記錄內容模塊196可以提供用於連接到網絡並從遠程伺服器或經由聯網用戶的計算環境來接收預記錄姿勢信息的技術。預記錄內容模塊196 可以處理預記錄內容來提供該姿勢的視覺幫助,如通過顯示示範該姿勢的骨架表示、重影圖像、或玩家化身。預記錄內容可以專用於應用、用戶、姿勢,或預記錄內容可以適用於各應用或適用於各用戶的組合。預記錄內容可以是打包在特定應用的視覺幫助庫193中的姿勢信息。例如,如果應用是網球遊戲應用,則該應用可包括具有用於顯示網球相關姿勢的預記錄姿勢信息的視覺幫助庫。預記錄內容可包括用戶記錄的內容,其中用戶選擇記錄他或她自己的姿勢以用於審閱或稍後使用。例如,用戶可能在網球遊戲中成功作出特定運動並記錄它,使得該用戶稍後可以訪問該預記錄內容以查看該預記錄姿勢。用戶隨後可以查看他或她自己的用於用戶已經在過去成功了的姿勢的示範的預記錄姿勢。用戶可以記錄該系統可用於向沒有經驗的用戶示範姿勢的姿勢內容。例如,父母可以記錄他或她自己的成功的姿勢以供孩子回顧。該孩子稍後可以查看並使用該預記錄姿勢練習,以學習要在物理空間中作出的正確運動。在另一示例實施例中,視覺幫助是實況內容的形式,即與提供一姿勢的實時視覺幫助相關的任何信息。實時顯示指的是姿勢的視覺表示的顯示或視覺幫助的顯示,其中該顯示與該姿勢在物理空間中的執行同時或幾乎同時顯示。對實時的引用包括執行,其中無關緊要的處理延遲造成最小的顯示延遲或者對用戶而言根本不可見。因此,實時包括與被自動數據處理所需的時間延遲了的數據的及時性有關的任何無關緊要的延遲。實況內容模塊197可以提供用於接收、處理、以及傳送實況內容的技術。例如,實況內容模塊197可以提供用於連接到網絡並從遠程伺服器或從聯網用戶的計算環境來接收包含姿勢信息的實況饋源的技術。實況內容模塊197可以處理包含姿勢信息的實況饋源,以實時顯示姿勢的示範。例如,遠程用戶可以示範一姿勢,其中與該遠程用戶的姿勢相關的信息通過網絡傳送並由本地用戶的計算環境接收。本地計算環境可以處理該實況饋
12源,如經由實況內容模塊,並且向本地用戶實時地顯示視覺幫助。視覺幫助可以是用戶的姿勢的重放或實況表示,經由該用戶的視覺表示來表示。實況內容模塊197可以用任何合適的方式來顯示視覺幫助,如通過顯示示範該姿勢的骨架表示、重影圖像、或玩家化身。實況內容可以專用於應用或用戶,或實況內容可以適用於各應用或適用於各用戶的組合。例如,對於特定應用,可以從遠程計算環境訪問實況顧客支持,其中實況顧客支持提供姿勢信息的實況饋源。實況內容模塊197可以接收實況饋源並在用戶作出姿勢時向用戶實時地提供表示該姿勢的視覺幫助。在實況幫助的另一示例中,用戶可以遠程地連接或聯網,使得多個用戶可以經由他們各自的計算環境來進行交互。第一用戶可以識別出位於第一用戶的遠處的第二用戶正在不正確地執行姿勢。第一用戶可以經由網絡連接向該用戶提供該姿勢的示範。第二用戶的計算環境例如經由實況內容模塊197接收與所示範的姿勢相關的信息並向第二用戶提供視覺幫助。因此,第一用戶可以向第二用戶提供實況姿勢信息以幫助第二用戶學習要在物理空間中作出的正確運動。姿勢識別引擎192、姿勢庫190、以及視覺幫助庫193可以用硬體、軟體或兩者的組合來實現。例如,姿勢識別引擎192、姿勢庫190以及視覺幫助庫193可被實現為在計算環境的諸如處理器195等處理器上、捕捉設備20的處理器32上、圖3的處理單元101上、或圖4的處理單元259上執行的軟體。要強調的是,圖2-4中描繪的框圖是示例性的,且不旨在暗示一具體實現。由此, 圖1的處理器195或32、圖3的處理單元101和圖4的處理單元259可被實現為單個處理器或多個處理器。多個處理器可以分布式或集中式地定位。例如,姿勢識別引擎190可被實現為在捕捉設備的處理器32上執行的軟體,而姿勢庫和視覺幫助庫193可被實現為在計算環境中的處理器195上執行的軟體。構想了適用於執行此處公開的技術的處理器的任意組合。多個處理器可無線地、經由硬連線、或以其組合來通信。圖2分開描繪了捕捉設備20和計算環境12,但構想了包括任何數量的設備的系統可以執行圖2所示的功能。例如,該計算環境可以合併到捕捉設備20中,使得捕捉設備可以擔當具有一個或多個處理器的單個單元。因此,儘管在本文中計算環境12和捕捉設備20 被分開描述,但這是出於說明的目的。可以使用能執行所公開的技術的任何合適的設備、系統、或設備和系統的組合。圖3示出可用於實現圖2的計算環境12來解釋目標識別、分析及跟蹤系統中的一個或多個姿勢的計算環境的示例實施例。如圖3所示,該計算環境可以是諸如遊戲控制臺等多媒體控制臺100。還如圖3所示,多媒體控制臺100具有含有一級高速緩存102、二級高速緩存104和快閃記憶體ROM(只讀存儲器)106的中央處理單元(CPU) 101。一級高速緩存102 和二級高速緩存104臨時存儲數據並因此減少存儲器訪問周期數,由此改進處理速度和吞吐量。CPU 101可以設置成具有一個以上的內核,以及由此的附加的一級和二級高速緩存 102和104。快閃記憶體ROM 106可存儲在多媒體控制臺100通電時引導過程的初始階段期間加載的可執行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用於高速和高解析度圖形處理的視頻處理流水線。經由總線從圖形處理單元108向視頻編碼器/視頻編解碼器114運送數據。視頻處理流水線向A/V(音頻/視頻)埠 140輸
13出數據,用於傳輸至電視或其他顯示器。存儲器控制器110連接到GPU 108以方便處理器訪問各種類型的存儲器112,諸如但不局限於RAM(隨機存取存儲器)。多媒體控制臺100包括較佳地在模塊118上實現的I/O控制器120、系統管理控制器122、音頻處理單元123、網絡接口控制器124、第一 USB主控制器126、第二 USB控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外圍控制器142⑴-142 O)、無線適配器148、和外置存儲器設備146 (例如快閃記憶體、外置⑶/DVD ROM驅動器、可移動介質等) 的主機。網絡接口 1 和/或無線適配器148提供對網絡(例如,網際網路、家庭網絡等)的訪問並且可以是包括乙太網卡、數據機、藍牙模塊、電纜數據機等的各種不同的有線或無線適配器組件中任何一種。提供系統存儲器143來存儲在引導過程期間加載的應用數據。提供媒體驅動器 144,且其可包括DVD/⑶驅動器、硬碟驅動器、或其他可移動媒體驅動器等。媒體驅動器144 可以是對多媒體控制器100內置的或外置的。應用數據可經由媒體驅動器144訪問,以由多媒體控制臺100執行、回放等。介質驅動器144經由諸如串行ATA總線或其他高速連接 (例如IEEE 1394)等總線連接到I/O控制器120。系統管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應的音頻處理流水線。音頻數據經由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數據輸出到A/V埠 140以供外置音頻播放器或具有音頻能力的設備再現。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發光二極體)或其他指示器的功能。系統供電模塊136向多媒體控制臺100的組件供電。風扇138冷卻多媒體控制臺100內的電路。CPU 101、GPU 108、存儲器控制器110、和多媒體控制臺100內的各個其他組件經由一條或多條總線互連,包括串行和並行總線、存儲器總線、外圍總線、和使用各種總線架構中任一種的處理器或局部總線。作為示例,這些架構可以包括外圍部件互連(PCI)總線、 PCI-Express 總線等。當多媒體控制臺100通電時,應用數據可從系統存儲器143加載到存儲器112和/ 或高速緩存102、104中並在CPU 101上執行。應用可呈現在導航到多媒體控制臺100上可用的不同媒體類型時提供一致的用戶體驗的圖形用戶界面。在操作中,媒體驅動器144中包含的應用和/或其他媒體可從媒體驅動器144啟動或播放,以向多媒體控制臺100提供附加功能。多媒體控制臺100可通過將該系統簡單地連接到電視機或其他顯示器而作為獨立系統來操作。在該獨立模式中,多媒體控制臺100允許一個或多個用戶與該系統交互、看電影、或聽音樂。然而,隨著通過網絡接口 1 或無線適配器148可用的寬帶連接的集成, 多媒體控制臺100還可作為較大網絡社區中的參與者來操作。當多媒體控制臺100通電時,可以保留設定量的硬體資源以供多媒體控制臺作業系統作系統使用。這些資源可以包括存儲器保留量(例如,16MB)、CPU和GPU周期保留量 (例如,5% )、網絡帶寬保留量(例如,SlAs)等。因為這些資源是在系統引導時保留的,所以所保留的資源從應用的角度而言是不存在的。具體而言,存儲器保留優選地足夠大,以包含啟動內核、並發系統應用和驅動。CPU保留優選地為恆定,使得若所保留的CPU用量不被系統應用使用,則空閒線程將消耗任何未使用的周期。對於GPU保留,通過使用GPU中斷來調度代碼以將彈出窗口呈現為覆蓋圖,顯示由系統應用生成的輕量消息(例如,彈出窗口)。覆蓋圖所需的存儲器量取決於覆蓋區域大小,並且覆蓋圖優選地與屏幕解析度成比例縮放。在並發系統應用使用完整用戶界面的情況下,優選使用獨立於應用解析度的解析度。定標器可用於設置該解析度,從而無需改變頻率並引起TV重新同步。在多媒體控制臺100引導且系統資源被保留之後,就執行並發系統應用來提供系統功能。系統功能被封裝在上述所保留的系統資源中執行的一組系統應用中。作業系統內核標識是系統應用線程而非遊戲應用線程的線程。系統應用優選地被調度為在預定時間並以預定時間間隔在CPU 101上運行,以便為應用提供一致的系統資源視圖。進行調度是為了把由在控制臺上運行的遊戲應用所引起的高速緩存中斷最小化。當並發系統應用需要音頻時,則由於時間敏感性而將音頻處理異步地調度給遊戲應用。多媒體控制臺應用管理器(如下所述)在系統應用活動時控制遊戲應用的音頻水平 (例如,靜音、衰減)。輸入設備(例如,控制器142(1)和142( )由遊戲應用和系統應用共享。輸入設備不是保留資源,而是在系統應用和遊戲應用之間切換以使其各自具有設備的焦點。應用管理器較佳地控制輸入流的切換,而無需知曉遊戲應用的知識,並且驅動維護有關焦點切換的狀態信息。相機26J8和捕捉設備20可為控制臺100定義額外的輸入設備。圖4示出了計算環境220的另一示例實施例,該計算環境可被用於實現圖1A-2中所示的用於解釋目標識別、分析及跟蹤系統中的一個或多個姿勢的計算環境12。計算系統環境220隻是合適的計算環境的一個示例,並且不旨在對所公開的主題的使用範圍或功能提出任何限制。也不應該將計算環境220解釋為對示例性操作環境220中示出的任一組件或其組合有任何依賴性或要求。在某些實施例中,所描繪的各種計算元素可包括被配置成實例化本發明的各具體方面的電路。例如,本公開中使用的術語電路可包括被配置成通過固件或開關來執行功能的專用硬體組件。其他示例中,術語電路可包括由實施可用於執行功能的邏輯的軟體指令配置的通用處理單元、存儲器等。在電路包括硬體和軟體的組合的示例實施例中,實施者可以編寫體現邏輯的原始碼,且原始碼可以被編譯為可以由通用處理單元處理的機器可讀代碼。因為本領域技術人員可以明白現有技術已經進化到硬體、軟體或硬體/軟體組合之間幾乎沒有差別的地步,因而選擇硬體或是軟體來實現具體功能是留給實現者的設計選擇。更具體地,本領域技術人員可以明白軟體進程可被變換成等價的硬體結構,而硬體結構本身可被變換成等價的軟體進程。因此,對於硬體實現還是軟體實現的選擇是設計選擇並留給實現者。在圖4中,計算環境220包括計算機Ml,計算機241通常包括各種計算機可讀介質。計算機可讀介質可以是能由計算機241訪問的任何可用介質,而且包含易失性和非易失性介質、可移動和不可移動介質。系統存儲器222包括易失性和/或非易失性存儲器形式的計算機存儲介質,如只讀存儲器(ROM) 223和隨機存取存儲器(RAM06O。基本輸入/輸出系統224 (BIOS)包含諸如在啟動期間幫助在計算機Ml內的元件之間傳輸信息的基本例程,基本輸入/輸出系統224¢10 通常儲存儲在ROM 223中。RAM 260通常包含處理單元259可立即訪問和/或目前正在由處理單元操作的數據和/或程序模塊。作為示例而非限制,圖4示出了作業系統225、應用程式226、其他程序模塊227和程序數據228。計算機241也可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質。僅作為示例,圖4示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬碟驅動器 238,從可移動、非易失性磁碟2M中讀取或向其寫入的磁碟驅動器239,以及從諸如⑶ROM 或其他光學介質等可移動、非易失性光碟253中讀取或向其寫入的光碟驅動器M0。可在示例性操作環境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限於,磁帶盒、快閃記憶體卡、數字多功能盤、數字錄像帶、固態RAM、固態ROM等。硬碟驅動器 238通常由例如接口 234等不可移動存儲器接口連接至系統總線221,而磁碟驅動器239和光碟驅動器240通常由例如接口 235等可移動存儲器接口連接至系統總線221。以上討論並在圖4中示出的驅動器及其相關聯的計算機存儲介質為計算機241提供了對計算機可讀指令、數據結構、程序模塊和其他數據的存儲。在圖4中,例如,硬碟驅動器238被示為存儲作業系統258、應用程式257、其他程序模塊256和程序數據255。注意, 這些組件可以與作業系統225、應用程式226、其他程序模塊227和程序數據2 相同,也可以與它們不同。在此作業系統258、應用程式257、其他程序模塊256以及程序數據255在此被給予了不同的編號,以說明至少它們是不同的副本。用戶可以通過輸入設備,諸如鍵盤 251和定點設備252(通常指的是滑鼠、跟蹤球或觸摸墊)向計算機241輸入命令和信息。 其他輸入設備(未示出)可包括話筒、操縱杆、遊戲手柄、圓盤式衛星天線、掃描儀等。這些和其他輸入設備通常通過耦合至系統總線的用戶輸入接口 236連接至處理單元259,但也可以由其他接口和總線結構,例如並行埠、遊戲埠或通用串行總線(USB)來連接。相機 26,28和捕捉設備20可為控制臺100定義額外的輸入設備。監視器242或其他類型的顯示設備也通過諸如視頻接口 232之類的接口連接至系統總線221。除監視器之外,計算機還可以包括可以通過輸出外圍接口 233連接的諸如揚聲器244和印表機243之類的其他外圍輸出設備。計算機241可以使用到一個或多個遠程計算機(如遠程計算機M6)的邏輯連接, 以在聯網環境中操作。遠程計算機246可以是個人計算機、伺服器、路由器、網絡PC、對等設備或其他常見網絡節點,並且通常包括許多或所有以上關於計算機241所描述的元件, 但在圖4中僅示出了存儲器存儲設備M7。圖2中所描繪的邏輯連接包括區域網(LAN) 245 和廣域網(WAN) M9,但還可包括其他網絡。這些聯網環境在辦公室、企業範圍計算機網絡、 內聯網和網際網路中是常見的。當用於LAN網絡環境中時,計算機241通過網絡接口或適配器237連接到LAN 2450當在WAN聯網環境中使用時,計算機241通常包括數據機250或用於通過諸如網際網路等WAN 249建立通信的其他手段。數據機250,可以是內置的或外置的,可以經由用戶輸入接口 236或其他適當的機制,連接到系統總線221。在聯網環境中,相對於計算機 241所描述的程序模塊或其部分可被存儲在遠程存儲器存儲設備中。作為示例而非限制, 圖4示出了遠程應用程式248駐留在存儲器設備247上。應當理解,所示的網絡連接是示例性的,並且可使用在計算機之間建立通信鏈路的其他手段。上述計算機可讀存儲介質上可存儲有用於掃描所捕捉場景中的人的指令。該計算機可執行指令可包括用於接收物理空間的深度圖像以及呈現表示一姿勢的指導性姿勢數據的視覺幫助的指令,其中該深度圖像包括表示該姿勢的數據。上述計算機可讀存儲介質上可存儲有用於確定是否提供指導性數據的指令。這些指令可包括接收一場景的圖像數據 (其中該圖像數據包括該姿勢的表示),將表示該姿勢的數據與姿勢過濾器的至少一個輸出進行比較,檢測表示該姿勢的數據與姿勢過濾器的該至少一個輸出之間的差異(其中該差異指示該姿勢的執行中的失敗),以及基於該差異來確定是否提供指導性姿勢數據。圖5A描繪了可從捕捉設備20生成的用戶的示例骨架映射。在該實施例中,標識出各個關節和骨骼每一手502、每一前臂504、每一肘506、每一二頭肌508、每一肩510、每一髖512、每一大腿514、每一膝516、每一小腿518、每一足520、頭522、軀幹524、脊椎的頂部5 和底部528,以及腰530。在跟蹤更多點的情況下,可標識出附加的特徵,比如手指或腳趾的骨骼和關節,或臉部的各個特徵,如鼻和眼。用戶可通過移動他的身體創建姿勢。姿勢包括用戶的運動或姿態,其可被捕捉為圖像數據並解析其意義。姿勢可以是動態的,包括運動,如模仿投球。姿勢可以是靜態姿態, 如在一個人的軀幹5M前面交叉握住他的前臂504。姿勢可以是單個移動(例如,跳躍)或連續的姿勢(例如,駕駛),並且在持續時間上可短可長(例如,駕駛20分鐘)。姿勢也可結合道具,如通過揮動仿製的劍。姿勢可包括多於一個身體部位,如拍雙手502,或是較微小的運動,如撅起一個人的嘴唇。用戶的姿勢可用作一般計算上下文中的輸入。例如,手502或其他身體部位的各種運動可對應於常見的系統級任務,如在分層列表中向上或向下導航、打開文件、關閉文件和保存文件。例如,用戶能以手指向上指且掌心面向捕捉設備20來使他的手保持不動。他然後可以將手指朝向手掌收攏來形成拳頭,並且這可以是指示基於窗口的用戶界面計算環境中的焦點窗口應被關閉的姿勢。姿勢也可在視頻遊戲專用上下文中取決於遊戲來使用。 例如,對於駕駛遊戲,手502和腳520的各種運動可對應於在一方向上操控車輛、換擋、加速和剎車。由此,姿勢可指示映射到所顯示的用戶表示的、在諸如視頻遊戲、文本編輯器、文字處理、數據管理等各種各樣應用中的各種各樣的運動。用戶可通過自己在原地行走或奔跑來生成對應於行走或奔跑的姿勢。例如,用戶可另選地提起並放下每一腿512-520來在不移動的情況下模擬行走。系統可通過分析每一髖512和每一大腿514來解析該姿勢。當一個髖部-大腿角(如相對於垂直線測量的,其中站立的腿具有0°的髖部-大腿角,而向前水平伸展的腿具有90°的髖部-大腿角)超過相對於另一大腿的特定閾值時,可識別一步。行走或奔跑可在交替腿的某一數量的連續步之後被識別。兩個最近的步之間的時間可被認為是一周期。在不滿足閾值角度達某一數量的周期之後,系統可確定行走或奔跑姿勢已停止。給定「行走或奔跑」姿勢,應用可為與該姿勢相關聯的參數設定值。這些參數可包括上述閾值角度、發起行走或奔跑姿勢所需的步數、結束姿勢的沒有發生步的周期數、以及確定姿勢是行走還是奔跑的閾值周期。快周期可對應於奔跑,因為用戶將快速地移動他的腿,而較慢的周期可對應於行走。姿勢最初可以與一組默認參數相關聯,應用可用其自己的參數來覆蓋該組默認參數。在這一場景中,不迫使應用提供參數,而是應用可改為使用一組允許在沒有應用定義的參數的情況下識別姿勢的默認參數。與姿勢有關的信息可被存儲用於預錄製的姿勢動畫的目的。
17
有各種可以與姿勢相關聯的輸出。可以有關於姿勢是否正在發生的基線「是或否」。還可以有置信度水平,其對應於用戶跟蹤的移動對應於姿勢的可能性。這可以是範圍為0和1之間(包括端點)的浮點數的線性標度。在接收該姿勢信息的應用不能接受假肯定作為輸入的應用中,它可僅使用具有高置信度水平,如至少0.95的已識別的姿勢。在應用必須識別姿勢的每一實例的情況下,即使以假肯定為代價,它可使用至少具有低得多的置信度水平的姿勢,如僅僅大於0. 2的那些姿勢。姿勢可具有在兩個最近步之間的時間的輸出,並且在僅註冊了第一步的情況下,這可被設為保留值,如-1(因為任何兩步之間的時間必須為正)。姿勢也可具有關於在最近一步期間達到的最高大腿角的輸出。另一示例性姿勢是「腳跟提起跳」。在該姿勢中,用戶可通過將他的腳跟提離地面, 但保持他的腳趾著地來創建該姿勢。另選地,用戶可跳向空中,其中他的腳520完全離開地面。該系統可通過分析肩510、髖512和膝516的角度關係來解析該姿勢的骨架,以查看它們是否是等於直立的對齊位置。然後,可監視這些點和較高5 和較低5 脊椎點來發現任何向上加速。足夠的加速組合可觸發跳躍姿勢。加速度與某一姿勢的足夠的組合可滿足轉變點的參數。給定該「腳跟提起跳」姿勢,應用可為與該姿勢相關聯的參數設定值。參數可包括上述加速閾值,其確定用戶的肩510、髖512和膝516的某種組合必須向上移動多快來觸發該姿勢;以及肩510、髖512和膝516之間仍可觸發跳躍的最大對齊角。輸出可包括置信度水平,以及用戶在跳躍時的身體角度。基於將接收姿勢的應用的細節來為姿勢設定參數對於準確地標識姿勢而言是重要的。正確地標識姿勢以及用戶的意圖極大地有助於創建積極的用戶體驗。應用可以為與各種轉變點相關聯的參數設置值來標識使用預錄製的動畫的點。轉變點可由各種參數來定義,如某一姿勢的標識、速度、目標或物體的角度、或其任何組合。如果轉變點至少部分地由某一姿勢的標識來定義,則正確地標識姿勢有助於提高轉變點的參數已被滿足的置信水平。對於姿勢的另一參數可以是移動的距離。在用戶的姿勢控制虛擬環境中的化身的動作的情況下,該化身可以是手臂離球的長度。如果用戶希望與該球交互並抓住它,則這可要求用戶伸展他的手臂502-510到全長同時作出抓握姿勢。在這一情形中,用戶僅部分地伸展他的手臂502-510的類似的抓握姿勢可能無法達到與球交互的結果。類似地,轉變點的參數可以是對抓握姿勢的標識,其中如果用戶僅部分地伸展他的手臂502-510,從而沒有實現與球交互的結果,則用戶的姿勢將不滿足轉變點的參數。姿勢或其一部分可將它必須在其中發生的空間體作為參數。在姿勢包括身體移動的情況下,該空間體通常可相對於身體來表達。例如,對於慣用右手的用戶的美式足球投擲姿勢可僅在不低於右肩510a、且與投擲手臂5(^a-310a在頭522的相同側的空間體中識別。可能不必要定義空間體的所有邊界,如對於該投擲姿勢,其中從身體向外的邊界留著不被定義,並且該空間體無限地向外延伸,或者延伸到正被監視的場景的邊緣。圖5B提供了圖2的姿勢識別器引擎190的一個示例性實施例的進一步細節。如圖所示,姿勢識別器引擎190可包括用於確定一個或多個姿勢的至少一個過濾器518。過濾器518包括定義姿勢526(以下稱為「姿勢」)的信息,並可包括用於該姿勢的至少一個參數 5 或元數據。例如,包括一隻手從身體背後越過身體前方的運動的投擲可被實現為包括表1示用戶的一隻手從身體背後越過身體前方的移動的信息的姿勢526,該移動將由深度相機來捕捉。然後可為該姿勢5 設定參數526。在姿勢5 是投擲的情況下,參數5 可以是該手必須達到的閾值速度、該手必須行進的距離(絕對的,或相對於用戶的整體大小)、以及識別器引擎對發生姿勢的置信度評級。姿勢528的這些參數5 可以在各應用之間、在單個應用的各上下文之間、或在一個應用的一個上下文內隨著時間而變化。過濾器可以是模塊化的或是可互換的。在一個實施例中,過濾器具有多個輸入和多個輸出,這些輸入中的每一個具有一類型,這些輸出中的每一個具有一類型。在這一情形中,第一過濾器可用具有與第一過濾器相同數量和類型的輸入和輸出的第二過濾器來替換而不更改識別器引擎體系結構的其他方面。例如,可能具有要驅動的第一過濾器,該第一過濾器將骨架數據作為輸入,並輸出與該過濾器相關聯的姿勢正在發生的置信度和轉向角。 在希望用第二驅動過濾器來替換該第一驅動過濾器的情況下(這可能是因為第二驅動過濾器更高效且需要更少的處理資源),可以通過簡單地用第二過濾器替換第一過濾器來這樣做,只要第二過濾器具有同樣的輸入和輸出——骨架數據類型的一個輸入、以及置信度類型和角度類型的兩個輸出。過濾器不需要具有參數。例如,返回用戶的高度的「用戶高度」過濾器可能不允許可被調節的任何參數。替代的「用戶高度」過濾器可具有可調節參數,比如在確定用戶的高度時是否考慮用戶的鞋、髮型、頭飾以及體態。對過濾器的輸入可包括諸如關於用戶的關節位置的關節數據,像在關節處相交的骨所形成的角度、來自場景的RGB色彩數據、以及用戶的某一方面的變化速率等內容。來自過濾器的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運動的速度、以及作出姿勢運動的時間等內容。上下文可以是文化上下文,並且可以是環境上下文。文化上下文指的是使用系統的用戶的文化。不同的文化可使用相似的姿勢來賦予顯著不同的含義。例如,希望叫另一個用戶「看」或「使用他的眼睛」的美國用戶可將他的食指放在他頭上靠近他的眼睛的遠端處。然而,對義大利用戶而言,該姿勢可被解釋為對黑手黨的引用。類似地,在單個應用的不同環境之中可能有不同的上下文。以涉及操作摩託車的第一人稱射擊遊戲為例。當用戶在走路時,將手指朝向地面握拳並向前且從身體向外伸出拳頭可表示出拳姿勢。當用戶在駕駛上下文中時,相同的運動可表示「換擋」姿勢。可能還有一個或多個菜單環境,其中用戶可保存他的遊戲、在他的人物裝備之間選擇或執行類似的不包括直接玩遊戲的動作。在該環境中,該遊戲姿勢可具有第三個含義,如選擇某樣東西或前進到另一屏幕。過濾器可以並排運行,並且多個過濾器可尋找相同的事物但不同的執行。因而,取決於可定義姿勢的運動的排列,過濾器的數量可以增加。例如,曲線球可以是舉手過肩姿勢,但隨後玩家更喜歡手不過肩地投球(當他們這樣做很成功的情況下)。姿勢識別器引擎190可具有向姿勢過濾器516提供功能的基礎識別器引擎518。 在一實施例中,識別器引擎516實現的功能包括跟蹤已識別的姿勢和其他輸入的隨時間輸入(input-over-time)存檔、隱馬爾可夫模型實現(其中模型化系統被假定為具有未知參數的馬爾可夫過程一其中當前狀態封裝了確定將來狀態所需的任何過去狀態信息,因此不必為此目的而維護任何其它過去狀態信息的過程,並且隱藏參數從可觀察數據來確定)、以
19及求解姿勢識別的特定實例所需的其他功能。過濾器518在基礎識別器引擎516之上加載並實現,並且可利用引擎516提供給所有過濾器518的服務。在一實施例中,基礎識別器引擎516處理所接收到的數據來確定它是否滿足任何過濾器518的要求。由於這些諸如解析輸入等所提供的服務是由基礎識別器引擎516 —次性提供而非由每一過濾器518提供的,因此這一服務在一段時間內只需被處理一次而不是對該時間段對每一過濾器518處理一次,由此減少了確定姿勢所需的處理。應用可使用姿勢識別器引擎190所提供的過濾器518,或者它可提供其自己的過濾器518,該過濾器被插入到基礎識別器引擎516中。在一實施例中,所有過濾器518具有啟用該插入特性的通用接口。此外,所有過濾器518可利用參數528,因此可使用如下所述的單個姿勢工具來診斷並調節整個過濾器系統518。這些參數5 可由姿勢工具520為應用或應用的上下文來調節。在一實施例中, 姿勢工具520包括多個滑塊522以及身體524的圖表示,每一滑塊522對應於一參數528。 當用相應的滑塊522來調整參數528時,身體5M可展示將用這些參數5 被識別為姿勢的動作以及使用這些參數5 將不被識別為姿勢的動作,如所標識的。姿勢的參數528的這一可視化提供了調試並細化調節姿勢的有效手段。在圖6A-6C中所示的計算環境上執行的應用的示例是用戶正在玩的拳擊遊戲。圖 6A-6C表示用戶在物理空間中的出拳姿勢62a、62b、62c,其中用戶的視覺表示64a、64b、64c 映射到物理空間中用戶的運動。圖6A-6C中的每一個示出在用戶作出出拳姿勢期間用戶在三個離散的時間點在物理空間中的位置62a、62b、62c以及被顯示在應用空間中的用戶的視覺表示的示例64a、64b、64c。捕捉並顯示圖像數據幀的速率確定視覺表示的所顯示的運動的連續性水平。雖然可以捕捉並顯示附加圖像數據幀,但圖6A-6C中描繪的幀是出於示例性的目的來選擇的。捕捉設備20可以捕捉、分析、並跟蹤用戶在物理空間中作出的運動,如用戶的揮拳姿勢62a、62b、62c。根據一示例實施例,捕捉設備20可被配置成捕捉帶有深度信息的視頻,包括場景的深度圖像。捕捉設備20可以提供所捕捉的深度信息和圖像以及可由捕捉設備20生成的骨架模型以供視聽組件16顯示。用戶可以在諸如圖6D中示出的電視機屏幕等視聽設備16上查看該圖像或用戶的視覺表示64a。視聽設備16可以提供用戶可使用他或她的移動來控制的玩家化身的視覺表示 64a、64b、64c。用戶的運動可映射到應用空間中的視覺表示,以在應用內執行一個或多個控制或動作。例如,可使用捕捉設備20來跟蹤用戶18,以使得可將用戶18的姿勢解釋為可影響由該計算環境執行的應用的控制。在拳擊遊戲應用中,用戶在物理空間中的揮拳運動形式的姿勢62a、62b、62c控制視覺表示64a、64b、6k所作出的姿勢,使得在遊戲空間中發生出拳。因此,根據一示例實施例,目標識別、分析及跟蹤系統10的計算環境和捕捉設備20 可用於識別和分析用戶18在物理空間中的出拳,從而使得該出拳可被解釋為對遊戲空間中的玩家化身40的遊戲控制。視覺表示可被映射到用戶的姿勢並相對於該姿勢在物理空間中的執行來實時地顯示。在一些情況下,提供表示用於教導用戶如何正確地作出姿勢的指導性姿勢數據的視覺幫助是合乎需要的。指導性姿勢數據可以教導用戶如何正確地作出姿勢來控制正在執行的應用。在一示例實施例中,計算環境或正在執行的應用可以標識用戶的姿勢中的錯誤並提供指導性姿勢數據來突出顯示這些錯誤。在另一示例實施例中,用戶選擇練習會話或進入練習模式來學習如何正確地作出姿勢。圖7A-C描繪用於作為化身來重放用戶的姿勢並與該化身並排顯示指導性姿勢數據的示例分屏屏幕截圖。每一分屏的左側呈現在用戶揮拳姿勢期間在三個離散的時間點的用戶的姿勢的視覺表示64a、64b、64c,如圖6A-6C所示。每一分屏的右側呈現表示與圖像數據幀的每個64a、64b、6k相對應的指導性姿勢數據74a、74b、7k的視覺幫助的示例實施例。圖7D描繪來自圖IA和IB的系統10的顯示器部分,其示出用於顯示分屏的示例實施例。在該示例中,圖7A-7C中的每一個的左側對應於由深度相機、並行RGB相機捕捉到的快照或圖像數據幀,或對應於從這兩種相機組合的圖像。在分屏的右側,該系統顯示突出顯示用戶的姿勢中的錯誤的視覺幫助。視覺幫助可以是正確運動的示範。例如,用戶可以選擇用於出拳的練習會話並且該系統可以啟動教導該用戶特定出拳的正確運動的交互式練習會話。該系統可以與視覺幫助一起顯示用戶的運動(實況或重放),從而突出顯示用戶的運動中的任何錯誤。各種顯示技術突出顯示用戶的姿勢中的錯誤。該幫助可以描繪用戶的實際位置與理想位置之間的增量。例如,圖7B和7C中的箭頭指向化身的身體64a、64b、64c的表示用戶在物理空間中的定位的一部分,從而示出在該時刻用戶的定位與理想姿勢位置74a、74b、7k之間的差異。該系統可以提供用於練習目的的視覺幫助,以示範用於控制該系統或正在執行的應用的適當運動。練習可以是用戶主動選擇進入的練習模式的一部分。用戶也可以請求練習,如在用戶首次執行應用時。各種事件都可以觸發用於姿勢示範的視覺幫助的顯示。該系統可檢測到用戶運動中的錯誤或與預期運動的偏差。該系統可以標識該姿勢中的可以被改進以在正在執行的應用中達到更高成功的用戶定位區域。用戶的姿勢可不是與已識別姿勢相對應的姿勢,從而指示該用戶不熟悉適用的姿勢。該系統可預測用戶的預期姿勢,並提供用於訓練該用戶來正確地作出該姿勢的選項。該系統可以識別沒有經驗的用戶並提供練習。這些事件中的任一個可以觸發包括指導性姿勢數據的視覺幫助的顯示。該系統或應用可包括練習模式和執行模式。作為諸如上述觸發等觸發的結果,可自動進入練習模式。例如,如果用戶18在物理空間中揮出不與已識別姿勢相對應的出拳, 則系統10可以中斷該應用、進入練習模式、並向用戶提供示範適當姿勢的視覺幫助。該系統可通過評估用戶在單個所捕捉的數據幀中或在一系列幀中的位置來標識用戶運動中的錯誤。例如,該系統可將用戶的姿勢識別為上勾拳運動,由相對於用戶的特定空間體內的移動來標識。該系統還可標識在模型圖像數據幀中,用戶沒有在物理空間中正確地移動他們的手臂或對用戶運動的改變可在拳擊遊戲中給出更大成功。該系統可以基於用戶的測量到的姿勢的某些參數來標識錯誤,如與理想速度範圍的偏差或用戶的測量到的姿勢是否落在預期空間體之外。例如,棒球應用可以指令用戶作出舉手過肩投擲運動來向擊球手投球。深度相機或RGB相機可以標識用戶在物理空間中的運動的各方面,並且姿勢過濾器191可以將該運動標識為處於投擲姿勢類中。基於所監視的在用戶的頭部周圍的空間體,各類投擲姿勢的參數可以不同。舉手過肩投擲可以是用戶頭部前方和後方但在用戶的投擲肩之上的空間體。手不過肩投擲可以由用戶腰部前方和後方的空間體來定義,該空間體在肩和用戶的腰之間。姿勢過濾器可以基於用戶在物理空間中的運動的各參數來標識舉手過肩投擲。由於在應用中執行的時間點(例如,用戶處於棒球應用中的該用戶被指令向擊球手投球的時間點),姿勢過濾器可能期望舉手過肩投擲 (或嘗試的舉手過肩投擲)。與過濾器參數的偏差或未能滿足閾值接受水平可觸發視覺幫助的顯示。包括指導性姿勢數據的視覺幫助的顯示可採取任何合適的形式。在該實施例中, 指導性姿勢數據74a、74b、7k被顯示為線條畫表示,但構想了視覺表示可以採取任何合適的表示。例如,箭頭或用戶的視覺表示的突出顯示的部分可以指示正確的姿勢,如圖7A-7D 所示。同樣如圖7A-7D所示,該顯示可以是用戶的姿勢與理想姿勢的並排表示。視覺幫助可以是重放的運動的形式(以捕捉速率、減緩速率、快速速率等)或被實時地顯示。如圖8A 所示,表示指導性姿勢數據的圖像可以重影或疊加在視覺表示之上。圖7A-7C中的每一個的左側可直接對應於深度相機和/或RGB相機捕捉到的快照或圖像數據幀。所選擇的各圖像數據幀能以任何速度重放,並且能以運動的連續重放被查看或作為分開的屏幕捕捉來一次一幀地查看。圖像數據幀能以與捕捉的每秒幀率相對應的速度來重放。諸如在圖7A-7C中的每一個的右手側上示出的指導性姿勢數據等指導性姿勢數據可以與在左側上示出的圖像數據幀相對應。對於任何給定姿勢,可以捕捉任何數量的圖像數據幀並且可以生成任何數量的對應的指導性姿勢數據幀。因而,附加圖像數據幀和對應的指導性姿勢數據可能是可用的。用戶可以對視覺幫助的顯示進行暫停、滾動、查看、 縮放等。圖7B的左側上的圖像數據的快照描繪在第二時間點處的用戶的姿勢64b。在分屏的右側,該系統顯示突出顯示用戶的姿勢中的錯誤的視覺幫助。與突出顯示用戶的姿勢中的錯誤的指導性姿勢數據並排地顯示用戶的姿勢的視覺表示可以幫助用戶校正他或她在物理空間中的運動。例如,圖7B通過使用箭頭指向用戶手臂的位置來突出顯示用戶姿勢中的錯誤。在該示例中,視覺幫助指向在該姿勢中的該點處用戶手臂的更好位置以教導用戶如何正確地做出上勾拳運動或在拳擊遊戲中更成功。類似地,圖7C描繪用戶的圖像數據的快照,指出在上勾拳姿勢的此點處,如果用戶在使他的手臂處於更高的位置的情況下來完成該運動,則他或她將達到更好的成功。並排描繪可以示範用戶的實際位置與理想位置之間的增量。該系統可以與實況或實時視覺幫助一起顯示用戶的運動來突出顯示用戶的運動中的錯誤。因而,圖7A-7C中的圖像數據的快照並非用戶姿勢的重放,該用戶可以在物理空間中作出姿勢並查看每一分屏的右側上的實況視覺幫助。例如,可以在交互式練習會話中提供指導性姿勢數據。練習會話可以示範在上勾拳姿勢中各離散時間點處的正確定位。在每一離散的點處,用戶可以在物理空間中作出姿勢,並且在該用戶的姿勢與示出正確的姿勢位置的視覺幫助相比較時實時地觀察該姿勢。用戶可以在各時間點間循環,從而學習並執行每一點處的正確姿勢並且接收關於用戶在此時應當處於的理想位置的實時視覺幫助。 用戶可以逐幀校正他或她的運動。儘管圖7A-7C描繪用戶的視覺表示與指導性姿勢數據的分屏顯示,但構想了指導性姿勢數據可以用任何合適的形式來提供。例如,並非分屏,可只顯示圖7A-7C中的分屏的左側以突出顯示用戶姿勢中的錯誤。在該示例中,錯誤被突出顯示成指向用戶姿勢的偏差的箭頭。在另一示例中,或與另一形式的指導性姿勢數據相組合,諸如畫外音等聽覺幫助可為該用戶用言語表現錯誤或可能的校正。
指導性姿勢數據可以指示用戶在物理空間中的正確對準,以通知用戶如何移動到捕捉設備的捕捉視野的正確視野中。例如,如果特定姿勢過濾器因為捕捉設備捕捉到的肢體的運動移出捕捉設備的捕捉視野的視野之外而未能對於一姿勢提供一致的結果,則指導性姿勢數據可包括通知用戶他們需要在物理空間中移動才能更好地與捕捉設備對準的一組練習數據或幫助。例如,畫外音可以說「請向左移」,或用戶在屏幕上的視覺表示(諸如 64a、64b、6k所示的視覺表示)可以只示出屏幕上表示的一部分,從而指示用戶需要在物理空間中重新對準他或她自己。圖8A和8B描繪向用戶提供指導性姿勢數據的附加示例。在圖8A中,經校正的姿勢動畫的表示804(如線條畫表示所示)疊加或覆蓋在用戶的視覺表示之上。因此,正確運動的指示覆蓋在用戶的圖像數據之上。用戶可以重放他或她的運動並查看覆蓋在用戶的姿勢的視覺表示之上的指導性姿勢數據。用戶隨後可以觀察用戶的實際位置與理想位置之間的增量。箭頭只是用於提供用戶的手臂位置與視覺幫助之間的增量的視覺表示的一個示例。突出顯示該增量允許用戶確定物理空間中的什麼修改可以改進該姿勢。在應用(諸如正在進行的遊戲)的執行期間,練習數據可以作為覆蓋來顯示,如圖 8A所示。因此,中斷該遊戲以進入單獨的練習模式可能是不必要的。指導性姿勢數據可包括對用戶運動的提示或小建議,並且該提示可以在遊戲中作為覆蓋來表達,使得在提供指導性姿勢數據時遊戲繼續而不中斷。圖8B中的視覺幫助的示例顯示是包括通過姿勢的示範的指導性姿勢數據的視覺表示。該示範可被分解成各階段或者是連續的視頻剪輯。指導性姿勢數據的視覺表示可以是任何合適的形式,如骨架表示、重影圖像、或玩家化身的形式。作為用戶選擇練習模式、檢測到用戶姿勢錯誤、啟動應用等的結果,該應用可以觸發進入練習模式。例如,在檢測到用戶姿勢中的錯誤時,可向用戶提供到練習模式的可任選入口。該系統可能識別不出用戶作出的姿勢,並基於對用戶的預期運動的預測來提供練習建議。該系統可識別出該姿勢並提供關於在此時適用於該應用的更好姿勢的建議,或提供用於練習來更好地作出該由用戶作出的姿勢的建議以在該應用中更成功。圖9描繪該系統可在拳擊遊戲中顯示給用戶的選項9(^a、902b、902c、902d的示例。顯示設備16可以顯示預測姿勢的選項,並且用戶可以選擇選項來接收練習以正確地執行該姿勢或改進該姿勢的執行。可能姿勢可以是適用於基於姿勢的系統、正在執行的應用、 具有補充姿勢的插件等的任何姿勢。圖9中示出的選項9(^a、902b、902c、902d適用於該正在執行的應用——拳擊遊戲。在該示例中,用戶在物理空間中的姿勢被標識為出拳姿勢。如上所述,姿勢識別引擎190可包括姿勢過濾器191的集合。每一過濾器191可包括定義姿勢以及該姿勢的參數或元數據的信息。可以將由相機沈、觀和設備20以骨架模型及與之相關聯的移動的形式捕捉的數據與姿勢庫190中的姿勢過濾器進行比較,以標識用戶何時執行了一個或多個姿勢。在一示例實施例中,該系統收集並存儲特定用戶的歷史數據,如將歷史數據存儲在用戶簡檔中。該系統可以基於這一歷史數據來適應過濾器參數和該用戶的閾值水平。例如,根據研究或仿真數據,被用來標識該姿勢是舉手過肩投擲的空間體的過濾器參數可被設為默認值。然而,與一般相比,用戶的手可能往往距用戶的頭更遠,並且因此超出為舉手
23過肩投擲設置的空間體的邊界之外。一開始,該差異可以指示該姿勢的執行中的失敗,從而觸發用於進入練習模式以學習如何執行該姿勢的顯示或選項。該系統可隨時間收集關於該用戶的數據並修改過濾器參數以適應該用戶的傾向。例如,定義空間體的參數可被修改以將空間體移動得與用戶的身體位置更緊密地對準。閾值接受水平也可相應地改變。練習會話可以是交互式的,以便諸如以在圖7A-7C中描述的方式來對用戶的實際運動進行評估、突出顯示、校正等。視覺幫助可以是適用於應用的用戶可以在物理空間中實施的正確姿勢的示範,而不帶有用戶運動的視覺表示。圖8B經由分開的各運動幀來描繪正確姿勢的示範的示例。該示範可以突出顯示用戶應當放置他或她的身體來正確地執行該姿勢的位置。該示範可以不管用戶的姿勢。或者,視覺幫助可以是對用戶的姿勢的評估的結果,其中視覺幫助指出用於該用戶所專用的改進的特定區域。用於顯示視覺幫助的其他技術是可能的。例如,指導性姿勢數據的視覺表示可以在顯示空間的一部分上,其中該部分小於總顯示空間。提供指導性姿勢數據的視覺幫助可包括教練,如用戶創建的教練、人類教練、預記錄教練等。教練可以作為視頻饋源彈出。教練可以提供與所示範的姿勢相對應的語音指令。用戶可以通過訪問練習程序來學習一姿勢,諸如如何投棒球。基本上,教練可以使用戶排練組成投擲的各姿勢。用戶可以選擇特定教練,如從表示真實或虛擬人物的化身的集合中選擇。可以使用不同人物,如著名棒球運動員。教練的表示可以是與所示範的姿勢一起顯示的預記錄數據。或者,視覺幫助可以是與另一用戶實時地實況顯示的人類教練。視覺幫助可以是畫外音的形式或經由網絡提供姿勢示範的實況教練。圖10描繪遠程連接並通過拳擊遊戲應用進行交互的兩個用戶的示例。遠程連接例如可通過網絡。該網絡可由主機管理並且可以是基於訂閱的系統。這樣的連接允許用戶遠程連接或聯網,以便多個用戶可以經由他們各自的計算環境來進行交互。例如,考慮第一和第二遠程用戶正在執行遊戲應用,通過遠程連接作為團隊對抗其他用戶。第一用戶認識到第二用戶正在不正確地執行某一運動並且因而造成該團隊在遊戲中失敗。第一用戶可以實時提供姿勢的示範1002a,使得第二用戶可以在第二用戶的計算環境中的顯示器上觀察該視覺幫助1002b。第二用戶的計算環境可以接收與所示範的姿勢相關的信息並向第二用戶提供視覺幫助。視覺幫助可以實況地提供給第二用戶,只延遲了從第一用戶傳送所花費的時間,並且處理並向第二用戶顯示該信息。可以實現合適的技術, 以使得傳輸和處理時間是快速的,從而基於第一用戶的實況姿勢示範來最小化視覺幫助到第二用戶的延遲。將用戶#1的視覺表示實時地顯示給用戶#2可以是多個觸發的結果。例如,用戶 #1可以從用戶#2請求指示,用戶#2可以識別出用戶#1的姿勢中的錯誤,這兩個用戶可以出於彼此學習戰術的目的來交互等。用戶可以暫停應用並進行交互式練習會話。用戶#1 的計算環境可以顯示用戶#2的視覺表示,從而模擬現場練習會話。用戶#2可以與用戶#2 類似地交流、顯示運動等。圖IlA描繪用於姿勢教練的示例性操作過程。操作1102描繪了接收由捕捉設備20捕捉的數據,該數據對應於用戶執行的姿勢。 遠處的捕捉設備可以捕捉包含全部用戶的場景,諸如從地面到天花板以及到用戶所處房間的每側的牆壁。捕捉設備也可以捕捉僅包含用戶的部分的場景,諸如他或她坐在桌邊時腹部以上的用戶。捕捉設備還可以捕捉由用戶控制的對象,諸如用戶握在他或她手中的道具相機。操作1104描繪了分析數據以產生與數據是否對應於系統識別的姿勢相對應的輸出。在實施例中,該分析可以與由姿勢識別器引擎190應用於數據的過濾器518執行。操作1106描繪了從該輸出確定用戶不太可能正確地執行了系統識別的姿勢。在實施例中,系統識別的姿勢包括與過濾器相對應的姿勢。在實施例中,輸出包括置信度水平。在實施例中,當置信度水平低於閾值時,用戶不太可能正確地執行了與過濾器相對應的姿勢。該閾值可以是用戶可能正確地執行姿勢的水平。在高於閾值水平時用戶可能正確地執行姿勢的閾值水平與低於閾值水平時用戶不太可能執行姿勢的閾值水平之間可能存在差別,那兩個閾值之間的水平既不被認為是可能的,也不被認為是不太可能的。在姿勢過濾器包括多個輸出的實施例中,當至少一個輸出與用戶不太可能正確地執行姿勢相對應時,用戶不太可能正確地執行姿勢。例如,「汽車駕駛」過濾器可以包括用於用戶雙手之間的距離、用戶的手部相對於他身體其他部分的位置、以及手部傾斜的角度的輸出。用戶使他的手分開12-18」、位於他的胸前、並且每隻手顯示與相同的駕駛角度相對應的離開垂直的旋轉角度時,用戶有可能在執行駕駛姿勢。用戶正確地分開他的手並將其置於他的胸前、向外旋轉雙手,使得他的左手指示駕駛向左並且他的右手指示駕駛向右,只要沒有滿足這些參數中的一個就足以確定用戶不太可能正確地執行姿勢。操作1108從輸出確定用戶有可能想要執行系統識別的姿勢。在用戶必須維持姿勢的實施例中,諸如通過用戶駕駛時保持駕駛位置達到延長的時間段,可以確定用戶有可能想要執行姿勢,其中輸出至少偶爾地與正被執行的姿勢相對應,但與正被執行達延長的時間段的姿勢不對應。在姿勢過濾器包括多個輸出的實施例中,當輸出與用戶執行姿勢相對應時,用戶有可能想要執行該姿勢。例如,給定以上討論過的「汽車駕駛」過濾器,有可能用戶具有正確的手部間隔,並且他的相應的手旋轉角度對應於相同的駕駛方向,但他將雙手置於他兩側的近乎放鬆的位置,而不是在他體前握住他的手。在該實例中,輸出中的兩個(手部間隔與手旋轉角度)表明用戶有可能想要作出駕駛姿勢,但第三個輸出(手部位置)沒有表明時,可以確定用戶想要執行該姿勢。操作1110描繪了提供有關用戶執行的姿勢的幫助。在實施例中,提供幫助包括調整輸出,以及將經調整的輸出發送到與用戶執行的姿勢相對應的應用。這可以類似於放鬆應用的參數或容忍度。當確定用戶想要執行姿勢時, 用於對應的姿勢過濾器的輸出可被改變為與可能正被執行的姿勢相對應的輸出,而仍然維護用戶的意圖。例如,用戶表現為想要駕駛車輛急速向左,但具有不正確的手部位置時,與手部位置相對應的輸出可以被調整,而仍然對應於車輛駕駛急速向左(而不是緩慢向左轉,或向右轉)。在實施例中,調整輸出包括提高過濾器的響應性。例如,用戶可以做出有可能與用戶意圖相對應的小移動,但未能執行姿勢。對於駕駛姿勢,這可以包括當他想要轉彎時僅旋轉他的手較小的量,無論多麼急速。這些移動可以被放大。用戶旋轉他的手最大20°,並且90°旋轉對應於最急速的轉彎時,用戶的實際旋轉可被乘以因子4. 5,使得他的20°旋轉被當作它是90°旋轉來對待。從實際移動到預期移動的該映射可以是線性或非線性的。有可能用戶近似正確地執行了非常細微的駕駛運動,並且未能執行更急速的轉彎。在此情形中,細微的駕駛運動的響應性可以僅被略微地提高,或者沒有提高,而想要傳達急速駕駛的運動的響應性可以被極大地提高。在實施例中,僅在確定過濾器是可被調整的過濾器之後,才調整輸出。某些過濾器可以從調整受益。例如,糟糕地作出「開火武器」姿勢並且頻繁地錯過他的預期目標的用戶可能對控制感到沮喪,並且具有糟糕的用戶體驗。由此,調整「開火武器」過濾器以幫助用戶的瞄準可能是有益的,並且「開火武器」過濾器可以是可被調整的過濾器。然而,對於「汽車駕駛」姿勢,這可以不為真。在傳統意義上,用戶可能駕駛得非常糟糕——他頻繁地碰撞或離開軌道。然而,某些用戶喜歡忽略場景的已聲明的目標,並且故意地糟糕地執行。在這種情形中,調整「汽車駕駛」過濾器可能實際上損害了用戶體驗,因為這阻止他做他想做的。 此處,「汽車駕駛」姿勢可以是可不被調整的姿勢。可以確定過濾器是否可被調整,例如,通過可由調整過濾器的實體讀取的過濾器的布爾輸出,或者通過與可由調整過濾器的實體讀取的過濾器相對應的數據結構中的布爾集。在實施例中,提供幫助包括使用第二過濾器代替過濾器。例如,用戶可能難於執行與「專家駕駛」過濾器相關聯的姿勢,該過濾器具有對示例性運動的變化的較低的容忍度。 這可以被確定,並且「專家駕駛」過濾器可以被替換為「初學者駕駛」過濾器,後者相比「專家駕駛」過濾器對變化具有更高的容忍度。例如,可以通過指示相關聯的應用它要使用該新的過濾器的輸出來代替之前的過濾器的輸出,或者通過從姿勢識別引擎移除之前的過濾器並其在位置上放置新的過濾器來代替過濾器。在實施例中,提供幫助包括掛起與用戶執行的姿勢相對應的應用。例如,確定應當給出教導用戶如何正確地執行姿勢的幫助時,用戶將很難學習該姿勢並仍然與該應用交互。因此,該應用可以被暫停或掛起,給出幫助達一定時間,諸如直到用戶已經證明能夠一致地執行姿勢,並且在幫助會話之後繼續該應用。在實施例中,提供幫助包括在顯示設備上向用戶顯示輸出。例如,輸出包括置信度水平時,在用戶試圖執行姿勢時,可以作出置信度水平與時間的曲線圖。當他正確地執行姿勢時,他將看到置信度水平相應地提高,並且將能夠將那些移動與正確地執行姿勢相關聯。 該顯示還可以包括對該輸出何時是可接受的的指示,諸如經由顏色改變、警告音、或屏幕上的閃光。對輸出手部距離與時間作出曲線圖並且手部距離必須位於12」和18」之間時,該曲線圖可在用戶的手部距離位於12」和18」之間時是綠色的,並且在全部其他時間是紅色的。在實施例中,提供幫助包括顯示用戶執行的姿勢的表示以及姿勢的示範。這可以包括並排顯示兩個姿勢,使得用戶可視地標識他正在不正確地移動之處。此外,用戶正確地執行姿勢的一部分並且不正確地執行姿勢的一部分時,可以存在對用戶正在正確地執行的那些時刻的指示,諸如通過播放聲音。另外,幫助可以包括關於兩個姿勢之間的差別的直接指導,諸如內容為「您的雙手必須分開12-18」。您的雙手表現得過於分開。試著將它們靠近一些。」的顯示器上的文本。
26
在實施例中,提供幫助包括顯示用戶執行的姿勢與姿勢的示範之間的差別。這可以包括將示範疊加在用戶執行的姿勢的上方,使得差別是明顯的。這可以包括突出顯示差別存在的身體的區域。在實施例中,不同地顯示用戶執行的姿勢和姿勢的示範以使它們更容易被獨立地標識。例如,一個被疊加在另一個上時,用戶執行的姿勢可被顯示為用戶的視頻或化身表示,並且示範可被顯示為線框化身,反之亦然。在實施例中,幫助源自另一個用戶。在實施例中,所源自的幫助是來自集合中的至少一個,該集合包括位於或接近排行榜頂部的幫助、已被高度評級的幫助、由將其作為適合於幫助來創建的用戶已經標識的幫助、第二用戶已經標識為適合於用戶的幫助、來自與用戶相同文化的用戶的幫助、來自與用戶相同語言的用戶的幫助、來自與用戶相似年齡的用戶的幫助、以及來自與用戶相似位置的用戶的幫助。在實施例中,提供幫助包括放鬆與過濾器相關聯的容忍度水平。圖IlB和IlC描繪了與姿勢識別器引擎190和應用1152集成的用於姿勢訓練1150 的示例體系結構。在圖IlB中,姿勢教練1150和應用1152 二者從每個過濾器518接收每個過濾器 518的輸出。該體系結構允許姿勢教練1150監控過濾器輸出以確定幫助是否是適合的,而同時允許應用1152接收輸出。可選地,姿勢教練1150可與應用1152通信,諸如發送由應用1152使用的經修改的輸出。在圖IlC中,姿勢教練1150從那些過濾器518接收每個過濾器518的輸出,並且隨後將輸出傳遞給應用1152。在該體系結構中,姿勢教練1150可以在將輸出發送到應用 1152之前修改任何已接收的輸出。圖12A和12B描繪了從其可以確定姿勢訓練是合適的的示例過濾器輸出。每個曲線圖對用戶的手部距離與時間進行製圖,如來自「汽車駕駛」姿勢過濾器的輸出。圖12A描繪不熟練用戶的一定時間內的示例性手部距離,該不熟練用戶在將要被執行的姿勢所需要的維持大致統一的手部距離方面有困難。可以從這種輸出確定幫助是適合的。同樣,手部距離必須位於給定範圍內時,如果用戶維持大致統一的手部距離,並且如果該大致統一的距離位於給定範圍之上或之下,則仍然可以確定幫助是適合的。圖12B描繪熟練用戶的一定時間內的示例性手部距離,該熟練用戶能夠如將要被執行的姿勢所需要的維持大致統一的手部距離。儘管手部距離不是恆定的,但過濾器可以允許這種變化,只要它足夠小。Mrk儘管已經結合各附圖所示的較佳方面描述了本發明,但要理解,可使用其它相似方面或者可對所述方面進行修改或添加來執行本發明的相同功能而不脫離本發明。因此, 本發明不應該僅限於任何單個方面,而是應該在根據所附權利要求書的廣度和範圍內解釋。例如,本文描述的各種過程可用硬體或軟體、或兩者的組合來實現。因此,所公開的各實施例的方法和裝置或其某些方面或部分可採用包含在諸如軟盤、CD-ROM、硬碟驅動器或任何其他機器可讀存儲介質等有形介質中的程序代碼(即,指令)的形式。當程序代碼被加載到諸如計算機等機器並由其執行時,該機器變為被配置成實施所公開的各實施例的裝置。除了此處明確闡述的具體實現之外,考慮此處所公開的說明書,其它方面和實現將對本領域的技術人員是顯而易見的。說明書和所示實現旨在僅被認為是示例。
權利要求
1.一種用於提供關於用戶執行的姿勢的幫助的方法,包括接收由捕捉設備00)捕捉的數據,所述數據對應於用戶執行的姿勢(518) (1102); 分析所述數據以產生與所述數據是否對應於系統識別的姿勢相對應的輸出(1104); 從所述輸出確定所述用戶不太可能正確地執行所述系統識別的姿勢(1106); 從所述輸出確定所述用戶有可能想要執行所述系統識別的姿勢(1108);以及提供有關所述用戶執行的姿勢的幫助(1110)。
2.如權利要求1所述的方法,其特徵在於,提供幫助包括 調整所述輸出;以及將經調整的輸出發送到與所述系統識別的姿勢相對應的應用。
3.如權利要求2所述的方法,其特徵在於,調整所述輸出包括 提高輸出與用戶正確地執行所述系統執行的姿勢相對應的可能性。
4.如權利要求2所述的方法,其特徵在於,還包括 在調整所述輸出之前確定所述輸出能夠被調整。
5.如權利要求1所述的方法,其特徵在於,所述輸出包括置信度水平。
6.如權利要求5所述的方法,其特徵在於,當所述置信度水平低於閾值時,用戶不太可能正確地執行所述系統識別的姿勢。
7.如權利要求1所述的方法,其特徵在於,分析所述數據以產生與數據是否對應於所述系統識別的姿勢相對應的輸出還包括由過濾器分析所述數據以產生與所述數據是否對應於所述系統識別的姿勢相對應的輸出還包括提供幫助包括用第二過濾器代替所述過濾器。
8.如權利要求1所述的方法,其特徵在於,提供幫助包括 掛起與所述用戶執行的姿勢相對應的應用。
9.如權利要求1所述的方法,其特徵在於,提供幫助包括顯示所述用戶執行的姿勢的表示以及所述系統識別的姿勢的示範。
10.如權利要求9所述的方法,其特徵在於,還包括顯示所述用戶執行的姿勢與所述系統識別的姿勢的示範之間的差別。
11.一種用於提供關於用戶執行的姿勢的幫助的系統,包括 處理器(259);接收由相機捕捉的數據的組件,所述數據對應於用戶執行的姿勢(1102); 分析所述數據以產生與所述數據是否對應於系統識別的姿勢相對應的輸出的組件 (1104);從所述輸出確定所述用戶不太可能正確地執行所述系統識別的姿勢的組件(1106); 從所述輸出確定所述用戶有可能想要執行所述系統識別的姿勢的組件(1108);以及提供有關所述用戶執行的姿勢的幫助的組件(1110)。
12.如權利要求11所述的系統,其特徵在於,提供幫助的組件還包括 放鬆與分析所述數據的所述組件相關聯的容忍度水平。
13.如權利要求11所述的系統,其特徵在於,提供幫助的組件還包括調整所述輸出的組件;以及將經調整的輸出發送到與所述用戶執行的姿勢相對應的應用的組件。
14.如權利要求13所述的系統,其特徵在於,調整所述輸出的組件包括 提高分析所述數據的組件的響應性的組件。
15.如權利要求11所述的系統,其特徵在於,所述輸出包括置信度水平。
全文摘要
捕捉設備可以捕捉用戶的運動並且顯示設備可以顯示映射到用戶的運動(包括適用於控制的姿勢)的模型。用戶可能不熟悉映射用戶的運動的系統或不知道什麼姿勢適用於正在執行的應用。用戶可能不了解或不知道如何執行適用於正在執行的應用的姿勢。可以分析與姿勢相對應的用戶運動數據和/或過濾器的輸出以確定給用戶的有關執行姿勢的幫助是適合的那些情形。
文檔編號G06K9/46GK102448561SQ201080024659
公開日2012年5月9日 申請日期2010年5月25日 優先權日2009年5月29日
發明者A·基普曼, D·A·貝內特, G·N·斯努克, K·S·佩雷, K·茲努達, K·蓋斯那, S·拉塔 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀