<menu id="kei0a"><strong id="kei0a"></strong></menu>
  • <menu id="kei0a"></menu>
  • <dd id="kei0a"></dd>
  • <menu id="kei0a"><strong id="kei0a"></strong></menu>
    科技魔方

    微軟專利分享HoloLens通過光線投射與遠距離對象進行交互的方法

    AR/VR

    2021年12月23日

      允許用戶在AR/VR應用中與3D對象進行自然交互具有優勢,因為它對應于用戶與現實世界中對象的交互方式。但是,與手臂夠不著的3D對象交互可能十分困難。對于這種情況,特別的“超自然”交互方法可能更為適合。

      另外,盡管近距離交互可以用手直接操縱全息圖來實現,但用戶必須能夠與距離用戶較遠的全息圖進行交互。理想情況下,這種遠距離交互應該以某種方式與近距離交互體驗相結合,并且應該對當前的目標方向和選擇狀態有明確的啟示。

      在名為“Holographicpalm raycasting for targeting virtual objects”的專利申請中,微軟提出了一種用于通過光線投射來與遠距離對象交互的方法。

      光線投射是各種超自然交互方法常用的方式。例如,可以從用戶的手部或頭部投射各種虛擬光線,從而便于用戶與遠處對象進行交互或顯示為手臂夠不著的對象。

      在微軟的構思發明中,當用戶張開手掌并對準自己前方時,光線或光束從用戶手掌發出,從而用于支持遠處對象交互。例如,當張開手掌時,光線可以通過虛線可視化。當光線指向虛擬顯示對象時,顯示光標,例如環形光標。用戶可以執行選擇手勢,例如輕敲,從而選擇他們當前瞄準的項目。這時,光線的外觀可以發生變化。例如,當光標從環形變為點時,光線本身可以顯示為實線。光標變化可以二進制,或可以是模擬。一旦選擇了對象,用戶可以使用用于直接操縱近端對象的相同操縱手勢來操縱對象。

      在一個實現中,光線的投射方式可以是:通過對用戶肩部和/或肘部的位置進行建模,然后通過手部追蹤技術,通過用戶建模的手臂關節和手部追蹤手掌關節投射光線。然后,用戶可以將手放在其側面或前方進行瞄準。

      圖1示出了示例頭戴式顯示設備10。頭戴式顯示設備10包括以可佩戴在用戶頭部周圍的框架12,其支持位于用戶眼睛附近的透明顯示組件。頭戴式顯示設備10可以使用增強現實技術來實現虛擬顯示圖像和真實世界背景的同時瀏覽。所以,頭戴式顯示設備10可以經由透明顯示器14生成虛擬圖像。透明顯示器14包括單獨的右眼和左眼顯示器14R和14L,并且可以是完全或部分透明。透明顯示器14可以采用任何合適的形式,例如波導管或棱鏡,其配置為接收生成的圖像并將圖像指向佩戴者的眼睛。

      頭戴式顯示設備10同時包括一個附加的透明光學組件16,其位于透明顯示器14和佩戴者看到的真實環境之間??刂破?8操作地耦合到透明光學組件16和其他顯示組件??刂破?8包括一個或多個邏輯設備和一個或多個計算機存儲設備,存儲邏輯設備可執行的指令,以實現頭戴式顯示設備10的功能。頭戴式顯示設備10同時可以包括各種其他組件,例如二維圖像攝像頭20(例如可見光攝像機和/或紅外攝像機)和深度成像組件22,以及未示出的其他組件,包括但不限于揚聲器、麥克風、加速度計、陀螺儀、磁強計和溫度傳感器等。

      在一個實現中,深度成像組件22可包括右立體攝像頭和左立體攝像頭。來自兩個攝像頭的時間分辨圖像可以相互注冊并組合以產生深度分辨視頻。

      在一個實現中,“結構光”深度攝像頭可配置為投射具有許多離散特征(例如線或點)的結構紅外照明。攝像頭可配置成對從場景反射的結構化照明成像?;诔上駡鼍暗母鱾€區域中相鄰特征之間的間隔,可以構建場景的深度映射。

      在一個實現中,“飛行時間”(TOF)深度攝像頭可包括配置成將脈沖紅外照明投射到場景上的光源??梢耘渲脙蓚€攝像頭來檢測從場景反射的脈沖照明。

      增強現實功能可能基于鉸接式手部交互。對于近端獨享,可利用直接交互,由此可將手視為直接操縱全息圖。在一個示例中,全息圖遠離用戶,例如大于基于臂長的閾值??梢杂嬎阌脩艋蛴脩舻难由觳糠峙c預期目標之間的距離。通過這種方式,可以將相對距離與閾值距離進行比較,以確定預期目標相對于用戶視為“近”(在可及范圍內)還是“遠”(不可及)。對于遠距離對象,可以賦予用戶“超自然”能力,以便他們可以與遠距離全息圖交互,無需“走向”全息圖。

      在一個實現中,可以通過發射光線的方式來允許用戶對遠距離虛擬對象進行定位、選擇和操作。對于這種情況,VR系統經常是通過控制器發射光束的方式來進行實現。對于增強現實,可以把相同的心智模型和用戶體驗組合到一組直觀的界面控件中,例如直接在用戶手掌發射光線。

      這種基于手的光線投射示例如圖所示。用戶的左手255和右手260以開放式構象表示。第一光線265顯示為源自用戶左手255的手掌,描繪為終止于選擇光標270的虛線。第二光線275顯示為源自用戶右手260的手掌,描繪為終止于選擇光標280的虛線。與以前的模型相比,這種光線投射提供了眾多優勢,例允許使用注視投射來指向對象,然后使用用戶的手來控制動作的方法。直接從手部施放可以實現更直觀的瞄準和精細控制。通過使用手掌,用戶同時保留了用手指操縱目標對象的自由。

      圖3顯示了增強現實環境中光線投射的示例方法300。在310,方法300包括在諸如頭戴式顯示器的顯示設備上呈現一個或多個虛擬對象。一個或多個虛擬對象可以在沉浸式環境中渲染,并且可以由虛擬對象渲染機進行變換,以根據頭戴式顯示器的位置和方向修改渲染虛擬對象的位置、大小、形狀或角度。每個渲染的虛擬對象可以呈現在相對于顯示設備的環境中的對應位置。另外,可實時連續修改渲染虛擬對象,以根據頭戴式顯示器的變化位置和方向保持渲染虛擬對象的適當透視圖和配置。在這方面,如果用戶靠近渲染的虛擬對象,其相對距離將更接近用戶。類似地,如果用戶遠離渲染的虛擬對象,其相對距離將顯示得離用戶更遠。

      當識別出預期目標時,用戶可以使用選定的交互方法移動(例如重新定位)、變換(例如,縮放、旋轉、傾斜、拉伸、扭曲等)、操縱或刪除渲染對象,甚至創建新對象。

      在320,方法300包括從深度攝像頭接收關于環境的信息。例如,從深度攝像頭接收的信息可用于確定環境邊界(例如墻、天花板、地板、窗、門等)的位置和大小,以及環境中真實世界對象的位置、大小和方向。

      在330,方法300包括確定顯示設備在環境中的位置。顯示設備的位置可以基于從深度照攝像頭接收的信息。當包括在頭戴式顯示器中時,顯示設備的位置可進一步基于一個或多個附加傳感器組件(例如方向傳感器和/或位置傳感器)接收到的信息,從而促進生成與頭戴式顯示器的方向和位置以及與用戶感知視場相對應的追蹤數據。

      在340,方法300包括基于頭戴式顯示器的位置推斷用戶手臂的關節的位置。用戶手臂的關節可以是肩部、肘部或手腕,例如。在一個示例中,用戶手臂的關節可能對頭戴式顯示器的深度攝像頭不可見,因此3D位置可以推斷關節的位置。例如,基于人體工程學的指標可用于根據已知頭部位置預測用戶肩部和/或肘部的位置??梢源_定用戶肩部和/或肘部的代碼模型。

      在一個示例中,用戶可執行校準練習,以根據頭戴式顯示器的六自由度位置確定用戶肩部和肘部的可能位置范圍。諸如用戶手部位置的附加信息可進一步告知用戶肩部或肘部的位置。

      在350,方法300包括基于從深度照攝像頭接收到的信息確定用戶手的位置。在一個實施例中,頭戴式顯示器可配置為分析與用戶對應的深度映射的像素,以便確定每個像素對應于用戶身體的哪個部分。

      在一個實現中,機器學習可用于為每個像素分配身體部位索引和/或身體部位概率分布。機器學習方法參考從先前訓練的已知姿勢集合中學習的信息來分析用戶。

      對應于用戶手部的點云可以進一步處理以揭示手的骨骼亞結構,并識別用戶的手的組件,例如腕關節、手指關節、相鄰的手指節段、指關節、手掌、背等。通過分析各種手關節和/或節段中的位置變化,可以確定成像手的操作、動作或手勢。

      在360,方法300包括基于用戶手臂關節的位置和用戶手的位置從用戶手的一部分投射光線。例如,頭戴式顯示器可以生成和/或接收用戶手臂關節的三維坐標和用戶手的三維坐標。頭戴式顯示器實際配置為延伸一條射線,其端點位于用戶手臂關節的位置并穿過用戶手的部分。例如,可以為肩部和/或肘部以及手掌、手腕、關節等生成線。然后可以基于所述位置和方向投射光線。在一個示例中,用戶手臂長度的校準可以簡化算法。

      投射光線的長度可以是有限,也可以是無限。對于有限長度的光線,可以光標、圖標或其他合適的顯示對象的形式指示光線的遠端。光標可用于指向虛擬對象。有限射線的長度可基于用戶偏好、環境的尺寸、環境中虛擬對象的位置等。用戶可通過預定手勢使射線變長或變短。另外或者,隨著光線接近虛擬對象,光線的長度可能會增加或減少。

      圖4A-4D顯示了各種光線投射模式的圖示。

      名為“Holographic palm raycasting for targeting virtual objects”的微軟專利最初在2021年8月提交,并在日前由美國專利商標局公布。

    +1

    來源:映維網

    推薦文章

    肉H文老师好紧好大好爽
    <menu id="kei0a"><strong id="kei0a"></strong></menu>
  • <menu id="kei0a"></menu>
  • <dd id="kei0a"></dd>
  • <menu id="kei0a"><strong id="kei0a"></strong></menu>