本申請要求于2014年9月17日提交的、標題為“TECHNOLOGIES FOR ADJUSTING PERSPECTIVE OF A CAPTURED IMAGE FOR DISPLAY”的序列號為14/488,516的美國實用新型專利申請的優先權。
背景技術:
增強現實系統通過將虛擬的角色和對象投射到物理位置中來融合真實世界和虛擬世界,從而允許沉浸式的體驗和新穎的交互模型。特別地,在一些增強現實系統中,可以將虛擬的角色和對象插入到所捕獲的真實世界環境的圖像中(例如,通過將虛擬角色的二維或三維渲染覆蓋在所捕獲的真實世界環境的圖像或視頻流上)。在一些系統中,在所捕獲的圖像中所識別出的物理對象可以被與該物理對象相關聯的虛擬對象所替代。例如,可以在所捕獲的圖像中識別出經識別的車輛,并且用動畫或類似卡通的車輛對其進行替代。
已經在靜態計算設備和移動計算設備兩者中實現了增強現實系統。在一些移動增強現實系統中,移動計算設備的相機(例如,位于顯示器反面的智能電話相機)捕獲真實世界環境的圖像。接著,增強現實系統對所捕獲的圖像進行增強現實的修改,并且在移動計算設備的顯示器中顯示經增強的圖像(例如,實時地)。以這樣的方式,用戶能夠看到符合他或她的實際的真實世界環境的虛擬世界。然而,因為用戶和移動計算設備的相機具有真實世界環境的不同的視角,所以沉浸式的體驗由于受阻礙的視覺流而受到損害。例如,從用戶的視角,真實世界的對象(例如,在移動計算設備的邊緣處的那些對象)在增強現實渲染中是重復的。
附圖說明
在附圖中作為示例而非限制示出了在本文中所描述的概念。為了說明的簡單和清楚,在圖中所示出的元素不一定是按比例繪制的。在適當地考慮的情況下,可以在附圖間重復附圖標記,以指示對應的或類似的元素。
圖1是用于調整所捕獲的圖像的視角以供顯示的移動計算設備的至少一個實施例的簡化框圖;
圖2是由圖1的移動計算設備所建立的環境的至少一個實施例的簡化框圖;
圖3是用于調整所捕獲的圖像的視角以供圖1的移動計算設備來顯示的方法的至少一個實施例的簡化流程圖;
圖4是用于生成圖1的移動計算設備的真實世界環境的后投影的方法的至少一個實施例的簡化流程圖;
圖5是在執行圖4的方法期間用戶拿著圖1的移動計算設備的簡化示圖;
圖6是用于生成圖1的移動計算設備的真實世界環境的后投影的方法的至少一個實施例的簡化流程圖;
圖7-8是示出了各種角度關系的用戶拿著圖1的移動計算設備的簡化示圖;
圖9是圖1的移動計算設備的真實世界環境的簡化示圖;
圖10是用戶拿著圖1的移動計算設備并且將沒有經調整的視角的所捕獲的對應的圖像顯示在移動計算設備上的示圖;
圖11是用戶拿著圖1的移動計算設備并且將具有憑借圖3的方法的經調整的視角的所捕獲的對應的圖像顯示在移動計算設備上的示圖。
具體實施方式
盡管本公開的概念容易受到各種修改和可替代的形式的影響,但其具體的實施例已經作為示例在附圖中被示出并且將在本文中詳細地描述。然而,應當理解的是,沒有打算將本公開的概念限制至所公開的特定的形式,而相反,目的是覆蓋與本公開和所附權利要求相一致的所有修改、等同物、和替代物。
在說明書中對“一個實施例”、“實施例”、“說明性實施例”等的引用指示所描述的實施例可以包括特定的特征、結構、或特性,但每個實施例可以或可以不一定包括該特定的特征、結構、或特性。此外,這樣的短語不一定指的是同一實施例。此外,當結合實施例來描述特定的特征、結構、或特性時,所主張的是結合其他實施例(無論其是否進行了明確地描述)實現這樣的特征、結構、或特性也在本領域技術人員的知識范圍內。額外地,應當理解的是,以“至少一個A、B和C”的形式包括在列表中的項目可以意味著(A);(B);(C);(A和B);(B和C);或者(A、B和C)。類似地,以“A、B或C中的至少一個”的形式列出的項目可以意味著(A);(B);(C);(A和B);(B和C);或者(A、B和C)。
在一些情況下,可以以硬件、固件、軟件或其任何組合來實現所公開的實施例。還可以將所公開的實施例實現為由一個或多個瞬時性或者非瞬時性機器可讀(例如,計算機可讀)存儲介質所實行或存儲在其上的指令,所述指令可以由一個或多個處理器來讀取或執行。機器可讀存儲介質可以被實施為用于以能夠由機器讀取的形式存儲或發送信息的任何存儲設備、機制、或其他物理結構(例如,易失性或非易失性存儲器、媒體盤、或其他介質設備)。
在附圖中,可以以具體的布置和/或順序來示出一些結構或方法特征。然而,應當理解的是,這樣的具體的布置和/或順序不是必需的。相反,在一些實施例中,可以以與在說明性附圖中所示出的不同的方式和/或順序來布置這樣的特征。額外地,將結構或方法特征包含在特定的附圖中不意味著暗示在所有實施例中都需要這樣的特征,而在一些實施例中,這樣的特征可以不被包括,或者可以與其他特征進行組合。
現在參考圖1,示出了用于調整所捕獲的圖像的視角以供顯示的移動計算設備100。在使用中,如在下文中更加詳細地描述的,移動計算設備100被配置為捕獲移動計算設備100的用戶的圖像和移動計算設備100的真實世界環境的圖像。移動計算設備100還分析所捕獲的用戶的圖像來確定用戶的眼睛相對于移動計算設備100的定位。如在下文中所討論的,通過這樣做,移動計算設備100可以確定用戶到動計算設備100的距離,并且識別/檢測在所捕獲的圖像中用戶的眼睛的位置。額外地,移動計算設備100確定在所捕獲的真實世界的環境中的一個或多個對象(例如,在所捕獲的場景中的主要對象和/或其他對象)相對于移動計算設備100的距離。例如,如在下文中所描述的,取決于特定的實施例,移動計算設備100可以分析所捕獲的真實世界環境的圖像、利用深度或距離感測數據、或者以其他方式確定對象的相對距離。移動計算設備100基于真實世界的對象相對于移動計算設備100的距離、用戶的眼睛相對于移動計算設備100的定位、以及一個或多個設備參數來確定真實世界環境到移動計算設備100的顯示器120的后投影。如在下文中所討論的,可以將后投影實施為后投影圖像、可用于生成后投影圖像的一組數據(例如,像素值)、和/或指示對應的后投影圖像的其他數據。如在下文中所討論的,設備參數可以包括例如:移動計算設備100的相機的焦距、顯示器120或者移動計算設備100本身的大小、移動計算設備100的組件相對于彼此或參考點的位置、和/或與移動計算設備100相關聯的其他相關信息。移動計算設備100基于所確定的后投影來顯示圖像,并且通過這樣做,可以應用虛擬對象、角色、和/或場景,或者以其他方式修改圖像以用于增強現實。應當理解的是,在本文中所描述的技術產生后投影至顯示器120的圖像,以使得在顯示器120上可見的圖像直接地或者接近直接地映射至真實世界,從而使得用戶感覺如同她在通過窗戶看著真實世界環境一樣。即,在說明性實施例中,所顯示的圖像包括從與用戶相同的視角觀看時與移動計算設備100所遮擋的內容相同的內容。
可以將移動計算設備100實施為能夠執行在本文中所描述的功能的任何類型的計算設備。例如,可以將移動計算設備100實施為智能電話、蜂窩電話、可穿戴計算設備、個人數字助理、移動互聯網設備、平板計算機、上網本、筆記本計算機、超極本、膝上型計算機、和/或任何其他移動計算/通信設備。如在圖1中所示出的,說明性移動計算設備100包括處理器110、輸入/輸出(“I/O”)子系統112、存儲器114、數據存儲116、相機系統118、顯示器120、一個或多個傳感器122、以及通信電路124。當然,在其他實施例中,移動計算設備100可以包括其他或額外的組件,例如在一般的計算設備中常常發現的那些組件(例如,各種輸入/輸出設備和/或其他組件)。額外地,在一些實施例中,可以將說明性組件中的一個或多個組件并入另一個組件或者以其他方式形成另一個組件。例如在一些實施例中,可以將存儲器114或其部分并入處理器110。
處理器110可以被實施為能夠執行在本文中所描述的功能的任何類型的處理器。例如,處理器110可以被實施為單核或多核處理器、數字信號處理器、微控制器、或者其它處理器或處理/控制電路。類似地,存儲器114可以被實施為能夠執行在本文中所描述的功能的任何類型的易失性或非易失性存儲器或數據存儲。在操作中,存儲器114可以存儲在移動計算設備100的操作期間所使用的各種數據和軟件,例如,操作系統、應用、程序、庫、和驅動程序。存儲器114經由I/O子系統112通信地耦合至處理器110,其中I/O子系統112可以被實施為促進與處理器110、存儲器114、以及移動計算設備100的其它組件的輸入/輸出操作的電路和/或組件。例如,I/O子系統112可以被實施為或者以其他方式包括:存儲器控制器集線器、輸入/輸出控制集線器、固件設備、通信鏈路(即,點對點鏈路、總線鏈路、導線、電纜、光導、印刷電路板跡線等)、和/或促進輸入/輸出操作的其它組件和子系統。在一些實施例中,I/O子系統112可以形成片上系統(SoC)的一部分,并且連同處理器110、存儲器114、以及移動計算設備100的其它組件一起被包含在單個集成電路芯片上。
數據存儲116可以被實施為針對數據的短期存儲或長期存儲而配置的任何類型的設備或多個設備,例如,存儲器設備和電路、存儲器卡、硬盤驅動器、固態驅動器、或其他數據存儲設備。在說明性實施例中,數據存儲116可以存儲移動計算設備100的設備參數130。應當理解的是,特定的設備參數130可以取決于特定的實施例而不同。設備參數130可以包括例如,與移動計算設備100、顯示器120、和/或移動計算設備100的另一個組件的大小/形狀相關聯的信息或數據、與移動計算設備100的一個或多個相機相關的固有參數或其他數據(例如,焦距、基本點、變焦信息等)、移動計算設備100的組件相對于參考點的位置(例如,標識移動計算設備100的組件的相對位置的坐標系統)、和/或與移動計算設備100相關聯的其他信息。額外地,在一些實施例中,數據存儲116和/或存儲器114可以存儲在移動計算設備100的操作期間有用的各種其他數據。
相機系統118包括被配置為捕獲圖像或視頻(即,圖像或幀的集合)以及能夠執行在本文中所描述的功能的多個相機。應當理解的是,可以將相機系統118的相機中的每個相機實施為適用于捕獲圖像的任何外圍設備或集成的設備,例如,靜物相機、視頻相機、或能夠捕獲視頻和/或圖像的其他設備。在說明性實施例中,相機系統118包括面對用戶的相機126和面對環境的相機128。如在下文中所指示的,可以將面對用戶的相機126、面對環境的相機128、和/或相機系統118的其他相機中的每個相機實施為二維(2D)相機(例如,RGB相機)或三維(3D)相機。這樣的3D相機包括例如,深度相機、雙焦相機、和/或以其他方式能夠生成深度圖像、通道、或流的相機。例如,一個或多個相機可以包括紅外(IR)投影儀和IR傳感器,以使得IR傳感器通過分析由IR投影儀投影在場景上的光圖案來估計場景中的對象的深度值。在另一個實施例中,相機系統118的相機中的一個或多個相機包括至少兩個鏡頭和對應的傳感器,它們被配置為從場景的至少兩個不同的視點來捕獲圖像(例如,立體相機)。
如在下文中更加詳細地描述的,面對用戶的相機126被配置為捕獲移動計算設備100的用戶的圖像。特別地,面對用戶的相機126捕獲用戶的臉的圖像,所述圖像可以被分析以確定用戶的眼睛相對于移動計算設備100(例如,相對于面對用戶的相機126或者相對于移動計算設備100的另一個參考點)的位置。面對環境的相機128捕獲移動計算設備100的真實世界環境的圖像。在說明性實施例中,面對用戶的相機126和面對環境的相機128位于移動計算設備100的相反側,并且因此具有相反方向的視場。特別地,面對用戶的相機126與顯示器120在移動計算設備100的相同側,以使得面對用戶的相機126可以在用戶查看顯示器120時捕獲她的圖像。
可以將移動計算設備100的顯示器120實施為信息可以在其上被顯示給移動計算設備100的用戶的任何類型的顯示器。此外,顯示器120可以被實施為或者以其他方式使用任何合適的顯示技術,所述顯示技術包括例如,液晶顯示(LCD)、發光二極管(LED)顯示、陰極射線管(CRT)顯示、等離子顯示、觸摸屏顯示、和/或其他顯示技術。盡管在圖1的說明性實施例中僅僅示出了一個顯示器120,但在其他實施例中,移動計算設備100可以包括多個顯示器120。
如在圖1中所示出的,移動計算設備100可以包括被配置為收集當執行在本文中所描述的功能時有用的數據的一個或多個傳感器122。例如,傳感器122可以包括可以用于確定對象與移動計算設備100的距離的深度傳感器。額外地,在一些實施例中,傳感器122可以包括加速度計、陀螺儀、和/或磁力計以確定移動計算設備100的相對朝向。在各種實施例中,傳感器122可以被實施為或者以其他方式包括例如,接近度傳感器、光學傳感器、光傳感器、音頻傳感器、溫度傳感器、運動傳感器、壓電傳感器、和/或其他類型的傳感器。當然,移動計算設備100還可以包括被配置為促進傳感器122的使用的組件和/或設備。
通信電路124可以被實施為能夠支持移動計算設備100與其他遠程設備通過網絡(未示出)的通信的任何通信電路、設備、或其集合。例如,在一些實施例中,移動計算設備100可以將在本文中所描述的功能中的一個或多個功能(例如,對后投影的確定)卸載至遠程計算設備。通信電路124可以被配置為使用任何一個或多個通信技術(例如,無線或有線通信)和相關聯的協議(例如,以太網、WiMAX等)來影響這樣的通信。
現在參考圖2,在使用中,移動計算設備100建立了用于調整所捕獲的圖像的視角以供在移動計算設備100的顯示器120上顯示的環境200。如在下文中所討論的,移動計算設備100利用面對用戶的相機126來捕獲用戶的圖像,并且利用面對環境的相機128來捕獲移動計算設備100的真實世界環境的圖像。此外,移動計算設備基于由面對用戶的相機126所捕獲的圖像來確定用戶的眼睛相對于移動計算設備100的定位,并且基于由面對環境的相機128所捕獲的圖像來確定真實世界環境中的對象相對于移動計算設備100的距離。接著,移動計算設備100生成真實世界對象到顯示器120的后投影,并且基于所生成的后投影來在顯示器120上顯示對應的圖像(例如,包括增強現實修改)。
移動計算設備100的說明性環境200包括圖像捕獲模塊202、眼睛追蹤模塊204、對象距離確定模塊206、圖像投影模塊208、以及顯示模塊210。可以將環境200的模塊中的每個模塊實施為硬件、軟件、固件、或其組合。例如,在實施例中,可以將環境200的模塊中的每個模塊實施為電路(例如,圖像捕獲電路、眼睛追蹤電路、對象距離確定電路、圖像投影電路、以及顯示電路)。額外地,在一些實施例中,說明性模塊中的一個或多個模塊可以形成另一個模塊的一部分。例如,在一些實施例中,圖像投影模塊208可以形成顯示模塊210的一部分。
圖像捕獲模塊202控制相機系統118(例如,面對用戶的相機126和面對環境的相機128)來在相應的相機126、128的視場內捕獲圖像。例如,如在本文中所描述的,面對用戶的相機126被配置為捕獲用戶的臉的圖像(例如,以供眼睛檢測/追蹤)。應當理解的是,移動計算設備100可以檢測和/或追蹤用戶的眼睛中的一個或兩個眼睛,并且因此,在說明性實施例中,由面對用戶的相機126所捕獲以供移動計算設備100分析的圖像包括用戶的眼睛中的至少一個眼睛。盡管有時出于描述的簡單和清楚的目的關于用戶的單個眼睛而在本文中討論了眼睛追蹤和分析,但在本文中所描述的技術等同地應用至對用戶的兩個眼睛的檢測/追蹤。額外地,如在本文中所討論的,面對環境的相機128被配置為捕獲移動計算設備100的真實世界環境的圖像。盡管為了簡單起見,這樣的所捕獲的圖像常常在本文中被描述為具有單個主要對象,但應當理解的是,所捕獲的場景可以包括任何數量的主要對象(獨特的或者以其他方式重要的對象)。
眼睛追蹤模塊204確定用戶的眼睛相對于移動計算設備100(例如,相對于面對用戶的相機126或另一個參考點)的位置/定位。通過這樣做,眼睛追蹤模塊204檢測在由面對用戶的相機126所捕獲的圖像中一個或多個人的眼睛的存在,并且確定在所捕獲的圖像(即,與眼睛相關聯的圖像的一部分)中待追蹤的眼睛的位置。為此,眼睛追蹤模塊204可以使用任何合適的技術、算法、和/或圖像濾波器(例如,邊緣檢測和圖像分割)。在一些實施例中,眼睛追蹤模塊204確定在所捕獲的圖像中用戶的臉的位置,并且利用用戶的臉的位置來例如減小被分析以定位用戶的眼睛的所捕獲的圖像的區域。額外地,在一些實施例中,眼睛追蹤模塊204分析用戶的眼睛以確定用戶的眼睛的各種特性/特征(例如,閃光位置、虹膜位置、瞳孔位置、虹膜-瞳孔對比、眼睛的大小/形狀、和/或其他特性),從而確定用戶的視線方向。例如可以使用用戶的視線方向來確定用戶是否在看著顯示器120、在由面對環境的相機所捕獲的場景中識別用戶的視線所指向的對象(例如,主要對象)、確定用戶的眼睛的相對位置或定位(例如,在三維空間中)、和/或出于其他目的。額外地,在一些實施例中,眼睛追蹤模塊204還可以確定用戶的頭的朝向或者以其他方式確定用戶的頭的姿勢。
如在下文中所描述的,在確定用戶的眼睛相對于移動計算設備100的定位時,眼睛追蹤模塊204確定用戶眼睛相對于移動計算設備100(例如,相對于面對用戶的相機126或者另一個參考點)的距離。應當理解的是,眼睛追蹤模塊204可以利用任何合適的算法和/或技術來這樣做。例如,在一些實施例中,可以將面對用戶的相機126實施為深度相機或者能夠生成與在所捕獲的場景中的對象的距離相對應的數據(例如,深度流或者深度圖像)的其他3D相機。在另一個實施例中,眼睛追蹤模塊204可以結合用戶的臉的已知的近似的大小來使用臉部檢測,以估計用戶的臉與移動計算設備100的距離。在另一個實施例中,眼睛追蹤模塊204可以分析與用戶的眼睛相對應的所捕獲的區域,以找到從用戶的角膜的光的反射(即,閃光)和/或瞳孔。基于那些反射,眼睛追蹤模塊204可以確定用戶的眼睛相對于移動計算設備100的位置或定位(例如,在三維空間中)。此外,在一些事實例中,眼睛追蹤模塊204可以結合在所捕獲的圖像中用戶的眼睛的位置而利用由傳感器122所生成的數據(例如,深度/距離信息)來確定用戶的眼睛相對于移動計算設備100的位置。
對象距離確定模塊206確定由面對環境的相機128所捕獲的真實世界環境中的一個或多個對象相對于移動計算設備100(相對于面對環境的相機128或者相對于移動計算設備100的另一個參考點)的距離。如在上文中所指示的,在面對環境的相機128的視場內并且因此由面對環境的相機128所捕獲的真實世界環境可以包括任何數量的對象。從而,取決于特定的實施例,對象距離確定模塊206可以確定對象中的每個對象與移動計算設備100的距離或者對象的子集(例如,單個對象)與移動計算設備100的距離。例如,在一些實施例中,對象距離確定模塊206識別針對其確定距離的所捕獲的對象中的主要對象。這樣的主要對象可以是例如用戶的視線所指向的對象或者場景中的主對象。在一些實施例中,為了簡單起見,對象距離確定模塊206假定場景中的對象中的每個對象距離移動計算設備100大約相同的距離。此外,在一些實施例中,對象距離確定模塊206假定或者以其他方式將對象與移動計算設備100的距離設置為預先定義的距離。例如,預先定義的距離可以是顯著地大于面對環境的相機128的焦距的值、近似無窮的值(可用數空間中的最大數)、或者另一個預先定義的距離值。為了便于討論,表示無窮的數在本文中可以簡單地被稱為“無窮”。
應當理解的是,對象距離確定模塊206可以使用任何合適的技術和/或算法來確定真實世界環境中的對象相對于移動計算設備100的距離。例如,在一些實施例中,對象距離確定模塊206可以使用在上文中所描述的關于確定(即,由眼睛追蹤模塊204)用戶相對于移動計算設備100的距離的技術和算法中的一個或多個技術和算法。特別地,可以將面對環境的相機128實施為深度相機或者生成用于確定所捕獲的圖像中對象的距離的深度數據的其他3D相機。額外地或可替代地,在一些實施例中,對象距離確定模塊206可以參考關于某些對象的大小的所存儲的數據來估計對象與移動計算設備100的距離。在另一個實施例中,對象距離確定模塊206可以利用由傳感器122所生成的數據(例如,深度/距離信息)來確定對象相對于移動計算設備100的距離和/或位置。當然,在一些實施例中,對象距離確定模塊206可以將特定對象的距離指定為預先定義的值。例如,對象距離確定模塊206可以響應于確定對象的距離超過預先定義的閾值而假定對象是無窮遠的。即,在一些實施例中,可以將距移動計算設備100至少閾值距離(例如,四米)的對象視為例如好像它們距移動計算設備100無窮遠。從這樣的實施例可以理解,運算偏差可以變得可忽略不計(例如,基于十米的距離和二十米的距離的運算可以得出大約相同的結果)。如在下文中所描述的,可以使用對象相對于移動計算設備100(例如,相對于相機128)的距離來確定對象相對于移動計算設備100的位置,并且生成真實世界環境的后投影(例如,基于設備參數130)。
圖像投影模塊208生成由面對環境的相機128所捕獲的真實世界環境到顯示器120的后投影。在說明性實施例中,圖像投影模塊208基于以下參數來生成后投影,所述參數包括:真實世界環境中的對象相對于移動計算設備100的距離(例如,無窮、預先定義的距離、或者經確定的距離)、用戶的眼睛相對于移動計算設備100的定位/位置、和/或移動計算設備100的設備參數(例如,相機126、128的固有參數、移動計算設備100或顯示器120的大小等)。如在上文中所指示的,通過將真實世界環境后投影至顯示器120(即,朝向用戶的眼睛)而將移動計算設備100所遮擋的可視內容示出在顯示器120上,以使得用戶感覺到好像她在通過窗口看。換句話說,由于邊緣周圍的對象不在所顯示的圖像中重復而保持了視覺連續性。應當理解的是,圖像投影模塊208可以利用任何合適的技術和/或算法來生成后投影圖像,以供在移動計算設備100的顯示器120上顯示。如在下文中所描述的,圖4-8示出了用來這樣做的說明性實施例。
顯示模塊210在顯示器120上渲染圖像以供移動計算設備100的用戶查看。例如,顯示模塊210可以基于由圖像投影模塊208所生成的后投影來在顯示器120上渲染圖像。當然,在一些實施例中,后投影可以不是在傳統意義上“投影”在顯示器120上的;相反,可以生成對應的圖像以用于在顯示器120上渲染。此外,如在上文中所討論的,在一些實施例中,顯示模塊210可以修改后投影圖像以包括針對增強現實的虛擬的對象、角色、和/或環境,并且在顯示器120上渲染經修改的圖像。
通信模塊212處理在移動計算設備100與遠程設備之間通過對應的網絡的通信。例如,在一些實施例中,移動計算設備100可以與遠程計算設備進行通信以將在本文中所描述的移動計算設備100的功能中的一個或多個功能(例如,用于確定后投影圖像或者修改針對增強現實的圖像)卸載至遠程計算設備。當然,可以由遠程計算設備來發送并且由移動計算設備100的通信模塊212來接收與這樣的分析相關聯的相關數據。
現在參考圖3,在使用中,移動計算設備100可以執行用于調整所捕獲的圖像的視角以供移動計算設備100顯示的方法300。說明性方法300開始于方框302和310。在方框302中,移動計算設備100利用面對用戶的相機126來捕獲用戶的臉的圖像。取決于特定的實施例,面對用戶的相機126可以連續地捕獲圖像(例如,作為視頻流)以供分析或者對用戶輸入(例如,按下按鈕)進行響應。在方框304中,移動計算設備100在所捕獲的圖像中識別用戶的眼睛。如在上文中所討論的,移動計算設備100可以利用任何合適的技術和/或算法(例如,邊緣檢測和/或圖像分割)來這樣做。此外,取決于特定的實施例,移動計算設備100可以確定和利用用戶的眼睛中的一個或兩個眼睛的位置。
在方框306中,移動計算設備100確定用戶的眼睛相對于面對用戶的相機126或移動計算設備100的另一個參考點的定位。通過這樣做,移動計算設備100確定用戶的距離,或者更加特別地,確定用戶的眼睛相對于面對用戶的相機126的距離。如在上文中所討論的,移動計算設備100可以基于以下數據來進行這樣的確定,例如,深度圖像或者由面對用戶的相機126(即,如果面對用戶的相機126是深度相機或者其他3D相機)所生成的其他深度信息、用戶視線信息、由傳感器122所生成的距離信息、設備參數130、和/或其他相關數據。可以結合在所捕獲的圖像中用戶的眼睛的位置來使用用戶相對于面對用戶的相機126的距離,以確定用戶的眼睛相對于面對用戶的相機126或移動計算設備100的其他參考點的定位。應當理解的是,設備參數130可以包括與移動計算設備100的組件相對于彼此的位置相關的信息,從而建立具有作為原點的參考點的坐標系統。被選擇為原點的參考點可以取決于特定的實施例而不同,并且可以例如是面對用戶的相機126的位置、面對環境的相機128的位置、顯示器120的中心、或者另一個合適的位置。
如圖所示,在圖3的說明性實施例中,方框302-308與方框310-314并行發生;然而,在其他實施例中,可以串行地執行那些方框。在方框310中,移動計算設備100利用面對環境的相機128來捕獲移動計算設備100的真實世界環境的圖像。類似于面對用戶的相機126,取決于特定的實施例,面對環境的相機128可以連續地捕獲圖像(例如,作為視頻流)以供分析或者對諸如按下按鈕之類的用戶輸入進行響應。例如,在一些實施例中,用戶可以提供一些輸入以開始執行方法300,在方法300中,移動計算設備100執行方框302和310中的每個方框。如在上文中所指示的,在說明性實施例中,面對環境的相機128位于面對用戶的相機126反面,以使得面對環境的相機128具有類似于用戶的視場(即,在相同的大致方向上)。
在方框312中,移動計算設備100確定對應的真實世界環境中的一個或多個對象相對于面對環境的相機128或移動計算設備的另一個參考點的距離。如在上文中所討論的,移動計算設備100可以基于以下數據來進行這樣的確定,例如,由面對環境的相機122(即,如果面對用戶的相機126是深度相機或者其他3D相機)所生成的深度信息、由傳感器122所生成的距離信息、設備參數130、和/或其他相關數據。此外,針對其確定了相對距離的對象可以取決于特定的實施例而不同。例如,在上文中所討論的,在一些實施例中,移動計算設備100可以確定所捕獲的圖像中的每個對象或每個主要對象的相對距離,然而在其他實施例中,移動計算設備100可以僅僅確定所捕獲的圖像中的主對象(用戶的視線所指向的、或者以其他方式被確定為主要對象的對象)的相對距離。此外,如在上文中所指示的,在方框314中,移動計算設備100可以將對象的距離設置為預先定義的距離。
在方框316中,移動計算設備100基于以下參數生成真實世界環境到顯示器120的后投影,所述參數包括:真實世界對象相對于移動計算設備100的距離(例如,經確定的或者預先定義的距離)、用戶的眼睛相對于移動計算設備100的定位、和/或一個或多個設備參數130(例如,相機126、128的固有參數、移動計算設備100或顯示器120的大小等)。如在上文中所指示的,移動計算設備100可以使用用于這樣做的任何合適的算法和/或技術來生成后投影圖像。例如,在一些實施例中,移動計算設備100可以通過執行如在圖4中所示出的方法400來生成后投影,而在其他實施例中,移動計算設備100可以通過執行如在圖6中所示出的方法600來生成后投影。當然,應當理解的是,圖4和圖9的實施例是作為說明性實施例來提供的并且不限制在本文中所描述的概念。
在方框318中,在已經確定了后投影之后,移動計算設備100基于所生成的后投影而在顯示器120上顯示圖像。通過這樣做,在方框320中,移動計算設備100可以如在上文中所討論的出于增強現實的目的而修改后投影或者對應的圖像。例如,移動計算設備100可以將虛擬角色、對象、和/或其他虛擬特征并入所構建的/所生成的后投影圖像中以用于在顯示器120上渲染。當然,在一些實施例中,移動計算設備100可以針對增強現實或其他目的而不修改后投影,以使得觀看者真實地感受到好像顯示器120是她可以通過其看到移動計算設備100所遮擋的真實世界環境的窗口。
現在參考圖4,說明性方法400開始于方框402,在方框402中,移動計算設備100確定是否生成后投影。如果生成后投影,則在方框404中,移動計算設備100確定從用戶的眼睛504通過顯示器120的下一顯示像素506到真實世界對象508的光線502,如在圖5中所示出的。應當理解的是,組成“下一”顯示像素506的顯示像素506可以取決于特定的實施例而不同。在說明性實施例中,移動計算設備100將在方法400的執行期間還沒有針對其確定光線502的顯示像素506選擇為“下一”顯示像素506。還應當理解的是,在其他實施例中,移動計算設備100可以確定通過顯示器120的另一個子區域(即,例如不同于顯示像素的在不同的粒度等級上的子區域)的光線502。
如在上文中所討論的,移動計算設備100的設備參數130可以包括與移動計算設備100的各種組件的相對位置相關的數據,并且建立例如具有作為原點的某參考點的三維坐標系統。例如,在一些實施例中,面對環境的相機128可以是原點。應當理解的是,顯示器上的每個像素/點都位于相對于面對環境的相機128的某點處。從而,在一些實施例中,移動計算設備100基于在上文中所描述的分析來確定用戶的眼睛504和對象508的對應的三維坐標。應當理解的是,在說明性實施例中,具備有用戶的眼睛504、顯示像素506、和對象508的坐標或相對位置,移動計算設備100確定從用戶的眼睛504通過顯示像素506中的每個像素到對象508的對應的光線502。
在方框406中,移動計算設備100識別由面對環境的相機128所捕獲的、與對應的光線502所指向的真實世界對象的定位/位置510相對應的真實世界環境的圖像的圖像像素。例如,基于諸如面對環境的相機128的固有參數(例如,焦距)之類的設備參數130以及對象508的真實世界坐標或相對位置,移動計算設備100可以確定如何將由面對環境的相機128所捕獲的圖像從真實世界環境投影至所捕獲的圖像的坐標。在這樣的實施例中,移動計算設備100可以由此識別與光線502所指向的真實世界坐標(即,位置510)相關聯的圖像像素。
在方框408中,移動計算設備100確定是否剩余任何顯示像素506。如果剩余,方法400返回至方框404,在方框404中,移動計算設備100確定從用戶的眼睛504通過下一顯示像素506到真實世界對象508的光線502。換句話說,移動計算設備100針對顯示器120的每個顯示像素506(或者顯示器120的其他子區域)而確定從用戶的眼睛504通過對應的顯示像素506到真實世界環境中的對象508的光線502,并且針對每個經確定的光線502而識別與由對應的光線502所指向的真實世界環境中的對象的位置相對應的、由面對環境的相機128所捕獲的真實世界環境的圖像的圖像像素。在方框410中,移動計算設備100從所識別的圖像像素構建圖像以用于在移動計算設備100上顯示。在說明性實施例中,移動計算設備100在所生成的圖像的合適的圖像坐標中生成具有經識別的圖像像素的圖像。換句話說,移動計算設備100可以將可視內容從每個對應的光線502所指向的位置后投影至光線502穿過其的顯示器120上的對應的點。
現在參考圖6,在使用中,移動計算設備100可以執行用于生成如在上文中所指示的移動計算設備100的真實世界環境的后投影的方法600。說明性方法600開始于方框602,在方框602中,移動計算設備100確定是否生成后投影。如果確定生成后投影,則在方框604中,移動計算設備100基于用戶706相對于面對用戶的相機126(或者移動計算設備100的其他參考點)的距離704和設備參數130來確定從用戶的視角的移動計算設備100的角度大小,如參考圖7-8所示出的。如在上文中所指示的,設備參數130可以包括例如,移動計算設備100和/或移動計算設備100的組件的大小、形狀、和其他特性。應當理解的是,對象的角度大小指示從距對象已知距離的參考點(例如,觀察者或相機)包含對象所需要的觀察角度。在說明性實施例中,從視角點的對象(例如,移動計算設備)的角度大小是根據來確定的,其中,δ是對象的角度大小,d是對應的對象的實際大小,而D是對應的對象與視角點(即,從其處確定角度大小的點)之間的距離。然而,在其他實施例中,可以以其他方式來確定對象的角度大小。應當理解的是,盡管有時可以關于二維而在本文中討論了角度大小,但在本文中所描述的技術也可以應用至三維(例如,對水平角度大小和豎直角度大小兩者進行考慮、確定跨對象的對角線的角度大小、將三維大小投影成二維的、應用在上文中所提供的角度大小公式的三維等價物等)。
在方框606中,移動計算設備100確定真實世界對象710相對于用戶706的距離708。在說明性實施例中,移動計算設備100基于用戶706到面對用戶的相機126的距離704(見圖3的方框308)、以及真實世界對象710到面對環境的相機128(見圖3的方框312)或移動計算設備100的其他參考點的距離712來進行這樣的確定。通過這樣做,在一些實施例中,移動計算設備100可以假定用戶706、移動計算設備100、以及對象710是相對共線的,并且對先前計算的兩個距離求和以確定用戶706與真實世界對象710(例如,如果對象遠離用戶)之間的距離708。在其他實施例中,移動計算設備100可以采用更加復雜的算法來確定用戶706與真實世界對象710之間的距離。例如,移動計算設備100可以基于以下參數來進行這樣的確定,所述參數包括:移動計算設備100、用戶706(或者更加特別地,用戶的眼睛)、以及對象710彼此或者到特定的參考點(例如,經定義的原點)的相對位置、移動計算設備100和用戶706與移動計算設備100之間以及移動計算設備100與對象710之間的已知的距離704、712(例如,基于三角形的屬性)。
在方框608中,移動計算設備100確定從用戶的視角由移動計算設備100所遮擋的真實世界對象710的區域714。在說明性實施例中,移動計算設備100基于從用戶的視角的移動計算設備100的角度大小以及真實世界對象710相對于用戶706的距離708來進行這樣的確定。
在方框610中,移動計算設備100基于從用戶的視角所遮擋的真實世界對象的區域714以及真實世界對象距面對環境的相機128的距離712來確定面對環境的相機128的經校正的變焦大小。換句話說,移動計算設備100確定利用面對環境的相機128捕獲與從用戶的視角由移動計算設備100所遮擋的對象710的區域714相對應的圖像所需要的面對環境的相機128的變焦大小。如在上文中所討論的,設備參數130可以包括相機128的固有參數(例如,焦距、圖像投影參數等)。應當理解的是,在一些實施例中,可以使用這樣的設備參數130來識別與捕獲到相機128某一距離的環境的特定的區域相對應的變焦大小。在一些實施例中,確定變焦大小以使得面對環境的相機128捕獲這樣的圖像,其僅僅具有與來自從用戶的視角由移動計算設備100所遮擋的對象的區域714的對象710的可視內容(例如,對象710的特征)相關聯的圖像像素。
在說明性實施例的方框612中,為了確定經校正的變焦大小,移動計算設備100確定與從用戶的視角所遮擋的真實世界對象710的區域714相對應的、從面對環境的相機128的視角的真實世界對象710的區域718的角度大小716。移動計算設備100可以基于例如設備參數130和/或對應的幾何學來進行這樣的確定。即,在一些實施例中,移動計算設備100可以基于區域714的大小、距離712、以及在上文中所提供的角度大小公式來確定角度大小716。應當理解的是,在一些實施例中,區域718和區域714是相同的區域,而在一些實施例中,那些原因可以在某種程度上不同。類似地,經校正的變焦大小可以偏離生成區域718所需要的精確的變焦(例如,基于技術的、硬件的、和/或空間的限制)。在方框614中,移動計算設備100生成具有經校正的變焦大小的圖像以供在移動計算設備100上顯示。例如,在一些實施例中,移動計算設備100可以利用從同一視角但是具有不同的變焦大小的面對環境的相機128來捕獲新的圖像。在其他實施例中,移動計算設備100可以例如修改由面對環境的相機128所捕獲的原始圖像,以生成具有期望的變焦大小和其他特性的圖像。
現在參考圖9-11,示出了移動計算設備100的真實世界環境900(例如,見圖9)和用戶拿著計算設備100(見圖10-11)的簡化視圖。如在上文中所討論的,真實世界環境900可以由面對環境的相機128來捕獲并且在顯示器120上渲染。此外,在利用增強現實系統的情況下,可以修改所捕獲的圖像以將例如虛擬角色、對象、或其他特征并入所捕獲的圖像中以供在移動計算設備100上顯示。在沒有利用圖3的方法300的實施例中(即,如果在移動計算設備100的顯示器120上顯示所捕獲的圖像或增強現實的經修改的版本),則在顯示器120上所顯示的圖像902包括在移動計算設備100的邊緣周圍的真實世界環境900中也可見的真實世界對象904(例如,見圖10)。換句話說,對用戶可見的某些真實世界對象904在所顯示的圖像902中是重復的,從而阻礙了視覺流。然而,在利用了圖3的方法300的實施例中,在顯示器120上所顯示的圖像906包括從與用戶相同的視角觀察的、與由移動計算設備100所遮擋的內容相同的可視內容。因為保持了所顯示的圖像906與背景真實世界環境900之間的視覺連續性,因此用戶感覺到好像她在通過窗口看著真實世界環境900一樣。
示例
以下提供了在本文中所公開的技術的說明性示例。技術的實施例可以包括在下文中所描述的任何一個或多個示例以及在下文中所描述的示例的任何組合。
示例1包括一種用于調整所捕獲的圖像的視角以供顯示的移動計算設備,所述移動計算設備包括:顯示器;相機系統,其包括第一相機和第二相機,所述相機系統用于(i)利用所述第一相機捕獲所述移動計算設備的用戶的第一圖像,并且(i)利用所述第二相機捕獲所述移動計算設備的真實世界環境的第二圖像;眼睛追蹤模塊,其用于基于所捕獲的第一圖像來確定所述用戶的眼睛相對于所述移動計算設備的定位;對象距離確定模塊,其用于基于所捕獲的第二圖像來確定所述真實世界環境中的對象相對于所述移動計算設備的距離;圖像投影模塊,其用于基于以下參數來生成由所述第二相機所捕獲的所述真實世界環境對所述顯示器的后投影,所述參數包括:所述真實世界環境中的所述對象相對于所述移動計算設備的經確定的距離、所述用戶的眼睛相對于所述移動計算設備的經確定的定位、以及所述移動計算設備的至少一個設備參數。
示例2包括示例1的主題,并且其中,生成所述后投影包括:針對所述顯示器的每個像素而確定從所述用戶的眼睛通過對應的顯示像素到所述真實世界環境中的所述對象的光線;針對所確定的每個光線而識別與對應的光線所指向的所述真實世界環境中的所述對象的定位相對應的、所述真實世界環境的所述所捕獲的第二圖像的圖像像素;以及基于所識別的圖像像素來構建后投影圖像以用在所述移動計算設備的所述顯示器上顯示。
示例3包括示例1和示例2中的任何一個的主題,并且其中,生成所述后投影包括:確定從所述用戶的角度的所述移動計算設備的角度大小;確定所述真實世界環境中的所述對象相對于所述用戶的距離;確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的區域;基于由所述移動計算設備所遮擋的所述對象的經確定的區域以及所述對象相對于所述移動計算設備的距離來確定所述第二相機的經校正的變焦大小;以及基于所述經校正的變焦大小來生成后投影圖像以供在所述移動計算設備的所述顯示器上顯示。
示例4包括示例1-3中的任何一個的主題,并且其中,確定所述經校正的變焦大小包括確定與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的、從所述第二相機的視角的所述對象的區域的角度大小。
示例5包括示例1-4中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的圖像所需要的變焦大小。
示例6包括示例1-5中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲僅僅具有與來自從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域的所述對象的特征相對應的圖像像素的圖像所需要的變焦大小。
示例7包括示例1-6中的任何一個的主題,并且其中,確定從所述用戶的視角的所述移動計算設備的所述角度大小包括基于所述用戶的眼睛相對于所述移動計算設備的距離和所述移動計算設備的大小來確定從所述用戶的視角的所述移動計算設備的角度大小;確定所述對象相對于所述用戶的距離包括基于所述用戶的眼睛相對于所述移動計算設備的距離和所述對象相對于所述移動計算設備的距離來確定所述對象相對于所述用戶的距離;以及確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域包括基于從所述用戶的視角的所述移動計算設備的所述角度大小和所述對象相對于所述用戶的距離來確定由所述移動計算設備所遮擋的所述對象的所述區域的所述角度大小。
示例8包括示例1-7中的任何一個的主題,并且其中,角度大小,δ,是根據來確定的,其中,d是對應的對象的實際大小而D是所述對應的對象與點之間的距離,所述點是從其確定所述角度大小的視角。
示例9包括示例1-8中的任何一個的主題,并且其中,捕獲所述用戶的所述第一圖像包括捕獲所述用戶的臉的圖像;并且確定所述用戶的眼睛相對于所述移動計算設備的定位包括識別所述用戶的眼睛在所述用戶的臉的所述圖像中的位置。
示例10包括示例1-9中的任何一個的主題,并且其中,確定所述用戶的眼睛相對于所述移動計算設備的定位包括確定所述用戶的眼睛距所述移動計算設備的距離。
示例11包括示例1-10中的任何一個的主題,并且其中,確定所述用戶的眼睛相對于所述移動計算設備的定位包括確定所述用戶的眼睛相對于所述第一相機的定位;并且確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離包括確定所述對象相對于所述第二相機的距離。
示例12包括示例1-11中的任何一個的主題,并且其中,所述第一相機具有與所述第二相機的視場關于所述顯示器方向相反的視場。
示例13包括示例1-12中的任何一個的主題,并且其中,確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離包括將所述對象相對于所述移動計算設備的距離設置為預先定義的距離。
示例14包括示例1-13中的任何一個的主題,并且其中,所述預先定義的距離大于所述第二相機的焦距。
示例15包括示例1-14中的任何一個的主題,并且還包括顯示模塊,所述顯示模塊用于基于由所述第二相機所捕獲的所述真實世界環境的所生成的后投影來在所述顯示器上顯示圖像。
示例16包括示例1-15中的任何一個的主題,并且其中,基于所述所生成的后投影來顯示所述圖像包括顯示與被修改為包括增強現實特征的所述后投影相對應的圖像。
示例17包括示例1-16中的任何一個的主題,其中,所述至少一個設備參數包括以下中的至少一個:(i)所述第二相機的焦距、(ii)所述顯示器的大小、(iii)所述移動計算設備的大小、或者(iv)所述移動計算設備的組件相對于參考點的位置。
示例18包括一種用于調整所捕獲的圖像的視角以供在移動計算設備上顯示的方法,所述方法包括:由所述移動計算設備的第一相機捕獲所述移動計算設備的用戶的第一圖像;由所述移動計算設備基于所捕獲的第一圖像來確定所述用戶的眼睛相對于所述移動計算設備的定位;由不同于所述第一相機的所述移動計算設備的第二相機來捕獲所述移動計算設備的真實世界環境的第二圖像;由所述移動計算設備基于所捕獲的第二圖像來確定所述真實世界環境中的對象相對于所述移動計算設備的距離;以及由所述移動計算設備基于以下參數來生成由所述第二相機所捕獲的所述真實世界環境對所述移動計算設備的顯示器的后投影,所述參數包括:所述真實世界環境中的所述對象相對于所述移動計算設備的經確定的距離、所述用戶的眼睛相對于所述移動計算設備的經確定的定位、以及所述移動計算設備的至少一個設備參數。
示例19包括示例18的主題,并且其中,生成所述后投影包括:針對所述顯示器的每個像素而確定從所述用戶的眼睛通過對應的顯示像素到所述真實世界環境中的所述對象的光線;針對所確定的每個光線而識別與對應的光線所指向的所述真實世界環境中的所述對象的定位相對應的、所述真實世界環境的所述所捕獲的第二圖像的圖像像素;以及基于所識別的圖像像素來構建后投影圖像以用在所述移動計算設備的所述顯示器上顯示。
示例20包括示例18和示例19中的任何一個的主題,并且其中,生成所述后投影包括:確定從所述用戶的角度的所述移動計算設備的角度大小;確定所述真實世界環境中的所述對象相對于所述用戶的距離;確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的區域;基于由所述移動計算設備所遮擋的所述對象的經確定的區域以及所述對象相對于所述移動計算設備的距離來確定所述第二相機的經校正的變焦大小;以及基于所述經校正的變焦大小來生成后投影圖像以供在所述移動計算設備的所述顯示器上顯示。
示例21包括示例18-20中的任何一個的主題,并且其中,確定所述經校正的變焦大小包括確定與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的、從所述第二相機的視角的所述對象的區域的角度大小。
示例22包括示例18-21中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的圖像所需要的變焦大小。
示例23包括示例18-22中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲僅僅具有與來自從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域的所述對象的特征相對應的圖像像素的圖像所需要的變焦大小。
示例24包括示例18-23中的任何一個的主題,并且其中,確定從所述用戶的視角的所述移動計算設備的所述角度大小包括基于所述用戶的眼睛相對于所述移動計算設備的距離和所述移動計算設備的大小來確定從所述用戶的視角的所述移動計算設備的角度大小;確定所述對象相對于所述用戶的距離包括基于所述用戶的眼睛相對于所述移動計算設備的距離和所述對象相對于所述移動計算設備的距離來確定所述對象相對于所述用戶的距離;以及確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域包括基于從所述用戶的視角的所述移動計算設備的所述角度大小和所述對象相對于所述用戶的距離來確定由所述移動計算設備所遮擋的所述對象的所述區域。
示例25包括示例18-24中的任何一個的主題,并且其中,角度大小,δ,是根據來確定的,其中,d是對應的對象的實際大小而D是所述對應的對象與點之間的距離,所述點是從其確定所述角度大小的視角。
示例26包括示例18-25中的任何一個的主題,并且其中,捕獲所述用戶的所述第一圖像包括捕獲所述用戶的臉的圖像;并且確定所述用戶的眼睛相對于所述移動計算設備的定位包括識別所述用戶的眼睛在所述用戶的臉的所述圖像中的位置。
示例27包括示例18-26中的任何一個的主題,并且其中,確定所述用戶的眼睛相對于所述移動計算設備的定位包括確定所述用戶的眼睛具所述移動計算設備的距離。
示例28包括示例18-27中的任何一個的主題,并且其中,確定所述用戶的眼睛相對于所述移動計算設備的定位包括確定所述用戶的眼睛相對于所述第一相機的定位;并且確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離包括確定所述對象相對于所述第二相機的距離。
示例29包括示例18-28中的任何一個的主題,并且其中,所述第一相機具有與所述第二相機的視場關于所述顯示器方向相反的視場。
示例30包括示例18-29中的任何一個的主題,并且其中,確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離包括將所述對象相對于所述移動計算設備的距離設置為預先定義的距離。
示例31包括示例18-30中的任何一個的主題,并且其中,所述預先定義的距離大于所述第二相機的焦距。
示例32包括示例18-31中的任何一個的主題,并且還包括顯示模塊,所述顯示模塊用于基于由所述第二相機所捕獲的所述真實世界環境的所生成的后投影來在所述顯示器上顯示圖像。
示例33包括示例18-32中的任何一個的主題,并且其中,基于所述所生成的后投影來顯示所述圖像包括顯示與被修改為包括增強現實特征的所述后投影相對應的圖像。
示例34包括示例18-33中的任何一個的主題,其中,所述至少一個設備參數包括以下中的至少一個:(i)所述第二相機的焦距、(ii)所述顯示器的大小、(iii)所述移動計算設備的大小、或者(iv)所述移動計算設備的組件相對于參考點的位置。
示例35包括移動計算設備,所述移動計算設備包括處理器;以及具有存儲在其中的多個指令的存儲器,其中當由所述處理器執行時,所述指令使得所述移動計算設備執行示例18-34中的任何一個所述的方法。
示例36包括一個或多個機器可讀存儲介質,所述機器可讀存儲介質包括存儲在其上的多個指令,其中響應于被執行,所述多個指令使得移動計算設備執行示例18-34中的任何一個所述的方法。
示例37包括用于調整所捕獲的圖像的視角以供顯示的移動計算設備,所述移動計算設備包括:用于由所述移動計算設備的第一相機來捕獲所述移動計算設備的用戶的第一圖像的單元;用于基于所捕獲的第一圖像來確定所述用戶的眼睛相對于所述移動計算設備的定位的單元;用于由不用于所述第一相機的所述移動計算設備的第二相機來捕獲所述移動計算設備的真實世界環境的第二圖像的單元;用于基于所捕獲的第二圖像來確定所述真實世界環境中的對象相對于所述移動計算設備的距離的單元;用于基于以下參數來生成由所述第二相機所捕獲的所述真實世界環境對所述顯示器的后投影,所述參數包括:所述真實世界環境中的所述對象相對于所述移動計算設備的經確定的距離、所述用戶的眼睛相對于所述移動計算設備的經確定的定位、以及所述移動計算設備的至少一個設備參數。
示例38包括示例37的主題,并且其中,用于生成所述后投影的單元包括:用于針對所述顯示器的每個像素而確定從所述用戶的眼睛通過對應的顯示像素到所述真實世界環境中的所述對象的光線的單元;用于針對所確定的每個光線而識別與對應的光線所指向的所述真實世界環境中的所述對象的定位相對應的、所述真實世界環境的所述所捕獲的第二圖像的圖像像素的單元;以及用于基于所識別的圖像像素來構建后投影圖像以用在所述移動計算設備的所述顯示器上顯示的單元。
示例39包括示例37和示例38中的任何一個的主題,并且其中,用于生成所述后投影的單元包括:用于確定從所述用戶的角度的所述移動計算設備的角度大小的單元;用于確定所述真實世界環境中的所述對象相對于所述用戶的距離的單元;用于確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的區域的單元;用于基于由所述移動計算設備所遮擋的所述對象的經確定的區域以及所述對象相對于所述移動計算設備的距離來確定所述第二相機的經校正的變焦大小的單元;以及用于基于所述經校正的變焦大小來生成后投影圖像以供在所述移動計算設備的所述顯示器上顯示的單元。
示例40包括示例37-39中的任何一個的主題,并且其中,用于確定所述經校正的變焦大小的單元包括用于確定與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的、從所述第二相機的視角的所述對象的區域的角度大小的單元。
示例41包括示例37-40中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲與從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域相對應的圖像所需要的變焦大小。
示例42包括示例37-41中的任何一個的主題,并且其中,所述經校正的變焦大小是利用所述第二相機捕獲僅僅具有與來自從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域的所述對象的特征相對應的圖像像素的圖像所需要的變焦大小。
示例43包括示例37-42中的任何一個的主題,并且其中,用于確定從所述用戶的視角的所述移動計算設備的所述角度大小的單元包括用于基于所述用戶的眼睛相對于所述移動計算設備的距離和所述移動計算設備的大小來確定從所述用戶的視角的所述移動計算設備的角度大小的單元;用于確定所述對象相對于所述用戶的距離的單元包括用于基于所述用戶的眼睛相對于所述移動計算設備的距離和所述對象相對于所述移動計算設備的距離來確定所述對象相對于所述用戶的距離的單元;以及用于確定從所述用戶的視角由所述移動計算設備所遮擋的所述對象的所述區域的單元包括用于基于從所述用戶的視角的所述移動計算設備的所述角度大小和所述對象相對于所述用戶的距離來確定由所述移動計算設備所遮擋的所述對象的所述區域的單元。
示例44包括示例37-43中的任何一個的主題,并且其中,角度大小,δ,是根據來確定的,其中,d是對應的對象的實際大小而D是所述對應的對象與點之間的距離,所述點是從其確定所述角度大小的視角。
示例45包括示例37-44中的任何一個的主題,并且其中,用于捕獲所述用戶的所述第一圖像的單元包括用于捕獲所述用戶的臉的圖像;并且用于確定所述用戶的眼睛相對于所述移動計算設備的定位包括用于識別所述用戶的眼睛在所述用戶的臉的所述圖像中的位置的單元。
示例46包括示例37-45中的任何一個的主題,并且其中,用于確定所述用戶的眼睛相對于所述移動計算設備的定位的單元包括用于確定所述用戶的眼睛距所述移動計算設備的距離的單元。
示例47包括示例37-46中的任何一個的主題,并且其中,用于確定所述用戶的眼睛相對于所述移動計算設備的定位的單元包括用于確定所述用戶的眼睛相對于所述第一相機的定位的單元;并且用于確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離的單元包括用于確定所述對象相對于所述第二相機的距離的單元。
示例48包括示例37-47中的任何一個的主題,并且其中,所述第一相機具有與所述第二相機的視場關于所述顯示器方向相反的視場。
示例49包括示例37-48中的任何一個的主題,并且其中,用于確定所述真實世界環境中的所述對象相對于所述移動計算設備的距離的單元包括用于將所述對象相對于所述移動計算設備的距離設置為預先定義的距離的單元。
示例50包括示例37-49中的任何一個的主題,并且其中,所述預先定義的距離大于所述第二相機的焦距。
示例51包括示例37-50中的任何一個的主題,并且還包括用于基于由所述第二相機所捕獲的所述真實世界環境的所生成的后投影來在所述顯示器上顯示圖像的單元。
示例52包括示例37-51中的任何一個的主題,并且其中,用于基于所述所生成的后投影來顯示所述圖像的單元包括用于顯示與被修改為包括增強現實特征的所述后投影相對應的圖像的單元。
示例53包括示例37-52中的任何一個的主題,其中,所述至少一個設備參數包括以下中的至少一個:(i)所述第二相機的焦距、(ii)所述顯示器的大小、(iii)所述移動計算設備的大小、或者(iv)所述移動計算設備的組件相對于參考點的位置。