專利名稱:對身體和道具的檢測的制作方法
技術領域:
本發明涉及計算機應用,尤其涉及目標檢測技術。優先權要求本發明要求2009年5月20日提交的題為“Human Body Pose Estimation (人類身體姿態估計)”、申請號為12/454,628的美國專利申請的優先權,該美國專利申請要求2009 年5月I日提交的題為“Human Body Pose Estimation(人類身體姿態估計)”、申請號為 61/174,878的臨時專利申請的優先權。上述申請中的每一個的全部內容通過引用結合于此。
背景技術:
在典型的計算環境中,諸如多媒體應用或計算機游戲等計算應用的用戶使用輸入設備來控制計算應用的各方面。用于控制計算應用的常見輸入設備包括控制器、鍵盤、操縱桿、遙控器、鼠標等。近來,計算游戲應用已開始使用相機和姿勢識別軟件來提供自然用戶界面。使用自然用戶界面,用戶的身體部位和移動可被檢測、解釋、和用于控制計算應用的游戲角色或其他方面。
發明內容
描述了用于檢測、分析和跟蹤包括身體部位和道具的目標的技術。在一個實施例中,自然用戶界面系統包括目標檢測和跟蹤系統。在一個實施例中,該目標檢測和跟蹤系統包括目標建議系統和目標跟蹤系統。目標建議系統標識特定視野內的一個或多個候選身體部位以及一個或多個候選道具位置。在一個示例中,目標建議系統向特定深度圖像中的一個或多個像素分配屬于一個或多個候選身體部位和/或道具的概率。由于目標建議系統可產生許多假肯定,因此目標跟蹤系統被用于協調一個或多個候選身體部位和/或道具、并正確地輸出標識出的身體部位和/或道具。在一個實施例中,所公開的技術獲得一個或多個深度圖像,生成與一個或多個身體部位和一個或多個道具相關聯的一個或多個分類圖,使用骨架跟蹤系統來跟蹤一個或多個身體部位,使用道具跟蹤系統來跟蹤一個或多個道具,以及報告與一個或多個身體部位和一個或多個道具有關的度量。在某些實施例中,反饋可在骨架跟蹤系統和道具跟蹤系統之間發生。在某些實施例中,持有一個或多個道具(例如,諸如塑料玩具劍或吉他之類的游戲道具)的一個或多個游戲玩家的物理移動被跟蹤并被解釋為調節和/或控制電子游戲的各部分的實時用戶控制。例如,持有真實的網球拍或相似的物理對象的游戲玩家在玩虛擬網球游戲時,可在游戲空間中實時地控制虛擬球拍。提供本發明內容以便以簡化的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發明內容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
圖IA和IB描繪跟蹤用戶的目標檢測和跟蹤系統的一個實施例。圖IC描繪跟蹤用戶的目標檢測和跟蹤系統的一個實施例。圖2描繪目標檢測和跟蹤系統的一個實施例。圖3示出深度圖像的一個示例實施例。圖4示出根據本發明各實施例的計算環境的一個示例。圖5示出根據本發明各實施例的計算環境的一個示例。圖6A是描述用于檢測和跟蹤一個或多個目標的過程的一個實施例的流程圖。圖6B是描述用于生成一個或多個分類圖的過程的一個實施例的流程圖。圖6C是描述用于生成一個或多個分類圖的過程的一個實施例的流程圖。圖7描繪原始圖像和對應的被分割的圖像。圖8描繪已經用3-D模型改型的三個訓練圖像。圖9A-9C描繪深度圖像和對應的被分割的圖像。
具體實施例方式描述了用于檢測、分析和跟蹤包括身體部位和道具的目標的技術。在一個實施例中,自然用戶界面系統包括目標檢測和跟蹤系統。在一個實施例中,該目標檢測和跟蹤系統包括目標建議系統和目標跟蹤系統。目標建議系統標識特定視野內的一個或多個候選身體部位以及一個或多個候選道具位置。在一個示例中,目標建議系統向特定深度圖像中的一個或多個像素分配屬于一個或多個候選身體部位和/或道具的概率。由于目標建議系統可產生許多假肯定,因此目標跟蹤系統被用于協調一個或多個候選身體部位和/或道具、并正確地輸出標識出的身體部位和/或道具。圖IA和IB通過用戶18在玩拳擊游戲來描繪目標檢測和跟蹤系統10的一個實施例。目標檢測和跟蹤系統10可用于檢測、識別、分析、和/或跟蹤人類目標(諸如用戶18) 和/或非人類目標(諸如用戶18拿著的道具(未示出))。如圖IA所示,目標檢測和跟蹤系統10可包括計算環境12。計算環境12可包括計算機、游戲系統或控制臺等等。在一個實施例中,計算環境12可包括硬件組件和/或軟件組件,使得計算環境12可用于執行操作系統和諸如游戲應用、非游戲應用等的應用。在一個實施例中,計算系統12可包括可執行存儲在處理器可讀存儲設備上的用于執行此處描述的過程的指令的處理器,如標準化處理器、專用處理器、微處理器等。如圖IA所示,目標檢測和跟蹤系統10還可包括捕捉設備20。在一個實施例中,捕捉設備20可包括可用于在視覺上監視包括諸如用戶18等一個或多個用戶的一個或多個目標。由一個或多個用戶執行的姿勢(包括姿態)可被捕捉、分析、和跟蹤,以便執行對操作系統或應用的用戶界面的一個或多個控制或動作。用戶可通過移動他或她的身體來創建姿勢。姿勢可包括用戶的運動或姿態,其可被捕捉為圖像數據并解析其意義。姿勢可以是動態的,包括運動,如模仿投球。姿勢可以是靜態姿勢,諸如保持其前臂交叉。姿勢也可結合道具,如揮動仿制的劍。在一個實施例中,捕捉設備20可捕捉與一個或多個用戶和/或對象有關的圖像和
5音頻數據。例如,捕捉設備20可用于捕捉與一個或多個用戶的部分或全部身體移動、姿勢和語音有關的信息。由捕捉設備20捕捉的信息可通過計算環境12和/或捕捉設備20內的處理元件來接收,并用于對游戲或其他應用的各方面進行呈現、交互和控制。在一個示例中,捕捉設備20捕捉與特定用戶有關的圖像和音頻數據,并且計算環境12處理所捕捉的信息以便通過執行面部和語音識別軟件來標識該特定用戶。在一個實施例中,目標檢測和跟蹤系統10可被連接到可向諸如用戶18等用戶提供游戲或應用視覺和/或音頻的視聽設備16,如電視機、監視器、高清電視機(HDTV)等。例如,計算環境12可包括諸如圖形卡等視頻適配器和/或諸如聲卡等音頻適配器,這些適配器可提供與游戲應用、非游戲應用等相關聯的視聽信號。視聽設備16可從計算環境12接收視聽信號,然后可向用戶18輸出與視聽信號相關聯的游戲或應用視覺和/或音頻。在一個實施例中,視聽設備16可經由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA電纜等連接到計算環境12。如圖IA和IB所示,在計算環境12上執行的應用可以是用戶18可能正在玩的拳擊游戲。計算環境12可使用視聽設備16來向用戶18提供拳擊對手22的視覺表示。計算環境12還可使用視聽設備16來提供用戶18可通過他的或她的移動來控制的玩家化身24 的視覺表示。例如,如圖IB所示,用戶18可在物理空間中揮重拳來使得玩家化身24在游戲空間中揮重拳。在一個實施例中,目標檢測和跟蹤系統10的計算機環境12和捕捉設備 20可用于識別和分析用戶18在物理空間中的重拳,從而使得該重拳可被解釋為對游戲空間中的玩家化身24的游戲控制。在一個實施例中,用戶移動可被解釋為可對應于除控制玩家化身24之外的動作的控制。例如,用戶18可以使用移動來結束游戲、暫停游戲、保存游戲、選擇級別、查看高分、與朋友交流等。在另一實施例中,目標檢測和跟蹤系統10將目標的移動解釋為游戲領域之外的操作系統和/或應用控制。例如,事實上操作系統和/或應用程序的任何可控方面都可由諸如用戶18等目標的移動來控制。在另一實施例中,用戶18可使用移動來從主用戶界面選擇游戲或其他應用。由此,用戶18的全范圍運動可以用任何合適的方式來獲得、 使用并分析以與應用或操作系統進行交互。如圖IC所示,諸如用戶18這樣的人類目標可持有球拍21這樣的對象。在一個實施例中,用戶18可在與應用交互時持有諸如道具等對象。在此類實施例中,個人和對象兩者的移動都可用于控制應用。例如,可以跟蹤并利用手持球拍21的玩家的運動來控制模擬網球游戲的應用中的屏幕上的球拍23。在另一實施例中,可跟蹤并利用手持諸如塑料的劍等玩具武器的玩家的運動來控制電子格斗游戲中對應的武器。在某些實施例中,也可以跟蹤包括一個或多個手套、球、球棒、球桿、吉它、話筒、桿、寵物、動物、鼓等其他對象。被跟蹤的對象可緊密地映射到特定游戲或應用(例如,虛擬網球游戲中使用的真實網球拍)或可以是更抽象的表示(例如,表示光刀的火炬或閃光)。在某些實施例中,由目標檢測和跟蹤系統10跟蹤的一個或多個對象可以是活動對象(active object) 0活動對象可包括一個或多個傳感器,用于向目標檢測和跟蹤系統 10提供諸如加速度或定向信息之類的信息。作為對比,不活動對象(passive object)不向目標檢測和跟蹤系統10提供附加信息。將視覺跟蹤信息與來自活動對象的實時位置、加速度、和/或定向信息進行組合的能力可允許目標檢測和跟蹤系統10改進其目標跟蹤性能,尤其當捕捉設備正捕捉高速移動時(例如,揮動棒球棒)時運動模糊可能是一問題的情況下。在一個實施例中,游戲道具包括加速計、磁力計、和陀螺儀,并且向目標檢測和跟蹤系統傳輸加速度、磁場、和定向信息。在某些實施例中,由目標檢測和跟蹤系統10跟蹤的一個或多個對象可以是不活動對象。在一個實施例中,不活動對象可通過諸如IR回射標記之類的一個或多個標記來擴充,以便改進對象檢測和跟蹤。在另一個實施例中,不活動和活動游戲道具可通過一個或多個IR回射標記來擴充。目標檢測和跟蹤系統10及其組件的合適的示例在以下共同待審的專利申請中找到,所有這些專利申請都特此通過引用結合于此于2009年5月29日提交的名稱為“Environment And/Or Target Segmentation (環境和/或目標分割)”的美國專利申請序列號No. 12/475,094 ;于2009年7月29日提交的名稱為“Auto Generating a Visual Representation(自動生成視覺表示)”的美國專利申請序列號No. 12/511, 850 ; 于2009年5月29日提交的名稱為“Gesture Tool (姿勢工具)”的美國專利申請序列號 No. 12/474,655 ;于 2009 年 10 月 21 日提交的名稱為 “Pose Tracking Pipeline(姿態跟蹤流水線)”的美國專利申請序列號No. 12/603,437;于2009年5月29日提交的名稱為 “Device for Identifying and Tracking Multiple Humans Over Time(用于隨時間標識和跟蹤多個人類的設備)”的美國專利申請序列號No. 12/475,308 ;于2009年 10月7日提交的名稱為“Human Tracking System(人類跟蹤系統)”的美國專利申請序列號 No. 12/575,388 ;于 2009 年 4 月 13 日提交的名稱為 “Gesture Recognizer System Architecture (姿勢識別器系統架構)”的美國專利申請序列號No. 12/422,661 ;于2009 年2月23日提交的名稱為“Standard Gestures (標準姿勢)”的美國專利申請序列號 No. 12/391,150 ;以及于2009年5月29日提交的名稱為“Gesture Tool (姿勢工具)”的美國專利申請序列號No. 12/474,655。圖2示出包括捕捉設備20和計算環境12的目標檢測和跟蹤系統10的一個實施例,該目標檢測和跟蹤系統10可用于識別(需要或無需附加到對象的專門傳感設備)捕捉區域中的人類或非人類目標、唯一地標識他們并且在三維空間中跟蹤他們。在一實施例中, 捕捉設備20可以是深度相機(或深度傳感相機),該相機被配置成經由任何合適的技術,包括例如飛行時間、結構化光、立體圖像等來捕捉包括深度圖像的帶有深度信息的視頻,該深度圖像可包括深度值。在一個實施例中,捕捉設備20可包括深度傳感圖像傳感器。在一個實施例中,捕捉設備20可將所計算的深度信息組織為“Z層”或可垂直于從深度相機沿其視線延伸的Z軸的層。如圖2所示,捕捉設備20可包括圖像相機組件32。在一個實施例中,圖像相機組件32可以是可捕捉場景的深度圖像的深度相機。深度圖像可包括所捕捉的場景的二維 (2-D)像素區域,其中2-D像素區域中的每個像素都可以表示深度值,比如所捕捉的場景中的對象與相機相距的例如以厘米、毫米等為單位的距離。如圖2所示,圖像相機組件32可包括可被用來捕捉捕捉區域的深度圖像的IR光組件34、三維(3-D)相機36、以及RGB相機38。例如,在飛行時間分析中,捕捉設備20的IR 光組件34可以將紅外光發射到捕捉區域上,然后可以使用傳感器,用例如3-D相機36和/ 或RGB相機38來檢測從捕捉區域中的一個或多個目標和對象的表面反向散射的光。在某實施例中,捕捉設備20可包括IR CMOS圖像傳感器。在某些實施例中,可以使用脈沖式紅外光從而可以測量出射光脈沖和相應的入射光脈沖之間的時間差并將其用于確定從捕捉設備20到捕捉區域中的目標或對象上的特定位置的物理距離。此外,可將出射光波的相位與入射光波的相位進行比較來確定相移。然后可以使用該相移來確定從捕捉設備到目標或對象上的特定位置的物理距離。在一個實施例中,可使用飛行時間分析,通過經由包括例如快門式光脈沖成像的各種技術來分析反射光束隨時間的強度以間接地確定從捕捉設備20到目標或對象上的特定位置的物理距離。在另一示例中,捕捉設備20可使用結構化光來捕捉深度信息。在該分析中,圖案化光(即,被顯示為諸如網格圖案或條紋圖案等已知圖案的光)可經由例如IR光組件34 被投影到捕捉區域上。在撞擊到捕捉區域中的一個或多個目標或(對象)的表面時,作為響應,圖案可變形。圖案的這種變形可由例如3-D相機36和/或RGB相機38來捕捉并被分析以確定從捕捉設備到目標或對象上的特定位置的物理距離。在一些實施例中,兩個或更多個不同的相機可以被合并到一集成的捕捉設備中。 例如,深度相機和視頻相機(例如RGB視頻相機)可以被合并到共同的捕捉設備中。在一些實施例中,可以協作地使用兩個或更多個分開的捕捉設備。例如,可以使用深度相機和分開的視頻相機。當使用視頻相機時,該視頻相機可用于提供目標跟蹤數據、對目標跟蹤進行糾錯的確認數據、圖像捕捉、面部識別、對手指(或其他小特征)的高精度跟蹤、光感測和 /或其他功能。在一個實施例中,捕捉設備20可包括可以從不同的角度觀察捕捉區域的兩個或更多個在物理上分離的相機,以獲取可以被解析以生成深度信息的視覺立體數據。還可通過使用多個檢測器(可以是單色、紅外、RGB)或任意其它類型的檢測器捕捉圖像、以及執行視差計算,來確定深度。也可使用其他類型的深度圖像傳感器來創建深度圖像。如圖2所示,捕捉設備20可以包括話筒40。話筒40可包括可接收聲音并將其轉換成電信號的變換器或傳感器。在一個實施例中,話筒40可用于減少目標檢測和跟蹤系統 10中的捕捉設備20與計算環境12之間的反饋。另外,話筒40可用于接收也可由用戶提供的音頻信號,以控制可由計算環境12執行的諸如游戲應用程序、非游戲應用程序等應用程序。在一個實施例中,捕捉設備20可以包括可以在操作上與圖像相機組件32進行通信的處理器42。處理器42可包括標準處理器,專用處理器、微處理器等。處理器42可執行指令,這些指令可包括用于存儲簡檔的指令、用于接收深度圖像的指令、用于確定合適的目標是否可被包括在深度圖像中的指令、用于將合適的目標轉換成該目標的骨架表示或模型的指令、或任何其他合適的指令。可以理解,至少一些目標分析和跟蹤操作可以由一個或多個捕捉設備內包含的處理器來執行。捕捉設備可以包括被配置成執行一個或多個目標分析和/或跟蹤功能的一個或多個板載處理單元。此外,捕捉設備可以包括便于更新這樣的板載處理邏輯的固件。如圖2所示,捕捉設備20可包括存儲器組件44,存儲器組件44可存儲可由處理器 42執行的指令、由3-D相機或RGB相機所捕捉的圖像或圖像的幀、用戶簡檔、或任何其他合適的信息、圖像等等。在一個示例中,存儲器組件44可包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、高速緩存、閃存、硬盤或任何其他合適的存儲組件。如圖2所示,存儲器組件44 可以是與圖像捕捉組件32和處理器42進行通信的單獨的組件。在另一實施例中,存儲器組件44可被集成到處理器42和/或圖像捕捉組件32中。在一個實施例中,圖2所示的捕捉設備20的組件32、34、36、38、40、42和44中的部分或全部被容納在單個外殼中。如圖2所示,捕捉設備20可以經由通信鏈路46與計算環境12通信。通信鏈路 46可以是包括例如USB連接、火線連接、以太網電纜連接等的有線連接和/或諸如無線 802. Ilb,802. llg、802. Ila或802. Iln連接等的無線連接。計算環境12可以向捕捉設備 20提供時鐘,可以使用該時鐘來通過通信鏈路46確定何時捕捉,例如,場景。在一個實施例中,捕捉設備20可將由例如3-D照相機36和/或RGB照相機38捕捉的深度信息和圖像經由通信鏈路46提供給計算環境12。計算環境12然后可使用深度信息和所捕捉的圖像來例如創建虛擬屏幕、改變用戶界面、以及控制諸如游戲或文字處理程序等應用程序。如圖2所示,計算環境12包括姿勢庫192、結構數據198、姿勢識別引擎190、深度圖像處理和對象報告模塊194以及操作系統196。深度圖像處理和對象報告模塊194使用深度圖像來跟蹤諸如用戶和其他對象等對象的運動。為了幫助跟蹤對象,深度圖像處理和對象報告模塊194使用姿勢庫190、結構數據198和姿勢識別引擎190。在一個示例中,結構數據198包括關于可被跟蹤的對象的結構信息。例如,可以存儲人類的骨架模型以幫助理解用戶的移動并識別身體部位。在另一示例中,還可以存儲關于無生命對象(諸如道具)的結構信息以幫助識別這些對象并幫助理解移動。在一個示例中,姿勢庫192可包括姿勢過濾器集合,每一姿勢過濾器包括關于骨架模型可執行的姿勢的信息。姿勢識別引擎190可將由捕捉設備20捕捉的骨架模型以及與其相關聯的移動形式的數據與姿勢庫192中的姿勢過濾器進行比較來標識用戶(如骨架模型所表示的)何時執行了一個或多個姿勢。那些姿勢可與應用的各種控制相關聯。因此, 計算環境12可使用姿勢識別引擎190來解釋骨架模型的移動并基于該移動來控制操作系統196或應用。在一個實施例中,深度圖像處理和對象報告模塊194會將檢測到的每個對象的標識以及每幀的對象的位置和/或定向報告給操作系統196。操作系統196將使用該信息來更新顯示畫面中的對象(例如,化身)或其他圖像的位置或移動,或在所提供的用戶界面上執行動作。關于姿勢識別器引擎190的更多信息參見2009年4月13日提交的美國專利申請 12/422,661 “Gesture Recognizer System Architecture (姿勢識別器系統架構)”,該申請通過整體引用合并于此。關于識別姿勢的更多信息可在2009年2月23日提交的美國專利申請12/391,150 “Standard Gestures (標準姿勢)”;以及2009年5月29日提交的美國專利申請12/474,655 “Gesture Tool (姿勢工具)”中找到,這兩個申請通過引用整體并入本文。關于運動檢測和跟蹤的更多信息可在2009年12月18日提交的美國專利申請 12/641,788 “Motion Detection Using Depth Images (使用深度圖像的運動檢測)”,以及美國專利申請 12/475,308 “Device for Identifying and Tracking Multiple Humans over Time (用于隨時間標識和跟蹤多個人類的設備)”中找到,這兩個申請通過整體引用合并于此。
圖3示出可由目標檢測和跟蹤系統接收的深度圖像60的示例實施例,諸如圖 1A-1C的目標檢測和跟蹤系統10和/或計算環境12。在一個實施例中,深度圖像60可以是由例如以上參考圖2所描述的捕捉設備20的3-D相機36和/或RGB相機38所捕捉的場景的圖像或幀。如圖3中所示,深度圖像60可包括所捕捉的場景中的人類目標62和一個或多個非人類目標64,諸如墻壁、桌子、監視器等。在一個示例中,深度圖像60可包括多個觀測到的像素,其中每一觀測到的像素具有相關聯的深度值。例如,深度圖像60可包括所捕捉的場景的二維(2-D)像素區域,其中2-D像素區域中的每一像素可表示深度值,諸如所捕捉的場景中的對象或目標距捕捉設備的例如以厘米、毫米等為單位的長度或距離。回頭參考圖2,在一個實施例中,一旦接收到深度圖像,可將該深度圖像降采樣到較低的處理分辨率,從而可用更少的計算開銷來更容易地使用和/或更快地處理該深度圖像。另外,可以從深度圖像中移除和/或平滑一個或多個高變度和/或含噪聲的深度值,且可以填充和/或重構遺漏的和/或被移除的深度信息的各部分。在一個實施例中,深度圖像(諸如深度圖像60)可被降采樣作為與來自RGB相機(諸如相機38)的圖像或由任何其他檢測器捕捉到的圖像組合使用,以便確定目標的形狀和大小。圖4示出了可用于實現圖2的計算環境12的、包括多媒體控制臺(或游戲控制臺)100計算環境的示例。如圖4所示,多媒體控制臺100具有含有一級高速緩存102、二級高速緩存104和閃存ROM(只讀存儲器)106的中央處理單元(CPU) 101。一級高速緩存102 和二級高速緩存104臨時存儲數據并因此減少存儲器訪問周期數,由此改進處理速度和吞吐量。CPU 101可被設置成具有一個以上的內核,并且由此附加一級和二級高速緩存102和 104。閃存ROM 106可存儲在多媒體控制臺100通電時引導過程的初始階段期間加載的可執行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速和高分辨率圖形處理的視頻處理流水線。數據經由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線向A/V(音頻/視頻)端口 140輸出數據,以便傳輸到電視機或其他顯示器。存儲器控制器110連接到GPU 108以方便處理器訪問各種類型的存儲器112,諸如但不局限于RAM(隨機存取存儲器)。多媒體控制臺100包括較佳地在模塊118上實現的I/O控制器120、系統管理控制器122、音頻處理單元123、網絡接口控制器124、第一 USB主控制器126、第二 USB控制器128和前面板I/O子部件130。USB控制器126和128用作外圍控制器142 (I)-142 (2)、 無線適配器148、以及外置存儲器設備146 (例如,閃存、外置⑶/DVD ROM驅動器、可移動介質等)的主機。網絡接口 124和/或無線適配器148提供對網絡(例如,因特網、家庭網絡等)的訪問,并且可以是包括以太網卡、調制解調器、藍牙模塊、電纜調制解調器等的各種不同的有線或無線適配器組件中任何一種。提供系統存儲器143來存儲在引導過程期間加載的應用數據。提供介質驅動器 144,并且其可包括DVD/CD驅動器、硬盤驅動器,或其他可移動介質驅動器等。媒體驅動器 144可以內置或外置于多媒體控制臺100。應用數據可經由媒體驅動器144訪問,以由多媒體控制臺100執行、回放等。媒體驅動器144經由諸如串行ATA總線或其他高速連接(例如IEEE 1394)等總線連接到I/O控制器120。系統管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務功能。音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應的音頻處理流水線。音頻數據經由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數據輸出到A/V端口 140,以供外置音頻播放器或具有音頻能力的設備再現。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發光二極管)或其他指示器的功能。系統供電模塊136向多媒體控制臺100的組件供電。風扇138冷卻多媒體控制臺100內的電路。CPU IOU GPU 108、存儲器控制器110、和多媒體控制臺100內的各個其他組件經由一條或多條總線互連,包括串行和并行總線、存儲器總線、外圍總線、和使用各種總線架構中任一種的處理器或局部總線。作為示例,這些架構可以包括外圍部件互連(PCI)總線、 PCI-Express 總線等。當多媒體控制臺100通電時,應用數據可從系統存儲器143加載到存儲器112和 /或高速緩存102、104中,并且可在CPU 101上執行。應用可呈現在導航到多媒體控制臺 100上可用的不同媒體類型時提供一致的用戶體驗的圖形用戶界面。在操作中,媒體驅動器 144中包含的應用和/或其他媒體可從媒體驅動器144啟動或播放,以向多媒體控制臺100 提供附加功能。多媒體控制臺100可通過將該系統簡單地連接到電視機或其他顯示器而作為獨立系統來操作。在該獨立模式中,多媒體控制臺100允許一個或多個用戶與該系統交互、看電影、或聽音樂。然而,隨著通過網絡接口 124或無線適配器148可用的寬帶連接的集成, 多媒體控制臺100還可作為較大網絡社區中的參與者來操作。當多媒體控制臺100通電時,可以保留設定量的硬件資源以供多媒體控制臺操作系統作系統使用。這些資源可以包括存儲器保留量(例如,16MB)、CPU和GPU周期保留量 (例如,5% )、網絡帶寬保留量(例如,8kbs)等。因為這些資源是在系統引導時保留的,所以所保留的資源從應用的角度而言是不存在的。具體而言,存儲器保留優選地足夠大,以包含啟動內核、并發系統應用程序和驅動程序。CPU保留優選地為恒定,使得若所保留的CPU用量不被系統應用使用,則空閑線程將消耗任何未使用的周期。對于GPU保留,通過使用GPU中斷來調度代碼以將彈出窗口呈現為覆蓋圖,從而顯示由系統應用程序生成的輕量消息(例如,彈出窗口)。覆蓋圖所需的存儲器量取決于覆蓋區域大小,并且覆蓋圖優選地與屏幕分辨率成比例縮放。在并發系統應用使用完整用戶界面的情況下,優選使用獨立于應用分辨率的分辨率。定標器可用于設置該分辨率,從而無需改變頻率和引起TV重新同步。在多媒體控制臺100引導且系統資源被保留之后,執行并發系統應用來提供系統功能。系統功能被封裝在上述所保留的系統資源中執行的一組系統應用中。操作系統內核標識線程是系統應用線程還是游戲應用線程。系統應用優選地被調度為在預定時間并以預定時間間隔在CPU 101上運行,以便為應用提供一致的系統資源視圖。進行調度是為了把由在控制臺上運行的游戲應用所引起的高速緩存中斷最小化。當并發系統應用需要音頻時,則由于時間敏感性而將音頻處理相對于游戲應用進行異步調度。多媒體控制臺應用管理器在系統應用活動時控制游戲應用音頻水平(例如, 靜音、衰減)。
輸入設備(例如,控制器142(1)和142(2))由游戲應用和系統應用共享。輸入設備不是保留資源,而是在系統應用和游戲應用之間切換以使其各自具有設備的焦點。應用管理器較佳地控制輸入流的切換,而無需知曉游戲應用的知識,并且驅動程序維護有關焦點切換的狀態信息。在某些實施例中,圖2的捕捉設備20可以是對多媒體控制臺100的附加輸入設備。圖5示出了可用于實現圖2的計算環境12的計算環境的另一示例。圖5的計算環境只是合適的計算環境的一個示例,并且不旨在對所公開的主題的使用范圍或功能提出任何限制。也不應該將圖2的計算環境12解釋為對圖5的示例性操作環境中示出的任一組件或其組合有任何依賴性或要求。在一些實施例中,各個所示的計算元素可包括被配置成實例化本公開的特定方面的電路。例如,本公開中所使用的術語電路可包括被配置成通過固件或開關來執行功能的專用硬件組件。在其他示例中,術語電路可包括由軟件指令配置的實施可用于執行功能的邏輯的通用處理單元、存儲器等。在其中電路包括硬件和軟件的組合的實施例中,實施者可以編寫體現邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機器可讀代碼。在圖5中,計算系統220包括通常包括各種計算機可讀介質的計算機241。計算機可讀介質可以是可由計算機241訪問的任何可用介質,而且包括易失性和非易失性介質、 可移動和不可移動介質。系統存儲器222包括易失性和/或非易失性存儲器形式的計算機存儲介質,如只讀存儲器(ROM) 223和隨機存取存儲器(RAM) 260。包含諸如在啟動期間幫助在計算機241內的元件之間傳輸信息的基本例程的基本輸入/輸出系統224 (BIOS)通常儲存儲在ROM 223中。RAM 260通常包含處理單元259可立即訪問和/或當前正在其上操作的數據和/或程序模塊。作為示例而非限制,圖5示出了操作系統225、應用程序226、其它程序模塊227和程序數據228。計算機241還可包括其他可移動/不可移動、易失性/非易失性計算機存儲介質。 作為示例,圖5示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬盤驅動器238, 從可移動、非易失性磁盤254中讀取或向其寫入的磁盤驅動器239,以及從諸如CD ROM或其它光學介質等可移動、非易失性光盤253中讀取或向其寫入的光盤驅動器240。可在示例性操作環境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限于,磁帶盒、閃存卡、數字多功能盤、數字錄像帶、固態RAM、固態ROM等。硬盤驅動器238通常通過諸如接口 234之類的不可移動存儲器接口連接到系統總線221,并且磁盤驅動器239 和光盤驅動器240通常通過諸如接口 235之類的可移動存儲器接口連接到系統總線221。上文討論并在圖5中示出的驅動器及其相關聯的計算機存儲介質為計算機241提供了對計算機可讀指令、數據結構、程序模塊和其他數據的存儲。例如,在圖5中,硬盤驅動器238被示為存儲操作系統258、應用程序257、其它程序模塊256和程序數據255。注意, 這些組件可與操作系統225、應用程序226、其他程序模塊227和程序數據228相同,也可與它們不同。此處操作系統258、應用程序257、其他程序模塊256、以及程序數據255被賦予不同的編號,以示出至少它們是不同的副本。用戶可以通過輸入設備,例如鍵盤251和定點設備252 (通常是指鼠標、跟蹤球或觸摸墊)向計算機241輸入命令和信息。其他輸入設備 (未示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛星天線、掃描儀等。這些以及其他輸入設備通常通過耦合到系統總線的用戶輸入接口 236連接到處理單元259,但也可通過諸如并行端口、游戲端口或通用串行總線(USB)之類的其他接口和總線結構來連接。圖2的相機34、36和捕捉設備20可定義用于計算機241的附加輸入設備。監視器242或其他類型的顯示設備也經由諸如視頻接口 232之類的接口連接到系統總線221。除監視器之外,計算機還可以包括可以通過輸出外圍接口 233連接的諸如揚聲器244和打印機243之類的其他外圍輸出設備。計算機241可使用到一個或多個遠程計算機(諸如,遠程計算機246)的邏輯連接而在聯網環境中操作。遠程計算機246可以是個人計算機、服務器、路由器、網絡PC、對等設備或其它常見網絡節點,且通常包括上文相對于計算機241描述的許多或所有元件,盡管在圖5中只示出存儲器存儲設備247。圖5中所示的邏輯連接包括局域網(LAN) 245和廣域網(WAN)249,但也可以包括其它網絡。此類聯網環境在辦公室、企業范圍的計算機網絡、內聯網和因特網中是常見的。當在LAN網絡環境中使用時,計算機241通過網絡接口或適配器237連接到LAN 245。當在WAN聯網環境中使用時,計算機241通常包括調制解調器250或用于通過諸如因特網之類的WAN 249建立通信的其他手段。調制解調器250可以是內置的或外置的,可經由用戶輸入接口 236或其他適當的機制連接到系統總線221。在聯網環境中,相對于計算機 241所示的程序模塊或其部分可被存儲在遠程存儲器存儲設備中。作為示例而非限制,圖5 示出了遠程應用程序248駐留在存儲器設備247上。應當理解,所示的網絡連接是示例性的,并且可使用在計算機之間建立通信鏈路的其它手段。在一個實施例中,計算系統220可被配置成用模型來表示每個目標。如下面更詳細地描述的,從這樣一種模型導出的信息可與從諸如深度相機之類的捕捉設備獲得信息相比較,使得模型的基本比例或形狀以及其當前姿態可被調整成更準確地表示被建模的目標。模型可由一個或多個多邊形網格、由一組數學圖元、和/或通過被建模的目標的其他合適的機器表不來表不。圖6A是描述用于檢測和跟蹤一個或多個目標的過程的一個實施例的流程圖。在某些實施例中,一個或多個目標可包括人類游戲玩家的身體部位和道具。在某些實施例中, 一個或多個目標的特定對象可表示身體部位和道具的組合。例如,特定對象可包括棒球手套和前臂的上部。圖6A的過程可由一個或多個計算設備來執行。圖6A的過程中每一步驟都可由與在其他捕捉中所使用的那些計算設備相同或不同的計算設備來執行,且每一步驟不必由單個計算設備來執行。在一個實施例中,圖6A的過程通過諸如圖2中的計算環境之類的計算環境來執行。在步驟602,從諸如圖2的捕捉設備20之類的源獲得一個或多個深度圖像。在某些實施例中,源可以是配置成通過諸如飛行時間分析、結構化光分析、立體視覺分析之類的合適的技術或其他合適的技術獲得關于目標的深度信息的深度相機。在一個實施例中,所獲得的深度圖像可包括多個觀測到的像素,其中每一觀測到的像素都具有包括從源觀看到的目標的深度信息在內的一個或多個觀測到的深度值。所獲得的深度圖像可任選地被表示為像素矩陣,該像素矩陣包括對應于每一像素地址、指示從深度相機的平面或另一合適的基準平面到該像素地址處的表面的世界空間深度的深度值。在一個實施例中,可將所獲得的深度圖像降采樣至較低分辨率的圖像。在另一實施例中,所獲得的深度圖像可被過濾以移除和或平滑一個或多個高變度和/或含噪聲的深度值。所獲得的深度圖像中的此類高變度和/或含噪聲的深度值可源自多個不同的源,諸如在圖像捕捉過程期間發生的隨機和/ 或系統性誤差、因捕捉設備而導致的缺陷和/或畸變等。在步驟604,可以處理一個或多個所獲得的深度圖像,以將要被跟蹤的前景對象與非目標對象或其他背景元素區分開來。如本文中所使用的,術語“背景”用來描述圖像中不作為要被跟蹤的一個或多個目標的一部分的任何事物。背景可包括在要跟蹤的一個或多個目標前面(即,更接近深度相機)的元素。區分要被跟蹤的前景元素與可忽略的背景元素可增加跟蹤效率和/或簡化下游處理。在一個實施例中,可以向所獲得的深度圖像中的每一數據點(例如,像素)分配標識特定數據點屬于前景元素或屬于非目標背景元素的分段值(或索引)。分段值可表示指示像素屬于特定目標和/或背景元素的概率的離散索引值或模糊索引值。在一個示例中, 可以向包括在前景圖像內的一個或多個目標中的每一個分配不同的分段值。例如,與第一游戲玩家相對應的像素可分配有等于I的玩家索引,與第二玩家相對應的像素可分配有等于2的玩家索引,而不與目標玩家相對應的像素可分配有等于O的背景索引。在另一實施例中,在一個或多個后續處理步驟中,可以將分配有背景索引的像素或其他數據點排除在考慮以外。在某些實施例中,可省略區分前景像素與背景像素的處理步驟。在步驟606,執行前景像素分配。前景像素分配可包括分析一個或多個前景像素以確定一個或多個目標(包括身體部位和道具)中的哪個有可能與一個或多個前景像素相關聯。各種不同的前景像素分配技術可用于評估特定像素有可能屬于一個或多個目標(或對一個或多個目標的機器表示)中的哪一個。在一個實施例中,在確定向特定前景像素或特定前景像素組分配哪些概率中使用深度信息和顏色信息兩者。在一個實施例中,機器學習可用于向每一前景像素分配目標索引和/或目標概率分布。機器學習方法使用從分析先前訓練的已知姿勢集(例如,訓練一組被分割的圖像) 中所學的信息,來分析前景對象。在一個示例中,可使用無狀態方法來在沒有任何在先上下文的情況下(即,不需要在先幀的知識)向每一前景像素分配目標索引或分布。在某些實施例中,前景像素分配的機器學習方法可利用一個或多個判定樹來分析所獲得的深度圖像中每一感興趣的前景像素。這樣的分析可確定對該像素的目標分配的最佳猜測,以及該最佳猜測是正確的置信度。在某些實施例中,最佳猜測可包括在兩個或更多可能目標上的概率分布,以及置信度可通過不同的可能目標的相對概率來表示。在判決樹的每一節點處,進行兩個像素之間的觀測到的深度值比較,并且取決于該比較的結果,在判決樹的子節點處進行兩個像素之間的后續深度值比較。在每一節點處的這些比較結果確定在下一節點處要比較的像素。 每一判決樹的端節點導致目標分類和該分類中相關聯的置信度。在某些實施例中,后續判決樹可用于迭代地細化對每一像素的一個或多個目標分配的最佳猜測以及該最佳猜測是正確的置信度。例如,一旦已經用第一分類樹對像素進行了分類(基于鄰近深度值),就可執行細化分類以便使用查看先前已分類像素和/或深度值的第二判決樹來對每一像素進行分類。第三次遍歷可用于通過查看先前已分類像素和/或深度值來進一步細化對當前像素的分類。可以理解,可以執行實際上任何數量的迭代,較少的迭代導致較少的計算花費,而較多的迭代可能提供更準確的分類和/或置信度。
在某些實施例中,判決樹可在訓練模式期間被構造,其中,已知姿態的已知模型的樣本(例如,被分割的圖像的訓練集)被分析,以確定可在判決樹的每一節點處詢問的、用于產生準確的像素分類的問題(即,測試)。在一個實施例中,前景像素分配是無狀態的,這意味著作出的像素分配并不參考在先狀態(或在先圖像幀)。用于分配特定像素或一組像素表示一個或多個對象的概率的無狀態處理的一個示例是樣本處理。樣本處理使用采用深度圖像的機器學習方法,并且通過向每一像素分配在其可能相對應的一個或多個對象上的概率分布來對每一像素進行分類。例如,可以向給定像素(它實際上是網球拍)分配它屬于網球拍的70%的可能性,它屬于乒乓拍的20%的可能性,以及它屬于右臂的10%的可能性。樣本處理可輸入上百萬個預分類訓練樣本(例如,被分割的圖像),學習在預分類訓練樣本內的像素集合之間的關系, 以及基于特定深度圖像來生成被分割的圖像。在一個示例中,樣本處理可產生分類圖,其中像素是按屬于特定對象(例如身體部位或道具)的概率來分類的。樣本處理還在名稱為 “Human Body Pose Estimation(人類身體姿態估計)”的美國專利申請序列號12/454,628 中描述,該專利申請的全部內容通過引用結合于此。在另一實施例中,樣本處理和質心生成被用于生成關于正確標識諸如身體部位和 /或道具之類的特定對象的概率。質心可具有所捕捉的對象被正確標識為給定對象(諸如,手、臉或道具)的相關聯概率。在一個實施例中,生成用戶的頭、肩、肘、腕和手的質心。 樣本處理和質心生成在名稱為 “Skeletal Joint Recognition and Tracking System(骨架關節識別和跟蹤系統)”的美國專利申請號12/825,657和名稱為“Multiple Centroid Condensation of Probability Distribution Clouds (概率分布云的多質心壓縮)”的美國專利申請號12/770,394中進一步描述。上述申請中的每一個的全部內容通過引用結合于此。在步驟607,生成一個或多個分類圖。如圖6A中所示,步驟607可接收來自步驟 602、604和606的輸入。在一個實施例中,生成對應于身體部位目標的第一分類圖,并且生成對應于道具目標的第二分類圖。在另一實施例中,生成覆蓋多個目標的統一分類圖,這些多個目標包括身體部位目標和道具目標兩者。在用于生成統一分類圖的方法的一個示例中,向用于實現步驟606的機器學習技術提供的訓練集合包括被分割的圖像,這些被分割的圖像包括一個或多個身體部位和一個或多個道具。在一個示例中,被分割的圖像中的每一像素被標識為身體部位,對象,或是背景之一。圖6B是描述用于生成一個或多個分類圖的過程的另一實施例的流程圖。圖6B中描述的過程僅僅是用于實現圖6A中步驟607的處理的一個示例。圖6B的過程可由一個或多個計算設備來執行。圖6B的過程中每一步驟都可由與在其他步驟中所使用的那些計算設備相同或不同的計算設備來執行,且每一步驟不必由單個計算設備來執行。在一個實施例中,圖6B的過程由游戲控制臺來執行。在圖6B中,分類圖是從身體部位目標的深度圖像中生成的。在一個實施例中,步驟654的分類圖可使用步驟606的概率分配來生成,借此向前景像素分配屬于一個或多個身體部位目標的概率。在步驟656,可從步驟654所生成的分類圖中標識出身體部位。在一個實施例中,在向一個或多個像素所分配的、該一個或多個像素表示特定身體部位的概率大于90%的情況下,該特定身體部位被標識。在步驟657,將標識出的身體部位從深度圖像(或深度圖像的派生物)中移除。在某些實施例中,背景也被移除。在步驟658,對深度圖像執行對象識別,而標識出的身體部位被移除以標識一個或多個道具。在一個實施例中,樣本處理可用于執行對象識別。也可使用其他合適的對象識別技術。在步驟659,基于步驟658 的結果來生成一個或多個道具的分類圖。使用沒有道具的訓練集來執行步驟606(而對象識別過程跟隨其后)的一個優點是,與使用包括道具的訓練集執行步驟606相比,步驟658 的對象識別過程在檢測對象方面更高效。圖6C是描述用于生成一個或多個分類圖的過程的另一實施例的流程圖。圖6C中描述的過程僅僅是用于實現圖6A中步驟607的處理的一個示例。圖6C的過程可由一個或多個計算設備來執行。圖6C的過程中每一步驟都可由與在其他步驟中所使用的那些計算設備相同或不同的計算設備來執行,且每一步驟不必由單個計算設備來執行。在一個實施例中,圖6C的過程由游戲控制臺來執行。在圖6C中,分類圖是從道具目標的深度圖像中生成的。道具目標包括活動道具和 /或不活動道具。在一個實施例中,步驟663的分類圖可使用步驟606的概率分配來生成, 借此向前景像素分配屬于一個或多個道具目標的概率。在步驟665,可從步驟663所生成的分類圖中標識出道具。在一個實施例中,在向一個或多個像素所分配的、該一個或多個像素表示特定道具的概率大于90%的情況下,該特定道具被標識。在步驟667,將標識出的道具從深度圖像(或深度圖像的派生物)中移除。在某些實施例中,背景也被移除。在一個實施例中,向與一個或多個被移除的道具相關聯的像素分配“不在乎(don’t care)”值。該 “不在乎”值可被后續處理步驟用來忽視與被移除的像素相關聯的深度信息。這一信息對后續分類步驟而言可能是有幫助的,因為被移除的像素可能已經與一個或多個道具相關聯, 該一個或多個道具可能已經在身體部位前面(即,在后續處理步驟中正被識別或分類的身體部位可能已經被一個或多個道具遮擋)。在步驟668,對深度圖像執行對象識別,而標識出的道具被移除以標識一個或多個身體部位。在一個實施例中,樣本處理可用于執行對象識別。在一個示例中,步驟604和606可與包括被分割的身體部位圖像在內的新訓練集一起使用。也可使用其他合適的對象識別技術。在步驟669,基于步驟668的結果來生成一個或多個身體部位的分類圖。回頭參考圖6A,在步驟610中,執行模型解析和跟蹤。在一個實施例中,模型解析和跟蹤包括模型擬合608、骨架跟蹤620、以及道具跟蹤622。在一個實施例中,模型解析和跟蹤610可接收一個或多個分類圖,該一個或多個分類圖基于來自步驟602的一個或多個原始深度圖像、來自步驟604的前景/背景信息、來自步驟606的前景像素概率分配。在一個實施例中,模型擬合608用于將一個或多個可能的計算機模型擬合到一個或多個所獲得的圖像和/或一個或多個分類圖上。一個或多個計算機模型可包括所建模的目標的機器表示(例如,身體部位或道具的機器表示)。在某些實施例中,涉及線、面、或更復雜的幾何形狀的模型擬合可應用于跟蹤三維空間中的對象。在某些示例中,模型可包括將目標表示為包括剛性的或可變形的形狀、或身體部位的三維模型的一個或多個數據結構。每一目標(例如,人類和/或道具)或目標的一部分可被表征為數學圖元,數學圖元的示例包括但不限于,球體、各向異性地縮放的球體、圓柱體、各向異性圓柱體、平滑圓柱體、 方形、斜面方形、棱柱等。在某些示例中,目標可使用參數化三維模型來建模。在某些示例中,模型可包括負空間(negative space)(即,應沒有任何東西的空間)。在一個示例中,包含空的空間的方向盤可用包括與該空的空間相關聯的負空間的三維模型來建模。在另一示例中,棒球棒末端處的空間可用負空間來建模。在一個實施例中,在模型擬合608期間,將人類目標建模成包括多個骨架點的骨架,每一骨架點在世界空間中具有三維位置。各個骨架點可與人類目標的實際關節、人類目標肢端的末端、和/或不與人類目標在解剖上直接鏈接的點相對應。每一骨架點具有至少三個自由度(例如,世界空間X、y、Z)。在一個示例中,具有31個骨架點的骨架可由93個值來定義。在某些實施例中,各種模型擬合方法可使用深度信息、背景信息、道具信息、身體部位信息、和/或在先訓練的解剖學和運動信息,來將一個或多個計算機模型映射到所獲得的圖像上。例如,身體部位信息可用于找出一個或多個骨架骨頭的一個或多個候選位置。 隨后,多個似乎真實的骨架可被組裝以包括一個或多個候選位置的不同組合處的骨架骨頭。然后可對各個似乎真實的骨架打分,且可將打分的建議合并到最終評估中。在一個實施例中,模型擬合608包括兩個分量身體部位建議者,它為每一身體部位獨立地從前景像素分配606中提取候選位置(例如,找出每一身體部位的質心);以及骨架生成器,它將這些候選合并成完整的骨架。回頭參考圖6A,在一個實施例中,用于檢測和跟蹤一個或多個目標的過程可由目標建議系統和目標跟蹤系統來實現。目標建議系統可實現步驟602、604、606和607以便標識一個或多個候選目標。一個或多個候選目標可在一個或多個分類圖內被標識。目標跟蹤系統可實現步驟610和612,以便協調一個或多個候選目標并且正確地報告標識出的目標。 在一個示例中,骨架跟蹤系統620消費被分配為候選身體部位的一個或多個候選目標,而道具跟蹤系統622消費被分配為候選道具的一個或多個候選目標。在另一示例中,骨架跟蹤系統620消費與一個或多個候選身體部位相關聯的第一分類圖,而道具跟蹤系統622消費與一個或多個候選道具相關聯的第二分類圖。回頭參考圖6A,在一個實施例中,骨架跟蹤系統620通過以各種方式連接一個或多個身體部位建議(或候選)以便產生大量(部分或整個)骨架假設來工作。為了減小計算復雜性,可能首先解析骨架的某些部位(諸如頭和肩),之后解析其他部位(諸如手臂)。 然后,以任何方式對這些骨架假設打分,且使用分數和其他信息來選擇最佳假設并協調正確的身體部位實際在哪里。類似地,道具跟蹤系統622考慮一個或多個道具建議(或候選)、 生成道具假設、對所生成的道具假設打分、并選擇最佳假設,以便確定正確的道具。在一個實施例中,在步驟610,來自先前圖像的一個或多個先前高分假設的位置和/或定向被用來幫助對所生成的假設打分。例如,在先前圖像中對網球拍的位置和定向的先前確定可用于在當前圖像中對該網球拍的位置和定向進行打分。在一個實施例中,反饋可在骨架跟蹤系統620和道具跟蹤系統622之間發生。在一個示例中,骨架跟蹤系統620從道具跟蹤系統622接收道具跟蹤信息。道具跟蹤信息包括與一個或多個道具有關的位置和定向信息。當對所生成的骨架假設打分時,考慮道具跟蹤信息。例如,在特定對象(例如,網球拍或棒球棒)的位置與特定身體部位(例如,手或手臂)接近的情況下,可獎勵經打分的假設。該位置可以是三維空間中的3-D位置或二維空間中的2-D位置。類似地,在特定對象不在與該特定對象通常相關聯的特定身體部位的閾值距離內的情況下,可降低(或懲罰)給予特定假定的分數。在某些實施例中,給予特定成本函數的獎勵或懲罰(例如,給予特定身體部位假設的分數)可以是線性的或非線性的。在另一個示例中,骨架跟蹤系統622從道具跟蹤系統620接收道具跟蹤信息。骨架跟蹤信息包括與一個或多個身體部位有關的位置和定向信息。當對所生成的道具假設打分時,考慮骨架跟蹤信息。例如,在特定身體部位(例如,頭)的位置在特定道具(例如,帽子)附近的情況下,可獎勵經打分的假設。該位置可以是三維空間中的3-D位置或二維空間中的2-D位置。類似地,在特定身體部位不在與該特定身體部位通常相關聯的特定道具的閾值距離內的情況下,可降低(或懲罰)給予特定假定的分數。在某些實施例中,給予特定成本函數的獎勵或懲罰(例如,給予特定道具假設的分數)可以是線性的或非線性的。在跟蹤各對象是困難的情形中(例如,當對象快速進出視野時,或當對象以相對于捕捉設備捕捉該對象的運動的能力而言高速移動時)重新獲得一對象時,與用戶的身體有關的反饋數據可能尤其有幫助。例如,在游戲玩家揮動棒球棒的情況下,如果跟蹤該棒球棒丟失,則可通過考慮該游戲玩家的手的位置來重新獲得棒球棒的手柄。在某些實施例中,道具跟蹤 622與骨架跟蹤620并行地執行。在步驟612,從步驟610正確標識出的目標的確定被報告,且其可為其他應用所用。報告可按任何合適的方式來執行。在一個示例中,應用編程接口(API)可用于報告一個或多個所選目標。例如,這樣的API可被配置成傳遞位置、速度、加速度、位置、速度和/ 或加速度中的置信度、和/或與一個或多個所選目標有關的其他信息。圖7描繪了原始圖像750和基于原始圖像750的被分割的身體圖像752。在一個實施例中,被分割的身體圖像752通過向一個或多個像素區域中的每一個分配特定顏色, 來區分與特定身體部位目標相關聯的一個或多個像素區域。原始圖像750可來自于多個源,包括諸如圖2中的捕捉設備20之類的捕捉設備、或圖形包或其他3-D呈現程序。在一個實施例中,原始圖像750表示來自用戶(諸如圖1A-1C中的用戶18)的特定姿態。在一個實施例中,圖2的目標檢測和跟蹤系統10可接收原始圖像750,并使用參考圖6A描述的過程來生成分割的身體圖像752。在一個示例中,由圖6A的步驟607生成的分類圖可包括被分割的圖像。在一個實施例中,各自包括特定姿態的一個或多個被分割的圖像可用作機器學習方法的訓練集(即,訓練示例)中的一部分。訓練集可包括上千、上百萬、或任何數量的被分割的圖像。在一個實施例中,訓練集的一個或多個訓練圖像可用特定對象或道具的3-D模型來改型。3-D模型可包括將特定目標表示為三維形狀的一個或多個數據結構。在另一實施例中,訓練集的一個或多個訓練圖像可使用特定對象或道具的3-D模型來呈現。在圖8中,三個訓練圖像942、944和946已經用各道具的3_D模型來改型。被分割的圖像942已經用網球拍來改型。被分割的圖像944已經用劍來改型。在該情況下,由于對象正穿入用戶的身體,所以經改型的被分割的圖像可從訓練集中被丟棄。被分割的圖像946已經用棒球棒來改型。與創建涉及人類姿態和道具的新的捕捉移動的訓練集相比, 用道具來對現有人類姿態訓練集進行改型、和/或基于現有人類姿態訓練集來自動生成包括道具的新訓練集是較不昂貴的。在某些實施例中,人類主體不觸碰或持有訓練圖像中的對象或道具。例如,在兩個游戲玩家之間傳遞的球將在半空中,且不與任一玩家直接接觸。由于在可同時檢測的身體部位和對象的數量之間存在折中,因此在某些實施例中,身體部位目標的數量可能是有限的。例如,身體部位目標可僅包括頭、頸、左右肩、左右上軀干、和上臂和下臂以及手,而不是搜索32個不同的身體部位。在某些實施例中,一個或多個道具目標可包括多個部位。例如,網球拍可由拍柄和拍頭組成。一旦檢測和跟蹤系統(諸如圖2的檢測和跟蹤系統10)已經用包括被分割的身體部位和道具的訓練集訓練過,身體部位目標和道具目標兩者的分類的分類圖就可被生成。 在圖9A中,戴手套的人類的原始深度圖像用于生成包括預測的身體部位和道具兩者的被分割的圖像。如圖9A的被分割的圖像中所示,用戶右手上的手套可被分類為一目標以及多個身體部位目標(例如,左肩和右肩)。在圖9B中,手持棒球棒的用戶的原始深度圖像可用于生成被分割的圖像,其中該棒球棒被分類為目標。在一個實施例中,多個道具可連同多個身體部位一起被分類。在圖9C中,手持棒球棒和將足球擲向空中的用戶的深度圖像912用于生成被分割的圖像916,其中棒球棒和足球被分類為目標。在一個實施例中,從捕捉設備接收到的顏色和/或樣式信息可用于幫助進一步區分在形狀和大小上相似的各目標。在一個示例中,籃球和足球可基于顏色信息來區分。在另一示例中,包括交替的黑色五邊形和白色六邊形的足球樣式可用于幫助將足球與具有相似的形狀和大小的其他對象相區分。在一個實施例中,檢測和/或跟蹤用戶挑選、選出特定道具、或將特定道具引入視野可以觸發應用以選擇特定應用模式。在一個示例中,挑選足球的游戲玩家將導致體育應用選擇與該足球相關聯的游戲模式。在另一示例中,特定游戲可允許游戲玩家基于該游戲玩家正持有一個或多個相關聯的道具中的哪些,來選擇并使用三個不同對象(例如,槍、棒球拍、和電鋸)在一個實施例中,游戲玩家可在游戲會話的中間使用介紹一個或多個道具。所公開的技術可用各種其它通用或專用計算系統環境或配置來操作。適合在該技術中使用的公知的計算系統、環境和/或配置的示例包括,但不限于,個人計算機、服務器計算機、手持或膝上型設備、多處理器系統、基于微處理器的系統、機頂盒、可編程消費者電子產品、網絡PC、小型機、大型機、包含上述系統或設備中的任一個的分布式計算機環境等。所公開的技術可在諸如程序模塊等由計算機執行的計算機可執行指令的一般上下文中描述。一般而言,如此處所述的軟件和程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構和其他類型的結構。硬件或硬件和軟件的組合可代替如此處所述的軟件模塊。所公開的技術也可以在任務由通過通信網絡鏈接的遠程處理設備執行的分布式計算環境中實現。在分布式計算環境中,程序模塊可以位于包括存儲器存儲設備在內的本地和遠程計算機存儲介質中。出于本文的目的,說明書中引述的“ 一實施例”、“ 一個實施例”、“某些實施例”或 “另一實施例”用于描述不同的實施例并且不必然指的是同一實施例。出于本文的目的,連接可以是直接連接或間接連接(例如,經由另一方)。出于本文的目的,術語對象的“集合”指的是一個或多個對象的“集合”。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述具體特征或動作。更確切而言,上述具體特征和動作是作為實現權利要求的示例形式公開的。
權利要求
1.一種用于檢測一個或多個目標的方法,包括從一個或多個深度傳感圖像傳感器獲得(602) —個或多個深度圖像(750、912),所述一個或多個深度圖像的第一深度圖像包括多個像素;生成¢07)與所述第一深度圖像相關聯的分類圖(752、916),所述生成步驟包括向所述多個像素中的一個或多個像素分配所述一個或多個像素與所述一個或多個目標的特定目標相關聯的概率,所述一個或多個目標包括表示第一身體部位的至少一部分的第一目標以及表示第一道具的至少一部分的第二目標;將一個或多個計算機模型中的至少一個計算機模型擬合(608)到所述分類圖的至少一部分上,所述一個或多個計算機模型包括至少所述第一目標的第一模型以及至少所述第二目標的第二模型;對所述第一目標執行骨架跟蹤¢20);對所述第二目標執行道具跟蹤¢22);以及報告(612)所述第一目標的第一位置和所述第二目標的第二位置。
2.如權利要求I所述的方法,其特征在于,進一步包括從一個或多個顏色傳感圖像傳感器獲得一個或多個顏色圖像,所述執行道具跟蹤的步驟包括使用來自所述一個或多個顏色圖像的顏色信息來幫助跟蹤所述第二目標。
3.如權利要求I所述的方法,其特征在于所述生成步驟是使用機器學習技術來執行的,所述機器學習技術使用被分割的圖像的訓練集,所述被分割的圖像的訓練集包括一個或多個改型的圖像。
4.如權利要求I所述的方法,其特征在于所述執行骨架跟蹤的步驟包括接收關于所述第二目標的位置信息,所述位置信息在確定所述第一目標的第一位置時被考慮。
5.如權利要求I所述的方法,其特征在于所述執行道具跟蹤的步驟包括接收關于所述第一目標的位置信息,所述位置信息在確定所述第二目標的第二位置時被考慮。
6.如權利要求I所述的方法,其特征在于,進一步包括基于所述報告步驟來切換游戲模式。
7.如權利要求I所述的方法,其特征在于,進一步包括接收來自所述第一道具的定向信息,所述執行道具跟蹤的步驟使用所述定向信息來幫助跟蹤所述第一道具。
8.如權利要求I所述的方法,其特征在于所述第二模型包括一個或多個負空間。
9.一種用于檢測一個或多個目標的電子設備,包括深度傳感相機(20),所述深度傳感相機捕捉第一深度圖像;以及一個或多個處理器(42、194),所述一個或多個處理器與所述深度傳感相機進行通信, 所述一個或多個處理器生成與一個或多個身體部位和一個或多個道具相關聯的一個或多個分類圖,所述一個或多個處理器使用骨架跟蹤來跟蹤所述一個或多個身體部位,所述一個或多個處理器使用道具跟蹤來跟蹤所述一個或多個道具,所述一個或多個處理器報告與所述一個或多個身體部位和一個或多個道具有關的度量。
10.包含處理器可讀代碼的一個或多個存儲設備,所述處理器可讀代碼用于對一個或多個處理器進行編程以執行一種方法,所述方法包括以下步驟從一個或多個深度傳感圖像傳感器獲得(602) —個或多個深度圖像,所述一個或多個深度圖像的第一深度圖像包括多個像素;生成(607)與所述第一深度圖像相關聯的分類圖,所述生成步驟包括向所述多個像素中的一個或多個像素分配所述一個或多個像素與一個或多個目標的特定目標相關聯的概率,所述一個或多個目標包括表示第一身體部位的至少一部分的第一目標以及表示第一道具的至少一部分的第二目標;對所述第一目標執行骨架跟蹤(620),所述執行骨架跟蹤的步驟包括接收關于所述第二目標的位置信息,所述位置信息在確定所述第一目標的第一位置時被考慮;對所述第二目標執行道具跟蹤¢22),所述執行道具跟蹤的步驟包括接收關于所述第一目標的位置信息,所述位置信息在確定所述第二目標的第二位置時被考慮;報告(612)所述第一目標的第一位置和所述第二目標的第二位置。
全文摘要
本發明公開了對身體和道具的檢測。描述了一種用于檢測和跟蹤包括身體部位和道具的目標的系統和方法。在一方面,所公開的技術獲得一個或多個深度圖像,生成與一個或多個身體部位和一個或多個道具相關聯的一個或多個分類圖,使用骨架跟蹤系統來跟蹤一個或多個身體部位,使用道具跟蹤系統來跟蹤一個或多個道具,以及報告與一個或多個身體部位和一個或多個道具有關的度量。在某些實施例中,反饋可在骨架跟蹤系統和道具跟蹤系統之間發生。
文檔編號G06F3/01GK102591456SQ20111042784
公開日2012年7月18日 申請日期2011年12月19日 優先權日2010年12月20日
發明者A·克里米尼斯, D·莫利紐克斯, J·溫, J·肖頓, M·科克, O·希爾戈斯, S·伊扎迪 申請人:微軟公司