微软专利分享图像重投影方法,减少HoloLens图像显示延迟
(映維網Nweon 2022年03月17日)AR頭顯可以基于用戶的頭部姿勢呈現虛擬圖像,以便虛擬對象看起來是錨定到周圍物理環境中的固定位置。佩戴者的頭部姿勢同時可用于重新投影虛擬圖像,以補償虛擬圖像渲染時間和虛擬圖像顯示時間之間頭部姿勢的變化。例如,可以基于初始頭部姿勢(例如在渲染虛擬圖像時或之前確定的頭部姿勢)渲染虛擬圖像,然后基于更新的頭部姿勢(例如在渲染虛擬圖像之后感測的頭部姿勢)重新投影虛擬圖像。
渲染和顯示時間之間的延遲的來源不盡相同,例如從圖形處理單元向顯示器傳輸虛擬圖像之間的時間。當虛擬圖像從遠程設備傳輸到顯示虛擬圖像的顯示器時,與傳輸相關的延遲或會更大。另外,由于讀出數據和發射形成虛擬圖像的光所需的時間,虛擬圖像的顯示本身會導致延遲。
在名為“Manipulator-based image reprojection”的專利申請中,微軟介紹了一種減少延遲的方法。具體來說,發明主要描述了一種圖像重投影方法。
在一個示例中,虛擬圖像可以基于用戶手部位置或用戶操縱的輸入設備的位置進行呈現。用戶的手部或由用戶操縱的輸入設備可以稱為“操縱器”,而基于操縱器位置渲染的虛擬圖像可以稱為“操縱器附加內容”或“操縱器附加”。
操縱器的使用可能會在操縱器附加內容的渲染和顯示時間之間引入額外的延遲,例如由于處理操縱器位置、更新場景圖和/或其他與模擬相關的動作。所述延遲和其他延遲可能會導致操縱器附加內容似乎落后于操縱器的移動,操縱器移動和操縱器附加內容的移動之間的脫節在增強現實體驗中可能尤其明顯,而這會減損用戶的混合現實體驗。
圖1A-1B示出了包括操縱器附加內容的圖像100的重投影。如下所述,通過重投影圖像100產生的重投影圖像經由顯示器104呈現在頭顯設備102。圖像100包括虛擬圍欄106和虛擬手部模型108形式的機械手附加內容。其中,虛擬手部模型108顯示在根據佩戴用戶手部移動而更新的位置。在渲染圖像100時,用戶手部的位置允許系統根據在渲染時或之前確定的手部位置而在位置112渲染手部模型108。但在渲染圖像100之后,用戶手部的位置以及用戶頭部的姿勢發生變化。為了補償渲染圖像100后用戶110的運動,系統可以根據之后確定的用戶頭部姿勢重新投影圖像。
圖1B顯示了通過重投影圖像100產生的重投影圖像114。重新投影的圖像114經由顯示器104呈現在頭顯102。作為用戶手部位置變化的結果,手部模型108顯示在更新位置116。但基于用戶的頭部姿勢重新投影圖像100在重新投影的圖像114中產生偽影。在這個例子中,重投影產生了一個導致虛擬柵欄106變形的孔118,并省略了本來應該顯示在重投影圖像114中的圖像內容。例如,孔118可能是由手部模型108遮擋虛擬圍欄106造成。一般來說,諸如操縱器附加內容的大幅運動或快速運動等因素可能會在基于頭部姿勢的重投影生成圖像中產生偽影。由于用戶可以相對容易地感知它們,孔118和其他偽影會減損用戶的混合現實體驗。
微軟提出的專利正是為了解決所述問題。圖2示出了一個示例數據處理管道200,通過所述管道可以分別重新投影機械手附加內容和非機械手附加內容。在所描繪的示例中,管道200接收第一渲染圖像202,第一渲染圖像202包括與參考幀關聯且未附加的內容。管道200進一步接收包括與操縱器參考幀相關聯的內容的第二渲染圖像204。操縱器參考幀可與用戶手部和/或由用戶操縱的輸入設備相關聯。例如,輸入設備可以是手持式控制器,。
基于用戶的頭部姿勢重新投影第一渲染圖像202,從而產生第一重新投影圖像206。頭部姿勢可以以任何合適的方式確定。作為一個示例,頭顯設備可包括運動傳感系統,以輸出佩戴用戶的頭部姿勢或用于確定頭部姿勢的數據。
可以以任何適當的方式執行第一渲染圖像202的重投影。作為一個示例,第一渲染圖像202的像素p.sub.render的位置可以根據以下內容重新投影:p.sub.latest=(X.sub.latest*X.sup.-1.sub.render)p.sub.render,其中p.sub.latest是像素的最終重新投影位置,X.sub.latest是在第一渲染圖像的渲染時間之后確定的頭部姿勢,而X.sup-1.sub.render則是在第一個渲染圖像的渲染時間或之前確定的頭部姿勢的inverse。在一個示例中,X.sub.latest*X.sup-1.sub.render可以是表示能夠相乘的仿射變換的矩陣(例如4乘以4)。可以對第一渲染圖像202的任意適當數量的像素進行重投影,以產生第一重投影圖像206。在一個示例中,可以對第一渲染圖像202的每個像素進行重投影,從而產生第一重投影圖像206。
基于用戶頭部姿勢和操縱器的姿勢重新投影第二渲染圖像204,從而產生第二重新投影圖像208。如上所述,集成在頭顯設備中的運動傳感系統或任何其他合適的機制可用于確定頭部姿勢。同樣,可以以任何合適的方式確定操縱器的姿勢。作為一個示例,頭顯設備可包括用于捕獲代表操縱器的圖像數據的成像系統,然后處理圖像數據以確定操縱器姿勢。如果操縱器是手,可以使用手部追蹤技術來確定操縱器姿勢。在其他示例中,操縱器可以是包括集成運動傳感系統的輸入設備。在所述示例中,可基于來自輸入設備運動傳感系統的輸出來確定操縱器姿勢。
作為一個示例,第二渲染圖像204的像素prender可以根據以下內容重新投影:p.sub.latest=(X.sub.latest*M.sub.latest*M.sup.-1.sub.render*X.sup.-l.sub.-render)p.sub.latest,其中p.sub.latest是像素的最終重新投影位置,X.sub.latest是在第二個渲染圖像的渲染時間之后確定的頭部姿勢,M.sub.latest是在第二個渲染圖像的渲染時間之后確定的操縱器姿勢,M.sup-1.sub.render是在第二個渲染圖像的渲染時間或之前確定的操縱器姿勢的inverse,X.sup-1.sub.render是在第二個渲染圖像的渲染時間或之前確定的頭部姿勢的inverse。
在一個示例中,X.sub.latest、M.sub.latest、M.sup-1.sub.render和X.sup-1.sub.render可以是表示可以相乘的仿射變換的矩陣(例如,4乘以4)。可以對第二渲染圖像204的任何適當數量的像素進行重投影,以產生第二重投影圖像208。在一個示例中,第二渲染圖像204的每個像素可以重投影以產生第二重投影圖像208。
在重投影之后,合成第一和第二重投影圖像206和208,從而產生合成圖像210。構圖可以包括任何合適的圖像處理步驟。合成圖像210包括與第一重投影圖像206中的參考幀相關聯的重投影內容,以及與第二重投影圖像208中的操縱器參考幀相關聯的重投影內容。
然而,與僅基于頭部姿勢重投影機械手附加內容的重投影管道相比,合成圖像210不包括重投影過程產生的偽影。通過重新投影分別包括和不包括操縱器附加內容的單獨圖像,可以減輕虛擬圖像(例如第一渲染圖像202中的虛擬柵欄)的遮擋,進而減少或消除重新投影偽影。
另外,可以通過基于渲染操縱器附加內容之后確定的操縱器姿勢執行重投影來減少操縱器附加內容的移動中的延遲,從而增強用戶的混合現實體驗沉浸感。
在一個示例中,可以基于操縱器的姿勢更新表示圖像中運動的運動向量。作為一個示例,在將包含非操縱器附加內容的圖像與包含操縱器附加內容的一個或多個圖像合成時,可以基于操縱器姿勢更新運動向量,例如通過一個或多個矩陣變換。操縱器姿勢可以在合成時間或合成時間之前確定。
基于操縱器姿勢更新運動向量可以通過捕獲在運動向量的初始生成之后發生的操縱器運動,在對應于運動向量的像素中產生更具代表性的運動指示。以這種方式更新的運動矢量可用于任何合適的目的,例如重投影。另外,可以以任何合適的方式獲得運動向量,例如通過從呈現操縱器附加內容的應用程序接收或請求運動向量,和/或通過從兩個或多個圖像之間的運動導出運動向量。
圖4示出了示例性頭顯400。在增強現實實現中,顯示器402可以呈現世界鎖定的增強現實對象。隨著頭顯設備400的姿勢改變,鎖定的增強現實對象看起來都會隨著用戶的視角而移動。所以,即便頭顯設備400的姿勢改變,世界鎖定的增強現實對象看起來依然保持在物理空間中的固定位置。
成像系統412可以以任何合適的形式收集周圍物理空間的圖像數據,例如圖像和視頻。由成像系統412收集的圖像數據可用于測量周圍物理空間的物理屬性。盡管示例圖僅示出了三個圖像傳感器412A-412C,但成像系統可以實現任何適當數量的圖像傳感器。作為示例,成像系統412可以包括一對灰階攝像頭,其配置為在單個顏色通道中收集圖像數據。
可選地,成像系統412可以包括一個或多個彩色攝像頭,其配置為在可見光譜中的一個或多個彩色通道(例如RGB)中收集圖像數據;可選地,成像系統412可以包括一個或多個配置為收集深度數據的深度攝像頭。在一個示例中,深度數據可以采用二維深度映射的形式。其中,二維深度映射具有多個深度像素,每個深度像素指示從對應的深度攝像頭到周圍物理空間中的對應表面的深度。深度攝像頭可以采用任何合適的形式,例如飛行時間深度攝像頭或結構光深度攝像頭。
機載計算機404可以使用來自成像系統412的數據來檢測運動。在一個示例中,頭顯設備400可以通過經由捕捉操縱器運動的成像系統412獲取圖像數據來捕捉佩戴者執行的操縱器運動。在一個示例中,頭顯設備400可以基于經由成像系統412獲取的圖像數據來制定鉸接式手部追蹤數據。頭顯設備400同時可以通過成像系統412對輸入設備進行成像。機載計算機404可以使用來自成像系統412的數據來確定方向/位置和定向數據,從而在真實環境中實現頭顯設備400的位置/運動追蹤。
IMU 414可以配置為向機載計算機404提供頭顯設備400的位置和/或方向數據。在一個實現中,來自成像系統412和IMU 414的位置和方向數據可結合使用以確定頭顯設備400的位置和方向。在又一實施例中,可以通過視覺慣性SLAM來計算頭顯設備400的姿勢。
圖5示出的重投影流程圖方法可以由頭顯設備400實現。
在502,方法500包括接收包括與參考幀相關聯的內容的第一渲染圖像。例如,參考幀可以與頭顯設備或其他顯示設備的用戶相關聯。接收第一渲染圖像可以包括接收503表示第一渲染圖像中的運動的第一多個運動矢量。在504,方法500包括接收包括與操縱器參考幀相關聯的內容的第二渲染圖像。操縱器參考幀506可對應于用戶的手和用戶操作的輸入設備中的一個或多個。第二渲染圖像可以包括508個與對應于左操縱器的第一操縱器參考幀相關聯的內容,以及與對應于右操縱器的第二操縱器參考幀相關聯的內容。接收第二渲染圖像還可以包括接收509表示第二渲染圖像中的運動的第二多個運動矢量。
在510,方法500包括基于用戶的頭部姿勢重新投影第一渲染圖像,從而產生第一重新投影圖像。重投影第一渲染圖像可包括基于頭部姿勢重投影511第一多個運動向量。在512,方法500包括基于用戶的頭部姿勢和操縱器的姿勢重新投影第二渲染圖像,從而產生第二重新投影圖像。重投影可以包括調整圖像中一個或多個像素的位置,例如通過矩陣變換)。第二渲染圖像可以基于514在第二渲染圖像的渲染時的第一操縱器姿勢以及在第一姿勢之后確定的操縱器的第二姿勢來重新投影。重投影第二渲染圖像可包括515基于頭部姿勢和操縱器的姿勢重投影第二多個運動向量。
在一個示例中,第二渲染圖像可以包括與對應于左操縱器和右操縱器之一的第一操縱器參考幀相關聯的內容。可以基于用戶的頭部姿勢以及左操縱器和右操縱器之一的姿勢重新投影第二渲染圖像。在516,方法500可以包括接收第三渲染圖像,第三渲染圖像包括與對應于左操縱器和右操縱器中的另一個的第二操縱器參考幀相關聯的內容。接下來,基于用戶的頭部姿勢以及左操縱器和右操縱器中的另一個的姿勢重新投影第三渲染圖像,從而產生第三重投影圖像。
在518,方法500包括合成重新投影的圖像,從而產生合成圖像。在520,方法500包括基于最近確定的頭部姿勢重新投影合成圖像。在522,方法500包括輸出合成圖像以供顯示。
相關專利:Microsoft Patent | Manipulator-based image reprojection
名為“Manipulator-based image reprojection”的微軟專利申請最初在2020年8月提交,并在日前由美國專利商標局公布。
總結
以上是生活随笔為你收集整理的微软专利分享图像重投影方法,减少HoloLens图像显示延迟的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烟熏的腊肉能包粽子吗?
- 下一篇: 什么才是真正的云办公什么才是真正的云办公