亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于操縱用戶界面的姿勢和姿勢識(shí)別的制作方法

文檔序號:6424898閱讀:264來源:國知局
專利名稱:用于操縱用戶界面的姿勢和姿勢識(shí)別的制作方法
技術(shù)領(lǐng)域
本申請涉及用于操縱用戶界面的姿勢和姿勢識(shí)別。
背景技術(shù)
在過去,諸如計(jì)算機(jī)游戲和多媒體應(yīng)用等計(jì)算應(yīng)用使用控制器、遙控器、鍵盤、鼠標(biāo)等來允許用戶操縱游戲人物或應(yīng)用的其他方面。近來,計(jì)算機(jī)游戲和多媒體應(yīng)用已開始使用照相機(jī)和軟件姿勢識(shí)別來提供人機(jī)接口(“HCI”)。使用HCI,檢測、解釋用戶姿勢并將其用于控制游戲人物或應(yīng)用的其他方面。

發(fā)明內(nèi)容
使用象征性姿勢來控制諸如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)所提供的系統(tǒng)用戶界面之類的系統(tǒng)用戶界面。在半空中的象征性姿勢移動(dòng)是由用戶利用或無需輸入設(shè)備的幫助而執(zhí)行的。目標(biāo)跟蹤系統(tǒng)分析這些半空中移動(dòng)來確定何時(shí)執(zhí)行了預(yù)定義的姿勢。捕捉設(shè)備生成包括人類目標(biāo)的捕捉區(qū)域的深度圖像。捕捉設(shè)備生成包括人類目標(biāo)的捕捉區(qū)域的三維表示的深度圖像。使用骨架映射來跟蹤人類目標(biāo)以捕捉用戶的半空中運(yùn)動(dòng)。 骨架映射數(shù)據(jù)被用于使用姿勢過濾器來標(biāo)識(shí)對應(yīng)于預(yù)定義的姿勢的移動(dòng),姿勢過濾器提出了用于確定目標(biāo)的移動(dòng)何時(shí)指示出可行姿勢的參數(shù)。當(dāng)檢測到姿勢時(shí),執(zhí)行一個(gè)或多個(gè)預(yù)定義的用戶界面控制動(dòng)作。在一個(gè)實(shí)施例中使用人類目標(biāo)的半空中移動(dòng)來控制用戶界面。使用來自捕捉設(shè)備的圖像以生成人類目標(biāo)的骨架映射,從而跟蹤人類目標(biāo)的移動(dòng)。通過骨架映射,確定人類目標(biāo)的移動(dòng)是否滿足用于某一半空中姿勢的一個(gè)或多個(gè)過濾器。該一個(gè)或多個(gè)過濾器可指定該半空中姿勢由例如某一只手或雙手來執(zhí)行。如果人類目標(biāo)的移動(dòng)滿足該一個(gè)或多個(gè)過濾器,則可執(zhí)行對應(yīng)于該半空中姿勢的一個(gè)或多個(gè)用戶界面動(dòng)作。一個(gè)實(shí)施例包括用于跟蹤用戶移動(dòng)來控制用戶界面的系統(tǒng)。該系統(tǒng)包括提供用戶界面的操作系統(tǒng)、跟蹤系統(tǒng)、姿勢庫以及姿勢識(shí)別引擎。跟蹤系統(tǒng)與圖像捕捉設(shè)備通信來接收包括人類目標(biāo)的捕捉區(qū)域的深度信息,以及創(chuàng)建映射人類目標(biāo)的隨著時(shí)間的移動(dòng)的骨架模型。姿勢庫存儲(chǔ)了多個(gè)姿勢過濾器,其中每個(gè)姿勢過濾器包含用于至少一個(gè)姿勢的信息。 例如,姿勢過濾器可指定相應(yīng)的姿勢應(yīng)由某一只手或雙手來執(zhí)行。姿勢識(shí)別引擎與跟蹤系統(tǒng)通信以接收骨架模型,以及使用姿勢庫來確定人類目標(biāo)的移動(dòng)是否滿足多個(gè)姿勢過濾器中的一個(gè)或多個(gè)。當(dāng)人類目標(biāo)的移動(dòng)滿足多個(gè)姿勢過濾器中的一個(gè)或多個(gè)時(shí),姿勢識(shí)別引擎向可執(zhí)行相應(yīng)的用戶界面控制動(dòng)作的操作系統(tǒng)提供指示。一個(gè)實(shí)施例包括提供對應(yīng)于用于控制操作系統(tǒng)用戶界面的多個(gè)半空中姿勢中的各個(gè)半空中姿勢的多個(gè)姿勢過濾器。該多個(gè)半空中姿勢包括水平掃視姿勢、垂直掃視姿勢、 單手按壓姿勢、后退姿勢、雙手按壓姿勢和雙手壓縮姿勢。在已知的三維坐標(biāo)系中使用人類目標(biāo)的骨架映射從多個(gè)深度圖像跟蹤人類目標(biāo)的移動(dòng)。根據(jù)骨架映射,確定人類目標(biāo)的移動(dòng)是否滿足多個(gè)半空中姿勢中的各個(gè)半空中姿勢的至少一個(gè)姿勢過濾器。響應(yīng)于確定人類目標(biāo)的移動(dòng)滿足一個(gè)或多個(gè)姿勢過濾器,操作系統(tǒng)用戶界面得到控制。提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。


圖IA和IB示出了用戶在玩游戲的跟蹤系統(tǒng)的一個(gè)實(shí)施例。圖2示出可用作跟蹤系統(tǒng)的一部分的捕捉設(shè)備的一個(gè)實(shí)施例。圖3示出可被用來跟蹤運(yùn)動(dòng)并基于所跟蹤的運(yùn)動(dòng)來更新應(yīng)用的計(jì)算系統(tǒng)的一個(gè)實(shí)施例。圖4示出可被用來跟蹤運(yùn)動(dòng)并基于所跟蹤的運(yùn)動(dòng)來更新應(yīng)用的計(jì)算系統(tǒng)的一個(gè)實(shí)施例。圖5是描述用于用戶界面的姿勢控制的過程的一個(gè)實(shí)施例的流程圖。圖6是在一個(gè)實(shí)施例中可由跟蹤系統(tǒng)生成的人類目標(biāo)的骨架模型的示例。圖7是描述用于捕捉運(yùn)動(dòng)來控制用戶界面的過程的一個(gè)實(shí)施例的流程圖。圖8是描述姿勢識(shí)別引擎的一個(gè)實(shí)施例的框圖。圖9A-9B是示出堆疊姿勢過濾器以創(chuàng)建更復(fù)雜的姿勢過濾器的框圖。圖10是根據(jù)一個(gè)實(shí)施例描述用于姿勢識(shí)別的過程的一個(gè)實(shí)施例的流程圖。圖11A-11H描繪了根據(jù)一個(gè)實(shí)施例執(zhí)行水平掃視姿勢的人類目標(biāo)的骨架映射。圖12描繪了在一個(gè)實(shí)施例中人類目標(biāo)與跟蹤系統(tǒng)交互以執(zhí)行水平掃視姿勢。圖13是描述根據(jù)一個(gè)實(shí)施例姿勢識(shí)別引擎將右手掃視姿勢過濾器應(yīng)用于人類目標(biāo)的運(yùn)動(dòng)捕捉文件的流程圖。圖14A和14B描繪了在一個(gè)實(shí)施例中人類目標(biāo)與跟蹤系統(tǒng)交互以執(zhí)行垂直掃視姿勢。圖15A和15B描繪了在一個(gè)實(shí)施例中人類目標(biāo)與跟蹤系統(tǒng)交互以執(zhí)行按壓姿勢。圖16A和16B描繪了在一個(gè)實(shí)施例中人類目標(biāo)與跟蹤系統(tǒng)交互以執(zhí)行雙手按壓姿勢。圖17A和17B描繪了在一個(gè)實(shí)施例中人類目標(biāo)與跟蹤系統(tǒng)交互以執(zhí)行雙手壓縮姿勢。圖18示出用戶與系統(tǒng)提供的控制柄(handle)交互的跟蹤系統(tǒng)的一個(gè)實(shí)施例。圖19示出了根據(jù)一個(gè)實(shí)施例包括各控制柄的樣本屏幕顯示。圖20示出了根據(jù)一個(gè)實(shí)施例包括各控制柄和導(dǎo)軌(rail)的樣本屏幕顯示。圖21示出了根據(jù)一個(gè)實(shí)施例包括各控制柄和導(dǎo)軌的樣本屏幕顯示。
具體實(shí)施例方式提供了象征性姿勢及相關(guān)聯(lián)的識(shí)別技術(shù)用于控制例如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)所提供的系統(tǒng)用戶界面之類的系統(tǒng)用戶界面。象征性姿勢移動(dòng)是由用戶在半空中利用或無需輸入設(shè)備的幫助而執(zhí)行的。提供了捕捉設(shè)備來為包括人類目標(biāo)的捕捉區(qū)域的三維表示生成深度圖像。使用骨架映射來跟蹤人類目標(biāo)以捕捉用戶的半空中運(yùn)動(dòng)。骨架映射數(shù)據(jù)被用于使用姿勢過濾器來標(biāo)識(shí)對應(yīng)于預(yù)定義的姿勢的移動(dòng),姿勢過濾器提出了用于確定目標(biāo)的移動(dòng)何時(shí)指示出可行姿勢的參數(shù)。當(dāng)檢測到姿勢時(shí),執(zhí)行一個(gè)或多個(gè)預(yù)定義的用戶界面控制動(dòng)作。利用姿勢過濾器的姿勢識(shí)別引擎可提供各種輸出。在一個(gè)實(shí)施例中,姿勢識(shí)別引擎可響應(yīng)于使用姿勢過濾器分析用戶的移動(dòng)來提供簡單的二元是/否(姿勢滿足/姿勢不滿足)輸出。在其他實(shí)施例中,引擎可提供某一姿勢過濾器被滿足的置信水平。在某些實(shí)例中,姿勢識(shí)別引擎可生成可能無限數(shù)量的相關(guān)的值來提供關(guān)于用戶交互的性質(zhì)的附加上下文。例如,引擎可提供對應(yīng)于用戶為了完成某一姿勢的當(dāng)前進(jìn)展的值。這可使得呈現(xiàn)用戶界面的系統(tǒng)能夠例如在移動(dòng)期間向用戶提供音頻和/或視覺反饋(例如增加的音調(diào)或增加的顏色亮度)作為他們在完成某一姿勢中的進(jìn)展的反饋。在一個(gè)實(shí)施例中可檢測的姿勢包括,但不限于,水平掃視姿勢、垂直掃視姿勢、按壓姿勢、后退姿勢、雙手按壓姿勢、雙手后退姿勢、雙手壓縮姿勢和雙手反壓縮姿勢。水平掃視姿勢一般包括橫過用戶的身體的水平手移動(dòng),且可觸發(fā)用戶界面進(jìn)行水平菜單項(xiàng)滾動(dòng)動(dòng)作。垂直掃視姿勢一般包括垂直手移動(dòng),并可觸發(fā)用戶界面進(jìn)行垂直菜單項(xiàng)滾動(dòng)動(dòng)作。按壓姿勢一般包括遠(yuǎn)離用戶的身體且朝向捕捉設(shè)備的手移動(dòng),觸發(fā)了對用戶界面所提供的一個(gè)或多個(gè)菜單項(xiàng)的選擇。后退姿勢一般包括朝向用戶的身體且遠(yuǎn)離捕捉設(shè)備的手移動(dòng),觸發(fā)了通過用戶界面的回退導(dǎo)航,例如從用戶界面所提供的菜單層次結(jié)構(gòu)中的較低級到較高級。雙手按壓姿勢一般包括雙手遠(yuǎn)離目標(biāo)的身體且朝向捕捉設(shè)備的移動(dòng),觸發(fā)了通過用戶界面的回退導(dǎo)航。雙手按壓姿勢可另外地或另選地觸發(fā)縮放功能來縮小當(dāng)前用戶界面顯示。雙手壓縮姿勢一般包括目標(biāo)在他們的身體前將他們的手合在一起,觸發(fā)了縮放功能以縮小當(dāng)前用戶界面顯示。雙手壓縮姿勢還可觸發(fā)通過用戶界面的菜單層次結(jié)構(gòu)的回退導(dǎo)航。雙手壓縮姿勢還可在移動(dòng)的頂點(diǎn)(culmination)觸發(fā)特殊操作,例如折疊當(dāng)前界面顯示或在當(dāng)前顯示中打開菜單項(xiàng)。雙手反壓縮姿勢一般包括目標(biāo)以合在他們身體前的手開始,接著把他們的手分開或拉開。雙手反壓縮姿勢可觸發(fā)縮放功能來放大當(dāng)前用戶界面視圖或通過用戶界面菜單層次結(jié)構(gòu)向前導(dǎo)航。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)姿勢是用特定手的,意味著移動(dòng)與人類目標(biāo)的某一個(gè)手相關(guān)聯(lián)。右手的移動(dòng)可觸發(fā)相應(yīng)的用戶界面動(dòng)作,而左手同樣的移動(dòng)將不會(huì)觸發(fā)相應(yīng)的用戶界面動(dòng)作。作為非限制性示例,系統(tǒng)可提供右手水平掃視姿勢和左手水平掃視姿勢, 借此右手可用于向左滾動(dòng)菜單,而左手可用于向右滾動(dòng)菜單。在一個(gè)實(shí)施例中,系統(tǒng)確定用戶界面的上下文以標(biāo)識(shí)一組可行姿勢。在給定界面上下文中可把有限數(shù)量的姿勢定義為可行的,以使得必須被標(biāo)識(shí)以觸發(fā)用戶界面動(dòng)作的移動(dòng)的數(shù)量更小。在一個(gè)實(shí)施例中,用戶標(biāo)識(shí)可用于修改定義某一姿勢的參數(shù)。在一個(gè)實(shí)施例中,提供屏幕上圖形控制柄(handle)系統(tǒng)來控制用戶和屏幕上對象之間的交互??刂票梢允秋@示在顯示畫面中的與給定對象相關(guān)聯(lián)的用戶界面對象,用以定義用戶可對用戶界面所提供的某一對象執(zhí)行什么動(dòng)作,例如滾動(dòng)通過文本或圖形導(dǎo)航菜單等。用戶在執(zhí)行姿勢移動(dòng)之前與控制柄接合。姿勢移動(dòng)操縱該控制柄以例如在顯示屏上向上、向下、向左或向右移動(dòng)控制柄。該操作導(dǎo)致在對象上執(zhí)行相關(guān)聯(lián)的動(dòng)作。圖IA和IB示出用戶18正在玩拳擊游戲的目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10 (下文中一般稱為跟蹤系統(tǒng))的一個(gè)實(shí)施例。目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10可用于識(shí)別、分析和/或跟蹤諸如用戶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í)行的姿勢,以執(zhí)行對操作系統(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)的視聽信號。視聽設(shè)備16可從計(jì)算環(huán)境12接收視聽信號, 然后可向用戶18輸出與視聽信號相關(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)的控制。如圖IA和IB所示,在計(jì)算環(huán)境12上執(zhí)行的應(yīng)用可以是用戶18可能正在玩的拳擊游戲。計(jì)算環(huán)境12可使用視聽設(shè)備16來向用戶18提供拳擊對手22的視覺表示。計(jì)算環(huán)境12還可使用視聽設(shè)備16來提供用戶18可通過他的或她的移動(dòng)來控制的玩家化身M 的視覺表示。例如,如圖IB所示,用戶18可在物理空間中揮重拳來使得玩家化身M在游戲空間中揮重拳。因此,根據(jù)一示例實(shí)施例,跟蹤系統(tǒng)10的計(jì)算機(jī)環(huán)境12和捕捉設(shè)備20 可用于識(shí)別和分析用戶18在物理空間中的重拳,從而使得該重拳可被解釋為對游戲空間中的玩家化身M的游戲控制。此外,某些移動(dòng)可被解釋為可對應(yīng)于除控制玩家化身M之外的動(dòng)作的控制。例如,玩家可使用移動(dòng)來結(jié)束、暫?;虮4嬗螒颉⑦x擇級別、查看高分、與朋友交流等。跟蹤系統(tǒng)10還可用于將目標(biāo)移動(dòng)解釋為游戲領(lǐng)域之外的操作系統(tǒng)和/或應(yīng)用控制。例如,事實(shí)上操作系統(tǒng)和/或應(yīng)用的任何可控方面可由諸如用戶18等目標(biāo)的移動(dòng)來控制。根據(jù)另一實(shí)施例,玩家可使用移動(dòng)來從主用戶界面選擇游戲或其他應(yīng)用。由此,用戶18的全范圍運(yùn)動(dòng)可以用任何合適的方式來獲得、使用并分析以與應(yīng)用或操作系統(tǒng)進(jìn)行交互。圖2示出可在目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10中使用的捕捉設(shè)備20和計(jì)算系統(tǒng)12 的一個(gè)實(shí)施例,用于識(shí)別捕捉區(qū)域(無需附加到對象的專門傳感設(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可以是可捕捉場景的深度圖像的深度相機(jī)。深度圖像可包括所捕捉的場景的二維 (2-D)像素區(qū)域,其中2-D像素區(qū)域中的每一像素可表示深度值,諸如例如以厘米、毫米等計(jì)的、所捕捉的場景中的物體距相機(jī)的距離。如圖2所示,圖像相機(jī)組件32可包括可被用來捕捉捕捉區(qū)域的深度圖像的頂光組件34、三維(3-D)相機(jī)36、以及RGB相機(jī)38。例如,在飛行時(shí)間分析中,捕捉設(shè)備20的頂光組件34可以將紅外光發(fā)射到捕捉區(qū)域上,然后可以使用傳感器,用例如3-D相機(jī)36和/ 或RGB相機(jī)38來檢測從捕捉區(qū)域中的一個(gè)或多個(gè)目標(biāo)和對象的表面反向散射的光。在某些實(shí)施例中,可以使用脈沖式紅外光從而可以測量出射光脈沖和相應(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)由例如頂光組件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)換成電信號的換能器或傳感器。根據(jù)一個(gè)實(shí)施例,話筒40可用于減少目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)10中的捕捉設(shè)備20與計(jì)算環(huán)境12之間的反饋。另外,話筒40可用于接收也可由用戶提供的音頻信號,以控制可由計(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ǔ)簡檔的指令、用于接收深度圖像的指令、用于確定合適的目標(biāo)是否可被包括在深度圖像中的指令、用于將合適的目標(biāo)轉(zhuǎn)換成該目標(biāo)的骨架表示或模型的指令、或任何其他合適的指令。捕捉設(shè)備20還可包括存儲(chǔ)器組件44,存儲(chǔ)器組件44可存儲(chǔ)可由處理器42執(zhí)行的指令、3-D相機(jī)或RGB相機(jī)所捕捉的圖像或圖像的幀、用戶簡檔、或任何其他合適的信息、圖像等等。根據(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í)捕捉,例如,場景。捕捉設(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包括姿勢庫192、結(jié)構(gòu)數(shù)據(jù)198、姿勢識(shí)別引擎190、深度圖像處理和對象報(bào)告模塊194以及操作系統(tǒng)196。深度圖像處理和對象報(bào)告模塊194使用深度圖像來跟蹤諸如用戶和其他對象等對象的運(yùn)動(dòng)。為了幫助跟蹤對象,深度圖像處理和對象報(bào)告模塊 194使用姿勢庫190、結(jié)構(gòu)數(shù)據(jù)198和姿勢識(shí)別引擎190。結(jié)構(gòu)數(shù)據(jù)198包括關(guān)于可被跟蹤的對象的結(jié)構(gòu)信息。例如,可以存儲(chǔ)人類的骨架模型以幫助理解用戶的移動(dòng)并識(shí)別身體部位。還可以存儲(chǔ)關(guān)于非生命對象的結(jié)構(gòu)信息以幫助識(shí)別這些對象并幫助理解移動(dòng)。姿勢庫192可包括姿勢過濾器的集合,每一姿勢過濾器包括和骨架模型可執(zhí)行 (在用戶移動(dòng)時(shí))的姿勢有關(guān)的信息。姿勢識(shí)別引擎190可將由相機(jī)36、38和設(shè)備20捕捉的骨架模型以及與其相關(guān)聯(lián)的移動(dòng)形式的數(shù)據(jù)與姿勢庫192中的姿勢過濾器進(jìn)行比較來標(biāo)識(shí)用戶(如骨架模型所表示的)何時(shí)執(zhí)行了一個(gè)或多個(gè)姿勢。那些姿勢可與應(yīng)用的各種控制相關(guān)聯(lián)。因此,計(jì)算系統(tǒng)12可使用姿勢庫190來解釋骨架模型的移動(dòng)并基于該移動(dòng)來控制操作系統(tǒng)196或應(yīng)用(未示出)。在一個(gè)實(shí)施例中,深度圖像處理和對象報(bào)告模塊194會(huì)將檢測到的每一對象的標(biāo)識(shí)以及每一幀對象的位置報(bào)告給操作系統(tǒng)196。操作系統(tǒng)196將使用該信息來更新顯示畫面中的化身或其他圖像的位置或移動(dòng),或在所提供的用戶界面上執(zhí)行動(dòng)作。關(guān)于識(shí)別器引擎190的更多信息可在2009年4月13日提交的美國專利申請 12/422, 661 Gesture Recognizer System Architecture (姿勢識(shí)別器系統(tǒng)架構(gòu))”中找到, 該申請通過整體引用合并于此。關(guān)于識(shí)別姿勢的更多信息可在2009年2月23日提交的美國專利申請12/391,150 Standard Gestures (標(biāo)準(zhǔn)姿勢)”;以及2009年5月29日提交的美國專利申請12/474,655 Gesture Tool (姿勢工具)”中找到,這兩個(gè)申請通過整體引用結(jié)合于此。關(guān)于運(yùn)動(dòng)檢測和跟蹤的更多信息可在2009年12月18日提交的美國專利申請 12/641, 788 Motion Detection Using Depth Images (使用深度圖像的運(yùn)動(dòng)檢測)”;以及美國專禾Ij 串i青 12/475,308 Device for Identifying and Tracking Multiple Humans over Time (用于隨時(shí)間標(biāo)識(shí)和跟蹤多個(gè)人類的設(shè)備),,中找到,這兩個(gè)申請通過整體引用合并于此。圖3示出了可用于實(shí)現(xiàn)圖1A-2的計(jì)算環(huán)境12的計(jì)算環(huán)境100的示例。圖3的計(jì)算環(huán)境100可以是諸如游戲控制臺(tái)等多媒體控制臺(tái)100。如圖3所示,多媒體控制臺(tái)100具有含有一級高速緩存102、二級高速緩存104和閃存ROM(只讀存儲(chǔ)器)106的中央處理單元 (CPU) 101。一級高速緩存102和二級高速緩存104臨時(shí)性地存儲(chǔ)數(shù)據(jù)并因此減少存儲(chǔ)器訪問周期數(shù),由此改進(jìn)處理速度和吞吐量。CPU 101可以設(shè)置成具有一個(gè)以上的核,以及由此的附加的一級和二級高速緩存102和104。閃存ROM 106可存儲(chǔ)在當(dāng)多媒體控制臺(tái)100通電時(shí)的引導(dǎo)過程的初始階段期間加載的可執(zhí)行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速且高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線向A/V(音頻/視頻)端口 140輸出數(shù)據(jù),以便傳輸?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控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外圍控制器142 (1)-142 (2)、無線適配器148、和外置存儲(chǔ)器設(shè)備146(例如閃存、外置⑶/DVD ROM驅(qū)動(dòng)器、可移動(dòng)介質(zhì)等) 的主機(jī)。網(wǎng)絡(luò)接口 1 和/或無線適配器148提供對網(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)過程期間加載的應(yīng)用數(shù)據(jù)。提供了介質(zhì)驅(qū)動(dòng)器 144,其可以包括DVD/CD驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器,或其他可移動(dòng)介質(zhì)驅(qū)動(dòng)器等等。介質(zhì)驅(qū)動(dòng)器 144可以是多媒體控制臺(tái)100內(nèi)部或外部的。應(yīng)用數(shù)據(jù)可經(jīng)由介質(zhì)驅(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形成具有高保真度和立體聲處理的相應(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āng)導(dǎo)航到多媒體控制臺(tái)100上可用的不同媒體類型時(shí)提供一致的用戶體驗(yàn)。在操作中,介質(zhì)驅(qū)動(dòng)器144中包含的應(yīng)用和/或其它媒體可從介質(zhì)驅(qū)動(dòng)器144啟動(dòng)或播放,以向多媒體控制臺(tái)100提供附加功能。多媒體控制臺(tái)100可通過將該系統(tǒng)簡單地連接到電視機(jī)或其它顯示器而作為獨(dú)立系統(tǒng)來操作。在該獨(dú)立模式中,多媒體控制臺(tái)100允許一個(gè)或多個(gè)用戶與該系統(tǒng)交互、看電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 1 或無線適配器148可用的寬帶連接的集成,多媒體控制臺(tái)100還可作為較大網(wǎng)絡(luò)社區(qū)中的參與者來操作。當(dāng)多媒體控制臺(tái)100通電時(shí),可以保留設(shè)定量的硬件資源以供多媒體控制臺(tái)操作系統(tǒng)作系統(tǒng)使用。這些資源可包括預(yù)留存儲(chǔ)器(例如,16MB)、CPU和GPU周期(例如,5% )、 網(wǎng)絡(luò)帶寬(例如,SlAs)等等。因?yàn)檫@些資源是在系統(tǒng)引導(dǎo)時(shí)保留的,所以所保留的資源對應(yīng)用而言是不存在的。具體地,存儲(chǔ)器保留量較佳地足夠大,以包含啟動(dòng)內(nèi)核、并發(fā)系統(tǒng)應(yīng)用和驅(qū)動(dòng)程序。CPU保留量較佳地為恒定,使得若所保留的CPU用量不被系統(tǒng)應(yīng)用使用,則空閑線程將消耗任何未使用的周期。對于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( )由游戲應(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è)備。圖4示出了可用于實(shí)現(xiàn)圖1A-2所示的計(jì)算環(huán)境52的計(jì)算環(huán)境220的另一示例。 計(jì)算系統(tǒng)環(huán)境220只是合適的計(jì)算環(huán)境的一個(gè)示例,并且不旨在對所公開的主題的使用范圍或功能提出任何限制。也不應(yīng)該將計(jì)算環(huán)境220解釋為對示例性操作環(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)程。因此,對于硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是設(shè)計(jì)選擇并留給實(shí)現(xiàn)者。
在圖4中,計(jì)算環(huán)境220包括通常包括各種計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)Ml。計(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) 2600基本輸入/輸出系統(tǒng) 224 (BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)Ml內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM 223中。RAM 260通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖4示出了操作系統(tǒng)225、應(yīng)用程序226、其它程序模塊227和程序數(shù)據(jù)228。計(jì)算機(jī)241還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例,圖4示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動(dòng)器 238,從可移動(dòng)、非易失性磁盤邪4中讀取或向其寫入的磁盤驅(qū)動(dòng)器239,以及從諸如⑶ROM 或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤253中讀取或向其寫入的光盤驅(qū)動(dòng)器M0??梢栽谑纠圆僮鳝h(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。上文討論并在圖4中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)241提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖4中,硬盤驅(qū)動(dòng)器238被示為存儲(chǔ)操作系統(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 和定點(diǎn)設(shè)備252(通常被稱為鼠標(biāo)、跟蹤球或觸摸板)向計(jì)算機(jī)Ml輸入命令和信息。其他輸入設(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ī)M3,它們可以通過輸出外圍接口 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、對等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面相對于計(jì)算機(jī)241所描述的許多或所有元件,但在圖4中只示出存儲(chǔ)器存儲(chǔ)設(shè)備M7。圖2中所示的邏輯連接包括局域網(wǎng)(LAN)245 和廣域網(wǎng)(WAN) M9,但也可以包括其它網(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ò)接口或適配器237連接至LAN 2450當(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)置或外置的,它可以通過用戶輸入接口 236或其他適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線221。在聯(lián)網(wǎng)環(huán)境中,相對于計(jì)算機(jī) 241所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制, 圖4示出了遠(yuǎn)程應(yīng)用程序248駐留在存儲(chǔ)器設(shè)備247上。能夠理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。圖5是描述在一個(gè)實(shí)施例中可由跟蹤系統(tǒng)10執(zhí)行的對用戶界面的姿勢控制的過程的一個(gè)實(shí)施例的流程圖。在步驟302,捕捉設(shè)備20的處理器42從圖像捕捉組件32接收視覺圖像和深度圖像。在其他實(shí)施例中,在步驟302僅接收深度圖像。深度圖像和視覺圖像可由圖像捕捉組件32中的任何傳感器或本領(lǐng)域中已知的其他適合的傳感器來捕捉。在一個(gè)實(shí)施例中,深度圖像與視覺圖像是分開被捕捉的。在某些實(shí)現(xiàn)中,深度圖像和視覺圖像是同時(shí)被捕捉的,而在其他實(shí)現(xiàn)中,它們是順序地或在不同時(shí)刻被捕捉的。在其他實(shí)施例中,深度圖像是與視覺圖像一起被捕捉的,或者與視覺圖像組合成一個(gè)圖像文件,使得每個(gè)像素具有R值、G值、B值和Z值(表示距離)。在步驟304,確定對應(yīng)于視覺圖像和深度圖像的深度信息。可分析在步驟302接收到的視覺圖像和深度圖像來確定圖像內(nèi)的一個(gè)或多個(gè)目標(biāo)的深度值。捕捉設(shè)備20可捕捉或觀察可包括一個(gè)或多個(gè)目標(biāo)的捕捉區(qū)域。在步驟306,捕捉設(shè)備確定深度圖像是否包括人類目標(biāo)。在一個(gè)示例中,可對深度圖像中的每一目標(biāo)進(jìn)行泛色填充并將其與一圖案進(jìn)行比較來確定該深度圖像是否包括人類目標(biāo)。在一個(gè)示例中,可確定深度圖像的被捕捉的場景中的每個(gè)目標(biāo)的邊緣。深度圖像可包括被捕捉的場景的二維像素區(qū)域,該2D像素區(qū)域中的每個(gè)像素可表示諸如可從相機(jī)測量的長度或距離之類的深度值??梢酝ㄟ^將與例如深度圖像的相鄰或鄰近的像素相關(guān)聯(lián)的各種深度值進(jìn)行比較來確定邊緣。如果正被比較的各種深度值大于預(yù)定邊容差,則這些像素可定義一條邊緣。捕捉設(shè)備可將包括深度圖像的所計(jì)算的深度信息組織成“Z層”,或可垂直于沿著其視線從相機(jī)延伸到觀察者的Z軸的各層??苫谒_定的邊緣來對Z個(gè)層的可能的Z個(gè)值進(jìn)行泛色填充。例如,與所確定的邊緣相關(guān)聯(lián)的像素以及所確定的邊緣內(nèi)的區(qū)域的像素可互相關(guān)聯(lián)來定義捕捉區(qū)域中的目標(biāo)或?qū)ο?。在步驟308,捕捉設(shè)備掃描人類目標(biāo)以尋找一個(gè)或多個(gè)身體部位??梢話呙枞祟惸繕?biāo)來提供與用戶的一個(gè)或多個(gè)身體部位相關(guān)聯(lián)的諸如長度、寬度等的度量,使得可基于這些度量來生成該用戶的準(zhǔn)確模型。在一個(gè)示例中,人類目標(biāo)是被隔離的,且創(chuàng)建位掩模來掃描一個(gè)或多個(gè)身體部位。該位掩??赏ㄟ^例如對人類目標(biāo)進(jìn)行泛色填充,使得該人類目標(biāo)與捕捉區(qū)域元素中的其他目標(biāo)或?qū)ο蠓蛛x來創(chuàng)建。在步驟310,基于步驟308執(zhí)行的掃描來生成人類目標(biāo)的模型??煞治鲈撐谎谀韺ふ乙粋€(gè)或多個(gè)身體部位,以生成諸如人類目標(biāo)的骨架模型、網(wǎng)格人類模型等模型。例如,可使用由所掃描的位掩模確定的度量值來定義骨架模型中的一個(gè)或多個(gè)關(guān)節(jié)。位掩??砂ㄈ祟惸繕?biāo)沿X、Y和Z軸的值。該一個(gè)或多個(gè)關(guān)節(jié)可用于定義可對應(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ū)挾确秶?。在另一?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è)身體部位。然后可以對為每一幀所確定的身體部位的值求平均, 從而使得該數(shù)據(jù)結(jié)構(gòu)可包括諸如與每一幀的掃描相關(guān)聯(lián)的身體部位的諸如長度、寬度等的平均度量值。根據(jù)一個(gè)實(shí)施例,可調(diào)整所確定的身體部位的度量值,如放大、縮小等,使得數(shù)據(jù)結(jié)構(gòu)中的度量值更接近地對應(yīng)于人類身體的典型模型。在步驟310,可使用由所掃描的位掩模確定的度量值來定義骨架模型中的一個(gè)或多個(gè)關(guān)節(jié)。在步驟312,使用骨架映射跟蹤步驟310中創(chuàng)建的模型。例如,可在用戶在視野內(nèi)在相機(jī)前的物理空間中移動(dòng)時(shí)調(diào)整和更新用戶18的骨架模型。來自捕捉設(shè)備的信息可用于調(diào)整模型,使得骨架模型準(zhǔn)確地表示用戶。在一個(gè)示例中,這是通過向該骨架模型的一個(gè)或多個(gè)受力方面施加一個(gè)或多個(gè)力,以將該骨架模型調(diào)整成更接近地對應(yīng)于物理空間中人類目標(biāo)的姿態(tài)的姿態(tài)來實(shí)現(xiàn)的。在步驟314,從接收自捕捉設(shè)備的深度圖像和視覺圖像捕捉運(yùn)動(dòng)。在一個(gè)實(shí)施例中,如將在下文更詳細(xì)地描述的,在步驟314捕捉運(yùn)動(dòng)包括基于骨架映射生成運(yùn)動(dòng)捕捉文件。在步驟316,確定并應(yīng)用用戶界面上下文。UI上下文可以是涉及計(jì)算環(huán)境12所呈現(xiàn)的不同環(huán)境的環(huán)境上下文。例如,在運(yùn)行在計(jì)算機(jī)設(shè)備12上的單個(gè)應(yīng)用的不同環(huán)境之間可能有不同的上下文。例如,第一人稱射擊游戲可涉及操作對應(yīng)于第一上下文的機(jī)動(dòng)車。該游戲還可涉及控制步行的游戲人物,這可對應(yīng)于第二上下文。在第一上下文操作車輛的同時(shí),移動(dòng)或姿勢可表示第一功能或第一組功能,而在作為步行的第二上下文中,相同的運(yùn)動(dòng)或姿勢可代表不同的功能。例如,在步行上下文中在身前將拳頭伸出離開身體可代表揮拳, 而在駕駛上下文中,相同的運(yùn)動(dòng)可代表換擋姿勢。此外,上下文可對應(yīng)于一個(gè)或多個(gè)菜單環(huán)境,其中用戶可保存游戲、在人物裝備之間選擇或執(zhí)行類似的不包括直接玩游戲的動(dòng)作。在該環(huán)境或上下文中,相同的姿勢可具有第三含義,例如選擇某樣?xùn)|西、或前進(jìn)到另一屏幕、 或從當(dāng)前屏幕返回、或在當(dāng)前屏幕上放大或縮小。步驟316可包括確定并應(yīng)用一個(gè)以上的 UI上下文。例如,在兩個(gè)用戶正在與捕捉設(shè)備和計(jì)算環(huán)境交互的情況下,UI上下文可包括用于第一用戶的第一上下文和用于第二用戶的第二上下文。在該示例中,上下文可包括用戶扮演的角色,例如一個(gè)用戶是駕駛員而另一個(gè)用戶例如是射手。在步驟318,確定活動(dòng)姿勢集的姿勢過濾器。步驟318可基于步驟316中確定的 UI上下文或多個(gè)上下文來執(zhí)行。例如,當(dāng)在菜單上下文中操作時(shí),第一組姿勢可以是活動(dòng)的,而在玩游戲上下文中時(shí),另一組姿勢可以是活動(dòng)的。在步驟320,執(zhí)行姿勢識(shí)別。跟蹤模型和捕捉的運(yùn)動(dòng)通過活動(dòng)姿勢集的過濾器,以確定是否滿足任何活動(dòng)姿勢過濾器。在步驟 322,在計(jì)算環(huán)境內(nèi)應(yīng)用任何檢測出的姿勢,以控制計(jì)算環(huán)境12提供的用戶界面。在一個(gè)實(shí)施例中,步驟316-322是由計(jì)算設(shè)備12執(zhí)行的。此外,盡管步驟302-314 被描述為由捕捉設(shè)備20執(zhí)行,但這些步驟中的各個(gè)步驟可由諸如計(jì)算環(huán)境12之類的其他組件來執(zhí)行。例如,捕捉設(shè)備20可向計(jì)算環(huán)境12提供視覺和/或深度圖像,計(jì)算環(huán)境12接著將確定深度信息,檢測人類目標(biāo),掃描目標(biāo),生成并跟蹤模型,以及捕捉人類目標(biāo)的運(yùn)動(dòng)。圖6示出表示可在圖5的步驟310生成的掃描的人類目標(biāo)的骨架模型或映射330 的示例。根據(jù)一個(gè)實(shí)施例,骨架模型330可包括可將人類目標(biāo)表示為三維模型的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。每個(gè)身體部位可被表征為定義骨架模型330的關(guān)節(jié)和骨骼的數(shù)學(xué)矢量。骨架模型330包括關(guān)節(jié)nl-nl8。關(guān)節(jié)nl-nl8中的每一個(gè)可使得在這些關(guān)節(jié)之間定義的一個(gè)或多個(gè)身體部位能相對于一個(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ú)立地或彼此相對地移動(dòng)。例如,關(guān)節(jié)n7與nil之間定義的骨骼對應(yīng)于前臂,該前臂可獨(dú)立于例如關(guān)節(jié)nl5與nl7之間定義的骨骼——其對應(yīng)于小腿——移動(dòng)??梢岳斫?,某些骨骼可對應(yīng)于人類目標(biāo)中的解剖學(xué)骨骼,和/或某些骨骼可能不具有人類目標(biāo)中的對應(yīng)的解剖學(xué)骨骼。骨骼和關(guān)節(jié)可共同構(gòu)成骨架模型,其可以是該模型的構(gòu)成元素。軸向滾動(dòng)角可用于相對于其父肢和/或軀干來定義肢的旋轉(zhuǎn)定向。例如,如果骨架模型示出手臂的軸向旋轉(zhuǎn),則可使用滾動(dòng)關(guān)節(jié)來指示相關(guān)聯(lián)的腕所指向的方向(例如,手掌向上)。通過檢查肢的相對于其父肢和/或軀干的定向,可確定軸向滾動(dòng)角。例如,如果正在檢查小腿,則可檢查小腿的相對于相關(guān)聯(lián)的大腿和髖部的定向來確定軸向滾動(dòng)角。圖7是描述使用包括深度相機(jī)的一個(gè)或多個(gè)捕捉設(shè)備捕捉運(yùn)動(dòng)并跟蹤捕捉設(shè)備的視野內(nèi)的目標(biāo)來控制用戶界面的過程的一個(gè)實(shí)施例的流程圖。在一個(gè)示例中,圖7提供了用于如圖5的步驟312和314所執(zhí)行的跟蹤模型以及捕捉運(yùn)動(dòng)的更詳細(xì)的內(nèi)容。在步驟352,確定視野中的人類目標(biāo)的用戶身份。步驟352是可任選的。在一個(gè)示例中,步驟352可使用面部識(shí)別來將來自接收到的視覺圖像的用戶的臉與參考視覺圖像相關(guān)。在另一示例中,確定用戶ID可包括接收來自用戶的標(biāo)識(shí)他們的ID的輸入。例如,可由計(jì)算機(jī)環(huán)境12存儲(chǔ)用戶簡檔,并且用戶可作出屏幕上選擇以將他們自己標(biāo)識(shí)為對應(yīng)于該用戶簡檔??墒褂糜糜诖_定用戶的ID的其他示例。在步驟354,確定所標(biāo)識(shí)的用戶的技能等級。步驟3M是可任選的。在一個(gè)示例中,確定技能等級包括訪問計(jì)算環(huán)境中與用戶簡檔一起存儲(chǔ)的技能等級。在另一示例中,步驟邪4是通過檢查用戶與計(jì)算環(huán)境的交互而動(dòng)態(tài)執(zhí)行的。例如,通過分析用戶的移動(dòng),可使用姿勢和控制應(yīng)用或用戶界面的能力來建立技能等級。該過程可以是動(dòng)態(tài)的,且可在用戶與系統(tǒng)交互時(shí)定期地或持續(xù)地被更新。在一個(gè)示例中,如將在下文中描述的那樣,用戶的身份和技能等級可被用于調(diào)整姿勢過濾器。為了跟蹤用戶的運(yùn)動(dòng),利用目標(biāo)的身體部位的骨架映射。在步驟356,訪問由步驟 308和310處掃描人類目標(biāo)以及生成模型而產(chǎn)生的身體部位i。在步驟358,在X、Y、Z空間中計(jì)算該身體部位的位置,以創(chuàng)建相機(jī)視野內(nèi)該身體部位的三維位置表示。在步驟360,根據(jù)該位置計(jì)算該身體部位的移動(dòng)的方向。方向性移動(dòng)可在Χ、Υ和Z方向的任何一個(gè)或其組合中具有分量。在步驟362,確定該身體部位的移動(dòng)速度。在步驟364,計(jì)算該身體部位的加速度。在步驟366,確定在Χ、Υ、Ζ空間中該身體部位的移動(dòng)的曲率,以例如表示身體部位在捕捉區(qū)域內(nèi)的非線性移動(dòng)。速度、加速度和曲率計(jì)算并不取決于方向。注意,步驟358至 366僅是可對用戶的移動(dòng)的骨架映射執(zhí)行的計(jì)算的示例。在其他實(shí)施例中,可執(zhí)行附加的計(jì)算或可執(zhí)行比圖7所示的全部計(jì)算少的計(jì)算。在步驟368,跟蹤系統(tǒng)確定是否有更多的步驟308的掃描所標(biāo)識(shí)的身體部位。如果掃描中有額外的身體部位,在步驟370處i被設(shè)置為i+Ι,且方法返回到步驟356以訪問來自掃描的圖像的下一身體部位。對X、Y、Z笛卡爾映射的使用僅僅是作為示例提供的。在其他實(shí)施例中,可使用不同的坐標(biāo)映射系統(tǒng)來計(jì)算移動(dòng)、速度和加速度。當(dāng)檢查實(shí)際上繞關(guān)節(jié)旋轉(zhuǎn)的身體部位的移動(dòng)時(shí),例如球面坐標(biāo)映射可能是有用的。一旦在步驟370確定已經(jīng)分析了掃描中的全部身體部位,則在步驟374為目標(biāo)生成或更新運(yùn)動(dòng)捕捉文件。目標(biāo)識(shí)別分析和跟蹤系統(tǒng)可呈現(xiàn)并存儲(chǔ)可包括諸如姿勢運(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)捕捉文件可包括對應(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í)行了對應(yīng)于所跟蹤的模型的姿態(tài)的移動(dòng)的時(shí)間點(diǎn)。在步驟376,如果有保證的話,系統(tǒng)調(diào)整被跟蹤和建模的特定用戶的姿勢設(shè)置。姿勢設(shè)置可基于在步驟352和3M確定的信息以及對步驟356至366執(zhí)行的身體部位和骨架映射獲得的信息來調(diào)整。在一個(gè)具體示例中,如果用戶有困難完成一個(gè)或多個(gè)姿勢,則系統(tǒng)可例如通過接近但不滿足姿勢識(shí)別的閾值要求的參數(shù)來識(shí)別該情況。在這一情況下,調(diào)整姿勢設(shè)置可包括放寬該特定姿勢的一個(gè)或多個(gè)姿勢過濾器中所標(biāo)識(shí)的用于執(zhí)行該姿勢的約束。類似地,如果用戶顯露出高的技能等級,則可調(diào)整姿勢過濾器來將移動(dòng)約束到更為精確的重現(xiàn),使得可避免假肯定。換言之,通過使有技能的用戶的約束更加嚴(yán)格,則在并沒有意圖任何姿勢時(shí)系統(tǒng)將更不可能會(huì)將移動(dòng)錯(cuò)誤地標(biāo)識(shí)為姿勢。在一個(gè)實(shí)施例中,如下所述的運(yùn)動(dòng)捕捉文件可被應(yīng)用于化身或游戲人物或用戶界面。例如,目標(biāo)識(shí)別、分析和跟蹤系統(tǒng)可將運(yùn)動(dòng)捕捉文件中捕捉的所跟蹤的模型的一個(gè)或多個(gè)運(yùn)動(dòng)應(yīng)用于化身或游戲人物,使得可對該化身或游戲人物制作動(dòng)畫來模擬諸如以上參考圖IA和IB描述的用戶18等用戶執(zhí)行的運(yùn)動(dòng)。在另一示例中,系統(tǒng)可基于所跟蹤的模型的滿足一個(gè)或多個(gè)姿勢過濾器的一個(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é)可被映射到化身或游戲人物的右肘。然后可對右肘制作動(dòng)畫以在運(yùn)動(dòng)捕捉文件的每個(gè)幀中模擬與用戶的模型相關(guān)聯(lián)的右肘的動(dòng)作,或可將右肘的移動(dòng)傳遞給姿勢過濾器以確定是否滿足了對應(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)用于化身、游戲人物或用戶界面,使得可對該化身或游戲人物制作動(dòng)畫來立即模擬該幀中捕捉的運(yùn)動(dòng)。類似地,系統(tǒng)可在運(yùn)動(dòng)被確定為滿足一個(gè)或多個(gè)姿勢過濾器時(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)或諸如下述的按壓或掃視姿勢之類的運(yùn)動(dòng)可由用戶執(zhí)行并被捕捉和存儲(chǔ)在運(yùn)動(dòng)捕捉文件中。可在例如每次用戶隨后執(zhí)行被識(shí)別為與諸如行走運(yùn)動(dòng)或按壓運(yùn)動(dòng)等運(yùn)動(dòng)相關(guān)聯(lián)的控制的姿勢時(shí),將運(yùn)動(dòng)應(yīng)用于該化身、游戲人物或用戶界面。系統(tǒng)可包括姿勢識(shí)別,使得用戶可通過執(zhí)行一個(gè)或多個(gè)姿勢來控制在計(jì)算環(huán)境 12(如上所述可以是游戲控制臺(tái)、計(jì)算機(jī)等)上執(zhí)行的應(yīng)用或操作系統(tǒng)。在一個(gè)實(shí)施例中, 姿勢識(shí)別器引擎(其架構(gòu)在以下更完全描述)用于從用戶的骨架模型確定用戶何時(shí)作出了某一姿勢。用戶可通過移動(dòng)他的身體創(chuàng)建姿勢。姿勢包括用戶的運(yùn)動(dòng)或姿態(tài),其可被捕捉為圖像數(shù)據(jù)并解析其意義。姿勢可以是動(dòng)態(tài)的,包括運(yùn)動(dòng),如模仿扔球。姿勢可以是靜態(tài)姿態(tài), 如在一個(gè)人的軀干前面交叉握住他的前臂。姿勢也可包含道具,如通過揮動(dòng)仿制的劍。姿勢可包括多于一個(gè)身體部位,如拍雙手402,或是較微小的運(yùn)動(dòng),如撅起一個(gè)人的嘴唇。姿勢可用于一般計(jì)算上下文中的輸入。例如,手或其他身體部位的各種運(yùn)動(dòng)可對應(yīng)于常見的系統(tǒng)級任務(wù),如在分層菜單結(jié)構(gòu)中向上或向下導(dǎo)航、在菜單列表中滾動(dòng)項(xiàng)目、打開文件、關(guān)閉文件和保存文件。姿勢也可在視頻游戲?qū)S蒙舷挛闹腥Q于游戲來使用。例如,對于駕駛游戲,手和腳的各種運(yùn)動(dòng)可對應(yīng)于在一方向上操控車輛、換擋、加速和剎車。圖8提供了圖2的姿勢識(shí)別器引擎190的一個(gè)示例性實(shí)施例的進(jìn)一步細(xì)節(jié)。如圖所示,姿勢識(shí)別器引擎190可包括至少一個(gè)過濾器450來確定一個(gè)或多個(gè)姿勢。過濾器450 包括定義姿勢452(以下稱為“姿勢”)以及該姿勢的元數(shù)據(jù)454的參數(shù)。過濾器可包括可識(shí)別姿勢或以其他方式處理深度、RGB或骨架數(shù)據(jù)的代碼和相關(guān)聯(lián)的數(shù)據(jù)。例如,包括一只手從身體背后越過身體前方的運(yùn)動(dòng)的投擲可被實(shí)現(xiàn)為包括表示用戶的一只手從身體背后越過身體前方的運(yùn)動(dòng)的信息的姿勢452,該移動(dòng)將由深度相機(jī)來捕捉。然后可為該姿勢452 設(shè)定參數(shù)454。在姿勢452是投擲的情況下,參數(shù)妨4可以是該手必須達(dá)到的閾值速度、該手必須行進(jìn)的距離(絕對的,或相對于用戶的整體大小)、以及識(shí)別器引擎對發(fā)生姿勢的置信評級。用于姿勢452的這些參數(shù)妨4可以在各應(yīng)用之間、在單個(gè)應(yīng)用的各上下文之間、或在一個(gè)應(yīng)用的一個(gè)上下文內(nèi)隨著時(shí)間變化。姿勢參數(shù)可包括閾值角度(例如髖部-大腿角度、前臂-二頭肌角度等)、運(yùn)動(dòng)發(fā)生或不發(fā)生的周期數(shù)、閾值周期、閾值位置(開始、結(jié)束)、移動(dòng)方向、速度、加速度、移動(dòng)的坐標(biāo)等。
過濾器可包括可識(shí)別姿勢或以其他方式處理深度、RGB或骨架數(shù)據(jù)的代碼和相關(guān)聯(lián)的數(shù)據(jù)。過濾器可以是模塊化的或是可互換的。在一個(gè)實(shí)施例中,過濾器具有多個(gè)輸入, 這些輸入中的每一個(gè)具有一類型;以及多個(gè)輸出,這些輸出中的每一個(gè)具有一類型。在這一情形中,第一過濾器可用具有與第一過濾器相同數(shù)量和類型的輸入和輸出的第二過濾器來替換而不更改識(shí)別器引擎體系結(jié)構(gòu)的其他方面。例如,可以有用于駕駛的第一過濾器,該第一過濾器取骨架數(shù)據(jù)作為輸入并輸出與該過濾器相關(guān)聯(lián)的姿勢正在發(fā)生的置信度以及轉(zhuǎn)向角。在希望用第二駕駛過濾器來替換該第一駕駛過濾器的情況下——這可能是因?yàn)榈诙{駛過濾器更高效且需要更少的處理資源——?jiǎng)t可以通過簡單地用第二過濾器替換第一過濾器來這樣做,只要第二過濾器具有相同的輸入和輸出一骨架數(shù)據(jù)類型的一個(gè)輸入,以及置信度類型和角度類型的兩個(gè)輸出。過濾器不需要具有參數(shù)。例如,返回用戶的高度的“用戶高度”過濾器可能不允許任何可調(diào)節(jié)的參數(shù)。替換的“用戶高度”過濾器可具有可調(diào)節(jié)參數(shù),如在確定用戶的高度時(shí)是否考慮用戶的鞋、發(fā)型、頭飾以及體態(tài)。對過濾器的輸入可包括諸如關(guān)于用戶的關(guān)節(jié)位置的關(guān)節(jié)數(shù)據(jù)、如在關(guān)節(jié)處相交的骨骼所形成的角度、來自捕捉區(qū)域的RGB色彩數(shù)據(jù)、以及用戶的一方面的變化率等內(nèi)容。來自過濾器的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運(yùn)動(dòng)的速度、以及作出姿勢運(yùn)動(dòng)的時(shí)間等內(nèi)容。姿勢識(shí)別器引擎190可具有向姿勢過濾器450提供功能的基礎(chǔ)識(shí)別器引擎456。在一實(shí)施例中,基本識(shí)別器引擎456實(shí)現(xiàn)的功能包括跟蹤所識(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í)例所需的其他功能。過濾器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)只需被處理一次而不是對該時(shí)間段對每一過濾器450處理一次,因此減少了確定姿勢所需的處理。應(yīng)用程序可使用識(shí)別器引擎190所提供的過濾器450,或者它可提供其自己的過濾器450,該過濾器被插入到基礎(chǔ)識(shí)別器引擎456中。在一實(shí)施例中,所有過濾器450具有啟用該插入特性的通用接口。此外,所有過濾器450可利用參數(shù)454,因此可使用如下所述的單個(gè)姿勢工具來診斷并調(diào)節(jié)整個(gè)過濾器系統(tǒng)。這些參數(shù)4M可由姿勢工具為應(yīng)用或應(yīng)用的上下文來調(diào)節(jié)。有各種可以與姿勢相關(guān)聯(lián)的輸出。在一個(gè)示例中,可以有關(guān)于姿勢是否正在發(fā)生的基線“是或否”。在另一個(gè)示例中,還可以有置信水平,其對應(yīng)于用戶的被跟蹤的移動(dòng)對應(yīng)于姿勢的可能性。這可以是范圍為0和1之間(包括端點(diǎn))的浮點(diǎn)數(shù)的線性標(biāo)度。在接收該姿勢信息的應(yīng)用不能接受假肯定作為輸入的情況下,它可僅使用具有高置信水平,如至少.95的那些已識(shí)別的姿勢。在應(yīng)用必須識(shí)別姿勢的每一實(shí)例、甚至是以假肯定為代價(jià)的情況下,它可使用至少具有低得多的置信水平的姿勢,如僅僅大于.2的那些姿勢。姿勢可具有關(guān)于兩個(gè)最近步之間的時(shí)間的輸出,并且在僅注冊第一步的情況下,這可被設(shè)為保留值,如-1 (因?yàn)槿魏蝺刹街g的時(shí)間必須為正)。姿勢也可具有關(guān)于在最近一步期間達(dá)到的最高大腿角的輸出。姿勢或其一部分可具有它必須在其中發(fā)生的空間體來作為參數(shù)。在姿勢包括身體移動(dòng)的情況下,該空間體通??上鄬τ谏眢w來表達(dá)。例如,對于慣用右手的用戶的橄欖球投擲姿勢可僅在不低于右肩410a、且與投擲手臂4(^a-410a在頭422的相同側(cè)的空間體中識(shí)別??赡懿槐匾x空間體的所有邊界,如對于該投擲姿勢,其中從身體向外的邊界留著不被定義,并且該空間體無限地向外延伸,或者延伸到正被監(jiān)視的捕捉區(qū)域的邊緣。圖9A-9B描繪了從堆疊的姿勢或過濾器創(chuàng)建的更復(fù)雜的姿勢或過濾器450。姿勢可堆疊在彼此之上。即,用戶一次可表達(dá)多于一個(gè)的姿勢。例如,并非在作出投擲姿勢時(shí)不允許除了投擲之外的任何輸入,或要求用戶除了該姿勢的分量之外保持不動(dòng)(例如,在作出僅涉及一條手臂的投擲姿勢時(shí)站著不動(dòng))。在姿勢堆疊時(shí),用戶可同時(shí)作出跳躍姿勢和投擲姿勢,并且這兩個(gè)姿勢都將被姿勢引擎識(shí)別出。圖9A描繪了根據(jù)堆疊范例的簡單姿勢過濾器450。I過濾器502是可在每一姿勢過濾器中使用的基本過濾器。I過濾器(IFilter) 502取用戶位置數(shù)據(jù)504,并輸出姿勢已發(fā)生的置信水平506。它還將該位置數(shù)據(jù)504饋入方向盤(SteeringWheel)過濾器508,該過濾器508取該位置數(shù)據(jù)作為輸入,并輸出用戶正在轉(zhuǎn)向的角度(例如,向用戶當(dāng)前方向右側(cè) 40 度)510。圖9B描繪了將過濾器450堆疊到圖9A的姿勢過濾器上的更復(fù)雜的姿勢。除了 I 過濾器502和方向盤508之外,還存在I跟蹤(ITracking)過濾器512,該過濾器518接收來自I過濾器502的位置數(shù)據(jù)504,并輸出用戶通過姿勢518所作出的進(jìn)展量。I跟蹤512 還將位置數(shù)據(jù)504饋送到潤滑油減輕(GreaseLightning)516和E剎車518,這些是關(guān)于可在操作車輛時(shí)如使用緊急剎車作出的其他姿勢的過濾器。圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例的描述用于姿勢識(shí)別的過程的一個(gè)實(shí)施例的流程圖。圖10描述了一種基于規(guī)則的方法,用于由姿勢識(shí)別引擎190應(yīng)用一個(gè)或多個(gè)姿勢過濾器以確定某一姿勢的參數(shù)是否被滿足。將理解盡管在該具體示例中描述了單個(gè)姿勢的檢測,但是圖10的過程可多次執(zhí)行以檢測活動(dòng)姿勢集中的多個(gè)姿勢。所描述的過程可對多個(gè)活動(dòng)姿勢并行或順序地執(zhí)行。在步驟602,姿勢識(shí)別引擎訪問某一目標(biāo)的骨架跟蹤數(shù)據(jù)以開始確定該目標(biāo)是否執(zhí)行了選擇的姿勢。在一個(gè)示例中,可從運(yùn)動(dòng)捕捉文件訪問骨架跟蹤數(shù)據(jù)。在步驟604,姿勢識(shí)別引擎為與所選擇的姿勢過濾器中標(biāo)識(shí)的選擇的姿勢有關(guān)的一個(gè)或多個(gè)預(yù)先確定的身體部位過濾骨架跟蹤數(shù)據(jù)。步驟604可包括僅訪問與所選擇的姿勢有關(guān)的數(shù)據(jù),或訪問目標(biāo)的全部骨架跟蹤數(shù)據(jù)并忽略或丟棄不與所選擇的姿勢有關(guān)的信息。例如,手按壓姿勢 (下述)過濾器可指示出僅人類目標(biāo)的手與所選擇的姿勢有關(guān),使得可忽略與其他身體部位有關(guān)的數(shù)據(jù)。這種技術(shù)可通過將處理限于被預(yù)先確定為對所選擇的姿勢是顯著的信息來增加姿勢識(shí)別引擎的性能。在步驟606,姿勢識(shí)別引擎對預(yù)先確定的軸向移動(dòng)過濾骨架跟蹤數(shù)據(jù)。所選擇的姿勢的過濾器可指定僅沿著軸的某一子集的移動(dòng)是相關(guān)的。考慮下文中將要更為詳細(xì)地描述的垂直掃視姿勢,其中用戶在垂直方向中將他們的手向上或向下移動(dòng)以控制用戶界面。用于垂直掃視姿勢的姿勢過濾器可指定唯一相關(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ù)。注意,在其他示例中,垂直掃視姿勢過濾器可指定也檢查在其他方向中的手的移動(dòng)。 例如,可分析水平的X軸移動(dòng),以確定屏幕上的哪個(gè)(些)項(xiàng)目要被垂直掃視姿勢操縱。在步驟608,姿勢識(shí)別引擎訪問姿勢過濾器中指定的規(guī)則j。在圖10的過程的第一次迭代中,j等于1。姿勢可包括需要被滿足以便姿勢被識(shí)別的多個(gè)參數(shù)。這些參數(shù)中的每個(gè)參數(shù)可在單獨(dú)的規(guī)則中指定,但是多個(gè)分量可被包括在單個(gè)規(guī)則中。規(guī)則可指定目標(biāo)的身體部位必須滿足以便姿勢被滿足的閾值距離、位置、方向、曲率、速度和/或加速度,以及其他參數(shù)。規(guī)則可應(yīng)用于一個(gè)身體部位或多個(gè)身體部位。而且,規(guī)則可指定諸如位置之類的單個(gè)參數(shù),或諸如位置、方向、距離、曲率、速度和加速度之類的多個(gè)參數(shù)。在步驟610,姿勢識(shí)別引擎將在步驟604和606過濾的骨架跟蹤數(shù)據(jù)與規(guī)則的指定的參數(shù)相比較,以確定規(guī)則是否被滿足。例如,姿勢識(shí)別引擎可確定手的起始位置是否位于起始位置參數(shù)的閾值距離內(nèi)。規(guī)則可進(jìn)一步指定且引擎確定手是否以指定方向移動(dòng); 以指定方向從起始位置移動(dòng)了閾值距離;沿指定軸在閾值曲率內(nèi)移動(dòng);以指定速度或以上移動(dòng);達(dá)到或超過指定加速度。如果引擎確定骨架跟蹤信息不滿足過濾器規(guī)則中指定的參數(shù),則在步驟612引擎返回失敗或姿勢過濾器不被滿足的響應(yīng)。該響應(yīng)可被返回給計(jì)算系統(tǒng)12上執(zhí)行的操作系統(tǒng)196或應(yīng)用。在步驟614,姿勢識(shí)別引擎確定姿勢過濾器是否指定了對于要被完成的姿勢必須被滿足的額外的規(guī)則。如果過濾器中包括額外的規(guī)則,則j遞增1且過程返回到步驟608, 在步驟608訪問下一規(guī)則。如果沒有額外的規(guī)則,則在步驟618姿勢識(shí)別引擎返回姿勢過濾器已被滿足的指示。圖10的步驟612和618對正被分析的姿勢返回簡單的通過/失敗響應(yīng)。在其他示例中,不是返回簡單的通過/失敗響應(yīng),圖10將返回姿勢過濾器被滿足的置信水平。對于過濾器中的每個(gè)規(guī)則,確定目標(biāo)的移動(dòng)滿足或不滿足指定參數(shù)的量。基于這些量的聚集, 識(shí)別引擎返回目標(biāo)確實(shí)執(zhí)行了姿勢的置信水平。現(xiàn)在描述根據(jù)當(dāng)前揭示的技術(shù)的示例性的一組姿勢。盡管描述了在姿勢檢測時(shí)采取的具體姿勢、過濾器參數(shù)和對應(yīng)的系統(tǒng)動(dòng)作,應(yīng)當(dāng)理解在其他實(shí)施例中在跟蹤系統(tǒng)10內(nèi)可使用其他姿勢、參數(shù)和動(dòng)作。圖IlA至IlH描繪了根據(jù)一個(gè)實(shí)施例執(zhí)行水平掃視姿勢的人類目標(biāo)的骨架映射。 骨架映射描繪了各時(shí)間點(diǎn)處的用戶,其中圖IlA是第一時(shí)間點(diǎn),圖IlH是最后時(shí)間點(diǎn)。每幅圖可對應(yīng)于深度相機(jī)所捕捉的圖像數(shù)據(jù)的快照或幀。它們沒有必要是圖像數(shù)據(jù)的連續(xù)幀, 因?yàn)樯疃认鄼C(jī)可能夠比用戶通過該距離更快速地捕捉各幀。例如,該姿勢可在3秒的時(shí)間段內(nèi)發(fā)生,并且在深度相機(jī)以每秒30幀來捕捉數(shù)據(jù)的情況下,在用戶作出該掃視姿勢時(shí)它將捕捉90個(gè)圖像數(shù)據(jù)幀。在該示例中,標(biāo)識(shí)各種關(guān)節(jié)和骨骼每一手402、每一前臂404、 每一肘406、每一二頭肌408、每一肩410、每一髖412、每一大腿414、每一膝416、每一小腿 418、每一足420、頭422、軀干424、脊椎的頂部似6和底部428,以及腰430。在跟蹤多個(gè)點(diǎn)的情況下,可標(biāo)識(shí)另外的特征,如手指或腳趾的骨骼和關(guān)節(jié),或臉部的各個(gè)特征,如鼻和眼。在圖IlA中,用戶以兩只手臂在他兩側(cè)開始。如圖IlB所描繪的,用戶開始沿水平的X軸向他的身體的左側(cè)移動(dòng)他的右手40加。在圖IlB中,用戶的右手臂(408a-402a)在水平的X軸方向與用戶的右肩410a對齊。用戶已經(jīng)進(jìn)一步將他的右手臂垂直地沿Y軸提起。用戶繼續(xù)沿X軸向他的身體的左側(cè)水平地移動(dòng)他的右手臂,同時(shí)進(jìn)一步相對于地面或他的的腳420a、420b沿Y軸垂直地舉起他的手臂。盡管圖IlA至IlH的二維表示中不可見, 但是應(yīng)理解,通過垂直地舉起右手臂,用戶將其右手臂伸向捕捉設(shè)備,或者沿Z軸將其右手臂從他的身體旁伸到他的身體的前面。如圖IlD所示,當(dāng)用戶的右手到達(dá)它將沿X方向中的水平軸向他的身體的左側(cè)部分行進(jìn)的最遠(yuǎn)距離時(shí),用戶完成水平掃視姿勢。圖IlE至IlH描繪了用戶將其右手臂帶回起始位置的返回運(yùn)動(dòng)。圖IlE中所指示的返回移動(dòng)的第一部分典型地涉及用戶將他們的右臂的二頭肌408拉向他們的身體的右側(cè)。此外,該運(yùn)動(dòng)一般涉及用戶的右肘406a沿Y軸垂直地降低。在圖IlF中,用戶已經(jīng)進(jìn)一步將其右臂向他的身體的右側(cè)移動(dòng)到右臂的二頭肌部分408a實(shí)質(zhì)上在水平方向中與右肩 410a對齊的點(diǎn)。在圖IlF中,用戶已經(jīng)進(jìn)一步將其右臂向他的身體的右側(cè)移動(dòng)并已開始在肘關(guān)節(jié)406a處伸直手臂,使得右臂的前臂部分沿Z軸伸向捕捉設(shè)備。在圖IlH中,用戶已經(jīng)返回到起始位置,他的右臂在他的身體的右側(cè)靠近肩410和手40 之間的伸直的位置。盡管捕捉設(shè)備捕捉了一系列靜止圖像,使得在任何一個(gè)圖像處用戶看似為靜止的,但用戶在執(zhí)行該姿勢的過程中在移動(dòng)(而非靜止姿勢)。該系統(tǒng)能夠取每一靜止圖像中的該一系列姿態(tài),并從中確定用戶正在作出的移動(dòng)姿勢的置信水平。圖IlA至IlH中描繪的水平掃視姿勢的姿勢過濾器可提出定義水平掃視姿勢的顯著特征的若干規(guī)則,以正確地檢測用戶的這種運(yùn)動(dòng)。在一個(gè)示例中,水平掃視姿勢被捕捉設(shè)備解釋為用特定手的姿勢。用特定手的姿勢是這樣一個(gè)姿勢,其中過濾器將姿勢的執(zhí)行定義為由某只手作出。在一個(gè)示例中,姿勢過濾器可指定僅要考慮右手的移動(dòng),使得左手臂、 左手、腿、軀干和頭等的移動(dòng)可被忽略。過濾器可指定要被檢查的唯一相關(guān)映射信息是運(yùn)動(dòng)中的手的映射信息。目標(biāo)的身體的剩余部分的移動(dòng)可被過濾或忽略,但是水平掃視姿勢的其他定義可指定目標(biāo)的身體的其他部分的某種移動(dòng),例如目標(biāo)的前臂或二頭肌的某種移動(dòng)。為了檢測水平掃視姿勢,姿勢的過濾器可指定起始位置參數(shù),例如目標(biāo)的手40 相對于目標(biāo)的身體的起始位置。由于目標(biāo)通常處于相對連續(xù)的運(yùn)動(dòng)中,姿勢識(shí)別引擎可連續(xù)地在起始位置尋找手,然后是如圖11B-11D中詳細(xì)描述的以及下述的附加參數(shù)中指定的后續(xù)移動(dòng)。水平掃視姿勢過濾器可為右手40 指定距離參數(shù)。距離參數(shù)可要求右手從用戶的身體的右側(cè)向用戶的身體的左側(cè)移動(dòng)的閾值距離。在一個(gè)示例中,水平掃視姿勢將指定沿Y軸的垂直移動(dòng)要被忽略。然而,在另一示例中,水平掃視姿勢過濾器可指定右手可垂直行進(jìn)的最大距離,以便區(qū)別于也可涉及垂直分量的其他水平移動(dòng)。在一個(gè)示例中,水平掃視姿勢過濾器還指定最小速度參數(shù),要求手在其從用戶的身體的右側(cè)向用戶的身體的左側(cè)移動(dòng)時(shí)滿足指定的速度。在另一示例中,姿勢過濾器可指定時(shí)間參數(shù),要求手在最大時(shí)間量內(nèi)行進(jìn)閾值距離。一般來說,系統(tǒng)將尋找其中用戶的移動(dòng)滿足姿勢過濾器中指定的那些移動(dòng)的若干連續(xù)幀。根據(jù)過濾器參數(shù)將對目標(biāo)運(yùn)動(dòng)的運(yùn)行歷史檢查不間斷的運(yùn)動(dòng)。例如,如果圖 11A-11D中指示的移動(dòng)被指定的運(yùn)動(dòng)之外的移動(dòng)所打斷,則即使該打斷之前或之后的幀匹配過濾器中指定的移動(dòng),姿勢過濾器也可能不被滿足。在捕捉系統(tǒng)捕捉用戶的這些位置而沒有可表示該姿勢被取消或正在作出另一姿勢的任何居間位置的情況下,跟蹤系統(tǒng)可能會(huì)使得水平掃視姿勢輸出用戶作出了水平掃視姿勢的高置信度水平。水平掃視姿勢過濾器可包括指定手在執(zhí)行水平掃視姿勢中的速度范圍的元數(shù)據(jù)。 計(jì)算環(huán)境可使用手在向身體的左側(cè)行進(jìn)時(shí)的速度來確定系統(tǒng)將響應(yīng)于該掃視姿勢的量。例如,如果掃視姿勢正被用于水平地滾動(dòng)列表中的項(xiàng)目,則響應(yīng)于更高速度的移動(dòng),項(xiàng)目可滾動(dòng)更快,而響應(yīng)于較慢速度的移動(dòng),項(xiàng)目可滾動(dòng)更慢。此外或另選地,元數(shù)據(jù)可指定速度范圍,從而基于更高速度的姿勢移動(dòng),滾動(dòng)的項(xiàng)目數(shù)量增加,而對于較低速度的姿勢移動(dòng),滾動(dòng)的項(xiàng)目數(shù)量減少。水平掃視姿勢過濾器還可包括指定手在執(zhí)行水平掃視姿勢中的距離范圍的元數(shù)據(jù)。計(jì)算環(huán)境可使用手行進(jìn)的距離來確定系統(tǒng)將響應(yīng)于掃視姿勢的量。例如,如果掃視姿勢被用于水平地滾動(dòng)列表上的項(xiàng)目,則響應(yīng)于手行進(jìn)更大距離,列表可滾動(dòng)更大的量,而響應(yīng)于手行進(jìn)較小的距離,列表可滾動(dòng)較小的量。圖12描繪了用戶18與跟蹤系統(tǒng)10交互以執(zhí)行如圖11A-11H所述的水平掃視姿勢。虛線702指示出用戶的右手40 在執(zhí)行水平掃視姿勢時(shí)的方向。如所描繪的,用戶在位置704以他的右手40 開始,然后向他的身體的左側(cè)移動(dòng)到位置706,然后返回到位置 704。該移動(dòng)可重復(fù)多次,以滾動(dòng)通過菜單項(xiàng)的列表710,例如圖12中視聽設(shè)備16上示出的那些。用戶可若干次地在位置704和位置706之間移動(dòng)并返回到位置704,以進(jìn)一步從右向左(由用戶的觀點(diǎn)限定)滾動(dòng)項(xiàng)目列表。參考標(biāo)號710a表示用戶用他的手在位置704開始姿勢時(shí)的菜單項(xiàng)列表。參考標(biāo)號710b表示用戶通過將他的右手移到位置706a完成了姿勢之后相同的菜單項(xiàng)列表。項(xiàng)目720和722已經(jīng)滾離了顯示畫面,而項(xiàng)目7M和726已滾動(dòng)到顯示畫面上?;乜磮DIlE至IlH以及圖12,可見在執(zhí)行水平掃視姿勢時(shí),用戶將他的右手從結(jié)束位置706返回到起始位置704。在這些情況下,跟蹤系統(tǒng)將從位置706到704的返回移動(dòng)與可能的用左手的水平掃視姿勢相區(qū)分,以便在用戶將其手返回到起始位置時(shí)不會(huì)引起菜單項(xiàng)從左向右滾動(dòng)。在一個(gè)示例中,這是通過如上所述將姿勢定義為是用特定手的來完成的。 可由用右手的掃視姿勢的姿勢過濾器將用右手的掃視姿勢定義為僅能由右手執(zhí)行。在這種情況中,左手的任何移動(dòng)都將被忽略。類似地,用左手的掃視姿勢可被定義為用特定手的姿勢,使得跟蹤系統(tǒng)僅把左手的移動(dòng)視為對用左手的掃視姿勢的執(zhí)行。在這一情況下,系統(tǒng)將把從位置706到位置704的移動(dòng)標(biāo)識(shí)為由右手執(zhí)行。因?yàn)樗鼈儾皇怯勺笫謭?zhí)行的,系統(tǒng)將不會(huì)將它們解釋為用左手的掃視姿勢。以此方式,用戶可如虛線702所示那樣以圓圈來移動(dòng)他的手,以從屏幕的右邊部分向屏幕的左邊部分滾動(dòng)項(xiàng)目列表,而無需使得返回移動(dòng)被解釋為使得項(xiàng)目從左滾動(dòng)回到右的用左手的掃視姿勢??墒褂闷渌夹g(shù)來代替用特定手的姿勢定義或與用特定手的姿勢定義組合,以在返回到起始位置的用右手的掃視姿勢和意圖的左手掃視姿勢之間進(jìn)行區(qū)分。再次看圖12, 虛線702示出在執(zhí)行姿勢及其返回的過程中,右手沿Z軸(朝向和離開捕捉設(shè)備)來回移動(dòng)。用戶在從位置704到位置706的移動(dòng)過程中將右手伸出到他的身體的前面,但在從位置706返回到704的過程中趨向于將手向身體縮回。系統(tǒng)可分析用右手的移動(dòng)的Z值,并確定當(dāng)從704移動(dòng)到706時(shí)手伸向捕捉設(shè)備,但在返回運(yùn)動(dòng)期間手從捕捉設(shè)備收回。姿勢過濾器可把手離開身體的最小伸展定義為用于通過設(shè)置離開用戶的身體的最小距離來定義用右手的掃視姿勢的要求的位置參數(shù)。在所述的圓圈內(nèi),將手從位置706返回到704的移動(dòng)可被忽略,因?yàn)椴粷M足手離開身體的伸展的要求的Z值。以此方式,系統(tǒng)將不會(huì)把返回移動(dòng)解釋為向右的水平掃視姿勢。圖13是描述根據(jù)一個(gè)實(shí)施例姿勢識(shí)別引擎將用右手的掃視姿勢過濾器應(yīng)用于目標(biāo)的移動(dòng)的流程圖。在步驟752,姿勢識(shí)別引擎過濾用右手的移動(dòng)。在該具體示例中,用右手的掃視姿勢被定義為用特定手的,使得左手移動(dòng)被忽略,但是將理解諸如檢查Z軸移動(dòng)之類的其他技術(shù)可被用于將該姿勢與其返回移動(dòng)相區(qū)分。在步驟754,引擎過濾沿X軸的水平移動(dòng),丟棄或忽略與沿Y軸的垂直移動(dòng)或沿Z軸的深度移動(dòng)有關(guān)的數(shù)據(jù)。在步驟756,引擎將右手的起始位置與起始位置參數(shù)相比較。步驟756可包括確定右手的起始位置是否在相對于用戶的身體定義的指定起始位置的閾值距離內(nèi)。步驟756可包括確定實(shí)際起始位置和起始位置參數(shù)之間的差異,該差異將被用于確定移動(dòng)是用右手的掃視姿勢的置信水平。在步驟758,引擎將右手在水平方向行進(jìn)的距離與距離參數(shù)進(jìn)行比較。步驟758可包括確定行進(jìn)的實(shí)際距離是否處于或超過閾值距離,或可包括確定實(shí)際距離不同于距離參數(shù)的量。在一個(gè)實(shí)施例中,步驟758可包括確定用右手的移動(dòng)的方向。在另一實(shí)施例中,可作出對方向性移動(dòng)的單獨(dú)比較。在步驟760,引擎將右手沿X軸行進(jìn)的速度與速度參數(shù)進(jìn)行比較。步驟760可包括確定右手速度是否處于或高于閾值水平,或確定實(shí)際速度和指定的速度參數(shù)之間的差。在步驟762,引擎計(jì)算用右手的移動(dòng)是用右手的掃視姿勢的置信水平。步驟762基于步驟756-758的比較。在一個(gè)實(shí)施例中,步驟762聚集計(jì)算出的差異來估計(jì)用戶意圖將其移動(dòng)作為用右手的掃視姿勢的總似然性。在步驟764,引擎將置信水平返回給計(jì)算系統(tǒng) 12上執(zhí)行的操作系統(tǒng)或應(yīng)用。系統(tǒng)將使用該置信水平來確定是否要將對應(yīng)于該姿勢的預(yù)定動(dòng)作應(yīng)用于系統(tǒng)用戶界面。在圖13中,引擎返回執(zhí)行了該姿勢的置信水平,但是將理解,引擎另選地可報(bào)告關(guān)于該姿勢是否被執(zhí)行的簡單的通過或失敗。還可考慮額外的參數(shù)。例如,在替換實(shí)施例中可考慮垂直移動(dòng)以區(qū)分其他用戶移動(dòng)或姿勢。例如,可應(yīng)用最大垂直距離參數(shù),使得超出該參數(shù)距離的垂直移動(dòng)將指示出水平掃視姿勢未被執(zhí)行。此外,可檢查Z軸方向的移動(dòng),以便將右手掃視姿勢的返回移動(dòng)與用左手的掃視姿勢的返回移動(dòng)相區(qū)分。圖14A和14B描繪了用戶18與跟蹤系統(tǒng)10交互以執(zhí)行垂直掃視姿勢。如圖14A 所描繪的,用戶18以他的右手臂在他的右側(cè)并朝捕捉設(shè)備向外伸出開始。用戶的手臂在位置802開始。視聽設(shè)備16上顯示了具有垂直對齊的菜單項(xiàng)的列表805的用戶界面19。在圖14B中,用戶已將其右手臂和右手從起始位置802移動(dòng)到結(jié)束位置804。右手從用戶的腰下的位置垂直地提起到在垂直的Y軸方向中接近與用戶的右肩對齊的位置。用戶已經(jīng)將其右手沿Z軸從他身體附近的點(diǎn)伸出到他的身體前方之外的位置。姿勢識(shí)別引擎利用姿勢過濾器來估計(jì)該移動(dòng)是否滿足定義垂直掃視姿勢過濾器的參數(shù)。在一個(gè)實(shí)施例中,垂直掃視姿勢是用特定手的,意味著基于對正在移動(dòng)的手的標(biāo)識(shí)將用右手的垂直掃視姿勢與用左手的垂直掃視姿勢相區(qū)分。在另一示例中,垂直掃視姿勢不是特定手的,意味著滿足指定參數(shù)的任何手的移動(dòng)將被解釋為垂直掃視姿勢。垂直掃視姿勢的姿勢過濾器可指定起始手位置在目標(biāo)的腰下。在另一示例中,起始位置可被定義為在用戶的肩下。過濾器可進(jìn)一步定義起始位置為相對于用戶的身體位置在垂直方向具有最大位置。也就是說,手必須以不大于諸如用戶的腳之類的用戶的身體上的某一點(diǎn)上方指定距離開始。最大起始位置也可相對于肩或任何其他身體部位來定義。例如,過濾器可指定在垂直方向中用戶的手必須離用戶的肩最小距離。該過濾器可進(jìn)一步指定手在垂直方向中必須行進(jìn)的最小距離以便滿足該過濾器。類似于水平掃視姿勢,過濾器可指定手必須達(dá)到的最小速度和/或加速度。過濾器可進(jìn)一步指定沿X軸的水平移動(dòng)被忽略。然而在另一實(shí)施例中,過濾器可將水平移動(dòng)約束到某一最大可允許移動(dòng),以便區(qū)別于其他可行的姿勢。目標(biāo)的手的速度和/或加速度可進(jìn)一步被考慮,使得手必須滿足最小速度和/或加速度以被視為垂直掃視姿勢。圖14B描繪了響應(yīng)于檢測到垂直掃視姿勢而執(zhí)行的用戶界面動(dòng)作。菜單項(xiàng)的用戶界面19列表805已被向上滾動(dòng),使得項(xiàng)目807不再被顯示,而項(xiàng)目811已在顯示畫面的下部被添加到顯示畫面。圖15A-15B描繪了用戶18與跟蹤系統(tǒng)10交互以執(zhí)行按壓姿勢。按壓姿勢可由用戶使用來選擇顯示畫面上的項(xiàng)目。傳統(tǒng)上可使用鼠標(biāo)或方向鍵來將光標(biāo)或其他選擇器定位在項(xiàng)目上,然后諸如通過點(diǎn)擊按鈕等提供輸入以指示出項(xiàng)目被選擇來執(zhí)行該動(dòng)作。半空中按壓姿勢可如圖15A和15B所示范的那樣通過用戶指向屏幕上某一項(xiàng)目來執(zhí)行。在圖15A 中,用戶以他的手在垂直的Y軸方向中在大約肩部水平高度處且在深度Z軸方向中朝捕捉設(shè)備向用戶的前面伸出某一距離為開始。在水平的X軸方向中,用戶的手實(shí)質(zhì)上與肩對齊。 在一個(gè)實(shí)施例中,水平方向起始位置可不在過濾器內(nèi)被指定為要求的參數(shù),使得水平移動(dòng)可被忽略。在另一實(shí)施例中,水平位置和移動(dòng)可被考慮以區(qū)分其他可行姿勢。看圖15B,用戶將他的手臂從起始位置820伸到結(jié)束位置822。用戶的手沿Z軸移離身體并移向捕捉設(shè)備。在該示例中,用戶的手沿垂直的Y軸幾乎沒有或沒有移動(dòng),且水平地沿X軸沒有移動(dòng)。 系統(tǒng)將從位置820至822的移動(dòng)解釋為構(gòu)成按壓姿勢。在一個(gè)實(shí)施例中,計(jì)算環(huán)境12中的捕捉設(shè)備使用用戶的手822在XY空間中的起始位置以確定所顯示的用戶界面上的已被選擇的項(xiàng)目。在另一實(shí)施例中,捕捉設(shè)備確定用戶的手的最終位置以確定所選擇的項(xiàng)目。兩個(gè)位置也可被一起使用以確定所選擇的項(xiàng)目。在該情況下,用戶已指向項(xiàng)目824,從而將其突出顯示,如圖15B所示。 用于按壓姿勢的過濾器可定義手的垂直起始位置。例如,參數(shù)可指定在垂直方向用戶的手必須在用戶的肩的閾值距離內(nèi)。然而,其他按壓姿勢過濾器可不包括垂直起始位置,使得用戶可在相對于其肩的任何點(diǎn)處用他的手臂或手按壓。按壓姿勢過濾器可進(jìn)一步指定手在水平的X軸方向和/或朝向捕捉設(shè)備的Z軸方向的起始位置。例如,過濾器可指定手在X軸方向離開相應(yīng)的肩膀的最大距離,以及沿Z軸方向離開身體的最大距離。過濾器可進(jìn)一步指定手從起始位置820到結(jié)束位置822必須行進(jìn)的最小閾值距離。此外,系統(tǒng)可指定手在作出該移動(dòng)時(shí)必須達(dá)到的最小速度和/或手在作出該移動(dòng)時(shí)必須經(jīng)歷的最小加速度。 在一個(gè)示例中,按壓姿勢不是用特定手的,使得系統(tǒng)將使用單個(gè)姿勢過濾器來標(biāo)識(shí)右手或左手進(jìn)行的按壓姿勢。過濾器可僅指定手必須執(zhí)行移動(dòng)而不指定它是特定的手。 在另一示例中,按壓姿勢可以是用特定手的,使得第一過濾器將尋找右手的按壓移動(dòng),而第二過濾器將尋找左手的按壓移動(dòng)。姿勢過濾器可進(jìn)一步指定在作出從820到822的移動(dòng)時(shí)的最大垂直位移量,使得如果手沿Y軸行進(jìn)了太多,則該移動(dòng)可被忽略,因?yàn)闈M足垂直掃視姿勢準(zhǔn)則。盡管未描繪,但是在一個(gè)實(shí)施例中,圖15A和15B所描繪的按壓姿勢的反姿勢可被定義為回退姿勢。過濾器可實(shí)質(zhì)上描述圖15A和15B中所描述的按壓姿勢的反向移動(dòng)。用戶可以他的手在身體前面之外為開始,并將他的手向他的身體移動(dòng),這將被跟蹤系統(tǒng)解釋為回退姿勢。在一個(gè)實(shí)施例中,UI可解釋該移動(dòng)并在當(dāng)前用戶界面中反向移動(dòng)。在另一實(shí)施例中,這一移動(dòng)可使得當(dāng)前菜單顯示被縮小或抽出(abstraction)。圖16A和16B描繪了用戶18與跟蹤系統(tǒng)10交互以執(zhí)行雙手按壓姿勢。在具體描述的示例中,雙手按壓姿勢被用于在用戶界面中反向移動(dòng)。也就是說,用戶界面按分層方式組織,使得通過利用雙手按壓姿勢,用戶從某一菜單沿分層樹向上移動(dòng)到更高級的菜單。在另一示例中(未描繪),雙手按壓姿勢可被用于縮小當(dāng)前用戶界面。通過用雙手向屏幕按壓,用戶界面將例如從第一級別縮放到更高級別,如下文中將在圖17A和17B中描述的那樣。在圖16A中,用戶以他的雙手在身體前面大約肩膀高度且在水平方向?qū)嶋H上與肩膀?qū)R為開始。肩膀和肘之間的用戶的手臂以某一角度向下伸而從肘到手的用戶的手臂向上伸,形成了 V形。用戶界面呈現(xiàn)具有若干菜單選項(xiàng)的菜單826,菜單選項(xiàng)以開始游戲、選擇軌道、選項(xiàng)和退出作為示例示出?;乜磮D15A和15B,圖16A中描繪的菜單項(xiàng)可對應(yīng)于用戶已選擇了菜單之后圖15A和15B的項(xiàng)目824的菜單選擇,例如作為對這里執(zhí)行的按壓姿勢的響應(yīng)。在圖16B中,用戶已從雙手的起始位置830、832到結(jié)束位置831、833沿Z軸向捕捉設(shè)備伸出雙手。在該示例中,雙手沿Y軸沒有垂直移動(dòng)或沿X軸沒有水平移動(dòng)。圖16B 中的用戶界面恢復(fù)到圖15B中所示的位置。用戶已從與項(xiàng)目824相關(guān)聯(lián)的更詳細(xì)的菜單選項(xiàng)移回圖15B中所示的菜單選擇屏幕。這對應(yīng)于在用戶界面的分層順序中向上移動(dòng)。雙手按壓姿勢的姿勢過濾器可定義雙手的起始位置。在該示例中,按壓姿勢不是用特定手的,因?yàn)樗箅p手的組合,于是系統(tǒng)將過濾右手和左手一起的手移動(dòng)。過濾器可指定雙手的垂直起始位置。例如,它可定義雙手必須在用戶的腰和頭之間。過濾器可進(jìn)一步指定水平起始位置,使得右手必須實(shí)質(zhì)上與右肩水平對齊,而左手必須實(shí)質(zhì)上與左肩水平對齊。過濾器還可指定雙手可能要開始運(yùn)動(dòng)的沿Z軸離開用戶的身體的最大距離,和/ 或用戶的前臂相對于用戶的二頭肌的角度位移。最后,過濾器可定義雙手必須在姿勢開始時(shí)相對于彼此垂直對齊。過濾器可定義每只手沿Z軸朝向捕捉設(shè)備離開用戶的身體而必須行進(jìn)的最小距離參數(shù)。在一個(gè)示例中,參數(shù)提出了每個(gè)手在作出該移動(dòng)時(shí)必須滿足的最小速度和/或加速度。雙手按壓姿勢的姿勢過濾器還可定義右手和左手必須從它們的開始位置一致地移動(dòng)到它們的結(jié)束位置。例如,過濾器可指定右手和左手之間沿Z軸的最大位移量,以便確保雙手姿勢移動(dòng)正被執(zhí)行。最后,雙手按壓姿勢可定義每個(gè)手的結(jié)束位置。例如,距離參數(shù)可定義每個(gè)手應(yīng)當(dāng)在移動(dòng)結(jié)束時(shí)離用戶的身體的最小距離。盡管未描繪,但是在一個(gè)實(shí)施例中,雙手按壓姿勢具有對應(yīng)的雙手回退姿勢。用于該移動(dòng)的過濾器可實(shí)質(zhì)上描述圖16A和16B中描繪的移動(dòng)的反過程。通過以用戶的雙手在他的身體的前面之外并向他的肩膀收回雙手,用戶可使得用戶界面在當(dāng)前用戶界面中反向移動(dòng)或放大。圖17A和17B描繪了在一個(gè)實(shí)施例中用戶18與跟蹤系統(tǒng)10交互以執(zhí)行雙手壓縮姿勢。圖17A描繪了用戶18的右手和左手在他的身體的前面的位置840和842處,類似于圖16A中的起始位置。然而,在該示例中,用戶的手掌彼此面對而不是面向捕捉設(shè)備。雙手垂直地且水平地與肩對齊,且沿Z軸伸出在用戶的身體之外某一距離??磮D17B,用戶已將他的雙手合在一起到結(jié)束位置841和843,使得手掌接觸。用戶將右手移向左手且將左手移向右手,使得它們在它們之間的某一點(diǎn)相會(huì)。雙手在沿Y軸的垂直方向或沿Z軸的深度方向?qū)嵸|(zhì)上并不移動(dòng)。響應(yīng)于檢測到雙手壓縮姿勢,計(jì)算系統(tǒng)12壓縮或縮小當(dāng)前用戶界面顯示,以在列表上顯示更多個(gè)元素或菜單項(xiàng)。在另一示例中,雙手壓縮姿勢可通過在用戶界面中從菜單層次結(jié)構(gòu)中的較低層反向移動(dòng)到菜單層次結(jié)構(gòu)中的較高層來導(dǎo)致如圖16A和16B所示的用戶界面動(dòng)作。在一個(gè)實(shí)施例中,雙手壓縮姿勢過濾器可定義右手和左手兩者的起始位置。在一個(gè)示例中,起始位置可被定義為水平地與用戶的肩對齊,垂直地與用戶的肩對齊,且在Z軸方向中不超出離用戶的身體的閾值距離。在另一示例中,起始位置可不包括垂直位置要求, 使得用戶可在任何垂直位置將他的雙手合在一起以完成姿勢。類似地,在一個(gè)示例中,可不使用水平位置要求,使得用戶可進(jìn)行壓縮姿勢而不管雙手是否關(guān)于用戶的身體水平。從而, 一個(gè)示例完全不包括定義用戶的雙手的起始位置。在另一示例中,用戶的雙手由過濾器定義為要求手掌彼此面對。這可包括檢查來自掃描的其他身體部位,如手指,以確定手掌是否互相面對。例如,系統(tǒng)可確定拇指是否朝用戶的身體定位,這指示出手掌正彼此面對。過濾器可進(jìn)一步指定雙手的結(jié)束位置,如水平地位于用戶的雙肩之間。在另一示例中,結(jié)束位置可被定義為右手和左手相會(huì),而不管它們相對于用戶的身體的水平位置。在另一示例中,過濾器可定義每只手在水平方向必須行進(jìn)的最小距離量。而且,過濾器可指定雙手可垂直地和/或在Z方向行進(jìn)的最大距離。盡管未示出,但是一個(gè)實(shí)施例的相應(yīng)的雙手壓縮姿勢包括雙手反壓縮姿勢,雙手反壓縮姿勢以雙手在圖17B的位置開始,且以雙手在圖17A的位置結(jié)束。過濾器可實(shí)質(zhì)上定義圖17A和17B中描繪的移動(dòng)的反過程。在該示例中,通過將用戶的雙手分開,用戶可在當(dāng)前顯示畫面上放大,例如使得UI從圖17B中所描繪的改變到圖17A。本技術(shù)的實(shí)施例可進(jìn)一步使用屏幕上控制柄來控制用戶和屏幕上對象之間的交互。在各實(shí)施例中,控制柄是用于與人機(jī)接口交互、關(guān)于人機(jī)接口進(jìn)行導(dǎo)航以及控制人機(jī)接口的UI對象。在各實(shí)施例中,控制柄提供與諸如UI上的對象之類的動(dòng)作區(qū)域的顯式接合點(diǎn),并提供關(guān)于用戶可如何與該對象交互的啟示。一旦用戶接合了控制柄,用戶可例如通過移動(dòng)該控制柄或執(zhí)行與該控制柄相關(guān)聯(lián)的一個(gè)或多個(gè)姿勢來操縱該控制柄。在一個(gè)實(shí)施例中,僅在用戶接合控制柄之后識(shí)別姿勢。如圖18所示,在一示例實(shí)施例中,計(jì)算環(huán)境12上執(zhí)行的應(yīng)用可向用戶18呈現(xiàn)UI 19。該UI可以是游戲應(yīng)用或平臺(tái)的一部分,且在各實(shí)施例中可以是用于訪問游戲應(yīng)用或平臺(tái)的所選區(qū)域的導(dǎo)航菜單。計(jì)算環(huán)境12在UI 19上生成一個(gè)或多個(gè)控制柄21,每個(gè)控制柄栓系于或以其他方式關(guān)聯(lián)于UI 19上的動(dòng)作區(qū)域23。每個(gè)控制柄通常是顯示在屏幕上的用于控制相對于其相關(guān)聯(lián)的動(dòng)作區(qū)域的操作的圖形對象,如下文中更為詳細(xì)地解釋的。
在各實(shí)施例中,控制柄21可在顯示畫面上形成為圓形或三維球體,但是本領(lǐng)域的技術(shù)人員將理解在另選的實(shí)施例中控制柄可以是各種其他形狀中的任何一種。如下文解釋的那樣,控制柄21的存在和外觀可改變,這取決于用戶是否存在以及取決于用戶是否正與控制柄接合。在各實(shí)施例中,控制柄的形狀在所有動(dòng)作區(qū)域23中可以是相同的,但是在其他實(shí)施例中,考慮了不同動(dòng)作區(qū)域具有不同形狀的控制柄。盡管圖20示出了單個(gè)控制柄 21,但是UI 19可包括多個(gè)控制柄21,每個(gè)控制柄與不同的動(dòng)作區(qū)域23相關(guān)聯(lián)。如此處使用的,“動(dòng)作區(qū)域”是UI 19上的可具有與之相關(guān)聯(lián)的控制柄,且能夠在對其控制柄被操縱時(shí)執(zhí)行動(dòng)作,或能夠在其控制柄被操縱時(shí)使其動(dòng)作在其上執(zhí)行的任何區(qū)域。在各實(shí)施例中,動(dòng)作區(qū)域23可以是被顯示為導(dǎo)航菜單的一部分的文本或圖形對象。然而,在各實(shí)施例中,動(dòng)作區(qū)域23無需是導(dǎo)航菜單的一部分,且無需是專門顯示的圖形對象。 動(dòng)作區(qū)域23可另選 地是UI的某一區(qū)域,當(dāng)通過其控制柄被訪問時(shí),該區(qū)域使得某一動(dòng)作或者是在該區(qū)域處或者是總體上在UI上被執(zhí)行。在動(dòng)作區(qū)域是顯示畫面上的專門圖形對象時(shí),與該圖形對象相關(guān)聯(lián)的控制柄21 可被顯示在圖形對象上,或在圖形對象周圍的任何位置處顯示在圖形對象附近。在進(jìn)一步的實(shí)施例中,控制柄21可不被映射到專門的對象。在該實(shí)施例中,控制區(qū)域23可以是UI 19上的包括若干圖形對象的區(qū)域。當(dāng)與該動(dòng)作區(qū)域相關(guān)聯(lián)的控制柄21被操縱時(shí),可對該控制區(qū)域23中的所有對象執(zhí)行動(dòng)作。在進(jìn)一步的實(shí)施例中,控制柄21可被集成到圖形對象中。在這一實(shí)施例中,沒有與對象分開的控制柄21的視覺顯示。相反,當(dāng)對象被抓住或以其他方式被選擇時(shí),對象充當(dāng)控制柄21,且執(zhí)行與控制柄相關(guān)聯(lián)的動(dòng)作。這些動(dòng)作將在以下更詳細(xì)地描述。接口 19可進(jìn)一步包括經(jīng)用戶移動(dòng)控制的光標(biāo)25。具體來說,捕捉設(shè)備20捕捉用戶指向的位置,如下所解釋的,且計(jì)算環(huán)境解釋該圖像數(shù)據(jù)以在視聽設(shè)備16上的確定的點(diǎn)處顯示光標(biāo)25。光標(biāo)可向用戶提供關(guān)于用戶正明確地指向視聽設(shè)備上的何處的閉環(huán)反饋。 這方便了對視聽設(shè)備16上的控制柄的選擇,如下文所解釋的。類似地,每個(gè)控制柄可具有類似于磁場的引力,用于在光標(biāo)足夠接近控制柄時(shí)將光標(biāo)拉到控制柄。該特征也在下文中更詳細(xì)地解釋。光標(biāo)25可總是可見的,僅在用戶存在于視野中時(shí)可見,或僅在用戶正在跟蹤顯示設(shè)備上的具體對象時(shí)可見??刂票囊粋€(gè)目的是提供顯式接合點(diǎn),從該點(diǎn)用戶能夠與動(dòng)作區(qū)域23交互以提供姿勢。在操作中,用戶將引導(dǎo)光標(biāo)25到控制柄21上,并執(zhí)行姿勢以依附于該控制柄。用戶在其中移動(dòng)的三維實(shí)空間可被定義為參考框架,其中ζ軸是從捕捉設(shè)備20筆直水平延伸出的軸,χ軸是垂直于ζ軸的水平軸,y軸是垂直于ζ軸的垂直軸。給定該參考框架,用戶可通過在χ-y平面中移動(dòng)他或她的手以將光標(biāo)定位在控制柄上,然后沿ζ軸向捕捉設(shè)備移動(dòng)手來依附于控制柄。在光標(biāo)被定位在控制柄上的情況下,計(jì)算環(huán)境12將用戶的手的向內(nèi) (inward)移動(dòng)(即沿ζ軸更靠近屏幕上控制柄21)解釋為用戶試圖依附于控制柄,且計(jì)算環(huán)境執(zhí)行該動(dòng)作。在各實(shí)施例中,屏幕上x_y移動(dòng)是在曲面坐標(biāo)空間中完成的。也就是說, 用戶的移動(dòng)主要在χ方向和y方向是靜止的,但對于人類手臂遵循的彎曲路徑,考慮了 ζ方向的某一扭曲量的因素。存在具有變化的接合方法的不同類型的控制柄。第一種控制柄可以是單手控制柄。這些類型的控制柄可由用戶的右手或左手但非雙手來接合。第二種類型的控制柄可以是雙手控制柄。這些類型的控制柄能夠由用戶的右手或左手接合??蓪τ沂趾妥笫职姹緞?chuàng)建雙手控制柄的單獨(dú)的實(shí)例,并定位到動(dòng)作區(qū)域的左側(cè)或右側(cè),使得控制柄可被定位用于用戶的3D空間中的更自然的接合。第三種類型的控制柄是雙手成對控制柄。這些控制柄要求用戶的雙手來完成交互。這些交互利用視覺啟示以及在各實(shí)施例中利用聽覺啟示,來告知用戶如何完成更復(fù)雜的交互,如下所解釋的。圖18包括單手控制柄21的示例。圖19是包括控制柄的額外示例的顯示畫面的視圖。圖2中朝向UI 19頂部的控制柄21是與動(dòng)作區(qū)域23相關(guān)聯(lián)的單手控制柄21,在該示例中動(dòng)作區(qū)域是文本導(dǎo)航菜單。朝向UI 19的底部的兩個(gè)控制柄21是與動(dòng)作區(qū)域23相關(guān)聯(lián)的雙手控制柄的示例。在圖2的示例中,動(dòng)作區(qū)域23是一個(gè)或多個(gè)圖形導(dǎo)航對象(也稱為“槽”),示出通過用戶選擇某一槽下面的兩個(gè)角處的兩個(gè)控制柄21可對其執(zhí)行某一動(dòng)作的具體軟件標(biāo)題。不同的控制柄21也可能夠在用戶接合時(shí)進(jìn)行不同的移動(dòng)。例如,某些控制柄被約束到在單個(gè)方向移動(dòng)(例如沿屏幕的X軸或y軸)。提供其他控制柄用于沿X軸和y軸的二軸移動(dòng)。還有控制柄被提供用于繞χ-y平面的多向移動(dòng)。又有一些控制柄可專門地或作為多向運(yùn)動(dòng)的一部分沿χ軸移動(dòng)。每個(gè)控制柄可包括用于清楚地指示用戶可如何操縱控制柄的啟示。例如,當(dāng)用戶接近控制柄21時(shí),這里被稱為“導(dǎo)軌”(rail)的圖形指示可出現(xiàn)在顯示畫面上控制柄附近。導(dǎo)軌示出控制柄21可移動(dòng)以在相關(guān)聯(lián)的動(dòng)作區(qū)域23上完成某一動(dòng)作的方向。圖18示出了導(dǎo)軌27,導(dǎo)軌27指示出可沿χ軸(圖18中向左)移動(dòng)控制柄 21。如所指示的,導(dǎo)軌僅在用戶接近控制柄21或接合控制柄21時(shí)出現(xiàn)。否則,它們在屏幕上是不可見的,以便不使顯示畫面零亂。然而,在另選的實(shí)施例中,與控制柄相關(guān)聯(lián)的任何導(dǎo)軌可在其控制柄可見時(shí)總是可見的。在進(jìn)一步的實(shí)施例中,光標(biāo)25也可提供關(guān)于可能的控制柄操縱的反饋和提示。也就是說,除了控制柄本身之外,光標(biāo)的位置可使得導(dǎo)軌被顯露,或提供操縱反饋。圖20示出了圖19的屏幕視圖,但是是在用戶已經(jīng)在屏幕上方附近依附于控制柄 21之后的某一時(shí)間。如此,導(dǎo)軌27a和27b被顯示給用戶。導(dǎo)軌27a示出用戶可向上或向下移動(dòng)控制柄。與對控制柄21的這種操縱相關(guān)聯(lián)的動(dòng)作將會(huì)是在動(dòng)作區(qū)域23中向上或向下滾動(dòng)文本菜單。在一個(gè)實(shí)施例中,在接合了控制柄之后,用戶可執(zhí)行垂直掃視姿勢,以向上或向下滾動(dòng)文本。導(dǎo)軌27b示出用戶可將控制柄向右移動(dòng)(從圖20的觀點(diǎn)來看)。與對控制柄21的這一操縱相關(guān)聯(lián)的動(dòng)作將會(huì)是將動(dòng)作區(qū)域23滾動(dòng)到控制柄然后將位于的菜單項(xiàng)的子標(biāo)題處。一旦滾動(dòng)到子標(biāo)題,可出現(xiàn)新的水平導(dǎo)軌,以向用戶示出他或她可將控制柄向左移動(dòng)(從圖20的觀點(diǎn)來看)以返回到下一更高級別的菜單。圖21示出了圖19的屏幕視圖,但是是在用戶已經(jīng)在屏幕底部附近依附于控制柄 21a、21b之后的某一時(shí)間。如此,導(dǎo)軌27c和27d被顯示給用戶。控制柄21a、21b以及導(dǎo)軌27c、27d被一起顯示在某一槽的角落處,示出用戶能夠用雙手選擇該槽(一個(gè)手在任一個(gè)控制柄上)。圖21還示出控制柄21c和21d朝向UI 19的任一側(cè)。接合并將控制柄21c 向左移動(dòng)(從圖21的觀點(diǎn)來看)完成了將槽29向左滾動(dòng)的動(dòng)作。接合并將控制柄21d向右移動(dòng)(從圖21的觀點(diǎn)來看)完成了將槽29向右滾動(dòng)的動(dòng)作。在一個(gè)實(shí)施例中,在接合了控制柄之后,用戶可執(zhí)行水平掃視姿勢,以向左或向右滾動(dòng)槽。圖21中所描繪的雙手選擇姿勢可遵循先前在圖17A-17B中描繪的反向壓縮模式。
關(guān)于識(shí)別器引擎190的更多信息可在2009年4月13日提交的美國專利申請 12/422, 661 Gesture Recognizer System Architecture (姿勢識(shí)別器系統(tǒng)架構(gòu))”中找到, 該申請通過整體引用合并于此。關(guān)于識(shí)別姿勢的更多信息可在2009年2月23日提交的美國專利申請12/391,150 Standard Gestures (標(biāo)準(zhǔn)姿勢)”;以及2009年5月29日提交的美國專利申請12/474,655 Gesture Tool (姿勢工具)”中找到。這兩個(gè)申請都通過整體引用合并于此。關(guān)于控制柄的更多的信息可在題為“Handles Interactions for Human-Computer Interface”(用于人機(jī)接口的控制柄交互)的美國專利申請12/703,115中找到盡管用專門描述結(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)(302);使用所述人類目標(biāo)的骨架映射從所述多個(gè)圖像跟蹤所述人類目標(biāo)的移動(dòng)(312); 從所述骨架映射確定所述人類目標(biāo)的移動(dòng)是否滿足用于第一半空中姿勢的一個(gè)或多個(gè)過濾器,所述一個(gè)或多個(gè)過濾器指定了所述第一半空中姿勢應(yīng)由某一只手或由雙手來執(zhí)行(320);以及如果所述人類目標(biāo)的移動(dòng)滿足所述一個(gè)或多個(gè)過濾器,則執(zhí)行對應(yīng)于所述半空中姿勢的至少一個(gè)用戶界面動(dòng)作(322)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括提供對應(yīng)于多個(gè)半空中姿勢中的每一個(gè)半空中姿勢的至少一個(gè)姿勢過濾器,包括提供用于所述第一半空中姿勢的所述一個(gè)或多個(gè)過濾器; 確定所述用戶界面的上下文;確定對應(yīng)于所述用戶界面的上下文的一組可行的半空中姿勢,該組包括所述第一半空中姿勢和比所述多個(gè)半空中姿勢中的全部半空中姿勢少的半空中姿勢;以及響應(yīng)于確定所述用戶界面的上下文,僅從所述骨架模型確定所述人類目標(biāo)的移動(dòng)是否滿足對應(yīng)于所述組中的每一個(gè)可行的半空中姿勢的至少一個(gè)姿勢過濾器。
3.如權(quán)利要求1所述的方法,其特征在于 所述第一半空中姿勢是水平掃視姿勢;確定所述人類目標(biāo)的移動(dòng)是否滿足用于水平掃視姿勢的一個(gè)或多個(gè)過濾器包括 確定所述人類目標(biāo)的手的位置是否滿足起始位置參數(shù), 確定所述手從所述起始位置移動(dòng)的方向是否滿足方向參數(shù), 確定所述手在所述移動(dòng)期間行進(jìn)的距離是否滿足距離參數(shù), 確定滿足所述距離參數(shù)的所述手的移動(dòng)是否在時(shí)間參數(shù)內(nèi)發(fā)生。
4.如權(quán)利要求3所述的方法,其特征在于,對應(yīng)于水平掃視姿勢的至少一個(gè)用戶界面動(dòng)作包括對所述用戶界面的菜單項(xiàng)的水平滾動(dòng)動(dòng)作,所述方法還包括當(dāng)所述手行進(jìn)的距離是第一距離時(shí),將所述用戶界面的菜單項(xiàng)水平滾動(dòng)第一量;以及當(dāng)所述手行進(jìn)的距離是第二距離時(shí),將所述用戶界面的菜單項(xiàng)水平滾動(dòng)第二量,所述第一量小于所述第二量,所述第一距離小于所述第二距離。
5.如權(quán)利要求3所述的方法,其特征在于,對應(yīng)于水平掃視姿勢的至少一個(gè)用戶界面動(dòng)作包括對所述用戶界面的菜單項(xiàng)的水平滾動(dòng)動(dòng)作,所述方法還包括確定在所述手的移動(dòng)期間所述手的速度;當(dāng)所述速度是第一速度時(shí),將所述用戶界面的菜單項(xiàng)水平滾動(dòng)第一量;以及當(dāng)所述速度是第二速度時(shí),將所述用戶界面的菜單項(xiàng)水平滾動(dòng)第二量,所述第一量小于所述第二量,所述第一速度小于所述第二速度。
6.如權(quán)利要求3所述的方法,其特征在于,所述水平掃視姿勢是用右手的水平掃視姿勢,所述手是所述人類目標(biāo)的右手,所述方法還包括當(dāng)確定所述人類目標(biāo)的移動(dòng)滿足所述用右手的水平掃視姿勢的一個(gè)或多個(gè)過濾器時(shí), 過濾以去除所述人類目標(biāo)的左手的骨架映射信息。
7.如權(quán)利要求1所述的方法,其特征在于,所述第一半空中姿勢是垂直掃視姿勢,對應(yīng)于所述垂直掃視姿勢的至少一個(gè)用戶界面動(dòng)作包括對所述用戶界面的菜單項(xiàng)的垂直滾動(dòng)動(dòng)作,所述方法還包括確定所述人類目標(biāo)的手在執(zhí)行所述垂直掃視姿勢時(shí)的速度; 當(dāng)所述手的速度是第一速度時(shí),將所述用戶界面的菜單項(xiàng)垂直滾動(dòng)第一量;以及當(dāng)所述手的速度是第二速度時(shí),將所述用戶界面的菜單項(xiàng)垂直滾動(dòng)第二量,所述第一量小于所述第二量,所述第一速度小于所述第二速度。
8.如權(quán)利要求1所述的方法,其特征在于 所述第一半空中姿勢是按壓姿勢;對應(yīng)于所述按壓姿勢的至少一個(gè)用戶界面動(dòng)作包括對所述用戶界面的菜單項(xiàng)的選擇;確定所述人類目標(biāo)的移動(dòng)是否滿足用于所述按壓姿勢的一個(gè)或多個(gè)過濾器包括 確定所述人類目標(biāo)的手的位置是否滿足起始位置參數(shù),確定所述手從所述起始位置移動(dòng)的方向是否滿足方向參數(shù),所述方向參數(shù)對應(yīng)于所述人類目標(biāo)的手離開所述人類目標(biāo)的身體且朝向所述捕捉設(shè)備的移動(dòng), 確定所述人類目標(biāo)的手的結(jié)束位置, 確定所述手在所述移動(dòng)期間行進(jìn)的距離是否滿足距離參數(shù), 確定滿足所述距離參數(shù)的所述手的移動(dòng)是否滿足時(shí)間參數(shù);以及執(zhí)行對菜單項(xiàng)目的選擇包括選擇對應(yīng)于所述人類目標(biāo)的手的結(jié)束位置的第一菜單項(xiàng)。
9.如權(quán)利要求1所述的方法,其特征在于 所述第一半空中姿勢是回退姿勢;對應(yīng)于所述回退姿勢的至少一個(gè)用戶界面動(dòng)作包括在用戶界面內(nèi)回退導(dǎo)航; 確定所述人類目標(biāo)的移動(dòng)是否滿足用于所述回退姿勢的一個(gè)或多個(gè)過濾器包括 確定所述人類目標(biāo)的手的位置是否滿足起始位置參數(shù),確定所述手從所述起始位置移動(dòng)的方向是否滿足方向參數(shù),所述方向參數(shù)對應(yīng)于所述人類目標(biāo)的手離開所述捕捉設(shè)備且朝向所述人類目標(biāo)的身體的移動(dòng)。
10.如權(quán)利要求1所述的方法,其特征在于 所述半空中姿勢是雙手按壓姿勢;對應(yīng)于所述雙手按壓姿勢的至少一個(gè)用戶界面動(dòng)作包括在用戶界面內(nèi)回退導(dǎo)航; 確定所述人類目標(biāo)的移動(dòng)是否滿足用于所述雙手按壓姿勢的一個(gè)或多個(gè)過濾器包括確定所述人類目標(biāo)的右手的位置是否滿足第一起始位置參數(shù), 確定所述人類目標(biāo)的左手的位置是否滿足第二起始位置參數(shù), 確定所述右手從其起始位置移動(dòng)的方向是否滿足第一方向參數(shù),所述第一方向參數(shù)對應(yīng)于所述右手離開所述人類目標(biāo)的身體且朝向所述捕捉設(shè)備的移動(dòng),確定所述左手從其起始位置移動(dòng)的方向是否滿足第二方向參數(shù),所述第二方向參數(shù)對應(yīng)于所述左手離開所述人類目標(biāo)的身體且朝向所述捕捉設(shè)備的移動(dòng), 確定所述左手的移動(dòng)和所述右手的移動(dòng)是否滿足協(xié)調(diào)參數(shù)。
11.如權(quán)利要求1所述的方法,其特征在于 所述半空中姿勢是雙手壓縮姿勢;對應(yīng)于所述雙手壓縮姿勢的至少一個(gè)用戶界面動(dòng)作包括在用戶界面內(nèi)回退導(dǎo)航; 確定所述人類目標(biāo)的移動(dòng)是否滿足用于所述雙手壓縮姿勢的一個(gè)或多個(gè)過濾器包括確定所述人類目標(biāo)的右手的位置是否滿足第一起始位置參數(shù), 確定所述人類目標(biāo)的左手的位置是否滿足第二起始位置參數(shù), 確定所述右手從其起始位置移動(dòng)的方向是否滿足第一方向參數(shù),所述第一方向參數(shù)對應(yīng)于所述右手朝所述人類目標(biāo)的身體的左側(cè)的移動(dòng),確定所述左手從其起始位置移動(dòng)的方向是否滿足第二方向參數(shù),所述第二方向參數(shù)對應(yīng)于所述左手朝所述人類目標(biāo)的身體的右側(cè)的移動(dòng),確定所述左手的移動(dòng)和所述右手的移動(dòng)是否滿足協(xié)調(diào)參數(shù)。
12.如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)圖像是多個(gè)深度圖像。
13.一種用于跟蹤用戶移動(dòng)以控制用戶界面的系統(tǒng),包括 提供所述用戶界面03)的操作系統(tǒng)(196);與圖像捕捉設(shè)備OO)通信的跟蹤系統(tǒng)(10),用以接收包括人類目標(biāo)的捕捉區(qū)域的深度信息,以及創(chuàng)建映射人類目標(biāo)的隨著時(shí)間的移動(dòng)的骨架模型;存儲(chǔ)多個(gè)姿勢過濾器G50a、450b)的姿勢庫(192),每個(gè)姿勢過濾器包含用于至少一個(gè)姿勢的信息,所述多個(gè)姿勢過濾器中的一個(gè)或多個(gè)姿勢過濾器指定對應(yīng)的姿勢應(yīng)由某一只手或由雙手來執(zhí)行;以及與所述姿勢庫(19 通信的姿勢識(shí)別引擎(190),用于接收所述骨架模型以及確定所述人類目標(biāo)的移動(dòng)是否滿足所述多個(gè)姿勢過濾器中的一個(gè)或多個(gè),當(dāng)所述人類目標(biāo)的移動(dòng)滿足所述多個(gè)姿勢過濾器中的一個(gè)或多個(gè)時(shí),所述姿勢識(shí)別引擎向所述操作系統(tǒng)提供指示。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于所述姿勢識(shí)別引擎確定所述用戶界面的上下文,且作為響應(yīng),訪問所述多個(gè)姿勢過濾器中的對應(yīng)于所確定的上下文的子集,所述子集包括比所述多個(gè)姿勢過濾器中的全部姿勢過濾器少的姿勢過濾器,所述姿勢識(shí)別引擎僅確定所述人類目標(biāo)的移動(dòng)是否滿足所述多個(gè)姿勢過濾器的所述子集中的一個(gè)或多個(gè)姿勢過濾器。
15.如權(quán)利要求13所述的系統(tǒng),還包括執(zhí)行所述操作系統(tǒng)、姿勢庫和姿勢識(shí)別引擎的至少一個(gè)第一處理器; 所述圖像捕捉設(shè)備;從所述圖像捕捉設(shè)備接收所述深度信息并執(zhí)行所述跟蹤系統(tǒng)的至少一個(gè)第二處理器, 所述深度信息包括多個(gè)深度圖像。
全文摘要
提供了用于操縱用戶界面的姿勢和姿勢識(shí)別。提供了象征性姿勢及相關(guān)聯(lián)的識(shí)別技術(shù)用于控制例如通用計(jì)算系統(tǒng)或多媒體控制臺(tái)的操作系統(tǒng)所提供的系統(tǒng)用戶界面之類的系統(tǒng)用戶界面。在半空中的象征性姿勢移動(dòng)是由用戶利用或無需輸入設(shè)備的幫助而執(zhí)行的。提供了捕捉設(shè)備來為包括人類目標(biāo)的捕捉區(qū)域的三維表示生成深度圖像。使用骨架映射來跟蹤人類目標(biāo)以捕捉用戶的半空中運(yùn)動(dòng)。骨架映射數(shù)據(jù)被用于使用姿勢過濾器來標(biāo)識(shí)對應(yīng)于預(yù)定義的姿勢的移動(dòng),姿勢過濾器提出了用于確定目標(biāo)的移動(dòng)何時(shí)指示出可行姿勢的參數(shù)。當(dāng)檢測到姿勢時(shí),執(zhí)行一個(gè)或多個(gè)預(yù)定義的用戶界面控制動(dòng)作。
文檔編號G06F3/01GK102262438SQ201110138178
公開日2011年11月30日 申請日期2011年5月17日 優(yōu)先權(quán)日2010年5月18日
發(fā)明者A·普洛斯, A·瓦賽爾, A·達(dá)亞爾, A·馬丁利, B·雷維爾, C·克萊恩 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1