專利名稱:用于操縱用戶界面的姿勢(shì)和姿勢(shì)修改的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及用于操縱用戶界面的姿勢(shì)和姿勢(shì)修改。
背景技術(shù):
在過去,諸如計(jì)算機(jī)游戲和多媒體應(yīng)用等計(jì)算應(yīng)用使用控制器、遙控器、鍵盤、鼠標(biāo)等來允許用戶操縱游戲人物或應(yīng)用的其他方面。近來,計(jì)算機(jī)游戲和多媒體應(yīng)用已開始使用照相機(jī)和軟件姿勢(shì)識(shí)別來提供人機(jī)接口(“HCI”)。使用HCI,檢測(cè)、解釋用戶姿勢(shì)并將其用于控制游戲人物或應(yīng)用的其他方面。
發(fā)明內(nèi)容
使用象征性姿勢(shì)和姿勢(shì)修改來控制諸如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)或應(yīng)用所提供的用戶界面之類的用戶界面。在半空中的象征性姿勢(shì)移動(dòng)是由用戶利用或無需輸入設(shè)備的幫助而執(zhí)行的。目標(biāo)跟蹤系統(tǒng)分析這些半空中移動(dòng)來確定何時(shí)執(zhí)行了預(yù)定義的姿勢(shì)。跟蹤系統(tǒng)進(jìn)一步確定在象征性姿勢(shì)的執(zhí)行的至少一部分期間是否存在姿勢(shì)修改。當(dāng)檢測(cè)到?jīng)]有姿勢(shì)修改的姿勢(shì)時(shí),執(zhí)行第一用戶界面控制動(dòng)作。當(dāng)檢測(cè)到具有姿勢(shì)修改的姿勢(shì)時(shí),執(zhí)行第二用戶界面控制動(dòng)作。姿勢(shì)修改也被提供用于幫助檢測(cè)姿勢(shì)何時(shí)被用戶執(zhí)行。姿勢(shì)修改可指示用戶意圖執(zhí)行預(yù)定義的姿勢(shì)的姿勢(shì)輸入時(shí)間段。姿勢(shì)輸入時(shí)間段可定義用于檢測(cè)用戶輸入的姿勢(shì)的起始時(shí)間和結(jié)束時(shí)間。在一個(gè)實(shí)施例中使用人類目標(biāo)的半空中移動(dòng)來控制用戶界面。使用來自捕捉設(shè)備的圖像以生成人類目標(biāo)的骨架映射,從而跟蹤人類目標(biāo)的移動(dòng)。通過骨架映射,確定人類目標(biāo)的移動(dòng)是否滿足用于某一半空中姿勢(shì)的一個(gè)或多個(gè)過濾器。如果人類目標(biāo)的移動(dòng)滿足一個(gè)或多個(gè)過濾器,則確定是否存在對(duì)于第一半空中姿勢(shì)的修改。如果人類目標(biāo)的移動(dòng)滿足該一個(gè)或多個(gè)過濾器且不存在修改,則可執(zhí)行對(duì)應(yīng)于該半空中姿勢(shì)的第一用戶界面動(dòng)作。 如果人類目標(biāo)的移動(dòng)滿足該一個(gè)或多個(gè)過濾器且存在修改,則可執(zhí)行對(duì)應(yīng)于該半空中姿勢(shì)的第二用戶界面動(dòng)作。在一個(gè)實(shí)施例中,系統(tǒng)接收包括人類目標(biāo)的捕捉區(qū)域的深度信息,并創(chuàng)建用于隨時(shí)間映射人類目標(biāo)的移動(dòng)的骨架模型。系統(tǒng)可從骨架模型或從諸如物理對(duì)象或語音之類的其他輸入檢測(cè)指示姿勢(shì)時(shí)間段的姿勢(shì)修改。響應(yīng)于檢測(cè)到姿勢(shì)修改,系統(tǒng)從骨架模型確定在姿勢(shì)時(shí)間段期間人類目標(biāo)的移動(dòng)是否滿足用于第一半空中姿勢(shì)的一個(gè)或多個(gè)過濾器。如果在所述姿勢(shì)時(shí)間段期間所述人類目標(biāo)的移動(dòng)滿足所述一個(gè)或多個(gè)過濾器,則系統(tǒng)執(zhí)行對(duì)應(yīng)于所述半空中姿勢(shì)的第一用戶界面動(dòng)作。在一個(gè)實(shí)施例中,使用人類目標(biāo)的半空中運(yùn)動(dòng)來操作用戶界面的方法包括使用已知三維坐標(biāo)系中人類目標(biāo)的骨架映射從多個(gè)深度圖像跟蹤人類目標(biāo)的移動(dòng)。該方法從骨架映射確定包括人類目標(biāo)的第一只手的移動(dòng)是否滿足用于第一半空中姿勢(shì)的一個(gè)或多個(gè)過濾器,以及人類目標(biāo)的第二只手是否滿足用于對(duì)第一半空中姿勢(shì)的修改的一個(gè)或多個(gè)過濾器。如果第一只手滿足一個(gè)或多個(gè)第一半空中姿勢(shì)過濾器且第二只手滿足一個(gè)或多個(gè)修改過濾器,則執(zhí)行第一用戶界面動(dòng)作。如果第一只手滿足一個(gè)或多個(gè)第一半空中姿勢(shì)過濾器且第二只手不滿足一個(gè)或多個(gè)修改過濾器,則執(zhí)行第二用戶界面動(dòng)作。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下的具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
圖IA和IB示出用戶執(zhí)行姿勢(shì)來控制用戶界面的目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)的一個(gè)實(shí)施例。圖2示出可用作跟蹤系統(tǒng)的一部分的捕捉設(shè)備的一個(gè)實(shí)施例。圖3是描述姿勢(shì)識(shí)別引擎的一個(gè)實(shí)施例的框圖。圖4是描述用于用戶界面的姿勢(shì)控制的過程的一個(gè)實(shí)施例的流程圖。圖5是在一個(gè)實(shí)施例中可由跟蹤系統(tǒng)生成的人類目標(biāo)的骨架模型的示例。圖6是描述用于捕捉運(yùn)動(dòng)來控制用戶界面的過程的一個(gè)實(shí)施例的流程圖。圖7是根據(jù)一個(gè)實(shí)施例描述用于姿勢(shì)識(shí)別和使用姿勢(shì)修改的控制的過程的一個(gè)實(shí)施例的流程圖。圖8示出用戶執(zhí)行姿勢(shì)和姿勢(shì)修改來控制用戶界面的目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)的一個(gè)實(shí)施例。圖9A-9C描繪了根據(jù)一個(gè)實(shí)施例執(zhí)行水平掃視姿勢(shì)和姿勢(shì)修改的人類目標(biāo)的骨架映射。圖10A-10C描繪了根據(jù)一個(gè)實(shí)施例執(zhí)行水平掃視姿勢(shì)和姿勢(shì)修改的人類目標(biāo)的骨架映射。圖11是根據(jù)一個(gè)實(shí)施例描述用于姿勢(shì)識(shí)別和使用姿勢(shì)修改的控制以指示姿勢(shì)輸入時(shí)間段的過程的一個(gè)實(shí)施例的流程圖。圖12示出可被用來跟蹤運(yùn)動(dòng)并基于所跟蹤的運(yùn)動(dòng)來更新應(yīng)用的計(jì)算系統(tǒng)的一個(gè)實(shí)施例。圖13示出可被用來跟蹤運(yùn)動(dòng)并基于所跟蹤的運(yùn)動(dòng)來更新應(yīng)用的計(jì)算系統(tǒng)的一個(gè)實(shí)施例。
具體實(shí)施例方式提供姿勢(shì)修改用于修改和增強(qiáng)對(duì)諸如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)或應(yīng)用所提供的用戶界面之類的用戶界面的控制。象征性姿勢(shì)移動(dòng)由用戶在半空中執(zhí)行。 捕捉設(shè)備生成深度圖像和包括人類目標(biāo)的捕捉區(qū)域的三維表示。使用骨架映射來跟蹤人類目標(biāo)以捕捉用戶的半空中運(yùn)動(dòng)。骨架映射數(shù)據(jù)被用于使用姿勢(shì)過濾器來標(biāo)識(shí)對(duì)應(yīng)于預(yù)定義的姿勢(shì)的移動(dòng)。對(duì)可行姿勢(shì)的檢測(cè)能夠觸發(fā)一個(gè)或多個(gè)用戶界面動(dòng)作或控制。提供姿勢(shì)修改來修改通過對(duì)姿勢(shì)的檢測(cè)而觸發(fā)的用戶界面動(dòng)作,和/或幫助對(duì)姿勢(shì)的標(biāo)識(shí)??墒褂霉羌苡成鋽?shù)據(jù)和姿勢(shì)修改過濾器,或從用戶諸如通過使用物理對(duì)象或語音等提供的其他輸入來檢測(cè)姿勢(shì)修改。姿勢(shì)過濾器包括定義目標(biāo)的半空中移動(dòng)何時(shí)指示出可行姿勢(shì)的參數(shù)。姿勢(shì)識(shí)別引擎分析關(guān)于目標(biāo)的跟蹤數(shù)據(jù)以確定過濾器的參數(shù)是否已被滿足。如果檢測(cè)到可行姿勢(shì),則姿勢(shì)識(shí)別引擎向操作系統(tǒng)或應(yīng)用返回關(guān)于已檢測(cè)到姿勢(shì)的指示。操作系統(tǒng)或應(yīng)用使用該指示來控制用戶界面,例如通過在用戶界面內(nèi)執(zhí)行一個(gè)或多個(gè)動(dòng)作。這些動(dòng)作可包括諸如在基于菜單的UI系統(tǒng)中提供的那些直接操作系統(tǒng)控制,或者例如多媒體游戲環(huán)境中的玩游戲動(dòng)作。用戶還可提供姿勢(shì)修改且系統(tǒng)識(shí)別姿勢(shì)修改。姿勢(shì)修改可修改可行姿勢(shì)以發(fā)起對(duì)系統(tǒng)響應(yīng)于對(duì)可行姿勢(shì)的檢測(cè)而執(zhí)行的用戶界面動(dòng)作的修改。如果除了可行姿勢(shì)之外還檢測(cè)到姿勢(shì)修改,則姿勢(shì)識(shí)別引擎可向操作系統(tǒng)或應(yīng)用返回關(guān)于已檢測(cè)到該姿勢(shì)修改的指示。操作系統(tǒng)或應(yīng)用可使用對(duì)姿勢(shì)修改的檢測(cè)來響應(yīng)于對(duì)可行姿勢(shì)的檢測(cè)而執(zhí)行修改的或不同的用戶界面動(dòng)作。姿勢(shì)修改可包括除了另一象征性姿勢(shì)之外的用戶執(zhí)行的象征性姿勢(shì),以及用戶所提供的物理對(duì)象或語音。在姿勢(shì)修改是象征性姿勢(shì)的情況下,姿勢(shì)識(shí)別引擎可分析關(guān)于目標(biāo)的跟蹤數(shù)據(jù)以確定姿勢(shì)修改的過濾器是否已被滿足。用戶還可提供姿勢(shì)修改且系統(tǒng)識(shí)別姿勢(shì)修改,該姿勢(shì)修改提供指示出目標(biāo)的半空中移動(dòng)何時(shí)是意圖的姿勢(shì)輸入的輸入,例如通過定義在其中檢測(cè)可行姿勢(shì)的時(shí)間段。姿勢(shì)識(shí)別引擎可使用指示出意圖的姿勢(shì)輸入的姿勢(shì)修改來幫助標(biāo)識(shí)人類 目標(biāo)對(duì)姿勢(shì)的執(zhí)行。姿勢(shì)輸入時(shí)間段可指定定義一時(shí)間段的起始時(shí)間和結(jié)束時(shí)間,在該時(shí)間段期間預(yù)期用戶的移動(dòng)提供姿勢(shì)。圖IA和IB示出用戶18正在與系統(tǒng)用戶界面23交互的目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10(下文中一般稱為跟蹤系統(tǒng))的一個(gè)實(shí)施例。目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10可用于識(shí)另IJ、分析和/或跟蹤諸如用戶18等的人類目標(biāo)。如圖IA所示,跟蹤系統(tǒng)10可包括計(jì)算環(huán)境12。計(jì)算環(huán)境12可以是計(jì)算機(jī)、游戲系統(tǒng)或控制臺(tái)等等。根據(jù)一個(gè)實(shí)施例,計(jì)算環(huán)境12可包括硬件組件和/或軟件組件,使得計(jì)算環(huán)境12可用于執(zhí)行操作系統(tǒng)和諸如游戲應(yīng)用、非游戲應(yīng)用等的應(yīng)用。在一個(gè)實(shí)施例中, 計(jì)算系統(tǒng)12可包括可執(zhí)行存儲(chǔ)在處理器可讀存儲(chǔ)設(shè)備上的用于執(zhí)行本文描述的過程的指令的處理器,如標(biāo)準(zhǔn)化處理器、專用處理器、微處理器等。如圖IA所示,跟蹤系統(tǒng)10還可包括捕捉設(shè)備20。捕捉設(shè)備20可以是例如相機(jī), 該相機(jī)可用于在視覺上監(jiān)視諸如用戶18等一個(gè)或多個(gè)用戶,以使得可以捕捉、分析并跟蹤一個(gè)或多個(gè)用戶所執(zhí)行的姿勢(shì),以執(zhí)行對(duì)操作系統(tǒng)或應(yīng)用的用戶界面的一個(gè)或多個(gè)控制或動(dòng)作。根據(jù)一個(gè)實(shí)施例,跟蹤系統(tǒng)10可連接到可向諸如用戶18等的用戶提供游戲或應(yīng)用視覺和/或音頻的視聽設(shè)備16,如電視機(jī)、監(jiān)視器、高清電視機(jī)(HDTV)等。例如,計(jì)算環(huán)境12可包括諸如圖形卡等視頻適配器和/或諸如聲卡等音頻適配器,這些適配器可提供與游戲應(yīng)用、非游戲應(yīng)用等相關(guān)聯(lián)的視聽信號(hào)。視聽設(shè)備16可從計(jì)算環(huán)境12接收視聽信號(hào), 然后可向用戶18輸出與視聽信號(hào)相關(guān)聯(lián)的游戲或應(yīng)用視覺和/或音頻。根據(jù)一實(shí)施例,視聽設(shè)備16可經(jīng)由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA電纜等連接到計(jì)算環(huán)境12。如圖IA和IB所示,目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10可用于識(shí)別、分析和/或跟蹤諸如用戶18等一個(gè)或多個(gè)人類目標(biāo)。例如,可使用捕捉設(shè)備20來跟蹤用戶18,以使得可將用戶18的移動(dòng)解釋為可用于影響由計(jì)算環(huán)境12執(zhí)行的應(yīng)用或操作系統(tǒng)的控制。
考慮諸如在計(jì)算環(huán)境12上執(zhí)行的拳擊游戲之類的游戲應(yīng)用。計(jì)算環(huán)境12可使用視聽設(shè)備16來向用戶18提供拳擊對(duì)手的視覺表示,以及使用視聽設(shè)備16來提供用戶18 可用他或她的移動(dòng)來控制的玩家化身的視覺表示。用戶18可在物理空間中作出移動(dòng)(例如揮重拳),以使得玩家化身在游戲空間中作出相應(yīng)的移動(dòng)??稍谖锢砜臻g中識(shí)別并分析用戶的移動(dòng),使得執(zhí)行用于對(duì)游戲空間中玩家化身的游戲控制的相應(yīng)移動(dòng)。 某些移動(dòng)可被解釋為可與除控制玩家化身或其他游戲?qū)ο笾獾膭?dòng)作相對(duì)應(yīng)的控制。例如,玩家可使用移動(dòng)來結(jié)束、暫?;虮4嬗螒颉⑦x擇級(jí)別、查看高分、與朋友交流等。 事實(shí)上操作系統(tǒng)和/或應(yīng)用的任何可控方面可由諸如用戶18等目標(biāo)的移動(dòng)來控制。玩家可使用移動(dòng)來從主用戶界面選擇游戲或其他應(yīng)用。由此,用戶18的全范圍運(yùn)動(dòng)可以用任何合適的方式來獲得、使用并分析以與應(yīng)用或操作系統(tǒng)進(jìn)行交互。在圖1A-1B中,用戶18正與跟蹤系統(tǒng)10交互以控制系統(tǒng)用戶界面(UI)23,在該具體示例中該系統(tǒng)用戶界面正在顯示菜單項(xiàng)320-328的列表310。個(gè)體項(xiàng)目可代表應(yīng)用或其他UI對(duì)象。用戶可向左或向右(如從用戶的觀點(diǎn)來看)滾動(dòng)通過列表310以查看不在當(dāng)前顯示畫面中但與該列表相關(guān)聯(lián)的其他菜單項(xiàng),選擇菜單項(xiàng)以觸發(fā)諸如打開由該菜單項(xiàng)所代表的應(yīng)用或?qū)υ擁?xiàng)目的進(jìn)一步UI控制之類的動(dòng)作。用戶還可通過UI回退移動(dòng)到UI層次結(jié)構(gòu)中更高級(jí)的菜單項(xiàng)。系統(tǒng)可包括姿勢(shì)識(shí)別,使得用戶可通過執(zhí)行一個(gè)或多個(gè)姿勢(shì)來控制在計(jì)算環(huán)境 12(如上所述可以是游戲控制臺(tái)、計(jì)算機(jī)等)上執(zhí)行的應(yīng)用或操作系統(tǒng)。在一個(gè)實(shí)施例中, 姿勢(shì)識(shí)別器引擎(其架構(gòu)在以下更完全描述)用于從用戶的骨架模型確定用戶何時(shí)作出了
某一姿勢(shì)。用戶可通過移動(dòng)他的身體創(chuàng)建姿勢(shì)。姿勢(shì)包括用戶的運(yùn)動(dòng)或姿態(tài),其可被捕捉為圖像數(shù)據(jù)并解析其意義。姿勢(shì)可以是動(dòng)態(tài)的,包括運(yùn)動(dòng),如模仿扔球。姿勢(shì)可以是靜態(tài)姿態(tài), 如在一個(gè)人的軀干前面交叉握住他的前臂。姿勢(shì)也可結(jié)合道具,如通過揮動(dòng)仿制的劍。姿勢(shì)可包括多于一個(gè)身體部位,如拍雙手,或是較微小的運(yùn)動(dòng),如撅起一個(gè)人的嘴唇。例如,手或其他身體部位的各種運(yùn)動(dòng)可對(duì)應(yīng)于常見的系統(tǒng)級(jí)任務(wù),如在分層菜單結(jié)構(gòu)中向上或向下導(dǎo)航、在菜單列表中滾動(dòng)項(xiàng)目、打開文件、關(guān)閉文件和保存文件。姿勢(shì)也可在視頻游戲?qū)S蒙舷挛闹腥Q于游戲來使用。例如,對(duì)于駕駛游戲,手和腳的各種運(yùn)動(dòng)可對(duì)應(yīng)于在一方向上操控車輛、換擋、加速和剎車。在圖1A-1B中,如從用戶的觀點(diǎn)所見那樣,用戶執(zhí)行用右手的水平掃視姿勢(shì)以向左滾動(dòng)菜單項(xiàng)的列表。如圖IA中所示,用戶以他的右手在位置304開始,然后朝向他的身體的左側(cè)將右手移動(dòng)到位置306。當(dāng)用戶用他的手在位置304開始該姿勢(shì)時(shí),菜單項(xiàng)320328 的列表310處于圖IA中的第一位置。在圖IB中,用戶已經(jīng)將其手移到位置306,通過將菜單項(xiàng)的列表310向左滾動(dòng)使得菜單項(xiàng)的列表改變。作為向左滾動(dòng)的結(jié)果(如用戶18的觀點(diǎn)所定義的那樣),菜單項(xiàng)320已從列表中移除。每個(gè)菜單項(xiàng)322-328已經(jīng)向左移動(dòng)了一個(gè)位置,替代了前一個(gè)項(xiàng)目的位置。作為從右到左滾動(dòng)的結(jié)果,項(xiàng)目330已被添加到列表上。盡管在該示例中描繪了單間隔移動(dòng),但是水平掃視姿勢(shì)也可使得在滾動(dòng)動(dòng)作期間超過一個(gè)項(xiàng)目的移動(dòng)。在一個(gè)示例中,確定從位置304到306移動(dòng)時(shí)用戶的手的速度,且項(xiàng)目的列表310以與所確定的速度成比例的被滾動(dòng)。在另一示例中,從位置304到306移動(dòng)時(shí)用戶的手行進(jìn)的距離被計(jì)算,并被用于控制菜單項(xiàng)的列表被滾動(dòng)的量,其中越大的距離按比例造成菜單項(xiàng)的列表滾動(dòng)越大的量。 圖2示出可在目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10中使用的捕捉設(shè)備20和計(jì)算系統(tǒng)12 的一個(gè)實(shí)施例,用于識(shí)別捕捉區(qū)域(無需附加到對(duì)象的專門傳感設(shè)備)中的人類或非人類目標(biāo),唯一地標(biāo)識(shí)他們以及在三維空間中跟蹤他們。根據(jù)一個(gè)實(shí)施例,捕捉設(shè)備20可被配置成經(jīng)由任何合適的技術(shù),包括例如飛行時(shí)間、結(jié)構(gòu)化光、立體圖像等來捕捉包括深度圖像的帶有深度信息的視頻,該深度信息可包括深度值。根據(jù)一實(shí)施例,捕捉設(shè)備20可將所計(jì)算的深度信息組織為“Z層”,或可垂直于從深度相機(jī)沿其視線延伸的Z軸的層。如圖2所示,捕捉設(shè)備20可包括圖像相機(jī)組件32。根據(jù)一個(gè)實(shí)施例,圖像相機(jī)組件32可以是可捕捉場(chǎng)景的深度圖像的深度相機(jī)。深度圖像可包括所捕捉的場(chǎng)景的二維 (2-D)像素區(qū)域,其中2-D像素區(qū)域中的每一像素可表示深度值,諸如例如以厘米、毫米等計(jì)的、所捕捉的場(chǎng)景中的物體距相機(jī)的距離。如圖2所示,圖像相機(jī)組件32可包括可被用來捕捉捕捉區(qū)域的深度圖像的IR光組件34、三維(3-D)相機(jī)36、以及RGB相機(jī)38。例如,在飛行時(shí)間分析中,捕捉設(shè)備20的IR 光組件34可以將紅外光發(fā)射到捕捉區(qū)域上,然后可以使用傳感器,用例如3-D相機(jī)36和/ 或RGB相機(jī)38來檢測(cè)從捕捉區(qū)域中的一個(gè)或多個(gè)目標(biāo)和對(duì)象的表面反向散射的光。在某些實(shí)施例中,可以使用脈沖式紅外光從而可以測(cè)量出射光脈沖和相應(yīng)的入射光脈沖之間的時(shí)間差并將其用于確定從捕捉設(shè)備20到捕捉區(qū)域中的目標(biāo)或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。此外,可將出射光波的相位與入射光波的相位進(jìn)行比較來確定相移。然后可以使用相移來確定從捕捉設(shè)備到目標(biāo)或?qū)ο笊系奶囟ㄎ恢玫木嚯x。根據(jù)另一個(gè)實(shí)施例,可使用飛行時(shí)間分析,通過經(jīng)由包括例如快門式光脈沖成像的各種技術(shù)來分析反射光束隨時(shí)間的強(qiáng)度變化以間接地確定從捕捉設(shè)備20到目標(biāo)或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。在另一示例中,捕捉設(shè)備20可使用結(jié)構(gòu)化光來捕捉深度信息。在該分析中,圖案化光(即,被顯示為諸如網(wǎng)格圖案或條紋圖案等已知圖案的光)可經(jīng)由例如IR光組件34 被投影到捕捉區(qū)域上。在撞擊到捕捉區(qū)域中的一個(gè)或多個(gè)目標(biāo)或?qū)ο蟮谋砻鏁r(shí),作為響應(yīng), 圖案可變形。圖案的這種變形可由例如3-D相機(jī)36和/或RGB相機(jī)38來捕捉,然后可被分析來確定從捕捉設(shè)備到目標(biāo)或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。根據(jù)一個(gè)實(shí)施例,捕捉設(shè)備20可包括可以從不同的角度觀察捕捉區(qū)域的兩個(gè)或更多在物理上分離的相機(jī),以獲取可以被解析以生成深度信息的視覺立體數(shù)據(jù)。其他類型的深度圖像傳感器也可被用來創(chuàng)建深度圖像。捕捉設(shè)備20還可包括話筒40。話筒40可包括可接收聲音并將其轉(zhuǎn)換成電信號(hào)的換能器或傳感器。根據(jù)一個(gè)實(shí)施例,話筒40可用于減少目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10中的捕捉設(shè)備20與計(jì)算環(huán)境12之間的反饋。另外,話筒40可用于接收也可由用戶提供的音頻信號(hào),以控制可由計(jì)算環(huán)境12執(zhí)行的諸如游戲應(yīng)用、非游戲應(yīng)用等應(yīng)用。在一個(gè)實(shí)施例中,捕捉設(shè)備20還可以包括可以與圖像相機(jī)組件32進(jìn)行可操作的通信的處理器42。處理器42可包括可執(zhí)行指令的標(biāo)準(zhǔn)處理器、專用處理器、微處理器等, 這些指令可包括用于存儲(chǔ)簡(jiǎn)檔的指令、用于接收深度圖像的指令、用于確定合適的目標(biāo)是否可被包括在深度圖像中的指令、用于將合適的目標(biāo)轉(zhuǎn)換成該目標(biāo)的骨架表示或模型的指令、或任何其他合適的指令。
捕捉設(shè)備20還可包括存儲(chǔ)器組件44,存儲(chǔ)器組件44可存儲(chǔ)可由處理器42執(zhí)行的指令、3-D相機(jī)或RGB相機(jī)所捕捉的圖像或圖像的幀、用戶簡(jiǎn)檔、或任何其他合適的信息、圖像等等。根據(jù)一個(gè)示例,存儲(chǔ)器組件44可包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、 高速緩存、閃存、硬盤或任何其他合適的存儲(chǔ)組件。如圖2所示,存儲(chǔ)器組件44可以是與圖像捕捉組件32和處理器42進(jìn)行通信的單獨(dú)的組件。在另一實(shí)施例中,存儲(chǔ)器組件44可被集成到處理器42和/或圖像捕捉組件32中。在一個(gè)實(shí)施例中,圖2所示的捕捉設(shè)備20的組件32、34、36、38、40、42和44中的部分或全部被容納在單個(gè)外殼中。捕捉設(shè)備20可以經(jīng)由通信鏈路46與計(jì)算環(huán)境12進(jìn)行通信。通信鏈路46可以是包括例如USB連接、火線連接、以太網(wǎng)電纜連接等的有線連接和/或諸如無線802. lib、 802. llg、802. Ila或802. Iln連接等無線連接。計(jì)算環(huán)境12可以向捕捉設(shè)備20提供時(shí)鐘, 可以使用該時(shí)鐘來通過通信鏈路46確定何時(shí)捕捉,例如,場(chǎng)景。捕捉設(shè)備20可經(jīng)由通信鏈路46向計(jì)算環(huán)境12提供由例如3-D相機(jī)36和/或 RGB相機(jī)38捕捉的深度信息和圖像,包括可由捕捉設(shè)備20生成的骨架模型。計(jì)算環(huán)境12 然后可使用骨架模型、深度信息和所捕捉的圖像來例如創(chuàng)建虛擬屏幕、修改用戶界面、以及控制諸如游戲或文字處理程序等應(yīng)用。
計(jì)算系統(tǒng)12包括姿勢(shì)庫192、結(jié)構(gòu)數(shù)據(jù)198、姿勢(shì)識(shí)別引擎190、深度圖像處理和對(duì)象報(bào)告模塊194以及操作系統(tǒng)196。深度圖像處理和對(duì)象報(bào)告模塊194使用深度圖像來跟蹤諸如用戶和其他對(duì)象等對(duì)象的運(yùn)動(dòng)。深度圖像處理和對(duì)象報(bào)告模塊194會(huì)將檢測(cè)到的每一對(duì)象的標(biāo)識(shí)以及每一幀對(duì)象的位置報(bào)告給操作系統(tǒng)196。操作系統(tǒng)196將使用該信息來更新顯示畫面中的化身或其他圖像的位置或移動(dòng),或在所提供的用戶界面上執(zhí)行動(dòng)作。為了幫助跟蹤對(duì)象,深度圖像處理和對(duì)象報(bào)告模塊194使用姿勢(shì)庫190、結(jié)構(gòu)數(shù)據(jù)198和姿勢(shì)識(shí)別引擎190。結(jié)構(gòu)數(shù)據(jù)198包括關(guān)于可被跟蹤的對(duì)象的結(jié)構(gòu)信息。例如,可以存儲(chǔ)人類的骨架模型以幫助理解用戶的移動(dòng)并識(shí)別身體部位。還可以存儲(chǔ)關(guān)于非生命對(duì)象的結(jié)構(gòu)信息以幫助識(shí)別這些對(duì)象并幫助理解移動(dòng)。姿勢(shì)庫192可包括姿勢(shì)過濾器的集合,每一姿勢(shì)過濾器包括和骨架模型可執(zhí)行 (在用戶移動(dòng)時(shí))的姿勢(shì)有關(guān)的信息。姿勢(shì)識(shí)別引擎190可將由相機(jī)36、38和設(shè)備20捕捉的骨架模型以及與其相關(guān)聯(lián)的移動(dòng)形式的數(shù)據(jù)與姿勢(shì)庫192中的姿勢(shì)過濾器進(jìn)行比較來標(biāo)識(shí)用戶(如骨架模型所表示的)何時(shí)執(zhí)行了一個(gè)或多個(gè)姿勢(shì)。那些姿勢(shì)可與應(yīng)用的各種控制相關(guān)聯(lián)。因此,計(jì)算系統(tǒng)12可使用姿勢(shì)庫190來解釋骨架模型的移動(dòng)并基于該移動(dòng)來控制操作系統(tǒng)196或應(yīng)用(未示出)。姿勢(shì)庫192還可包括姿勢(shì)修改過濾器的集合。類似于姿勢(shì)過濾器,姿勢(shì)修改過濾器可包括定義在用戶移動(dòng)時(shí)可由骨架模型執(zhí)行的姿勢(shì)修改的信息。通過將來自捕捉設(shè)備的骨架模型數(shù)據(jù)與姿勢(shì)修改過濾器相比較,識(shí)別引擎可標(biāo)識(shí)用戶何時(shí)執(zhí)行了一個(gè)或多個(gè)姿勢(shì)修改。如先前所述,姿勢(shì)修改可采用用戶手持或呈現(xiàn)的物理對(duì)象以及語音命令的形式。在這些情況中,姿勢(shì)修改過濾器不必使用用戶移動(dòng)來標(biāo)識(shí)何時(shí)姿勢(shì)修改已被執(zhí)行。過濾器可檢查來自捕捉設(shè)備20的圖像以確定是否存在對(duì)象修改。在某些情況中,這可包括查看骨架模型以確定物理對(duì)象是否在與該修改相關(guān)聯(lián)的限定空間中。例如,手持棒的用戶可被解釋為姿勢(shì)修改,而捕捉設(shè)備的視野中僅存在棒可不被解釋為姿勢(shì)修改。引擎還可分析來自捕捉設(shè)備的音頻信息以確定是否發(fā)出了語音修改。圖3提供了圖2的姿勢(shì)識(shí)別器引擎190的一個(gè)示例性實(shí)施例的進(jìn)一步細(xì)節(jié)。如圖所示,姿勢(shì)識(shí)別器引擎190可包括至少一個(gè)過濾器450來確定一個(gè)或多個(gè)姿勢(shì)。過濾器450 包括定義姿勢(shì)452 (以下稱為“姿勢(shì)”)以及該姿勢(shì)的元數(shù)據(jù)454的參數(shù)。過濾器可包括可識(shí)別姿勢(shì)或以其他方式處理深度、RGB或骨架數(shù)據(jù)的代碼和相關(guān)聯(lián)的數(shù)據(jù)。過濾器可以是模塊化的或是可互換的。用于姿勢(shì)452的這些參數(shù)454可以在各應(yīng)用之間、在單個(gè)應(yīng)用的各上下文之間、或在一個(gè)應(yīng)用的一個(gè)上下文內(nèi)隨著時(shí)間變化。姿勢(shì)參數(shù)可包括閾值角度(例如髖部_大腿角度、前臂_ 二頭肌角度等)、運(yùn)動(dòng)發(fā)生或不發(fā)生的周期數(shù)、閾值周期、閾值位置(開始、結(jié)束)、移動(dòng)方向、速度、加速度、移動(dòng)的坐標(biāo)等。過濾器可具有多個(gè)輸入,這些輸入中的每一個(gè)具有一類型;以及多個(gè)輸出,這些輸出中的每一個(gè)具有一類型。在這一情形中,第一過濾器可用具有與第一過濾器相同數(shù)量和類型的輸入和輸出的第二過濾器來替換而不更改識(shí)別器引擎體系結(jié)構(gòu)的其他方面。例如, 可以有用于水平掃視的第一過濾器,該第一過濾器取骨架數(shù)據(jù)作為輸入并輸出與該過濾器相關(guān)聯(lián)的姿勢(shì)正在發(fā)生的置信度以及手執(zhí)行該姿勢(shì)時(shí)的速度。對(duì)過濾器的輸入可包括諸如關(guān)于用戶的關(guān)節(jié)位置的關(guān)節(jié)數(shù)據(jù)、如在關(guān)節(jié)處相交的骨骼所形成的角度、來自捕捉區(qū)域的RGB色彩數(shù)據(jù)、以及用戶的一方面的變化率等內(nèi)容。來自過濾器的輸出可包括諸如正作出給定姿勢(shì)的置信度、作出姿勢(shì)運(yùn)動(dòng)的速度、以及作出姿勢(shì)運(yùn)動(dòng)的時(shí)間等內(nèi)容。姿勢(shì)識(shí)別器引擎190可具有向姿勢(shì)過濾器456提供功能的基礎(chǔ)識(shí)別器引擎450。在一實(shí) 施例中,基本識(shí)別器引擎456實(shí)現(xiàn)的功能包括跟蹤所識(shí)別的姿勢(shì)和其他輸入的隨時(shí)間輸入(input-over-time)存檔、隱馬爾可夫模型實(shí)現(xiàn)(其中模型化系統(tǒng)被假定為具有未知參數(shù)的馬爾可夫過程一其中當(dāng)前狀態(tài)封裝了確定將來狀態(tài)所需的任何過去狀態(tài)信息,因此不必為此目的而維護(hù)任何其它過去狀態(tài)信息的過程,并且隱藏參數(shù)從可觀察數(shù)據(jù)來確定)、 以及求解姿勢(shì)識(shí)別的特定實(shí)例所需的其他功能。過濾器450在基礎(chǔ)識(shí)別器引擎456之上加載并實(shí)現(xiàn),并且可利用引擎456提供給所有過濾器450的服務(wù)。在一實(shí)施例中,基礎(chǔ)識(shí)別器引擎456處理所接收到的數(shù)據(jù)來確定它是否滿足任何過濾器450的要求。由于這些諸如解析輸入等所提供的服務(wù)是由基礎(chǔ)識(shí)別器引擎456 —次性提供而非由每一過濾器450提供的,因此這一服務(wù)在一段時(shí)間內(nèi)只需被處理一次而不是對(duì)該時(shí)間段對(duì)每一過濾器450處理一次,因此減少了確定姿勢(shì)所需的處理。應(yīng)用可使用姿勢(shì)識(shí)別器引擎190所提供的過濾器450,或者它可提供其自己的過濾器450,該過濾器被插入到基礎(chǔ)識(shí)別器引擎456中。在一實(shí)施例中,所有過濾器450具有啟用該插入特性的通用接口。此外,所有過濾器450可利用參數(shù)454,因此可使用如下所述的單個(gè)姿勢(shì)工具來診斷并調(diào)節(jié)整個(gè)過濾器系統(tǒng)。這些參數(shù)454可由姿勢(shì)工具為應(yīng)用或應(yīng)用的上下文來調(diào)節(jié)。有各種可以與姿勢(shì)相關(guān)聯(lián)的輸出。在一個(gè)示例中,可以有關(guān)于姿勢(shì)是否正在發(fā)生的基線“是或否”。在另一個(gè)示例中,還可以有置信水平,其對(duì)應(yīng)于用戶的被跟蹤的移動(dòng)對(duì)應(yīng)于姿勢(shì)的可能性。這可以是范圍為0和1之間(包括端點(diǎn))的浮點(diǎn)數(shù)的線性標(biāo)度。在接收該姿勢(shì)信息的應(yīng)用不能接受假肯定作為輸入的情況下,它可僅使用具有高置信水平,如至少.95的那些已識(shí)別的姿勢(shì)。在應(yīng)用必須識(shí)別姿勢(shì)的每一實(shí)例、甚至是以假肯定為代價(jià)的情況下,它可使用至少具有低得多的置信水平的姿勢(shì),如僅僅大于.2的那些姿勢(shì)。姿勢(shì)可具有關(guān)于兩個(gè)最近步之間的時(shí)間的輸出,并且在僅注冊(cè)第一步的情況下,這可被設(shè)為保留值,如-1 (因?yàn)槿魏蝺刹街g的時(shí)間必須為正)。姿勢(shì)也可具有關(guān)于在最近一步期間達(dá)到的最高大腿角的輸出。 姿勢(shì)或其一部分可具有它必須在其中發(fā)生的空間體來作為參數(shù)。在姿勢(shì)包括身體移動(dòng)的情況下,該空間體通??上鄬?duì)于身體來表達(dá)。例如,用右手的水平掃視姿勢(shì)可僅在不高于用戶的肩且不低于用戶的腰的空間體中被識(shí)別。可能不必要定義體的所有邊界,其中離開身體的外界留著不被定義,并且該體無限地向外延伸,或者延伸到正被監(jiān)視的捕捉區(qū)域的邊緣。一般來說,系統(tǒng)將尋找其中用戶的移動(dòng)滿足姿勢(shì)過濾器中指定的那些移動(dòng)的若干連續(xù)幀。根據(jù)過濾器參數(shù)將對(duì)目標(biāo)運(yùn)動(dòng)的運(yùn)行歷史檢查不間斷的運(yùn)動(dòng)。例如,如果圖1A-1B 中指示的移動(dòng)被指定的運(yùn)動(dòng)之外的移動(dòng)所打斷,則即使該打斷之前或之后的幀匹配過濾器中指定的移動(dòng),姿勢(shì)過濾器也可能不被滿足。在捕捉系統(tǒng)捕捉用戶的這些位置而沒有可表示該姿勢(shì)被取消或正在作出另一姿勢(shì)的任何居間位置的情況下,跟蹤系統(tǒng)可能會(huì)使得水平掃視姿勢(shì)輸出用戶作出了水平掃視姿勢(shì)的高置信水平。轉(zhuǎn)向圖1A-1B中描述的水平掃視姿勢(shì)作為具體示例,可見該姿勢(shì)包括用戶的右手在離開該個(gè)人的身體前方一定距離的位置處,從用戶的身體的右側(cè)向用戶的身體的左側(cè)的移動(dòng)。該姿勢(shì)可被實(shí)現(xiàn)為姿勢(shì)452,包括表示用戶的一只手從對(duì)應(yīng)于該手的身體一側(cè)到身體另一側(cè)的移動(dòng)的信息,因?yàn)樵撘苿?dòng)會(huì)被深度相機(jī)捕捉。然后可為該姿勢(shì)452設(shè)定參數(shù)454。用于圖1A-1B中所描繪的水平掃視姿勢(shì)的姿勢(shì)過濾器可提出定義將從用戶的運(yùn)動(dòng)中被檢測(cè)出的顯著特征的若干規(guī)則。首先,水平掃視姿勢(shì)可被定義為用特定手的姿勢(shì)。用特定手的姿勢(shì)是這樣一個(gè)姿勢(shì),其中過濾器將姿勢(shì)的執(zhí)行定義為由某只手作出。在一個(gè)示例中,姿勢(shì)過濾器可指定對(duì)于用右手的掃視姿勢(shì)僅要考慮右手的移動(dòng),使得左臂、左手、腿、 軀干和頭等的移動(dòng)可被忽略。過濾器可指定要被檢查的唯一相關(guān)映射信息是運(yùn)動(dòng)中的手的映射信息。目標(biāo)的身體的剩余部分的移動(dòng)可被過濾或忽略,但是水平掃視姿勢(shì)的其他定義可指定目標(biāo)的身體的其他部分的某種移動(dòng),例如目標(biāo)的前臂或二頭肌的某種移動(dòng)。用左手的掃視姿勢(shì)可包括將該姿勢(shì)定義為用特定手的過濾器,使得左手的移動(dòng)將被解釋為水平掃視而右手的移動(dòng)不會(huì)。為了檢測(cè)水平掃視姿勢(shì),姿勢(shì)的過濾器可指定起始位置參數(shù),例如目標(biāo)的手相對(duì)于目標(biāo)的身體的起始位置。由于目標(biāo)通常處于相對(duì)連續(xù)的運(yùn)動(dòng)中,姿勢(shì)識(shí)別引擎可連續(xù)地在起始位置尋找手,然后是如圖1A-1B中詳細(xì)描述的以及下述的附加參數(shù)中指定的后續(xù)移動(dòng)。水平掃視姿勢(shì)過濾器可為右手指定距離參數(shù)。距離參數(shù)可要求右手從用戶的身體的右側(cè)向用戶的身體的左側(cè)移動(dòng)的閾值距離。在一個(gè)示例中,水平掃視姿勢(shì)將指定沿Y軸的垂直移動(dòng)要被忽略。然而,在另一示例中,水平掃視姿勢(shì)過濾器可指定右手可垂直行進(jìn)的最大距離,以便區(qū)別于也可涉及垂直分量的其他水平移動(dòng)。在一個(gè)示例中,水平掃視姿勢(shì)過濾器還指定最小速度參數(shù),要求手在其從用戶的身體的右側(cè)向用戶的身體的左側(cè)移動(dòng)時(shí)滿足指定的速度。在另一示例中,姿勢(shì)過濾器可指定時(shí)間參數(shù),要求手在最大時(shí)間量內(nèi)行進(jìn)閾值距離。
水平掃視姿勢(shì)過濾器可包括指定手在執(zhí)行水平掃視姿勢(shì)中的速度范圍的元數(shù)據(jù)。 計(jì)算環(huán)境可使用手在向身體的左側(cè)行進(jìn)時(shí)的速度來確定系統(tǒng)將響應(yīng)于該掃視姿勢(shì)的量。例如,如果掃視姿勢(shì)正被用于水平地滾動(dòng)列表中的項(xiàng)目,則響應(yīng)于更高速度的移動(dòng),項(xiàng)目可滾動(dòng)更快,而響應(yīng)于較慢速度的移動(dòng),項(xiàng)目可滾動(dòng)更慢。此外或另選地,元數(shù)據(jù)可指定速度范圍,從而基于更高速度的姿勢(shì)移動(dòng),滾動(dòng)的項(xiàng)目數(shù)量增加,而對(duì)于較低速度的姿勢(shì)移動(dòng),滾動(dòng)的項(xiàng)目數(shù)量減少。 水平掃視姿勢(shì)過濾器可包括指定手在執(zhí)行水平掃視姿勢(shì)中的距離范圍的元數(shù)據(jù)。 計(jì)算環(huán)境可使用手行進(jìn)的距離來確定系統(tǒng)將響應(yīng)于掃視姿勢(shì)的量。例如,如果掃視姿勢(shì)被用于水平地滾動(dòng)列表上的項(xiàng)目,則響應(yīng)于手行進(jìn)更大距離,列表可滾動(dòng)更大的量,而響應(yīng)于手行進(jìn)較小的距離,列表可滾動(dòng)較小的量。關(guān)于識(shí)別器引擎190的更多信息可在2009年4月13日提交的美國專利申請(qǐng) 12/422,661 “Gesture Recognizer System Architecture (姿勢(shì)識(shí)別器系統(tǒng)架構(gòu))”中找至IJ,該申請(qǐng)通過整體引用合并于此。關(guān)于識(shí)別姿勢(shì)的更多信息可在2009年2月23日提交的美國專利申請(qǐng)12/391,150 "Standard Gestures (標(biāo)準(zhǔn)姿勢(shì))”;以及2009年5月29日提交的美國專利申請(qǐng)12/474,655 "Gesture Tool (姿勢(shì)工具)”中找到,這兩個(gè)申請(qǐng)通過整體引用結(jié)合于此。關(guān)于運(yùn)動(dòng)檢測(cè)和跟蹤的更多信息可在2009年12月18日提交的美國專利申請(qǐng) 12/641,788 "Motion Detection Using Depth Images (使用深度圖像的運(yùn)動(dòng)檢測(cè)),,;以及美國專利申請(qǐng) 12/475,308 “Device for Identifying and Tracking Multiple Humans over Time (用于隨時(shí)間標(biāo)識(shí)和跟蹤多個(gè)人類的設(shè)備)”中找到,這兩個(gè)申請(qǐng)通過整體引用合并于此。在一個(gè)實(shí)施例中用于用戶界面控制的姿勢(shì)包括,但不限于,上述的水平掃視姿勢(shì)、 垂直掃視姿勢(shì)、按壓姿勢(shì)、回退姿勢(shì)、圓形轉(zhuǎn)輪姿勢(shì)、揮手姿勢(shì)、雙手按壓姿勢(shì)、雙手回退姿勢(shì)、雙手壓縮姿勢(shì)和雙手反壓縮姿勢(shì)。垂直掃視姿勢(shì)一般包括垂直手移動(dòng),并可觸發(fā)用戶界面進(jìn)行垂直菜單項(xiàng)滾動(dòng)動(dòng)作。按壓姿勢(shì)一般包括遠(yuǎn)離用戶的身體且朝向捕捉設(shè)備的手移動(dòng),觸發(fā)了對(duì)用戶界面所提供的一個(gè)或多個(gè)菜單項(xiàng)的選擇。回退姿勢(shì)一般包括朝向用戶的身體且遠(yuǎn)離捕捉設(shè)備的手移動(dòng),觸發(fā)了通過用戶界面的回退導(dǎo)航,例如從用戶界面所提供的菜單層次結(jié)構(gòu)中的較低級(jí)到較高級(jí)。揮手姿勢(shì)一般包括水平手移動(dòng),具有定義用戶在移動(dòng)他們的手跨過他們的身體時(shí)的弧度的垂直分量。在一個(gè)示例中,揮手姿勢(shì)可開始一姿勢(shì)輸入時(shí)間段。環(huán)形滾輪姿勢(shì)一般包括用戶在他們的身體前方作出圓周移動(dòng),觸發(fā)了通過菜單列表的導(dǎo)航。雙手按壓姿勢(shì)一般包括雙手遠(yuǎn)離目標(biāo)的身體且朝向捕捉設(shè)備的移動(dòng),觸發(fā)了通過用戶界面的回退導(dǎo)航。雙手按壓姿勢(shì)可另外地或另選地觸發(fā)縮放功能來縮小當(dāng)前用戶界面顯示。雙手壓縮姿勢(shì)一般包括目標(biāo)在他們的身體前將他們的手合在一起,觸發(fā)了縮放功能以縮小當(dāng)前用戶界面顯示。雙手壓縮姿勢(shì)還可觸發(fā)通過用戶界面的菜單層次結(jié)構(gòu)的回退導(dǎo)航。雙手壓縮姿勢(shì)還可在移動(dòng)的頂點(diǎn)(culmination)觸發(fā)特殊動(dòng)作,例如折疊當(dāng)前界面顯示或在當(dāng)前顯示中打開菜單項(xiàng)。雙手反壓縮姿勢(shì)一般包括目標(biāo)以合在他們身體前的手開始,接著把他們的手分開或拉開。雙手反壓縮姿勢(shì)可觸發(fā)縮放功能來放大當(dāng)前用戶界面視圖或通過用戶界面菜單層次結(jié)構(gòu)向前導(dǎo)航。關(guān)于用于用戶界面控制的象征性姿勢(shì)的更多細(xì)節(jié)可在同時(shí)提交的美國專利申請(qǐng)“Gestures and Gesture Recognition for Manipulating a User Interface”(用于操縱用戶界面的姿勢(shì)和姿勢(shì)識(shí)別)中找到,該申請(qǐng)通過整體引用合并于此。圖4是描述在一個(gè)實(shí)施例中可由跟蹤系統(tǒng)10執(zhí)行的對(duì)用戶界面的姿勢(shì)控制的過程的一個(gè)實(shí)施例的流程圖。在步驟502,捕捉設(shè)備20的處理器42從圖像捕捉組件32接收視覺圖像和深度圖像。在其他實(shí)施例中,在步驟502僅接收深度圖像。深度圖像和視覺圖像可由圖像捕捉組件32中的任何傳感器或本領(lǐng)域中已知的其他適合的傳感器來捕捉。在一個(gè)實(shí)施例中,深度圖像與視覺圖像是分開被捕捉的。在某些實(shí)現(xiàn)中,深度圖像和視覺圖像是同時(shí)被捕捉的,而在其他實(shí)現(xiàn)中,它們是順序地或在不同時(shí)刻被捕捉的。在其他實(shí)施例中,深度圖像是與視覺圖像一起被捕捉的,或者與視覺圖像組合成一個(gè)圖像文件,使得每個(gè)像素具有R值、G值、B值和Z值(表示距離)。在步驟504,確定對(duì)應(yīng)于視覺圖像和深度圖像的深度信息??煞治霾襟E502接收到的視覺圖像和深度圖像來確定圖像內(nèi)的一個(gè)或多個(gè)目標(biāo)的深度值。捕捉設(shè)備20可捕捉或觀察可包括一個(gè)或多個(gè)目標(biāo)的捕捉區(qū)域。在步驟506,捕捉設(shè)備確定深度圖像是否包括人類目標(biāo)。在一個(gè)實(shí)施例中,可對(duì)深度圖像中的每一目標(biāo)進(jìn)行泛色填充并將其與一圖案進(jìn)行比較來確定該深度圖像是否包括人類目標(biāo)。在一個(gè)實(shí)施例中,可確定深度圖像的被捕捉的場(chǎng)景中的每個(gè)目標(biāo)的邊緣。深度圖像可包括被捕捉的場(chǎng)景的二維像素區(qū)域,該2D像素區(qū)域中的每個(gè)像素可表示諸如可從相機(jī)測(cè)量的長度或距離之類的深度值??梢酝ㄟ^將與例如深度圖像的相鄰或鄰近的像素相關(guān)聯(lián)的各種深度值進(jìn)行比較來確定邊緣。如果正被比較的各種深度值大于預(yù)定邊容差,則這些像素可定義一條邊緣。捕捉設(shè)備可將包括深度圖像的所計(jì)算的深度信息組織成“Z層”,或可垂直于沿著其視線從相機(jī)延伸到觀察者的Z軸的各層。 可基于所確定的邊來對(duì)Z個(gè)層的可能的Z個(gè)值進(jìn)行泛色填充。例如,與所確定的邊緣相關(guān)聯(lián)的像素以及所確定的邊緣內(nèi)的區(qū)域的像素可互相關(guān)聯(lián)來定義捕捉區(qū)域中的目標(biāo)或物理對(duì)象。
在步驟508,捕捉設(shè)備掃描人類目標(biāo)以尋找一個(gè)或多個(gè)身體部位??梢話呙枞祟惸繕?biāo)來提供與用戶的一個(gè)或多個(gè)身體部位相關(guān)聯(lián)的諸如長度、寬度等的度量,使得可基于這些度量來生成該用戶的準(zhǔn)確模型。在一個(gè)示例中,人類目標(biāo)是被隔離的,且創(chuàng)建位掩模來掃描一個(gè)或多個(gè)身體部位。該位掩??赏ㄟ^例如對(duì)人類目標(biāo)進(jìn)行泛色填充,使得該人類目標(biāo)與捕捉區(qū)域元素中的其他目標(biāo)或?qū)ο蠓蛛x來創(chuàng)建。在步驟510,基于在步驟508執(zhí)行的掃描來生成人類目標(biāo)的模型。可分析該位掩模來尋找一個(gè)或多個(gè)身體部位,以生成諸如人類目標(biāo)的骨架模型、網(wǎng)格人類模型等模型。例如,可使用由所掃描的位掩模確定的度量值來定義骨架模型中的一個(gè)或多個(gè)關(guān)節(jié)。位掩??砂ㄈ祟惸繕?biāo)沿X、Y和Z軸的值。該一個(gè)或多個(gè)關(guān)節(jié)可用于定義可對(duì)應(yīng)于人類的身體部位的一根或多根骨骼。根據(jù)一個(gè)實(shí)施例,為了確定人類目標(biāo)的頸部、肩膀等的位置,可以將例如被掃描的位置處的位掩模的寬度與關(guān)聯(lián)于例如頸部、肩膀等的典型寬度的閾值進(jìn)行比較。在替換實(shí)施例中,可以使用離位掩模中先前掃描的并與身體部位相關(guān)聯(lián)的位置的距離來確定頸、肩等的位置。在一個(gè)實(shí)施例中,為了確定肩膀的位置,可將肩膀位置處的位掩模的寬度與閾值肩膀值進(jìn)行比較。例如,可以將肩膀位置處的位掩模的X值處的兩個(gè)最外部Y值之間的距離與例如人類肩膀之間的典型距離的閾值肩膀值進(jìn)行比較。由此,根據(jù)一示例實(shí)施例,該閾值肩膀值可以是與人類的身體模型的肩膀相關(guān)聯(lián)的典型寬度或?qū)挾确秶?br>
在另一實(shí)施例中,為了確定肩膀的位置,可在頭向下一特定距離解析所述位掩模。 例如,可與頭的頂部相關(guān)聯(lián)的位掩模的頂部可具有與其相關(guān)聯(lián)的X值。然后可以將所存儲(chǔ)的與從人類身體的頭的頂部到肩膀的頂部的典型距離相關(guān)聯(lián)的值加到頭的頂部的X值來確定肩膀的X值。由此,在一個(gè)實(shí)施例中,可將所存儲(chǔ)的值加到與頭的頂部相關(guān)聯(lián)的X值以確定與肩膀相關(guān)聯(lián)的X值。 在一實(shí)施例中,諸如腿、腳等的某些身體部位可基于例如其他身體部位的位置來計(jì)算。例如,如上所述,可以掃描諸如與人類目標(biāo)相關(guān)聯(lián)的位、像素等的信息來確定人類目標(biāo)的各個(gè)身體部位的位置?;谶@些位置,隨后可以為人類目標(biāo)計(jì)算諸如腿、腳等的后續(xù)身體部位。根據(jù)一個(gè)實(shí)施例,在確定例如諸如身體部位等的值后,可以創(chuàng)建可包括諸如與人類目標(biāo)的位掩模的掃描相關(guān)聯(lián)的身體部位的長度、寬度等的度量值的數(shù)據(jù)結(jié)構(gòu)。在一實(shí)施例中,該數(shù)據(jù)結(jié)構(gòu)可包括從多個(gè)深度圖像平均的掃描結(jié)果。例如,捕捉設(shè)備可捕捉各幀中的捕捉區(qū)域,每個(gè)幀包括深度圖像??扇缟纤龇治雒恳粠纳疃葓D像來確定是否包括人類目標(biāo)。如果幀的深度圖像包括人類目標(biāo),則可掃描與該幀相關(guān)聯(lián)的深度圖像的人類目標(biāo)的位掩模來尋找一個(gè)或多個(gè)身體部位。然后可以對(duì)為每一幀所確定的身體部位的值求平均, 從而使得該數(shù)據(jù)結(jié)構(gòu)可包括諸如與每一幀的掃描相關(guān)聯(lián)的身體部位的諸如長度、寬度等的平均度量值。根據(jù)一個(gè)實(shí)施例,可調(diào)整所確定的身體部位的度量值,如放大、縮小等,使得數(shù)據(jù)結(jié)構(gòu)中的度量值更接近地對(duì)應(yīng)于人類身體的典型模型。在步驟510,可使用由所掃描的位掩模確定的度量值來定義骨架模型中的一個(gè)或多個(gè)關(guān)節(jié)。在步驟512,使用骨架映射跟蹤步驟510中創(chuàng)建的模型。例如,可在用戶在視野內(nèi)在相機(jī)前的物理空間中移動(dòng)時(shí)調(diào)整和更新用戶18的骨架模型。來自捕捉設(shè)備的信息可用于調(diào)整模型,使得骨架模型準(zhǔn)確地表示用戶。在一個(gè)示例中,這是通過向該骨架模型的一個(gè)或多個(gè)受力方面施加一個(gè)或多個(gè)力,以將該骨架模型調(diào)整成更接近地對(duì)應(yīng)于人類目標(biāo)和物理空間的姿態(tài)的姿態(tài)來實(shí)現(xiàn)的。在步驟514,從接收自捕捉設(shè)備的深度圖像和視覺圖像捕捉運(yùn)動(dòng)。在一個(gè)實(shí)施例中,如將在下文更詳細(xì)地描述的,在步驟514捕捉運(yùn)動(dòng)包括基于骨架映射生成運(yùn)動(dòng)捕捉文件。在步驟516,確定并應(yīng)用用戶界面上下文。UI上下文可以是涉及計(jì)算環(huán)境12所呈現(xiàn)的不同環(huán)境的環(huán)境上下文。例如,在運(yùn)行在計(jì)算機(jī)設(shè)備12上的單個(gè)應(yīng)用的不同環(huán)境之間可能有不同的上下文。例如,第一人稱射擊游戲可涉及操作對(duì)應(yīng)于第一上下文的機(jī)動(dòng)車。該游戲還可涉及控制步行的游戲人物,這可對(duì)應(yīng)于第二上下文。在第一上下文操作車輛的同時(shí),移動(dòng)或姿勢(shì)可表示第一功能或第一組功能,而在作為步行的第二上下文中,相同的運(yùn)動(dòng)或姿勢(shì)可代表不同的功能。例如,在步行上下文中在身前將拳頭伸出離開身體可代表揮拳, 而在駕駛上下文中,相同的運(yùn)動(dòng)可代表換擋姿勢(shì)。此外,上下文可對(duì)應(yīng)于一個(gè)或多個(gè)菜單環(huán)境,其中用戶可保存游戲、在人物裝備之間選擇或執(zhí)行類似的不包括直接玩游戲的動(dòng)作。在該環(huán)境或上下文中,相同的姿勢(shì)可具有第三含義,例如選擇某樣?xùn)|西、或前進(jìn)到另一屏幕、 或從當(dāng)前屏幕返回、或在當(dāng)前屏幕上放大或縮小。步驟516可包括確定并應(yīng)用一個(gè)以上的 UI上下文。例如,在兩個(gè)用戶正在與捕捉設(shè)備和計(jì)算環(huán)境交互的情況下,UI上下文可包括用于第一用戶的第一上下文和用于第二用戶的第二上下文。在該示例中,上下文可包括用戶扮演的角色,例如一個(gè)用戶是駕駛員而另一個(gè)用戶例如是射手。
在步驟518,確定活動(dòng)姿勢(shì)集的姿勢(shì)過濾器。步驟518可基于步驟516中確定的UI 上下文或多個(gè)上下文來執(zhí)行。例如,當(dāng)在菜單上下文中操作時(shí),第一組姿勢(shì)可以是活動(dòng)的, 而在玩游戲上下文中時(shí),另一組姿勢(shì)可以是活動(dòng)的。步驟518還可包括確定姿勢(shì)修改的活動(dòng)集以及用于這些修改的過濾器。在步驟520,執(zhí)行姿勢(shì)識(shí)別和控制。跟蹤模型和捕捉的運(yùn)動(dòng)通過活動(dòng)姿勢(shì)集的過濾器,以確定是否滿足任何活動(dòng)姿勢(shì)過濾器。在計(jì)算環(huán)境內(nèi)應(yīng)用任何檢測(cè)出的姿勢(shì),以控制計(jì)算環(huán)境12提供的用戶界面。步驟520還可包括確定是否存在任何姿勢(shì)修改,如果是則修改響應(yīng)于姿勢(shì)檢測(cè)而執(zhí)行的用戶界面動(dòng)作。在一個(gè)實(shí)施例中,步驟516-520是由計(jì)算設(shè)備12執(zhí)行的。此外,盡管步驟502-514 被描述為由捕捉設(shè)備20執(zhí)行,但這些步驟中的各個(gè)步驟可由諸如計(jì)算環(huán)境12之類的其他組件來執(zhí)行。例如,捕捉設(shè)備20可向計(jì)算環(huán)境12提供視覺和/或深度圖像,計(jì)算環(huán)境12接著將確定深度信息,檢測(cè)人類目標(biāo),掃描目標(biāo),生成并跟蹤模型,以及捕捉人類目標(biāo)的運(yùn)動(dòng)。圖5示出表示可在圖4的步驟510生成的掃描的人類目標(biāo)的骨架模型或映射530 的示例。根據(jù)一個(gè)實(shí)施例,骨架模型530可包括可將人類目標(biāo)表示為三維模型的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。每個(gè)身體部位可被表征為定義骨架模型530的關(guān)節(jié)和骨骼的數(shù)學(xué)矢量。骨架模型530包括關(guān)節(jié)nl-nl8。關(guān)節(jié)nl-nl8中的每一個(gè)可使得在這些關(guān)節(jié)之間定義的一個(gè)或多個(gè)身體部位能相對(duì)于一個(gè)或多個(gè)其他身體部位移動(dòng)。表示人類目標(biāo)的模型可包括多個(gè)剛性和/或可變形身體部位,這些身體部位由一個(gè)或多個(gè)諸如“骨骼”等結(jié)構(gòu)件來定義,而關(guān)節(jié)nl-nl8位于相鄰骨骼的交叉點(diǎn)處。關(guān)節(jié)nl-nl8可使得與骨骼和關(guān)節(jié)nl-nl8 相關(guān)聯(lián)的各個(gè)身體部位能夠彼此獨(dú)立地或彼此相對(duì)地移動(dòng)。例如,關(guān)節(jié)n7與nil之間定義的骨骼對(duì) 應(yīng)于前臂,該前臂可獨(dú)立于例如關(guān)節(jié)nl5與nl7之間定義的骨骼——其對(duì)應(yīng)于小腿——移動(dòng)。可以理解,某些骨骼可對(duì)應(yīng)于人類目標(biāo)中的解剖學(xué)骨骼,和/或某些骨骼可能不具有人類目標(biāo)中的對(duì)應(yīng)的解剖學(xué)骨骼。骨骼和關(guān)節(jié)可共同構(gòu)成骨架模型,其可以是該模型的構(gòu)成元素。軸向滾動(dòng)角可用于相對(duì)于其父肢和/或軀干來定義肢的旋轉(zhuǎn)定向。例如,如果骨架模型示出手臂的軸向旋轉(zhuǎn),則可使用滾動(dòng)關(guān)節(jié)來指示相關(guān)聯(lián)的腕所指向的方向(例如,手掌向上)。通過檢查肢的相對(duì)于其父肢和/或軀干的定向,可確定軸向滾動(dòng)角。例如,如果正在檢查小腿,則可檢查小腿的相對(duì)于相關(guān)聯(lián)的大腿和髖部的定向來確定軸向滾動(dòng)角。圖6是描述使用包括深度相機(jī)的一個(gè)或多個(gè)捕捉設(shè)備捕捉運(yùn)動(dòng)并跟蹤捕捉設(shè)備的視野內(nèi)的目標(biāo)來控制用戶界面的過程的一個(gè)實(shí)施例的流程圖。在一個(gè)示例中,圖6提供了用于如圖5的步驟512和514所執(zhí)行的跟蹤模型以及捕捉運(yùn)動(dòng)的更詳細(xì)的內(nèi)容。在步驟552,確定視野中的人類目標(biāo)的用戶身份。步驟552是可任選的。在一個(gè)示例中,步驟552可使用面部識(shí)別來將來自接收到的視覺圖像的用戶的臉與參考視覺圖像相關(guān)。在另一示例中,確定用戶ID可包括接收來自用戶的標(biāo)識(shí)他們的ID的輸入。例如,可由計(jì)算機(jī)環(huán)境12存儲(chǔ)用戶簡(jiǎn)檔,用戶可作出屏幕上選擇以將他們自己標(biāo)識(shí)為對(duì)應(yīng)于該用戶簡(jiǎn)檔。可使用用于確定用戶的ID的其他示例。在步驟554,確定所標(biāo)識(shí)的用戶的技能等級(jí)。步驟554是可任選的。在一個(gè)示例中,確定技能等級(jí)包括訪問計(jì)算環(huán)境中與用戶簡(jiǎn)檔一起存儲(chǔ)的技能等級(jí)。在另一示例中,步驟554是通過檢查用戶與計(jì)算環(huán)境的交互而動(dòng)態(tài)執(zhí)行的。例如,通過分析用戶的移動(dòng),可使用姿勢(shì)和控制應(yīng)用或用戶界面的能力來建立技能等級(jí)。該過程可以是動(dòng)態(tài)的,且可在用戶與系統(tǒng)交互時(shí)定期地或持續(xù)地被更新。在一個(gè)示例中,如將在下文中描述的那樣,用戶身份和技能等級(jí)可被用于調(diào)整姿勢(shì)過濾器。 為了跟蹤用戶的運(yùn)動(dòng),利用目標(biāo)的身體部位的骨架映射。在步驟556,訪問由步驟 508和510處掃描人類目標(biāo)以及生成模型而產(chǎn)生的身體部位i。在步驟558處,在X、Y、Z空間中計(jì)算該身體部位的位置,以創(chuàng)建相機(jī)視野內(nèi)該身體部位的三維位置表示。在步驟560, 根據(jù)該位置計(jì)算該身體部位的移動(dòng)的方向。方向性移動(dòng)可在X、Y和Z方向的任何一個(gè)或其組合中具有分量。在步驟562,確定該身體部位的移動(dòng)速度。在步驟564,計(jì)算身體部位的加速度。在步驟566,確定在Χ、Υ、Ζ空間中身體部位的移動(dòng)的曲率,以例如表示身體部位在捕捉區(qū)域內(nèi)的非線性移動(dòng)。速度、加速度和曲率計(jì)算并不取決于方向。注意,步驟558至 566僅是可對(duì)用戶的移動(dòng)的骨架映射執(zhí)行的計(jì)算的示例。在其他實(shí)施例中,可執(zhí)行附加的計(jì)算或可執(zhí)行比圖6所示的全部計(jì)算少的計(jì)算。在步驟568,跟蹤系統(tǒng)確定是否有更多的步驟508的掃描所標(biāo)識(shí)的身體部位。如果掃描中有額外的身體部位,在步驟570處i被設(shè)置為i+Ι,且方法返回到步驟556以訪問來自掃描的圖像的下一身體部位。對(duì)X、Y、Z笛卡爾映射的使用僅僅是作為示例提供的。在其他實(shí)施例中,可使用不同的坐標(biāo)映射系統(tǒng)來計(jì)算移動(dòng)、速度和加速度。當(dāng)檢查實(shí)際上繞關(guān)節(jié)旋轉(zhuǎn)的身體部位的移動(dòng)時(shí),例如球面坐標(biāo)映射可能是有用的。一旦在步驟570確定已經(jīng)分析了掃描中的全部身體部位,則在步驟574為目標(biāo)生成或更新運(yùn)動(dòng)捕捉文件。目標(biāo)識(shí)別分析和跟蹤系統(tǒng)可呈現(xiàn)并存儲(chǔ)可包括諸如姿勢(shì)運(yùn)動(dòng)之類的一個(gè)或多個(gè)運(yùn)動(dòng)的運(yùn)動(dòng)捕捉文件。在一個(gè)示例中,基于與所跟蹤的模型相關(guān)聯(lián)的信息來實(shí)時(shí)生成運(yùn)動(dòng)捕捉文件。例如,在一個(gè)實(shí)施例中,該運(yùn)動(dòng)捕捉文件可包括包含X、Y和Z值的矢量,這些矢量定義在各個(gè)時(shí)間點(diǎn)跟蹤模型時(shí)該模型的關(guān)節(jié)和骨骼。如上所述,所跟蹤的模型可基于各個(gè)時(shí)間點(diǎn)的用戶運(yùn)動(dòng)來調(diào)整,并且可生成并存儲(chǔ)運(yùn)動(dòng)的模型的運(yùn)動(dòng)捕捉文件。該運(yùn)動(dòng)捕捉文件可捕捉在與目標(biāo)識(shí)別分析和跟蹤系統(tǒng)交互的用戶進(jìn)行自然移動(dòng)期間所跟蹤的模型。例如,可生成運(yùn)動(dòng)捕捉文件,使得該運(yùn)動(dòng)捕捉文件可自然地捕捉用戶在與目標(biāo)識(shí)別分析和跟蹤系統(tǒng)交互期間進(jìn)行的任何移動(dòng)或運(yùn)動(dòng)。該運(yùn)動(dòng)捕捉文件可包括對(duì)應(yīng)于例如用戶在不同時(shí)間點(diǎn)的運(yùn)動(dòng)的快照的幀。在捕捉了所跟蹤的模型之后,可在運(yùn)動(dòng)捕捉文件的一幀中呈現(xiàn)與模型相關(guān)聯(lián)的信息,包括在一特定時(shí)間點(diǎn)的任何移動(dòng)以及應(yīng)用于模型的調(diào)整。該幀中的信息可包括例如包括X、Y和Z值的矢量以及一時(shí)間戳,這些矢量定義所跟蹤的模型的關(guān)節(jié)和骨骼,該時(shí)間戳可指示例如用戶執(zhí)行了對(duì)應(yīng)于所跟蹤的模型的姿態(tài)的移動(dòng)的時(shí)間點(diǎn)。在步驟576,如果有保證的話,系統(tǒng)調(diào)整被跟蹤和建模的特定用戶的姿勢(shì)設(shè)置。姿勢(shì)設(shè)置可基于步驟552和554確定的信息以及對(duì)步驟556至566執(zhí)行的身體部位和骨架映射獲得的信息來調(diào)整。在一個(gè)具體示例中,如果用戶有困難完成一個(gè)或多個(gè)姿勢(shì),則系統(tǒng)可例如通過接近但不滿足姿勢(shì)識(shí)別的閾值要求的參數(shù)來識(shí)別該情況。在這一情況下,調(diào)整姿勢(shì)設(shè)置可包括放寬該特定姿勢(shì)的一個(gè)或多個(gè)姿勢(shì)過濾器中所標(biāo)識(shí)的用于執(zhí)行該姿勢(shì)的約束。類似地,如果用戶顯露出高的技能等級(jí),則可調(diào)整姿勢(shì)過濾器來將移動(dòng)約束到更為精確的重現(xiàn),使得可避免假肯定。換言之,通過使有技能的用戶的約束更加嚴(yán)格,則在并沒有意圖任何姿勢(shì)時(shí)系統(tǒng)將更不可能會(huì)將移動(dòng)錯(cuò)誤地標(biāo)識(shí)為姿勢(shì)。系統(tǒng)可基于所跟蹤的模型的滿足一個(gè)或多個(gè)姿勢(shì)過濾器的一個(gè)或多個(gè)運(yùn)動(dòng)將預(yù)先確定的動(dòng)作應(yīng)用于用戶界面。運(yùn)動(dòng)捕捉文件中捕捉的模型中的關(guān)節(jié)和骨骼可被映射到游戲人物或化身的特定部分。例如,與右肘相關(guān)聯(lián)的關(guān)節(jié)可被映射到化身或游戲人物的右肘。 然后可對(duì)右肘制作動(dòng)畫以運(yùn)動(dòng)捕捉文件的每個(gè)幀中模擬與用戶的模型相關(guān)聯(lián)的右肘的動(dòng)作,或可將右肘的移動(dòng)傳遞給姿勢(shì)過濾器以確定是否滿足了對(duì)應(yīng)的約束。根據(jù)一個(gè)示例,跟蹤系統(tǒng)可在運(yùn)動(dòng)捕捉文件中捕捉運(yùn)動(dòng)時(shí)應(yīng)用一個(gè)或多個(gè)運(yùn)動(dòng)。 由此,當(dāng)在運(yùn)動(dòng)捕捉文件中呈現(xiàn)一幀時(shí),可將該幀中捕捉的運(yùn)動(dòng)應(yīng)用于化身、游戲人物或用戶界面,使得可對(duì)該化身或游戲人物制作動(dòng)畫來立即模擬該幀中捕捉的運(yùn)動(dòng)。類似地,系統(tǒng)可在運(yùn)動(dòng)被確定為滿足一個(gè)或多個(gè)姿勢(shì)過濾器時(shí)應(yīng)用UI動(dòng)作。在另一實(shí)施例中,跟蹤系統(tǒng)可在運(yùn)動(dòng)捕捉文件中捕捉運(yùn)動(dòng)之后應(yīng)用一個(gè)或多個(gè)運(yùn)動(dòng)。例如,諸如行走運(yùn)動(dòng)之類的運(yùn)動(dòng)或諸如下述的按壓或掃視姿勢(shì)之類的運(yùn)動(dòng)可由用戶執(zhí)行并被捕捉和存儲(chǔ)在運(yùn)動(dòng)捕捉文件中??稍诶缑看斡脩綦S后執(zhí)行被識(shí)別為與諸如行走運(yùn)動(dòng)或按壓運(yùn)動(dòng)等運(yùn)動(dòng)相關(guān)聯(lián)的控制的姿勢(shì)時(shí),將運(yùn)動(dòng)應(yīng)用于該化身、游戲人物或用戶界面。圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的描述用于姿勢(shì)識(shí)別和控制的過程的一個(gè)實(shí)施例的流程圖。圖7描述了基于規(guī)則的方法,其中姿勢(shì)識(shí)別引擎190利用一個(gè)或多個(gè)姿勢(shì)過濾器來確定姿勢(shì)是否被滿足,以及利用一個(gè)或多個(gè)姿勢(shì)修改過濾器來確定要對(duì)用戶界面或其他應(yīng)用執(zhí)行的結(jié)果動(dòng)作。將理解盡管在該具體示例中描述了單個(gè)姿勢(shì)的檢測(cè),但是圖7 的過程可多次執(zhí)行以檢測(cè)活動(dòng)姿勢(shì)集中的多個(gè)姿勢(shì)。所描述的過程可對(duì)多個(gè)活動(dòng)姿勢(shì)并行或順序地執(zhí)行。在步驟602,姿勢(shì)識(shí)別弓I擎訪問某一目標(biāo)的骨架跟蹤數(shù)據(jù)以開始確定該目標(biāo)是否執(zhí)行了選擇的姿勢(shì)。在一個(gè)示例中,可從運(yùn)動(dòng)捕捉文件訪問骨架跟蹤數(shù)據(jù)。在步驟604,姿勢(shì)識(shí)別引擎為與所選擇的姿勢(shì)過濾器中標(biāo)識(shí)的選擇的姿勢(shì)有關(guān)的一個(gè)或多個(gè)預(yù)先確定的身體部位過濾骨架跟蹤數(shù)據(jù)。步驟604可包括僅訪問與所選擇的姿勢(shì)有關(guān)的數(shù)據(jù),或訪問目標(biāo)的全部骨架跟蹤數(shù)據(jù)并忽略或丟棄不與所選擇的姿勢(shì)有關(guān)的信息。例如,水平掃視姿勢(shì)過濾器可指示出僅人類目標(biāo)的手與所選擇的姿勢(shì)有關(guān),使得可忽略與其他身體部位有關(guān)的數(shù)據(jù)。這種技術(shù)可通過將處理限于被預(yù)先確定為對(duì)所選擇的姿勢(shì)是顯著的信息來增加姿勢(shì)識(shí)別引擎的性能。在步驟606,姿勢(shì)識(shí)別引擎對(duì)預(yù)先確定的軸向移動(dòng)過濾骨架跟蹤數(shù)據(jù)。所選擇的姿勢(shì)的過濾器可指定僅沿著軸的某一子集的移動(dòng)是相關(guān)的。考慮下文中將要更為詳細(xì)地描述的垂直掃視姿勢(shì),其中用戶在垂直方向中將他們的手向上或向下移動(dòng)以控制用戶界面。用于垂直掃視姿勢(shì)的姿勢(shì)過濾器可指定唯一相關(guān)的軸向移動(dòng)是沿著垂直的Y軸的移動(dòng),且沿著水平的X軸和深度Z軸的移動(dòng)是不相關(guān)的。從而,步驟606可包括訪問在垂直的Y軸方向中目標(biāo)的手移動(dòng)的骨架跟蹤數(shù)據(jù),并忽略或丟棄與在X軸或Z軸方向中的手的移動(dòng)有關(guān)的數(shù)據(jù)。注意,在其他示例中,垂直掃視姿勢(shì)過濾器可指定也檢查在其他方向中的手的移動(dòng)。 例如,可分析水平的X軸移動(dòng),以確定屏幕上的哪個(gè)(些)項(xiàng)目要被垂直掃視姿勢(shì)操縱,或?qū)⒋怪睊咭曌藙?shì)與其他移動(dòng)相區(qū)別。在步驟608,姿勢(shì)識(shí)別引擎訪問姿勢(shì)過濾器中指定的規(guī)則i。在圖7的過程的第一次迭代中,i等于1。姿勢(shì)可包括需要被滿足以便姿勢(shì)被識(shí)別的多個(gè)參數(shù)。這些參數(shù)中的每個(gè)參數(shù)可在單獨(dú)的規(guī)則中指定,但是多個(gè)參數(shù)可被包括在單個(gè)規(guī)則中。規(guī)則可指定目標(biāo)的身體部位必須滿足以便姿勢(shì)被滿足的閾值距離、位置、方向、曲率、速度和/或加速度,以及其他參數(shù)。規(guī)則可應(yīng)用于一個(gè)身體部位或多個(gè)身體部位。而且,規(guī)則可指定諸如位置之類的單個(gè)參數(shù),或諸如位置、方向、距離、曲率、速度和加速度之類的多個(gè)參數(shù)。在步驟610,姿勢(shì)識(shí)別引擎將在步驟604和606過濾的骨架跟蹤數(shù)據(jù)與規(guī)則的指定的參數(shù)相比較,以確定規(guī)則是否被滿足。例如,姿勢(shì)識(shí)別引擎可確定手的起始位置是否位于起始位置參數(shù)的閾值距離內(nèi)。在一個(gè)示例中,檢測(cè)姿勢(shì)的開始包括確定用戶的身體是否移到特定的起始位置,確定用戶的手是否伸出離開身體特定距離,確定手和/或身體是否在某一時(shí)間段保持在特定位置,手是否在某一時(shí)間段保持特定加速度(例如,來檢測(cè)圓周運(yùn)動(dòng)),以及手在特定方向的速度是否跨越特定閾值。這些準(zhǔn)則中的任何一個(gè)或其組合都可被使用。規(guī)則可進(jìn)一步指定且引擎確定手是否以指定方向移動(dòng);以指定方向從起始位置移動(dòng)了閾值距離;沿指定軸在閾值曲率內(nèi)移動(dòng);以指定速度或以上移動(dòng);達(dá)到或超過指定加速度。與可用于檢測(cè)姿勢(shì)的開始類似的準(zhǔn)則可被用于檢測(cè)姿勢(shì)的完成。例如,可使用手的位置以及手是否在某一時(shí)間段保持在特定位置。如果引擎確定骨架跟蹤信息不滿足過濾器規(guī)則中指定的參數(shù),則不采取步驟612所指定的用戶界面動(dòng)作。在一個(gè)實(shí)施例中,在步驟 612,姿勢(shì)識(shí)別引擎向在計(jì)算系統(tǒng)12上執(zhí)行的操作系統(tǒng)196或應(yīng)用返回失敗或姿勢(shì)過濾器不被滿足的響應(yīng)。在步驟614,姿勢(shì)識(shí)別引擎確定姿勢(shì)過濾器是否指定了對(duì)于要被完成的姿勢(shì)必須被滿足的額外的規(guī)則。如果過濾器中包括額外的規(guī)則,則i遞增1且過程返回到步驟608, 在步驟608訪問下一規(guī)則。如果對(duì)于所選擇的姿勢(shì),過濾器中不包括額外的規(guī)則,則引擎在步驟618斷定姿勢(shì)過濾器已被滿足。在一個(gè)實(shí)施例中,步驟618可包括向操作系統(tǒng)或應(yīng)用返回關(guān)于姿勢(shì)已被檢測(cè)出的指示。在步驟620,姿勢(shì)識(shí)別引擎確定對(duì)于檢測(cè)出的姿勢(shì)是否存在姿勢(shì)修改。在一個(gè)實(shí)施例中,姿勢(shì)修改是由用戶提供的除了所檢測(cè)出的姿勢(shì)之外的象征性姿勢(shì)。用戶可形成一姿態(tài)或執(zhí)行除了主姿勢(shì)的移動(dòng)之外的移動(dòng),以指示出主姿勢(shì)的修改。作為示例,用戶可舉起他們的左手以形成對(duì)由他們的右手或其他身體部位執(zhí)行的姿勢(shì)的修改。類似地,用戶可舉起他們的右手以形成對(duì)由他們的左手或其他身體部位執(zhí)行的姿勢(shì)的修改。人類目標(biāo)的其他移動(dòng)和姿態(tài)也被考慮作為合適的 姿勢(shì)修改。此外,姿勢(shì)修改不限于人類目標(biāo)的姿態(tài)和移動(dòng)。 例如,其他姿勢(shì)修改可包括,但不限于,物理對(duì)象、聲音或電機(jī)輸入。多個(gè)修改可同時(shí)應(yīng)用于某一姿勢(shì)以評(píng)估要執(zhí)行若干用戶界面動(dòng)作中的哪一動(dòng)作。從而,步驟620可包括應(yīng)用不止一個(gè)姿勢(shì)修改的過濾器。作為示例,用戶可提供姿勢(shì)以及對(duì)姿勢(shì)的語音修改。此外,可順序地應(yīng)用多個(gè)修改,例如來修改保持了一段時(shí)間的姿勢(shì)或姿態(tài)。如果在步驟622確定對(duì)于所檢測(cè)出的姿勢(shì)不存在修改,則在步驟624執(zhí)行第一用戶界面動(dòng)作。如果對(duì)于所檢測(cè)出的姿勢(shì)存在修改,則在步驟626執(zhí)行第二用戶界面動(dòng)作。在一個(gè)實(shí)施例中,步驟626執(zhí)行的第二 UI動(dòng)作是步驟624執(zhí)行的第一 UI動(dòng)作的修改形式,但是這并不是要求的。考慮如圖1A-1B中早先描述的水平掃視姿勢(shì)。在圖IB中,用戶的移動(dòng)觸發(fā)了從用戶的觀點(diǎn)來看將用戶界面上的菜單項(xiàng)的列表310從右向左滾動(dòng)的用戶界面動(dòng)作。通過在作出水平掃視姿勢(shì)時(shí)提供修改,可執(zhí)行修改形式的滾動(dòng)動(dòng)作。例如,未修改的滾動(dòng)可以第一速率執(zhí)行,而修改的滾動(dòng)可以第二速率執(zhí)行,例如通過在檢測(cè)到修改手時(shí)移動(dòng)更多項(xiàng)目。圖7的步驟612和618被描述為對(duì)正被分析的姿勢(shì)的簡(jiǎn)單通過/失敗確定。在其他示例中,不是返回簡(jiǎn)單通過/失敗響應(yīng),步驟612和618可返回姿勢(shì)過濾器被滿足的置信水平。對(duì)于過濾器中的每個(gè)規(guī)則,確定目標(biāo)的移動(dòng)滿足或不滿足指定參數(shù)的量?;谶@些量的聚集,識(shí)別引擎返回目標(biāo)確實(shí)執(zhí)行了姿勢(shì)的置信水平。步驟624和626可包括指示出姿勢(shì)修改是否被檢測(cè)出的類似響應(yīng)。姿勢(shì)識(shí)別引擎可向操作系統(tǒng)或其他應(yīng)用返回某一姿勢(shì)被執(zhí)行了的置信水平。圖8描繪了用戶18與系統(tǒng)10交互以執(zhí)行如圖1A-1B所示相同的水平掃視姿勢(shì),但是同時(shí)還提供了對(duì)水平掃視姿勢(shì)的修改。圖8對(duì)應(yīng)于圖IB所示的姿勢(shì)完成時(shí)的系統(tǒng)視圖。 在該具體示例中,姿勢(shì)修改是由用戶執(zhí)行掃視姿勢(shì)時(shí)與姿勢(shì)手相對(duì)的手的位置所限定的手修改。如圖8所示,用戶18將他的左手從圖IA中的位置305舉起到圖8中的位置307。用戶可在執(zhí)行掃視姿勢(shì)之前舉起他們的左手,或者可在開始姿勢(shì)之后的某一時(shí)間舉起左手, 以提供修改輸入。捕捉設(shè)備20確定姿勢(shì)修改已被提供,并向系統(tǒng)12提供修改的指示。系統(tǒng)12使得 UI 23的第二控制動(dòng)作被執(zhí)行,如圖8所描繪的。在該示例中,修改使得菜單項(xiàng)的列表310按頁而不是按照關(guān)于未修改的掃視姿勢(shì)的單個(gè)菜單項(xiàng)來滾動(dòng)。菜單項(xiàng)的列表可被組織成頁, 頁是在任何給定時(shí)刻顯示的菜單項(xiàng)。菜單項(xiàng)320-328滾離顯示畫面且被菜單項(xiàng)340-348取代。對(duì)圖1A-1B的用戶界面動(dòng)作的其他修改可由圖8中所示的修改手觸發(fā)。在另一示例中, 項(xiàng)目的列表310可響應(yīng)于用戶在執(zhí)行水平掃視的同時(shí)舉起他們的左手而垂直滾動(dòng),而不是在沒有舉起該手時(shí)水平滾動(dòng)。在這種情況下,列表310中的全部項(xiàng) 目可垂直滾動(dòng)并被額外的菜單項(xiàng)所替代。在進(jìn)一步的示例中,選擇菜單項(xiàng)320-328之一可使得系統(tǒng)界面顯示項(xiàng)目的垂直列表,該垂直列表可通過使用用右手的水平掃視姿勢(shì)和舉起左手姿勢(shì)修改來滾動(dòng)。姿勢(shì)修改不限于圖8中所示的手姿勢(shì)修改。人類目標(biāo)的任何移動(dòng)或姿態(tài)都可被用作姿勢(shì)修改。作為示例,用戶可使用他們的右手以對(duì)他們的左手或其他身體部位執(zhí)行的姿勢(shì)提供姿勢(shì)修改。用戶可使用腿、手指、頭或另一合適的身體部位來指示姿勢(shì)修改。任何運(yùn)動(dòng)或姿態(tài)都可由姿勢(shì)識(shí)別引擎中的姿勢(shì)修改過濾器定義,以用作姿勢(shì)修改。如早先所述,姿勢(shì)修改不限于被跟蹤的目標(biāo)的移動(dòng)或姿態(tài),而是可包括諸如物理對(duì)象、語音或電機(jī)輸入之類的其他輸入。例如,用戶可手持物理對(duì)象以指示出對(duì)姿勢(shì)的修改。用戶可在執(zhí)行水平掃視姿勢(shì)時(shí)手持一物理對(duì)象以修改姿勢(shì)并從而引起修改的或替換的用戶界面動(dòng)作。例如,手持棒的用戶可將用戶簡(jiǎn)檔建立為玩游戲環(huán)境中的巫師。在此情況下,執(zhí)行水平掃視姿勢(shì)同時(shí)握住棒可發(fā)起玩巫師游戲動(dòng)作,而不是在沒有棒的情況下執(zhí)行相同姿勢(shì)時(shí)的菜單滾動(dòng)功能。注意,用戶可在執(zhí)行姿勢(shì)的手中或另一只手中握有該棒。類似地,語音命令可形成姿勢(shì)修改。用戶可執(zhí)行姿勢(shì)同時(shí)發(fā)出語音姿勢(shì)修改,以改變?cè)撟藙?shì)所觸發(fā)的用戶界面控制。繼續(xù)水平掃視姿勢(shì)的例子,用戶可說出單詞“快”或“更快”以使得滾動(dòng)功能在正被滾動(dòng)的列表中更快地移動(dòng)菜單項(xiàng)。類似地,單詞“慢”或“更慢” 可觸發(fā)對(duì)菜單項(xiàng)的更慢的滾動(dòng)。用戶可說出將指示出相對(duì)滾動(dòng)程度的數(shù)字,例如說出“1” 可使得以慢速滾動(dòng),而更大的數(shù)字致使?jié)L動(dòng)動(dòng)作中的成比例的增加。用戶可說出單詞“頁” 以使得按菜單項(xiàng)的頁來滾動(dòng)。此外,用戶可說出詞組“列表結(jié)尾”以滾動(dòng)到列表中的最后一項(xiàng),或“列表開始”以滾動(dòng)到列表中的第一項(xiàng)。姿勢(shì)修改可被應(yīng)用于任何姿勢(shì)。作為示例,姿勢(shì)修改可應(yīng)用于垂直掃視姿勢(shì),以修改用戶界面垂直滾動(dòng)菜單項(xiàng)的速率或量。應(yīng)用于垂直掃視姿勢(shì)的姿勢(shì)修改還可使得水平滾動(dòng)代替垂直滾動(dòng),或使得滾動(dòng)按頁進(jìn)行而不是按項(xiàng)進(jìn)行。對(duì)按壓姿勢(shì)的姿勢(shì)修改可觸發(fā)通過用戶界面的回退移動(dòng),而不是如未修改的按壓姿勢(shì)那樣對(duì)屏幕上項(xiàng)目的選擇。在另一示例中,用戶可使用第一手勢(shì)來指向并突出顯示屏幕上的項(xiàng)目,無需選擇它們并引起用戶界面動(dòng)作。用戶然后可應(yīng)用修改,例如通過舉起他們的另一只手,以指示出被突出顯示的項(xiàng)目應(yīng)該被選擇以引起相應(yīng)的用戶界面動(dòng)作。應(yīng)用于回退姿勢(shì)的修改可觸發(fā)通過用戶界面的前向?qū)Ш?,而未修改的回退姿?shì)可觸發(fā)回退導(dǎo)航。例如,修改的回退姿勢(shì)可致使在用戶界面提供的菜單分層結(jié)構(gòu)中從較高層到較低層的移動(dòng),而未修改的按壓姿勢(shì)可致使從較低層到較高層的移動(dòng)。這些功能也可反向。應(yīng)用于雙手按壓姿勢(shì)的修改可觸發(fā)縮放功能以縮小當(dāng)前用戶界面顯示畫面,而未修改的雙手按壓姿勢(shì)可觸發(fā)通過用戶界面的回退導(dǎo)航。在替代實(shí)施例中,這些功能可被反向。此外,回退移動(dòng)的量或縮放的量可基于修改的存在來修改。對(duì)雙手壓縮姿勢(shì)的修改可觸發(fā)縮放功能以在當(dāng)前用戶界面顯示畫面上放大,而未修改的版本可觸發(fā)對(duì)當(dāng)前用戶界面顯示畫面的縮小。作為另一示例,未修改的姿勢(shì)可觸發(fā)以第一速率或以第一量放大或縮小,而修改的姿勢(shì)可觸發(fā)以可能小于或大于第一速率的第二速率來放大或縮小。姿勢(shì)修改還可指示出對(duì)姿勢(shì)修改的程度,致使對(duì)姿勢(shì)的執(zhí)行所觸發(fā)的用戶界面控制的對(duì)應(yīng)程度的修改。姿勢(shì)修改的過濾器可包括指定姿勢(shì)修改參數(shù)中的一個(gè)或多個(gè)參數(shù)的范圍。所測(cè)得的骨架跟蹤數(shù)據(jù)可與這些范圍比較,以不僅確定數(shù)據(jù)是否滿足修改參數(shù),而且確定跟蹤數(shù)據(jù)落在哪一參數(shù)范圍內(nèi)?;诖_定的參數(shù)范圍,姿勢(shì)可被按比例地修改。修改姿勢(shì)可包括致使執(zhí)行對(duì)應(yīng)的UI控制的替代形式或經(jīng)修改的形式。考慮先前描述的水平掃視姿勢(shì)和手姿勢(shì)修改。圖9A-9C和10A-10C描繪了人類目標(biāo)執(zhí)行水平掃視姿勢(shì)和手姿勢(shì)修改的兩個(gè)不同實(shí)例的骨架映射。骨架映射描繪了各時(shí)間點(diǎn)處的用戶,其中圖9A和IOA是第一時(shí)間點(diǎn),圖9C和IOC是最后時(shí)間點(diǎn)。在該示例中,標(biāo)識(shí)各種關(guān)節(jié)和骨骼每一手402、每一前臂404、每一肘406、每一二頭肌408、每一肩410、每一髖412、每一大腿414、每一膝416、每一小腿418、每一足420、頭422、軀干424、脊椎的頂部 426和 底部428,以及腰430。在跟蹤多個(gè)點(diǎn)的情況下,可標(biāo)識(shí)另外的特征,如手指或腳趾的骨骼和關(guān)節(jié),或臉部的各個(gè)特征,如鼻和眼。在圖9A和IOA中,用戶以他的右手臂在他的一側(cè)向下朝向他的右腳伸出且在右肘稍微彎曲開始。在圖9A中,他的左手在他的左側(cè),但是被舉起使其左肘低于他的肩膀且他的左手正好在他的左肩之上。在圖IOA中,用戶的左手也被舉起,但舉起的高度低于圖9A 中的高度。姿勢(shì)識(shí)別引擎可將圖9A和IOA中的起始位置解釋為都包括用戶的左手正在進(jìn)行的姿勢(shì)修改。在用戶的肩膀高度周圍的大體區(qū)域中舉在用戶的腰部之上的左手可被解釋為舉起用戶的左手以指示出手姿勢(shì)修改。姿勢(shì)修改的該位置可被定義為虛象限(virtual quadrant),具有大約在用戶的肩膀或頭部的程度的垂直分量以及在與手所處的相同的身體一側(cè)上的水平分量。如下所述,舉起用于手姿勢(shì)修改的左手還可指示出姿勢(shì)輸入時(shí)間段的開始。在圖9B和IOB中,用戶沿水平的X軸向他的身體的左側(cè)移動(dòng)他的右手402a,同時(shí)在垂直的Y軸方向略微地舉起他的右臂。盡管在二維表示中不可見,但是應(yīng)理解,通過垂直地舉起右手臂,通過將其右手臂從他的身體旁伸到他的身體的前面,用戶將其右手臂伸向捕捉設(shè)備,或者沿Z軸伸出。當(dāng)用戶的右手到達(dá)它將沿X方向的水平軸向他的身體的左側(cè)部分行進(jìn)的最遠(yuǎn)距離時(shí),用戶完成水平掃視姿勢(shì)。姿勢(shì)識(shí)別引擎處理該用右手的移動(dòng),而用戶的左手被舉起以確定水平掃視姿勢(shì)已被滿足。在圖9C和10C,用戶放下他們的左手。如下所述,放下執(zhí)行手姿勢(shì)修改的手還可指示出姿勢(shì)輸入時(shí)間段的結(jié)束。引擎處理用左右的移動(dòng),以確定在姿勢(shì)的執(zhí)行期間已經(jīng)提供了姿勢(shì)修改。在該情況下,用戶舉起他的左手的量或?qū)⑵渥笫峙e到的高度被用作對(duì)掃視姿勢(shì)的修改。引擎確定用戶的手的高度并返回該高度作為對(duì)掃視姿勢(shì)的程度修改。確定高度或量可包括從手姿勢(shì)修改過濾器確定用戶的左手的位置落在哪個(gè)元數(shù)據(jù)范圍內(nèi)。用戶舉起他們的左手越高,對(duì)用右手的姿勢(shì)的修改越大。如果掃視姿勢(shì)致使如圖1A-1B中所示的UI界面中對(duì)菜檔項(xiàng)的用戶界面滾動(dòng)動(dòng)作,則程度修改可被用于確定滾動(dòng)菜單項(xiàng)的量。當(dāng)執(zhí)行水平掃視姿勢(shì)時(shí),與圖10A-10B中用戶的左手的高度相比,響應(yīng)于如圖9A-9B所示的左手的更高的高度,顯示畫面上可滾動(dòng)更多的項(xiàng)。例如,用圖10A-10B中所示的修改執(zhí)行水平掃視姿勢(shì)可致使列表中的菜單項(xiàng)滾動(dòng)一個(gè)位置,而用圖9A-9B中所示的修改執(zhí)行相同的水平掃視姿勢(shì)可致使列表中的相同的菜單項(xiàng)滾動(dòng)兩個(gè)或更多的位置。不同于傳統(tǒng)的可基于與觸摸屏的接觸來標(biāo)識(shí)用戶的姿勢(shì)的開始和結(jié)束的基于觸摸的姿勢(shì)識(shí)別系統(tǒng),在半空中姿勢(shì)檢測(cè)系統(tǒng)中用戶可不提供可由系統(tǒng)檢測(cè)到的對(duì)開始和結(jié)束的顯式指示。例如,用戶可連續(xù)移動(dòng)并從某一隨意動(dòng)作轉(zhuǎn)換到姿勢(shì)移動(dòng)。盡管系統(tǒng)可根據(jù)姿勢(shì)的過濾器基于后續(xù)移動(dòng)來將姿勢(shì)的開始與某一隨意身體位置或移動(dòng)相區(qū)分,但是顯式定義姿勢(shì)的開始和/或結(jié)束的技術(shù)可能是有益的。因此,一個(gè)實(shí)施例利用姿勢(shì)修改來指示在其中用戶意圖提供姿勢(shì)的姿勢(shì)輸入時(shí)間段。圖11是描述用于使用姿勢(shì)修改來指示意圖的姿勢(shì)輸入的過程的一個(gè)實(shí)施例的流程圖。在該示例中,姿勢(shì)修改指定了意圖要執(zhí)行姿勢(shì)的時(shí)間段。響應(yīng)于用戶提供姿勢(shì)修改, 系統(tǒng)標(biāo)識(shí)一姿勢(shì)時(shí)間段,在該姿勢(shì)時(shí)間段內(nèi)目標(biāo)的移動(dòng)被分析以確定姿勢(shì)是否被執(zhí)行。在步驟702,姿勢(shì)識(shí)別引擎檢測(cè)指示出意圖的姿勢(shì)輸入時(shí)間段的姿勢(shì)修改。姿勢(shì)修改可指示起始時(shí)間 和結(jié)束時(shí)間來將其間的時(shí)間段定義為姿勢(shì)輸入時(shí)間段。在一個(gè)實(shí)施例中,步驟702可包括確定姿勢(shì)輸入時(shí)間段的開始和姿勢(shì)輸入時(shí)間段的結(jié)束。引擎可如圖7 的步驟602-618所述地跟蹤用戶的移動(dòng)并應(yīng)用一個(gè)或多個(gè)姿勢(shì)修改過濾器,以確定姿勢(shì)修改是否被執(zhí)行。例如,用戶可如圖9A所示那樣舉起一只手以指示某一姿勢(shì)要被執(zhí)行(例如通過他們的另一只手或其他身體部位),從而觸發(fā)了姿勢(shì)輸入時(shí)間段的開始。用戶可在執(zhí)行了姿勢(shì)之后如圖9C中所示那樣放下他們的手,從而觸發(fā)了姿勢(shì)輸入時(shí)間段的結(jié)束。在其他示例中,用戶可呈現(xiàn)一物理對(duì)象以指示姿勢(shì)輸入時(shí)間段。用戶可呈現(xiàn)一張卡(例如具有某種顏色)或其他物理對(duì)象以指示姿勢(shì)修改時(shí)間段。當(dāng)該時(shí)間段結(jié)束時(shí),用戶可移除物理對(duì)象,例如通過將卡翻轉(zhuǎn)到另一顏色或通過將物理對(duì)象放置在捕捉設(shè)備的視野之外??商峁┢渌藙?shì)修改輸入,例如電機(jī)控制,來指示起始和結(jié)束時(shí)間。還可分析語音來指示起始和結(jié)束時(shí)間。例如,系統(tǒng)可將用戶說出“開始”和“結(jié)束”之間的時(shí)間解釋為姿勢(shì)輸入時(shí)間段。在步驟704,引擎確定姿勢(shì)修改是否縮小或擴(kuò)展了可行或活動(dòng)姿勢(shì)集。姿勢(shì)修改可具有相關(guān)聯(lián)的可行姿勢(shì)集,使得系統(tǒng)僅尋找對(duì)應(yīng)于該姿勢(shì)修改的姿勢(shì)。步驟704可包括添加要被分析的額外的可行姿勢(shì),或從當(dāng)前可行姿勢(shì)中去除姿勢(shì)。在步驟706,引擎訪問由姿勢(shì)修改指定的起始和結(jié)束時(shí)間之間的目標(biāo)的骨架映射數(shù)據(jù)。在步驟708,引擎訪問活動(dòng)姿勢(shì)集中第一個(gè)姿勢(shì)j的第一個(gè)規(guī)則i = 1,并在步驟710確定該規(guī)則中的每個(gè)參數(shù)是否都被滿足。如果并非每個(gè)參數(shù)都被滿足,則引擎在步驟712確定活動(dòng)姿勢(shì)集中是否有額外的姿勢(shì)是可行的。如果沒有額外的姿勢(shì),則方法在步驟714結(jié)束。在一個(gè)實(shí)施例中,在步驟714可將一個(gè)或多個(gè)姿勢(shì)沒有被滿足的響應(yīng)返回給操作系統(tǒng)或應(yīng)用。如果有額外的活動(dòng)姿勢(shì),則在步驟716通過將j遞增1并返回到步驟708來訪問下一個(gè)姿勢(shì)。如果在步驟710姿勢(shì)的每個(gè)參數(shù)都被滿足,則在步驟718引擎確定當(dāng)前姿勢(shì)j是否包含額外的規(guī)則i。如果是,則在步驟720將i遞增1,且在步驟708訪問下一規(guī)則。如果步驟718確定所有規(guī)則都已被滿足,則在步驟722引擎確定是否存在姿勢(shì)修改。在一個(gè)實(shí)施例中,指示如步驟702所確定的姿勢(shì)輸入時(shí)間段的姿勢(shì)修改可自己提供對(duì)響應(yīng)于檢測(cè)出的姿勢(shì)而執(zhí)行的UI動(dòng)作的修改。如圖9A-9C所述,舉起用戶的左手可致使對(duì)水平掃視姿勢(shì)的修改,例如響應(yīng)于對(duì)該姿勢(shì)的檢測(cè)來控制滾動(dòng)的菜單項(xiàng)的數(shù)量。從而,舉起用戶的左手可指示出姿勢(shì)輸入時(shí)間段的開始,還指示出修改在姿勢(shì)輸入時(shí)間段期間檢測(cè)出的姿勢(shì)。在另一實(shí)施例中,諸如額外的姿勢(shì)、物理對(duì)象或語音之類的單獨(dú)的輸入可被提供來修改UI動(dòng)作。如果不存在姿勢(shì)修改,則在步驟726執(zhí)行對(duì)應(yīng)于所檢測(cè)出的姿勢(shì)的第一 UI動(dòng)作。 如果在步驟722檢測(cè)出姿勢(shì)修改,則在步驟728執(zhí)行第二 UI動(dòng)作。如先前所述,在一個(gè)實(shí)施例中,第二 UI動(dòng)作是第一 UI動(dòng)作的修改形式。在應(yīng)用了第一或第二 UI動(dòng)作之后,方法返回到步驟712以確定活動(dòng)姿勢(shì)集中是否有額外的姿勢(shì)要分析。注意,滿足某一姿勢(shì)過濾器的用戶的移動(dòng)可觸發(fā)相應(yīng)的用戶界面動(dòng)作,而不管該移動(dòng)是否在意圖的姿勢(shì)輸入時(shí)間段內(nèi)被檢測(cè)出。然而,在一個(gè)實(shí)施例中,如果在意圖的姿勢(shì)輸入時(shí)間段內(nèi)檢測(cè)到用戶的移動(dòng),則用戶的移動(dòng)可僅觸發(fā)相應(yīng)的用戶界面動(dòng)作。在一個(gè)實(shí)施例中,姿勢(shì)修改被用于開始一無終止的姿勢(shì)輸入或跟蹤時(shí)間段。類似于圖11中所描述的技術(shù),用戶可通過提供姿勢(shì)修改來發(fā)起對(duì)移動(dòng)的跟蹤。然而,在該情況下,修改不定義停止時(shí)間。相反,修改向系統(tǒng)指示出他們的交互和移動(dòng)應(yīng)被跟蹤并通過識(shí)別引擎,直到用戶不再被跟蹤。在一個(gè)示例中,揮手姿勢(shì)被用于指示后續(xù)交互應(yīng)當(dāng)被跟蹤。揮手姿勢(shì)可包括用戶在他們的身體前方以傳統(tǒng)的揮手運(yùn)動(dòng)水平地移動(dòng)任一只手。該移動(dòng)一般包括定義用戶水平地移動(dòng)他們的手時(shí)的弧度的垂直分量。用于該移動(dòng)的過濾器可定義起始位置參數(shù)、在用戶的身體前方行進(jìn)的距離以及手在水平行進(jìn)時(shí)向上和向下的垂直位移。在一個(gè)實(shí)施例中,過濾器可提供定義例如用戶的手應(yīng)被舉起在身體的前方且在肘之上之類的位置參數(shù)、與速度和位置都有關(guān)的定義例如揮動(dòng)的大小和手多快地執(zhí)行該移動(dòng)之類的大小參數(shù)、以及定義整個(gè)揮手運(yùn)動(dòng)中的最小連貫程度的周期參數(shù)。響應(yīng)于檢測(cè)到揮手姿勢(shì)修改, 系統(tǒng)將無限期地跟蹤用戶的移動(dòng)和交互,直到某一其他事件結(jié)束該跟蹤過程。在一個(gè)實(shí)施例中,提供“逃跑”以允許用戶停止執(zhí)行他們意外開始的姿勢(shì)。該系統(tǒng)提供用戶已經(jīng)開始某一姿勢(shì)的反饋。用戶可通過以適合完成準(zhǔn)則的方式移動(dòng)來完成該姿勢(shì)。作為替代,用戶可移動(dòng)以適合終止該姿勢(shì)的不同的一組準(zhǔn)則。這種兩階段處理可進(jìn)一步減少假肯定。圖12示出了可用于實(shí)現(xiàn)圖1A-2的計(jì)算環(huán)境12的計(jì)算環(huán)境100的示例。圖12的計(jì)算環(huán)境100可以是諸如游戲控制臺(tái)等多媒體控制臺(tái)100。如圖12所示,多媒體控制臺(tái)100 具有含有一級(jí)高速緩存102、二級(jí)高速緩存104和閃存ROM(只讀存儲(chǔ)器)106的中央處理單元(CPU) 101。一級(jí)高速緩存102和二級(jí)高速緩存104臨時(shí)存儲(chǔ)數(shù)據(jù)并因此減少存儲(chǔ)器訪問周期數(shù),由此改進(jìn)處理速度和吞吐量。CPU 101可以設(shè)置成具有一個(gè)以上的核,以及由此的附加的一級(jí)和二級(jí)高速緩存102和104。閃存ROM 106可存儲(chǔ)在當(dāng)多媒體控制臺(tái)100通電時(shí)的引導(dǎo)過程的初始階段期間加載的可執(zhí)行代碼。 圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速、高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線將數(shù)據(jù)輸出到A/V (音頻/視頻)端口 140以傳輸?shù)诫娨暀C(jī)或其他顯示器。存儲(chǔ)器控制器110連接到GPU 108以方便處理器訪問各種類型的存儲(chǔ)器112,諸如但不局限于RAM(隨機(jī)存取存儲(chǔ)器)。多媒體控制臺(tái)100包括較佳地在模塊118上實(shí)現(xiàn)的I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一 USB主控制器126、第二 USB控制器 128和前面板I/O子部件130。USB控制器126和128用作外圍控制器142 (1)-142 (2)、無線適配器148、和外置存儲(chǔ)器設(shè)備146 (例如閃存、外置⑶/DVD ROM驅(qū)動(dòng)器、可移動(dòng)介質(zhì)等) 的主機(jī)。網(wǎng)絡(luò)接口 124和/或無線適配器148提供對(duì)網(wǎng)絡(luò)(例如,因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問并且可以是包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍(lán)牙模塊、電纜調(diào)制解調(diào)器等的各種不同的有線或無線適配器組件中任何一種。提供系統(tǒng)存儲(chǔ)器143來存儲(chǔ)在引導(dǎo)進(jìn)程期間加載的應(yīng)用數(shù)據(jù)。提供媒體驅(qū)動(dòng)器 144,且其可包括DVD/⑶驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、或其他可移動(dòng)媒體驅(qū)動(dòng)器等。媒體驅(qū)動(dòng)器144 可以是對(duì)多媒體控制器100內(nèi)置的或外置的。應(yīng)用數(shù)據(jù)可經(jīng)由媒體驅(qū)動(dòng)器144訪問,以由多媒體控制臺(tái)100執(zhí)行、回放等。介質(zhì)驅(qū)動(dòng)器144經(jīng)由諸如串行ATA總線或其他高速連接 (例如IEEE 1394)等總線連接到I/O控制器120。系統(tǒng)管理控制器122提供涉及確保多媒體控制臺(tái)100的可用性的各種服務(wù)功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對(duì)應(yīng)的音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數(shù)據(jù)輸出到A/V端口 140以供外置音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。前板I/O子部件130支持暴露在多媒體控制臺(tái)100的外表面上的電源按鈕150和彈出按鈕152以及任何LED(發(fā)光二極管)或其他指示器的功能。系統(tǒng)供電模塊136向多媒體控制臺(tái)100的組件供電。風(fēng)扇138冷卻多媒體控制臺(tái)100內(nèi)的電路。CPU 101、GPU 108、存儲(chǔ)器控制器110、和多媒體控制臺(tái)100內(nèi)的各個(gè)其他組件經(jīng)由一條或多條總線互連,包括串行和并行總線、存儲(chǔ)器總線、外圍總線、和使用各種總線架構(gòu)中任一種的處理器或局部總線。作為示例,這些架構(gòu)可以包括外圍部件互連(PCI)總線、 PCI-Express 總線等。當(dāng)多媒體控制臺(tái)100通電時(shí),應(yīng)用數(shù)據(jù)可從系統(tǒng)存儲(chǔ)器143加載到存儲(chǔ)器112和/ 或高速緩存102、104中并在CPU 101上執(zhí)行。應(yīng)用可呈現(xiàn)在導(dǎo)航到多媒體控制臺(tái)100上可用的不同媒體類型時(shí)提供一致的用戶體驗(yàn)的圖形用戶界面。在操作中,媒體驅(qū)動(dòng)器144中包含的應(yīng)用和/或其他媒體可從媒體驅(qū)動(dòng)器144啟動(dòng)或播放,以向多媒體控制臺(tái)100提供附加功能。多媒體控制臺(tái)100可通過將該系統(tǒng)簡(jiǎn)單地連接到電視機(jī)或其他顯示器而作為獨(dú)立系統(tǒng)來操作。在該獨(dú)立模式中,多媒體控制臺(tái)100允許一個(gè)或多個(gè)用戶與該系統(tǒng)交互、看電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 124或無線適配器148可用的寬帶連接的集成, 多媒體控制臺(tái)100還可作為較大網(wǎng)絡(luò)社區(qū)中的參與者來操作。
當(dāng)多媒體控制臺(tái)100通電時(shí),可以保留設(shè)定量的硬件資源以供多媒體控制臺(tái)操作系統(tǒng)作系統(tǒng)使用。這些資源可包括存儲(chǔ)器的保留量(諸如,16MB)、CPU和GPU周期的保留量(諸如,5% )、網(wǎng)絡(luò)帶寬的保留量(諸如,8kbs),等等。因?yàn)檫@些資源是在系統(tǒng)引導(dǎo)時(shí)間保留的,所保留的資源對(duì)于應(yīng)用的視角而言是不存在的。具體地,存儲(chǔ)器保留較佳地足夠大,以包含啟動(dòng)內(nèi)核、并發(fā)系統(tǒng)應(yīng)用和驅(qū)動(dòng)程序。 CPU保留較佳地為恒定,使得若所保留的CPU用量不被系統(tǒng)應(yīng)用使用,則空閑線程將消耗任何未使用的周期。對(duì)于GPU保留,通過使用GPU中斷來顯示由系統(tǒng)應(yīng)用生成的輕量消息(例如,彈出窗口),以調(diào)度代碼來將彈出窗口呈現(xiàn)為覆蓋圖。覆蓋圖所需的存儲(chǔ)器量取決于覆蓋區(qū)域大小,并且覆蓋圖較佳地與屏幕分辨率成比例縮放。在并發(fā)系統(tǒng)應(yīng)用使用完整用戶界面的情況下,優(yōu)選使用獨(dú)立于應(yīng)用分辨率的分辨率。定標(biāo)器可用于設(shè)置該分辨率,從而無需改變頻率,也就不會(huì)引起TV重新同步。在多媒體控制臺(tái)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)核標(biāo)識(shí)是系統(tǒng)應(yīng)用線程而非游戲應(yīng)用線程的線程。系統(tǒng)應(yīng)用優(yōu)選地被調(diào)度為在預(yù)定時(shí)間并以預(yù)定時(shí)間間隔在CPU 101上運(yùn)行,以便為應(yīng)用提供一致的系統(tǒng)資源視圖。進(jìn)行調(diào)度是為了把由在控制臺(tái)上運(yùn)行的游戲應(yīng)用所引起的高速緩存分裂最小化。當(dāng)并發(fā)系統(tǒng)應(yīng)用需要音頻時(shí),則由于時(shí)間敏感性而異步調(diào)度音頻處理給游戲應(yīng)用。多媒體控制臺(tái)應(yīng)用管理器(如下所 述)在系統(tǒng)應(yīng)用活動(dòng)時(shí)控制游戲應(yīng)用的音頻水平 (例如,靜音、衰減)。輸入設(shè)備(例如,控制器142(1)和142(2))由游戲應(yīng)用和系統(tǒng)應(yīng)用共享。輸入設(shè)備不是所保留的資源,但卻在系統(tǒng)應(yīng)用和游戲應(yīng)用之間切換以使其各自具有設(shè)備的焦點(diǎn)。 應(yīng)用管理器較佳地控制輸入流的切換,而無需知曉游戲應(yīng)用的知識(shí),并且驅(qū)動(dòng)程序維持有關(guān)焦點(diǎn)切換的狀態(tài)信息。相機(jī)74和76以及捕捉設(shè)備60可定義用于控制臺(tái)100的附加輸入設(shè)備。圖13示出了可用于實(shí)現(xiàn)圖1A-2所示的計(jì)算環(huán)境52的計(jì)算環(huán)境220的另一示例。 計(jì)算系統(tǒng)環(huán)境220只是合適的計(jì)算環(huán)境的一個(gè)示例,并且不旨在對(duì)所公開的主題的使用范圍或功能提出任何限制。也不應(yīng)該將計(jì)算環(huán)境220解釋為對(duì)示例性操作環(huán)境220中示出的任一組件或其組合有任何依賴性或要求。在某些實(shí)施例中,所描繪的各種計(jì)算元素可包括被配置成實(shí)例化本公開的各具體方面的電路。例如,本公開中使用的術(shù)語電路可包括被配置成通過固件或開關(guān)來執(zhí)行功能的專用硬件組件。在其他示例中,術(shù)語電路可包括由軟件指令配置的實(shí)施可用于執(zhí)行功能的邏輯的通用處理單元、存儲(chǔ)器等。在其中電路包括硬件和軟件的組合的實(shí)施例中,實(shí)施者可以編寫體現(xiàn)邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件、軟件或硬件/軟件組合之間幾乎沒有差別的地步,因而選擇硬件或是軟件來實(shí)現(xiàn)具體功能是留給實(shí)現(xiàn)者的設(shè)計(jì)選擇。更具體地,本領(lǐng)域技術(shù)人員可以明白軟件進(jìn)程可被變換成等價(jià)的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等價(jià)的軟件進(jìn)程。因此,對(duì)于硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是設(shè)計(jì)選擇并留給實(shí)現(xiàn)者。在圖13中,計(jì)算環(huán)境220包括通常包括各種計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)241。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī)241訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器222包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM) 223和隨機(jī)存取存儲(chǔ)器(RAM) 260。基本輸入/輸出系統(tǒng)224(BI0S)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)241內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM 223中。RAM 260通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖12示出了操作系統(tǒng)225、應(yīng)用程序226、其它程序模塊227和程序數(shù)據(jù)228。計(jì)算機(jī)241還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例,圖12示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動(dòng)器 238,從可移動(dòng)、非易失性磁盤254中讀取或向其寫入的磁盤驅(qū)動(dòng)器239,以及從諸如⑶ROM 或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤253中讀取或向其寫入的光盤驅(qū)動(dòng)器240。可以在示例性操作環(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器238通常由不可移動(dòng)存儲(chǔ)器接口,諸如接口 234連接至系統(tǒng)總線221,磁盤驅(qū)動(dòng)器239和光盤驅(qū)動(dòng)器240通常由可移動(dòng)存儲(chǔ)器接口,諸如接口 235連接至系統(tǒng)總線221。上文討論并在圖13中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)241 提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖13中,硬盤驅(qū)動(dòng)器238被示為存儲(chǔ)操作系統(tǒng)258、應(yīng)用程序257、其它程序模塊256和程序數(shù)據(jù)255。注意,這些組件可以與操作系統(tǒng)225、應(yīng)用程序226、其他程序模塊227和程序數(shù)據(jù)228相同, 也可以與它們不同。在此給操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256、以及程序數(shù)據(jù) 255提供了不同的編號(hào),以說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,諸如鍵盤 251和定點(diǎn)設(shè)備252 (通常被稱為鼠標(biāo)、跟蹤球或觸摸墊),向計(jì)算機(jī)241輸入命令和信息。 其他輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。 這些和其他輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口 236連接至處理單元259, 但也可以由其他接口和總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)來連接。 相機(jī)74、76和捕捉設(shè)備60可定義用于計(jì)算機(jī)241的附加輸入設(shè)備。監(jiān)視器242或其他類型的顯示設(shè)備也通過接口,諸如視頻接口 232,連接至系統(tǒng)總線221。除監(jiān)視器以外,計(jì)算機(jī)也可以包括其他外圍輸出設(shè)備,諸如揚(yáng)聲器244和打印機(jī)243,它們可以通過輸出外圍接口 233連接。 計(jì)算機(jī)241可以使用到諸如遠(yuǎn)程計(jì)算機(jī)246之類的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)246可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面相對(duì)于計(jì)算機(jī)241所描述的許多或所有元件,但在圖13中只示出存儲(chǔ)器存儲(chǔ)設(shè)備247。圖2中所示的邏輯連接包括局域網(wǎng)(LAN) 245 和廣域網(wǎng)(WAN) 249,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)241通過網(wǎng)絡(luò)接口或適配器245連接至LAN 237。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)241通常包括調(diào)制解調(diào)器250或用于通過諸如因特網(wǎng)等WAN 249建立通信的其他裝置。調(diào)制解調(diào)器250可以是內(nèi)置或外置的,它可以經(jīng)由用戶輸入接口 236或其他適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線221。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)241所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖 13示出了遠(yuǎn)程應(yīng)用程序248駐留在存儲(chǔ)器設(shè)備247上。可以理解,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。 盡管用專門描述結(jié)構(gòu)特征和 /或方法動(dòng)作的語言描述了主題,但是應(yīng)當(dāng)理解,在所附權(quán)利要求書中限定的主題并不一定局限于上述特定的特征或動(dòng)作。更確切而言,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。本發(fā)明的范圍旨在由所附權(quán)利要求書來定義。
權(quán)利要求
1.一種使用人類目標(biāo)的半空中運(yùn)動(dòng)來操作用戶界面的方法,包括 從捕捉設(shè)備接收多個(gè)圖像,所述多個(gè)圖像包括所述人類目標(biāo)(502);使用所述人類目標(biāo)的骨架映射從所述多個(gè)圖像跟蹤所述人類目標(biāo)的移動(dòng)(512); 從所述骨架映射確定所述人類目標(biāo)的移動(dòng)是否滿足用于第一半空中姿勢(shì)的一個(gè)或多個(gè)過濾器(520);確定是否存在用于第一半空中姿勢(shì)的修改(622);如果所述人類目標(biāo)的移動(dòng)滿足所述一個(gè)或多個(gè)過濾器且不存在修改,則執(zhí)行對(duì)應(yīng)于所述半空中姿勢(shì)的第一用戶界面動(dòng)作(624);以及如果所述人類目標(biāo)的移動(dòng)滿足所述一個(gè)或多個(gè)過濾器且存在修改,則執(zhí)行對(duì)應(yīng)于所述半空中姿勢(shì)的第二用戶界面動(dòng)作(626)。
2.如權(quán)利要求1所述的方法,其特征在于,所述第二用戶界面動(dòng)作是所述第一用戶界面動(dòng)作的修改版本。
3.如權(quán)利要求1所述的方法,其特征在于確定是否存在用于所述第一半空中姿勢(shì)的修改包括確定所述人類目標(biāo)的第一只手是否滿足第一姿勢(shì)修改過濾器的位置參數(shù)。
4.如權(quán)利要求3所述的方法,其特征在于所述位置參數(shù)定義了所述第一只手在所述用戶的腰之上的虛象限;以及所述半空中姿勢(shì)是由所述用戶的第二只手執(zhí)行的。
5.如權(quán)利要求4所述的方法,其特征在于所述位置參數(shù)定義了所述第一只手的位置的多個(gè)范圍; 所述第一用戶界面動(dòng)作包括按第一量導(dǎo)航通過菜單項(xiàng)的列表; 所述第二用戶界面動(dòng)作包括當(dāng)所述第一只手的位置在第一范圍中時(shí)按第二量導(dǎo)航通過所述菜單項(xiàng)的列表,而當(dāng)所述第一只手的位置在第二范圍中時(shí)按第三量導(dǎo)航通過所述菜單項(xiàng)的列表。
6.如權(quán)利要求5所述的方法,其特征在于,確定所述人類目標(biāo)的移動(dòng)是否滿足用于所述半空中姿勢(shì)的所述一個(gè)或多個(gè)過濾器包括確定所述人類目標(biāo)的手的位置是否滿足起始位置參數(shù), 確定所述手從所述起始位置移動(dòng)的方向是否滿足方向參數(shù),以及確定所述手在所述移動(dòng)期間行進(jìn)的距離是否滿足距離參數(shù)。
7.如權(quán)利要求1所述的方法,其特征在于確定是否存在用于所述第一半空中姿勢(shì)的修改包括確定所述人類目標(biāo)是否持有修改對(duì)象。
8.如權(quán)利要求1所述的方法,其特征在于確定是否存在用于所述第一半空中姿勢(shì)的修改包括確定所述人類目標(biāo)是否發(fā)出語音修改。
9.如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)圖像是多個(gè)深度圖像。
10.一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,具有收錄于所述一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備上的處理器可讀代碼,所述處理器可讀代碼用于對(duì)一個(gè)或多個(gè)處理器編程以執(zhí)行一種方法,包括接收包括人類目標(biāo)的捕捉區(qū)域的深度圖像(502); 創(chuàng)建用于映射人類目標(biāo)隨時(shí)間的移動(dòng)的骨架模型(510); 檢測(cè)來自所述人類目標(biāo)的指示出姿勢(shì)時(shí)間段的姿勢(shì)修改(702); 響應(yīng)于檢測(cè)到姿勢(shì)修改,從骨架映射確定在所述姿勢(shì)時(shí)間段期間所述人類目標(biāo)的移動(dòng)是否滿足用于第一半空中姿勢(shì)的一個(gè)或多個(gè)過濾器(710);以及如果在所述姿勢(shì)時(shí)間段期間所述人類目標(biāo)的移動(dòng)滿足所述一個(gè)或多個(gè)過濾器,則執(zhí)行對(duì)應(yīng)于所述第一半空中姿勢(shì)的第一用戶界面動(dòng)作(726)。
11.如權(quán)利要求10所述的一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,其特征在于 所述姿勢(shì)修改是舉起的手姿勢(shì)修改;以及檢測(cè)姿勢(shì)修改包括確定所述人類目標(biāo)是否已將手舉起到滿足姿勢(shì)修改過濾器參數(shù)的位置;所述方法還包括基于所述人類目標(biāo)舉起手的時(shí)間確定所述姿勢(shì)時(shí)間段的開始, 確定所述人類目標(biāo)是否已將他們的手從滿足所述姿勢(shì)修改過濾器參數(shù)的所述位置放下,以及基于所述人類目標(biāo)放下手的時(shí)間確定所述姿勢(shì)時(shí)間段的結(jié)束。
12.如權(quán)利要求10所述的一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,其特征在于,所述方法還包括在檢測(cè)出所述姿勢(shì)修改之前,確定所述人類目標(biāo)的移動(dòng)是否滿足第一組可行姿勢(shì); 響應(yīng)于檢測(cè)出所述姿勢(shì)修改確定所述姿勢(shì)修改是否與第二組可行姿勢(shì)相關(guān)聯(lián),所述第二組可行姿勢(shì)包括所述第一半空中姿勢(shì)且與所述第一組可行姿勢(shì)不同,以及僅從所述骨架映射確定所述人類目標(biāo)的移動(dòng)是否滿足所述第二組可行姿勢(shì)。
13.如權(quán)利要求10所述的一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,其特征在于,在所述姿勢(shì)時(shí)間段之外所述人類目標(biāo)的滿足所述一個(gè)或多個(gè)過濾器的移動(dòng)不會(huì)觸發(fā)對(duì)與所述第一半空中姿勢(shì)相對(duì)應(yīng)的第一用戶界面動(dòng)作的執(zhí)行。
14.如權(quán)利要求10所述的一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,其特征在于,在所述姿勢(shì)時(shí)間段之外所述人類目標(biāo)的滿足所述一個(gè)或多個(gè)過濾器的移動(dòng)會(huì)觸發(fā)對(duì)與所述第一半空中姿勢(shì)相對(duì)應(yīng)的第一用戶界面動(dòng)作的執(zhí)行。
15.如權(quán)利要求10所述的一個(gè)或多個(gè)處理器可讀存儲(chǔ)設(shè)備,其特征在于確定用于所述第一半空中姿勢(shì)的修改是否存在包括確定所述人類目標(biāo)是否持有修改對(duì)象。
全文摘要
本發(fā)明涉及用于操縱用戶界面的姿勢(shì)和姿勢(shì)修改。提供姿勢(shì)修改用于修改和增強(qiáng)對(duì)諸如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)或應(yīng)用所提供的用戶界面之類的用戶界面的控制。象征性姿勢(shì)移動(dòng)由用戶在半空中執(zhí)行。捕捉設(shè)備生成深度圖像和包括人類目標(biāo)的捕捉區(qū)域的三維表示。使用骨架映射來跟蹤人類目標(biāo)以捕捉用戶的半空中運(yùn)動(dòng)。骨架映射數(shù)據(jù)被用于使用姿勢(shì)過濾器來標(biāo)識(shí)對(duì)應(yīng)于預(yù)定義的姿勢(shì)的移動(dòng)。對(duì)可行姿勢(shì)的檢測(cè)能夠觸發(fā)一個(gè)或多個(gè)用戶界面動(dòng)作或控制。提供姿勢(shì)修改來修改通過對(duì)姿勢(shì)的檢測(cè)而觸發(fā)的用戶界面動(dòng)作,和/或幫助對(duì)姿勢(shì)的標(biāo)識(shí)。
文檔編號(hào)G06F3/01GK102184020SQ201110138268
公開日2011年9月14日 申請(qǐng)日期2011年5月17日 優(yōu)先權(quán)日2010年5月18日
發(fā)明者A·普洛斯, A·瓦賽爾, B·雷維爾, C·克萊恩, J·安德森, Z·弗萊士曼 申請(qǐng)人:微軟公司