專利名稱:姿勢風(fēng)格識別和獎勵的制作方法
姿勢風(fēng)格識別和獎勵
背景技術(shù):
在過去,諸如計算機(jī)游戲和多媒體應(yīng)用程序等計算應(yīng)用程序使用控制命令來允許 用戶操縱游戲人物或應(yīng)用程序的其他方面。通常,此類控制命令使用例如控制器、遙控器、 鍵盤、鼠標(biāo)等來輸入。近來,計算機(jī)游戲和多媒體應(yīng)用程序已開始使用照相機(jī)和軟件姿勢識 別引擎來提供人機(jī)接口(“HCI”)。使用HCI,檢測、解釋用戶姿勢并將其用于控制游戲人物 或應(yīng)用程序的其他方面。在常規(guī)的游戲和多媒體應(yīng)用程序中,HCI用于在通過/失敗的基礎(chǔ)上測量用戶是 否響應(yīng)于提示或場景適當(dāng)?shù)貓?zhí)行了給定姿勢。相反,常規(guī)系統(tǒng)不測量姿勢是如何執(zhí)行的。只 要HCI系統(tǒng)確定所請求的姿勢被執(zhí)行到一閾值水平,就根據(jù)游戲/應(yīng)用程序度量來獎勵用 戶。然而,用戶的移動可提供遠(yuǎn)多于所請求的姿勢是否被執(zhí)行到閾值水平的大量信息。不 同用戶以不同方式執(zhí)行姿勢。一些用戶可比另一些用戶更優(yōu)美地執(zhí)行給定姿勢。一些用戶 可能在執(zhí)行一姿勢時比另一些用戶更努力地嘗試并盡更大的全力。常規(guī)的HCI系統(tǒng)在測量 給定姿勢的通過/失敗狀態(tài)時未將這些參數(shù)考慮在內(nèi)。
發(fā)明內(nèi)容
此處所公開的是用于確定一給定姿勢是否是采用一特定風(fēng)格來執(zhí)行的系統(tǒng)和方 法。該附加信息然后可用于個性化游戲或多媒體體驗(yàn),從而因用戶的個人風(fēng)格而獎勵用戶。 在一個實(shí)施例中,本發(fā)明的技術(shù)涉及一種游戲系統(tǒng),該游戲系統(tǒng)包括用于捕捉與用戶的運(yùn) 動有關(guān)的數(shù)據(jù)的圖像捕捉設(shè)備、用于從該捕捉設(shè)備接收圖像數(shù)據(jù)并主存游戲應(yīng)用程序的計 算環(huán)境、以及耦合到該計算環(huán)境的視聽設(shè)備。該計算環(huán)境包括一階姿勢識別引擎,用于接收與用戶的運(yùn)動有關(guān)的數(shù)據(jù)并在通過 /失敗的基礎(chǔ)上確定用戶的運(yùn)動作為預(yù)定義姿勢是否是合格的。該計算環(huán)境還包括用于接 收數(shù)據(jù)或從該數(shù)據(jù)導(dǎo)出的信息的二階姿勢識別引擎。二階姿勢識別引擎除了對用戶的運(yùn)動 作為預(yù)定義姿勢是否是合格的閾值判定之外還確定用戶的運(yùn)動是否包括作為與用戶運(yùn)動 相關(guān)聯(lián)的預(yù)定義風(fēng)格是合格的風(fēng)格屬性。該計算環(huán)境還存儲二階姿勢識別引擎使用的一組 規(guī)則。該組存儲的規(guī)則包括對一組預(yù)定義用戶運(yùn)動何時被解釋為預(yù)定義風(fēng)格的定義。該視聽設(shè)備基于從計算環(huán)境接收到的信息來呈現(xiàn)用戶和用戶的運(yùn)動的圖形表示。 用戶或用戶周圍的圖形標(biāo)識可通過以表示被二階姿勢識別引擎確定為存在的風(fēng)格的圖形 來示出用戶的運(yùn)動來增強(qiáng)。
圖IA和IB示出了伴隨用戶玩游戲的目標(biāo)識別、分析和跟蹤系統(tǒng)的示例實(shí)施例。圖2示出了可在目標(biāo)識別、分析和跟蹤系統(tǒng)中使用的捕捉設(shè)備的示例實(shí)施例。圖3A示出了可用于在目標(biāo)識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算 環(huán)境的示例實(shí)施例。圖IBB示出了可用于在目標(biāo)識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的另一示例實(shí)施例。圖4A示出了從圖2的目標(biāo)識別、分析和跟蹤系統(tǒng)生成的用戶的骨架映射。圖4B示出了圖2所示的姿勢識別器體系結(jié)構(gòu)的進(jìn)一步細(xì)節(jié)。圖5A和5B示出了可如何堆疊姿勢過濾器來創(chuàng)建更復(fù)雜的姿勢過濾器。圖6A、6B、6C、6D和6E示出了用戶502在橄欖球視頻游戲中可以作出以便發(fā)出“完 全接球”信號的示例姿勢。圖7A、7B、7C、7D和7E示出了在解析圖像數(shù)據(jù)的每一幀來產(chǎn)生用戶的骨架圖時圖 6A、6B、6C、6D和6E的示例“完全接球”姿勢。圖8是包括一階和二階姿勢識別引擎的姿勢識別器引擎的框圖。圖9是示出二階姿勢識別引擎的框圖。圖10是示出二階姿勢識別引擎的操作的流程圖。圖11是示出用于確定給定移動是否如二階姿勢識別引擎所檢測的滿足所存儲的 與風(fēng)格有關(guān)的規(guī)則的詳細(xì)步驟的流程圖。
具體實(shí)施例方式現(xiàn)在將參考圖1-11來描述本發(fā)明的技術(shù)的各實(shí)施例,本發(fā)明一般涉及其中用戶 姿勢控制在諸如游戲控制臺、計算機(jī)等計算環(huán)境上執(zhí)行的應(yīng)用程序的系統(tǒng)。在各實(shí)施例中, 本發(fā)明的系統(tǒng)以兩個過程檢測并解釋用戶移動。第一個過程由標(biāo)識用戶作出的特定姿勢的 一階姿勢識別弓I擎來執(zhí)行。在各實(shí)施例中,一旦一姿勢被一階識別弓I擎識別出,二階姿勢識 別引擎就可以執(zhí)行確定是否能夠得出關(guān)于所檢測到的姿勢的性質(zhì)方面的任何結(jié)論的第二 個過程。這些性質(zhì)方面在本文中有時被稱為姿勢風(fēng)格。姿勢風(fēng)格可涉及姿勢的各種屬性, 例如包括·執(zhí)行姿勢的優(yōu)美度;·用戶執(zhí)行姿勢所盡的努力;·用戶在執(zhí)行姿勢時的身體控制;·用戶在執(zhí)行姿勢時的移動的精確度;·用戶在執(zhí)行姿勢時的移動的效率;·用戶在執(zhí)行姿勢時的爆發(fā)或劇烈移動;·姿勢的緩慢和平穩(wěn)程度的測量;·姿勢的冷靜和放松程度的測量;構(gòu)想了其他風(fēng)格。以下詳細(xì)討論包括用于執(zhí)行本發(fā)明的技術(shù)的一階和二階姿勢識 別引擎在內(nèi)的硬件和軟件。最初參考圖1A-2,用于實(shí)現(xiàn)本發(fā)明的技術(shù)的硬件包括目標(biāo)識別、分析和跟蹤系統(tǒng) 10,該系統(tǒng)可用于識別、分析和/或跟蹤諸如用戶18等的人類目標(biāo)。目標(biāo)識別、分析和跟蹤 系統(tǒng)10的各實(shí)施例包括用于執(zhí)行游戲或其他應(yīng)用程序的計算環(huán)境12,以及用于從游戲或 其他應(yīng)用程序提供音頻和視覺表示的視聽設(shè)備16。系統(tǒng)10還包括用于檢測設(shè)備20捕捉的 用戶的姿勢的捕捉設(shè)備20,計算環(huán)境接收并使用該姿勢來控制游戲或其他應(yīng)用程序。這些 組件中的每一各都會在以下詳細(xì)描述。如圖IA和IB所示,在一示例實(shí)施例中,在計算環(huán)境12上執(zhí)行的應(yīng)用程序可以是用戶18可能正在玩的拳擊游戲。例如,計算環(huán)境12可使用視聽設(shè)備16來向用戶18提供 拳擊對手22的視覺表示。計算環(huán)境12還可使用視聽設(shè)備16來提供用戶18可通過他的或 她的移動來控制的玩家化身M的視覺表示。例如,如圖IB所示,用戶18可在物理空間中 揮重拳來使得玩家化身M在游戲空間中揮重拳。因此,根據(jù)一示例實(shí)施例,目標(biāo)識別、分析 和跟蹤系統(tǒng)10的計算環(huán)境12和捕捉設(shè)備20可用于識別和分析用戶18在物理空間中的重 拳,從而使得該重拳可被解釋為對游戲空間中的玩家化身40的游戲控制。用戶18的其他移動也可被解釋為其他控制命令或動作,諸如上下快速擺動、閃 避、滑步、格擋、用拳猛擊或揮動各種不同力度的重拳等控制。此外,如以下所解釋的,一旦 系統(tǒng)確定姿勢是重拳、上下快速擺動、閃避、滑步、格擋等中的一個,則可確定該姿勢在物理 空間中的附加性質(zhì)方面。這些性質(zhì)方面可影響該姿勢(或其他音頻或視覺特征)如何在游 戲空間中顯示,如以下所解釋的。在各示例實(shí)施例中,諸如用戶18等的人類目標(biāo)可具有一物體。在這些實(shí)施例中, 電子游戲的用戶可手持物體從而可以使用玩家和物體的運(yùn)動來調(diào)整和/或控制游戲的參 數(shù)。例如,可以跟蹤并利用玩家手持球拍的運(yùn)動來控制電子運(yùn)動游戲中的屏幕上球拍。在 另一示例實(shí)施例中,可以跟蹤并利用玩家手持物體的運(yùn)動來控制電子格斗游戲中的屏幕上 武器。圖2示出可在目標(biāo)識別、分析和跟蹤系統(tǒng)10中使用的捕捉設(shè)備20的示例實(shí)施例。 關(guān)于用于本發(fā)明的技術(shù)的捕捉設(shè)備的進(jìn)一步細(xì)節(jié)在共同待審的題為“GESTURE TOOL(姿勢
工具),,的專利申請第_號和共同待審的題為“STANDARD GESTURES(標(biāo)準(zhǔn)姿
勢)”的專利申請第_號中闡明,這些申請的每一個都通過整體引用結(jié)合于此。
然而,在一示例實(shí)施例中,捕捉設(shè)備20可被配置成捕捉帶有深度圖像視頻,該深度圖像可 包括經(jīng)由任何合適的技術(shù)——包括例如飛行時間、結(jié)構(gòu)化光、立體圖像等——的深度值。根 據(jù)一實(shí)施例,捕捉設(shè)備20可將所計算的深度信息組織為“Z層”,即可與從深度照相機(jī)沿其 視線延伸的Z軸垂直的層。如圖2所示,捕捉設(shè)備20可包括圖像照相機(jī)組件22。根據(jù)一示例實(shí)施例,圖像照 相機(jī)組件22可以是可捕捉場景的深度圖像的深度照相機(jī)。深度圖像可包括所捕捉的場景 的二維0-D)像素區(qū)域,其中2-D像素區(qū)域中的每一像素可表示來自照相機(jī)的所捕捉的場 景中的對象的長度,該長度可采用例如厘米、毫米等單位。如圖2所示,根據(jù)一示例實(shí)施例,圖像照相機(jī)組件22可包括可用于捕捉場景的深 度圖像的頂光組件對、三維(3-D)照相機(jī)沈、和RGB照相機(jī)觀。例如,在飛行時間分析中, 捕捉設(shè)備20的頂光組件M可將紅外光發(fā)射到場景上,然后可使用傳感器(未示出),使用 例如3-D照相機(jī)沈和/或RGB照相機(jī)觀,來檢測來自場景中的一個或多個目標(biāo)和對象的表 面的反向散射光。根據(jù)另一實(shí)施例,捕捉設(shè)備20可包括兩個或更多物理上分開的照相機(jī),這些照相 機(jī)可從不同角度查看場景以獲得視覺立體數(shù)據(jù),該視覺立體數(shù)據(jù)可被解析以生成深度信 息,捕捉設(shè)備20還可包括話筒30。話筒30可包括可接收聲音并將其轉(zhuǎn)換成電信號的 變換器或傳感器。根據(jù)一實(shí)施例,話筒30可用于減少目標(biāo)識別、分析和跟蹤系統(tǒng)10中的捕 捉設(shè)備20與計算環(huán)境12之間的反饋。另外,話筒30可用于接收也可由用戶提供的音頻信號,以控制可由計算環(huán)境12執(zhí)行的諸如游戲應(yīng)用程序、非游戲應(yīng)用程序等應(yīng)用程序。在一示例實(shí)施例中,捕捉設(shè)備20還可包括可與圖像照相機(jī)組件22進(jìn)行有效通信 的處理器32。處理器32可包括可執(zhí)行指令的標(biāo)準(zhǔn)處理器、專用處理器、微處理器等,這些指 令可包括用于接收深度圖像的指令、用于確定合適的目標(biāo)是否可被包括在深度圖像中的指 令、用于將合適的目標(biāo)轉(zhuǎn)換成該目標(biāo)的骨架表示或模型的指令、或任何其他合適的指令。捕捉設(shè)備20還可包括存儲器組件34,存儲器組件34可存儲可由處理器32執(zhí)行的 指令、3-D照相機(jī)或RGB照相機(jī)所捕捉的圖像或圖像的幀、或任何其他合適的信息、圖像等 等。根據(jù)一示例實(shí)施例,存儲器組件34可包括隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、 高速緩存、閃存、硬盤、或任何其他合適的存儲組件。如圖2所示,在一實(shí)施例中,存儲器組 件34可以是與圖像捕捉組件22和處理器32進(jìn)行通信的單獨(dú)的組件。根據(jù)另一實(shí)施例,存 儲器組件34可被集成到處理器32和/或圖像捕捉組件22中。如圖2所示,捕捉設(shè)備20可經(jīng)由通信鏈路36與計算環(huán)境12進(jìn)行通信。通信鏈 路36可以是包括例如USB連接、火線連接、以太網(wǎng)電纜連接等的有線連接和/或諸如無線 802. lib,802. llg、802. Ila或802. Iln連接等無線連接。根據(jù)一實(shí)施例,計算環(huán)境12可經(jīng) 由通信鏈路36向捕捉設(shè)備20提供可用于確定例如何時捕捉場景的時鐘。另外,捕捉設(shè)備20可經(jīng)由通信鏈路36向計算環(huán)境12提供深度信息和由例如3-D 照相機(jī)沈和/或RGB照相機(jī)觀捕捉的圖像,以及可由捕捉設(shè)備20生成的骨架模型。存在 各種用于確定捕捉設(shè)備20所檢測的目標(biāo)或?qū)ο笫欠駥?yīng)于人類目標(biāo)的已知技術(shù)。骨架映 射技術(shù)因而可用于確定該用戶的骨架上的各個點(diǎn),手、腕、肘、膝、鼻、踝、肩的關(guān)節(jié),以及骨 盆與脊椎相交之處。其他技術(shù)包括將圖像變換成該人的身體模型表示以及將圖像變換成該 人的網(wǎng)格模型表示。骨架模型然后可被提供給計算環(huán)境12,使得計算環(huán)境可跟蹤骨架模型并呈現(xiàn)與該 骨架模型相關(guān)聯(lián)的化身。計算環(huán)境還可基于例如從骨架模型中識別出的用戶的姿勢和姿勢 風(fēng)格來確定在計算機(jī)環(huán)境上執(zhí)行的應(yīng)用程序中要執(zhí)行哪些控制命令。例如,如圖2所示,計 算環(huán)境12可包括姿勢識別器引擎190。姿勢識別器引擎190將在下文解釋,但一般可包括 姿勢過濾器集合,每一姿勢過濾器包括關(guān)于骨架模型可執(zhí)行(在用戶移動時)的姿勢的信 息??蓪⒂烧障鄼C(jī)26 J8和捕捉設(shè)備20捕捉的骨架模型形式的數(shù)據(jù)以及與其相關(guān)聯(lián)的移 動同姿勢識別器引擎190中的姿勢過濾器進(jìn)行比較來標(biāo)識用戶(如骨架模型所表示的)何 時執(zhí)行了一個或多個姿勢。那些姿勢可與應(yīng)用程序的各種控制命令相關(guān)聯(lián)。因此,計算環(huán) 境12可使用姿勢識別器引擎190來解釋骨架模型的移動并基于該移動來控制應(yīng)用程序。圖3A示出了可用于在目標(biāo)識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算 環(huán)境的示例實(shí)施例。諸如以上參考圖1A-2描述的計算環(huán)境12等計算環(huán)境可以是諸如游戲 控制臺等多媒體控制臺100。如圖3A所示,多媒體控制臺100包括具有1級高速緩存102、 2級高速緩存104和閃存ROM 106的中央處理單元(CPU) 101。1級高速緩存102和2級高 速緩存104臨時存儲數(shù)據(jù)并因此減少存儲器訪問周期數(shù),從而改進(jìn)處理速度和吞吐量。CPU 101可以被設(shè)置成具有一個以上的核,以及附加的1級和2級高速緩存102和104。閃存 R0M106可存儲在多媒體控制臺100通電時在引導(dǎo)進(jìn)程的初始階段加載的可執(zhí)行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形 成用于高速、高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從GPU108輸送到視頻編
8碼器/視頻編解碼器114。視頻處理流水線將數(shù)據(jù)輸出到A/V(音頻/視頻)端口 140以傳 輸?shù)诫娨暀C(jī)或其它顯示器。存儲器控制器110連接到GPU 108以方便處理器訪問各種類型 的存儲器112,諸如但不局限于RAM。多媒體控制臺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、和外置存儲器設(shè)備146(例如閃存、外置⑶/DVD ROM驅(qū)動器、可移動介質(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)存儲器143以存儲在引導(dǎo)進(jìn)程期間加載的應(yīng)用程序數(shù)據(jù)。提供媒體驅(qū)動 器144且其可包括DVD/CD驅(qū)動器、硬盤驅(qū)動器、或其它可移動媒體驅(qū)動器等。媒體驅(qū)動器 144對于多媒體控制臺100可以內(nèi)置或外置。應(yīng)用程序數(shù)據(jù)可經(jīng)由媒體驅(qū)動器144訪問,以 由多媒體控制臺100執(zhí)行、回放等。媒體驅(qū)動器144經(jīng)由諸如串行ATA總線或其它高速連 接(例如IEEE 1394)等總線連接到I/O控制器120。系統(tǒng)管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務(wù)功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應(yīng)的音頻處理 流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻 處理流水線將數(shù)據(jù)輸出到A/V端口 140以供外置音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發(fā)光二極管)或其它指示器的功能。系統(tǒng)供電模塊136向 多媒體控制臺100的組件供電。風(fēng)扇138冷卻多媒體控制臺100內(nèi)的電路。CPU 101、GPU 108、存儲器控制器110、和多媒體控制臺100內(nèi)的各個其它組件經(jīng) 由一條或多條總線互連,包括串行和并行總線、存儲器總線、外圍總線、和使用各種總線架 構(gòu)中的任一種的處理器或局部總線。作為示例,這種架構(gòu)可以包括外圍組件互連(PCI)總 線、PCI-Express 總線等。當(dāng)多媒體控制臺100通電時,應(yīng)用程序數(shù)據(jù)可從系統(tǒng)存儲器143加載到存儲器112 和/或高速緩存102、104中并在CPU 101上執(zhí)行。應(yīng)用程序可呈現(xiàn)在導(dǎo)航到多媒體控制臺 100上可用的不同媒體類型時提供一致的用戶體驗(yàn)的圖形用戶界面。在操作中,媒體驅(qū)動 器144中包含的應(yīng)用程序和/或其它媒體可從媒體驅(qū)動器144啟動或播放,以向多媒體控 制臺100提供附加功能。多媒體控制臺100可通過將該系統(tǒng)簡單地連接到電視機(jī)或其它顯示器而作為獨(dú) 立系統(tǒng)來操作。在該獨(dú)立模式中,多媒體控制臺100允許一個或多個用戶與該系統(tǒng)交互、看 電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 1 或無線適配器148可用的寬帶連接的集成, 多媒體控制臺100還可作為較大網(wǎng)絡(luò)社區(qū)中的參與者來操作。當(dāng)多媒體控制臺100通電時,可以保留一定量的硬件資源以供多媒體控制臺操作 系統(tǒng)作系統(tǒng)使用。這些資源可以包括存儲器保留(例如,16MB)、CPU和GPU周期(例如, 5%)、網(wǎng)絡(luò)帶寬(例如,SlAs)等。因?yàn)檫@些資源是在系統(tǒng)引導(dǎo)時保留的,所以保留的資源 對應(yīng)用程序而言是不存在的。
更具體地,存儲器保留較佳地足夠大,以包含啟動內(nèi)核、并發(fā)系統(tǒng)應(yīng)用程序和驅(qū)動 程序。CPU保留較佳地為恒定,使得若保留的CPU用量未被系統(tǒng)應(yīng)用程序使用,則空閑線程 將消耗任何未使用的周期。對于GPU保留,通過使用調(diào)度代碼在覆蓋圖中呈現(xiàn)彈出窗口的GPU中斷來顯示由 系統(tǒng)應(yīng)用程序生成的輕量消息(例如,彈出窗口)。覆蓋圖所需的存儲器量取決于覆蓋區(qū)域 大小,并且覆蓋圖較佳地隨屏幕分辨率縮放。在并發(fā)系統(tǒng)應(yīng)用程序使用完整用戶界面的情 況下,優(yōu)選使用獨(dú)立于應(yīng)用程序分辨率的分辨率。定標(biāo)器可用于設(shè)置該分辨率,從而無需改 變頻率,也就不會引起TV的重新同步。在多媒體控制臺100引導(dǎo)且系統(tǒng)資源被保留之后,就執(zhí)行并發(fā)系統(tǒng)應(yīng)用程序來提 供系統(tǒng)功能。系統(tǒng)功能被封裝在一組在上述保留的系統(tǒng)資源中執(zhí)行的系統(tǒng)應(yīng)用程序中。操 作系統(tǒng)內(nèi)核標(biāo)識是與游戲應(yīng)用程序線程相對的系統(tǒng)應(yīng)用程序線程的線程。系統(tǒng)應(yīng)用程序較 佳地被調(diào)度在預(yù)定時間且以預(yù)定間隔在CPU 101上運(yùn)行,從而為應(yīng)用程序提供一致的系統(tǒng) 資源視圖。進(jìn)行調(diào)度是為了把對在控制臺上運(yùn)行的游戲應(yīng)用程序的高速緩存中斷最小化。當(dāng)并發(fā)系統(tǒng)應(yīng)用程序需要音頻時,則由于時間敏感性而異步調(diào)度音頻處理給游戲 應(yīng)用程序。多媒體控制臺應(yīng)用程序管理器(如下所述)在系統(tǒng)應(yīng)用程序活動時控制游戲應(yīng) 用程序的音頻水平(例如,靜音、衰減)。輸入設(shè)備(例如,控制器142(1)和142( )由游戲應(yīng)用程序和系統(tǒng)應(yīng)用程序共 享。輸入設(shè)備不是保留資源,但卻在系統(tǒng)應(yīng)用程序和游戲應(yīng)用程序之間切換以使其各自具 有設(shè)備的焦點(diǎn)。應(yīng)用程序管理器較佳地控制輸入流的切換,而無需知曉游戲應(yīng)用程序的知 識,并且驅(qū)動程序維護(hù)有關(guān)焦點(diǎn)切換的狀態(tài)信息。照相機(jī)沈、觀和捕捉設(shè)備20可定義控制 臺100的附加輸入設(shè)備。圖IBB示出了可用于在目標(biāo)識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算 環(huán)境220的另一示例實(shí)施例,該計算環(huán)境可以是圖1A-2所示的計算環(huán)境12。計算系統(tǒng)環(huán) 境220只是合適的操作環(huán)境的一個示例,并且不旨在對所公開的主題的使用范圍或功能提 出任何限制。也不應(yīng)該將計算環(huán)境220解釋為對示例性操作環(huán)境220中示出的任一組件或 其組合有任何依賴性或要求。在某些實(shí)施例中,所描繪的各種計算元件可包括被配置成實(shí) 例化本發(fā)明的具體方面的電路。例如,本發(fā)明中使用的術(shù)語“電路”可包括被配置成通過固 件或開關(guān)來執(zhí)行功能的專用硬件組件。在其他示例實(shí)施例中,術(shù)語“電路”可包括由具體化 可操作來執(zhí)行功能的邏輯的軟件指令來配置的通用處理單元等。在其中電路包括硬件和軟 件的組合的實(shí)施例中,實(shí)現(xiàn)者可以便攜具體化邏輯的源代碼,并且該源代碼可被編譯成可 由通用處理單元來處理的機(jī)器可讀代碼。由于本領(lǐng)域的技術(shù)人員能理解,現(xiàn)有技術(shù)已經(jīng)發(fā) 展到在硬件、軟件或硬件/軟件的組合之間幾乎沒有差別的地步,因此是選擇硬件還是軟 件來實(shí)現(xiàn)具體功能是留給實(shí)現(xiàn)者的設(shè)計選擇。更具體地,本領(lǐng)域的技術(shù)人員可以理解,軟件 進(jìn)程可被變換成等效的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程。由此,對硬 件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是一個設(shè)計選擇并留給實(shí)現(xiàn)者。在圖;3B中,計算環(huán)境220包括計算機(jī)Ml,其通常包括各種計算機(jī)可讀介質(zhì)。計 算機(jī)可讀介質(zhì)可以是能由計算機(jī)241訪問的任何可用介質(zhì),而且包含易失性和非易失性介 質(zhì)、可移動和不可移動介質(zhì)。系統(tǒng)存儲器222包括諸如ROM 223和RAM 260等易失性和/或 非易失性存儲器形式的計算機(jī)存儲介質(zhì)?;据斎?輸出系統(tǒng)224 ¢10 包括如在啟動時幫助在計算機(jī)Ml內(nèi)的元件之間傳輸信息的基本例程,它通常儲存在ROM 223中。RAM 260 通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示 例而非局限,圖3B示出了操作系統(tǒng)225、應(yīng)用程序226、其它程序模塊227和程序數(shù)據(jù)228。計算機(jī)241還可以包括其他可移動/不可移動、易失性/非易失性計算機(jī)存儲介 質(zhì)。僅作為示例,圖3B示出了對不可移動、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動器238,對 可移動、非易失性磁盤邪4進(jìn)行讀寫的磁盤驅(qū)動器239,以及對諸如CD ROM或其它光學(xué)介質(zhì) 等可移動、非易失性光盤253進(jìn)行讀寫的光盤驅(qū)動器M0??梢栽谑纠圆僮鳝h(huán)境中使用 的其他可移動/不可移動、易失性/非易失性計算機(jī)存儲介質(zhì)包括但不限于,磁帶盒、閃存 卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器238通常由不可移動 存儲器接口,如接口 234連接至系統(tǒng)總線221,磁盤驅(qū)動器239和光盤驅(qū)動器240通常由可 移動存儲器接口,如接口 235連接至系統(tǒng)總線221。以上討論并在圖;3B中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)存儲介質(zhì)為計算機(jī)241 提供了對計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。在圖3B中,例如,硬盤 驅(qū)動器238被示為存儲操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256和程序數(shù)據(jù)255。注 意,這些組件可以與操作系統(tǒng)225、應(yīng)用程序226、其他程序模塊227和程序數(shù)據(jù)2 相同, 也可以與它們不同。操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256和程序數(shù)據(jù)255在這里 被標(biāo)注了不同的標(biāo)號是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤 251和定點(diǎn)設(shè)備252(通常稱為鼠標(biāo)、跟蹤球或觸摸墊)向計算機(jī)241輸入命令和信息。其 他輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些 和其他輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口 236連接至處理單元259,但也可 以由其他接口和總線結(jié)構(gòu),如并行端口、游戲端口或通用串行總線(USB)連接。照相機(jī)沈、 28和捕捉設(shè)備20可定義控制臺100的附加輸入設(shè)備。監(jiān)視器242或其他類型的顯示設(shè)備 也經(jīng)由接口,如視頻接口 232連接至系統(tǒng)總線221。除監(jiān)視器以外,計算機(jī)還可以包括其他 外圍輸出設(shè)備,如揚(yáng)聲器244和打印機(jī)M3,它們可以通過輸出外圍接口 233連接。計算機(jī)241可使用至一個或多個遠(yuǎn)程計算機(jī),如遠(yuǎn)程計算機(jī)M6的邏輯連接在網(wǎng) 絡(luò)化環(huán)境中操作。遠(yuǎn)程計算機(jī)246可以是個人計算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或 其他常見的網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括許多或所有以上相對于計算機(jī)241描述的元件,盡管在 圖3B中僅示出了存儲器存儲設(shè)備M7。圖:3B中所示的邏輯連接包括局域網(wǎng)(LAN) 245和廣 域網(wǎng)(WAN049,但也可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機(jī)網(wǎng)絡(luò)、 內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機(jī)241通過網(wǎng)絡(luò)接口或適配器237連接至LAN 2450當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機(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。在網(wǎng)絡(luò)化環(huán)境中,關(guān)于計算機(jī) 241所描述的程序模塊或其部分可被儲存在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例而非限制,圖 3B示出了遠(yuǎn)程應(yīng)用程序248駐留在存儲器設(shè)備247上??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例 性的,且可以使用在計算機(jī)之問建立通信鏈路的其他手段。如上所述,計算環(huán)境12內(nèi)的姿勢識別器引擎190被設(shè)置來接收姿勢信息并從該信 息中標(biāo)識姿勢和姿勢風(fēng)格。具體地,姿勢識別器引擎190包括用于檢測姿勢的一階識別引擎190a,以及用于檢測所檢測到的姿勢的性質(zhì)方面的二階識別引擎190b?,F(xiàn)在將描述一階 識別引擎190a,之后描述二階識別引擎190b。圖4A描繪了可從姿勢設(shè)備20生成的用戶的示例骨架映射。在該實(shí)施例中,標(biāo)識 各種關(guān)節(jié)和骨骼每一手302、每一前臂304、每一肘306、每一二頭肌308、每一肩310、每一 臀312、每一大腿314、每一膝316、每一前腿318、每一腳320、頭322、軀干324、脊椎的頂部 326和底部328、以及腰330。在跟蹤多個點(diǎn)的情況下,可標(biāo)識另外的特征,如手指或腳趾的 骨骼和關(guān)節(jié),或臉部的各個特征,如鼻和眼。用戶可通過移動他/她的身體創(chuàng)建姿勢。姿勢包括用戶的運(yùn)動或姿態(tài),其可被捕 捉為圖像數(shù)據(jù)并解析其意義。姿勢可以是動態(tài)的,包括運(yùn)動,如模仿扔球。姿勢可以是靜態(tài) 姿態(tài),如在一個人的軀干3 前面交叉握住他的前臂304。姿勢也可包含道具,如通過揮動 仿制的劍。姿勢可包括多于一個身體部位,如拍雙手302,或是較微小的運(yùn)動,如撅起一個人 的嘴唇。姿勢可用于由一階識別引擎190a在一般計算上下文中輸入。例如,手302或其他 身體部位的各種運(yùn)動可對應(yīng)于常見的系統(tǒng)級任務(wù),如在分層列表中向上或向下導(dǎo)航、打開 文件、關(guān)閉文件和保存文件。姿勢也可由一階識別引擎190a取決于游戲在視頻游戲?qū)S蒙?下文中使用。例如,對于駕駛游戲,手302和腳320的各種運(yùn)動可對應(yīng)于在一方向上操控車 輛、換擋、加速和剎車。用戶可通過自己在原地行走或奔跑來生成對應(yīng)于行走或奔跑的姿勢。用戶可另選 地提起并放下每一腿312-320來在不移動的情況下模擬行走。一階識別引擎190a可通過 分析每一臀312和每一大腿314來解析該姿勢。當(dāng)一個臀-大腿角(如相對于垂直線測量 的,其中站立的腿具有0°的臀-大腿角,而向前水平伸展的腿具有90°的臀-大腿角)超 過相對于另一大腿的特定閾值時,可識別一步。行走或奔跑可在交替的腿的某一數(shù)量的連 續(xù)步之后被識別。兩個最近的步之間的時間可被認(rèn)為是周期。在不滿足閾值角度的某一數(shù) 量的周期之后,系統(tǒng)可確定行走或奔跑姿勢已停止。給定“行走或奔跑”姿勢,應(yīng)用程序可為與該姿勢相關(guān)聯(lián)的參數(shù)設(shè)定值。這些參數(shù) 可包括上述閾值角度、發(fā)起行走或奔跑姿勢所需的步數(shù)、結(jié)束姿勢的沒有發(fā)生步的周期數(shù)、 以及確定姿勢是行走還是奔跑的閾值周期??熘芷诳蓪?yīng)于奔跑,因?yàn)橛脩魧⒖焖俚匾苿?他的腿,而較慢的周期可對應(yīng)于行走。姿勢最初可以與一組默認(rèn)參數(shù)相關(guān)聯(lián),應(yīng)用程序可用其自己的參數(shù)來覆蓋該組默 認(rèn)參數(shù)。在這一場景中,不迫使應(yīng)用程序提供參數(shù),但是應(yīng)用程序可改為使用一組允許在沒 有應(yīng)用程序定義的參數(shù)的情況下識別姿勢的默認(rèn)參數(shù)。有各種可以與姿勢相關(guān)聯(lián)的輸出。可以有關(guān)于姿勢是否正在發(fā)生的基線“通過或 失敗”。還可以有置信水平,其對應(yīng)于用戶跟蹤的移動對應(yīng)于姿勢的可能性。這可以是范圍 為0和1之間(包括端點(diǎn))的浮點(diǎn)數(shù)的線性標(biāo)度。在接收該姿勢信息的應(yīng)用程序不能接受 假肯定作為輸入的應(yīng)用程序中,它可僅使用具有高置信水平,如至少.95的已識別的姿勢。 在應(yīng)用程序必須識別姿勢的每一實(shí)例、甚至是以假肯定為代價的情況下,它可使用至少具 有低得多的置信水平的姿勢,如僅僅大于.2的那些姿勢。姿勢可具有關(guān)于兩個最近步之間 的時間的輸出,并且在僅注冊第一步的情況下,這可被設(shè)為保留值,如-ι(因?yàn)槿魏蝺刹街?間的時間必須為正)。姿勢也可具有關(guān)于在最近一步期間達(dá)到的最高大腿角的輸出。
12
另一示例性姿勢是“腳跟提起跳”。在該姿勢中,用戶可通過將他的腳跟提離地面, 但保持他的腳趾著地來創(chuàng)建該姿勢。另選地,用戶可跳向空中,其中他的腳320完全離開地 面。該系統(tǒng)可通過分析肩310、臀312和膝316的角度關(guān)系來解析該姿勢的骨架,以查看它 們是否在等于直立的對齊位置。然后,可監(jiān)視這些點(diǎn)和較高3 和較低3 脊椎點(diǎn)來尋找 任何向上加速。足夠的加速組合可觸發(fā)跳躍姿勢。給定該“腳跟提起跳”姿勢,應(yīng)用程序可為與該姿勢相關(guān)聯(lián)的參數(shù)設(shè)定值。參數(shù)可 包括上述加速閾值,其確定用戶的肩310、臀312和膝316的某種組合必須向上移動多快來 觸發(fā)該姿勢;以及肩310、臀312和膝316之問仍可觸發(fā)跳躍的最大對齊角。輸出可包括置信水平,以及用戶在跳躍時的身體角度?;趯⒔邮兆藙莸膽?yīng)用程序的細(xì)節(jié)來為姿勢設(shè)定參數(shù)對于準(zhǔn)確地標(biāo)識姿勢而言 是重要的。正確地標(biāo)識姿勢以及用戶的意圖極大地有助于創(chuàng)建積極的用戶體驗(yàn)。在姿勢識 別器系統(tǒng)190太敏感、甚至手302的微小向前運(yùn)動被解釋為投擲的情況下,用戶可能變得沮 喪,因?yàn)樵谒麤]有作出姿勢的意圖的情況下卻識別出姿勢,因此他缺乏對系統(tǒng)的控制。在姿 勢識別器系統(tǒng)不夠敏感的情況下,系統(tǒng)可能未識別出用戶作出投擲姿勢的刻意嘗試,從而 類似地使用戶感到沮喪。在敏感度范圍的任一端,用戶都會變得沮喪,因?yàn)樗荒苷_地向 系統(tǒng)提供輸入。對于姿勢的另一參數(shù)可以是移動的距離。在用戶的姿勢控制虛擬環(huán)境中的化身的 動作的情況下,該化身可以是手臂離球的長度。如果用戶希望與該球交互并抓住它,則這可 要求用戶伸展他的手臂302-310到全長同時作出抓握姿勢。在這一情形中,用戶僅部分地 伸展他的手臂302-310的類似的抓握姿勢可能無法達(dá)到與球交互的結(jié)果。姿勢或其一部分可具有它必須在其中發(fā)生的空間體來作為參數(shù)。在姿勢包括身體 移動的情況下,該空間體通??上鄬τ谏眢w來表達(dá)。例如,對于慣用右手的用戶的橄欖球投 擲姿勢可僅在不低于右肩310a、且與投擲手臂3(^a-310a在頭322的相同側(cè)的空間體中識 別。可能不必要定義空間體的所有邊界,如對于該投擲姿勢,其中從身體向外的邊界留著不 被定義,并且該空間體無限地向外延伸,或者延伸到正被監(jiān)視的場景的邊緣。如以下所解釋 的,即使在給定姿勢是由空間體(如對于投擲運(yùn)動從肩部向上)定義的情況下,其他關(guān)節(jié)的 運(yùn)動、速度和加速度仍可在該姿勢期間被監(jiān)視來確定姿勢風(fēng)格。圖4B提供了圖2的一階姿勢識別引擎190a的一個示例性實(shí)施例的進(jìn)一步細(xì)節(jié)。 如圖所示,一階姿勢識別引擎190a可包括至少一個過濾器418來確定一個或多個姿勢。過 濾器418包括定義姿勢4 (以下稱為“姿勢”)以及該姿勢的參數(shù)或元數(shù)據(jù)428的信息,以 供一階和二階姿勢識別引擎190a和190b使用。例如,包括一只手從身體后部后面開始越 過身體前方的運(yùn)動的投擲可被實(shí)現(xiàn)為包括表示用戶的一只手從身體后部后面開始越過身 體前方的運(yùn)動的信息的姿勢426,該移動將由深度照相機(jī)來捕捉。然后可為該姿勢似6設(shè)定 參數(shù)428。在姿勢4 是投擲的情況下,一階姿勢識別引擎190a使用的參數(shù)4 可以是該 手必須達(dá)到的閾值速度、該手必須行進(jìn)的距離(絕對的,或?qū)τ谟脩舻恼w大小相對的)、 以及識別器引擎對發(fā)生姿勢的置信評級。用于姿勢似6的這些參數(shù)4 可以在各應(yīng)用程序 之間、在單個應(yīng)用程序的各上下文之間、或在一個應(yīng)用程序的一個上下文內(nèi)隨著時間變化。 如下所解釋的,可以存儲附加元數(shù)據(jù)428以供二階姿勢識別引擎190b使用。過濾器可以是模塊化的或是可互換的。在一個實(shí)施例中,過濾器具有多個輸入,這些輸入中的每一個具有一類型;以及多個輸出,這些輸出中的每一個具有一類型。在這一情 形中,第一過濾器可用具有與第一過濾器相同數(shù)量和類型的輸入和輸出的第二過濾器來替 換而不更改識別器引擎體系結(jié)構(gòu)的其他方面。例如,可以有用于駕駛的第一過濾器,該第一 過濾器取骨架數(shù)據(jù)作為輸入并輸出與該過濾器相關(guān)聯(lián)的姿勢正在發(fā)生的置信度以及轉(zhuǎn)向 角。在希望用第二駕駛過濾器來替換該第一駕駛過濾器的情況下——這可能是因?yàn)榈诙{ 駛過濾器更高效且需要更少的處理資源——則可以通過簡單地用第二過濾器替換第一過 濾器來這樣做,只要第二過濾器具有相同的輸入和輸出一骨架數(shù)據(jù)類型的一個輸入,以及 置信度類型和角度類型的兩個輸出。一階姿勢識別引擎190a可能沒有利用與給定過濾器相關(guān)聯(lián)的元數(shù)據(jù)428。例如, 返回用戶的高度的“用戶高度”過濾器可能不允許任何可調(diào)節(jié)的參數(shù)。替換的“用戶高度”過 濾器可具有可調(diào)節(jié)參數(shù),如在確定用戶的高度時是否考慮用戶的鞋、發(fā)型、頭飾以及體態(tài)。對過濾器的輸入可包括諸如關(guān)于用戶的關(guān)節(jié)位置的關(guān)節(jié)數(shù)據(jù)如在關(guān)節(jié)處相交的 骨所形成的角度、來自場景的RGB色彩數(shù)據(jù)、以及用戶的動力學(xué)方面的變化率等內(nèi)容。來自 過濾器的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運(yùn)動的速度、以及作出姿勢 運(yùn)動的時間等內(nèi)容。上下文可以是文化上下文,并且可以是環(huán)境上下文。文化上下文指的是使用系統(tǒng) 的用戶的文化。不同的文化可使用相似的姿勢來賦予顯著不同的含義。例如,希望叫另一 個用戶“看”或“使用他的眼睛”的美國用戶可將他的食指放在他頭上靠近他的眼睛的遠(yuǎn)端 處。然而,對意大利用戶而言,該姿勢可被解釋為對黑手黨的引用。類似地,在單個應(yīng)用程序的不同環(huán)境之中可能有不同的上下文。取涉及操作摩托 車的第一人稱射擊游戲。當(dāng)用戶在走路時,將手指朝向地面握拳并向前且從身體向外伸出 拳頭可表示重拳姿勢。當(dāng)用戶在駕駛上下文中時,相同的運(yùn)動可表示“換擋”姿勢。可能還 有一個或多個菜單環(huán)境,其中用戶可保存他的游戲、在他的人物裝備之間選擇或執(zhí)行類似 的不包括直接玩游戲的動作。在該環(huán)境中,該游戲姿勢可具有第三個含義,如選擇某樣?xùn)|西 或前進(jìn)到另一屏幕。一階姿勢識別引擎190a可具有向姿勢過濾器418提供功能的基礎(chǔ)識別器引擎 416。在一實(shí)施例中,識別器引擎416實(shí)現(xiàn)的功能包括跟蹤所識別的姿勢和其他輸入的隨 時間輸入(input-over-time)存檔、隱馬爾可夫模型實(shí)現(xiàn)(其中模型化系統(tǒng)被假定為具有 未知參數(shù)的馬爾可夫過程一其中當(dāng)前狀態(tài)封裝了確定將來狀態(tài)所需的任何過去狀態(tài)信息, 因此不必為此目的而維護(hù)任何其它過去狀態(tài)信息的過程,并且隱藏參數(shù)從可觀察數(shù)據(jù)來確 定)、以及求解姿勢識別的特定實(shí)例所需的其他功能。過濾器418在基礎(chǔ)識別器引擎416之上加載并實(shí)現(xiàn),并且可利用引擎416提供給 所有過濾器418的服務(wù)。在一實(shí)施例中,基礎(chǔ)識別器引擎416處理所接收到的數(shù)據(jù)來確定它 是否滿足任何過濾器418的要求。由于這些諸如解析輸入等所提供的服務(wù)是由基礎(chǔ)識別器 引擎416 —次性提供而非由每一過濾器418提供的,因此這一服務(wù)在一段時間內(nèi)只需被處 理一次而不是對該時間段對每一過濾器418處理一次,因此減少了確定姿勢所需的處理。應(yīng)用程序可使用一階姿勢識別引擎190a所提供的過濾器418,或者它可提供其自 己的過濾器418,該過濾器被插入到基礎(chǔ)識別器引擎416中。在一實(shí)施例中,所有過濾器418 具有啟用該插入特性的通用接口。
圖5A和5B描繪了從堆疊的姿勢或過濾器418創(chuàng)建的更復(fù)雜的姿勢或過濾器418。 姿勢可堆疊在彼此之上。S卩,用戶一次可表達(dá)多于一個姿勢。例如,并非在作出投擲姿勢時 不允許除了投擲之外的任何輸入,或要求用戶除了該姿勢的分量之外保持不動(例如,在 作出僅涉及一條手臂的投擲姿勢時站著不動)。在姿勢堆疊時,用戶可同時作出跳躍姿勢和 投擲姿勢,并且這兩個姿勢都將被姿勢引擎識別出。圖5A描繪了根據(jù)堆疊范例的簡單姿勢過濾器418。I過濾器(IFilter) 502是可在 每一姿勢過濾器中使用的基本過濾器418。I過濾器502取用戶位置數(shù)據(jù)504,并輸出姿勢 已發(fā)生的置信水平506。它還將該位置數(shù)據(jù)504饋入方向盤(SteeringWheel)過濾器508, 該過濾器508取該位置數(shù)據(jù)作為輸入,并輸出用戶正在轉(zhuǎn)向的角度(例如,向用戶當(dāng)前方向 右側(cè)40度)510。圖5B描繪了將過濾器418堆疊到圖5A的姿勢過濾器上的更復(fù)雜的姿勢。除了 I 過濾器502和方向盤508之外,還存在I跟蹤(ITracking)過濾器512,該過濾器512接收 來自I過濾器502的位置數(shù)據(jù)504,并輸出用戶通過姿勢所作出的進(jìn)展量514。I跟蹤512 還將位置數(shù)據(jù)504饋送到潤滑油減輕(GreaseLightning) 516和E剎車518,這些是關(guān)于可 在操作車輛時如使用緊急剎車作出的其他姿勢的過濾器418。圖6A-6E描繪了用戶602在橄欖球視頻游戲中可以作出以便發(fā)出“完全接球”信 號的示例姿勢。這些圖描繪了各個時間點(diǎn)的用戶,其中圖6A是第一時間點(diǎn),而圖6E是最后 一個時間點(diǎn)。這些圖中的每一個可對應(yīng)于深度照相機(jī)22捕捉的圖像數(shù)據(jù)的一個快照或幀, 但不必是連續(xù)的圖像數(shù)據(jù)幀,因?yàn)樯疃日障鄼C(jī)22能夠比用戶可覆蓋該距離更快地捕捉幀。 例如,該姿勢可在3秒的時間段內(nèi)發(fā)生,并且在深度照相機(jī)以每秒40幀來捕捉數(shù)據(jù)的情況 下,在用戶602作出該完全接球姿勢時它將捕捉60個圖像數(shù)據(jù)幀。在圖6A中,用戶602以他的手臂604向下放于兩側(cè)開始。他然后將手臂舉起超過 肩膀,如圖6B所描繪的,然后進(jìn)一步向上到大約他的頭部的水平,如圖6C所描繪的。從那 里,他將他的手臂604降下到肩膀水平,如圖6D所描繪的,然后再一次將手臂舉起到大約他 的頭部的水平,如圖6E所描繪的。在系統(tǒng)捕捉用戶602的這些位置而沒有可發(fā)出該姿勢被 取消或正在作出另一姿勢的信號的任何居間位置的情況下,可能會使得完全接球姿勢過濾 器輸出用戶602作出了完全接球姿勢的高置信水平。圖7描繪了在解析每一圖像數(shù)據(jù)幀來產(chǎn)生用戶的骨架圖時圖5的示例“完全接球” 姿勢。該系統(tǒng)在從用戶的深度圖像產(chǎn)生了骨架圖之后,現(xiàn)在可確定用戶的身體如何隨時間 而移動,并且可從中解析姿勢。在圖7A中,用戶的肩310在他的肘306上方,而肘306又在他的手302上方。肩 310、肘306和手302然后在圖7B中處于一致水平。系統(tǒng)然后在圖7C中檢測到手302在肘 306上方,而肘306在肩310上方。在圖7D中,用戶返回到圖7B的位置,其中肩310、肘306 和手302處于一致水平。在該姿勢的最終位置,如圖7E所示,用戶返回到圖7C的位置,其 中手302在肘306上方,而肘306在肩310上方。盡管捕捉設(shè)備20捕捉了一系列靜止圖像,使得在任何一個圖像中用戶看似為靜 止的,但用戶在執(zhí)行該姿勢的過程中在移動(而非如上所述的靜止姿勢)。該系統(tǒng)能夠取每 一靜止圖像中的該一系列姿態(tài),并從中確定用戶正在作出的移動姿勢的置信水平。此外,如 上所述并如下所解釋的,一階姿勢識別引擎190a可另外存儲與圖7A-7E所示的姿勢相關(guān)聯(lián)的元數(shù)據(jù)4 來確定與用戶的姿勢相關(guān)聯(lián)的姿勢風(fēng)格。在執(zhí)行姿勢時,用戶可能無法創(chuàng)建如右肩310a、右肘306a和右手30 所示的角 度,例如在140°和145°之間。因此,對完全接球姿勢4 使用過濾器418的應(yīng)用程序可 調(diào)節(jié)相關(guān)聯(lián)的參數(shù)4 來最好地滿足應(yīng)用程序的細(xì)節(jié)。例如,圖7C和7E中的位置可在用 戶將其手302放在其肩310上方的任何時刻被識別出,而不關(guān)注肘306的位置。更嚴(yán)格的 一組參數(shù)可能要求手302在頭310上方,并且肘306既在肩310上方又在頭322和手302 之間。另外,用于完全接球姿勢426的參數(shù)4 可能要求用戶在諸如1.5秒等一段指定時 間內(nèi)從圖7A的位置移動到圖7E的位置,并且如果用戶花費(fèi)了多于1. 5秒來移動通過這些 位置,則它將不被識別為完全接球418,并且可輸出非常低的置信水平。如上所述,除了檢測姿勢之外,本發(fā)明的技術(shù)還檢查姿勢的性質(zhì)方面,并且基于對 一個或多個預(yù)定義性質(zhì)屬性的檢測來向用戶提供反饋。這些性質(zhì)屬性是執(zhí)行給定姿勢或用 戶運(yùn)動的風(fēng)格。如圖8和9的框圖所示,給定姿勢或運(yùn)動的風(fēng)格由二階姿勢識別引擎190b 基于從一階姿勢識別引擎190a接收到的信息來確定。參考圖9,如上所述,給定過濾器418包括定義的姿勢似6或由深度照相機(jī)22傳 感的或從深度照相機(jī)22傳感的數(shù)據(jù)中通過數(shù)學(xué)方法確定的元數(shù)據(jù)428。一般而言,元數(shù)據(jù) 428提供了關(guān)于姿勢似6是如何執(zhí)行的信息。在某一預(yù)定義時間段上,如執(zhí)行姿勢似6或運(yùn) 動所花費(fèi)的時間長度上,取得并存儲元數(shù)據(jù)428。它還包含了在姿勢或運(yùn)動之前和/或之后 的預(yù)定義時間段?;蛘?,該時間段可以是某一組預(yù)定義時間段,如從姿勢結(jié)束開始反向計算 的一到五秒的數(shù)據(jù)量,或者另選地二到三秒的數(shù)據(jù)量?,F(xiàn)在將參考圖9的框圖和圖10的流程圖來解釋二階姿勢識別引擎190b的操作。 在一階姿勢識別引擎190a檢測到姿勢似6之后,在步驟650將與該姿勢相關(guān)聯(lián)的元數(shù)據(jù) 428傳遞到二階姿勢識別引擎190b。有各種可用于確定姿勢或運(yùn)動是否以預(yù)定義風(fēng)格執(zhí)行的元數(shù)據(jù)。該元數(shù)據(jù)是從用 戶進(jìn)行并由捕捉設(shè)備20捕捉的移動來生成的。在各實(shí)施例中,該元數(shù)據(jù)可以是對用戶的最 大和最小位置的測量,這是在x,y,z空間中相對于深度照相機(jī)22的位置來測量的。這可以 是捕捉設(shè)備20檢測的χ、y和ζ最小和最大圖像平面位置。元數(shù)據(jù)還可包括對取得元數(shù)據(jù) 428的離散時間間隔隨時間的位置變化dx/dt的一個或多個測量。離散時間間隔可以像執(zhí) 行姿勢或運(yùn)動的整個時間那樣長,或者像來自深度照相機(jī)22的單個幀那樣短。該位置變化 元數(shù)據(jù)給出了在用戶執(zhí)行所檢測到的姿勢的時間(或上述其他定義的時間段)期間用戶身 體的不同速度。在各實(shí)施例中,元數(shù)據(jù)還可包括在X,y,ζ空間中測量的用戶的最大和最小速度的 測量。元數(shù)據(jù)還可包括對取得元數(shù)據(jù)4 的離散時間間隔隨時間的速度變化dv/dt的一個 或多個測量。該速度變化元數(shù)據(jù)給出了在用戶執(zhí)行所檢測到的姿勢的時間(或上述其他定 義的時間段)期間用戶身體的不同加速度。在各實(shí)施例中,元數(shù)據(jù)還可包括在X,y,ζ空間中測量的用戶的最大和最小加速度 的測量。元數(shù)據(jù)還可包括對取得元數(shù)據(jù)4 的離散時間間隔隨時間的加速度變化da/dt的 一個或多個測量。該加速度變化元數(shù)據(jù)給出了在用戶執(zhí)行所檢測到的姿勢的時間(或上述 其他定義的時間段)期間用戶身體的不同加加速度率測量。可以理解,可使用除了一個或多個上述參數(shù)之外的或代替一個或多個上述參數(shù)的其他參數(shù)。在一個實(shí)施例中,可導(dǎo)出描述身體部位在其在3D空間中移動時的軌跡的二階差 分等式。這些等式也可被用作引擎190b接收來檢測預(yù)定義風(fēng)格的元數(shù)據(jù)。在又一實(shí)施例 中,照相機(jī)22可取用戶的面部表情的測量,該面部表情然后可與其他參數(shù)一起使用來作出 關(guān)于用戶執(zhí)行給定姿勢或移動的風(fēng)格的確定。在各實(shí)施例中,可對于以上參考圖4A描述的身體部位302到330中的一個或多個 取得并存儲上述涉及位置、速度和加速度的動力學(xué)參數(shù)中的每一個。由此,在各實(shí)施例中, 二階姿勢識別引擎190b可接收如圖4A所示的用戶身體中的所有點(diǎn)的動力學(xué)活動的全圖。該元數(shù)據(jù)428由一階姿勢識別引擎190a傳遞給二階姿勢識別引擎190b。二階姿 勢識別引擎190b然后在步驟6M分析所接收到的元數(shù)據(jù)來看該元數(shù)據(jù)是否匹配存儲在風(fēng) 格庫640中的任何預(yù)定義規(guī)則。步驟肪4在下文中參考圖9和圖11的流程圖來描述。風(fēng)格庫640包括多個所存儲的規(guī)則642,這些規(guī)則描述了元數(shù)據(jù)4 所指示的特 定動力學(xué)運(yùn)動何時被解釋為預(yù)定義風(fēng)格。規(guī)則可由游戲作者、各種游戲平臺的主人或用戶 自己來創(chuàng)建。規(guī)則是對給定一組參數(shù)值或值范圍的定義。當(dāng)用戶以滿足規(guī)則的方式(考慮 了上述參數(shù))來移動時,二階姿勢識別引擎190b將該移動識別為風(fēng)格。換言之,規(guī)則是關(guān) 于一個或多個身體部位的一個或多個元數(shù)據(jù)參數(shù)(最大/最小位置、隨時間的位置變化、最 大或最小速度、隨時間的速度變化、最大或最小加速度、隨時間的加速度變化)的一組預(yù)定 義存儲的值或值范圍,這些值或值范圍在作為整體來看待時指示了與姿勢相關(guān)聯(lián)的特定風(fēng) 格。以下是出于說明性目的對幾個規(guī)則以及構(gòu)成規(guī)則的通用參數(shù)的描述。可以理解, 根據(jù)本發(fā)明的技術(shù)可以有各種各樣的覆蓋了各種風(fēng)格的附加規(guī)則。作為一個示例,一階姿 勢識別引擎190a可確定用戶執(zhí)行的閃避姿勢,S卩,降低到接近地面。有各種各樣的閃避風(fēng) 格。第一個用戶可能四肢著地地蹲下,而第二個用戶可能“摔倒”以便快速在地面上平展開來。這些運(yùn)動中的每一個可被一階姿勢識別引擎190a識別為閃避。然而,至少基于用 戶身體的所有部分的隨時間的位置變化和隨時間的速度變化,二階姿勢識別引擎190b可 識別其中用戶摔倒的閃避風(fēng)格。該閃避風(fēng)格可由規(guī)則來識別,即,有關(guān)距離變化、速度變化 等的定義了用戶何時被認(rèn)為是摔倒的參數(shù)可被量化并存儲在規(guī)則中。當(dāng)二階姿勢識別引擎 190b識別到用戶以滿足該規(guī)則的方式來動作時,則用戶可接收到游戲度量下的某種獎勵, 和/或用戶的游戲體驗(yàn)可被個性化來顯示出系統(tǒng)識別了他或她自己的閃避風(fēng)格。例如,用 戶的化身可用同一種風(fēng)格來閃避并且地面可以搖動。還可提供其他游戲內(nèi)風(fēng)格識別指示。作為風(fēng)格識別的另一示例,游戲可要求用戶通過將他們的腳來回且左右移動來執(zhí) 行舞蹈移動。一階姿勢識別引擎190a將能夠確定用戶是否正確執(zhí)行了游戲所指示的舞蹈 步驟。然而,通過分析元數(shù)據(jù),二階姿勢識別引擎190b可檢查位置變化數(shù)據(jù)、速度變化數(shù)據(jù) 等,并且確定各步之間的過渡是平滑地執(zhí)行的還是以更為急動的方式來執(zhí)行的。當(dāng)例如平 滑地執(zhí)行的時候,速度導(dǎo)數(shù)參數(shù)可為0或近乎0。當(dāng)二階姿勢識別引擎190b確定各步是平 滑地執(zhí)行的時候,可在游戲內(nèi)獎勵用戶,和/或用戶的化身可采取某種動作,或者以個性化 用戶的游戲體驗(yàn)的特定方式來呈現(xiàn)用戶的化身。在諸如圖IA和IB所示的拳擊游戲內(nèi)的示例中,用戶可能正在一輪結(jié)束時積極地 來回移動,這指示用戶不累。這一移動可由給定速度的許多位置變化來表征,并且可設(shè)置查找這一移動的規(guī)則?;蛘撸脩艨砷_始在拳擊的一輪中間跳舞以嘲弄對手。此類跳舞可由 對不同身體部位的有節(jié)奏的和/或重復(fù)的移動模式、速度和加速度來表征。由此,可設(shè)置查 找這些動力學(xué)參數(shù)的規(guī)則。在檢測到一輪的積極結(jié)束或者一輪期間的跳舞時,這些風(fēng)格可 通過更改用戶在游戲內(nèi)的化身來反映以便個性化用戶的體驗(yàn)。在涉及棒球游戲的又一示例中,一階姿勢識別引擎190a可識別到用戶在正確的 時刻以給定速度揮棒,以便確定用戶將虛擬棒球擊打了特定距離,如本壘打。然而,二階姿 勢識別引擎190b可分析該揮棒之前、期間和/或之后的元數(shù)據(jù),并確定用戶在發(fā)起揮棒之 前等待最后一刻。這可被認(rèn)為在風(fēng)格上是重要的,并且可以有具有指示最后一刻揮棒的一 組元數(shù)據(jù)的規(guī)則。例如,它可以按照相對較小的運(yùn)動直到就在需要對潛在姿勢傳感揮棒的 時刻之前的一刻來表征,在該時刻在位置、速度和/或加速度上都有一峰值。再一次,可設(shè) 置定義這些參數(shù)的規(guī)則,并且在二階姿勢識別引擎檢測到滿足該規(guī)則的元數(shù)據(jù)的情況下, 可在游戲內(nèi)獎勵用戶,和/或用戶的化身可采取某種動作,或者以個性化用戶的游戲體驗(yàn) 的特定方式來呈現(xiàn)用戶的化身。在另一棒球示例中,第一個用戶可僅使用他的手臂來揮動球棒,并達(dá)到給定的揮 棒速度。然而,第一個用戶可通過首先大步行走、旋轉(zhuǎn)其臀部、旋轉(zhuǎn)其肩部、然后揮動其手臂 (所有這些都以正確的連續(xù)次序)來執(zhí)行更“教科書”的揮棒。二階姿勢識別引擎190b可 分析用戶身體的不同點(diǎn)的動力學(xué)數(shù)據(jù),并識別與上述教科書揮棒相關(guān)聯(lián)的位置、速度、加速 度等??稍谟螒騼?nèi)獎勵用戶,和/或用戶的化身可采用某一動作,或以個性化用戶的游戲體 驗(yàn)的特定方式來呈現(xiàn)用戶的化身。在再一棒球示例中,在一階姿勢識別引擎190a檢測到揮棒之后,二階姿勢識別引 擎190b可審閱該元數(shù)據(jù)并確定用戶在揮棒之前所指方向,這類似于1932年世界職業(yè)棒球 大賽中Babe Ruth的預(yù)告本壘打擊中。指向所涉及的運(yùn)動可被編入規(guī)則中。在作出用戶的 運(yùn)動滿足該規(guī)則的判定之后,可在游戲內(nèi)獎勵用戶,和/或用戶的化身可采用某一動作,或 以個性化用戶的游戲體驗(yàn)的特定方式來呈現(xiàn)用戶的化身。例如,用戶的化身的外觀可被變 換成Babe Ruth在繞著場地小跑時的形象。該示例示出了二階姿勢識別引擎所審閱的元數(shù) 據(jù)可能不僅限于在給定姿勢期間獲得的元數(shù)據(jù)。二階姿勢識別引擎所分析的元數(shù)據(jù)也可被 延伸到給定姿勢的執(zhí)行之前和/或之后的一段時間。由了上述公開內(nèi)容的好處,本領(lǐng)域的技術(shù)人員將識別出可以與各種各樣附加姿勢 相關(guān)聯(lián)的各種各樣附加風(fēng)格,這些風(fēng)格可根據(jù)對與姿勢、姿勢之前的時間段和/或姿勢之 后的時間段相關(guān)聯(lián)的元數(shù)據(jù)的分析來識別。風(fēng)格庫640可存儲多個規(guī)則642。在各實(shí)施例中,每一姿勢可具有不同的、獨(dú)特的 一組規(guī)則。由此,盡管給定一組元數(shù)據(jù)在結(jié)合第一姿勢執(zhí)行時在風(fēng)格方面是顯著的,但同樣 的該組元數(shù)據(jù)可能不指示在與第二姿勢相關(guān)聯(lián)地執(zhí)行時的該風(fēng)格。單個姿勢可具有與其相 關(guān)聯(lián)的各種風(fēng)格。在該實(shí)例中,風(fēng)格庫640將存儲多個規(guī)則642,對可以與給定姿勢相關(guān)聯(lián) 的每一風(fēng)格有一規(guī)則。每一預(yù)定義姿勢可包括這樣一組與其相關(guān)聯(lián)的規(guī)則。在另外一些實(shí)施例中,單個風(fēng)格可以與多于一個姿勢相關(guān)聯(lián)。此外,給定一組元 數(shù)據(jù)可以指示獨(dú)立于任何相關(guān)聯(lián)的姿勢的特定風(fēng)格。在此類實(shí)施例中,二階姿勢識別引擎 190b可識別與用戶的移動相關(guān)聯(lián)的特定風(fēng)格,即使該移動可能不指示特定的所識別的姿 勢。
此外,構(gòu)想了二階姿勢識別引擎190b甚至在一階姿勢識別引擎確定用戶未成功 執(zhí)行所嘗試的姿勢的情況下也能檢測到一個或多個風(fēng)格。例如,可存在關(guān)于一個或多個姿 勢的規(guī)則,指示許多移動要被解釋為用戶正非常努力地完成一個或多個姿勢。由此,即使移 動未關(guān)于建立特定姿勢而通過,二階姿勢識別引擎190b也可識別用戶所作出的努力并通 過指示對用戶努力的識別來個性化用戶的游戲內(nèi)體驗(yàn)??杀灰?guī)則覆蓋的某些風(fēng)格包括但不限于·移動的優(yōu)雅程度-其中元數(shù)據(jù)指示用戶以相對平滑或恒定的速度和/或加速度 來執(zhí)行移動或移動之間的過渡;·努力-例如,其中元數(shù)據(jù)指示與給定姿勢相關(guān)聯(lián)的高度移動;·身體控制-例如,其中元數(shù)據(jù)指示用戶能夠保持他或她的身體或他或她的身體 的各部分不動;·移動精度-其中元數(shù)據(jù)指示用戶所執(zhí)行的唯一運(yùn)動是執(zhí)行給定姿勢所需的運(yùn) 動;·移動效率-其中元數(shù)據(jù)例如指示用戶所執(zhí)行的唯一運(yùn)動是執(zhí)行給定姿勢所需的 身體部位;·平穩(wěn)移動-其中元數(shù)據(jù)指示執(zhí)行給定姿勢時一個或多個身體部位的相對恒定的 速度;·緩慢且平穩(wěn)的移動-其中元數(shù)據(jù)指示在執(zhí)行給定姿勢時用戶的一個或多個身體 部位在閾值之下的相對恒定的速度;·冷靜、放松的移動-例如,其中元數(shù)據(jù)指示在準(zhǔn)備執(zhí)行給定姿勢時低或恒定速度 的移動; 爆發(fā)或劇烈的移動-例如,其中用戶具有與給定姿勢相關(guān)聯(lián)的過度和/或夸大的 移動。再次參考圖11的流程圖,每一規(guī)則可具有關(guān)于圖4C中所示的一個或多個身體部 位的多個參數(shù)(最大/最小位置、位置變化等)。對于存儲的姿勢,關(guān)于圖4B中所示的每一 身體部位302到330的每一參數(shù)可存儲單個值、值范圍、最大值、最小值、或關(guān)于該身體部位 的參數(shù)與該規(guī)則所覆蓋的風(fēng)格的判定無關(guān)的指示。在以下描述中,不同參數(shù)可由整數(shù)i(對第一個參數(shù)i = 1,對第二個參數(shù)i = 2, 以此類推)來指示。不同身體部位可由整數(shù)j來指示(對第一個身體部位j = 1,對第二個 身體部位j = 2,以此類推)。由此,Ri, j是與關(guān)于第j個身體部位的第i個參數(shù)相關(guān)聯(lián)的 規(guī)則中所存儲的值或值范圍。Μ"是從與關(guān)于第j個身體部位的第i個參數(shù)相關(guān)聯(lián)的用戶 姿勢或運(yùn)動中測得或?qū)С龅闹祷蛑捣秶?。在步驟700,在確定所接收到的元數(shù)據(jù)是否滿足給定規(guī)則時,引擎190b最初檢索 關(guān)于第一個參數(shù)(i = 1)的第一個身體部位(j = 1)的存儲的規(guī)則值氏丨在步驟702,引 擎190b將所接收的測得元數(shù)據(jù)值Mi, j與存儲的規(guī)則元數(shù)據(jù)值Ri, j進(jìn)行比較。在步驟706, 引擎190b確定當(dāng)前測得的元數(shù)據(jù)值Mi,j是否等于規(guī)則元數(shù)據(jù)值氏,」或在其預(yù)定范圍內(nèi)??梢岳斫猓M管規(guī)則可由一組具有給定值的參數(shù)構(gòu)成,但這些參數(shù)中的一個或多 個在確定用戶動作是否滿足規(guī)定風(fēng)格規(guī)則時可被加權(quán)更多。即,特定身體部位的特定參數(shù) 可以比其他參數(shù)更明確地指示特定風(fēng)格。在各實(shí)施例中,關(guān)于所指示的身體部位的這些參數(shù)在對用戶移動是否執(zhí)行了給定風(fēng)格的總體判定中可以被賦予較高的權(quán)重。由此,在步驟 710,引擎190b確定規(guī)則值Ri, j是否相對于其他規(guī)則值Ri, j被加權(quán)更多或更少。該權(quán)重信 息可與規(guī)則一起存儲在庫640中。即便有,也很少發(fā)生給定一組測得參數(shù)將匹配存儲的規(guī)則中的所有值的情況。如 上關(guān)于姿勢所解釋的,二階姿勢識別引擎190b可輸出風(fēng)格和與用戶的移動對應(yīng)于該風(fēng)格 的可能性相對應(yīng)的置信水平。該置信度值可用如上所述對給定姿勢計算置信度值的相同方 式來計算。在步驟712,使用步驟706和710的判定,引擎190b確定關(guān)于用戶的移動達(dá)到所 考慮的規(guī)則覆蓋的風(fēng)格的累積置信水平。累積置信水平將包括通過該循環(huán)的所有先前旅程 的置信水平加上對當(dāng)前I^j的考慮。在步驟716,引擎190b查看對給定參數(shù)i是否還有身體部位j未關(guān)于所存儲的規(guī) 則來考慮。如果是,則在步驟718考慮下一身體部位(j = j+1),并且引擎190b返回到步驟 702來對下一身體部位j將下一測得的元數(shù)據(jù)值Miij與所存儲的規(guī)則值I^j進(jìn)行比較?;蛘撸绻诓襟E716確定對給定參數(shù)已經(jīng)考慮了規(guī)則內(nèi)的最后一個身體部位, 則引擎190b接著在步驟720確定在所存儲的規(guī)則中是否還有參數(shù)要考慮。如果是,則在步 驟7M將參數(shù)值i遞增1,并且引擎190b返回到步驟702來再一次對更新后的參數(shù)值i將 所接收的所測得的元數(shù)據(jù)值Mm與所存儲的元數(shù)據(jù)規(guī)則值」進(jìn)行比較。本領(lǐng)域的技術(shù)人 員可以理解將所測得的值Mm與所存儲的規(guī)則值Rm進(jìn)行比較的其他方法。如果在步驟720 確定在所存儲的規(guī)則中沒有更多參數(shù)要考慮,則引擎190b在步驟7 返回累積置信水平。再次參考圖10,一旦確定了關(guān)于給定姿勢或運(yùn)動是否滿足給定風(fēng)格規(guī)則的置信水 平,二階姿勢識別引擎190b然后就在步驟656確定累積置信水平是否超過關(guān)于所考慮的規(guī) 則的預(yù)定閾值。閾值置信水平可與所考慮的規(guī)則相關(guān)聯(lián)地存儲。如果累積置信水平低于該 閾值,則未檢測到任何風(fēng)格(步驟660)并且不采取任何動作。另一方面,如果累積置信水 平高于閾值,則用戶的運(yùn)動被確定為滿足所考慮的風(fēng)格規(guī)則,并且二階姿勢識別引擎190b 如下所解釋地個性化用戶體驗(yàn)。二階姿勢識別引擎可在一旦檢測到與姿勢或運(yùn)動相關(guān)聯(lián)的 風(fēng)格時停止其規(guī)則比較?;蛘撸A姿勢識別引擎可搜索所有規(guī)則來看是否有多于一個風(fēng) 格適用于給定姿勢或運(yùn)動。本領(lǐng)域的技術(shù)人員可以理解對給定姿勢或運(yùn)動分析所測得的參數(shù)來確定參數(shù) 是否符合預(yù)定義風(fēng)格的其他方法。一個此類另外的方法在題為“GESTURE-CONTROLLED INTERFACES FOR SELF-SERVICE MACHINESAND OTHER APPLICATIONS (用于自服務(wù)機(jī)器和其 他應(yīng)用程序的姿勢控制的接口)”的美國專利申請公開號2009/0074248中公開,該申請的 公開通過整體引用結(jié)合于此。對給定風(fēng)格的檢測可在游戲或多媒體平臺內(nèi)以各種方式來使用以便獎勵用戶和/ 或個性化用戶體驗(yàn)。例如,當(dāng)用戶的化身被示為執(zhí)行所檢測的姿勢時,該姿勢可進(jìn)一步由該 化身用所檢測到的風(fēng)格來執(zhí)行。另外地和/或另選地,化身的外觀可改變以反映所檢測到 的風(fēng)格。例如,如果用戶的姿勢是要保持靜止不動,則如果用戶能夠不僅執(zhí)行這一動作到一 閾值水平,而且到展現(xiàn)出高水平的身體控制的水平,則用戶的化身可變?yōu)橥该鞑⒉糠窒А?給定以上公開內(nèi)容,本領(lǐng)域的技術(shù)人員可以理解可被提供來示出與所執(zhí)行的姿勢相關(guān)聯(lián)的 所檢測到的風(fēng)格的各種各樣其他游戲內(nèi)音頻和/或視頻效果。此外,除了以不同方式呈現(xiàn) 化身之外,化身在游戲內(nèi)的周邊環(huán)境可另選地或另外地以不同方式呈現(xiàn)以便進(jìn)一步示出用
20戶的風(fēng)格并進(jìn)一步個性化用戶的游戲體驗(yàn)。根據(jù)本發(fā)明的技術(shù)檢測給定用戶的風(fēng)格在概念上不同于檢測用戶是否執(zhí)行了給 定姿勢。給定姿勢的執(zhí)行通常是通過/失敗,并且如果成功執(zhí)行,則將導(dǎo)致附加得分或用戶 在游戲度量中前進(jìn)。相反,對風(fēng)格的檢測并不是關(guān)于用戶是否執(zhí)行了給定姿勢,而是用戶如 何執(zhí)行該姿勢。本發(fā)明的技術(shù)可在無論用戶是否成功地執(zhí)行了基本姿勢的情況下檢測風(fēng) 格,并且對風(fēng)格的檢測不導(dǎo)致得分或玩家在游戲度量中的前進(jìn)(盡管在其他實(shí)施例中以所 檢測到的風(fēng)格執(zhí)行姿勢會導(dǎo)致得分或前進(jìn))。此外,如上所述,給定風(fēng)格可以與特定姿勢相 關(guān)聯(lián),或者它可以獨(dú)立于任何特定姿勢或跨各種各樣姿勢來檢測。一般而言,對各個玩家風(fēng) 格的識別在玩游戲或使用多媒體應(yīng)用程序時將個性化并增強(qiáng)用戶體驗(yàn)。本發(fā)明系統(tǒng)的前述詳細(xì)描述是出于說明和描述的目的而提供的。這并不旨在窮舉 本發(fā)明系統(tǒng)或?qū)⒈景l(fā)明系統(tǒng)限于所公開的精確形式。鑒于上述教導(dǎo),許多修改和變型都是 可能的。選擇所述實(shí)施例以最好地解釋本發(fā)明系統(tǒng)的原理及其實(shí)踐應(yīng)用,從而允許本領(lǐng)域 技術(shù)人員能夠在各種實(shí)施例中并采用各種適于所構(gòu)想的特定用途的修改來最好地利用本 發(fā)明系統(tǒng)。本發(fā)明系統(tǒng)的范圍旨在由所附權(quán)利要求書來定義。
權(quán)利要求
1.一種在包括計算環(huán)境的系統(tǒng)中的方法,所述計算環(huán)境耦合到用于捕捉用戶運(yùn)動的捕 捉設(shè)備,所述方法個性化軟件應(yīng)用程序中的用戶體驗(yàn),所述方法包括以下步驟a)在通過/失敗的基礎(chǔ)上檢測用戶是否執(zhí)行了姿勢;b)除了檢測用戶是否執(zhí)行了姿勢之外,檢測與用戶如何執(zhí)行所述姿勢有關(guān)的至少一個 性質(zhì)方面;以及c)基于在步驟b)中檢測到的所述至少一個性質(zhì)方面向用戶提供反饋。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟b)包括將所述步驟a)中獲得的參 數(shù)與關(guān)于所述至少一個性質(zhì)方面的一組所存儲的規(guī)則進(jìn)行比較的步驟。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟b)包括將所述步驟a)中導(dǎo)出的參 數(shù)與關(guān)于所述至少一個性質(zhì)方面的一組所存儲的規(guī)則進(jìn)行比較的步驟。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟b)包括分析以下的至少一項(xiàng)的步驟bl)沿著三條軸相對于所述捕捉設(shè)備的最大和最小位置;b2)沿著三條軸隨時間的位置變化;b3)沿著三條軸的最大和最小速度;b4)沿著三條軸隨時間的速度變化;b5)沿著三條軸的最大和最小加速度;b6)沿著三條軸隨時間的加速度變化;以及b7)面部表情。
5.如權(quán)利要求4所述的方法,其特征在于,所述步驟b)還包括對多個不同身體部位分 析bl)到中的至少一項(xiàng)的步驟。
6.如權(quán)利要求5所述的方法,其特征在于,所述步驟b)還包括將所分析的bl)到b7) 中的至少一項(xiàng)的參數(shù)與定義與給定姿勢相關(guān)聯(lián)的風(fēng)格的一組存儲的規(guī)則進(jìn)行比較的步驟。
7.如權(quán)利要求5所述的方法,其特征在于,所述步驟b)還包括對等于以下中的一項(xiàng)的 時間段分析bl)到b7)中的至少一項(xiàng)的步驟b8)完成所述姿勢之前的預(yù)定時間段; b9)執(zhí)行所檢測的姿勢所需的時間長度;以及blO)執(zhí)行所檢測的姿勢所需的時間長度加上所述姿勢之前和/或之后的預(yù)定時間段。
8.如權(quán)利要求1所述的方法,其特征在于,所述步驟b)包括檢測與姿勢相關(guān)聯(lián)的以下 性質(zhì)方面中的至少一個的步驟bll)與所述姿勢相關(guān)聯(lián)的優(yōu)雅移動;bl2)執(zhí)行所述姿勢所花費(fèi)的努力量;bl3)執(zhí)行所述姿勢時的身體控制;bl4)執(zhí)行所述姿勢時的移動精度;bl5)執(zhí)行所述姿勢時的移動效率;bl6)執(zhí)行所述姿勢時用戶身體的各部分保持得有多平穩(wěn);bl7)執(zhí)行所述姿勢時用戶身體的各部分保持得有多放松;bl8)執(zhí)行所述姿勢時用戶的移動有多劇烈。
9.如權(quán)利要求1所述的方法,其特征在于,所述步驟c)包括基于所述步驟b)中檢測到的性質(zhì)方面來更改呈現(xiàn)給用戶的軟件應(yīng)用程序的一部分以個性化呈現(xiàn)給用戶的內(nèi)容的步馬聚ο
10.一種在游戲系統(tǒng)中的計算機(jī)可讀存儲介質(zhì),所述游戲系統(tǒng)包括耦合到用于捕捉用 戶運(yùn)動的捕捉設(shè)備,所述計算機(jī)可讀存儲介質(zhì)承載計算機(jī)可讀指令,所述計算機(jī)可讀指令 當(dāng)在處理器上執(zhí)行時使得所述處理器執(zhí)行一種方法,所述方法包括以下步驟a)接收與用戶運(yùn)動有關(guān)的數(shù)據(jù);b)在通過/失敗的基礎(chǔ)上確定在所述步驟a)中接收的用戶運(yùn)動數(shù)據(jù)是否對應(yīng)于預(yù)定 義姿勢;c)除了確定在所述步驟a)中接收的用戶運(yùn)動數(shù)據(jù)是否對應(yīng)于預(yù)定義姿勢之外,確定 與用戶用于在所述步驟a)中執(zhí)行運(yùn)動的風(fēng)格有關(guān)的至少一個性質(zhì)方面;以及d)基于在步驟c)中檢測到的所述至少一個性質(zhì)方面向用戶提供反饋。
11.如權(quán)利要求10所述的方法,其特征在于,在所述步驟b)確定用戶未執(zhí)行預(yù)定義姿 勢的情況下,所述步驟c)可確定至少一個性質(zhì)方面。
12.如權(quán)利要求10所述的方法,其特征在于,所述步驟c)包括將與所述用戶運(yùn)動的性 質(zhì)方面有關(guān)的元數(shù)據(jù)與定義用戶運(yùn)動何時作為預(yù)定義風(fēng)格是合格的一組規(guī)則進(jìn)行比較的 步驟。
13.如權(quán)利要求12所述的方法,其特征在于,所述步驟c)包括對不同的預(yù)定義姿勢存 儲不同的一組規(guī)則。
14.如權(quán)利要求12所述的方法,其特征在于,所述步驟c)包括存儲跨不同預(yù)定義姿勢 和/或不同用戶運(yùn)動應(yīng)用的單個規(guī)則。
15.如權(quán)利要求12所述的方法,其特征在于,所述步驟c)包括存儲具有與以下的至少 一個有關(guān)的預(yù)定義參數(shù)值的規(guī)則被解釋為用于執(zhí)行用戶運(yùn)動的特定風(fēng)格的用戶身體的一 個或多個部分的位置或位置變化、速度或速度變化、或加速度或加速度變化。
16.如權(quán)利要求12所述的方法,其特征在于,所述步驟c)包括存儲定義用戶運(yùn)動何時 被解釋為以下風(fēng)格之一的規(guī)則cl)與用戶運(yùn)動相關(guān)聯(lián)的優(yōu)雅移動;c2)執(zhí)行用戶運(yùn)動花費(fèi)的努力量;c3)執(zhí)行用戶運(yùn)動時的身體控制;c4)執(zhí)行用戶運(yùn)動時的移動精度;c5)執(zhí)行用戶運(yùn)動時的移動效率;c6)執(zhí)行用戶運(yùn)動時用戶身體的各部分保持得有多平穩(wěn);c6)執(zhí)行用戶運(yùn)動時用戶身體的各部分保持得有多放松;c8)執(zhí)行用戶運(yùn)動時用戶的移動有多劇烈。
17.一種游戲系統(tǒng),包括用于捕捉與用戶的運(yùn)動有關(guān)的數(shù)據(jù)的圖像捕捉設(shè)備;用于從所述捕捉設(shè)備接收圖像數(shù)據(jù)并主存游戲應(yīng)用程序的計算環(huán)境,所述計算環(huán)境包括,一階姿勢識別引擎,用于接收與用戶的運(yùn)動有關(guān)的數(shù)據(jù)并在通過/失敗的基礎(chǔ)上確定 用戶的運(yùn)動是否是作為預(yù)定義姿勢合格的,二階姿勢識別引擎,用于接收所述數(shù)據(jù)和從所述數(shù)據(jù)導(dǎo)出的信息中的至少一個,并且 除了對用戶的運(yùn)動是否是作為預(yù)定義姿勢合格的閾值判定之外還確定用戶的運(yùn)動是否包 括作為與用戶運(yùn)動相關(guān)聯(lián)的預(yù)定義風(fēng)格合格的風(fēng)格屬性,以及所述二階姿勢識別引擎使用的一組存儲的規(guī)則,所述一組存儲的規(guī)則包括一組預(yù)定義 用戶運(yùn)動何時被解釋為預(yù)定義風(fēng)格的定義;以及耦合到所述計算環(huán)境的視聽設(shè)備,用于基于從所述計算環(huán)境接收的信息來呈現(xiàn)所述用 戶和所述用戶的運(yùn)動的圖形表示,所述圖形表示通過以表示被所述二階姿勢識別引擎確定 為存在的風(fēng)格的圖形來示出用戶的運(yùn)動或周邊環(huán)境來增強(qiáng)。
18.如權(quán)利要求17所述的游戲系統(tǒng),其特征在于,所述計算環(huán)境使得所述視聽設(shè)備示 出被所述一階姿勢識別引擎確定為存在的用戶姿勢,并且所述姿勢以表示被所述二階姿勢 識別引擎確定為存在的風(fēng)格的圖形示出。
19.如權(quán)利要求17所述的游戲系統(tǒng),其特征在于,在所述一階姿勢識別引擎確定用戶 運(yùn)動作為姿勢不合格的情況下,所述計算環(huán)境使得所述視聽設(shè)備示出表示與用戶運(yùn)動相關(guān) 聯(lián)的風(fēng)格的圖形。
20.如權(quán)利要求17所述的游戲系統(tǒng),其特征在于,所述二階姿勢識別引擎分析與用戶 的運(yùn)動相關(guān)聯(lián)的參數(shù)并將這些參數(shù)與所述一組存儲的規(guī)則中的參數(shù)進(jìn)行比較,所述參數(shù)包 括以下的至少一個所述用戶的身體的一個或多個部分的位置或位置變化、速度或速度變 化、以及加速度或加速度變化。
全文摘要
公開了用于確定一給定姿勢是否是以特定風(fēng)格來執(zhí)行的系統(tǒng)、方法和計算機(jī)可讀介質(zhì)。該風(fēng)格信息然后可用于個性化游戲或多媒體體驗(yàn),從而因用戶的個人風(fēng)格而獎勵用戶。
文檔編號G06T7/20GK102103408SQ201010616839
公開日2011年6月22日 申請日期2010年12月17日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者J·蒂亞奎羅 申請人:微軟公司