TW202304200A - 具有表面和每表面體積的環境模型 - Google Patents

具有表面和每表面體積的環境模型 Download PDF

Info

Publication number
TW202304200A
TW202304200A TW111116835A TW111116835A TW202304200A TW 202304200 A TW202304200 A TW 202304200A TW 111116835 A TW111116835 A TW 111116835A TW 111116835 A TW111116835 A TW 111116835A TW 202304200 A TW202304200 A TW 202304200A
Authority
TW
Taiwan
Prior art keywords
virtual
virtual surface
scene
occupied
generating
Prior art date
Application number
TW111116835A
Other languages
English (en)
Inventor
田口祐一
法比安 藍故斯
Original Assignee
美商元平台技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商元平台技術有限公司 filed Critical 美商元平台技術有限公司
Publication of TW202304200A publication Critical patent/TW202304200A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/06Curved planar reformation of 3D line structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/008Cut plane or projection plane definition

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在一個實施例中,一種方法包括:接收使用一或多個感測器擷取之一場景之感測器資料;基於該感測器資料產生(1)表示該場景中之多個經偵測平坦表面之多個虛擬表面及(2)表示該場景中之物件的經偵測特徵之一點雲;將該點雲中之每一點指派至該多個虛擬表面中之一或多者;基於經指派至該多個虛擬表面之該些點針對該多個虛擬表面中之每一者產生佔用體積;產生包括該多個虛擬表面、該多個虛擬表面中之每一者之該些佔用體積、及該多個虛擬表面之間的一空間關係的一資料儲存區;接收一查詢;以及發送對該查詢之一回應,該回應包括該資料儲存區中之滿足該查詢之複數個虛擬表面的一經識別子集。

Description

具有表面和每表面體積的環境模型
本發明大體上係關於人工實境系統,且詳言之,係關於與模型化環境相關的人工實境系統。
人工實境係在呈現給使用者之前已以某一方式調整之實境形式,其可包括例如虛擬實境(virtual reality;VR)、擴增實境(augmented reality;AR)、混合實境(mixed reality;MR)、混雜實境或其某一組合及/或衍生物。人工實境內容可包括完全生成之內容或與經擷取內容(例如,現實世界相片)組合的生成之內容。人工實境內容可包括視訊、音訊、觸覺反饋或其某一組合,其中之任一者可在單一通道中或在多個通道中(諸如,對檢視者產生三維效應之立體視訊)呈現。人工實境可與例如用於在人工實境中創建內容及/或用於人工實境中(例如,在人工實境中執行活動)之應用程式、產品、配件、服務或其某一組合相關聯。提供人工實境內容之人工實境系統可實施於各種平台上,包括連接至主機電腦系統之頭戴式顯示器(head-mounted display;HMD)、獨立式HMD、行動裝置或計算系統或能夠將人工實境內容提供至一或多個檢視者之任何其他硬體平台。
本文中所描述的特定實施例係關於用於使用表示平坦表面之複數個虛擬表面及每表面三維體積來模型化環境之系統及方法。人類製造的室內及室外場景主要由平坦表面組成。其他非平坦物件,亦即細節,典型地由至少一個平坦表面支撐(例如,桌面上之物件、地板上之椅子,及自天花板懸掛之燈)。因此,場景可經分段成一組虛擬表面,其各自具有表示圍繞平面之細節的三維體積。藉由此類分段,當虛擬表面之經儲存位置資訊與即時同時定位與地圖建構(Simultaneous Localization And Mapping;SLAM)資料之間出現不匹配時,可運用光計算來調節平面相對於對應的空間錨點之位置資訊,此係由於體積表示是相對於平面而定義的。
在特定實施例中,計算裝置可接收使用一或多個感測器擷取之場景之感測器資料。在特定實施例中,該感測器資料可包含影像感測器資料或深度感測器資料。該計算裝置可基於該感測器資料產生表示該場景中之複數個經偵測平坦表面之複數個虛擬表面及表示該場景中之物件之經偵測特徵的點雲。為了產生複數個虛擬表面,該計算裝置可偵測該場景中之複數個平坦表面。在特定實施例中,該計算裝置可對表示該場景中之物件之經偵測特徵的點雲執行基於隨機取樣一致性(RANdom SAmple Consensus;RANSAC)之平面擬合方法,以偵測該場景中之複數個平坦表面。在特定實施例中,該計算裝置可對經接收感測器資料運行機器學習演算法以偵測該場景中之複數個平坦表面。在特定實施例中,該計算裝置可接收指示該場景中之複數個平坦表面中之每一者的使用者輸入,以偵測該場景中之複數個平坦表面。該計算裝置可選擇滿足一或多個條件之複數個平坦表面之子集。該一或多個條件可包含平坦表面之最小所需大小,或平坦表面之所需定向。該計算裝置可針對複數個平坦表面之子集中之每一平坦表面產生虛擬表面。該計算裝置可將該點雲中之每一點指派至複數個虛擬表面中之一或多者。該計算裝置可基於經指派至虛擬表面之點針對複數個虛擬表面中之每一者產生佔用體積。該些佔用體積可相對於虛擬表面來定義。該些佔用體積可為儲存值之一組立體像素。在特定實施例中,該些佔用體積可具有指示佔用之二進位值。在特定實施例中,該些佔用體積可具有指示帶符號距離之浮點值。為了針對虛擬表面產生佔用體積,該計算裝置可判定屬於對應於虛擬表面之頂部上的空間之三維體積柵格中之每一區塊的點雲中之多個點。該計算裝置可基於經判定為在點雲中具有比臨限值多的點之區塊而產生佔用體積。在特定實施例中,該計算裝置可藉由使用點雲中之經指派至虛擬表面之點之子集執行截斷帶符號距離場(Truncated Signed Distance Field;TSDF)融合而針對每一虛擬表面產生佔用體積。該計算裝置可產生資料儲存區,其包含複數個虛擬表面、複數個虛擬表面中之每一者之佔用體積及複數個虛擬表面之間的空間關係。複數個虛擬表面之間的空間關係可由場景圖表示。在特定實施例中,複數個虛擬表面之間的空間關係可由包括圖之任何合適的資料結構表示。在特定實施例中,該資料儲存區可進一步包含複數個虛擬表面中之每一者與對應的空間錨點之空間關係。在特定實施例中,該計算裝置可接收使用一或多個感測器擷取之場景之第二感測器資料。該計算裝置可基於第二感測器資料判定需要更新資料儲存區中之複數個虛擬表面當中的第一虛擬表面與其對應的空間錨點之空間關係。該計算裝置可回應於判定而更新資料儲存區中之第一虛擬表面與其對應的空間錨點之空間關係。虛擬表面之佔用體積之原點可與虛擬表面之原點重合。因此,第一虛擬表面之第一佔用體積之位置可連同第一虛擬表面一起調節。
在特定實施例中,該計算裝置可接收查詢。該查詢可包含用於平坦表面之一或多個條件。用於平坦表面之一或多個條件可包含平坦表面之大小、平坦表面之定向、平坦表面之空集,或與對應於平坦表面之虛擬表面之佔用體積相關聯的語義資訊。該計算裝置可識別資料儲存區中之滿足該查詢中之一或多個條件的複數個虛擬表面之子集。為了識別資料儲存區中之滿足該查詢中之一或多個條件的複數個虛擬表面之子集,該計算裝置可提取資料儲存區中之複數個虛擬表面中之每一者的佔用體積之幾何屬性。該些幾何屬性可包含平面邊界圖、佔用分類圖、高度圖、三維網格表示,或任何合適的幾何屬性。該計算裝置可發送對該查詢之回應。該回應可包含資料儲存區中之滿足該查詢之複數個虛擬表面的經識別子集。
在特定實施例中,該計算裝置可接收使用一或多個感測器擷取之場景之第三感測器資料。該計算裝置可基於第三感測器資料產生表示場景中之經偵測平坦表面之第二虛擬表面,其中該第二虛擬表面不在資料儲存區中。該計算裝置可將點雲中之一或多個點指派至第二虛擬表面。該計算裝置可基於經指派至第二虛擬表面之一或多個點而針對第二虛擬表面產生第二佔用體積。該計算裝置可判定第二佔用體積係與資料儲存區中之第三虛擬表面之第三佔用體積相同。該計算裝置可判定第二佔用體積更接近於第二虛擬表面而非第三虛擬表面。該計算裝置可回應於判定第二佔用體積更接近於第二虛擬表面而非第三虛擬表面,而自資料儲存區刪除第三佔用體積。該計算裝置可將第二虛擬表面及第二虛擬表面之第二佔用體積添加至資料儲存區。
在特定實施例中,該計算裝置可接收使用一或多個感測器擷取之場景之第四感測器資料。該計算裝置可基於第四感測器資料來判定資料儲存區中之第四虛擬表面及第五虛擬表面屬於單個平坦表面。該計算裝置可藉由合併第四虛擬表面及第五虛擬表面來產生第六虛擬表面。該計算裝置可基於經指派至第六虛擬表面之點而產生第六佔用體積。該計算裝置可藉由(1)運用第六虛擬表面來替換第四虛擬表面及第五虛擬表面且(2)運用第六虛擬表面之第六佔用體積來替換第四虛擬表面之第四佔用體積及第五虛擬表面之第五佔用體積來更新資料儲存區。
本文中所揭示之實施例僅為實例,且本發明之範圍不限於這些實例。特定實施例可包括上文所揭示之實施例的組件、元件、特徵、功能、操作或步驟中之全部、一些或無一者。根據本發明之實施例尤其在針對一種方法、儲存媒體、系統及電腦程式產品之所附申請專利範圍中揭示,其中在一個請求項類別中提及之任何特徵,例如方法,亦可在另一技術方案類別(例如系統)中主張。出於僅形式原因而選擇所附申請專利範圍中之依賴性或反向參考。然而,亦可主張由對任何前述請求項之反向故意參考(尤其多個依賴性)產生的任何主題,使得請求項及其特徵之任何組合經揭示且可無關於在所附申請專利範圍中選擇之依賴性而主張。可主張的主題不僅包含如所附申請專利範圍中陳述的特徵之組合且亦包含申請專利範圍中特徵之任何其他組合,其中申請專利範圍中所提及的每一特徵可與任何其他特徵或申請專利範圍中之其他特徵之組合組合。此外,本文中描述或描繪之實施例及特徵中之任一者可在獨立技術方案中及/或在與本文中描述或描繪之任何實施例或特徵或與所附申請專利範圍之特徵中之任一者的任何組合中主張。
1A說明實例人工實境系統100A。在特定實施例中,人工實境系統100A可包含頭戴式裝置104、控制器106及計算裝置108。使用者102可配戴頭戴式裝置104,該頭戴式裝置可將視覺人工實境內容顯示給使用者102。頭戴式裝置104可包括音訊裝置,其可將音訊人工實境內容提供給使用者102。頭戴式裝置104可包括一或多個相機,其可擷取環境之影像及視訊。頭戴式裝置104可包括眼睛追蹤系統以判定使用者102之轉斜距離。頭戴式裝置104可包括麥克風以自使用者102擷取語音輸入。頭戴式裝置104可被稱作頭戴式顯示器(head-mounted display;HMD)。控制器106可包含軌跡墊及一或多個按鈕。控制器106可自使用者102接收輸入,且將輸入中繼至計算裝置108。控制器106亦可將觸覺回饋提供至使用者102。計算裝置108可藉由纜線或無線連接連接至頭戴式裝置104及控制器106。計算裝置108可控制頭戴式裝置104及控制器106以將人工實境內容提供至使用者102且自該使用者接收輸入。計算裝置108可為獨立式主機計算裝置、與頭戴式裝置104整合之機載計算裝置、行動裝置,或能夠將人工實境內容提供至使用者102及自該使用者接收輸入之任何其他硬體平台。
1B說明實例擴增實境系統100B。擴增實境系統100B可包括包含框架112、一或多個顯示器114及計算裝置108之頭戴式顯示器(HMD)110(例如,眼鏡)。顯示器114可為透明或半透明的,允許配戴HMD 110之使用者透過顯示器114看現實世界,同時向使用者顯示視覺人工實境內容。HMD 110可包括可將音訊人工實境內容提供至使用者之音訊裝置。HMD 110可包括一或多個相機,其可擷取環境之影像及視訊。HMD 110可包括眼睛追蹤系統以追蹤配戴HMD 110之使用者的轉斜移動。HMD 110可包括麥克風以自使用者擷取語音輸入。擴增實境系統100B可進一步包括控制器,其包含軌跡墊及一或多個按鈕。控制器可自使用者接收輸入,且將輸入中繼至計算裝置108。控制器亦可將觸覺回饋提供至使用者。計算裝置108可藉由纜線或無線連接連接至HMD 110及控制器。計算裝置108可控制HMD 110及控制器以將擴增實境內容提供至使用者且自使用者接收輸入。計算裝置108可為獨立式主機電腦裝置、與HMD 110整合之機載電腦裝置、行動裝置,或能夠將人工實境內容提供至使用者且自該使用者接收輸入之任何其他硬體平台。
在特定實施例中,計算裝置108可接收使用一或多個感測器擷取之場景之感測器資料。在特定實施例中,該感測器資料可包含影像感測器資料或深度感測器資料。 2說明房間環境中之實例擴增實境應用。作為一實例而非作為限制,在圖2中所說明,使用者正在使用圖1B中所說明的擴增實境系統100B播放擴增實境遊戲。在擴增實境遊戲中,該使用者可控制房間中之表面上之虛擬汽車231。計算裝置108可接收由與頭戴式顯示器110相關聯的相機感測器擷取之房間的影像感測器資料及由與頭戴式顯示器110相關聯的深度感測器擷取之房間的深度感測器資料。在特定實施例中,計算裝置108可接收房間之任何合適的額外感測器資料。儘管本發明描述以特定方式接收環境之感測器資料,但本發明涵蓋以任何適合方式接收環境之感測器資料。
在特定實施例中,計算裝置108可基於感測器資料產生表示場景中之物件的經偵測特徵之點雲。作為一實例而非作為限制,繼續圖2中所說明的先前實例,計算裝置108可基於影像感測器資料及深度感測器資料產生表示房間中之物件的經偵測特徵之點雲。在特定實施例中,計算裝置108可利用複數個影像以產生點雲。計算裝置108亦可利用深度感測器資料。儘管本發明描述以特定方式產生表示環境中之物件的經偵測特徵之點雲,但本發明涵蓋以任何適合方式產生表示環境中之物件的經偵測特徵之點雲。
在特定實施例中,計算裝置108亦可基於感測器資料產生表示場景中之複數個經偵測平坦表面的複數個虛擬表面。為了產生複數個虛擬表面,計算裝置108可偵測場景中之複數個平坦表面。在特定實施例中,計算裝置108可對表示場景中之物件之經偵測特徵的點雲執行基於RANSAC之平面擬合方法,以偵測場景中之複數個平坦表面。在特定實施例中,計算裝置108可對經接收感測器資料運行機器學習演算法以偵測場景中之複數個平坦表面。在特定實施例中,計算裝置108可接收指示場景中之複數個平坦表面中之每一者的使用者輸入,以偵測該場景中之複數個平坦表面。舉例而言,使用者可使用諸如控制器106之介面裝置指示場景中之每一平坦表面的邊界。儘管本發明描述以特定方式偵測環境中之複數個平坦表面,但本發明涵蓋以任何適合方式偵測環境中之複數個平坦表面。
在特定實施例中,計算裝置108可選擇滿足一或多個條件之複數個平坦表面之子集。該一或多個條件可包含平坦表面之最小所需大小,或平坦表面之所需定向。計算裝置108可針對複數個平坦表面之子集中之每一平坦表面產生虛擬表面。作為一實例而非作為限制,繼續圖2中所說明的先前實例,計算裝置108可藉由對表示房間中之物件的經偵測特徵之點雲執行基於RANSAC之平面擬合方法來偵測房間中之平坦表面。計算裝置108偵測用於地板201、牆壁203A及203B、天花板205、桌面表面210、書213之表面及桌子之抽屜手柄217之平坦表面。在經偵測平坦表面當中,計算裝置108可選擇用於地板201、牆壁203A及203B、天花板205及桌面表面210之平坦表面,此係因為這些表面之大小超過臨限值。在特定實施例中,計算裝置可進一步應用除平坦表面之大小以外的一或多個適合條件。計算裝置108可針對選定平坦表面產生虛擬表面。作為另一實例而非作為限制,繼續圖2中所說明的先前實例,計算裝置108可藉由對經接收感測器資料運行機器學習演算法而偵測房間中之平坦表面。在特定實施例中,機器學習模型可識別滿足一或多個條件之平坦表面。在特定實施例中,機器學習模型可識別環境中之所有可偵測平坦表面。在此狀況下,計算裝置108可選擇滿足一或多個條件之經識別平坦表面之子集。計算裝置108可針對經識別平坦表面之選定子集產生虛擬表面。儘管本發明描述以特定方式針對滿足一或多個條件之平坦表面產生虛擬表面,但本發明涵蓋以任何適合方式針對滿足一或多個條件之平坦表面產生虛擬表面。
在特定實施例中,計算裝置108可將點雲中之每一點指派至複數個虛擬表面中之一或多者。計算裝置108可將點雲中之每一點指派至最近虛擬表面。在特定實施例中,計算裝置108可當點雲中之點與虛擬表面之間的距離係在臨限距離內時將該點指派至多於一個虛擬表面。儘管本發明描述以特定方式將點雲中之點指派至虛擬表面,但本發明涵蓋以任何適合方式將點雲中之點指派至虛擬表面。
在特定實施例中,計算裝置108可基於經指派至虛擬表面之點針對複數個虛擬表面中之每一者產生佔用體積。該些佔用體積可相對於虛擬表面來定義。為了針對虛擬表面產生佔用體積,計算裝置108可判定屬於對應於虛擬表面之頂部上的空間之三維體積柵格中之每一區塊的點雲中之多個點。計算裝置108可基於經判定為在點雲中具有比臨限值多的點之區塊而產生佔用體積。在特定實施例中,計算裝置108可藉由使用點雲中之經指派至虛擬表面之點之子集執行截斷帶符號距離場(TSDF)融合而針對每一虛擬表面產生佔用體積。 3說明體積柵格中之實例區塊。圖3出於簡潔目的說明體積柵格中之複數個區塊當中的僅一個區塊300。每一區塊300可包含N×N×N立體像素。立體像素310可不對應於點雲中之點,而立體像素320可對應於點雲中之點。若對應於點雲中之點的多個立體像素320超過臨限值,則區塊300可包括於用於虛擬表面之佔用體積中。對應於區塊中之立體像素當中的點雲中之點的立體像素320之密度或分佈可判定經提取幾何屬性的解析度。稍後描述經提取幾何屬性的細節。儘管本發明以特定方式描述針對複數個虛擬表面中之每一者產生佔用體積,但本發明涵蓋以任何適合方式針對複數個虛擬表面中之每一者產生佔用體積。
在特定實施例中,計算裝置108可產生資料儲存區,其包含複數個虛擬表面、複數個虛擬表面中之每一者之佔用體積及複數個虛擬表面之間的空間關係。複數個虛擬表面之間的空間關係可由場景圖表示。在特定實施例中,複數個虛擬表面之間的空間關係可由包括圖之任何合適的資料結構表示。 4說明用於資料儲存區之實例邏輯結構。資料儲存區400可包含複數個虛擬表面410、420及430。複數個虛擬表面410、420、430中之每一者可與表示佔用體積之一或多個區塊413、423及433相關聯。資料儲存區400亦可包含表示複數個虛擬表面410、420及430之間的空間關係之圖450。儘管本發明描述以特定方式產生包含複數個虛擬表面、複數個虛擬表面中之每一者之佔用體積及複數個虛擬表面之間的空間關係之資料儲存區,但本發明涵蓋以任何適合方式產生包含複數個虛擬表面、複數個虛擬表面中之每一者之佔用體積及複數個虛擬表面之間的空間關係之資料儲存區。
在特定實施例中,資料儲存區400可進一步包含複數個虛擬表面中之每一者與對應的空間錨點之空間關係。作為一實例而非作為限制,資料儲存區400可包含用於複數個虛擬表面410、420及430中之每一者的座標資訊415、425及435。用於虛擬表面之座標可表示虛擬表面與座標系統之原點—用於虛擬表面之空間錨點—的空間關係。在特定實施例中,用於虛擬表面之空間錨點可為任一合適空間錨點,且虛擬表面與其對應的空間錨點之間的空間關係可由任何合適的資料結構表示。儘管本發明描述以特定方式將虛擬表面與對應的空間錨點之空間關係儲存至資料儲存區,但本發明涵蓋以任何適合方式將虛擬表面與對應的空間錨點之空間關係儲存至資料儲存區。
在特定實施例中,計算裝置108可接收使用一或多個感測器擷取之場景之第二感測器資料。計算裝置108可基於第二感測器資料判定需要更新資料儲存區中之複數個虛擬表面當中的第一虛擬表面與其對應的空間錨點之空間關係。計算裝置108可回應於判定而更新資料儲存區中之第一虛擬表面與其對應的空間錨點之空間關係。虛擬表面之佔用體積之原點可與虛擬表面之原點重合。因此,第一虛擬表面之第一佔用體積之位置可連同第一虛擬表面一起調節。作為一實例而非作為限制,繼續圖2中所說明的先前實例,計算裝置108可在計算裝置108產生資料儲存區400之後接收額外的影像感測器資料及深度感測器資料。基於額外感測器資料,計算裝置108可判定需要更新資料儲存區400中之對應於桌面表面210之虛擬表面的座標資訊。計算裝置108可更新資料儲存區400中之對應於桌面表面210之虛擬表面的座標。由於對應於書213及地球儀215之佔用體積是相對於對應於桌面表面210之虛擬表面定義的,因此亦調節對應於書213及地球儀215之佔用體積與空間錨點之空間關係。儘管本發明描述以特定方式基於額外感測器資料更新資料儲存區中之虛擬表面與其對應的空間錨點之空間關係,但本發明涵蓋以任何適合方式基於額外感測器資料更新資料儲存區中之虛擬表面與其對應的空間錨點之空間關係。
在特定實施例中,計算裝置108可接收查詢。該查詢可包含用於平坦表面之一或多個條件。用於平坦表面之一或多個條件可包含平坦表面之大小、平坦表面之定向、平坦表面之空集,或與對應於平坦表面之虛擬表面之佔用體積相關聯的語義資訊。作為一實例而非作為限制,繼續圖2中所說明的先前實例,計算裝置108可自擴增實境遊戲之模組接收對房間中之平坦表面的查詢。由於擴增實境遊戲需要在房間中之平坦表面中之一者上行駛汽車231,因此一或多個條件可包含具有水平定向之平坦表面。作為另一實例而非作為限制,擴增實境遊戲可想要發現對於汽車231而言障礙最小的表面。因此,一或多個條件可包含小於由任何體積佔據的面積之25%的平坦表面。作為又一實例而非作為限制,一或多個條件可包含具有大於特定值之大小的平坦表面。儘管本發明描述以特定方式接收包含用於平坦表面之一或多個條件的查詢,但本發明涵蓋以任何適合方式接收包含用於平坦表面之一或多個條件的查詢。
在特定實施例中,計算裝置108可識別資料儲存區中之滿足查詢中之一或多個條件的複數個虛擬表面之子集。為了識別資料儲存區中之滿足查詢中之一或多個條件的複數個虛擬表面之子集,計算裝置108可提取資料儲存區400中之複數個虛擬表面中之每一者及複數個虛擬表面中之每一者的佔用體積之幾何屬性。該些幾何屬性可包含平坦表面邊界圖、佔用分類圖、高度圖、三維網格表示,或任何合適的幾何屬性。 5說明自虛擬表面及佔用體積提取之實例幾何屬性。作為一實例而非作為限制,計算裝置108可提取虛擬表面510及虛擬表面510之佔用體積513的幾何屬性520、530、540、550中之至少一者。當擴增實境應用需要以實體上一致方式平面化虛擬物件時,查詢中之一或多個條件可包含佔用體積之高度。在此狀況下,計算裝置可提取高度圖540。當該查詢中之一或多個條件包含虛擬表面之大小時,計算裝置108可提取平坦表面邊界圖520。當該查詢中之一或多個條件包含平坦表面之佔用時,計算裝置108可提取佔用分類圖530。由於可保持這些幾何屬性,因此這些幾何屬性可在未來重複用於查詢。儘管本發明描述以特定方式識別資料儲存區中之滿足查詢中之一或多個條件的複數個虛擬表面之子集,但本發明涵蓋以任何適合方式識別資料儲存區中之滿足查詢中之一或多個條件的複數個虛擬表面之子集。
在特定實施例中,計算裝置108可發送對查詢之回應。該回應可包含資料儲存區中之滿足該查詢之複數個虛擬表面的經識別子集。儘管本發明描述以特定方式發送對查詢之回應,但本發明涵蓋以任何適合方式發送對查詢之回應。
在特定實施例中,計算裝置108可接收使用一或多個感測器擷取之場景之第三感測器資料。計算裝置108可基於第三感測器資料產生表示場景中之經偵測平坦表面之第二虛擬表面,其中該第二虛擬表面不在資料儲存區400中。計算裝置108可將點雲中之一或多個點指派至第二虛擬表面。計算裝置108可基於經指派至第二虛擬表面之一或多個點而針對第二虛擬表面產生第二佔用體積。計算裝置108可判定第二佔用體積係與資料儲存區400中之第三虛擬表面之第三佔用體積相同。計算裝置108可判定第二佔用體積更接近於第二虛擬表面而非第三虛擬表面。計算裝置108可回應於判定第二佔用體積更接近於第二虛擬表面而非第三虛擬表面,而自資料儲存區400刪除第三佔用體積。計算裝置108可將第二虛擬表面及第二虛擬表面之第二佔用體積添加至資料儲存區400。作為一實例而非作為限制,繼續圖2中所說明的先前實例,在初始掃描時,計算裝置108並未偵測桌面表面210。對應於書213及地球儀215之佔用體積係與對應於牆壁203B之虛擬表面相關聯,此係因為牆壁203B為與書213及地球儀215最近的經偵測平坦表面。在另一掃描期間,計算裝置108接收房間之額外影像感測器資料及深度感測器資料。計算裝置108基於經接收感測器資料偵測桌面表面210。計算裝置108產生表示經偵測桌面表面210之虛擬表面。計算裝置108將點雲中之對應於書213及地球儀215之點指派至對應於桌面表面210之虛擬表面。計算裝置108基於經指派至虛擬表面之點產生對應於桌面表面210之虛擬表面的佔用體積。計算裝置108可判定對應於書213及地球儀215之經產生佔用體積係與同對應於牆壁203B之虛擬表面相關聯的佔用體積相同。由於對應於書213及地球儀215之經產生佔用體積更接近於對應於桌面表面210之虛擬表面而非對應於牆壁203B之虛擬表面,因此計算裝置108自資料儲存區400刪除對應於書213及地球儀215之佔用體積。接著,計算裝置108將對應於桌面表面210之虛擬表面及對應於書213及地球儀215之佔用體積添加至資料儲存區400。對應於書213及地球儀215之佔用體積係與對應於桌面表面210之虛擬表面相關聯。儘管本發明描述以特定方式將對應於最新經偵測平坦表面之虛擬表面添加至資料儲存區,但本發明涵蓋以任何適合方式將對應於最新經偵測平坦表面之虛擬表面添加至資料儲存區。
在特定實施例中,計算裝置108可接收使用一或多個感測器擷取之場景之第四感測器資料。計算裝置108可基於第四感測器資料來判定資料儲存區400中之第四虛擬表面及第五虛擬表面屬於單個平坦表面。計算裝置108可藉由合併第四虛擬表面及第五虛擬表面來產生第六虛擬表面。計算裝置108可基於經指派至第六虛擬表面之點而產生第六佔用體積。計算裝置108可藉由(1)運用第六虛擬表面來替換第四虛擬表面及第五虛擬表面且(2)運用第六虛擬表面之第六佔用體積來替換第四虛擬表面之第四佔用體積及第五虛擬表面之第五佔用體積來更新資料儲存區。作為一實例而非作為限制,繼續圖2中所說明的先前實例,在初始掃描時,計算裝置108錯誤地偵測用於桌面表面210之兩個平坦表面。計算裝置108產生對應於錯誤地經偵測之兩個平坦表面之兩個虛擬表面,且產生兩個虛擬表面中之每一者的佔用體積。在另一掃描期間,計算裝置108接收房間之額外影像感測器資料及深度感測器資料。基於額外感測器資料,計算裝置108判定資料儲存區400中之對應於錯誤地經偵測之兩個平坦表面的兩個虛擬表面屬於單個桌面表面210。計算裝置108產生對應於桌面表面210之虛擬表面。在特定實施例中,計算裝置108可合併對應於錯誤地經偵測之兩個平坦表面之兩個虛擬表面,以產生對應於桌面表面210之虛擬表面。計算裝置108基於經指派至虛擬表面之點產生最新產生的虛擬表面之佔用體積。計算裝置108運用最新產生的虛擬表面替換對應於錯誤地經偵測之兩個平坦表面之兩個虛擬表面。計算裝置108亦運用對應於桌面表面210之最新產生的虛擬表面之經產生佔用體積來替換對應於錯誤地經偵測之兩個平坦表面之兩個虛擬表面之佔用體積。儘管本發明描述以特定方式更新資料儲存區以修正錯誤,但本發明涵蓋以任何適合方式更新資料儲存區以修正錯誤。
6說明用於使用表示經偵測平坦表面之複數個虛擬表面及每表面佔用體積來模型化場景之實例方法600。該方法可在步驟610處開始,其中計算裝置108可接收使用一或多個感測器擷取之場景之感測器資料。在步驟620處,計算裝置108可基於感測器資料產生(1)表示場景中之複數個經偵測平坦表面的複數個虛擬表面,及(2)表示場景中之物件之經偵測特徵的點雲。在步驟630處,計算裝置108可將點雲中之每一點指派至複數個虛擬表面中之一或多者。在步驟640處,計算裝置108可基於經指派至虛擬表面之點針對複數個虛擬表面中之每一者產生佔用體積。該些佔用體積可相對於虛擬表面來定義。在步驟650處,計算裝置108可產生資料儲存區,其包含複數個虛擬表面、複數個虛擬表面中之每一者之佔用體積及複數個虛擬表面之間的空間關係。在步驟660處,計算裝置108可接收查詢。在步驟670處,計算裝置108可發送對查詢之回應。該回應可包含資料儲存區中之滿足該查詢之複數個虛擬表面的經識別子集。在適當的情況下,特定實施例可重複圖6之方法的一或多個步驟。儘管本發明將圖6之方法的特定步驟描述及說明為按特定次序發生,但本發明涵蓋圖6之方法的任何合適步驟按任何合適的次序發生。此外,儘管本發明描述且說明用於使用表示經偵測平坦表面之複數個虛擬表面及每表面佔用體積來模型化場景之包括圖6的方法之特定步驟的實例方法,但本發明涵蓋用於使用表示經偵測平坦表面之複數個虛擬表面及每表面佔用體積來模型化場景之包括任何合適的步驟的任何合適的方法,這些任何合適的步驟在適當時可包括圖6的方法之步驟中之全部、一些或無一者。此外,儘管本發明描述且說明實行圖6之方法的特定步驟的特定組件、裝置或系統,但本發明涵蓋實行圖6之方法的任何合適的步驟之任何合適的組件、裝置或系統之任何合適的組合。 系統及方法
7說明實例電腦系統700。在特定實施例中,一或多個電腦系統700執行本文中描述或說明之一或多個方法之一或多個步驟。在特定實施例中,一或多個電腦系統700提供本文中描述或說明之功能性。在特定實施例中,在一或多個電腦系統700上運行的軟體執行本文中描述或說明的一或多個方法之一或多個步驟或提供本文中描述或說明的功能性。特定實施例包括一或多個電腦系統700之一或多個部分。本文中,在適當時,對電腦系統之提及可涵蓋計算裝置,且反之亦然。此外,在適當時,對電腦系統之提及可涵蓋一或多個電腦系統。
本發明涵蓋任何合適數目個電腦系統700。本發明涵蓋採取任何適合的實體形式之電腦系統700。作為實例而非限制,電腦系統700可為嵌入式電腦系統、系統單晶片(system-on-chip;SOC)、單板電腦系統(single-board computer system;SBC)(諸如模組電腦(computer-on-module;COM)或模組系統(system-on-module;SOM))、桌上型電腦系統、膝上型電腦或筆記本電腦系統、交互式公共資訊查詢站、大型電腦、電腦系統之網格、行動電話、個人數位助理(personal digital assistant;PDA)、伺服器、平板電腦系統,或以上各者中之兩者或多於兩者之組合。在適當時,電腦系統700可包括一或多個電腦系統700;為整體或分佈式;橫跨多個位置;橫跨多個機器;橫跨多個資料中心;或駐留於雲中,該雲可包括一或多個網路中之一或多個雲組件。在適當時,一或多個電腦系統700可在無實質空間或時間限制情況下執行本文中描述或說明之一或多個方法之一或多個步驟。作為實例而非作為限制,一或多個電腦系統700可即時或以批量模式執行本文中描述或說明之一或多個方法之一或多個步驟。在適當時,一或多個電腦系統700可在不同時間或在不同位置執行本文中描述或說明之一或多個方法之一或多個步驟。
在特定實施例中,電腦系統700包括處理器702、記憶體704、儲存器706、輸入/輸出(input/output;I/O)介面708、通訊介面710,及匯流排712。儘管本發明描述且說明具有在特定配置中之特定數目個特定組件的特定電腦系統,但本發明涵蓋具有在任何合適的配置中之任何合適數目個任何合適的組件之任何合適的電腦系統。
在特定實施例中,處理器702包括用於執行指令(諸如組成電腦程式之指令)之硬體。作為一實例而非作為限制,為執行指令,處理器702可自內部暫存器、內部快取記憶體、記憶體704或儲存器706擷取(或提取)指令;對其進行解碼並執行其;且接著將一或多個結果寫入至內部暫存器、內部快取記憶體、記憶體704或儲存器706。在特定實施例中,處理器702可包括用於資料、指令或位址之一或多個內部快取記憶體。在適當時,本發明涵蓋包括任何合適數目個任何合適的內部快取記憶體的處理器702。作為實例而非作為限制,處理器702可包括一或多個指令快取記憶體、一或多個資料快取記憶體及一或多個轉譯後備緩衝器(translation lookaside buffer;TLB)。指令快取記憶體中之指令可為記憶體704或儲存器706中之指令的複本,且指令快取記憶體可加速藉由處理器702進行的對於這些指令的擷取。資料快取記憶體中之資料可為記憶體704或儲存器706中供在處理器702處執行的指令操作之資料的複本;供在處理器702處執行之後續指令存取或供寫入至記憶體704或儲存器706的在處理器702處執行的先前指令之結果;或其他合適的資料。資料快取記憶體可加速藉由處理器702進行的讀取或寫入操作。TLB可加速用於處理器702之虛擬位址轉譯。在特定實施例中,處理器702可包括用於資料、指令或位址之一或多個內部暫存器。在適當時,本發明涵蓋包括任何合適數目個任何合適內部暫存器的處理器702。在適當時,處理器702可以包括一或多個算術邏輯單元(arithmetic logic unit;ALU);可以是多核心處理器;或可以包括一或多個處理器702。儘管本發明描述且說明特定處理器,但本發明涵蓋任何合適的處理器。
在特定實施例中,記憶體704包括用於儲存供處理器702執行之指令或供處理器702操作所針對之資料的主記憶體。作為實例而非限制,電腦系統700可自儲存器706或另一來源(諸如另一電腦系統700)將指令加載至記憶體704。處理器702接著可自記憶體704將指令加載至內部暫存器或內部快取記憶體。為執行指令,處理器702可自內部暫存器或內部快取記憶體擷取指令並對其進行解碼。在指令執行期間或之後,處理器702可寫入一或多個結果(其可為中間或最終結果)至內部暫存器或內部快取記憶體。處理器702接著可將這些結果中之一或多者寫入至記憶體704。在特定實施例中,處理器702僅僅執行一或多個內部暫存器或內部快取記憶體中或記憶體704(與儲存器706相對或在別處)中的指令且僅僅對一或多個內部暫存器或內部快取記憶體中或記憶體704(與儲存器706相對或在別處)中之資料進行操作。一或多個記憶體匯流排(其可各自包括位址匯流排及資料匯流排)可將處理器702耦接至記憶體704。如下文所描述,匯流排712可包括一或多個記憶體匯流排。在特定實施例中,一或多個記憶體管理單元(memory management unit;MMU)駐留在處理器702與記憶體704之間且促進由處理器702請求之對記憶體704的存取。在特定實施例中,記憶體704包括隨機存取記憶體(random access memory;RAM)。在適當時,此RAM可為揮發性記憶體。在適當時,此RAM可為動態RAM(dynamic RAM;DRAM)或靜態RAM(static RAM;SRAM)。此外,在適當時,此RAM可為單埠或多埠RAM。本發明涵蓋任何合適的RAM。在適當時,記憶體704可包括一或多個記憶體704。儘管本發明描述且說明特定記憶體,但本發明涵蓋任何合適的記憶體。
在特定實施例中,儲存器706包括用於資料或指令之大容量儲存器。作為實例而非作為限制,儲存器706可包括硬式磁碟機(hard disk drive;HDD)、軟式磁碟機、快閃記憶體、光學光碟、磁性光學光碟、磁帶或通用串列匯流排(Universal Serial Bus;USB)驅動機或以上各者中之兩者或更多者的組合。在適當時,儲存器706可包括可移式或非可移式(或固定)媒體。在適當時,儲存器706可在電腦系統700內部或外部。在特定實施例中,儲存器706為非揮發性固態記憶體。在特定實施例中,儲存器706包括唯讀記憶體(read-only memory;ROM)。在適當時,此ROM可為遮罩式可程式ROM、可程式ROM(programmable ROM;PROM)、可抹除PROM(erasable PROM;EPROM)、電子可抹除PROM(electrically erasable PROM;EEPROM)、電子可修改ROM(electrically alterable ROM;EAROM),或快閃記憶體或以上各者中之兩者或多於兩者的組合。本發明涵蓋採取任何合適實體形式的大容量儲存器706。在適當時,儲存器706可包括促進處理器702與儲存器706之間的通信之一或多個儲存器控制單元。在適當時,儲存器706可包括一或多個儲存器706。儘管本發明描述且說明特定儲存器,但本發明涵蓋任何合適的儲存器。
在特定實施例中,I/O介面708包括硬體、軟體或兩者,提供一或多個介面用於電腦系統700與一或多個I/O裝置之間的通信。在適當時,電腦系統700可包括這些I/O裝置中之一或多者。這些I/O裝置中之一或多者可實現個人與電腦系統700之間的通信。作為一實例而非作為限制,I/O裝置可包括鍵盤、小鍵盤、麥克風、監視器、滑鼠、印表機、掃描器、揚聲器、靜態相機、觸控筆、平板電腦、觸控螢幕、軌跡球、視訊相機,另一合適的I/O裝置或以上各者中之兩者或多於兩者的組合。I/O裝置可包括一或多個感測器。本發明涵蓋任何合適的I/O裝置及用於其之任何合適的I/O介面708。在適當時,I/O介面708可包括一或多個裝置或軟體驅動器,使得處理器702能夠驅動這些I/O裝置中之一或多者。在適當時,I/O介面708可包括一或多個I/O介面708。儘管本發明描述且說明特定I/O介面,但本發明涵蓋任何合適的I/O介面。
在特定實施例中,通信介面710包括硬體、軟體或兩者,提供一或多個介面用於電腦系統700與一或多個其他電腦系統700或一或多個網路之間的通信(諸如基於封包之通信)。作為實例而非作為限制,通信介面710可包括用於與乙太網路或其他基於有線之網路通信的網路介面控制器(network interface controller;NIC)或網路配接器,或用於與無線網路(諸如WI-FI網路)通信之無線NIC(wireless NIC;WNIC)或無線配接器。本發明涵蓋任何合適的網路及用於其之任何合適的通信介面710。作為實例而非作為限制,電腦系統700可與特用網路、個人區域網路(personal area network;PAN)、區域網路(local area network;LAN)、廣域網路(wide area network;WAN)、都會區域網路(metropolitan area network;MAN)或網際網路之一或多個部分或以上各者中之兩者或多於兩者的組合通信。這些網路中之一或多者的一或多個部分可為有線或無線的。作為實例,電腦系統700可與無線PAN(wireless PAN;WPAN)(諸如藍牙WPAN)、WI-FI網路、WI-MAX網路、蜂巢式電話網路(諸如全球行動通信系統(Global System for Mobile Communication;GSM)網路)、或其他合適的無線網路或以上各者中之兩者或多於兩者之組合通信。在適當時,電腦系統700可包括用於這些網路中之任一者的任何合適的通信介面710。在適當時,通信介面710可包括一或多個通信介面710。儘管本揭示描述且說明特定通信介面,但本發明涵蓋任何適合的通信介面。
在特定實施例中,匯流排712包括將電腦系統700之組件彼此耦接的硬體、軟體,或兩者。作為實例而非作為限制,匯流排712可包括加速圖形埠(Accelerated Graphics Port;AGP)或另一圖形匯流排、增強工業標準架構(Enhanced Industry Standard Architecture;EISA)匯流排、前側匯流排(front-side bus;FSB)、超傳輸(HYPERTRANSPORT;HT)互連、工業標準架構(Industry Standard Architecture;ISA)匯流排、INFINIBAND互連、低接腳數(low-pin-count;LPC)匯流排、記憶體匯流排、微型通道架構(Micro Channel Architecture;MCA)匯流排、周邊組件互連(Peripheral Component Interconnect;PCI)匯流排、PCI高速(PCI-Express;PCIe)匯流排、串列進階附接技術(serial advanced technology attachment;SATA)匯流排、視訊電子標準協會局部(Video Electronics Standards Association local;VLB)匯流排,或另一合適的匯流排或以上各者中之兩者或多於兩者的組合。在適當時,匯流排712可包括一或多個匯流排712。儘管本發明描述且說明特定匯流排,但本發明涵蓋任何合適的匯流排或互連。
本文中,電腦可讀取非暫時性儲存媒體在適當時可包括一或多個基於半導體或其他積體電路(integrated circuit;IC)(諸如場可程式閘陣列(field-programmable gate array;FPGA)或特殊應用IC(application-specific IC;ASIC))、硬式磁碟機(hard disk drive;HDD)、混合式硬碟機(hybrid hard drive;HHD)、光碟、光碟機(optical disc drive;ODD)、磁性光碟、磁光驅動機、軟碟、軟式磁碟機(floppy disk drive;FDD)、磁帶、固態磁碟機(solid-state drive;SSD)、RAM驅動機、安全數位卡或驅動機、任何其他合適的電腦可讀取非暫時性儲存媒體,或以上各者中之兩者或多於兩者的任何合適組合。電腦可讀取非暫時性儲存媒體可在適當時為揮發性、非揮發性或揮發性與非揮發性之組合。 其他 Miscellaneous
本文中,除非另外明確指示或上下文另外指示,否則「或」為包括性且並非排他性的。因此,除非另外明確指示或上下文另外指示,否則本文中「A或B」意謂「A、B或兩者」。此外,除非另外明確指示或上下文另外指示,否則「及」為聯合及各自兩者。因此,除非另外明確指示或上下文另外指示,否則本文中「A及B」意謂「A及B,聯合地或各自地」。
本發明之範圍涵蓋所屬技術領域中具有通常知識者將瞭解的本文中描述或說明之實例實施例的全部改變、取代、變化、更改及修改。本發明之範圍不限於本文中所描述或說明的實例實施例。此外,儘管本發明將本文中之各別實施例描述且說明為包括特定組件、元件、特徵、功能、操作或步驟,但這些實施例中之任一者可包括所屬技術領域中具有通常知識者將瞭解的本文中任何位置描述或說明的組件、元件、特徵、功能、操作或步驟中之任一者的任何組合或排列。此外,所附申請專利範圍中對經調適以、經配置以、能夠、經組態以、經啟用以、可操作以或經操作以執行一特定功能的設備或系統,或設備或系統之組件的提及涵蓋只要設備、系統或組件因此經調適、經配置、能夠、經組態、經啟用、可操作或經操作,設備、系統、組件(不管其本身或具有的特定功能)便經啟動、接通或解鎖。另外,儘管本發明將特定實施例描述或說明為提供特定優勢,但特定實施例可提供這些優勢中之無一者、一些或全部。
100A:實例人工實境系統 100B:實例擴增實境系統 102:使用者 104:頭戴式裝置 106:控制器 108:計算裝置 110:頭戴式顯示器(HMD) 112:框架 114:顯示器 201:地板 203A:牆壁 203B:牆壁 205:天花板 210:桌面表面 213:書 215:地球儀 217:抽屜手柄 231:虛擬汽車 300:區塊 310:立體像素 320:立體像素 400:資料儲存區 410:虛擬表面 413:區塊 415:座標資訊 420:虛擬表面 423:區塊 425:座標資訊 430:虛擬表面 433:區塊 435:座標資訊 450:圖 510:虛擬表面 513:佔用體積 520:幾何屬性 530:幾何屬性 540:幾何屬性 550:幾何屬性 600:實例方法 610:步驟 620:步驟 630:步驟 640:步驟 650:步驟 660:步驟 670:步驟 700:實例電腦系統 702:處理器 704:記憶體 706:儲存器 708:輸入/輸出(input/output;I/O)介面 710:通訊介面 712:匯流排
[圖1A]說明實例人工實境系統。
[圖1B]說明實例擴增實境系統。
[圖2]說明房間環境中之實例擴增實境應用。
[圖3]說明體積柵格中之實例區塊。
[圖4]說明用於資料儲存區之實例邏輯結構。
[圖5]說明自虛擬表面及佔用體積提取之實例幾何屬性。
[圖6]說明用於使用表示經偵測平坦表面之複數個虛擬表面及每表面佔用體積來模型化場景之實例方法。
[圖7]說明實例電腦系統。
600:實例方法
610:步驟
620:步驟
630:步驟
640:步驟
650:步驟
660:步驟
670:步驟

Claims (20)

  1. 一種方法,其包含藉由一計算裝置進行以下操作: 接收使用一或多個感測器擷取之一場景之感測器資料; 基於該感測器資料產生(1)表示該場景中之複數個經偵測平坦表面之複數個虛擬表面及(2)表示該場景中之物件之經偵測特徵的一點雲; 將該點雲中之每一點指派至該複數個虛擬表面中之一或多者; 基於經指派至該複數個虛擬表面之該些點針對該複數個虛擬表面中之每一個虛擬表面產生佔用體積,該些佔用體積相對於該虛擬表面而定義; 產生包含該複數個虛擬表面、該複數個虛擬表面中之每一個虛擬表面之該些佔用體積、及該複數個虛擬表面之間的一空間關係的一資料儲存區; 接收一查詢;及 發送對該查詢之一回應,該回應包含該資料儲存區中之滿足該查詢之該複數個虛擬表面的一經識別子集。
  2. 如請求項1之方法,其中產生該複數個虛擬表面包含: 偵測該場景中之複數個平坦表面; 選擇滿足一或多個條件之該複數個平坦表面之一子集;及 針對該複數個平坦表面之該子集中之每一平坦表面產生一虛擬表面。
  3. 如請求項2之方法,其中偵測該場景中之該複數個平坦表面包含對表示該場景中之物件之經偵測特徵的該點雲來執行一基於隨機取樣一致性(RANSAC)之平面擬合方法。
  4. 如請求項2之方法,其中偵測該場景中之該複數個平坦表面包含對經接收感測器資料運行一機器學習演算法。
  5. 如請求項2之方法,其中偵測該場景中之該複數個平坦表面包含接收指示該場景中之該複數個平坦表面中之每一者的一使用者輸入。
  6. 如請求項2之方法,其中該一或多個條件包含一平坦表面之一最小所需大小,或一平坦表面之一所需定向。
  7. 如請求項1之方法,其中針對該複數個虛擬表面中之每一個虛擬表面產生該些佔用體積包含: 針對對應於該虛擬表面之頂部上的一空間之一三維體積柵格中之每一區塊判定屬於該區塊之該點雲中之多個點;及 基於經判定為在該點雲中具有比一臨限值多的點之區塊而產生該些佔用體積。
  8. 如請求項1之方法,其中針對該複數個虛擬表面中之每一個虛擬表面產生該些佔用體積包含: 使用經指派至該虛擬表面之點之一子集來執行一截斷帶符號距離場(TSDF)融合。
  9. 如請求項1之方法,其中一虛擬表面之佔用體積之一原點與該虛擬表面之一原點重合。
  10. 如請求項1之方法,其中該資料儲存區進一步包含該複數個虛擬表面中之每一個虛擬表面與一對應空間錨點之一空間關係。
  11. 如請求項10之方法,其進一步包含: 接收使用該一或多個感測器擷取之該場景之一第二感測器資料; 基於該第二感測器資料來判定需要更新該資料儲存區中之該複數個虛擬表面當中的一第一虛擬表面與其對應的空間錨點之一空間關係;及 回應於該判定而更新該資料儲存區中之該第一虛擬表面與其對應的空間錨點之該空間關係。
  12. 如請求項11之方法,其中該第一虛擬表面之第一佔用體積之位置連同該第一虛擬表面一起調節。
  13. 如請求項1之方法,其中該查詢包含用於平坦表面之一或多個條件。
  14. 如請求項13之方法,其中用於該些平坦表面之該一或多個條件包含該些平坦表面之大小、該些平坦表面之定向、該些平坦表面之空集,或與對應於該些平坦表面之虛擬表面之佔用體積相關聯的語義資訊。
  15. 如請求項1之方法,其中藉由提取該資料儲存區中之該複數個虛擬表面中之每一個虛擬表面的該些佔用體積之幾何屬性來識別該資料儲存區中之滿足該查詢的該複數個虛擬表面之該子集。
  16. 如請求項15之方法,其中該些幾何屬性包含一平坦表面邊界圖、一佔用分類圖、一高度圖,或一三維網格表示。
  17. 如請求項1之方法,其進一步包含: 接收使用該一或多個感測器擷取之該場景之一第三感測器資料; 基於該第三感測器資料產生表示該場景中之一經偵測平坦表面之一第二虛擬表面,其中該第二虛擬表面不在該資料儲存區中; 將該點雲中之一或多個點指派至該第二虛擬表面; 基於經指派至該第二虛擬表面之該一或多個點針對該第二虛擬表面產生第二佔用體積; 判定該些第二佔用體積係與該資料儲存區中之一第三虛擬表面之第三佔用體積相同; 判定該些第二佔用體積更接近於該第二虛擬表面而非該第三虛擬表面; 回應於判定該些第二佔用體積更接近於該第二虛擬表面而非該第三虛擬表面,而自該資料儲存區刪除該些第三佔用體積;及 將該第二虛擬表面及該第二虛擬表面之該些第二佔用體積添加至該資料儲存區。
  18. 如請求項1之方法,其進一步包含: 接收使用該一或多個感測器擷取之該場景之一第四感測器資料; 基於該第四感測器資料判定該資料儲存區中之一第四虛擬表面及一第五虛擬表面屬於一單個平坦表面; 藉由合併該第四虛擬表面及該第五虛擬表面而產生一第六虛擬表面; 基於經指派至該第六虛擬表面之該些點而產生第六佔用體積;及 藉由(1)運用該第六虛擬表面來替換該第四虛擬表面及該第五虛擬表面且(2)運用該第六虛擬表面之該些第六佔用體積來替換該第四虛擬表面之第四佔用體積及該第五虛擬表面之第五佔用體積來更新該資料儲存區。
  19. 一種具有軟體之一或多個電腦可讀取非暫時性儲存媒體,當所述軟體被執行時進行以下操作: 接收使用一或多個感測器擷取之一場景之感測器資料; 基於該感測器資料產生(1)表示該場景中之複數個經偵測平坦表面之複數個虛擬表面及(2)表示該場景中之物件之經偵測特徵的一點雲; 將該點雲中之每一點指派至該複數個虛擬表面中之一或多者; 基於經指派至該複數個虛擬表面之該些點針對該複數個虛擬表面中之每一個虛擬表面產生佔用體積,該些佔用體積相對於該虛擬表面而定義; 產生包含該複數個虛擬表面、該複數個虛擬表面中之每一個虛擬表面之該些佔用體積、及該複數個虛擬表面之間的一空間關係的一資料儲存區; 接收一查詢;及 發送對該查詢之一回應,該回應包含該資料儲存區中之滿足該查詢之該複數個虛擬表面的一經識別子集。
  20. 一種包含一或多個處理器及非暫時性記憶體之系統,該非暫時性記憶體耦接至該些處理器且包含可由該些處理器執行之指令,該些處理器在執行該些指令時進行以下操作: 接收使用一或多個感測器擷取之一場景之感測器資料; 基於該感測器資料產生(1)表示該場景中之複數個經偵測平坦表面之複數個虛擬表面及(2)表示該場景中之物件之經偵測特徵的一點雲; 將該點雲中之每一點指派至該複數個虛擬表面中之一或多者; 基於經指派至該複數個虛擬表面之該些點針對該複數個虛擬表面中之每一個虛擬表面產生佔用體積,該些佔用體積相對於該虛擬表面而定義; 產生包含該複數個虛擬表面、該複數個虛擬表面中之每一個虛擬表面之該些佔用體積、及該複數個虛擬表面之間的一空間關係的一資料儲存區; 接收一查詢;及 發送對該查詢之一回應,該回應包含該資料儲存區中之滿足該查詢之該複數個虛擬表面的一經識別子集。
TW111116835A 2021-07-01 2022-05-04 具有表面和每表面體積的環境模型 TW202304200A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/365,340 US11521361B1 (en) 2021-07-01 2021-07-01 Environment model with surfaces and per-surface volumes
US17/365,340 2021-07-01

Publications (1)

Publication Number Publication Date
TW202304200A true TW202304200A (zh) 2023-01-16

Family

ID=82403790

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111116835A TW202304200A (zh) 2021-07-01 2022-05-04 具有表面和每表面體積的環境模型

Country Status (5)

Country Link
US (2) US11521361B1 (zh)
EP (1) EP4364099A1 (zh)
CN (1) CN117957579A (zh)
TW (1) TW202304200A (zh)
WO (1) WO2023278133A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020226832A1 (en) * 2019-05-06 2020-11-12 Apple Inc. Device, method, and computer-readable medium for presenting computer-generated reality files

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572970B2 (en) * 2017-04-28 2020-02-25 Google Llc Extracting 2D floor plan from 3D GRID representation of interior space
US10740960B2 (en) 2019-01-11 2020-08-11 Microsoft Technology Licensing, Llc Virtual object placement for augmented reality
US11494995B2 (en) 2019-10-29 2022-11-08 Magic Leap, Inc. Systems and methods for virtual and augmented reality
US11138787B2 (en) * 2019-11-25 2021-10-05 Rockwell Collins, Inc. Efficient transfer of dynamic 3D world model data

Also Published As

Publication number Publication date
US20230169737A1 (en) 2023-06-01
WO2023278133A1 (en) 2023-01-05
CN117957579A (zh) 2024-04-30
US11521361B1 (en) 2022-12-06
EP4364099A1 (en) 2024-05-08

Similar Documents

Publication Publication Date Title
CN116897326A (zh) 人工现实中虚拟对象的手部锁定渲染
US11954805B2 (en) Occlusion of virtual objects in augmented reality by physical objects
CN107784683B (zh) 四边形化的分层深度图像
US10878608B2 (en) Identifying planes in artificial reality systems
US11398020B2 (en) Generating a composite image
TW202304200A (zh) 具有表面和每表面體積的環境模型
EP3956752B1 (en) Semantic-augmented artificial-reality experience
US11030820B1 (en) Systems and methods for surface detection
US20170243393A1 (en) Depth Buffering for Subsequent Scene Rendering
US11715272B2 (en) 3D reconstruction of a moving object
US11615594B2 (en) Systems and methods for reconstruction of dense depth maps
US11348320B2 (en) Object identification utilizing paired electronic devices
US20220122285A1 (en) Visual inertial odometry localization using sparse sensors
US11580703B1 (en) Adaptive model updates for dynamic and static scenes
US20240126381A1 (en) Tracking a handheld device
US20240015263A1 (en) Methods and apparatus to provide remote telepresence communication
WO2021201638A1 (en) Electronic device and method for object identification utilizing paired electronic device
KR20230162927A (ko) 인간의 시야 범위로부터의 자기중심적 포즈 추정
WO2022093472A1 (en) Distortion-corrected rasterization