專利名稱:骨架以外的姿勢的制作方法
骨架以外的姿勢
背景技術(shù):
諸如計算機游戲、多媒體應(yīng)用、辦公應(yīng)用等許多計算應(yīng)用使用控制來允許用戶操縱游戲角色或應(yīng)用的其他方面。通常使用例如控制器、遙控器、鍵盤、鼠標等等來輸入這樣的控制。不幸的是,這些控制可能是難以學(xué)習(xí)的,由此造成了用戶和這些游戲及應(yīng)用之間的障礙。此外,這些控制可能與這些控制所用于的實際游戲動作或其他應(yīng)用動作不同。例如, 使得游戲角色揮動棒球球棒的游戲控制可能不與揮動棒球球棒的實際運動相對應(yīng)。
發(fā)明內(nèi)容
此處所揭示的是用于接收反映用戶的骨架移動或位置的數(shù)據(jù)以及附加數(shù)據(jù)(諸如控制器上的按鈕按壓)并根據(jù)該數(shù)據(jù)確定用戶是否已執(zhí)行一個或多個姿勢的系統(tǒng)和方法。在一實施例中,計算設(shè)備從相機接收一系列圖像。該相機可包括彩色相機(如紅-綠-藍,即RGB)、深度相機、以及三維(3D)相機。該數(shù)據(jù)可包括分開的深度圖像和彩色圖像、結(jié)合了深度和色彩信息的組合的圖像、或其中標識了諸如被骨架映射的人等對象的經(jīng)解析的圖像。該數(shù)據(jù)捕捉由至少一個用戶作出的運動或姿態(tài)。此外,由計算設(shè)備接收“附加數(shù)據(jù)”,諸如用戶的控制器輸入、用戶穿戴的物品、在用戶控制下的道具、或第二用戶的移動或身體位置。計算設(shè)備合并用戶位置數(shù)據(jù)和附加數(shù)據(jù)兩者,以確定用戶向系統(tǒng)做出的一個或多個輸入。以上是發(fā)明內(nèi)容,并且因此必然包含細節(jié)的簡化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本發(fā)明內(nèi)容只是說明性的并且決不旨在是限制性的。
參考附圖來進一步描述根據(jù)本說明書的用于骨骼之外的姿勢的系統(tǒng)、方法和計算機可讀介質(zhì),附圖中圖IA和IB示出其中用戶正在玩游戲的目標識別、分析及跟蹤系統(tǒng)的示例實施例。圖2示出了可在目標識別、分析和跟蹤系統(tǒng)中使用的捕捉設(shè)備的示例實施例。圖3A示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的示例實施例。圖IBB示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的另一示例實施例。圖4A示出了從圖2的目標識別、分析和跟蹤系統(tǒng)生成的用戶的骨架映射。圖4B示出了圖2所示的姿勢識別器架構(gòu)的進一步細節(jié)。圖5A和5B示出了可如何堆疊姿勢過濾器來創(chuàng)建更復(fù)雜的姿勢過濾器。圖6A、6B、6C、6D和6E示出了用戶502在美式足球視頻游戲中可以作出的用以發(fā)出“安全接球”(fair catch)的信號的示例姿勢。圖7A、7B、7C、7D和7E示出了在解析圖像數(shù)據(jù)的每一幀來產(chǎn)生用戶的骨架圖時圖6A、6B、6C、6D和6E的示例“完全接球”姿勢。圖8A示出了正通過由捕捉設(shè)備捕捉的身體移動來對系統(tǒng)做出姿勢輸入并且正按下控制器上的按鈕的用戶。圖8B示出了正通過各自由捕捉設(shè)備捕捉的相應(yīng)身體移動來對系統(tǒng)做出組合的姿勢的多個用戶。圖8C示出了正通過由捕捉設(shè)備捕捉的身體移動來對系統(tǒng)做出姿勢輸入并且控制由捕捉設(shè)備所捕捉的道具的用戶。圖9示出了由于向系統(tǒng)提供用戶移動或基于用戶的骨架映射的姿勢之外的輸入。圖10示出用于骨架以外的姿勢的示例系統(tǒng)架構(gòu)。
具體實施例方式用戶可通過執(zhí)行一個或多個姿勢來控制在諸如游戲控制臺、計算機等計算環(huán)境上執(zhí)行的應(yīng)用。根據(jù)一個實施例,姿勢可由例如捕捉設(shè)備來接收。例如,捕捉設(shè)備可捕捉場景的深度圖像。在一個實施例中,捕捉設(shè)備可以確定場景中的一個或多個目標或?qū)ο笫欠駥?yīng)于諸如用戶等人類目標。為了確定場景中的目標或?qū)ο笫欠駥?yīng)于人類目標,可對每個目標進行泛色填充并將其與人體模型的圖案作比較。然后可掃描匹配人體模型的每一目標或?qū)ο髞砩膳c其相關(guān)聯(lián)的骨架模型。該骨架模型然后可被提供給計算環(huán)境,使得計算環(huán)境可跟蹤該骨架模型,呈現(xiàn)與該骨架模型相關(guān)聯(lián)的化身,以及可基于例如用戶的已經(jīng)從該骨架模型中識別出的姿勢來確定要在計算環(huán)境上執(zhí)行的應(yīng)用中執(zhí)行那些控制。姿勢識別器引擎(其架構(gòu)在下文中更完整地描述)被用于確定用戶何時做出了某一姿勢。圖IA和IB示出其中用戶18正在玩拳擊游戲的目標識別、分析及跟蹤系統(tǒng)的示例實施例。在一示例實施例中,目標識別、分析和跟蹤系統(tǒng)10可用于識別、分析和/或跟蹤諸如用戶18等的人類目標。如圖IA所示,目標識別、分析及跟蹤系統(tǒng)10可包括計算環(huán)境12。計算環(huán)境12可以是計算機、游戲系統(tǒng)或控制臺等等。根據(jù)一示例實施例,計算環(huán)境12可包括硬件組件和 /或軟件組件,使得計算環(huán)境12可用于執(zhí)行諸如游戲應(yīng)用、非游戲應(yīng)用等應(yīng)用。如圖IA所示,目標識別、分析及跟蹤系統(tǒng)10還可包括捕捉設(shè)備20。捕捉設(shè)備20 可以是例如相機,該相機可用于在視覺上監(jiān)視諸如用戶18等一個或多個用戶,以使得可以捕捉、分析并跟蹤一個或多個用戶所執(zhí)行的姿勢以執(zhí)行應(yīng)用中的一個或多個控制或動作, 如將在下面更詳細地描述的。根據(jù)一個實施例,目標識別、分析及跟蹤系統(tǒng)10可連接到可向諸如用戶18等用戶提供游戲或應(yīng)用視覺和/或音頻的視聽設(shè)備16,如電視機、監(jiān)視器、高清電視機(HDTV)等。 例如,計算環(huán)境12可包括諸如圖形卡等視頻適配器和/或諸如聲卡等音頻適配器,這些適配器可提供與游戲應(yīng)用、非游戲應(yīng)用等相關(guān)聯(lián)的視聽信號。視聽設(shè)備16可從計算環(huán)境12接收視聽信號,然后可向用戶18輸出與該視聽信號相關(guān)聯(lián)的游戲或應(yīng)用視覺和/或音頻。根據(jù)一個實施例,視聽設(shè)備16可經(jīng)由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA 電纜等連接到計算環(huán)境12。如圖IA和IB所示,目標識別、分析及跟蹤系統(tǒng)10可用于識別、分析和/或跟蹤諸如用戶18等人類目標。例如,可使用捕捉設(shè)備20來跟蹤用戶18,以使得可將用戶18的移
5動解釋為可用于影響由計算機環(huán)境12執(zhí)行的應(yīng)用的控制。因而,根據(jù)一個實施例,用戶18 可移動他或她的身體來控制應(yīng)用。如圖IA和IB所示,在一示例實施例中,在計算環(huán)境12上執(zhí)行的應(yīng)用程序可以是用戶18可能正在玩的拳擊游戲。例如,計算環(huán)境12可使用視聽設(shè)備16來向用戶18提供拳擊對手22的視覺表示。計算環(huán)境12還可使用視聽設(shè)備16來提供用戶18可通過他的或她的移動來控制的玩家化身M的視覺表示。例如,如圖IB所示,用戶18可在物理空間中揮拳來使得玩家化身M在游戲空間中揮拳。因此,根據(jù)一示例實施例,目標識別、分析和跟蹤系統(tǒng)10的計算環(huán)境12和捕捉設(shè)備20可用于識別和分析用戶18在物理空間中的重拳, 從而使得該重拳可被解釋為對游戲空間中的玩家化身M的游戲控制。用戶18的其他移動也可被解釋為其他控制或動作,諸如上下快速擺動、閃避、滑步、格擋、直拳或揮動各種不同力度的拳等控制。此外,某些移動可被解釋為可對應(yīng)于除控制玩家化身M之外的動作的控制。例如,玩家可以使用移動來結(jié)束、暫?;虮4嬗螒?、選擇級別、查看高分、與朋友交流等。在各示例實施例中,諸如用戶18等人類目標可持有一物體。在這些實施例中,電子游戲的用戶可手持物體從而可以使用玩家和物體的運動來調(diào)整和/或控制游戲的參數(shù)。 例如,可以跟蹤并利用玩家手持球拍的運動來控制電子運動游戲中的屏幕上球拍。在另一示例實施例中,可以跟蹤并利用玩家手持物體的運動來控制電子格斗游戲中的屏幕上武
ο根據(jù)其他示例實施例,目標識別、分析及跟蹤系統(tǒng)10還可用于將目標移動解釋為游戲領(lǐng)域之外的操作系統(tǒng)和/或應(yīng)用控制。例如,事實上操作系統(tǒng)和/或應(yīng)用的任何可控方面可由諸如用戶18等目標的移動來控制。圖2示出可在目標識別、分析及跟蹤系統(tǒng)10中使用的捕捉設(shè)備20的示例實施例。 根據(jù)一示例實施例,捕捉設(shè)備20可被配置成經(jīng)由任何合適的技術(shù),包括例如飛行時間、結(jié)構(gòu)化光、立體圖像等來捕捉包括深度圖像的帶有深度信息的視頻,該深度信息可包括深度值。根據(jù)一個實施例,捕捉設(shè)備20可將所計算的深度信息組織為“Z層”,或與從深度相機沿其視線延伸的Z軸垂直的層。如圖2所示,捕捉設(shè)備20可包括圖像相機組件22。根據(jù)一個示例實施例,圖像相機組件22可以是可捕捉場景的深度圖像的深度相機。深度圖像可包括被捕捉的場景的二維O-D)像素區(qū)域,其中2-D像素區(qū)域中的每一個像素都可以(例如以厘米、毫米等等為單位)表示來自相機的被捕捉的場景中的物體的長度。如圖2所示,根據(jù)一示例實施例,圖像相機組件22可包括可用于捕捉場景的深度圖像的頂光組件對、三維(3-D)相機沈、和RGB相機觀。例如,在飛行時間分析中,捕捉設(shè)備20的頂光組件M可以將紅外光發(fā)射到場景上,然后,可以使用傳感器(未示出),用例如3-D相機沈和/或RGB相機觀,來檢測從場景中的一個或多個目標和物體的表面反向散射的光。在某些實施例中,可以使用脈沖紅外光,使得可以測量出射光脈沖和相應(yīng)的入射光脈沖之間的時間差并將其用于確定從捕捉設(shè)備20到場景中的目標或物體上的特定位置的物理距離。附加地,在其他示例實施例中,可將出射光波的相位與入射光波的相位進行比較來確定相移。然后可以使用該相移來確定從捕捉設(shè)備到目標或物體上的特定位置的物理距
1 O
6
根據(jù)另一示例實施例,可使用飛行時間分析,通過經(jīng)由包括例如快門式光脈沖成像在內(nèi)的各種技術(shù)來分析反射光束隨時間的強度變化以間接地確定從捕捉設(shè)備20到目標或物體上的特定位置的物理距離。在另一示例實施例中,捕捉設(shè)備20可使用結(jié)構(gòu)化光來捕捉深度信息。在這一分析中,圖案化光(即,被顯示為諸如網(wǎng)格圖案或條紋圖案等已知圖案的光)可經(jīng)由例如頂光組件M被投影到場景上。在落到場景中的一個或多個目標或物體的表面上時,作為響應(yīng), 圖案可變形。圖案的這種變形可由例如3-D相機沈和/或RGB相機觀來捕捉,然后可被分析來確定從捕捉設(shè)備到目標或物體上的特定位置的物理距離。根據(jù)另一實施例,捕捉設(shè)備20可包括兩個或更多個物理上分開的相機,這些相機可從不同角度查看場景來獲得可被解析以生成深度信息的視覺立體數(shù)據(jù)。捕捉設(shè)備20還可包括話筒30。話筒30可包括可接收聲音并將其轉(zhuǎn)換成電信號的換能器或傳感器。根據(jù)一個實施例,話筒30可以被用來減少目標識別、分析及跟蹤系統(tǒng)10 中的捕捉設(shè)備20和計算環(huán)境12之間的反饋。另外,話筒30可用于接收也可由用戶提供的音頻信號,以控制可由計算環(huán)境12執(zhí)行的諸如游戲應(yīng)用、非游戲應(yīng)用等應(yīng)用。在示例實施例中,捕捉設(shè)備20還可以包括可與圖像相機組件22進行可操作的通信的處理器32。處理器32可包括可執(zhí)行指令的標準處理器、專用處理器、微處理器等,這些指令可包括用于接收深度圖像的指令、用于確定合適的目標是否可被包括在深度圖像中的指令、用于將合適的目標轉(zhuǎn)換成該目標的骨架表示或模型的指令、或任何其他合適的指令。捕捉設(shè)備20還可以包括存儲器組件34,該存儲器組件34可以存儲可以由處理器 32執(zhí)行的指令、由3-D相機或RGB相機捕捉到的圖像或圖像的幀、或任何其他合適的信息、 圖像等等。根據(jù)一個示例實施例,存儲器組件34可包括隨機存取存儲器(RAM)、只讀存儲器 (ROM)、高速緩存、閃存、硬盤或任何其他合適的存儲組件。如圖2所示,在一個實施例中,存儲器組件34可以是與圖像捕捉組件22和處理器32進行通信的單獨的組件。根據(jù)另一實施例,存儲器組件34可被集成到處理器32和/或圖像捕捉組件22中。如圖2所示,捕捉設(shè)備20可經(jīng)由通信鏈路36與計算環(huán)境12進行通信。通信鏈路36可以是包括例如USB連接、火線連接、以太網(wǎng)電纜連接等的有線連接和/或諸如無線 802. lib,802. llg、802. Ila或802. Iln連接等的無線連接。根據(jù)一個實施例,計算環(huán)境12 可以經(jīng)由通信鏈路36向捕捉設(shè)備20提供時鐘,可以使用該時鐘來確定何時捕捉例如場景。另外,捕捉設(shè)備20可以通過通信鏈路36向計算環(huán)境12提供深度信息和由例如 3-D相機沈和/或RGB相機觀捕捉到的圖像,以及可以由捕捉設(shè)備20生成的骨架模型。 計算環(huán)境12然后可使用該骨架模型、深度信息和捕捉的圖像來例如識別用戶姿勢以及作為響應(yīng)來控制諸如游戲或文字處理程序等應(yīng)用。例如,如圖2所示,計算環(huán)境12可包括姿勢識別器引擎190。姿勢識別器引擎190可包括姿勢過濾器集合,每一姿勢過濾器包括關(guān)于骨架模型(在用戶移動時)可執(zhí)行的姿勢的信息。可將由相機26J8和設(shè)備20捕捉的骨架模型形式的數(shù)據(jù)以及與其相關(guān)聯(lián)的移動同姿勢識別器引擎190中的姿勢過濾器進行比較來標識用戶(如骨架模型所表示的)何時執(zhí)行了一個或多個姿勢。那些姿勢可與應(yīng)用的各種控制相關(guān)聯(lián)。因此,計算環(huán)境12可使用姿勢識別器引擎190來解釋骨架模型的移動并基于該移動來控制應(yīng)用。圖3A示出了可用于實現(xiàn)圖1A-2的計算環(huán)境12的計算環(huán)境的示例實施例。在這一實施例中,計算環(huán)境12包括諸如游戲控制臺之類的多媒體控制臺100。如圖3A所示,多媒體控制臺100具有含有一級高速緩存102、二級高速緩存104和閃存ROM(只讀存儲器)106 的中央處理單元(CPU) 101。1級高速緩存102和2級高速緩存104臨時存儲數(shù)據(jù),并因此減少存儲器訪問周期數(shù),由此改進處理速度和吞吐量。CPU 101可以設(shè)置成具有一個以上的內(nèi)核,以及由此的附加的一級和二級高速緩存102和104。閃存ROM 106可存儲在多媒體控制臺100通電時引導(dǎo)過程的初始階段期間加載的可執(zhí)行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速和高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線向A/V(音頻/視頻)端口 140輸出數(shù)據(jù),以便傳輸?shù)诫娨暀C或其他顯示器。存儲器控制器110連接到GPU 108以方便處理器訪問各種類型的存儲器112,諸如但不局限于RAM(隨機存取存儲器)。多媒體控制臺100包括較佳地在模塊118上實現(xiàn)的I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一 USB主控制器126、第二 USB控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外圍控制器142⑴-142 O)、無線適配器148、和外置存儲器設(shè)備146 (例如閃存、外置⑶/DVD ROM驅(qū)動器、可移動介質(zhì)等) 的主機。網(wǎng)絡(luò)接口 1 和/或無線適配器148提供對網(wǎng)絡(luò)(例如,因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問,并且可以是包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍牙模塊、電纜調(diào)制解調(diào)器等的各種不同的有線或無線適配器組件中任何一種。提供系統(tǒng)存儲器143來存儲在引導(dǎo)過程期間加載的應(yīng)用數(shù)據(jù)。提供介質(zhì)驅(qū)動器 144,該介質(zhì)驅(qū)動器可以包括DVD/CD驅(qū)動器、硬盤驅(qū)動器,或其他可移動介質(zhì)驅(qū)動器等。介質(zhì)驅(qū)動器144可以內(nèi)置或外置于多媒體控制臺100。應(yīng)用數(shù)據(jù)可經(jīng)由介質(zhì)驅(qū)動器144訪問, 以由多媒體控制臺100執(zhí)行、回放等。介質(zhì)驅(qū)動器144經(jīng)由諸如串行ATA總線或其他高速連接(例如IEEE 1394)等總線連接到I/O控制器120。系統(tǒng)管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務(wù)功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應(yīng)的音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數(shù)據(jù)輸出到A/V端口 140以供外置音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發(fā)光二極管)或其他指示器的功能。系統(tǒng)供電模塊136向多媒體控制臺100的組件供電。風(fēng)扇138冷卻多媒體控制臺100內(nèi)的電路。CPU 101、GPU 108、存儲器控制器110、和多媒體控制臺100內(nèi)的各種其他組件經(jīng)由一條或多條總線互連,總線包括串行和并行總線、存儲器總線、外圍總線、和使用各種總線架構(gòu)中任一種的處理器或局部總線。作為示例,這些架構(gòu)可以包括外圍部件互連(PCI) 總線、PCI-Express總線等。當多媒體控制臺100通電時,應(yīng)用數(shù)據(jù)可從系統(tǒng)存儲器143加載到存儲器112和/ 或高速緩存102、104中并在CPU 101上執(zhí)行。應(yīng)用可呈現(xiàn)在導(dǎo)航到多媒體控制臺100上可用的不同媒體類型時提供一致的用戶體驗的圖形用戶界面。在操作中,介質(zhì)驅(qū)動器144中包含的應(yīng)用和/或其他媒體可從介質(zhì)驅(qū)動器144啟動或播放,以向多媒體控制臺100提供附加功能。
多媒體控制臺100可通過將該系統(tǒng)簡單地連接到電視機或其他顯示器而作為獨立系統(tǒng)來操作。在該獨立模式中,多媒體控制臺100允許一個或多個用戶與該系統(tǒng)交互、看電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 1 或無線適配器148可用的寬帶連接的集成, 多媒體控制臺100還可作為更大網(wǎng)絡(luò)社區(qū)中的參與者來操作。當多媒體控制臺100通電時,可以保留設(shè)定量的硬件資源以供多媒體控制臺操作系統(tǒng)作系統(tǒng)使用。這些資源可包括存儲器的保留量(例如,16MB)、CPU和GPU周期的保留量(例如,5% )、網(wǎng)絡(luò)帶寬的保留量(例如,Slcbs),等等。因為這些資源是在系統(tǒng)引導(dǎo)時間保留的,所保留的資源對于應(yīng)用視角而言是不存在的。具體而言,存儲器保留優(yōu)選地足夠大,以包含啟動內(nèi)核、并發(fā)系統(tǒng)應(yīng)用和驅(qū)動程序。CPU保留優(yōu)選地為恒定,使得若所保留的CPU用量不被系統(tǒng)應(yīng)用使用,則空閑線程將消耗任何未使用的周期。對于GPU保留,通過使用GPU中斷來調(diào)度代碼來將彈出窗口呈現(xiàn)為覆蓋圖以顯示由系統(tǒng)應(yīng)用程序生成的輕量消息(例如,彈出窗口)。覆蓋圖所需的存儲器量取決于覆蓋區(qū)域大小,并且覆蓋圖優(yōu)選地與屏幕分辨率成比例縮放。在并發(fā)系統(tǒng)應(yīng)用使用完整用戶界面的情況下,優(yōu)選使用獨立于應(yīng)用分辨率的分辨率。定標器可用于設(shè)置該分辨率,從而無需改變頻率并引起TV重新同步。在多媒體控制臺100引導(dǎo)且系統(tǒng)資源被保留之后,就執(zhí)行并發(fā)系統(tǒng)應(yīng)用來提供系統(tǒng)功能。系統(tǒng)功能被封裝在上述所保留的系統(tǒng)資源中執(zhí)行的一組系統(tǒng)應(yīng)用中。操作系統(tǒng)內(nèi)核標識是系統(tǒng)應(yīng)用線程而非游戲應(yīng)用線程的線程。系統(tǒng)應(yīng)用優(yōu)選地被調(diào)度為在預(yù)定時間并以預(yù)定時間間隔在CPU 101上運行,以便為應(yīng)用提供一致的系統(tǒng)資源視圖。進行調(diào)度是為了把由在控制臺上運行的游戲應(yīng)用所引起的高速緩存分裂最小化。當并發(fā)系統(tǒng)應(yīng)用需要音頻時,則由于時間敏感性而將音頻處理異步地調(diào)度給游戲應(yīng)用。多媒體控制臺應(yīng)用管理器(如下所述)在系統(tǒng)應(yīng)用活動時控制游戲應(yīng)用的音頻水平 (例如,靜音、衰減)。輸入設(shè)備(例如,控制器142(1)和142( )由游戲應(yīng)用和系統(tǒng)應(yīng)用共享。輸入設(shè)備不是保留資源,而是在系統(tǒng)應(yīng)用和游戲應(yīng)用之間切換以使其各自具有設(shè)備的焦點。應(yīng)用管理器較佳地控制輸入流的切換,而無需知曉游戲應(yīng)用的知識,并且驅(qū)動程序維護有關(guān)焦點切換的狀態(tài)信息。相機26J8和捕捉設(shè)備20可為控制臺100定義額外的輸入設(shè)備。圖;3B示出了可用于實現(xiàn)圖1A-2所示的計算環(huán)境12的計算環(huán)境220的另一示例實施例。計算環(huán)境220只是合適的計算環(huán)境的一個示例,并且不旨在對所公開的主題的使用范圍或功能提出任何限制。也不應(yīng)該把計算環(huán)境220解釋為對所示出的任一組件或其組合有任何依賴性或要求。在某些實施例中,所描繪的各種計算元素可包括被配置成實例化本發(fā)明的各具體方面的電路。例如,本公開中使用的術(shù)語電路可包括被配置成通過固件或開關(guān)來執(zhí)行功能的專用硬件組件。其他示例中,術(shù)語電路可包括由實施可用于執(zhí)行功能的邏輯的軟件指令配置的通用處理單元、存儲器等。在其中電路包括硬件和軟件的組合的示例實施例中,實施者可以編寫體現(xiàn)邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機器可讀代碼。因為本領(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進化到硬件、軟件或硬件/軟件組合之間幾乎沒有差別的地步,因而選擇硬件或是軟件來實現(xiàn)具體功能是留給實現(xiàn)者的設(shè)計選擇。更具體地,本領(lǐng)域技術(shù)人員可以明白軟件進程可被變換成等價的硬
9件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等價的軟件進程。因此,對于硬件實現(xiàn)還是軟件實現(xiàn)的選擇是設(shè)計選擇并留給實現(xiàn)者。在圖;3B中,計算環(huán)境220包括計算機Ml,計算機通常包括各種計算機可讀介質(zhì)。 計算機可讀介質(zhì)可以是能由計算機241訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。系統(tǒng)存儲器222包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如只讀存儲器(ROM) 223和隨機存取存儲器(RAM06O?;据斎?輸出系統(tǒng)224(BI0Q包含諸如在啟動期間幫助在計算機Ml內(nèi)的元件之間傳輸信息的基本例程, 基本輸入/輸出系統(tǒng)224¢10 通常儲存儲在ROM 223中。RAM 260通常包含處理單元259 可立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖3B示出了操作系統(tǒng)225、應(yīng)用程序226、其它程序模塊227和程序數(shù)據(jù)228。計算機241也可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖3B示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)動器238,對可移動、非易失性磁盤邪4進行讀寫的磁盤驅(qū)動器239,以及對諸如CD ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤253進行讀寫的光盤驅(qū)動器M0??稍谑纠圆僮鳝h(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器238通常由例如接口 234等不可移動存儲器接口連接至系統(tǒng)總線221,而磁盤驅(qū)動器239和光盤驅(qū)動器240通常由例如接口 235等可移動存儲器接口連接至系統(tǒng)總線221。以上討論并在圖;3B中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機241 提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。在圖3B中,例如,硬盤驅(qū)動器238被示為存儲操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256和程序數(shù)據(jù)255。注意,這些組件可以與操作系統(tǒng)225、應(yīng)用程序226、其他程序模塊227和程序數(shù)據(jù)2 相同, 也可以與它們不同。在此操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256以及程序數(shù)據(jù)255 被給予了不同的編號,以說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,例如鍵盤 251和定點設(shè)備252——通常是指鼠標、跟蹤球或觸摸墊——向計算機241輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。 這些和其他輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口 236連接至處理單元259, 但也可以由其他接口和總線結(jié)構(gòu),例如并行端口、游戲端口或通用串行總線(USB)來連接。 相機沈、觀和捕捉設(shè)備20可為控制臺100定義額外的輸入設(shè)備。監(jiān)視器242或其他類型的顯示設(shè)備也通過諸如視頻接口 232之類的接口連接至系統(tǒng)總線221。除監(jiān)視器之外,計算機還可以包括可以通過輸出外圍接口 233連接的諸如揚聲器244和打印機243之類的其他外圍輸出設(shè)備。計算機241可以使用到一個或多個遠程計算機(如遠程計算機M6)的邏輯連接, 以在聯(lián)網(wǎng)環(huán)境中操作。遠程計算機246可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點,且通常包括許多或所有以上相對于計算機241描述的元件,盡管在圖:3B中僅示出了存儲器存儲設(shè)備M7。圖:3B中所示的邏輯連接包括局域網(wǎng)(LAN) 245 和廣域網(wǎng)(WAN049,但也可以包括其他網(wǎng)絡(luò)。這些聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當用于LAN網(wǎng)絡(luò)環(huán)境中時,計算機241通過網(wǎng)絡(luò)接口或適配器245連接到LAN237。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機241通常包括調(diào)制解調(diào)器250或用于通過諸如因特網(wǎng)等WAN 249建立通信的其他手段。調(diào)制解調(diào)器250,可以是內(nèi)置的或外置的,可以經(jīng)由用戶輸入接口 236或其他適當?shù)臋C制,連接到系統(tǒng)總線221。在聯(lián)網(wǎng)環(huán)境中,相對于計算機 241所描述的程序模塊或其部分可被存儲在遠程存儲器存儲設(shè)備中。作為示例而非限制,圖 3B示出了遠程應(yīng)用程序248駐留在存儲器設(shè)備247上。應(yīng)當理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計算機之間建立通信鏈路的其他手段。圖4A描繪了可從捕捉設(shè)備20生成的用戶的示例骨架映射。在該實施例中,標識出各個關(guān)節(jié)和骨骼每一手302、每一前臂304、每一肘306、每一二頭肌308、每一肩310、每一髖312、每一大腿314、每一膝316、每一小腿318、每一足320、頭322、軀干324、脊椎的頂部3 和底部328,以及腰330。在跟蹤更多點的情況下,可標識出附加的特征,比如手指或腳趾的骨骼和關(guān)節(jié),或臉部的各個特征,如鼻和眼。用戶可通過移動他的身體創(chuàng)建姿勢。姿勢包括用戶的運動或姿態(tài),其可被捕捉為圖像數(shù)據(jù)并解析其意義。姿勢可以是動態(tài)的,包括運動,如模仿投球。姿勢可以是靜態(tài)姿態(tài),如在一個人的軀干3M前面交叉握住他的前臂304。姿勢也可結(jié)合道具,如通過揮動仿制的劍。姿勢可包括多于一個身體部位,如拍雙手302,或是較微小的運動,如撅起一個人的嘴唇。姿勢可用于一般計算上下文中的輸入。例如,手302或其他身體部位的各種運動可對應(yīng)于常見的系統(tǒng)級任務(wù),如在分層列表中向上或向下導(dǎo)航、打開文件、關(guān)閉文件和保存文件。姿勢也可在視頻游戲?qū)S蒙舷挛闹腥Q于游戲來使用。例如,對于駕駛游戲,手302 和腳320的各種運動可對應(yīng)于在一方向上操控車輛、換擋、加速和剎車。用戶可通過自己在原地行走或奔跑來生成對應(yīng)于行走或奔跑的姿勢。用戶可另選地提起并放下每一腿312-320來在不移動的情況下模擬行走。系統(tǒng)可通過分析每一髖312 和每一大腿314來解析該姿勢。當一個髖部-大腿角(如相對于垂直線測量的,其中站立的腿具有0°的髖部-大腿角,而向前水平伸展的腿具有90°的髖部-大腿角)超過相對于另一大腿的特定閾值時,可識別一步。行走或奔跑可在交替腿的某一數(shù)量的連續(xù)步之后被識別。兩個最近的步之間的時間可被認為是一周期。在不滿足閾值角度達某一數(shù)量的周期之后,系統(tǒng)可確定行走或奔跑姿勢已停止。給定“行走或奔跑”姿勢,應(yīng)用可為與該姿勢相關(guān)聯(lián)的參數(shù)設(shè)定值。這些參數(shù)可包括上述閾值角度、發(fā)起行走或奔跑姿勢所需的步數(shù)、結(jié)束姿勢的沒有發(fā)生步的周期數(shù)、以及確定姿勢是行走還是奔跑的閾值周期??熘芷诳蓪?yīng)于奔跑,因為用戶將快速地移動他的腿,而較慢的周期可對應(yīng)于行走。姿勢最初可以與一組默認參數(shù)相關(guān)聯(lián),應(yīng)用可用其自己的參數(shù)來覆蓋該組默認參數(shù)。在這一場景中,不迫使應(yīng)用提供參數(shù),而是應(yīng)用可改為使用一組允許在沒有應(yīng)用定義的參數(shù)的情況下識別姿勢的默認參數(shù)。有各種可以與姿勢相關(guān)聯(lián)的輸出??梢杂嘘P(guān)于姿勢是否正在發(fā)生的基線“是或否”。還可以有置信度水平,其對應(yīng)于用戶跟蹤的移動對應(yīng)于姿勢的可能性。這可以是范圍為0和1之間(包括端點)的浮點數(shù)的線性標度。在接收該姿勢信息的應(yīng)用不能接受假肯定作為輸入的應(yīng)用中,它可僅使用具有高置信度水平,如至少0.95的已識別的姿勢。在應(yīng)用必須識別姿勢的每一實例的情況下,即使以假肯定為代價,它可使用至少具有低得多的置信度水平的姿勢,如僅僅大于0. 2的那些姿勢。姿勢可具有在兩個最近步之間的時間的輸出,并且在僅注冊了第一步的情況下,這可被設(shè)為保留值,如-1(因為任何兩步之間的時間必須為正)。姿勢也可具有關(guān)于在最近一步期間達到的最高大腿角的輸出。另一示例性姿勢是“腳跟提起跳”。在該姿勢中,用戶可通過將他的腳跟提離地面, 但保持他的腳趾著地來創(chuàng)建該姿勢。另選地,用戶可跳向空中,其中他的腳320完全離開地面。該系統(tǒng)可通過分析肩310、髖312和膝316的角度關(guān)系來解析該姿勢的骨架,以查看它們是否是等于直立的對齊位置。然后,可監(jiān)視這些點和較高3 和較低3 脊椎點來發(fā)現(xiàn)任何向上加速。足夠的加速組合可觸發(fā)跳躍姿勢。給定該“腳跟提起跳”姿勢,應(yīng)用可為與該姿勢相關(guān)聯(lián)的參數(shù)設(shè)定值。參數(shù)可包括上述加速閾值,其確定用戶的肩310、髖312和膝316的某種組合必須向上移動多快來觸發(fā)該姿勢;以及肩310、髖312和膝316之間仍可觸發(fā)跳躍的最大對齊角。輸出可包括置信度水平,以及用戶在跳躍時的身體角度?;趯⒔邮兆藙莸膽?yīng)用的細節(jié)來為姿勢設(shè)定參數(shù)對于準確地標識姿勢而言是重要的。正確地標識姿勢以及用戶的意圖極大地有助于創(chuàng)建積極的用戶體驗。在姿勢識別器系統(tǒng)太敏感、甚至手302的微小向前運動也被解釋為投擲的情況下,用戶可能變得沮喪,因為在他沒有作出姿勢的意圖的情況下卻識別出姿勢,因此他缺乏對系統(tǒng)的控制。在姿勢識別器系統(tǒng)不夠敏感的情況下,系統(tǒng)可能未識別出用戶作出投擲姿勢的刻意嘗試,從而類似地使用戶感到沮喪。在敏感度范圍的任一端,用戶都會變得沮喪,因為他不能正確地向系統(tǒng)提供輸入。對于姿勢的另一參數(shù)可以是移動的距離。在用戶的姿勢控制虛擬環(huán)境中的化身的動作的情況下,該化身可以是手臂離球的長度。如果用戶希望與該球交互并抓住它,則這可要求用戶伸展他的手臂302-310到全長同時作出抓握姿勢。在這一情形中,用戶僅部分地伸展他的手臂302-310的類似的抓握姿勢可能無法達到與球交互的結(jié)果。姿勢或其一部分可將它必須在其中發(fā)生的空間體作為參數(shù)。在姿勢包括身體移動的情況下,該空間體通??上鄬τ谏眢w來表達。例如,對于慣用右手的用戶的美式足球投擲姿勢可僅在不低于右肩310a、且與投擲手臂3(^a-310a在頭322的相同側(cè)的空間體中識別??赡懿槐匾x空間體的所有邊界,如對于該投擲姿勢,其中從身體向外的邊界留著不被定義,并且該空間體無限地向外延伸,或者延伸到正被監(jiān)視的場景的邊緣。圖4B提供了圖2的姿勢識別器引擎190的一個示例性實施例的進一步細節(jié)。如圖所示,姿勢識別器引擎190可包括用于確定一個或多個姿勢的至少一個過濾器418。過濾器418包括定義姿勢426(以下稱為“姿勢”)以及該姿勢的參數(shù)4 或元數(shù)據(jù)的信息。例如,包括一只手從身體背后越過身體前方的運動的投擲可被實現(xiàn)為包括表示用戶的一只手從身體背后越過身體前方的移動的信息的姿勢426,該移動將由深度相機來捕捉。然后可為該姿勢4 設(shè)定參數(shù)426。在姿勢似6是投擲的情況下,參數(shù)4 可以是該手必須達到的閾值速度、該手必須行進的距離(絕對的,或相對于用戶的整體大小)、以及識別器引擎對發(fā)生姿勢的置信度評級。姿勢428的這些參數(shù)似6可以在各應(yīng)用之間、在單個應(yīng)用的各上下文之間、或在一個應(yīng)用的一個上下文內(nèi)隨著時間而變化。過濾器可以是模塊化的或是可互換的。在一個實施例中,過濾器具有多個輸入和多個輸出,這些輸入中的每一個具有一類型,這些輸出中的每一個具有一類型。在這一情形
12中,第一過濾器可用具有與第一過濾器相同數(shù)量和類型的輸入和輸出的第二過濾器來替換而不更改識別器引擎體系結(jié)構(gòu)的其他方面。例如,可能具有用于驅(qū)動的第一過濾器,該第一過濾器將骨架數(shù)據(jù)作為輸入并輸出與該過濾器相關(guān)聯(lián)的姿勢正在發(fā)生的置信度和轉(zhuǎn)向角。 在希望用第二驅(qū)動過濾器來替換該第一驅(qū)動過濾器的情況下(這可能是因為第二驅(qū)動過濾器更高效且需要更少的處理資源),可以通過簡單地用第二過濾器替換第一過濾器來這樣做,只要第二過濾器具有同樣的輸入和輸出——骨架數(shù)據(jù)類型的一個輸入、以及置信度類型和角度類型的兩個輸出。過濾器不需要具有參數(shù)。例如,返回用戶的高度的“用戶高度”過濾器可能不允許可被調(diào)節(jié)的任何參數(shù)。備選的“用戶高度”過濾器可具有可調(diào)節(jié)參數(shù),比如在確定用戶的高度時是否考慮用戶的鞋、發(fā)型、頭飾以及體態(tài)。對過濾器的輸入可包括諸如關(guān)于用戶的關(guān)節(jié)位置的關(guān)節(jié)數(shù)據(jù),像在關(guān)節(jié)處相交的骨所形成的角度、來自場景的RGB色彩數(shù)據(jù)、以及用戶的某一方面的變化速率等內(nèi)容。來自過濾器的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運動的速度、以及作出姿勢運動的時間等內(nèi)容。上下文可以是文化上下文,并且可以是環(huán)境上下文。文化上下文指的是使用系統(tǒng)的用戶的文化。不同的文化可使用相似的姿勢來賦予顯著不同的含義。例如,希望叫另一個用戶“看”或“使用他的眼睛”的美國用戶可將他的食指放在他頭上靠近他的眼睛的遠端處。然而,對意大利用戶而言,該姿勢可被解釋為對黑手黨的引用。類似地,在單個應(yīng)用的不同環(huán)境之中可能有不同的上下文。以涉及操作摩托車的第一人稱射擊游戲為例。當用戶在走路時,將手指朝向地面握拳并向前且從身體向外伸出拳頭可表示出拳姿勢。當用戶在駕駛上下文中時,相同的運動可表示“換擋”姿勢??赡苓€有一個或多個菜單環(huán)境,其中用戶可保存他的游戲、在他的人物裝備之間選擇或執(zhí)行類似的不包括直接玩游戲的動作。在該環(huán)境中,該游戲姿勢可具有第三個含義,如選擇某樣?xùn)|西或前進到另一屏幕。姿勢識別器引擎190可具有向姿勢過濾器416提供功能的基礎(chǔ)識別器引擎418。 在一實施例中,識別器引擎416實現(xiàn)的功能包括跟蹤已識別的姿勢和其他輸入的隨時間輸入(input-over-time)存檔、隱馬爾可夫模型實現(xiàn)(其中模型化系統(tǒng)被假定為具有未知參數(shù)的馬爾可夫過程一其中當前狀態(tài)封裝了確定將來狀態(tài)所需的任何過去狀態(tài)信息,因此不必為此目的而維護任何其它過去狀態(tài)信息的過程,并且隱藏參數(shù)從可觀察數(shù)據(jù)來確定)、以及求解姿勢識別的特定實例所需的其他功能。過濾器418在基礎(chǔ)識別器引擎416之上加載并實現(xiàn),并且可利用引擎416提供給所有過濾器418的服務(wù)。在一實施例中,基礎(chǔ)識別器引擎416處理所接收到的數(shù)據(jù)來確定它是否滿足任何過濾器418的要求。由于這些諸如解析輸入等所提供的服務(wù)是由基礎(chǔ)識別器引擎416 —次性提供而非由每一過濾器418提供的,因此這一服務(wù)在一段時間內(nèi)只需被處理一次而不是對該時間段對每一過濾器418處理一次,由此減少了確定姿勢所需的處理。應(yīng)用程序可使用姿勢識別器引擎190所提供的過濾器418,或者它可提供其自己的過濾器418,該過濾器被插入到基礎(chǔ)識別器引擎416中。在一實施例中,所有過濾器418 具有啟用該插入特性的通用接口。此外,所有過濾器418可利用參數(shù)428,因此可使用如下所述的單個姿勢工具來診斷并調(diào)節(jié)整個過濾器系統(tǒng)418。
13
這些參數(shù)4 可由姿勢工具420為應(yīng)用程序或應(yīng)用程序的上下文來調(diào)節(jié)。在一實施例中,姿勢工具420包括多個滑塊422以及身體422的圖表示,每一滑塊4M對應(yīng)于一參數(shù)428。當用相應(yīng)的滑塊422來調(diào)整參數(shù)4 時,身體4 可展示將用這些參數(shù)4 被識別為姿勢的動作以及使用這些參數(shù)4 將不被識別為姿勢的動作,如所標識的。姿勢的參數(shù) 428的這一可視化提供了調(diào)試并細化調(diào)節(jié)姿勢的有效手段。圖5描繪了從堆疊的姿勢或過濾器418創(chuàng)建的更復(fù)雜的姿勢或過濾器418。姿勢可堆疊在彼此之上。即,用戶一次可表達多于一個的姿勢。例如,并非在作出投擲姿勢時不允許除了投擲之外的任何輸入,也不要求用戶除了該姿勢的分量之外保持不動(例如,在作出僅涉及一條手臂的投擲姿勢時站著不動)。在姿勢堆疊時,用戶可同時作出跳躍姿勢和投擲姿勢,并且這兩個姿勢都將被姿勢引擎識別出。圖5A描繪了根據(jù)堆疊范例的簡單姿勢過濾器418。I過濾器(IFilter) 502是可在每一姿勢過濾器中使用的基本過濾器418。I過濾器(IFilter) 502取用戶位置數(shù)據(jù)504,并輸出姿勢已發(fā)生的置信度水平506。它還將該位置數(shù)據(jù)504饋入方向盤(SteeringWheel) 過濾器508,該過濾器508取該位置數(shù)據(jù)作為輸入,并輸出用戶正在轉(zhuǎn)向的角度(例如,向用戶當前方向右側(cè)40度)510。圖5B描繪了將過濾器418堆疊到圖5A的姿勢過濾器上的更復(fù)雜的姿勢。除了 I 過濾器502和方向盤508之外,還存在I跟蹤(ITracking)過濾器512,該過濾器從I過濾器502接收位置數(shù)據(jù)504,并輸出用戶通過姿勢514所作出的進展量。I跟蹤512還將位置數(shù)據(jù)504饋送到潤滑油減輕(GreaseLightning) 516和E剎車(Ebrake) 518,這些是關(guān)于可在操作車輛時如使用緊急剎車作出的其他姿勢的過濾器418。圖6描繪了用戶602在美式足球視頻游戲中可以作出的用以發(fā)出“安全接球”(fair catch)信號的示例姿勢。這些圖描繪了各個時間點的用戶,其中圖6A是第一時間點,而圖6E是最后一個時間點。這些圖中的每一個可對應(yīng)于深度相機402捕捉的圖像數(shù)據(jù)的一個快照或幀,但不必是連續(xù)的圖像數(shù)據(jù)幀,因為深度相機402能夠比用戶可覆蓋該距離更快地捕捉幀。例如,該姿勢可在3秒的時間段內(nèi)發(fā)生,并且在深度相機以每秒40幀來捕捉數(shù)據(jù)的情況下,在用戶602作出該安全接球姿勢時它將捕捉60個圖像數(shù)據(jù)幀。在圖6A中,用戶602以他的手臂604向下放于兩側(cè)開始。他然后將手臂舉起超過肩膀,如圖6B所描繪的,然后進一步向上到大約他的頭部的水平,如圖6C所描繪的。從那里,他將他的手臂604降下到肩膀水平,如圖6D所描繪的,然后再一次將手臂舉起到大約他的頭部的水平,如圖6E所描繪的。在系統(tǒng)捕捉用戶602的這些位置而沒有可發(fā)出該姿勢被取消或正在作出另一姿勢的信號的任何居間位置的情況下,可能會使得完全接球姿勢過濾器輸出用戶602作出了完全接球姿勢的高置信度水平。圖7描繪了在解析每一圖像數(shù)據(jù)幀來產(chǎn)生用戶的骨架映射時圖5的示例“安全接球”姿勢。該系統(tǒng)在從用戶的深度圖像產(chǎn)生了骨架映射之后,現(xiàn)在可確定用戶的身體如何隨時間而移動,并且可從中解析姿勢。在圖7A中,用戶的肩膀310在他的肘306上方,而肘306又在他的手302上方。 肩310、肘306和手302然后在圖7B中處于一致水平。系統(tǒng)然后在圖7C中檢測到手302在肘上方,而肘在肩310上方。在圖7D中,用戶返回到圖7B的位置,其中肩310、肘306和手 302處于一致水平。在該姿勢的最終位置,圖7E中示出,用戶返回到圖7C的位置,其中手302在肘上方,而肘在肩310上方。盡管捕捉設(shè)備20捕捉了一系列靜止圖像,使得在任何一個圖像中用戶看似為靜止的,但用戶在執(zhí)行該姿勢的過程中在移動(而非如上所述的靜止姿勢)。該系統(tǒng)能夠取每一靜止圖像中的該一系列姿態(tài),并從中確定用戶正在作出的移動姿勢的置信度水平。在執(zhí)行姿勢時,用戶可能無法創(chuàng)建如他的右肩310a、右肘306a和右手30 所形成的角度,例如在140°和145°之間。因此,使用用于安全接球姿勢426的過濾器418的應(yīng)用可調(diào)諧相關(guān)聯(lián)的參數(shù)4 來最佳地服務(wù)于應(yīng)用的細節(jié)。例如,圖7C和7E中的位置可在用戶將其手302放在其肩310上方的任何時刻被識別出,而不關(guān)注肘306的位置。更嚴格的一組參數(shù)可能要求手302在頭310上方,并且肘306既在肩310上方又在頭322和手302 之間。另外,用于完全接球姿勢426的參數(shù)4 可能要求用戶在諸如1. 5秒等一段指定時間內(nèi)從圖7A的位置移動到圖7E的位置,并且如果用戶花費了多于1. 5秒來移動通過這些位置,則它將不被識別為完全接球418,并且可輸出非常低的置信度水平。圖8A-C示出用戶使用骨架之外的姿勢來對系統(tǒng)做出輸入的示例。骨架之外的姿勢可包括從捕捉設(shè)備捕捉到的用戶位置或移動的組合(此處稱為“用戶位置數(shù)據(jù)”或“位置數(shù)據(jù)”)導(dǎo)出的輸入連同從另一源(諸如控制器上的按鈕的按壓)導(dǎo)出的輸入或捕捉到用戶的場景中的物體的位置(此處稱為“附加數(shù)據(jù)”)。圖8A示出用戶18通過由捕捉設(shè)備20捕捉的身體移動來對系統(tǒng)12進行姿勢輸入 (用戶位置數(shù)據(jù)),并且按下控制器802上的按鈕(附加數(shù)據(jù))。系統(tǒng)12可接收來自有線或無線控制器802的控制器輸入。用戶可通過經(jīng)由控制器802上的按鈕、搖桿或其它墊的輸入來補充由捕捉設(shè)備20所捕捉的其通過其身體做出的動作或姿勢。例如,在玩第一人稱射擊游戲時,用戶18可用其手臂瞄準顯示設(shè)備16所顯示的一個位置。他可進一步在大致同一時間按下控制器802上的按鈕。計算設(shè)備12可將用戶18的瞄準且同時按壓按鈕識別為 “釋放火力”姿勢。圖8B示出多個用戶18正在通過由捕捉識別20捕捉的相應(yīng)身體移動對系統(tǒng)12做出組合的姿勢輸入(其中,第一用戶的姿勢輸入包括用戶位置數(shù)據(jù),而第二用戶的姿勢輸入包括附加數(shù)據(jù))。這兩個用戶正在通過改變他們組合的重心804來進行姿勢輸入。這可能是諸如在一種駕駛游戲中,其中兩個用戶18協(xié)作使他們的重心移向左或移向右來轉(zhuǎn)向,或者是在一種平衡練習(xí)中,其中兩個用戶18調(diào)整他們的重心來使所顯示的化身在橫梁上保持平衡。兩個用戶以站立開始,產(chǎn)生重心80 ,并隨后傾斜,這會調(diào)整重心804b。需要注意的是,任一用戶都可通過他自己的移動來單方面調(diào)整組的重心,并且用戶移動可彼此抵消, 使得重心保持靜止(諸如在他們具有同樣的質(zhì)量的情形中,如果他們彼此完全相反地移動同樣的距離的話)。多個用戶可組合來做出多種多樣的姿勢。例如,他們可協(xié)作來做出大象的剪影,其中他們彼此靠近地站立,并且一個人將他的手臂舉向側(cè)面來模仿象鼻,而另一人放低他的手臂向側(cè)面來模仿尾巴。圖8C示出用戶18通過由捕捉設(shè)備20捕捉的身體移動來對系統(tǒng)12進行姿勢輸入 (用戶位置數(shù)據(jù)),并且控制由捕捉手臂20捕捉的道具806(其它數(shù)據(jù))。用戶18能夠控制物理短棍806。通過移動短棍,諸如用手揮動短棍,用戶可做出揮劍的姿勢。在一個實施例中,當用戶揮動他的手但沒有拿著短棍806,則不會識別揮劍姿勢。
在另一實施例中,用戶18能夠使用他的物理環(huán)境作為道具。例如,當玩第一人稱游戲時,用戶可在其物理環(huán)境中的腳凳后面通過。這可被計算環(huán)境12識別為在第一人稱射擊者虛擬環(huán)境中蹲在附近的對象后。圖9示出了由于向系統(tǒng)提供用戶移動或基于用戶的骨架映射的姿勢之外的輸入。操作902示出接收由捕捉設(shè)備捕捉的用戶位置數(shù)據(jù)。遠處的捕捉設(shè)備可以捕捉包含全部用戶的場景,諸如從地面到天花板以及到用戶所處房間的每側(cè)的墻壁。捕捉設(shè)備也可以捕捉僅包含用戶的部分的場景,諸如他或她坐在桌邊時腹部以上的用戶。操作904示出接收反映不是從用戶的骨架映射中導(dǎo)出的輸入的數(shù)據(jù)(附加數(shù)據(jù))。 附加數(shù)據(jù)可包括諸如道具、用戶穿著的衣服、由捕捉設(shè)備捕捉的場景中的物體、其他的一個或多個用戶的用戶位置數(shù)據(jù)、用戶發(fā)出的聲音、控制器或遙控輸入、場景中的光的亮度和/ 或位置、用戶與觸敏設(shè)備的交互、以及用戶的面部表情之類。道具可包括可由用戶控制的物理對象,諸如圖8B中的短棍806。用戶穿著的衣服可包括用戶穿著的衣服的類型(例如,T恤或長袖衫)、衣服的顏色(例如,藍色的RGB值)、 或衣服的款式、設(shè)計或圖案(例如,水平橫條)。場景中的物體可包括用戶的物理區(qū)域內(nèi)由捕捉設(shè)備20捕捉到的家具,諸如桌子或長椅。第二用戶或多個用戶可包括人類用戶或非人類用戶,諸如用戶的狗。用戶發(fā)出的聲音包括用戶的發(fā)聲或通過其它裝置產(chǎn)生的聲音,諸如通過用戶把球掉在地上或拍手產(chǎn)生的聲音。還可包括來自環(huán)境的聲音,諸如用戶的移動電話響鈴的聲音??刂破骰蜻b控輸入可包括按下按鈕、搖桿、方向鍵、或由控制器或遙控器提供的其它的數(shù)字或模擬輸入裝置。場景中的光的量和/或位置可包括計算環(huán)境12所檢測到的由諸如燈泡之類的光源照射出的光的量,以及其在場景中的相對或絕對位置。用戶與觸敏設(shè)備的交互可包括例如用戶用他的手觸摸與計算環(huán)境12通信的觸敏表面。用戶面部表情可包括用戶做出的鬼臉,諸如伸出他的舌頭,或做出的表情,諸如快樂或悲傷。在附加數(shù)據(jù)是可視的情形中,該數(shù)據(jù)可由捕捉設(shè)備20捕捉。在一個實施例中,從第二用戶接收附加數(shù)據(jù)。這可包括,例如,用戶用他的身體做出姿勢或位置,同時第二用戶在控制器802上輸入按鈕輸入。在一個實施例中,接收位置數(shù)據(jù)和附加數(shù)據(jù)作為用戶在大致同一時刻輸入位置數(shù)據(jù)和附加數(shù)據(jù)的結(jié)果。在一個實施例中,附加數(shù)據(jù)包括道具,并且道具由多個用戶操縱。例如,道具可包括模擬鼓套件,用戶可擊打鼓套件中的一個鼓,而第二用戶可擊打鼓套件中的另一個鼓。操作906示出了分析位置數(shù)據(jù)和附加數(shù)據(jù),并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出。在一個實施例中,分析位置數(shù)據(jù)和附加數(shù)據(jù)還包括確定位置數(shù)據(jù)和附加數(shù)據(jù)之間的等待時間。與用戶在被捕捉設(shè)備20捕捉到的同時發(fā)出的聲音相比,計算環(huán)境12可更快速地接收圖像數(shù)據(jù),因為光的速度超過了聲音的速度。在這一等待時間會導(dǎo)致關(guān)于識別姿勢輸入的問題的情形中,諸如在接收審查的姿勢需要非常精確地執(zhí)行時,這可由計算環(huán)境 12來解決。例如,計算環(huán)境12可計算用戶距離捕捉設(shè)備20的距離。基于該距離、光、聲音或其它輸入所穿過的介質(zhì)(例如,空氣)以及特定輸入在該介質(zhì)中傳播的速度,計算環(huán)境12 可計算產(chǎn)生輸入的時間。在一個實施例中,分析位置數(shù)據(jù)和附加數(shù)據(jù)并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出進一步包括采用姿勢過濾器和至少一個代表系統(tǒng)識別的輸入的對應(yīng)參數(shù)來分析位置數(shù)據(jù)和附加數(shù)據(jù),并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出。操作908示出將輸出發(fā)送給應(yīng)用。在當前操作由應(yīng)用執(zhí)行的情形中,輸出可被發(fā)送給應(yīng)用的組件,該組件采用經(jīng)處理的用戶輸入并將其映射到應(yīng)用內(nèi)部的動作。圖10示出用于骨架以外的姿勢的示例系統(tǒng)架構(gòu)。捕捉設(shè)備20捕捉用戶18的位置或移動并將其提供給識別器引擎190。此外,識別器引擎190可接收來自鍵盤1002a、鼠標1002b和/或控制器1002c的輸入。通過用戶18的位置或移動的組合(位置數(shù)據(jù))以及來自鍵盤1002a、鼠標1002b和/或控制器1002c的輸入(附加數(shù)據(jù)),姿勢識別器引擎 190可產(chǎn)生對應(yīng)于一個或多個系統(tǒng)識別的姿勢的一個或多個輸出。該一個或多個輸出可被發(fā)送給輸入映射器1004,該輸入映射器1004根據(jù)那些接收的輸出來確定什么輸入已被提交給系統(tǒng)。輸入映射器1004可進一步接收來自鍵盤1002a、鼠標1002b和/或控制器1002c 的不屬于姿勢的一部分的輸入。這可以是不具有對應(yīng)的用戶位置和/或移動的輸入,諸如按下鍵盤上的“向上”鍵以在顯示于顯示設(shè)備16上的列表中向上移。結(jié)論盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其它相似方面或者可對所述方面進行修改或添加來執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此, 本發(fā)明不應(yīng)該僅限于任何單個方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書的廣度和范圍內(nèi)解釋。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實現(xiàn)。因此,所公開的各實施例的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動器或任何其他機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。當程序代碼被加載到諸如計算機等機器并由其執(zhí)行時,該機器變?yōu)楸慌渲贸蓪嵤┧_的各實施例的裝置。除了此處明確闡述的具體實現(xiàn)之外,考慮此處所公開的說明書,其它方面和實現(xiàn)將對本領(lǐng)域的技術(shù)人員是顯而易見的。說明書和所示實現(xiàn)旨在僅被認為是示例。
權(quán)利要求
1.一種用于使用戶(18)能夠?qū)?yīng)用做出混合姿勢輸入的方法,包括 接收與由捕捉設(shè)備00)捕捉的用戶的移動或位置有關(guān)的第一數(shù)據(jù)(902);接收附加數(shù)據(jù),所述附加數(shù)據(jù)不是從由捕捉設(shè)備00)捕捉的用戶的移動或位置導(dǎo)出的(904);結(jié)合所述附加數(shù)據(jù)分析所述第一數(shù)據(jù),并從其確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出(906);以及向所述應(yīng)用發(fā)送所述輸出(908)。
2.如權(quán)利要求1所述的方法,其特征在于,所述附加數(shù)據(jù)包括一組中的一個,所述組包括道具、用戶穿著的衣服、由所述捕捉設(shè)備捕捉的場景中的物體、其他的一個或多個用戶、用戶發(fā)出的聲音、控制器或遙控輸入、場景中的光的量和/或位置、用戶與觸敏設(shè)備的交互、以及用戶的面部表情。
3.如權(quán)利要求1所述的方法,其特征在于,分析第一數(shù)據(jù)和附加數(shù)據(jù)進一步包括 確定所述第一數(shù)據(jù)和所述附加數(shù)據(jù)之間的等待時間。
4.如權(quán)利要求1所述的方法,其特征在于,所述附加數(shù)據(jù)是從第二用戶處接收的。
5.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)據(jù)和所述附加數(shù)據(jù)被接收作為用戶在大致同一時刻輸入所述第一數(shù)據(jù)和所述附加數(shù)據(jù)的結(jié)果。
6.如權(quán)利要求1所述的方法,其特征在于,所述附加數(shù)據(jù)包括道具,并且所述道具由多個用戶操縱。
7.如權(quán)利要求1所述的方法,其特征在于,分析所述第一數(shù)據(jù)和附加數(shù)據(jù)并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出包括采用姿勢過濾器和至少一個代表所述系統(tǒng)所識別的輸入的對應(yīng)參數(shù)來分析所述第一數(shù)據(jù)和所述附加數(shù)據(jù),并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出。
8.一種用于使用戶(18)能夠?qū)?yīng)用做出混合姿勢輸入的系統(tǒng),包括 處理器(101);存儲計算機可讀指令的至少一個存儲器(11 ,當由所述處理器執(zhí)行時,所述計算機可讀指令使所述處理器執(zhí)行操作,操作包括接收與由捕捉設(shè)備00)捕捉的用戶的移動或位置有關(guān)的第一數(shù)據(jù)(902); 接收附加數(shù)據(jù),所述附加數(shù)據(jù)不是從由捕捉設(shè)備00)捕捉的用戶的移動或位置導(dǎo)出的(904);分析所述第一數(shù)據(jù)和所述附加數(shù)據(jù),并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出(906);以及向所述應(yīng)用發(fā)送所述輸出(908)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)包括一組中的一個,所述組包括道具、用戶穿著的衣服、由所述捕捉設(shè)備捕捉的場景中的物體、其他的一個或多個用戶、用戶發(fā)出的聲音、控制器或遙控輸入、場景中的光的量和/或位置、用戶與觸敏設(shè)備的交互、以及用戶的面部表情。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,用于分析所述第一數(shù)據(jù)和所述附加數(shù)據(jù)的組件進一步包括用于確定所述第一數(shù)據(jù)和所述附加數(shù)據(jù)之間的等待時間的組件。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述附加數(shù)據(jù)是從第二用戶處接收的。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述附加數(shù)據(jù)包括所述第一用戶和所述第二用戶的重心。
13.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)和所述附加數(shù)據(jù)被接收作為用戶在大致同一時刻輸入所述第一數(shù)據(jù)和所述附加數(shù)據(jù)的結(jié)果。
14.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述附加數(shù)據(jù)包括道具,并且所述道具由多個用戶操縱。
15.如權(quán)利要求8所述的系統(tǒng),其特征在于,用于分析所述第一數(shù)據(jù)和附加數(shù)據(jù)并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出的組件進一步包括用于采用姿勢過濾器和至少一個代表所述系統(tǒng)所識別的輸入的對應(yīng)參數(shù)來分析所述第一數(shù)據(jù)和所述附加數(shù)據(jù),并確定對應(yīng)于用戶執(zhí)行了系統(tǒng)所識別的輸入的可能性的輸出的組件。
全文摘要
公開了用于骨架之外的姿勢輸入的系統(tǒng)、方法和計算機可讀介質(zhì)。系統(tǒng)的捕捉設(shè)備捕捉用戶的移動或身體位置。此外,由計算設(shè)備接收非用戶位置數(shù)據(jù),諸如用戶的控制器輸入、用戶穿戴的物品、在用戶控制下的道具、或第二用戶的移動或身體位置。系統(tǒng)合并用戶位置數(shù)據(jù)和非用戶位置數(shù)據(jù)兩者,以確定用戶向系統(tǒng)做出的一個或多個輸入。
文檔編號A63F13/00GK102448566SQ201080024900
公開日2012年5月9日 申請日期2010年5月29日 優(yōu)先權(quán)日2009年5月29日
發(fā)明者G·N·斯努克, K·蓋斯那, R·馬爾科維奇, S·拉塔 申請人:微軟公司