用于多傳感器輸入的傳感器融合接口的制作方法
【專利摘要】本發明涉及允許在物理環境中的一個或多個實體和計算機化的設備組件之間進行交互的傳感器融合接口。多個傳感器模塊生成與環境中的一個或多個實體相關聯的多傳感器輸入數據,并根據統一且公共的模式將這樣的數據存儲在共享庫中。多傳感器輸入數據被細化,直到達到特定的準確度水平。使用傳感器融合接口,從共享庫中提取實體狀態數據并將其展示給計算機化的設備組件。
【專利說明】用于多傳感器輸入的傳感器融合接口
[0001]背景
[0002]各種物理環境和基礎設施使用傳感器來收集并合成數據。例如,家庭或工廠可使用攝像機系統來確保貴重和重要文檔和/或設備的安全。家庭的自動調溫裝置使用傳感器網絡來控制平均溫度。常見的消費設備采用傳感器來收集數據,例如用于拍攝照片的移動電話相機。這些傳感器中的一些,諸如加速計、陀螺儀、微電機系統(MEMS)等等,對于現實世界進行測量。計算機系統和軟件組件將傳感器集成到每日生活以提供關于現實世界的豐富信息。
[0003]對于相當數量的計算機化的設備組件而言,常常希望利用多個傳感器來改善感知的質量。在很多情況中,傳感器測量必需有效且準確。通過跨空間和時間處理對物理環境的觀察,傳感器測量可被調整成特定屬性的更準確的估計。因此,計算機系統和軟件組件執行各種傳感器輸入處理操作,直到獲得滿意的置信度水平。這確保了正確執行以及增強了的用戶體驗。
【發明內容】
[0004]提供本概述以便以簡化形式介紹將在以下的【具體實施方式】中進一步描述的一些代表性概念。本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在以限制所要求保護的主題的范圍的任何方式來使用。
[0005]簡要地,在此描述的主題的各個方面涉及用于多傳感器輸入的傳感器融合接口。在一個方面,各種傳感器模塊和(輸入)設備提供與物理環境相關聯的輸入數據。物理環境的監視組件聚合來自不同源的輸入數據并執行交叉傳感器合成,以調諧輸入數據并解釋更有意義的信息。在一個方面,監視組件的交互機制通過傳感器融合接口向計算機化的設備組件(例如,硬件和/或軟件組件,諸如編程邏輯設備、微代碼和/或包括應用的程序、操作系統組件、固件等等)提供對該信息的訪問。
[0006]在一個方面,傳感器融合接口使得能夠在實體(例如,人類用戶)和計算機化的設備組件之間交互。傳感器融合接口訪問耦合到多個傳感器模塊的共享庫并存儲與實體相關聯的多傳感器輸入數據。在一個方面,共享庫使用公共模式來組織多傳感器輸入數據,以使得其它傳感器模塊能夠細化這樣的數據并在共享庫中重新發布經細化的數據用于(有可能)另一個傳感器模塊來更進一步細化。在某一時刻,多傳感器輸入達到特定置信度水平和關于實體相對于物理環境的狀態信息。傳感器融合接口以及交互機制,為計算機化的設備組件,從共享庫中提取實體狀態數據,并向計算機化的設備組件提供對實體狀態數據的訪問。
[0007]在另一方面,物理環境包括可能相互交互或可能不相互交互的多個實體。在監視物理環境時,交互機制可通過傳感器融合接口接收對實體狀態數據的請求。在一個方面,一些這樣的請求包括指示在融合傳感器輸入數據時要選擇哪些輸入模態的配置數據。交互機制配置多個傳感器模塊來生產計算機化的設備組件希望的類型的多傳感器輸入數據。一旦多傳感器輸入數據被生成,交互機制提取實體狀態數據并將實例發送給計算機化的設備組件。該實例可以是(共享)存儲單元中的實體狀態數據的副本或引用。
[0008]結合附圖閱讀以下詳細描述,本發明的其他優點會變得顯而易見。
【專利附圖】
【附圖說明】
[0009]作為示例而非限制,在附圖中示出了本發明,附圖中相同的附圖標記指示相同或相似的元素,附圖中:
[0010]圖1是示出根據一個實現的傳感器融合接口的示例系統的框圖。
[0011]圖2表示了根據一個實現的、傳感器融合接口的示例體系結構,該傳感器融合接口使得能夠在實體和計算機化的設備組件之間交互。
[0012]圖3是示出根據一個實現的、用于將傳感器融合接口展示給計算機化的設備組件的示例步驟的流程圖。
[0013]圖4是示出根據一個實現的、用于從多傳感器輸入中生成計算機化的設備組件控制數據的示例步驟的流程圖。
[0014]圖5是示出根據一個實現的、用于管理實體交互的示例步驟的流程圖。
[0015]圖6是表示其中可實現本文所述的各種實施例的示例非限制性聯網環境的框圖。
[0016]圖7是表示其中可實現本文所述的各種實施例的一個或多個方面的示例非限制性計算系統或操作環境的框圖。
【具體實施方式】
[0017]在此描述的技術的各個方面一般涉及使得能夠與計算機化的(用戶)設備組件交互的傳感器融合接口。在一個實現中,對于物理環境中的每個實體(例如,人類),交互機制定義包括特定時間點的位置和/或朝向的實體簡檔。該實體簡檔也可包括語音和/或姿勢命令以及指示實體離開傳感器邊界時的情況的事件掛鉤。在一個實現中,實體簡檔可在被展示給計算機化的設備組件時指示一個或多個命令/控制輸入。在一個實現中,交互機制,響應于實體活動,通過傳感器融合接口,指令通用知識數據組件更新實體簡檔。在一個實現中,通用知識數據組件根據統一模式集合來自多個傳感器模塊的多傳感器輸入,并基于多個傳感器數據標識實體活動。
[0018]應當理解,此處的任何示例都是非限制性的。如此,本發明不限于此處所描述的任何特定實施例、方面、概念、結構、功能或示例。相反,此處所描述的任何一個實施例、方面、概念、結構、功能或示例都是非限制性的,可以以一般而言在計算和進行數據管理時提供好處和優點的各種方式來使用本發明。
[0019]圖1是示出根據一個實現的傳感器融合接口的示例系統的框圖。示例系統的組件包括多個計算機化的設備102^(示為設備102i…設備102N,且在以下稱為設備102)以及監視組件104。
[0020] 設備102可向監視組件104提供傳感器輸入信號,監視組件104進而存儲適當的原始數據用于進一步處理。在一個實現中,設備102可包括提供與實體和/或物理環境相關聯的輸入數據的任何傳感設備,諸如電子數字化儀、移動電話、麥克風、多媒體捕捉設備(例如,相機)、成像設備、深度相機、鍵盤和定點設備(通常指鼠標、跟蹤球或觸摸板)。設備102的其它實施例可包括操縱桿、游戲手柄以及其它無線或有線控制器。設備102的每一個可物理附連到監視組件104或位于遠程。
[0021]設備102的示例還可包括計算機視覺設備、麥克風、加速度計、陀螺儀、磁力計、指南針、時鐘、全球定位系統(GPS)設備、溫度計、濕度傳感器、光傳感器、紅外傳感器、附近設備信號強度、接入點、或其它發射器、深度傳感器等。這些示例設備102可感知環境和其它數據,諸如當前房間和/或設備溫度、用戶是否在移動以及以什么樣速度移動、用戶獨處還是與其他人一起、環境光量、計算機相關或輸出設備相關數據(例如,設備電池壽命、可用電能、運行的程序和服務)等。
[0022]在一個實現中,監視組件104可被配置來為由設備102生成的輸入數據的提供集成點,并可包括交互機制106,用于將傳感器融合接口 108展示給處理與一個或多個實體相關聯的多模(傳感器)輸入數據的一個或多個計算機化的設備組件。監視組件104還可包括共享庫110、實體狀態數據112、配置數據114、控制數據116和傳感器模塊118。如在此描述的,共享庫110可對應于多傳感器輸入數據(例如,常見格式或類型的系統中的音頻數據、視頻數據、圖像數據等等)的模式化版本。實體狀態數據112可指示每個實體的姿態(例如基于物理環境上的位置和朝向的笛卡爾坐標作為參考幀)。配置數據114和控制數據116可表示每個實體和計算機化的設備組件120 (例如,一類硬件或軟件組件,諸如程序)之間的交互。
[0023]共享庫110,如在此所描述的,包括諸如測量值的來自設備102和/或傳感器模塊118的輸入數據。這些測量經歷交叉合成,籍此各個不同的設備102的和/或傳感器模塊116訪問輸入數據,并執行附加處理,諸如語音/面部/姿勢識別,其被發布在共享庫110中供另一個設備和/或傳感器模塊來添加有意義和有用的信息。在一段時間之后,監視機制104將各輸入數據關聯并從多傳感器輸入中確定實體狀態,其可被定義為姿態、所說的詞語、姿勢等等的任何組合并存儲在實體狀態數據112中。交互機制106提取實體狀態數據110并向計算機化的設備組件120提供副本。
[0024]在一個實現中,一個或多個實體可包括游戲/模擬器程序中的一個或多個玩家、希望增強現實內容和/或服務的移動電話用戶、音樂播放列表系統的用戶等等。計算機化的設備組件性能和用戶/玩家體驗可成比例地與這些計算機化的設備組件處理多傳感器輸入數據并確定與實體活動相關聯的含義/企圖的能力相關聯,實體活動諸如實體移動(例如,諸如姿勢命令的象征活動)、在兩個或多個實體之間交互等等。
[0025]在一個實現中,配置數據114可定義轉換成對計算機化的設備組件120的控制輸入/命令的實體活動的各種形式,這些控制輸入/命令可被存儲在控制數據114中并被發送給計算機化的設備組件120。經過一段時間之后,交互機制106通過跟蹤實體狀態的改變來標識這些實體活動的一個。除了基于語音/姿勢的控制,或者與基于語音/姿勢的控制相結合,實體姿態的改變可顯式或隱式地指示計算機化的設備組件120的行為的預期的變更。例如,移動電話用戶可將設備相機向上指向天空,并清楚地指令移動電話組件來“用星座名稱來增強我的當前的夜空屏幕視圖”,這導致監視組件104將音頻數據與語音識別結果和圖像數據融合。類似地,受實體操縱的設備位置或朝向的改變也可指示設備組件行為中的希望的改變。
[0026]作為另一個示例,交互機制106可將特定的實體移動(例如,走幾步、在空中跳躍等等)以及朝向(例如看或面對/身體方向)解釋為用于移動和定向虛擬角色(例如實體的化身)的語義控制輸入。定點設備中的深度相機和陀螺儀可提供關于實體移動和身體朝向的測量。此外,頭盔設備上的另一個陀螺儀可提供關于臉部朝向的測量。如果實體跳躍、閃避,或以其他方式上下移動,加速計(例如微機電加速計或重力計)可測量實體相對于重力(即,地球引力)的加速度、方向、位移和/或持續時間。這些測量值可被組合成多傳感器輸入數據并關聯以產生不同時間點的實體狀態數據112。
[0027]設備102和傳感器模塊118的組合可將來自多模態的各組傳感器輸入(數據)提供給監視組件104。設備102還可以向監視組件104提供環境數據和/或其它傳感到的數據。具體而言,總的來說,設備102具有收集關于物理環境和被監視組件104跟蹤和/或分析的一個或多個實體的詳細信息的能力。配置數據114可指示設備102和/或傳感器模塊118的特定一些來用于生成多傳感器輸入數據。默認地,交互機制106從全部設備102和/或傳感器模塊118聚合傳感器輸入。如果設備102和/或傳感器模塊118的任何一個不可用,則配置數據114可指示應當返回錯誤。
[0028]在一個實現中,傳感器模塊118可包括軟件組件或一個或多個設備102的代理。例如,包括加速計的移動電話可在監視組件104上使用代理來發送運動數據。作為另一個示例,相機可使用軟件模塊來將原始圖像數據轉換成經格式化的版本和/或從圖像數據提取特征數據。可替換地,相機可將原始數據存儲在監視組件104上。
[0029]在另一個實現中,傳感器模塊118中的一些包括基于軟件的傳感器,其提供與物理環境和/或實體相關聯的高等級或精細粒度的信息。除了原始傳感器輸入以外,這些傳感器模塊118處理合適的輸入數據以提供有意義的信息。例如,傳感器模塊118可包括處理由設備102提供的傳感器輸入并分別標識特定實體的面部特征、所說的詞語和/或身體姿態/移動的面部識別模塊、語音識別模塊、姿勢識別模塊等等。
[0030]圖2表示了根據一個實現的、傳感器融合接口的示例體系結構,該傳感器融合接口使得能夠在實體和計算機化的設備組件之間交互。如在此描述并在圖1中示出的,設備102和傳感器模塊118的組合可包括一組一個或多個游戲控制臺相機(例如,深度傳感相機)>web相機、麥克風、數字化儀、筆/定點設備、加速計和“其它”設備,其可表示對應于可能的輸入模態的數據(例如,知識數據)的源202^202^
[0031]盡管源202^20?可示出各種設備和/或傳感器模塊的特定示例,這些示例不是設備和/或傳感器模塊的潛在配置的窮盡,且其它源202m可包括任何數量的包括運動控制器組件的設備和/或傳感器模塊,諸如磁力計、紅外結構化光等等。其它可被利用的輸入數據包括來自筆設備的電子墨水、注視(方向、流逝的時間)、鄰近度感測、語音、空中姿勢、身體位置/身體語言、面部表情、作為增強的鏡像(例如看著所指方向、比劃)、觸摸、多觸鼠標、腦波計算機輸入、鍵盤、空中鼠標(例如,肥皂)、樂器(例如MIDI)、操縱物理接口(例如手套或觸覺接口)等。心情感應,諸如將面部表情與面部顏色改變、溫度、握力壓力和/或心情的其它可能的指示組合,是另一個可行的輸入模態。
[0032]在一個實現中,運動傳感輸入設備202i可使得一個或多個實體(例如與游戲控制臺交互的一個或多個玩家)使用姿勢、身體移動和/或話音命令來與接口(例如,游戲控制臺接口)自然交互。運動傳感輸入設備202i可包括各種媒體或多媒體捕捉機制,諸如彩色相機(紅綠藍(RGB)相機)來捕捉可視數據、深度相機來檢測實體在場以及離設備的前面的距離,麥克風陣列來捕捉物理環境內的音頻數據等等。[0033]在一個實現中,運動傳感輸入設備202i提供各種環境和/或實體數據,諸如對應于表示一個或多個實體(例如人、動物、機器人等等)的圖像數據的骨架跟蹤信息。骨架跟蹤信息可描述視野內的實體移動。可能有其中運動傳感輸入設備202i可能不能捕捉和/或分析實體移動的部分視野(例如盲區或中性區域)。在一個實現中,該部分內的實體移動或姿勢可校準由運動傳感輸入設備202i采用的捕捉機制。
[0034]在一個實現中,運動傳感輸入設備202i也可提供由XYZ深度相機生成的環境和/或實體數據,深度相機檢查彩色相機流數據和深度數據來計算對象或實體和相機之間的距離。在另一個實現中,運動傳感輸入設備2021可處理由四元麥克風陣列提供的音頻數據。例如,運動傳感輸入設備202i可應用聲學噪聲和回聲抵銷技術和/或束形成來標識當前聲音源。
[0035]在一個實現中,語音識別模塊20?可根據所說語言的語法將音頻數據譯解為詞/句。語音識別模塊20?可處理來自任何源(諸如運動傳感輸入設備202i的麥克風陣列或一個或多個“其它”源202m,諸如計算機麥克風、移動電話錄音機等等)的音頻數據。語音識別模塊20?可用包括所說的語言的語法中所使用的詞的字典啟動。語音識別模塊20?可將任何技術應用于音頻以將語音標識/分類為詞。
[0036]在一個實現中,消費設備2023可包括任何計算設備(例如膝上電腦、臺式機、平板電腦等)、移動設備(例如任何手持設備,諸如移動電話、智能電話等)、游戲控制臺控制器、運動指示器遙控器等。消費設備2023可包括一個或多個傳感器模塊和/或一個或多個(輸入)設備。例如 ,消費設備2023可包括內建陀螺儀以及加速計和接口(例如,外部總線和端口),用于與磁力計(指南針)通信。消費設備2023還可包括(具有或不具有麥克風的)相機,其提供與一個或多個實體相關聯的圖像數據。這些低功率高準確度MEMS設備提供關于實體姿態和/或設備姿態(例如,實體或設備的位置和/或朝向)的非常精細粒度的信肩、O
[0037]在一個實現中,面部識別模塊2024可檢測并標識圖像數據(例如,一個圖像或一組圖像)和/或視頻數據(例如,視頻幀)中的(人)臉。面部識別模塊2024的實施例可包括硬件組件和/或軟件組件。面部識別模塊2024可在部署之前使用具有先前驗證了的實體臉的正確標記的特征的一組圖像來進行訓練。在被訓練之后,面部識別模塊2024可處理由運動傳感輸入設備2021、消費設備2023和/或其它源202m (例如web相機、移動電話相機、屬于另一個實體的三維或二維數碼相機等)之一所捕捉的圖像,并確定來自該組圖像的哪個實體可被呈現在環境中。訓練組的大小可依賴于環境類型。例如,相對小的圖像組對于家庭或小辦公室足夠,然而,更大的圖像組可被用于全球組織。作為驗證環境內實體身份的替換機制,附連到實體上的個人射頻(RF)標識標簽可周期性地發射位置數據。
[0038]在一個實現中,姿勢識別模塊2025可使用各種技術(例如計算機視覺和圖像處理技術),解釋源自任何身體運動和/或狀態的實體(例如,人)的姿勢。姿勢識別庫可被用來從臉和手的姿勢來標識姿勢和人身體語言,諸如情感、姿勢/姿態、步態和/或空間關系。姿勢識別模塊2025可使用已記錄的以及先前從合適的設備(諸如運動傳感輸入設備202ρ消費設備2023、陀螺儀、運動處理單元2026等)驗證過的姿勢來進行訓練,姿勢識別模塊2025可對姿勢建模以便識別相同姿勢的未來調用。
[0039]在一個實現中,運動處理單元2026可包括嵌入在另一個設備或結構內的集成電路(例如芯片)。例如,運動處理單元2025的實施例可提供包括平板計算機、移動電話、(遠程)運動控制器、運動指示器遙控器等等。在一個實現中,運動處理單元2026可包括嵌入式的三(3)-軸陀螺儀、3-軸加速計以及具有接口到第三方數字化傳感器(諸如磁力計)的輔助端口的硬件加速器引擎。因此,運動處理單元可促進集成的九(9)-軸傳感器融合以及準確的六(6)自由度運動捕捉。示例運動處理單元可以是INVENSESNE? MPU-60X0運動處理單元。
[0040]運動處理單元2026可將加速度和轉動的運動加上前進信息組合成單數據流給通用知識數據組件204。數據流可根據陀螺儀、加速器和/或磁力計指示實體/設備朝向和/或姿態的改變。數據流可能會在數據流中展示不想要的擾亂,諸如漂移一段時間,其可通過將加速計數據與陀螺儀數據融合、將卡爾曼(Kalman)濾波器用于數據流和/或周期性地用磁指南針校準陀螺儀來部分糾正。
[0041]通用知識數據組件204 (例如,黑板,在本領域中通常指公知軟件設計模式)可定義被配置在知識的全部源上的全局數據結構、模式或類型系統。使用全局數據結構、模式或類型系統,通用知識數據組件204維持原始輸入數據、問題、部分解決方案、替換、建議、所貢獻的信息、結局、解決方案、控制信息和通信介質/緩沖器的共享庫。通用知識數據組件204實現定義所有設備的共同屬性(例如,方法、屬性、數據成員等等)的傳感器接口,和提供多傳感器輸入數據206的傳感器模塊(以下統稱為傳感器)。例如,傳感器接口可創建對象實例,對象實例具有傳感器名稱、初始化/去初始化方法、校準方法和指示傳感器是否在跟蹤實體的狀態標志。傳感器接口可被擴展以與任何傳感器通信。
[0042]在一個實現中,通用知識數據組件204還可以實現顯式的控制機制,允許源202r202m機會主義地響應通用知識數據組件204的改變。被通用知識數據組件204解決的一種類型的問題是用細節定義實體活動背后的含義和企圖,并且將含義和其它翻譯成計算機化的設備組件(例如,應用)的行為。
[0043]在一個實現中,通用知識數據組件204包括集中可存取數據存儲,設備102和/或傳感器模塊118可從中讀取/向其寫入,并且傳感器融合接口 208可向計算機化的計算設備210提供對其的訪問。傳感器融合接口 204還可以將數據存儲的內容發送給接收方。通用知識數據組件204存儲當前和/或歷史數據,諸如相機圖像、話音/姿勢命令、相機圖像中的實體身份、實體(例如玩家)列表等等。通用知識數據組件204可被動態修改以適應來自任何傳感器的在特定情形中初始化的輸入數據。
[0044]如果通用知識數據組件204的內容改變(例如,新相機圖像幀到來),通用知識數據組件204生成事件并將該事件展示給計算機化的設備組件210。想要消費該內容的其它模塊可訂閱此事件并從通用知識數據組件204實例讀取新鮮數據。以此方式傳感器可按照干凈且高效的方式交叉通信,無需有彼此存在的任何密切知識。
[0045]通用知識數據組件204還可以跟蹤、監視和/或分析實體狀態。作為示例,當一個傳感器或一組傳感器檢測到實體/玩家在場(例如,運動傳感輸入設備202i識別到骨架和/或面部識別模塊檢測到臉),該傳感器或該組傳感器調用通用知識數據組件204AddPlayer()(添加玩家)方法,其將實體作為新玩家添加到當前跟蹤的實體的列表,配置通用知識數據組件204來聚合并融合與所添加的實體相關聯的輸入數據,并將全局事件發射到計算機化的設備組件210,其它傳感器可訂閱它。[0046]在一個實現中,與所添加的實體相關聯的數據,諸如身份214、位置216、朝向218、語音/姿勢等等,可被追加到一組簡檔212中的對應的一個。位置216可以指三維空間中整個身體位置和/或身體部位的位置(例如,手位置)。類似地,朝向218可以指身體朝向和/或特定身體部位的朝向,諸如臉的朝向。此外,位置216和朝向218可以指正被實體操縱的設備,諸如移動電話或定點設備。在一個實現中,簡檔212的一個示例封裝捕捉任何特定實體的多傳感器輸入數據的以下數據:骨架位置、手位置、當前語音命令、頭位置和身份。一旦這些字段基本上完成,傳感器融合接口 208可將簡檔發送給計算機化的設備組件210。
[0047]傳感器融合接口 208通過向計算機化的設備組件210和/或程序開發者提供實體相關信息來促進多傳感器和多人程序開發。在一個實現中,傳感器融合接口 208對于其中實體離開與傳感器相關聯的檢測邊界或范圍的情況展示例如當前實體狀態和一個或多個事件(掛鉤)220。傳感器融合接口 208還向計算機化的設備組件210展示實體發出的當前命令/控制輸入。在另一個實現中,傳感器融合接口 208還向計算機化的設備組件210提供使用默認選項和/或所選傳感器自定義選項的傳感器初始化。
[0048]在另一個實現中,傳感器融合接口 208還提供一個或多個支持工具222用于與實體交互。一個示例支持工具222包括軟件代碼,在被執行時,將原始方向輸入數據或來自傳感器(諸如運動傳感輸入設備202i或消費設備2023)的其它運動數據轉換成語義控制輸入,這可通過在此一般描述的校準和盲區分配來實現。
[0049]另一個示例支持工具222包括軟件代碼,在被執行時,允許開發者創建抽象環境模型(例如示出房子里面的房間和房間之間的連接的模型)。特定傳感器可被添加到環境模型的特定區域(例如房間)。例如,三個房間的房子中的每個房間可安裝允許在環境周圍進行實體跟蹤的運動傳感輸入設備202i。隨著實體移入不同區域,計算機化的設備組件210可將實體跟蹤任務從一個傳感器轉換到更靠近實體的另一個傳感器。
[0050]作為示例,計算機化的設備組件210可以是身臨其境的第一人稱射擊游戲體驗,它采用運動傳感輸入設備202i和消費設備2023 (例如,嵌入在定點設備內的陀螺儀)作為輸入數據的源。運動傳感輸入設備202i提供與身體關節移動和玩家位置相關聯的粗略/低分辨率/高級別信息。此外,消費設備2023提供與設備朝向相關聯的精細粒度的、高分辨率信息。如果消費設備2023是手持的,消費設備2023可確定實體是正在“看”還是在瞄準。
[0051]繼續該示例,傳感器融合接口 208使用來自運動傳感輸入設備202i的位置數據和合適的一個支持工具222來確定虛擬角色如何移動。從中間的盲區,向前移動一步導致虛擬角色向前移動,而回到中性的盲區導致虛擬角色停下。來自消費設備2023的數據可控制實體“看”或虛擬角色面對的方向。通過將消費設備2023握在他或她手中,作為指示器或棒,實體可對虛擬角色的看和走的方向進行引導。通過組合輸入的這兩個模式,實體能夠通過I)向前、后、左或右移動,并將消費設備2023指向特定方向來控制虛擬角色。
[0052]作為另一個示例,計算機化的設備組件210可以是多房間、多傳感器音樂播放列表系統(例如硬件或軟件組件,諸如應用或操作系統組件),其圍繞房子、辦公室或其它室內環境跟蹤實體移動。傳感器融合接口通過實體狀態數據或簡檔212向音樂播放列表系統提供所跟蹤的實體移動數據,使得與播放列表相關聯的數字音樂(聲音)跟隨實體進入不同房間。運動傳感輸入設備202i的相機可安裝在每個參與的房間,并在實體走進房間時捕捉他/她的臉。相機可被連接到中央個人計算機,該個人計算機正在運行音樂播放列表系統并通過揚聲器系統播放音樂。根據一個實現,實體可向音樂播放列表系統提供由家庭成員創建的播放列表。在用每個成員的十一十五張圖像訓練面部識別模塊2024后,音樂播放列表系統可在不同成員之間進行區分并播放合適的列表。
[0053]如果實體走到相機前面,傳感器融合接口 208引發有人進入房間的事件。一旦接收該事件,面部識別模塊2024就從相 機捕捉圖像并處理該圖像以識別臉。一旦將圖像中的臉與玩家之一進行了匹配,與該玩家相關聯的播放列表就被檢索并播放。當相機在房間中跟蹤實體的位置時,音樂播放列表系統可基于實體距視覺顯示器的距離來調節視覺顯示器的細節水平。盡管不是必要的,如果玩家離顯示器近,音樂播放列表系統呈現播放列表中的歌曲的一首或多首的專輯圖片的表示。當玩家站在遠處時,音樂播放列表系統僅示出當前播放的歌曲的圖片的放大版本。另一個交互模式是話音。根據前綴是關鍵詞“融合”的命令,實體可“暫停”、“恢復”、“再次開始”或“跳過”歌曲。前綴關鍵詞允許語音識別模塊20?排除語音識別模塊20?可能在分析環境噪音、在房間中人們在他們本身之間談話、或實際上來自正被播放的歌曲的歌詞時遇到的任何歧義。
[0054]當實體離開房間時,音樂播放列表系統保存播放列表狀態(例如,當前歌曲,歌曲內的位置等)。如果同一實體進入另一個房間或再次進入同一個房間并且被肯定地標識,音樂播放列表系統從最后的位置恢復播放音樂。考慮其中實體正在臥室聽歌曲的情形。當他或她離開臥室進入廚房、歌曲在臥室中減弱并開始在廚房播放,提供了無縫的收聽體驗。如果兩個或多個實體在同一房間中,計算機化的設備組件210標識同時處于兩個玩家的播放列表中的歌曲并交替播放或以其它方式在那些歌曲中切換。作為替換,計算機化的設備組件可播放“合作創建的”播放列表或使用基于個人興趣的音樂推薦服務。
[0055]圖3是示出根據一個實現的、用于將傳感器融合接口展示給計算機化的設備組件的示例步驟流程圖。示例步驟可在步驟302開始,并前進到步驟304,在此傳感器融合接口 208處理來自計算機化的設備組件的請求。在一個實現中,傳感器融合接口 208向計算機化的設備組件提供對由監視機制104(諸如組合游戲控制臺和運動傳感輸入設備(例如Microsoft? Kinect?和Xbox?)的監視機制)跟蹤并集成的多傳感器輸入數據的訪問。
[0056]步驟306涉及訪問包括來自傳感器模塊和設備的多傳感器輸入的共享庫。在一個實現中,共享庫可被實現軟件設計模式(被稱為黑板設計模式)的系統創建。可選步驟308涉及移除多傳感器輸入中的不想要的擾亂以從輸入數據中消除噪音。步驟310涉及提取一個或多個實體的實體狀態數據。步驟312涉及向計算機化的設備組件提供對實體狀態數據的訪問。在一個實現中,實體狀態數據可以是多模態輸入數據的部分,多模態輸入數據包括實體姿態、計算機化的設備組件的當前命令/控制輸入、以及一個或多個事件(例如,指示實體行進到傳感范圍之外的事件)。步驟314終止圖3中所描繪的示例步驟。
[0057]圖4是根據一個實現的、示出用于從多個傳感器輸入中生成控制數據的示例步驟的流程圖。示例步驟在402開始,并前進到404,在此交互機制處理定義實體活動的配置數據,實體活動轉換成計算機化的設備組件(諸如程序或其它軟件組件,例如游戲應用)的控制輸入。交互機制通過傳感器融合接口接收配置數據。實體活動可包括(多模態)象征活動,諸如表示特定命令的組合語音/姿勢數據。實體活動還可包括要被投影到顯示器并由虛擬角色(例如表示實體的化身)執行的實際移動。
[0058]步驟406涉及實體姿態和/或設備姿態的確定。設備可以是正由實體操縱或操作的手持設備。步驟408表示對實體姿態和/或設備姿態從先前時間點是否發生改變的判斷。如果實體姿態和/或設備姿態發生改變,步驟408前進到步驟410。如果實體姿態和/或設備姿態維持和先前時間點時的實體姿態和/或設備姿態相同,步驟408回到步驟406并重復姿態計算。步驟410涉及更新實體狀態數據和/或環境模型的當前表示。
[0059]步驟412涉及將實體姿態改變和/或設備姿態改變解釋為物理環境或虛擬環境的命令/控制輸入。如果姿態改變和/或設備姿態改變表示物理環境中的計算機化的設備的命令/控制輸入,則步驟412前進到步驟414,在此實體使用程序來操作計算機化的設備。如果姿態改變和/或設備姿態改變表示對虛擬環境(即顯示器上)的化身或其它對象的命令/控制輸入,則步驟412前進到416,在此實體使用程序來控制虛擬環境中的化身和/或對象。步驟418表示對是否有更多傳感器輸入要融合的判斷。如果有更多傳感器輸入要融合,則步驟418回到步驟406。如果沒有更多傳感器輸入要融合,則步驟418前進到步驟420。步驟420終止示例步驟。
[0060]圖5是根據一個實現的、用于管理實體交互的示例步驟的流程圖。示例步驟從502開始并前進到504,在此交互機制106配置傳感器模塊并基于來自計算機化的設備組件的配置數據來選擇一種或多種輸入模式。默認地,交互機制可采用所有可能的輸入模式。在一個實現中,配置數據可指示如果所選輸入模式之一不可用則應當返回錯誤。步驟506表示展示物理環境內多個實體的簡檔。步驟508涉及檢查實體交互。例如,如果計算機化的設備組件是第一人稱射擊游戲,則交互組件106檢查指示虛擬環境中哪個實體被射中/殺死的各個實體相關測量。步驟510涉及標識沖突。如果計算機化的設備組件是“圍繞房子播放音樂”的計算機化設備組件,則當具有播放列表的兩個實體占據房子中的同一房間時可能有沖突。步驟512涉及將沖突相關事件傳輸給計算機化設備組件以解決該沖突。步驟514終止圖5中所描繪的步驟。
[0061]示例性聯網以及分布式環境
[0062]本領域技術人員可以理解,此處描述的各實施例和方法可結合任何計算機或其它客戶機或服務器設備來實現,其可被部署為計算機網絡的部分或在分布式計算環境中,并且可以被連接到任何類型一個或多個數據存儲。在這一點上,此處描述的各實施例可在具有任何數量的存儲器或存儲單元的、并且任何數量的應用和進程跨任何數量的存儲單元發生的任何計算機系統或環境中實現。這包括但不限于具有部署在具有遠程或本地存儲的網絡環境或分布式計算環境中的服務器計算機和客戶機計算機的環境。
[0063]分布式計算通過計算設備和系統之間的通信交換提供了計算機資源和服務的共享。這些資源和服務包括信息的交換、對于諸如文件等對象的高速緩存存儲和盤存儲。這些資源和服務還包括多個處理單元之間的處理能力共享以便進行負載平衡、資源擴展、處理專門化,等等。分布式計算利用網絡連接,從而允許客戶機利用它們的集體力量來使整個企業受益。就此,各種設備可具有可如參考本發明的各實施例描述地參與資源管理機制的應用、對象或資源。
[0064]圖6提供了示例性的聯網或分布式計算環境的示意圖。該分布式計算環境包括計算對象610、612等以及計算對象或設備620、622、624、626、628等,這些計算對象或設備可包括如由示例應用630、632、634、636、638表示的程序、方法、數據存儲、可編程邏輯等。可以理解,計算對象610、612等以及計算對象或設備620、622、624、626、628等可包括不同的設備,諸如個人數字助理(PDA)、音頻/視頻設備、移動電話、MP3播放器、個人計算機、膝上型計算機等。
[0065]每一個計算對象610、612等以及計算對象或設備620、622、624、626、628等可通過通信網絡624直接或間接與一個或多個其他計算對象610、612等以及計算對象或設備620、622、626、628、640等進行通信。盡管在圖6中被示為單個元件,但通信網絡640可包括向圖6的系統提供服務的其他計算對象和計算設備和/或可表示未示出的多個互連網絡。每個計算對象610、612等或計算對象或設備620、622、624、626、628等還可以包含應用,諸如可以利用API或其他對象、軟件、固件和/或硬件的、適于根據本發明的各實現所提供的應用實現與其進行通信的應用630、632、634、636、638。
[0066]存在支持分布式計算環境的各種系統、組件和網絡配置。例如,計算系統可由有線或無線系統、本地網絡或廣泛分布的網絡連接在一起。當前,許多網絡被耦合至因特網,后者為廣泛分布的計算提供了基礎結構并包含許多不同的網絡,但任何網絡基礎結構都可用于便于與如各實施例中所描述的系統的示例性通信。
[0067]由此,可使用諸如客戶機/服務器、對等、或混合體系結構之類的網絡拓撲結構和網絡基礎結構的主機。“客戶機”是使用與它無關的另一類或組的服務的一個類或組中的成員。客戶機可以是進程,例如,大致上是請求另一程序或進程所提供的服務的一組指令或任務。客戶機進程利用所請求的服務,而不必“知道”有關其他程序或服務本身的任何工作細節。
[0068]在客戶機/服務器體系結構中,尤其在聯網系統中,客戶機通常是訪問另一計算機(例如,服務器)所提供的共享網絡資源的計算機。在圖6的圖示中,作為非限制性示例,計算對象或設備620、622、624、626、628等可被認為是客戶機而計算對象610、612等可被認為是服務器,其中計算對象610、612等擔當提供數據服務的服務器,諸如從客戶機計算對象或設備620、622、624、626、628等接收數據、存儲數據、處理數據、向客戶機計算對象或設備620、622、624、626、628等發送數據,但任何計算機都可取決于環境而被認為是客戶機、服務器、或兩者。
[0069]服務器通常是可通過諸如因特網或無線網絡基礎結構之類的遠程網絡或本地網絡訪問的遠程計算機系統。客戶機進程可在第一計算機系統中活動,而服務器進程可在第二計算機系統中活動,它們通過通信介質相互通信,由此提供分布式功能并允許多個客戶機利用服務器的信息收集能力。
[0070]在其中通信網絡640或總線例如是因特網的網絡環境中,計算對象610、612等可以是其他計算對象或設備620、622、624、626、628等通過諸如超文本傳輸協議(HTTP)等多種已知協議中的任一種與其通信的web服務器。擔當服務器的計算對象610、612等還可用作客戶機,例如計算對象或設備620、622、624、626、628等,這是分布式計算環境的特性。
[0071]示例計算設備
[0072]如上所述,有利地,本文所描述的技術可應用于任何設備。因此,應當理解,構想了結合各實施例使用的所有種類的手持式、便攜式和其它計算設備和計算對象。因此,以下在圖7中所述的通用遠程計算機只是計算設備的一個示例。
[0073]各實施例可部分地經由操作系統來實現,以供設備或對象的服務開發者使用和/或被包括在用于執行此處所述的各實施例的一個或多個功能方面的應用軟件內。軟件可以在由諸如客戶機工作站、服務器或其它設備等一個或多個計算機執行的諸如程序模塊等計算機可執行指令的通用上下文中描述。本領域的技術人員可以理解,計算機系統具有可用于傳遞數據的各種配置和協議,并且由此沒有特定配置或協議應當被認為是限制性的。
[0074]圖7由此示出了其中可實現本文所述的各實施例的一個或多個方面的合適的計算系統環境700的一個示例,盡管如上所述,計算系統環境700僅為合適的計算環境的一個示例,并非對使用范圍或功能提出任何限制。此外,也不應當將計算系統環境700解釋為對在示例性計算系統環境700中所示的組件中的任何一個或其組合有任何依賴。
[0075]參考圖7,用于實現一個或多個實施例的示例性遠程設備包括計算機710形式的通用計算設備。計算機710的組件可包括,但不限于,處理單元720、系統存儲器730、以及將包括系統存儲器的各種系統組件耦合到處理單元722的系統總線720。
[0076]計算機710通常包括各種計算機可讀介質,并且可以是可由計算機710訪問的任何可用介質。系統存儲器730可包括諸如只讀存儲器(ROM)和/或隨機存取存儲器(RAM)之類的易失性和/或非易失性存儲器形式的計算機存儲介質。作為示例而非限制,系統存儲器730還可包括操作系統、應用程序、其他程序模塊、以及程序數據。
[0077]用戶可通過輸入設備740向計算機710輸入命令和信息。監視器或其他類型的顯示設備也經由諸如輸出接口 750之類的接口連接到系統總線722。除監視器以外,計算機還可包括諸如揚聲器和打印機之類的其他外圍輸出設備,它們可通過輸出接口 750連接。
[0078]計算機710可使用到一個或多個其他遠程計算機(諸如遠程計算機770)的邏輯連接在聯網或分布式環境中操作。遠程計算機770可以是個人計算機、服務器、路由器、網絡PC、對等設備或其他常見網絡節點、或者任何其他遠程媒體消費或傳輸設備,并且可包括以上關于計算機710所述的任何或全部元件。圖7所示的邏輯連接包括諸如局域網(LAN)或廣域網(WAN)之類的網絡772,但也可包括其他網絡/總線。這些聯網環境在家庭、辦公室、企業范圍的計算機網絡、內聯網和因特網中是常見的。
[0079]如上所述,盡管結合各種計算設備和網絡架構描述了各示例性實施例,但基本概念可被應用于其中期望改進資源使用的效率的任何網絡系統和任何計算設備或系統。
[0080]而且,存在實現相同或相似功能的多種方法,例如適當的AP1、工具箱、驅動程序代碼、操作系統、控件、獨立或可下載軟件對象等,它們使得應用和服務能夠使用此處提供的技術。由此,此處的實施例從API (或其他軟件對象)的觀點以及從實現如此處描述的一個或多個實施例的軟件或硬件對象來構想。由此,此處所述的各實施例可具有完全采用硬件、部分采用硬件并且部分采用軟件、以及采用軟件的方面。
[0081]本文中所使用的詞語“示例性”意味著用作示例、實例、或說明。為避免疑惑,本文所公開的主題不限于這些示例。另外,在此所述的被描述為“示例性”的任意方面或設計并不一定要被解釋為相比其它方面或設計更優選或有利。此外,在使用術語“包括”、“具有”、“包含”和其他類似詞語的程度上,為避免疑惑,這些術語旨在當用于權利要求中時以類似于術語“包括”作為開放的過渡詞的方式是包含性的而不排除任何附加或其他元素。
[0082]如所述的,此處所述的各種技術可結合硬件或軟件或,在適當時,以兩者的組合來實現。如此處所使用的,術語“組件”、“模塊”、“系統”等同樣旨在指計算機相關實體,或者是硬件、硬件和軟件的組合、軟件或者是執行中的軟件。例如,組件可以是,但不限于是,在處理器上運行的進程、處理器、對象、可執行碼、執行的線程、程序和/或計算機。作為說明,在計算機上運行的應用和計算機都可以是組件。一個或多個組件可以駐留在進程和/或執行的線程中,并且組件可以位于一個計算機內和/或分布在兩個或更多計算機之間。
[0083]如前所述的系統已經參考若干組件之間的交互來描述。可以理解,這些系統和組件可包括組件或指定的子組件、某些指定的組件或子組件和/或附加的組件,并且根據上述內容的各種置換和組合。子組件還可作為通信地耦合到其他組件的組件來實現,而不是被包括在父組件內(層次性)。另外,應注意到一個或多個組件可被組合成提供聚集功能的單個組件中,或被分成若干單獨的子組件,且諸如管理層等任何一個或多個中間層可被設置成通信耦合到這樣的子組件以便提供集成功能。此處所述的任何組件也可與一個或多個此處未專門描述的但本領域技術人員一般已知的其他組件進行交互。
[0084]鑒于本文所述的示例系統,可根據參考各附圖的流程圖還可理解根據所述的主題來實現方法。盡管為了說明簡潔起見,作為一系列框示出和描述的方法,但是應當理解,各實施例不僅僅限于框的次序,因為一些框可以與此處所描繪和描述的框不同的次序發生和/或與其他框并發地發生。盡管經由流程圖示出了非順序或分支的流程,但可以理解,可實現達到相同或相似結果的各種其他分支、流程路徑和框的次序。此外,某些示出的框在實現下文所述的方法中是可選的。
[0085]結語
[0086]盡管本發明易于作出各種修改和替換構造,但其某些說明性實施例在附圖中示出并在上面被詳細地描述。然而應當了解,這不旨在將本發明限于所公開的具體形式,而是相反地,旨在覆蓋落入本發明的精神和范圍之內的所有修改、替換構造和等效方案。
[0087]除此處所述的各實施例以外,應當理解,可使用其他相似實施例,或者可對所述實施例作出修改和添加以便執行對應實施例的相同或等效功能而不背離這些實施例。此外,多個處理芯片或多個設備可共享此處所述的一個或多個功能的性能,并且相似地,存儲可跨多個設備實現。因此,本發明不應限于任何單個實施例,而是應當根據所附權利要求書的廣度、精神和范圍來解釋。
【權利要求】
1.一種在計算環境中的、至少部分地在至少一個處理器上執行的方法,包括: 處理經由允許在一個或多個實體和計算機化的設備組件之間進行交互的傳感器融合接口接收的請求,包括:訪問耦合到多個傳感器模塊的共享庫,其中所述共享庫包括與一個或多個實體相關聯的多傳感器輸入數據,從所述共享庫提取實體狀態數據,并向所述計算機化的設備組件提供對所述實體狀態數據的訪問。
2.如權利要求1所述的方法,其特征在于,向所述計算機化的設備組件提供對所述實體狀態數據的訪問還包括發送對應于實體姿態改變的事件。
3.如權利要求1所述的方法,其特征在于,向所述計算機化的設備組件提供對所述實體狀態數據的訪問還包括發送來自所述一個或多個實體的對所述計算機化的設備的一個或多個命令。
4.如權利要求1所述的方法,其特征在于,向所述計算機化的設備組件提供對所述實體狀態數據的訪問還包括基于對應于不同時間點的所述實體狀態數據生成控制數據。
5.如權利要求1所述的方法,其特征在于,提取所述實體狀態數據還包括確定正被所述一個或多個實體操縱的設備的位置和朝向。
6.如權利要求1所述的方法,其特征在于,提取所述實體狀態數據還包括在所述多傳感器輸入數據中移除不想要的擾亂。
7.如權利要求1所述的方法,其特征在于,訪問所述共享庫還包括配置所述多個傳感器模塊來細化所述多傳感器輸入數據。
8.如權利要求1所述的方法,其特征在于,提取所述實體狀態數據還包括定義轉換成對計算機化的設備組件的命令的象征活動。
9.如權利要求1所述的方法,其特征在于,還包括響應于實體移動更新所述實體狀態數據。
10.如權利要求1所述的方法,其特征在于,提取所述實體狀態數據還包括產生與所述一個或多個實體相關聯的環境模型。
11.如權利要求1所述的方法,其特征在于,提取所述實體狀態數據還包括提取與第一實體相關聯的所述實體狀態數據的第一部分,以及與第二實體相關聯的所述實體狀態數據的第二部分,并將所述第一部分與所述第二部分關聯以確定實體交互。
12.—種在計算環境中的系統,包括,配置用于向計算機化的設備組件提供傳感器融合接口的交互機制,其中,對于環境中的每個實體,所述傳感器融合接口被配置來生成包括實體狀態數據的簡檔、將所述簡檔展示給所述計算機化的設備組件、并指令通用知識數據組件響應于實體活動更新所述簡檔,其中所述通用知識數據組件被配置以根據一模式來集成來自多個傳感器模塊的多傳感器輸入數據,并基于所述多傳感器輸入數據標識所述實體活動。
13.如權利要求12所述的系統,其特征在于,所述交互機制還被配置來基于所述實體活動操作所述物理環境中的計算機化的設備。
14.如權利要求12所述的系統,其特征在于,所述交互機制還被配置來控制由所述計算機化的設備組件生成的虛擬環境上的虛擬角色。
15.如權利要求12所述的系統,其特征在于,所述交互機制還被配置以響應于所述計算機化的設備組件來初始化所述多個傳感器模塊。
16.如權利要求12所述的系統,其特征在于,所述交互機制還被配置來標識兩個或更多個實體之間的沖突。
17.如權利要求12所述的系統,其特征在于,所述交互機制還被配置來展示指示實體移出設備的范圍的事件。
18.如權利要求12所述的系統,其特征在于,所述多個傳感器模塊包括相機、麥克風、數字化儀、運動處理器、游戲控制器、語音識別模塊、姿勢識別模塊、面部識別模塊、移動電話或定點設備,或相機、麥克風、數字化儀、運動處理器、游戲控制器、語音識別模塊、姿勢識別模塊、面部識別模塊、移動電話或定點設備的任何組合。
19.一個或多個具有計算機可執行指令的計算機可讀介質,所述計算機可執行指令在被執行時執行以下步驟,包括: 監視具有實體的物理環境; 處理對與所述實體相關聯的實體狀態數據的請求; 基于來自計算機化的設備組件的配置數據,從用于產生實體狀態數據的多個輸入模式中選擇至少一個輸入模式;以及 將所述實體狀態數據發送到所述計算機化的設備組件。
20.如權利要求19所述的一個或多個計算機可讀介質,其特征在于,具有包括執行下列各步驟的進一步的計算機可執行指令: 檢查與多個實體相關聯的實體交互;以及 將事件發送給所述計算機化的設備組件,指示對應于所述物理環境內的所述實體交互的沖突。
【文檔編號】H04L12/12GK104012038SQ201280062714
【公開日】2014年8月27日 申請日期:2012年12月15日 優先權日:2011年12月19日
【發明者】A·桑卡, W·L·波特諾依 申請人:微軟公司