背景
自然用戶界面允許用戶向計算設備提供姿勢輸入。
概述
提供本概述以便以簡化的形式介紹以下在詳細描述中進一步描述的一些概念。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。此外,所要求保護的主題不限于解決在本公開的任一部分中所提及的任何或所有缺點的實現(xiàn)。
提供了一種校準自然用戶界面(nui)相機相對于顯示器的六自由度(6dof)姿態(tài)的方法。從校準角度對環(huán)境進行成像的校準視頻(該校準視頻設置(site)顯示器和一個或多個特征)是從nui相機或校準相機接收到的。該環(huán)境的三維圖(該三維圖定義顯示器的6dof姿態(tài)以及一個或多個特征中的每一者的三維位置)是根據(jù)該校準視頻來建模的。從操作角度對該環(huán)境進行成像的主視頻(該主視頻設置一個或多個特征)是從該nui相機接收到的。nui相機的6dof姿態(tài)是基于該一個或多個特征的操作透視圖在該環(huán)境的三維圖內找出的。
附圖簡述
圖1示出包括自然用戶界面相機的計算系統(tǒng)的示例環(huán)境。
圖2示出示例頭戴式顯示系統(tǒng)。
圖3示出用于校準自然用戶界面相機相對于顯示器的六自由度姿態(tài)的示例方法。
圖4示出示例計算系統(tǒng)的各方面。
圖5顯示示例虛擬骨架的各方面。
圖6示出示例虛擬骨架的手部分的各方面。
圖7a示出用戶經由視線指向來定向(target)顯示器。
圖7b示出用戶經由手臂瞄準指向來定向顯示器。
圖8示出用戶經由物理交互區(qū)來向計算系統(tǒng)提供輸入。
詳細描述
本公開涉及用于校準計算系統(tǒng)的自然用戶界面(nui)相機的方法。具體地,包括顯示器和nui相機的環(huán)境被成像,并且該環(huán)境的三維圖被構造。在該三維圖內,顯示器和nui相機相對于該環(huán)境及相對于彼此的位置和6自由度(6dof)姿態(tài)被建立。
圖1示出在其中用戶12站立在大尺寸、平面顯示屏14前面的環(huán)境10。在一些實施例中,顯示器14可以是立體3d顯示器,或者在其它實施例中,可以是傳統(tǒng)的2d顯示器。計算系統(tǒng)16操作上耦合至該顯示器以及其它組件,例如音頻-視頻(a/v)接收機18和擴音器20。在一個實施例中,計算系統(tǒng)可以是游戲控制臺。在另一個實施例中,計算系統(tǒng)可以是多用途個人計算機或工作站。以下描述計算系統(tǒng)的附加方面。
在一些實施例中,用戶12可以通過傳統(tǒng)的輸入設備(例如鍵盤、觸摸屏、鼠標、游戲系統(tǒng)控制器和/或無線遙控器)與計算系統(tǒng)16和相關聯(lián)的組件進行交互。替換地或附加地,計算系統(tǒng)可對“自然用戶輸入”(nui)作出響應,其中用戶的語音、手勢和/或眼睛移動被感測、解釋并被用于控制計算系統(tǒng)。
為此,在圖1中的計算系統(tǒng)16操作上被耦合到機器視覺系統(tǒng)22。所示的機器視覺系統(tǒng)包括紅外(ir)或近紅外(nir)照明源24、深度相機26以及平面圖像相機28。機器視覺系統(tǒng)還可以包括用于從用戶12接收語音或其它可聽輸入的話筒30(在圖1中未示出)。
深度相機26可被配置來獲取用戶12的時間分辨深度圖序列和環(huán)境10的其它方面。如本文中所使用的,術語“深度圖”指代與成像場景的對應區(qū)域(xi,yi)配準(register)的像素陣列,其中對于每一像素,深度值zi指示對應區(qū)域的深度?!吧疃取北欢x為與深度相機的光軸平行的坐標,該坐標隨著距深度相機的距離的增加而增加。操作上,深度相機可被配置成獲取2d圖像數(shù)據(jù),深度圖是經由下游處理根據(jù)2d圖像數(shù)據(jù)獲得的。
一般來說,深度相機26的性質在本公開的各實施例中可以是不同的。在一實施例中,來自深度相機中的兩個立體地定向的成像陣列的亮度或顏色數(shù)據(jù)可被共同配準并用于構造深度圖。在其它實施例中,照明源24可被配置成將包括眾多離散特征(例如,線或點)的結構化照明圖案投影到該主體上。該深度相機中的成像陣列可被配置成對從該主體反射回的結構化照明進行成像?;谒上竦闹黧w的各個區(qū)域中的毗鄰特征之間的間隔,可構造該主體的深度圖。在又一其它實施例中,照明源可以將脈沖ir或nir照明投向主體。深度相機中的一對成像陣列可被配置成檢測從主體反射回的脈沖照明。這兩個陣列均可包括與脈沖照明同步的電子快門,但這兩個陣列的集成時間可不同,使得脈沖照明的從照明源到主體再接著到這兩個陣列的像素解析的飛行時間可基于在兩個陣列的相應元素中接收到的相對光的量來區(qū)別開來。
通過合適的物鏡系統(tǒng),平面圖像相機28在某一視野角范圍內檢測光,將這樣的角度映射到矩形像素陣列中的對應像素。在一個實施例中,平面圖像相機可檢測多個波長通道—例如,紅、綠、藍等中的光,每個波長通道與該陣列中的像素的子集相關聯(lián)。替換地,單色平面圖像相機可被使用,其以灰度級對可見的、ir、nir和/或紫外(uv)光進行成像。平面圖像相機中曝光的所有像素的顏色或亮度值共同構成數(shù)字圖像。在一些實施例中,深度相機26和平面圖像相機28被布置成具有平行的、以相同方向定向的光軸。
可使用深度相機26來在環(huán)境10內跟蹤用戶12,使得用戶12的移動可被計算系統(tǒng)16解釋為控制,而無需用戶12持有任何特定的運動檢測設備或佩戴任何特定的標記。在一個示例中,用戶12可僅通過指向顯示器14上出現(xiàn)的顯示對象31來定向到該顯示對象。為了允許用戶通過直接指向顯示對象來提供輸入,顯示器和機器視覺系統(tǒng)相對于彼此、相對于環(huán)境10以及相對于用戶12的六自由度(6dof=x、y、z、俯仰、滾轉、偏航)姿態(tài)必須是已知的。
為了映射環(huán)境10內的顯示器的6dof姿態(tài),可從不同的角度拍攝環(huán)境10的兩個或更多個圖像,只要這些圖像中的至少一者包括顯示器14即可。在一些示例中,這可通過以下來完成:在深度相機26以校準角度放置時對環(huán)境10進行成像,隨后將深度相機26移動到操作角度(例如,圖1中示出的角度)并對環(huán)境10重新進行成像。在其他示例中,單獨的校準相機可被用于從校準角度對環(huán)境10進行成像。例如,輔助相機32可被通信地耦合到計算系統(tǒng)16。在另一示例中,用戶12可使用設置在智能電話或平板計算設備內的相機對環(huán)境10進行成像。在又一示例中,環(huán)境10可由設置在增強現(xiàn)實設備(諸如由用戶12穿戴的頭戴式計算系統(tǒng))內的相機來成像。
圖2描繪了示例頭戴式顯示系統(tǒng)40。頭戴式顯示系統(tǒng)40采用一對可佩戴的眼鏡或護目鏡的形式。頭戴式顯示系統(tǒng)40包括透視顯示器42,透視顯示器42可被配置成向透過透視顯示器觀看物理環(huán)境的用戶可視地增強物理環(huán)境的景象。頭戴式顯示系統(tǒng)40可被配置成增強真實世界環(huán)境的現(xiàn)實。
例如,真實世界背景的景象可通過可用透視顯示器42呈現(xiàn)的圖形內容來增強,使得圖形內容表現(xiàn)為與真實世界背景混合。具體地,圖像產生系統(tǒng)43可被配置成用透視顯示器42顯示虛擬物體的圖像。
在一些配置中,頭戴式顯示系統(tǒng)可以是加性顯示系統(tǒng),其中全息光可被顯示在透視顯示器上。例如,一個或多個部分透明的像素可向用戶的眼睛發(fā)射光。用戶可穿過和/或繞過像素來觀看真實世界物體,但是所發(fā)射的光可看起來照亮了穿過和/或繞過像素觀看到的背景物體。
頭戴式顯示系統(tǒng)40包括可包括一個或多個光學傳感器的光學傳感器系統(tǒng)44。在一個示例中,光學傳感器系統(tǒng)44包括面向內的光學傳感器46和面向外的光學傳感器48。面向內的光學傳感器可被配置成對用戶的眼睛執(zhí)行注視檢測或其他分析。面向外的光學傳感器可被配置成從與用戶穿過透視顯示器42所觀察到的類似的有利視點(vantagepoint)(例如,視線)檢測真實世界背景。在一些配置中,傳感器子系統(tǒng)可包括兩個或更多個不同的面向內的和/或面向外的光學傳感器(例如,面向外的平面圖像相機和面向外的深度相機)。
頭戴式顯示系統(tǒng)40可進一步包括位置傳感器系統(tǒng)50,該位置傳感器系統(tǒng)50可包括輸出位置傳感器信息的一個或多個位置傳感器(例如,(諸)加速度計、(諸)陀螺儀、(諸)磁力計、(諸)全球定位系統(tǒng)、(諸)多點定位跟蹤器等),該位置傳感器信息可用于評估相關傳感器的位置、定向和/或運動。
從光學傳感器系統(tǒng)44接收的光學傳感器信息和/或從位置傳感器系統(tǒng)50接收的位置傳感器信息可被用于評估透視顯示器相對于其他環(huán)境物體的有利視點的位置和定向。在一些配置中,有利視點的位置和定向可用六個自由度(例如,世界空間x、y、z、俯仰、翻滾、偏航)來表征??扇值鼗颡毩⒂谡鎸嵤澜绫尘暗乇碚饔欣朁c??捎脵C載計算系統(tǒng)(例如,機載計算系統(tǒng)52)和/或非機載計算系統(tǒng)(例如,圖1的計算機系統(tǒng)16)來確定位置和/或定向。
此外,光學傳感器信息和位置傳感器信息可被計算系統(tǒng)用來執(zhí)行對真實世界背景的分析,諸如深度分析、表面重建、環(huán)境色彩和照明分析、或其他合適的操作。光學和位置傳感器信息可被用于創(chuàng)建真實世界背景的虛擬模型。在一些配置中,可相對于此虛擬空間來表征有利視點的位置和定向。此外,虛擬模型可被用于確定虛擬物體在虛擬空間中的位置。
圖3示出用于校準自然用戶界面(nui)相機相對于顯示器的六自由度(6dof)姿態(tài)的示例方法100。在110,方法100包括從校準相機接收從校準角度對環(huán)境進行成像的校準視頻,該校準視頻設置顯示器和一個或多個特征。如上所述,校準相機可以是輔助相機(諸如輔助相機32)、設置在增強現(xiàn)實設備內的相機(諸如面向外的光學傳感器48)、設置在智能電話或平板計算機內的相機或其他合適的相機。替換地,nui相機可被移動到校準角度并被用于完成該校準。在任一情況下,用于完成該校準的相機可被配置成獲得2d圖像數(shù)據(jù)和/或3d圖像數(shù)據(jù)。
一個或多個特征可包括環(huán)境10的可由環(huán)境10的經組裝的深度圖上的一個或多個點來表示的一個或多個對象、方面或特性。該一個或多個特征可以是靜態(tài)特征,使得該特征的位置在校準過程期間不被改變。例如,環(huán)境10內的各對象(諸如,燈112或長凳114的特定方面)可被用作特征。環(huán)境10的一方面(諸如地板平面116、墻壁、天花板等)的全部或部分可被用作特征。各種圖像處理策略可被用于標識適合于6dof姿態(tài)校準(例如,處理以推導出邊緣圖、強度曲線和/或點云)的特征。
顯示器14可被配置成呈現(xiàn)校準相機可見的校準圖像。校準圖像可被呈現(xiàn)為使得顯示器的校準視頻可被用于確定該顯示器的特性。例如,顯示器的大小、形狀和/或分辨率可至少部分地基于校準視頻中的校準圖像的外觀來確定。此外,顯示器相對于校準相機的位置和傾斜可至少部分地基于校準視頻中的校準圖像的重點(keystone)來確定。校準圖像可以是靜態(tài)的,或者可被漸進地改變。通過改變校準圖像,從顯示器發(fā)出的光可相應地改變。環(huán)境特征的陰影或反光方面的改變可由此被記錄在校準視頻中。
在120,方法100包括根據(jù)校準視頻三維地建模該環(huán)境的三維圖,該環(huán)境的三維圖定義顯示器在該環(huán)境內的6dof姿態(tài)以及一個或多個特征中的每一者在該環(huán)境內的三維位置。
在130,方法100包括從nui相機接收從操作角度對該環(huán)境進行成像的主視頻,該主視頻設置該一個或多個特征。操作角度可根據(jù)nui相機的位置和姿態(tài),在計算系統(tǒng)的操作期間,將根據(jù)該位置和姿態(tài)來接收對于計算系統(tǒng)的輸入。主視頻可與校準視頻同時被記錄,或者可被分開地記錄。
可選地,校準相機可包括nui相機可見的兩個或更多個參考標記。參考標記可指示校準相機相對于nui相機以及相對于環(huán)境的位置和方向。在其中校準相機包括顯示屏的示例中,諸如當校準相機被包括在智能相機或平板計算機中時,顯示屏可被配置成呈現(xiàn)nui相機可見的參考圖像。基于顯示屏的尺寸和分辨率,校準相機和nui相機之間的距離可被確定。
在140,方法100包括基于一個或多個特征的操作透視圖在該環(huán)境的三維圖內找出nui相機的6dof姿態(tài)。通過這種方式,nui相機和顯示器相對于彼此以及相對于環(huán)境的6dof姿態(tài)是已知的。作為一個示例,nui相機的6dof姿態(tài)可從nui相機到所映射的特征中的一者或多者的距離和角度中推導出。
如以上所介紹的,nui相機可被用于捕捉校準視頻以及主視頻兩者。例如,該方法可包括從nui相機接收從校準角度對環(huán)境進行成像的校準視頻,該校準視頻設置顯示器和一個或多個特征。該方法可進一步包括從nui相機接收從操作角度對環(huán)境進行成像的主視頻,該主視頻設置該一個或多個特征。主視頻可與校準視頻分開地被記錄。nui相機可被耦合到一個或多個運動傳感器,使得該相機從校準角度到操作角度的移動被跟蹤。來自相機跟蹤的空間信息可被用來確定該相機相對于環(huán)境和顯示器的位置和姿態(tài)。
還可使用校準nui相機相對于顯示器的6dof姿態(tài)的其他方法。在一些示例中,nui相機可被配置成從固定于顯示器的6dof姿態(tài)的操作角度利用。例如,nui相機可位于顯示器的邊框。在這樣的示例中,環(huán)境的一個或多個特征的成像對于確定nui相機的6dof姿態(tài)而言可能是足夠的。例如,通過使用地板平面作為特征,該傳感器的高度和角度可被確定。在一些場景中,顯示器的特性(諸如顯示器尺寸和分辨率)可被計算系統(tǒng)知道。對于一些顯示器,顯示屏可被假設為與重力平行。
用戶輸入也可被用來校準nui相機相對于顯示器的6dof姿態(tài)。例如,nui相機可記錄用戶指向顯示器上的諸特征(諸如顯示器拐角或作為校準過程的一部分被顯示的對象)的視頻。該用戶可被指令通過指向和拖動對象來使顯示器上出現(xiàn)的顯示對象相對于彼此移動。用戶可用手指或其他身體部位指向屏幕,或者可用諸如激光指示器或可伸縮天線之類的工具指向屏幕。在一些示例中,用戶可使相機或可伸縮透鏡瞄準顯示器上的特征,或者可舉起包括nui相機可見的邊框的反光鏡。當這樣的工具被使用時,可選地,它們可包括標記,nui相機可對這些標記進行成像以解析該工具相對于nui相機的6dof姿態(tài)。如果nui相機的操作角度被更改了,則可從該新的操作角度重復該校準過程,或者可基于該相機的關于環(huán)境的一個或多個特征的新視圖來推導出新的nui相機位置。
如在圖4中所示,來自機器視覺系統(tǒng)22的傳感數(shù)據(jù)由計算系統(tǒng)16的一個或多個nui引擎處理以揭示可行動的用戶輸入。這樣的輸入可以由操作系統(tǒng)(os)160或由應用級代碼來解析,由此控制計算系統(tǒng)的操作。在圖4的實施例中,計算系統(tǒng)16包括語音識別引擎162、姿勢識別引擎164以及眼睛跟蹤引擎166。
語音識別引擎162被配置成處理來自話筒30的音頻數(shù)據(jù)、識別用戶的語音中的單詞或短語以及生成對應的到os160或應用170的可操作輸入。姿勢識別引擎164被配置成至少處理來自機器-機器視覺系統(tǒng)22的深度視頻(即時間分辨深度圖序列),標識深度視頻中的一個或多個人類主體、計算所標識的主體的各種幾何(例如,骨架)特征,以及從幾何特征收集要被用作nui的各姿勢或手勢信息。
在一個非限制性實施例中,姿勢識別引擎164標識深度視頻中的一個或多個人類主體的至少一部分。通過合適的深度圖像處理,深度圖的給定位點可被識別為屬于人類主體。在更特定實施例中,屬于人類主體的像素可(例如通過分割出深度圖的在合適的時間標度內展示出高于閾值的運動的部分)被標識出,并且人類的通用幾何模型可從這些像素中推導出。
在一個實施例中,深度圖的每一像素可被分配將該像素標識為屬于特定人類主體或非人類元素的人物索引。作為示例,與第一人類主體相對應的像素可被分配等于一的人物索引,與第二人類主體相對應的像素可被分配等于二的人物索引,而不與人類主體相對應的像素可被分配等于零的人物索引。人物索引可用任何適當?shù)姆绞絹泶_定、分配和保存。
姿勢識別引擎164還可以作出關于哪個(或哪些)人類主體將向計算系統(tǒng)16提供用戶輸入(即哪個人類主體將被標識為用戶)的確定。在一些實施例中,人類主體可基于到顯示器14或深度相機26的鄰近度和/或在深度相機的視野中的位置被選為用戶。更具體地,所選的用戶可以是最接近深度相機或最接近深度相機的視野的中心的人類主體。
姿勢識別引擎164還可以處理來自用戶的姿勢信息。該姿勢信息是通過計算從深度視頻推導出的。在一些實施例中,附加的傳感輸入—例如,來自平面圖像相機28的圖像數(shù)據(jù)或來自話筒30的音頻數(shù)據(jù)—可與姿勢信息一起被處理。
在一些實施例中,姿勢識別引擎164可被配置成分析深度圖的對應于用戶的像素,以便確定每個像素對應于用戶身體的什么部位。至此,各種不同的身體部位分配技術可被使用。在一個示例中,深度圖中具有適當?shù)娜宋锼饕?見上文)的每一像素可被分配一身體部位索引。身體部位索引可包括離散標識符、置信度值和/或指示像素可能對應的一個或多個身體部位的身體部位概率分布。
在一些實施例中,機器學習可被用于向每一像素分配身體部位索引和/或身體部位概率分布。機器學習方法參考從先前訓練的已知姿態(tài)集合中學習到的信息來分析用戶。在受監(jiān)督訓練階段期間,例如,各種人類主體被觀察到處于各種姿態(tài);訓練器在觀察到的數(shù)據(jù)中提供標記各機器學習分類器的真實注釋。所觀察到的數(shù)據(jù)和注釋接著被用于生成將輸入(例如,深度視頻)映射到所需輸出(例如,相關像素的身體部位索引)的一個或多個機器學習算法。
此后,虛擬骨架被適配到深度視頻的對應于用戶的像素。圖5示出示例虛擬骨架172。該虛擬骨架包括樞轉地耦合在多個關節(jié)176處的多個骨骼部分174。在一些實施例中,身體部位指定可被分配給每個骨骼部分和/或每個關節(jié)。在圖5中,每個骨骼部分174的身體部位指定由所附字母表示:a針對頭部、b針對鎖骨、c針對上臂、d針對前臂、e針對手、f針對軀干、g針對骨盆、h針對大腿、j針對小腿、而k針對腳。類似地,每個關節(jié)176的身體部位指定由所附字母表示:a針對頸部,b針對肩膀,c針對肘,d針對手腕,e針對下背,f針對髖關節(jié),g針對膝蓋以及h針對踝。自然地,圖5中示出的骨骼部分和關節(jié)的安排不是為了以任何方式進行限制。符合本公開的虛擬骨架可包括實質上任何類型和數(shù)量的骨骼部分和關節(jié)。
在更具體的實施例中,對應于用戶的手的點云(深度圖的各部分)可以被進一步處理以揭示手的骨骼子結構。圖6示出用戶的虛擬骨架172的示例手部分178。手部分包括腕關節(jié)180、指關節(jié)182以及毗鄰的手指部分184。
通過任何合適的最小化方式,骨骼部分的長度和關節(jié)的位置和旋轉角可被調整以符合深度圖的各個輪廓。以此方式,每個關節(jié)被分配各種參數(shù)-例如,指定關節(jié)位置的笛卡爾坐標、指定關節(jié)旋轉的角、以及指定對應的身體部位的形態(tài)(手張開、手閉合等)的附加參數(shù)。該虛擬骨架可采取數(shù)據(jù)結構的形式,該數(shù)據(jù)結構包括針對每個關節(jié)的這些參數(shù)中的任一個、一些或全部。該過程可以限定所成像的人類主體的位置和姿態(tài)。一些骨架擬合算法可以使用深度數(shù)據(jù)結合其他信息,諸如彩色圖像數(shù)據(jù)和/或指示一個像素軌跡如何相對于另一個來移動的運動數(shù)據(jù)。在上述方式中,虛擬骨架可被適配到深度視頻的幀序列中的每一幀中。通過分析各個骨架關節(jié)和/或部分的位置變化,被成像的用戶的對應移動—例如姿勢或動作—可被確定。
上述描述不應當被理解為限制可用于構造虛擬骨架172的方法的范圍,因為可以用任何合適的方式從深度圖中導出虛擬骨架而不背離本公開的范圍。此外,盡管使用虛擬骨架來建模用戶12有優(yōu)點,但這個方面并不意味著是必需的。代替虛擬骨架,原始點云數(shù)據(jù)或其他機器可讀模型可被用來提供合適的姿態(tài)信息。
環(huán)境的三維圖和用戶的三維骨架圖可被用于允許用戶僅通過指向顯示器來與計算系統(tǒng)交互。在一個示例方法中,計算系統(tǒng)16可從對環(huán)境10中的用戶12進行成像的經6dof校準的機器視覺系統(tǒng)22接收主視頻,并可基于該主視頻來相對于環(huán)境的三維圖確定用戶的三維骨架圖。計算系統(tǒng)16可標識用戶的一個或多個身體部位相對于顯示器的三維位置。
圖7a示出用戶12指向顯示器14的一個示例。在該示例中,用戶的眼睛被指定為第一身體部位200。用戶的眼睛的位置可由眼睛跟蹤引擎166和/或姿勢識別引擎164來確定。例如,眼睛跟蹤引擎166可基于用戶的眼睛的中心點、用戶的瞳孔的中心點來確定用戶的眼睛的位置,和/或姿勢識別引擎164可基于虛擬骨架的頭部關節(jié)的位置來估計眼睛的位置。眼睛跟蹤引擎166可被校準以確定每一用戶的主視眼,以便選擇一眼睛作為第一身體部位200。在該示例中,用戶的手指被指定為第二身體部位202,但在其他示例中,第二身體部位可以是用戶的手。它也可以是棒或指示筆、手指的組合、手套的一部分、腳趾、腳、鞋或任何其它合適的對象。第二身體部位202的位置可基于虛擬骨架的單個手關節(jié)位置以及來自姿勢識別引擎164的關于手是張開還是閉合的指示來確定。此外,用戶12的身體可被分配例如指定用戶的軀干、或重心的中心點203。
參考圖4和7a,指示器投影引擎204從姿勢識別引擎164接收包括第二身體部位202的3d坐標在內的姿勢信息。指示器投影引擎還從眼睛跟蹤引擎166接收第一身體部位200(用戶的眼睛)的3d坐標。指示器投影引擎實際上被配置成延伸線205,該線205有一端點在第一身體部位的位置處并通過第二身體部位的位置。線205可被延伸到顯示器14。可選地,交點206可在顯示器上以光標、圖標或其他合適的顯示對象的形式來指示。該視線可被用于標識顯示器14上的定向到的對象。作為示例,該交點被用于相對于顯示器的拐角計算指示器投影坐標(xpp,ypp),其以配準數(shù)據(jù)207的形式被提供給os160。
各種圖形顯示對象31可被呈現(xiàn)在顯示器14上。這樣的對象可例如包括窗口、照片、文本框、圖標和ui控件元素。每一對象在顯示器上的坐標被存儲在位置數(shù)據(jù)208中(參考圖2),該位置數(shù)據(jù)是os160可訪問的。位置數(shù)據(jù)可包括每一對象與顯示器的可觀看區(qū)域的給定拐角相對的拐角的x,y偏移209。在其中顯示器14是立體或3d顯示器的實施例中,深度偏移z也可以被指定。位置數(shù)據(jù)208還包括針對顯示器14的配準數(shù)據(jù)207。配準數(shù)據(jù)可包括定義顯示器的可觀看區(qū)域的物理大小、位置和定向的坐標—例如有效顯示面積的每個拐角的x、y和z。
顯示對象31的偏移209可隨后被與交點206的配準數(shù)據(jù)進行比較。當交點206與顯示對象31的全部或部分重合時,顯示對象31可被定向到。顯示對象31的定向可視覺地(諸如通過更改顯示對象的外觀)、聽覺地或通過其他合適的手段來指示。一旦一對象被定向到,用戶12可以發(fā)出要在該對象上采取進一步行動的信號。計算系統(tǒng)16的一個或多個nui引擎可以被配置為檢測用戶要在被定向的對象上行動的意圖。例如,在對象被定向到后,用戶可通過朝向顯示屏移動第二身體部位202(在202a處被指示)來發(fā)信號表示選擇該對象的意圖。例如,當交點206與顯示對象31重合時,顯示對象31可響應于第二身體部位202朝向顯示器14的移動而被選擇。第二身體部位朝向顯示器的移動可基于第二身體部位202相對于第一身體部位200之間的距離來確定。隨著該距離增加,朝向顯示器的移動可被推斷出。隨著該距離減小,遠離顯示器的移動可被推斷出。第二身體部位202朝向顯示器的移動可基于第二身體部位和顯示器之間的距離。在一些示例中,用戶將第二身體部位維持在同一x-y位置達閾值時間段也可構成輸入命令。
在一些實施例和場景中,可選地,在用戶的選擇之后可激活定向到的對象。激活可包括執(zhí)行與定向到的對象相關聯(lián)的os或應用級代碼。例如,如果定向到的對象是文檔,則激活可包括啟動文字處理器,該文字處理器自動打開文檔以供編輯。如果定向到的對象是幻燈片,則激活可包括在顯示器上呈現(xiàn)該幻燈片。姿勢識別引擎34可被配置成檢測這種類型的激活姿勢。在其它示例中,用戶要選擇或激活目標對象的意圖可由語音識別引擎162所檢測到的口述的單詞或短語來發(fā)信號表示。
圖7b示出用戶12指向顯示器14的另一示例。在該示例中,用戶的肘部被指定為第一身體部位210,而用戶的手指被指定為第二身體部位212。用戶12的身體被分配中心點213。線215從用戶的肘部起延伸通過用戶的手指,并延伸到顯示器14,如交點216所指示的。通過該方式,用戶可按類似于激光指示筆的方式來定向顯示器。當顯示對象31與交點216重合時,用戶12可通過相對于顯示器14移動第二身體部位212(在212a處示出)來選擇或引起對顯示對象31的動作。第二身體部位朝向顯示器的移動可基于第一身體部位210的位置和/或第二身體部位212的位置相對于用戶身體中心點213的位置之間的距離來確定。
可在計算系統(tǒng)16上建立并存儲針對視線指向(如圖7a所示)和/或手臂瞄準指向(如圖7b所示)的用戶偏好,使得用戶可基于應用使用一種或兩種類型的指向。姿勢識別引擎164和眼睛跟蹤引擎166可通過機器學習或另一技術來訓練以基于用戶的習慣來調整顯示器上的交點的位置。例如,如果用戶一般將偏離期望顯示對象的線瞄準顯示器,則該線的方向和/或交點的位置可相應地被補償。
盡管該指示器輸入模式在許多場景下對于用戶可能都是優(yōu)選的,但可存在其中不同的輸入模式被偏好的其他應用。由此,計算系統(tǒng)16可支持多個輸入模式(在本文中為“物理交互區(qū)或phiz”)并進一步支持多個phiz之間的轉變。
圖8示出用戶12經由人體工程學phiz來向計算系統(tǒng)16提供輸入的示例。可在世界空間中概念化交互區(qū)220,并可在模型空間中實例化交互區(qū)28。交互區(qū)可被配置成當用戶在世界空間中移動時與該用戶一起移動。結果,環(huán)境中的經實例化的交互區(qū)的可移動的界面空間坐標系225可相對于固定的環(huán)境坐標系230而改變。交互區(qū)220的位置和定向可基于用戶12的位置和定向(和/或用戶12的三維骨架模型)來建立。在交互區(qū)跟蹤用戶時,交互區(qū)可如圖8所示保持在用戶的正前方或所建立的任何空間定向。用戶可在環(huán)境內到處移動和/或改變定向,并且交互區(qū)將自動地跟蹤用戶。由此,在該操作模式期間,用戶的姿勢命令被確定為與交互區(qū)和用戶的位置的坐標有關,而非與顯示器14有關。
由此,計算系統(tǒng)16可被配置成在不同的條件下將用戶的身體部位的位置解釋為交互區(qū)姿勢或指向區(qū)姿勢。例如,計算系統(tǒng)16可接收相對于深度相機在環(huán)境內的6dof姿態(tài)來定義顯示器的6dof姿態(tài)的三維模型,并且還可接收環(huán)境內的用戶的機器可讀身體模型,該身體模型包括用戶的第一身體部位的三維位置和用戶的第二身體部位的三維位置。在第一條件期間,計算系統(tǒng)可將用戶的第一身體部位的位置和用戶的第二身體部位的位置解釋成交互區(qū)姿勢。在第二條件期間,計算系統(tǒng)可將用戶的第一身體部位的位置和用戶的第二身體部位的位置解釋成定向姿勢。
計算系統(tǒng)16可響應于接收到來自用戶的命令而從第一條件轉變到第二條件。例如,用戶可發(fā)出口頭命令或姿勢命令(諸如,閉合非主視眼)。用戶可朝向顯示器邁步并指向顯示器,以指示到第二條件的轉變。用戶可通過其他輸入或通信系統(tǒng)提供輸入。
在一些示例,計算系統(tǒng)16可響應于接收來自在計算系統(tǒng)上執(zhí)行的應用的指令而從第一條件轉變到第二條件。應用可基于上下文和/或顯示界面來指示第一或第二條件。例如,游戲應用可指示某些任務將在人工工程學phiz中執(zhí)行,而其他任務將在指示器phiz中執(zhí)行。應用可呈現(xiàn)要在指示器phiz中與其交互的菜單,而一旦選擇了菜單項,就可在人工工程學phiz中與這些菜單項進行交互。
在一些示例中,響應于識別到第二身體部位相對于顯示器的距離已減小到低于閾值,計算系統(tǒng)可從第一條件轉變到第二條件。例如,用戶可朝向顯示器14伸出手或手指。當手或手指在顯示器的閾值距離內時,指示器phiz可被調用。
盡管本文中的應用已相關于單個顯示器來描述,但多個顯示器可在環(huán)境內被校準。在一些示例中,投影屏可被用作顯示器。在其中用戶正佩戴著增強現(xiàn)實設備(諸如頭戴式顯示系統(tǒng)40)的示例中,虛擬顯示器可在環(huán)境內的三維位置處被呈現(xiàn)給用戶。用戶可使用指示器phiz基于用戶的第一和第二身體部位相對于顯示器的位置來與每一顯示器交互。用戶不需要與最近的顯示器交互;相反,環(huán)境內的任何顯示器都可被定向到。
在一些示例中,指示器投影引擎82可被用于標識環(huán)境10中的任何定向到的真實世界對象。定向到的對象可包括可遠程控制的設備,諸如有線電視盒、a/v接收機、打印機或環(huán)境控件。通過指示器投影引擎82定向和選擇這樣的對象的動作可具有在顯示器14上呈現(xiàn)那個設備的控制界面使得用戶能夠通過nui控制該設備的效果。例如,參考圖1,用戶12可指向燈112以打開或關閉該燈,或者改變調光設置。對任何現(xiàn)實世界對象的定向要求按與本文中描述的針對顯示器的校準類似的方式來相關于該環(huán)境校準那個對象的位置和姿態(tài)。在其它環(huán)境中,現(xiàn)實世界對象或顯示器可以是自校準的。自校準對象可包括具有內置的位置和定向跟蹤(通過gps和/或慣性傳感器)的設備以及物理地耦合到無線位置查尋器的對象。在環(huán)境10內這些對象的位置和定向可被本地地計算并被傳遞給計算系統(tǒng)16以實現(xiàn)校準。這個特征的另一個優(yōu)點在于自校準對象即使在該環(huán)境中被移動時也保持校準。
在一些實施例中,本文中描述的方法和過程可與一個或多個計算設備的計算系統(tǒng)綁定。具體而言,這樣的方法和過程可被實現(xiàn)為計算機應用程序或服務、應用編程接口(api)、庫和/或其他計算機程序產品。
參考圖4,該圖以簡化形式示出用于執(zhí)行本文中描述的方法和過程的計算系統(tǒng)16的一個非限制性示例。該計算系統(tǒng)包括邏輯機238和存儲機240。該計算系統(tǒng)還包括顯示器14、通信子系統(tǒng)242和附圖中未示出的各種組件。
邏輯機238包括被配置成執(zhí)行指令的一個或多個物理設備。例如,邏輯機可被配置成執(zhí)行作為以下各項的一部分的指令:一個或多個應用、服務、程序、例程、庫、對象、組件、數(shù)據(jù)結構、或其他邏輯構造。這種指令可被實現(xiàn)以執(zhí)行任務、實現(xiàn)數(shù)據(jù)類型、轉換一個或多個組件的狀態(tài)、實現(xiàn)技術效果、或以其他方式得到期望結果。
邏輯機可包括被配置成執(zhí)行軟件指令的一個或多個處理器。作為補充或替換,邏輯機可包括被配置成執(zhí)行硬件或固件指令的一個或多個硬件或固件邏輯機。邏輯機的處理器可以是單核或多核,且在其上執(zhí)行的指令可被配置為串行、并行和/或分布式處理。邏輯機的各個組件可任選地分布在兩個或更多單獨設備上,這些設備可以位于遠程和/或被配置成進行協(xié)同處理。邏輯機的各方面可由以云計算配置進行配置的可遠程訪問的聯(lián)網計算設備來虛擬化和執(zhí)行。
存儲機240包括被配置成保持可由邏輯機執(zhí)行以實現(xiàn)此處所述的方法和過程的指令的一個或多個物理設備。在實現(xiàn)這些方法和過程時,可以變換存儲機240的狀態(tài)(例如,保存不同的數(shù)據(jù))。
存儲機240可以包括可移動和/或內置設備。存儲機240可包括光學存儲器(例如,cd、dvd、hd-dvd、藍光盤等)、半導體存儲器(例如,ram、eprom、eeprom等)和/或磁存儲器(例如,硬盤驅動器、軟盤驅動器、磁帶驅動器、mram等)等等。存儲機240可包括易失性、非易失性、動態(tài)、靜態(tài)、讀/寫、只讀、隨機存取、順序存取、位置可尋址、文件可尋址和/或內容可尋址設備。
可以理解,存儲機240包括一個或多個物理設備。然而,本文描述的指令的各方面可另選地通過不由物理設備在有限時長內持有的通信介質(例如,電磁信號、光信號等)來傳播。
邏輯機238和存儲機240的各方面可被一起集成到一個或多個硬件邏輯組件中。這些硬件邏輯組件可包括例如現(xiàn)場可編程門陣列(fpga)、程序和應用專用的集成電路(pasic/asic)、程序和應用專用的標準產品(pssp/assp)、片上系統(tǒng)(soc)以及復雜可編程邏輯器件(cpld)。
術語“模塊”、“程序”和“引擎”可用于描述被實現(xiàn)為執(zhí)行一個特定功能的計算系統(tǒng)16的一方面。在某些情況下,可以通過執(zhí)行由存儲機240所保持的指令的邏輯機238來實例化模塊、程序或引擎。將理解,可以從同一應用、服務、代碼塊、對象、庫、例程、api、函數(shù)等實例化不同的模塊、程序和/或引擎。同樣,可以由不同的應用程序、服務、代碼塊、對象、例程、api、函數(shù)等來實例化同一模塊、程序和/或引擎。術語模塊摂、程序摂和引擎摂可涵蓋單個或成組的可執(zhí)行文件、數(shù)據(jù)文件、庫、驅動程序、腳本、數(shù)據(jù)庫記錄等。
應該理解,在此使用的“服務”是跨多個用戶會話可執(zhí)行的應用程序。服務可用于一個或多個系統(tǒng)組件、程序和/或其它服務。在某些實現(xiàn)中,服務可以在一個或多個服務器計算設備上運行。
當包括顯示器14時,顯示器14可被用于呈現(xiàn)由存儲機240保持的數(shù)據(jù)的視覺表示。此視覺表示可采取圖形用戶界面(gui)的形式。由于本文所描述的方法和過程改變了由存儲機保持的數(shù)據(jù),并由此變換了存儲機的狀態(tài),因此同樣可以轉變顯示器14的狀態(tài)以視覺地表示底層數(shù)據(jù)的改變。顯示器14可包括使用實際上任何類型的技術的一個或多個顯示設備??蓪⒋祟愶@示設備與邏輯機238和/或存儲器機240組合在共享封裝中,或者此類顯示設備可以是外圍顯示設備。
當包括通信子系統(tǒng)242時,通信子系統(tǒng)242可被配置成將計算系統(tǒng)16與一個或多個其他計算設備通信地耦合。通信子系統(tǒng)242可包括與一個或多個不同通信協(xié)議兼容的有線和/或無線通信設備。作為非限制性示例,通信子系統(tǒng)可被配置成用于經由無線電話網絡或者有線或無線局域網或廣域網來進行通信。在一些實施例中,通信子系統(tǒng)可允許計算系統(tǒng)16經由諸如因特網這樣的網絡將消息發(fā)送至其他設備以及/或者從其他設備接收消息。
將會理解,本文描述的配置和/或方式本質是示例性的,這些具體實施例或本文示例不應被視為限制性的,因為許多變體是可能的。本文描述的具體例程或方法可以表示任何數(shù)量的處理策略中的一個或多個。如此,所示和/或所述的各種動作可以以所示和/或所述順序、以其他順序、并行地執(zhí)行,或者被省略。同樣,上述過程的次序可以改變。
本公開的主題包括本文公開的各種過程、系統(tǒng)和配置以及其他特征、功能、動作和/或性質的所有新穎和非顯而易見的組合和子組合,以及其任何和所有等同物。
一示例提供一種校準自然用戶界面(nui)相機相對于顯示器的六自由度(6dof)姿態(tài)的方法,所述方法包括:從校準相機接收從校準角度對環(huán)境進行成像的校準視頻,該校準視頻設置顯示器和一個或多個特征,根據(jù)所述校準視頻三維地建模所述環(huán)境的三維圖,所述環(huán)境的所述三維圖定義所述顯示器在所述環(huán)境內的6dof姿態(tài)以及所述一個或多個特征中的每一者在所述環(huán)境內的三維位置,從所述nui相機接收從操作角度對所述環(huán)境進行成像的主視頻,該主視頻設置所述一個或多個特征,以及,基于所述一個或多個特征的操作透視圖,在所述環(huán)境的三維圖內尋找所述nui相機的6dof姿態(tài)。在這樣的示例中,所述方法可附加地或替換地包括:從所述nui相機接收對所述環(huán)境中的用戶進行成像的主視頻,標識所述用戶的第一身體部位和所述用戶的第二身體部位相對于所述顯示器的三維位置,以及,在所述顯示器上可視地指示所述顯示器和從所述第一身體部位起延伸通過所述第二身體部位的線的交點。在這樣的示例中,所述方法可附加地或替換地包括將用戶的第二身體部位朝向所述顯示器的移動解釋為針對顯示在所述顯示器與從所述用戶的第一身體部位起延伸通過所述第二身體部位的線的交點處的對象的輸入命令。在這樣的示例中,所述第二身體部位朝向所述顯示器的移動可附加地或替換地基于所述第二身體部位和所述用戶的身體之間的距離來確定。在這樣的示例中,所述第二身體部位朝向所述顯示器的移動可附加地或替換地基于所述第二身體部位和所述第一身體部位之間的距離來確定。在這樣的示例中,所述方法可附加地或替換地包括在所述顯示器上呈現(xiàn)顯示對象,并可附加地或替換地包括在所述交點與所述顯示對象重合時,響應于所述第二身體部位朝向所述顯示器的移動而選擇所述顯示對象。在這樣的示例中,所述第一身體部位可附加地或替換地為所述用戶的眼睛,并且所述第二身體部位可替換地或附加地為所述用戶的手指。在這樣的示例中,所述第一身體部位可附加地或替換地為所述用戶的肘部,并且所述第二身體部位可替換地或附加地為所述用戶的手指。在這樣的示例中,所述主視頻可附加地或替換地設置所述校準相機。在這樣的示例中,所述校準相機可附加地或替換地包括所述nui相機可見的兩個或更多個參考標記。在這樣的示例中,所述校準相機可附加地或替換地包括顯示屏,所述顯示屏被配置成呈現(xiàn)所述nui相機可見的兩個或更多個參考標記。在這樣的示例中,所述nui相機可附加地或替換地為深度相機。在這樣的示例中,所述顯示器可附加地或替換地被配置成呈現(xiàn)所述校準相機可見的校準圖像。在這樣的示例中,所述校準相機可附加地或替換地被包括在用戶可穿戴的頭戴式增強現(xiàn)實設備中。以上描述的示例中的任何一個或全部可按任何合適的方式被組合在各實現(xiàn)中。
在另一示例中,提供了一種使用深度相機來控制計算系統(tǒng)的方法,所述方法包括在所述計算系統(tǒng)處接收相對于所述深度相機在環(huán)境內的6dof姿態(tài)來定義顯示器的6dof姿態(tài)的三維模型,在所述計算系統(tǒng)處接收所述環(huán)境內的用戶的機器可讀身體模型,所述機器可讀身體模型包括所述用戶的第一身體部位的三維位置以及所述用戶的第二身體部位的三維位置,在第一條件期間,將所述用戶的所述第一身體部位的位置和所述用戶的所述第二身體部位的位置解釋成控制所述計算系統(tǒng)的物理交互區(qū)姿勢,以及,在第二條件期間,將所述用戶的所述第一身體部位相對于所述顯示器的位置和所述用戶的所述第二身體部位相對于所述顯示器的位置解釋成控制所述計算系統(tǒng)的指向姿勢。在這樣的示例中,所述方法可附加地或替換地包括響應于接收來自所述用戶的命令而從所述第一條件轉變到所述第二條件。在這樣的示例中,所述方法可附加地或替換地包括響應于接收來自在所述計算系統(tǒng)上執(zhí)行的應用的指令而從所述第一條件轉變到所述第二條件。在這樣的示例中,所述方法可附加地或替換地包括響應于識別到所述第二身體部位相對于所述顯示器的距離已減小到低于閾值而從所述第一條件轉變到所述第二條件。在這樣的示例中,所述方法可附加地或替換地包括在所述第二條件期間,在所述顯示器上可視地指示所述顯示器和從所述第一身體部位起延伸通過所述第二身體部位的線的交點。以上描述的示例中的任何一個或全部可按任何合適的方式被組合在各實現(xiàn)中。
在又一示例中,提供了一種校準自然用戶界面(nui)相機相對于顯示器的六自由度(6dof)姿態(tài)的方法,所述方法包括從所述nui相機接收從校準角度對環(huán)境進行成像的校準視頻,所述校準視頻設置所述顯示器和一個或多個特征。在這樣的示例中,所述方法可附加地或替換地包括根據(jù)所述校準視頻三維地建模所述環(huán)境的三維圖,所述環(huán)境的所述三維圖定義所述顯示器在所述環(huán)境內的6dof姿態(tài)以及所述一個或多個特征中的每一者在所述環(huán)境內的三維位置。在這樣的示例中,所述方法可附加地或替換地包括從所述nui相機接收從操作角度對所述環(huán)境進行成像的主視頻,所述主視頻設置所述一個或多個特征,并可附加地或替換地包括基于所述一個或多個特征的操作透視圖,在所述環(huán)境的三維圖內尋找所述nui相機的6dof姿態(tài)。以上描述的示例中的任何一個或全部可按任何合適的方式被組合在各實現(xiàn)中。