CN117396925A - 用于操纵虚拟边界体积的方法、设备和计算机程序产品 - Google Patents
用于操纵虚拟边界体积的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN117396925A CN117396925A CN202280038561.3A CN202280038561A CN117396925A CN 117396925 A CN117396925 A CN 117396925A CN 202280038561 A CN202280038561 A CN 202280038561A CN 117396925 A CN117396925 A CN 117396925A
- Authority
- CN
- China
- Prior art keywords
- virtual
- bounding volume
- virtual bounding
- volume
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000004590 computer program Methods 0.000 title claims description 16
- 230000004044 response Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 18
- 230000003190 augmentative effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000003550 marker Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- UQDJGEHQDNVPGU-UHFFFAOYSA-N serine phosphoethanolamine Chemical compound [NH3+]CCOP([O-])(=O)OCC([NH3+])C([O-])=O UQDJGEHQDNVPGU-UHFFFAOYSA-N 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种计算机化方法,包括:获取(110)包括一个或更多个物理实体的物理环境的图像;基于获取的图像生成(120)虚拟视图;以及显示(130)在获取的图像上叠加的虚拟视图。方法(100)还包括:接收(140)指示虚拟视图内的放置位置的用户输入;以及接收(150)用于在虚拟视图内创建虚拟边界体积的用户输入。方法(100)还包括:基于虚拟边界体积与与一个或更多个物理实体对应的3D数据之间在3D空间中的一个或更多个交会部来操纵(160)虚拟边界体积;显示(170)所操纵的虚拟边界体积;以及显示(180)适配所操纵的虚拟边界体积的至少一个3D对象模型。
Description
技术领域
本发明总体上涉及增强现实技术。更具体地,本发明涉及用于使用增强现实技术操纵虚拟边界体积的计算机化方法。本发明还涉及相关联的设备和计算机程序产品。
背景技术
与增强现实相关的技术涉及用计算机生成的信息来增强现实世界的环境。因此,基于增强现实的程序、系统、方法、装置、设备等结合了真实世界和物理世界,以提供交互式用户体验。体验的虚拟方面通常与物理方面无缝交织,使得所提供的用户体验尽可能有沉浸感。
基于增强现实的程序经常用于某些应用领域诸如电子商务、室内或建筑设计、施工等,其中,期望可视化与实际物理对象相似的某些虚拟对象如何与物理环境适配。可以考虑多种不同的考虑,诸如例如虚拟对象是否在大小、设计或建筑风格、颜色、房间的其他环境、照明和阴影等方面与物理环境相匹配。例如,知道虚拟对象是否在例如家具结构与墙之间适配可能是重要的。这样的知识可以潜在地帮助用户选择和购买适当的家具。
在现有技术中,存在使用基于增强现实的程序来可视化物理世界中的虚拟对象的现有技术。然而,当前现有的解决方案缺乏与使虚拟对象与物理对象适配以及如何处理其间的交会部相关的技术条件。此外,当前的解决方案没有给予用户使虚拟对象可以潜在地适配于物理世界的内容和方式的任何反馈。此外,不知道如何允许用户根据自己的意愿并基于存在的物理环境决定和操纵适配于物理环境的虚拟对象的大小。此外,期望用于相对于存在的物理环境提供虚拟对象推荐的解决方案。
鉴于以上观察,本发明人提供了特别有洞察力、有效、有沉浸感且易于理解的解决方案,该解决方案寻求解决上面给定的问题中的一个或更多个。
发明内容
因此,本发明的目的是消除或减轻上面提到的问题或缺点中的至少一些。
在第一方面中,提供了计算机化方法。计算机化方法包括:获取包括一个或更多个物理实体的物理环境的图像;基于获取的图像生成虚拟视图,虚拟视图是物理环境的3D表示并且包括与物理环境的一个或更多个物理实体对应的3D数据;显示在物理环境的获取的图像上叠加的虚拟视图;接收指示虚拟视图内的放置位置的用户输入;接收用于在虚拟视图内创建虚拟边界体积的用户输入;在虚拟视图中基于虚拟边界体积与与一个或更多个物理实体对应的所述3D数据之间在3D空间中的一个或更多个交会部来操纵虚拟边界体积;在虚拟视图中显示所操纵的虚拟边界体积,其中,所操纵的虚拟边界体积的至少一部分放置在放置位置处;以及在虚拟视图中显示适配所操纵的虚拟边界体积的至少一个3D对象模型。
根据一个实施方式,所述操纵虚拟边界体积包括以下步骤中的至少一个:从虚拟边界体积移除至少一部分以及/或者向虚拟边界体积添加至少一部分。
根据一个实施方式,3D空间中的一个或更多个交会部由来自以下功能的列表中的任一个或更多个引起:虚拟边界体积的拖放功能和虚拟边界体积的改变大小功能。
根据一个实施方式,在所述操纵虚拟边界体积之前或之后,方法还包括接收附加用户输入用于用户操纵虚拟边界体积的至少一部分。
根据一个实施方式,使用所操纵的虚拟边界体积作为搜索输入来从数据库单元检索包括至少一个3D对象模型的模型集。
根据一个实施方式,所操纵的边界体积响应于被操纵而被动态地用作搜索输入,其中,从数据库单元检索至少一个当前适配的3D对象模型。
根据一个实施方式,方法还包括在模型集中的至少一个3D对象模型当中确定推荐的3D对象模型,其中,在虚拟视图中显示适配所操纵的虚拟边界体积的至少一个3D对象模型的步骤包括显示推荐的3D对象模型。
根据一个实施方式,方法还包括接收用户输入的步骤,该用户输入指示模型集是否还要基于以下项的类型:物理环境和/或一个或更多个物理实体中的物理实体。
根据一个实施方式,基于获取的图像对虚拟视图的所述生成包括:识别物理环境中的一个或更多个物理实体,并且将对应的3D数据标记为墙、地板、天花板或对象之一,其中,放置位置与标记的3D数据相关联。
根据一个实施方式,操纵虚拟边界体积的步骤包括来自以下步骤的列表中的一个或更多个:移除虚拟边界体积的位于虚拟边界体积与标记为对象的3D数据之间的3D交会部内的部分;移除虚拟边界体积的位于虚拟边界体积与标记为地板的3D数据之间的3D交会部内、或位于标记为地板的3D数据的垂直下方的部分;移除虚拟边界体积的位于虚拟边界体积与标记为天花板的3D数据之间的3D交会部内、或位于标记为天花板的3D数据的垂直上方的部分;以及移除虚拟边界体积的位于虚拟边界体积与标记为墙的3D数据之间的3D交会部内、或位于标记为墙的3D数据的水平外侧的部分。
根据一个实施方式,虚拟视图的所述生成包括将标记为对象的3D数据分割成一个或更多个分离对象,并且相应地标记3D数据,其中,放置位置与标记为一个或更多个分离对象中的特定对象的3D数据相关联,其中,操纵虚拟边界体积的步骤包括移除虚拟边界体积的位于所述虚拟边界体积与标记为特定对象的3D数据之间的3D交会部内、或位于标记为特定对象的3D数据的垂直下方的部分。
根据一个实施方式,放置位置与标记为地板的3D数据相关联,其中,操纵虚拟边界体积的步骤包括移除虚拟边界体积的位于虚拟边界体积与标记为对象的3D数据之间的3D交会部内的部分、以及位于标记为对象的3D数据的垂直上方的部分。
根据一个实施方式,在虚拟边界体积被创建之后,方法还包括接收用于改变与放置位置相关联的3D数据的用户输入的步骤。
在第二方面中,提供了移动计算设备。移动计算设备被配置成:获取包括一个或更多个物理实体的物理环境的图像;基于获取的图像生成虚拟视图,虚拟视图是物理环境的3D表示并且包括与物理环境的一个或更多个物理实体对应的3D数据;显示在物理环境的获取的图像上叠加的虚拟视图;接收指示虚拟视图内的放置位置的用户输入;接收用于在虚拟视图内创建虚拟边界体积的用户输入;在虚拟视图中基于虚拟边界体积与与一个或更多个物理实体对应的所述3D数据之间在3D空间中的一个或更多个交会部来操纵虚拟边界体积;在虚拟视图中显示所操纵的虚拟边界体积,其中,所操纵的虚拟边界体积的至少一部分放置在放置位置处;以及在虚拟视图中显示适配所操纵的虚拟边界体积的至少一个3D对象模型。
在第三方面中,提供了计算机程序产品。计算机程序产品包括用于在计算机程序代码由处理设备执行时执行根据第一方面或其所依赖的实施方式中的任一实施方式的计算机化方法的计算机代码。
提供如本文所公开的计算机化方法、设备和计算机程序产品将解决或至少减轻在本文档的背景部分中识别的问题或缺点中的一个或更多个。本发明及其公开的实施方式的这些和其他方面、目的、特征和优点将根据下面的详细公开内容、根据所附的从属权利要求以及根据附图变得明显。
通常,权利要求中使用的所有术语应根据其在技术领域中的普通含义进行解释,除非本文另有明确定义。
除非另有明确说明,否则对“一/一个/该[元件、设备、部件、装置、步骤等]”的所有引用应公开解释为指该元件、设备、部件、装置、步骤等的至少一个实例。除非明确说明,否则本文公开的任何方法的步骤不必以公开的确切顺序执行。
附图说明
图1是根据一个实施方式的计算机化系统的框图。
图2a至图2d示出了根据一个实施方式的提供放置位置的方法步骤。
图3示出了根据一个实施方式的操纵虚拟边界体积的方法步骤。
图4示出了根据一个实施方式的操纵虚拟边界体积的方法步骤。
图5示出了根据一个实施方式的操纵虚拟边界体积的方法步骤。
图6示出了根据一个实施方式的操纵虚拟边界体积的方法步骤。
图7是根据一个实施方式的计算机化方法的框图。
图8a至图8d是合并边界体积的实施方式。
图9a至图9b是合并边界体积的实施方式。
图10a至图10c是合并边界体积的实施方式。
图11a至图11c是合并边界体积的实施方式。
图12a至图12c是合并边界体积的实施方式。
图13是根据一个实施方式的计算机化方法的框图。
具体实施方式
现在将参照附图描述本发明的实施方式。然而,本发明可以以许多不同的形式实施,并且不应当被解释为限于本文所阐述的实施方式;相反,提供这些实施方式使得本公开内容将是彻底和完整的,并且将向本领域技术人员充分传达本发明的范围。在附图中所示的特定实施方式的详细描述中使用的术语不旨在限制本发明。在附图中,类似的附图标记指代类似的元件。
参照图1,示出了根据一个实施方式的计算机化方法100的流程图。计算机化方法100可以例如由计算机系统200实现,其中,计算机系统200被配置成用于执行计算机化方法100的操作。计算机系统200可以包括由其用户5操作的移动计算设备10、后端计算单元210和数据库单元220。根据图1的计算机系统200的部件仅是可以如何实现计算机系统200的示例,并且绝不应被解释为限制性示例。如图1中所描绘,移动计算设备10可以被配置成实现方法步骤110;120;130;132;134;136;137;138;140;150;152;155;160;165;170;172;190;198和180。此外,后端计算单元210可以被配置成实现方法步骤132;192;194和196。
在图1中,后端计算单元210被描绘为与移动计算设备10分开的远程服务。在该实施方式中,后端计算单元210可以是使用本领域已知的任何技术实现的中央计算服务器或基于云的服务诸如亚马逊网络服务、谷歌云平台、微软Azure、数字海洋、IBM Bluemix或阿里云。对于其中与移动计算单元10分开提供后端计算单元210的实施方式,移动计算单元10包括用于与其通信的装置。这样的通信装置可以涉及本领域已知的任何常规的长距离或短距离通信标准。仅作为示例,通信标准可以涉及基于WCDMA/HSPA、GSM、UTRAN、LTE、LTE-A的技术,基于IEEE 802.11、IEEE 802.15、ZigBee、WirelessHART、WiFi、BLE、RFID、WLAN、MQTT IoT、CoAP、DDS、NFC、AMQP、LoRaWAN、RFID、Z-Wave、Sigfox、Thread或EnOcean的无线RF标准。
在其他实施方式中,移动计算单元10包括后端计算单元210。这样的后端计算单元210由任何市售的CPU(“中央处理单元”)、DSP(“数字信号处理器”)或任何其他电子可编程逻辑设备优选地实现。在这些实施方式中,后端计算单元210被配置成从存储器读取指令并且执行这些指令以控制计算机系统200的操作。可以使用用于计算机可读存储器诸如ROM、RAM、SRAM、DRAM、CMOS、FLASH、DDR、EEPROM存储器、闪存、硬盘驱动器、光存储装置或其任何组合的任何公知技术来实现存储器。
在一个实施方式中,数据库单元220被实现为硬盘驱动器、固态驱动器、USB棒或存储卡中的一个或更多个或组合。在另一实施方式中,数据库单元220可以由基于云的服务来维护以及/或者被配置为基于云的服务器。这样的基于云的存储装置可以被部署为SQL数据模型诸如MySQL、PostgreSQL或Oracle RDBMS。可替选地,可以使用基于NoSQL数据的模型诸如MongoDB、Amazon DynamoDB、Hadoop或Apache Cassandra的部署。
移动计算单元10可以是包括能够运行基于增强现实的程序——诸如本地的、基于web的或混合的应用——的功能的任何类型的智能设备。例如,移动计算单元10可以是智能电话、平板电脑、智能眼镜、头戴式显示器等。
移动计算单元10优选地包括摄像装置单元。摄像装置单元可以布置在移动计算设备10中,使得摄像装置单元可以获取物理环境的静止或运动图像或(实时)视频流。可替选地,摄像装置单元可以是相对于移动计算单元10能够独立移动的单独摄像装置单元。在该实施方式中,摄像装置单元和移动计算单元10被配置成能够使用例如先前提到的通信标准中的任何通信标准来彼此通信。因此,在本实施方式中,移动计算单元10不一定需要移动以获取视频内容。
移动计算单元10优选地包括用户界面。移动计算单元10可以被配置成通过用户界面接收来自一个或更多个不同输入源的输入。移动计算设备10的用户5可以通过经由用户界面与计算机程序交互或操纵计算机程序来执行不同的功能。用户界面可以是本领域已知的任何类型的人机界面,诸如被适当地配置成用于提供可以用于执行基于增强现实的功能的指令的图形用户界面、语音到文本界面、触摸界面、文本界面、命令行界面、基于手势的界面、或者任何类似类型的界面技术中的任一个或组合。
在图1中,计算机化方法100被描绘为具有多个不同的方法步骤,其中,每个步骤与至少一个功能相关联。方法步骤不一定局限于以如图1中所描绘的顺序一个接一个地发生。尽管没有明确示出,但方法步骤中的一些可以以不同的顺序或并行发生。
计算机化方法100包括获取110包括一个或更多个物理实体的物理环境的图像的步骤。可替选地,物理环境可以被解释为真实世界环境,并且一个或更多个物理实体可以相应地被解释为真实世界实体。物理环境可以是任何类型的物理环境,其中,根据本公开内容的计算机化方法100可以被适当地执行。例如,物理环境可以是住宅或办公室环境、建筑环境、娱乐环境、车辆周围或内部的环境等。因此,物理环境不限于一种特定类型的真实世界环境。相应地,物理实体可以是可以找到的或以任何方式属于相关联的物理环境的任何类型的实体诸如物理环境中的对象、墙、天花板或地板等。图1中所示的实施方式描绘了具有四把椅子的圆桌子。因此,在该实施方式中,每把椅子和桌子各自与一个物理实体对应,并且物理环境可以是例如客厅、餐厅、厨房等,其中,椅子和桌子是常见的。
获取110图像可以通过捕获物理环境和物理实体的静止或运动图像或视频流来执行。图像可以包括多个图像帧,并且获取110所述多个图像帧可以被连续执行(即,在任意时间段期间一个或更多个捕获)。尽管获取110图像的步骤被示出为方法100中的第一步骤,但是本领域技术人员意识到,其可以遍及整个过程执行。如果物理环境在整个过程中改变其外观,这可能特别有用。在该示例中,可以替换或移除至少一把椅子,可以添加额外的家具,桌子可以被提供有花瓶或装饰性家具等。
移动计算设备10可以被配置成使用摄像装置单元诸如先前已经描述的摄像装置单元来获取所述图像。因此,用户5可以通过用户界面通过例如手动激活摄像装置单元指示移动计算设备10来获取110所述图像。通过这样做,用户5可以决定要获取110的物理环境的什么图像。可替选地,获取110图像可以通过从在线或离线服务获得图像或视频来执行,其中,不一定需要摄像装置。
方法100还包括生成120虚拟视图的步骤,其中,虚拟视图基于获取的图像。因此,虚拟视图可以被解释为物理环境的虚拟表示。虚拟视图是三维(3D)表示,该三维(3D)表示意味着以二维的方式获取110的静止图像或视频帧被转换并表示为3D中的虚拟视图。因此,虚拟视图包括与物理环境和位于物理环境中的一个或更多个物理实体对应的3D数据。因此,用于生成120虚拟视图的手段在本领域中已知,并且可以包括使用适合于此目的的任何常规手段。例如,可以应用任何3D捕获技术诸如LiDAR、立体摄像装置系统、深度摄像装置系统、结构光投影系统等。
在一个实施方式中,生成120虚拟视图还可以包括以下步骤:识别物理环境中的一个或更多个物理实体并且将对应的3D数据标记为墙、地板、天花板或对象之一。在一些实施方式中,所述识别和标记可以在虚拟视图生成过程中执行,或者可选地作为后续步骤执行。对象可以例如是物理环境内的桌子、椅子、沙发、TV或任何其他类型的结构。识别和标记一个或更多个物理实体可以涉及至少接近实时地执行环境的动态网格划分。这可以通过用户5使用移动计算设备10的摄像装置单元来获取110物理环境的图像并且同时(可能具有一些延迟)标记物理实体的获取的3D数据来实现。识别和标记一个或更多个物理实体可以例如涉及标记其表面或多边形,或者可替选地,标记3D点云中的每个点。所标记的3D数据将因此与实体类型相关联。用于识别和标记一个或更多个物理实体的3D数据的手段可以例如涉及使用允许访问如由3D捕获技术(例如,先前提及的3D捕获技术中的任何一种)收集的详细深度信息的任何已知系统或程序。例如,软件API诸如苹果的ARKit或RealityKit框架可以用于此目的。
方法100还包括显示130叠加在物理环境的获取的图像上的虚拟视图的步骤。叠加在获取的图像上的虚拟视图可以例如被显示在移动计算单元10的屏幕上。
在一个实施方式中,显示130叠加在获取的图像上的虚拟视图包括两个步骤,所述两个步骤通常一个接一个地自动执行。第一步骤可以涉及显示物理环境的获取的图像。第二步骤可以涉及在移动计算单元10的屏幕上将物理环境的所述3D表示和物理实体的对应3D数据投影在获取的图像的顶部。因此,虚拟视图被叠加在获取的图像上被解释为呈现虚拟内容和真实内容的组合的增强现实显示。
在一个实施方式中,当显示130叠加在获取的图像上的虚拟视图时,可以隐藏或示出一个或更多个物理实体中的任一个物理实体的3D数据。例如,方法100还可以涉及接收用户输入以用于通过查看或隐藏所述物理实体的指定3D数据来分别确定要示出或隐藏什么物理实体的步骤。在一个实施方式中,示出了物理实体,并且默认隐藏物理实体的3D数据。可替选地,预定设置可以决定当显示在获取的图像上叠加的虚拟视图时要示出什么。此外,预定设置可以例如通过在0%与100%之间增加或减少3D数据的透明度来指定3D数据在虚拟视图中的透明度水平。本领域技术人员可以实现其他透明度方案。
在一个实施方式中,获取110图像、生成120虚拟视图以及显示130叠加在获取的图像上的虚拟视图的步骤一个接一个地直接执行。因此,例如,在使用移动客户端设备10捕获视频流时,从用户5的角度来看,用户5能够直接观看叠加在获取的图像上的显示的虚拟视图,优选地具有尽可能的短暂延迟。
方法步骤132、134、136、137和138稍后将在本公开内容中参照图7至图12c描述。
方法100还可以包括接收140;150用户输入的步骤。可以响应于已经在移动客户端设备10的用户界面上执行了一个或更多个选择而由用户5接收用户输入。接收用户输入140;150的步骤可以同时执行或者一个接一个地执行。
接收140用户输入的步骤包括接收指示虚拟视图内的放置位置的用户输入。与放置位置对应的用户输入可以例如通过用户5已经在例如移动客户端设备10的屏幕上点击、绘制或以任何方式选择位置而被接收140。放置位置在其与虚拟视图上的虚拟位置相关的意义下是虚拟的,但在虚拟位置与物理位置对应的意义下是真实的,因为虚拟视图被叠加在获取的图像上。在一个实施方式中,放置位置是虚拟视图中的空间(3D)坐标。在另一实施方式中,放置位置是虚拟视图的3D空间中的区域。在又一实施方式中,放置位置是虚拟视图的3D空间中的(子)体积。例如,放置位置可以是已经由用户5在虚拟视图中的地板上、墙的任何处、天花板处或任何对象处标注的任何点、区域或体积。因此,在一个实施方式中,放置位置可以与标记的3D数据相关联。
图2a至图2d在四个不同的步骤中示出了如何设置用于放置位置的用户输入的一个示例性实施方式。在图2a中,用户5已经在虚拟视图中选择了任意的第一点p1。在图2b中,用户5已经在虚拟视图中在一个方向上拖放标记,从而创建第二点p2和第一点p1与第二点p2之间的线。在图2c中,用户5在虚拟视图中在另一个方向上拖放标记,从而创建第三点p3和第四点p4以及其之间的线,共同在虚拟视图中形成3D空间中的区域。最后,在图2d中,用户5在另一方向上拖放标记,从而创建四个点p5、p6、p7、p8,与前四个点p1、p2、p3、p4一起形成作为立方体的放置位置。点p1至p8及其之间的线可以在虚拟视图内形成在任何给定的位置处。
在用户5已经选择了放置位置之后,方法100可以包括接收152用于改变与放置位置相关联的3D数据的用户输入的附加步骤。这意味着用户5可以在整个过程的任何时刻处决定新的放置位置。
接收150用户输入的步骤包括接收用于在虚拟视图内创建虚拟边界体积的用户输入。如所公知的,一组对象的边界体积是完全包含该组中的对象的并集的可能最紧密的封闭体积。因此,虚拟边界体积可以被解释为完全包含一个或更多个虚拟对象的并集的边界体积。边界体积可以被创建为具有任意大小或形式,如由步骤150中的用户输入决定。例如,虚拟边界体积可以根据具有由3D空间中任意数目的点定义的其边缘的任何体积3D形式来形成。仅作为示例性形式,虚拟边界体积可以假设成定向或轴对准的边界框、胶囊、圆柱体、椭球体、球体、平板、三角形、凸外壳或凹外壳、八方向离散定向多面体或其任意组合中的任何一个。因此,体积3D形式可能是完全任意的,并且不符合任何类型的明确定义的已知几何形状。在图2a至图2d中给出示例,虚拟边界体积可以例如被创建为具有与作为立方体的放置位置类似的形式。
虚拟边界体积可以使用任何已知的数据表示来表示。在一个实施方式中,可以使用基于体素的数据表示。基于体素的数据表示对于提高与本公开内容的技术条件相关的计算效率可以是有利的。如所公知的,体素是由3D离散点包含的x、y和z维度的连续长方体区域。当使用虚拟边界体积作为搜索输入来执行对象搜索时,基于体素的数据表示对于降低计算复杂度和提高过滤速度可以是有益的。虚拟边界体积可以被生成为具有适当尺寸的多个体素。各体素的尺寸/大小与其空间分辨率之间的折衷可以根据各种因素诸如硬件容量、分辨率要求和/或用户偏好而变化。稍后将在本公开内容中更详细地讨论使用虚拟边界体积作为搜索输入的操纵和对象搜索。作为其他替选方案,可以使用用于列举几个例子的边界体积层次表示、多边形表示、球对称体积元素表示、3D点云表示、隐式表面表示、符号距离场表示或隐式神经表示来表示虚拟边界体积。
定义虚拟边界体积的用户输入可以例如响应于用户5已经决定了特定大小或形式而被接收150。可以实现各种不同的技术以用于提供用于创建虚拟边界体积的用户输入,所述各种不同的技术都不应被视为对本公开内容的范围的限制。例如,用户5可以通过以下方式来提供输入:在虚拟视图中绘制形状,基于放置位置自动提供形状,拖动边缘点以定义形状,在完成的边界体积模型的列表中的模型之间进行选择,定义端点坐标以及在定义的端点之间自动生成形状,用手指抓住虚拟视图中的点并响应于此生成越来越大的边界体积,等等。此外,虚拟边界体积可以通过例如通过用户界面与虚拟边界体积交互来接收用于6DoF(6自由度)操纵、缩放、改变大小、拉伸等的附加输入。
方法100还可以包括在虚拟视图中操纵160虚拟边界体积的步骤。操纵160虚拟边界体积的步骤通常需要多个不同的子步骤,并且可以以多种不同的方式执行。然而,所有类型的操纵的共同点涉及在虚拟视图中改变虚拟边界体积的外观。改变虚拟边界体积的外观可以例如涉及移除其至少一部分或向其添加至少一部分中的一个或更多个。因此,所述移除涉及在3D空间中收缩的虚拟边界体积,并且所述添加涉及在3D空间中增加(扩展)的虚拟边界体积。这些操作可以在围绕虚拟边界体积的3D空间中在任何方向上执行。
如本文将描述的操纵160虚拟边界体积的步骤可以与在虚拟视图中显示170所操纵的虚拟边界体积的步骤组合。这就是说,移动计算设备10的用户5可以响应于操纵(关于在虚拟视图上例如在移动计算单元10的屏幕上显示的所述操纵)而接收直接反馈。可替选地,操纵160虚拟边界体积的步骤可以在所述体积被显示在虚拟视图中之前完成,其中,所操纵的虚拟边界体积被显示。然而,可替选地,虚拟边界体积可以响应于被创建而直接被显示。在这些替选实施方式中的任一个中,虚拟边界体积的至少一部分将被放置在放置位置处。
用于显示170所操纵的虚拟边界体积的技术可以基于任何已知的渲染技术。渲染技术包括但不限于直接体积渲染、等值面提取、光栅化、射线投射、射线跟踪、射线行进、路径跟踪,仅列举几个例子。
操纵160虚拟边界体积优选地基于虚拟边界体积与与一个或更多个物理实体对应的3D数据之间在3D空间中的一个或更多个交会部。换句话说,每当虚拟边界体积的至少一部分与与虚拟视图中的物理实体对应的3D数据相交时,虚拟边界体积被操纵。可替选地,虚拟边界体积与与物理实体对应的3D数据之间的3D交会部可以被解释为彼此接触、彼此碰撞或以任何方式彼此交互。通常,在虚拟视图中将操纵实现为虚拟边界体积的至少一部分和与一个或更多个物理对象对应的3D数据在同一时间在相同位置处。因此,与操纵160虚拟边界体积有关的主题使得能够使虚拟边界体积与物理对象适配,这在如本公开内容的背景部分中所讨论的设置和情况中是期望的。
操纵160虚拟边界体积可以涉及接收例如来自用户5的一个或更多个用户输入,而对虚拟边界体积的操纵响应于接收所述一个或更多个用户输入而发生。可替选地,可以响应于例如移动物理实体而操纵虚拟边界体积,使得新图像被获取并且其对应的3D数据在虚拟视图中与虚拟边界体积相交。然而可替选地,虚拟边界体积可以响应于被创建而被直接操纵。在放置位置位于虚拟视图中的某个位置处,使得在创建了虚拟边界体积时其一部分与与物理实体对应的3D数据立即相交的情况下,可以实现这样的场景。
在一个实施方式中,虚拟边界体积与与物理实体对应的3D数据之间的一个或更多个3D交会部由虚拟边界体积的拖放功能引起。因此,拖放功能是本领域中已知的手段。然而,对于本公开内容,这样的功能可以例如涉及三个步骤:1)用户5正在标注要在虚拟视图中移动的虚拟边界体积,2)用户5将虚拟边界体积拖动到虚拟视图中的期望位置,以及3)用户5将虚拟边界体积放在虚拟视图中的期望位置处。因此,虚拟边界体积已经从虚拟视图中的一个位置移动至另一位置。在在所述拖放操作期间的任何时间点处,虚拟边界体积的任何部分已经与与一个或更多个物理实体对应的3D数据相交的情况下,虚拟边界体积被操纵。稍后将参照图3彻底地示出和说明拖放功能的示例。
在一个实施方式中,虚拟边界体积与与物理实体对应的3D数据之间的一个或更多个3D交会部由虚拟边界体积的改变大小功能引起。因此,改变大小功能是本领域中已知的手段。然而,对于本公开内容,这样的功能可以例如涉及三个步骤:1)用户5在虚拟视图中将放置位置标注为3D空间中的点,2)用户5将一个或更多个手指保持在虚拟视图上(例如,在放置位置处),在此期间虚拟边界体积继续增长直到用户5停止该操作,以及3)用户5通过从虚拟视图移除手指来停止操作。因此,虚拟边界体积已经从3D空间中的单个点增长至一定体积或任意大小,该一定体积或任意大小取决于用户5将其手指保持在虚拟试图上多久。以类似的方式,可以将改变大小功能实现为在操作期间收缩虚拟边界体积。在在所述改变大小操作期间的任何时间点处,虚拟边界体积的任何部分已经与与一个或更多个物理实体对应的3D数据相交的情况下,虚拟边界体积被操纵。可替选地,改变大小功能可以被实现为在虚拟视图中指定增长/收缩量或例如在增长/收缩量的0%与100%之间拖动滑块。改变大小功能可能在例如衣柜、较小的房间、角落等内的封闭空间中特别有用,其中,所述封闭空间中的墙阻碍了虚拟边界体积的扩展。稍后将参照图4彻底地示出和说明改变大小功能的示例。
为了改变虚拟边界体积的外观,必须执行许多计算或估计。在一个实施方式中,移动计算设备10的后端服务和/或活动/可见前端服务可以被配置成执行这些操作。可替选地,后端计算单元210被配置成执行这些操作。由于虚拟边界体积包括特定数据表示,因此操作与所述特定数据表示直接相关。例如,在虚拟边界体积被表示为基于体素的数据表示的情况下,通过执行操作来改变外观可能涉及例如计算或估计与一起形成虚拟边界体积的一个或更多个单独体素相关联的矢量数据。由于这样的技术是公知的,因此本文将不给予太多关注。
虚拟边界体积与一个或更多个物理实体的3D数据之间的3D交会部可以导致不同类型的操纵。不同类型的操纵可以取决于如何标记3D数据,即是否被标记为墙、地板、天花板或对象。
在一个实施方式中,操纵160虚拟边界体积涉及不允许穿过或超出物理环境的对象、墙、地板或天花板的操纵。例如,在获取的图像表示封闭的房间例如客厅的情况下,禁止虚拟边界体积在(从摄像装置视角来看的)天花板上方、地板下方、墙外侧的位置中或穿过所述客厅中的对象改变其外观(即被操纵)。因此,被操纵到、超出或位于这样的位置内的虚拟边界体积的部分被移除。该特定实施方式包括对象、墙、地板和天花板中的每一个的至少四个不同场景。在该实施方式中,x坐标或维度应被解释为房间的宽度,z坐标或维度应被解释为房间的深度,以及y坐标或维度应被解释为房间的高度。本领域技术人员意识到,现在将描述的四个场景中的任一个可能潜在地被视为四个不同的实施方式,所述四个不同的实施方式都不彼此依赖。
在其中3D数据被标记为对象的第一场景中,操纵160虚拟边界体积涉及移除虚拟边界体积的位于虚拟边界体积与标记为对象的3D数据之间的3D交会部内的部分。“3D交会部内”应被解释为3D数据的标记为对象的至少一部分和虚拟边界体积在同一时间位于3D空间中的相同位置处。因此,响应于其间的3D交会部,从虚拟边界体积中移除相交部分。换句话说,从虚拟边界体积中移除的相交部分是在操纵之前由标记为对象的3D数据和由虚拟边界体积在同一时间都占据的3D空间中的那些部分,即3D空间中交叠的部分。因此可以操纵虚拟边界体积,使得虚拟边界体积围绕标记为对象的所述3D数据扩展。虚拟边界体积可以例如围绕标记为C形式、L形式、倒置L形式或环形形式的对象的所述3D数据扩展(其中,中间中的开口是标记为对象的所述3D数据)。
在其中3D数据被标记为地板的第二场景中,操纵160虚拟边界体积涉及移除虚拟边界体积的位于虚拟边界体积与标记为地板的3D数据之间的3D交会部内的部分。此外,位于标记为地板的所述3D数据的垂直下方的任何部分将被移除。这是为了禁止在地板下面的位置中操纵虚拟边界体积。换句话说,虚拟边界体积的其相应y坐标低于标记为地板的相交3D数据的y坐标的任何部分被移除。然而,即使虚拟边界体积正在与地板交互,虚拟边界体积在x维度和z维度上的扩展也不被禁止。
在其中3D数据被标记为天花板的第三场景中,操纵160虚拟边界体积涉及移除虚拟边界体积的位于虚拟边界体积与标记为天花板的3D数据之间的3D交会部内的部分。此外,位于标记为天花板的所述3D数据的垂直上方的任何部分将被移除。这是为了禁止在天花板上方的位置中操纵虚拟边界体积。换句话说,虚拟边界体积的其相应y坐标比标记为天花板的相交3D数据的y坐标高的任何部分被移除。然而,即使虚拟边界体积正在与天花板交互,虚拟边界体积在x维度和z维度上的扩展也不被禁止。
在其中3D数据被标记为墙的第四场景中,操纵160虚拟边界体积涉及移除虚拟边界体积的位于虚拟边界体积与标记为墙的3D数据之间的3D交会部内的部分。此外,位于标记为墙的所述3D数据的水平外侧的任何部分将被移除。“水平外侧”应被解释为法线指向远离获取的图像的视点的墙的侧面,即,房间的“外侧”。这是为了禁止在房间的外侧的位置中操纵虚拟边界体积。换句话说,虚拟边界体积的位于指向远离视点的墙平面的侧面上的任何部分被移除。然而,即使虚拟边界体积正在与地板交互,虚拟边界体积在y维度上的扩展也不被禁止。
此外,在替选实施方式中,操纵160虚拟边界体积的步骤可以基于放置位置。在这些实施方式中,放置位置与物理实体的标记的3D数据相关联。这些实施方式与某些特定情况相关,所述特定情况可能要求关于在与物理实体的标记的3D数据相交时如何操纵虚拟边界体积的进一步限制。尽管本领域技术人员可能潜在地想到相关的示例,但现在将描述这样的实施方式的两个不同的示例。
在第一示例中,所述操纵160包括移除虚拟边界体积的位于标记为对象的3D数据的垂直上方的部分。这意味着,在基于与标记为对象的3D数据的3D交会部来操纵160虚拟边界体积时,部分可以被添加在位于标记为对象的所述3D数据的垂直下方的空间中,而部分不能被添加在位于标记为对象的所述3D数据的垂直上方的空间中。在这种情况下,虚拟边界体积通常可以是L形的(参见例如图3至图4和图5的左部)。
在第二示例中,所述操纵160包括移除虚拟边界体积的位于标记为对象的3D数据的垂直下方的部分。这可以被看作是第一示例的相对比的情况,即,操纵160涉及部分不能被添加在位于标记为对象的所述3D数据的垂直下方的空间中,而部分可以被添加在位于标记为对象的所述3D数据的垂直上方的空间中。在这种情况下,虚拟边界体积通常可以是倒置的L形(参见例如,图5的右部)。此外,该示例涉及将标记为对象的3D数据分割成一个或更多个分离对象并且针对一个或更多个分离对象中的每一个相应地标记3D数据的步骤。这可以在生成120虚拟视图的同时完成,即与识别并标记每个3D数据一起完成。在该示例中,放置位置与作为一个或更多个分离对象当中的特定对象的3D数据相关联。因此,分割允许取决于分离对象的数目不同地操纵160虚拟边界体积。用户5可以例如通过提供指示一个或更多个分离对象当中所选择对象的用户输入来决定虚拟边界体积将由哪个对象操纵。例如,在存在例如三个对象堆叠在彼此的顶部的情况下,用户5可以选择三个对象当中的该操纵将基于的那个特定对象。因此,虚拟边界体积的位于标记为所选择特定对象的3D数据的垂直下方的部分被移除。
如图1中所见,方法100还可以包括接收155;165用于虚拟边界体积的至少一部分的进一步的用户操纵的附加用户输入的步骤。该步骤可以在所述操纵步骤160之前或之后执行。虚拟边界体积的进一步的用户操纵允许用户5进一步细化虚拟边界体积以更精确地适配期望的形状。例如,在已经在视图中使用物理实体的3D数据来操纵160虚拟边界体积并且用户5想要例如移除虚拟边界体积的任何附加部分或者向虚拟边界体积添加任何附加部分的情况下,附加用户输入允许用户5这样做。这可以在用户界面中使用本领域已知的任何合适的虚拟工具诸如例如虚拟绘图工具、橡皮擦工具、刮削工具等来执行。步骤160和155;165的组合使得用户5能够提供非常准确的虚拟边界体积形状以用作用于检索至少一个3D对象模型的搜索输入,所述至少一个3D对象模型适配所操纵的虚拟边界体积。
跟随图1,步骤190、192、194、196和198都与使用3D体积的定义作为搜索输入的3D对象模型检索有关。在这种情况下,被用作搜索输入的是所操纵的虚拟边界体积,并且特别是其体积的定义。用于检索3D中的对象模型的技术是公知的,并且本公开内容不限于一种特定类型的对象模型检索技术。例如,在虚拟边界体积基于体素数据表示的情况下,定义网格模型的体积表示。然后应用体素化技术,使得包含被表示为多边形网格的模型的连续3D空间被转换成离散3D体素空间。然后,体素化通常在包括离散化、采样和存储的三个阶段中进行。
可替选地,使所操纵的虚拟边界体积与至少一个3D模型适配可以被解释为形状相似。这可以以各种不同的方式来实现,所述各种不同的方式都不应被解释为限制范围。例如,至少一个3D模型可以在某种程度上适配所操纵的虚拟边界体积,该程度为例如90%、60%或40%。在另一示例中,相似性可以与至少一个维度有关,诸如x维度下95%适配、y维度下50%适配和z维度下20%适配。在另一示例中,相似性可以与一种特定类型的形式有关,例如,体积的凹形外壳优选地返回凹形3D对象模型。所操纵的边界体积与3D模型之间的不同相似性阈值可以由用户5定义或被选择为预定设置。相似性阈值也可以取决于例如物理环境或实体尺寸、所操纵的虚拟边界体积大小、先前的选择等自调整。在上面所提出的示例中的任一示例中,适配的3D对象模型优选地占据所操纵的虚拟边界体积内尽可能多的体积。
在一个实施方式中,过滤可以基于体积大小阈值,其中,由用作搜索输入的所操纵的虚拟边界体积的体积大小划分的3D对象模型的体积大小超过体积大小阈值。例如,在体积大小阈值被设置为0.8的情况下,体积大小小于用作搜索输入的所操纵的虚拟边界体积的体积大小的80%的任何3D对象模型将被过滤掉。
在上面提供的示例中的任何一个示例中,在获得多于一个适配的3D模型时,可以根据一个或更多个相似性阈值对适配的3D模型进行排序。为此,与具有较高相似性的3D对象模型相比,相对于所操纵的虚拟边界体积具有较低相似性的3D对象模型可以被排序为相关性较小。例如,相对于作为搜索输入的较大的所操纵的虚拟边界体积,非常小的对象模型与较大对象体积相比通常将被认为成具有较低的相似性。在一个实施方式中,适配的3D模型的相关性因此以关于大小的降序或升序排序。在使用基于体素的数据表示的实施方式中,可以根据用作搜索体积的所操纵的边界体积中完全填充的体素的量来对适配的3D对象模型进行排序。这可以在移动计算设备10的前端服务中被计算,或者可替选地在后端服务中诸如在后端计算单元210中被计算,并且然后在移动计算设备10处被接收。
尽管上面的示例讨论了关于体积大小的排序和过滤,但是本领域技术人员意识到,排序和/或过滤可以可替选地基于形状、房间特征、促销活动、季节性、家居装饰灵感等。因此,用于对检索到的3D对象模型进行排序或用于搜索过滤器的相似性阈值不限于体积大小。在一些实施方式中,用户5可以基于用户偏好来决定一个或更多个相似性阈值。
在3D对象模型检索的一个实施方式中,接收至少一个适配的3D对象模型作为元数据。因此,每个适配的3D对象模型可以被情境化并编目成关于用作搜索输入的所操纵的虚拟边界体积的相应相关性(例如,如上面所讨论的相似性阈值)。
在一个实施方式中,方法100还包括接收172用户输入以用于进一步指定如何执行搜索例如作为搜索过滤器的步骤。具体地,所述用户输入涉及基于多个考虑来指定模型集的内容。现在将参照三个示例来描述这样的考虑。可以实现其他类似的示例。
在第一示例中,模型集可以基于获取的图像中的物理环境。因此,模型集中的3D对象模型将与相关联的环境相关。在该示例中,在获取的图像描绘例如卧室的情况下,模型集将因此包含通常与卧室相关联的对象模型诸如例如,床、闹钟、枕头或床头柜。
在第二示例中,模型集可以基于一个或更多个物理实体当中的物理实体。因此,模型集中的3D对象模型将与相关联的物理实体相关。相关联的物理实体通常是与所操纵的虚拟边界体积先前相交或接近的物理实体,尽管可以使用虚拟视图中的其他物理实体。在本示例中,在物理实体是餐桌的情况下,模型集将因此包含通常与餐桌一起使用的对象模型诸如例如,餐椅、托盘、桌布或花瓶。
在第三示例中,模型集可以基于如上面所描述的第一示例和第二示例的组合。因此,物理环境和一个或更多个物理实体当中的物理实体可以一起用作模型集的内容的基础,从而额外地缩小搜索空间。
在其中放置位置与标记的3D数据相关联的实施方式中,模型集还可以基于所述放置位置。因此,模型集中的3D对象模型将与与墙、地板、天花板或对象中的任一个相关联的放置位置相关。因此,可以取决于放置位置位于何处,在与墙、地板、天花板或对象中的任一个相关的3D对象模型之间进一步进行过滤。在放置位置与标记为墙的3D数据相关联的情况下,模型集将包含与墙相关、例如悬挂在墙上或靠在墙上的模型诸如例如画框、TV吊架、帽架、镜子等。在放置位置与标记为地板的3D数据相关联的情况下,模型集将包含与地板相关、例如立在地板上的模型诸如例如椅子、沙发、床或抽屉。在放置位置与标记为天花板的3D数据相关联的情况下,模型集将包含与天花板相关、例如附接至天花板或从天花板垂下的模型诸如例如吊灯、吸顶灯或悬挂式花盆。在放置位置与标记为对象的3D数据相关联的情况下,模型集将包含与对象相关、例如通常与所述对象一起使用或附接至所述对象的模型诸如例如立在桌子上的花瓶、立在办公桌上的显示器或放置在床上的枕头。
可以针对数据库诸如先前已经描述的数据库单元220执行搜索。每当执行搜索时,可以从数据库单元220检索包括至少一个3D对象模型的模型集。搜索可以由用户5通过移动客户端设备10传送指示搜索的用户输入来触发。因此,用户5可以在执行搜索之前完成虚拟边界体积的操纵步骤160和155;165。可替选地,所操纵的边界体积可以响应于被操纵而被动态地用作搜索输入。因此,从数据库单元220检索至少一个当前适配的3D对象模型。这不需要用户5手动执行搜索,因为将连续地检索当前适配所操纵的虚拟边界体积的3D对象模型。
在已经检索到适配所操纵的虚拟边界体积的至少一个3D对象模型之后,方法100包括在虚拟视图中显示180所述至少一个3D对象模型的步骤。因此,允许用户5直接查看所操纵的虚拟边界体积内的3D对象模型。在本发明的不同实施方式中,允许用户5使用各种不同的技术来查看至少一个3D对象模型。
在一个实施方式中,显示180 3D对象模型还可以触发虚拟边界体积被隐藏,使得用户5仅可以看见3D对象模型。可替选地,用户5可以提供用于决定虚拟边界体积的透明度的附加用户输入。可替选地,虚拟边界体积将具有交替的透明度,该交替的透明度取决于用户5离实际物理实体多远,或者用户5已经放大虚拟视图的程度。可替选地,在用户5在虚拟视图中的位置上例如在3D对象模型上点击的情况下,虚拟边界体积的透明度可以增加或减少。然而可替选地,虚拟视图可以包括滑块,该滑块可以在任一方向上被拖动以在0%至100%之间增加或减少虚拟边界体积的透明度。本领域技术人员可以实现其他透明度方案。
在检索模型集的实施方式中,方法100还可以包括在模型集中的至少一个3D对象模型当中确定推荐的3D对象模型的步骤。显示180所述至少一个3D对象模型的步骤因此可以涉及显示推荐的3D对象模型。推荐的3D对象模型可以基于与所操纵的虚拟边界体积相关联的特征诸如关于物理环境、物理实体、标记的3D数据、放置位置、适配比、报告的总体积、计算的体素化体积和/或计算的多边形体积等的适当模型类型中的任一个或组合。可以针对此目的应用得分方案,其中,推荐并且由此显示具有最高得分的3D对象模型。例如,在刚才提到的特征中的任何一个对于某个3D对象模型是真的情况下,可以针对所述某个3D对象模型添加并累积得分。然后可以将得分与模型集中的其他3D对象模型进行比较。因此,具有最高得分的3D对象模型被选择为推荐的3D对象模型。得分方案和推荐算法因此在现有技术中是已知的。因此,任何常规手段诸如协作过滤、基于内容的过滤、多准则推荐系统、移动推荐系统或其任何组合可以用于确定推荐的3D对象模型。
用户5可以被给予虚拟视图中的3D对象模型的不同观看选项。在一个实施方式中,所显示的3D对象模型和/或虚拟边界体积可以被提供有虚拟视图中的标记。标记可以例如允许用户5在模型集中的3D对象模型即搜索结果之间悬停、改变或滚动。附加地或可替选地,标记可以允许用户5通过例如沿着3D空间中的平面移动3D对象模型来调整3D对象模型在虚拟视图中的位置。
参照图3、图4、图5和图6,示出了根据本公开内容的计算机化方法100的四个示例性实施方式。现在将描述的实施方式中的所有实施方式示出了表示为桌子的物理实体和虚拟边界体积。所示的手将被解释为用户5的手或当前正通过虚拟视图操纵虚拟边界体积的指针设备(例如,用于与虚拟视图交互的虚拟2D工具)。对于示例性实施方式中的任一个,以及在由本领域技术人员实现的任何另外的实施方式中,用户5可以在整个操纵过程的任何点处决定新的放置位置。为此,用户5可以提供指定虚拟视图内的新放置位置的输入,即使在已经创建以及/或者操纵虚拟边界体积之后也是如此。例如,用户5可以将放置位置从地板移动至桌子,或者从桌子移动至地板。
图3是使用拖放功能操纵160虚拟边界体积的示例。在图3中,虚拟边界体积已经被创建并放置在与桌子相邻的放置位置处,并且用户5正在将虚拟边界体积朝向桌子拖动。因此,可以看出虚拟边界体积的一部分与桌子的一部分相交。因此,相交部分正在从虚拟边界体积中被移除。此外,由于放置位置与地板相关联(如已经根据本公开内容中的一些实施方式所描述),因此位于桌子的垂直上方的任何部分被移除。在用户5将虚拟边界体积进一步朝向桌子拖动时,虚拟边界体积的附加部分由此被移除。然后将执行3D对象模型搜索。因此,适配的3D对象模型被找到并且替换所操纵的虚拟边界体积,而其他不适配的3D对象模型(例如,较高的椅子)已经被过滤掉。
图4是使用改变大小功能来操纵160虚拟边界体积的示例。虚拟边界体积已经被创建并且放置在与桌子相邻的放置位置处。然后,用户5在虚拟视图处将手指保持在虚拟边界体积的顶部。因此,虚拟边界体积的大小正在增加。当用户5将其手指保持在虚拟边界体积的顶部直到虚拟边界体积与桌子相交时,由于放置位置与地板相关联(如已经根据本公开内容中的一些实施方式所描述),虚拟边界体积中的相交部分由此被移除。此外,虚拟边界体积的位于桌子的垂直上方的部分被移除。可以看出虚拟边界体积相对于桌子按照L形形式扩展。然后将执行3D对象模型搜索。因此,适配的3D对象模型被找到并且替换所操纵的虚拟边界体积。
图5是操纵160虚拟边界体积的示例。虚拟边界体积已经被创建并且放置在3D空间中与桌子当前相交的放置位置处。在该示例中,在虚拟边界体积因桌子被操纵之前,用户5被允许决定虚拟边界体积的部分是在桌子的垂直上方还是垂直下方被移除,这被描绘为剪刀图标。该决定在虚拟边界体积的部分根据所选择的放置位置而被移除的意义下与放置位置直接相关(如已经根据本公开内容中的一些实施方式所描述)。然后,所操纵的虚拟边界体积被示出成假设两种不同形状中的一种,例如,L形(左侧)或倒置的L形(右侧)。当用户5使用所操纵的虚拟边界体积作为输入来执行对象搜索时,搜索结果将因此根据两个形状中的哪一个被提供为搜索输入而不同。如图中所见,L形体积检索椅子作为适配的3D对象模型,而倒置的L形体积检索灯作为适配的3D对象模型。
图6是使用拖放功能操纵160虚拟边界体积的示例。虚拟边界体积已经被创建并且放置在与桌子相邻的放置位置处。当用户5已经朝向桌子拖动虚拟边界体积时,虚拟边界体积的部分与桌子的部分相交。因此,相交部分正在从虚拟边界体积中被移除。在该示例中,与图3中提出的示例相对比,位于桌子的垂直上方的任何部分没有被移除。因此,虚拟边界体积相对于桌子呈C形形式。在用户5要额外增加虚拟边界体积的大小的情况下,存在整个桌子将被该体积包围的可能性。因此,虚拟边界体积呈环形形状。当用户5已经决定要执行3D对象模型搜索时,适配的3D对象模型被找到并且替换所操纵的虚拟边界体积。在这种情况下,适配的3D对象模型是具有在桌子的垂直上方延伸的扶手的椅子。
在一个实施方式中,不同的操纵功能例如拖放或改变大小可以向用户5提供附加的操纵选项。操纵选项可以涉及响应于在3D空间中被一个或更多个物理实体相交而决定如何操纵虚拟边界体积。例如,用户5可以决定操纵是否应当按照图3、图5(最右边的图像)或图6进行。为了清楚起见,用户5可以决定虚拟边界体积的部分是否应该仅在3D交会部内被移除,或者附加地在所述一个或更多个物理实体的垂直上方或下方的位置处被移除。然而,作为预定设置,通常按照图6操纵虚拟边界体积。
图7示出了计算机化方法100。步骤110;120;130通常根据如上面结合图1至图6所公开的本公开内容来执行。另一方面,与已经结合图1至图6先前描述的内容相比,将从此处开始描述的步骤132、134和136与创建虚拟边界体积的替选方式有关。步骤132、134和136的主要目的之一是创建基于搜索的虚拟边界体积。因此,与先前已经描述的主题相比,在以下实施方式中,在虚拟边界体积的任何操纵之前执行搜索。这是为了向用户提供当前适配虚拟边界体积的3D对象模型中的哪一个以及多少个的外观的视觉指示。方法步骤132涉及获得多个3D对象模型的边界体积。方法步骤134涉及将多个3D对象模型的所述边界体积合并在虚拟边界体积中。合并相对于边界体积中的每一个边界体积内的特定3D点pn发生,使得特定3D点在虚拟边界体积中重合。方法步骤136涉及将虚拟边界体积显示在虚拟视图中。计算机化方法100可以由移动计算设备诸如本文提出的移动计算设备10来实现。
可以提供计算机程序产品,该计算机程序产品包括用于在计算机程序代码由处理设备执行时执行根据图7的计算机化方法100的计算机代码。处理设备可以例如是能够执行所公开的方法步骤110;120;130;132;134;136的移动计算单元10中的CPU或者任何外部CPU或其他可编程逻辑设备。
在图8a至图12c中,示出了方法步骤132、134、136、137和138的不同实施方式。这些实施方式提出了根据本公开内容的创建虚拟边界体积的替选方式。
参照图8a至图8d,示出了创建虚拟边界体积的示例性实施方式。在该实施方式中,方法100涉及获得132多个3D对象模型的边界体积的步骤。如图8a中所见,3D对象模型表示四种不同模型的沙发。允许移动计算设备10的用户(例如,通过在电子商务站点处或家居规划工具当中的可用产品范围中进行过滤或搜索等)选择用作创建虚拟边界体积的基础的3D对象模型的类型。这有利地向用户提供与所获得的3D对象模型中的所有3D对象模型的外观以及可以如何使它们适配于物理环境相关的即时反馈。与例如,如图2a至图2d中所例示的和先前所描述的手动绘制初始边界体积和选择放置位置相比,该实施方式使用户更好地了解用户感兴趣的产品将在物理环境中占据什么体积。考虑到所获得的3D模型可以被可视化,同时仍然可能存在许多不同的潜在适配的产品,因此可以促进更方便的进一步的过滤过程。这样的进一步的过滤过程可以例如是根据图3至图6所描述的实施方式中的任一个实施方式,或者使用任何其他过滤手段,诸如手动取消选择对象以将其从列表中移除,并且因此减小虚拟边界体积的大小。
获得132还可以涉及基于对象模型过滤输入从数据库单元220检索3D对象模型。对象模型过滤输入通常可以被解释为用于提供多个不同的3D对象模型的任何类型的可能过滤选项、或过滤选项的任何组合。
在一个实施方式中,对象模型过滤输入是产品类型。例如,产品类型可以是特定物品诸如沙发、灯、办公桌、花瓶、床、餐具柜等。在一个实施方式中,对象模型过滤输入是产品类别。产品类别可以例如是与类别相关的特定系列物品诸如户外或花园家具、货架单元,该产品类别通常具有比产品类型更宽的范围。在一个实施方式中,对象模型过滤输入是产品外观。产品外观可以例如与特定颜色、形状、尺寸、纹理、材料等有关。在一个实施方式中,对象模型过滤输入是产品系列。产品系列可以例如是旧系列、当前系列、即将到来的系列,其中,系列可以包括不同类别的不同产品例如,沙发、灯、桌子和椅子。作为这些对象模型过滤输入的组合的示例,用户可以检索深色皮革沙发的3D对象模型,该深色皮革沙发具有最多为3x2x1.5 m的尺寸并且是目前正在销售的最新冬季系列的一部分。可以实现对象模型过滤输入的任何这样的附加组合。
在图8b中,示出了将多个所获得的3D对象模型的边界体积合并134到虚拟边界体积中的实施方式。在本示例中,表示沙发的四个对象模型已经被合并,但来自两个上至任意数目中的任何数目的对象模型可以用作创建虚拟边界体积的基础。合并的虚拟边界体积中包括的对象模型越多,过滤计算越复杂。然而,通过包括更多的对象模型,将改善给予用户关于例如在家中占据空间的反馈。具有例如虚拟边界体积的基于体素的数据表示可以在这两个方面提供令人满意的结果。因此,表示合并的边界体积的虚拟边界体积可以包括如在获得3D对象模型期间所获得的所有边界体积。
合并134相对于所获得的3D对象模型的边界体积中的每一个边界体积中的特定3D点pn(在本文也称为合并点)发生。特定3D点pn中的“n”可以是从1至nmax的整数值,其中,nmax是所获得的边界体积的数目。因此,对于边界体积中的每一个边界体积,特定3D点p1、p2、p3、p4将在合并的虚拟边界体积中的点p1至p4处重合。换句话说,在完成合并之后,边界体积通常位于3D空间中的相同位置处,使得边界体积叠加或叠合在彼此的顶部。
在一些实施方式中,合并点pn取决于所获得的3D对象的预期放置。可以将预期放置作为所获得的3D对象模型上的元数据来接收。可以使用算法或者基于用户输入来自动确定所选择的合并点pn。
例如,在打算将所获得的3D对象都放置在水平表面上的情况下,点pn被选择成使得边界体积被合并,使得例如通过选择每个边界体积的底部中心点作为所获得的3D对象模型的边界体积中的每一个边界体积的合并点,使每个边界体积的下边缘重合。这是图8b的示例中的情况。
在打算将所获得的3D对象都从水平表面悬挂的情况下,点pn被选择成使得边界体积被合并,使得例如通过选择每个边界体积的顶部中心点作为所获得的3D对象模型的边界体积中的每一个边界体积的合并点,使每个边界体积的上边缘重合。
在打算将所获得的3D对象都悬挂在垂直表面上的情况下,点pn被选择成使得边界体积被合并,使得例如通过选择每个边界体积的后中心点作为所获得的3D对象模型的边界体积中的每一个边界体积的合并点,使每个边界体积的“后侧”(旨在面向垂直表面的一侧)上的垂直边缘重合。
在所获得的3D对象模型的预期放置不同的情况下,可以应用多数规则来决定所获得的3D对象模型的边界体积中的每一个边界体积的合并点,或者可以选择预定义的特定3D点,或者用户可能必须从可能选择的列表中指示合并点,或者可以示出错误消息使得用户必须在合并边界体积之前从所获得的3D对象模型中移除一些对象。
在合并134之后,方法100还包括将虚拟边界体积显示136在虚拟视图中的步骤。因此,显示136给予用户由3D对象模型占据的“叠合”体积(虚拟边界体积)的紧凑指示。这通常可以根据如上面所描述的显示步骤170来执行。
考虑到图8a至图8b及与其相关联的描述,与参照图2a至图2d所公开的方式相比,这些实施方式提出了选择放置位置的替选方式。由于边界体积的多个3D模型将构成用作用于创建虚拟边界体积的基础的内容,因此在这些实施方式中,放置位置可以被考虑成表示由所获得的边界体积的空间或者可替选地由虚拟边界体积的空间所覆盖的位置。
对于参照图8a至图12c所提出的实施方式,可以利用各种不同的技术来选择放置位置。本文将提供一些示例,但这些示例不应被解释为限制本公开内容的范围。
在一个实施方式中,可以在获得3D对象模型的边界体积之后自动选择放置位置,或者可替选地将它们合并到虚拟边界体积中。自动选择可以例如在距移动计算设备10的摄像装置单元任意距离(例如,0.5m、1.0m、10m或通常任何距离)处和任意角度(例如,10°、30°、50°或通常任何角度)中发生。可替选地,可以基于已经获得的产品的类型自动选择放置位置。例如,在已经获得了表示诸如墙绘画或镜子的墙产品的3D模型的多个边界体积的情况下,放置位置可以被自动选择为墙上的当前最靠近移动计算设备10的摄像装置单元的位置。可以使用例如如先前所讨论的ARKit/RealityKit框架根据物理环境的扫描表面和标记表面来计算当前最近的墙。可以针对地板产品、天花板产品或者可以放置在其他产品上的产品实现相同的步骤。
在一个实施方式中,可以通过用户手动点击虚拟视图中的任意位置来确定放置位置。任意位置可以例如是地板处、墙处、另一对象处、天花板处等的位置。可替选地,在获得多个3D模型的边界体积之前,放置位置已经由用户预定。
在一个实施方式中,可以基于先前放置的边界体积来确定放置位置。例如,在一个或更多个边界体积在较早的一些时间点处被定位在虚拟视图中的某处的放置位置处的情况下,任何即将获得的边界体积默认可以被放置在类似的放置位置处。
跟随图8c和图8d,方法100通过执行如本公开内容中已经例如参照图3至图6描述的步骤中的一个或更多个来继续,不同之处在于,将根据已经合并到虚拟边界体积中的3D对象模型向用户提供当前适配的3D对象模型的反馈。
无论何时虚拟视图中发生任何改变,都可以提供当前适配的3D对象模型的反馈。更具体地,无论何时多个3D模型的边界体积或合并的虚拟边界体积发生任何改变,都可以提供当前适配的3D对象模型的反馈。这样的改变可以是已经在整个本公开内容中描述的操纵。可替选地,改变可以是与影响虚拟边界体积的真实世界环境相关的任何其他类型的改变。例如,无论何时移除虚拟边界体积的部分,都可以接收当前适配的3D对象模型的反馈。如图3中所见的以及用与其相关联的实施方式所说明的,当虚拟边界体积被拖放到由真实世界对象诸如桌子当前占据的位置处时,可能发生这种情况。如图4中所见的以及用与其相关联的实施方式所说明的,当虚拟边界体积被改变大小使得其与真实世界对象诸如桌子相交时,可能发生这种情况。如图5中所见的以及用与其相关联的实施方式所说明的,当用户决定将虚拟边界体积成形为在相邻的真实世界对象诸如桌子下方或上方延伸时,可能发生这种情况。可替选地,可以在接收到用户操纵虚拟边界体积的至少一部分的附加用户输入之后提供反馈。
如图8c至图8d中所见,在该实施方式中,方法100还包括在虚拟边界体积中显示137已经合并到虚拟边界体积中的那些3D对象模型的指示。可以根据已经合并的3D对象模型以不同的形式给出指示。例如,指示可以是3D对象模型的半透明轮廓,使得3D对象模型中的每一个3D对象模型的轮廓被可视化。可替选地,指示可以是在空间中在每个方向上指示可用3D对象模型中的在所述方向上延伸最远的那一个3D对象模型的外部轮廓。因此,可以创建最大化的“斑点”,这在每个方向上可视化最大可能的3D对象模型。可以实现各种不同的指示,所述各种不同的指示都不被视为对显示137的限制。
在一个实施方式中,方法100还包括接收138指示一个或更多个查看选项的用户输入。查看选项与用户希望如何查看由已经合并到虚拟边界体积中的边界体积表示的3D对象模型有关。查看选项可以例如涉及3D对象模型中的每一个3D对象模型的透明度、轮廓、阴影、颜色、其他视觉效果等。
在完成对虚拟边界体积的操纵之后,保留为虚拟边界体积中的适配的3D对象模型的总数通常少于操纵之前。在图8d中,仅留下一个适配虚拟边界体积的3D对象模型。因此,方法100还包括在虚拟视图中显示适配虚拟视图中的虚拟边界体积的至少一个3D对象模型的步骤。这可以类似于图1中的显示步骤180来执行。
在图9a至图9b、图10a至图10c、图11a至图11c和图12a至图12c中,示出了合并边界体积的示例。出于与可视化的简化相关的目的,边界体积被描绘为不同尺寸的椭球体。然而,椭球体可以被解释为表示不同的3D对象模型,所述不同的3D对象模型将被合并到虚拟边界体积中,很像图8a至图8d。在示例的每个示例中,三个不同的边界体积被合并。
在图9a至图9b中,三个任意的3D点p1、p2和p3用作其中发生合并的点。因此,边界体积相对于彼此以重合点p1至p3对准在虚拟边界体积中。在该示例中,点p1、p2和p3在完全随机的基础上选择。
在图10a至图10c中所示的实施方式中,特定3D点p1、p2和p3位于边界体积内的相同相对位置处。在该示例中,点p1、p2和p3中的每一个点被可视化为椭球体内的质心点。因此,虚拟边界体积中的重合点p1至p3是被合并到虚拟边界体积中的所有三个边界体积的共同质心点。因此,重合点p1至p3可以被解释为具有以下坐标:
其中,x、y和z是3D空间中虚拟边界体积的坐标。图10b和图10c示出了关于完全相同的点的合并,但可视化的不同之处在于,不同的边界体积分别被放置在虚拟视图的前景和背景中。
在图11a至图11c所示的实施方式中,特定3D点p1、p2和p3位于边界体积内的相同相对位置处。在该示例中,点p1、p2和p3中的每一个点被可视化为每个边界体积内的最左边的点。此外,图11b至图11c示出了已经合并到虚拟边界体积中的边界体积的一些不同查看选项。例如,图案可以表示不同的高亮、阴影、着色、视觉效果等。
在图12a至图12c所示的实施方式中,特定3D点p1、p2和p3位于边界体积内的相同相对位置处。在该示例中,点p1、p2和p3中的每一个点被可视化为每个边界体积内的顶部中心点。此外,图12b至图12c示出了已经合并到虚拟边界体积中的边界体积的一些不同查看选项。例如,查看选项可能涉及示出或不示出边界体积中的任一个边界体积的轮廓。
如在合并的实施方式中已经证明的,特定3D点pn可以是边界体积中的每一个边界体积内的任意点,使得特定3D点在虚拟边界体积中重合。因此,特定3D点可以是质心点、顶部中心点、底部中心点、顶部边缘点、底部边缘点中的任一个。可替选地,特定3D点可以是其之间的任何点。
图13示出了计算机化方法400。步骤110;120;130;140;150;160;170;180通常将根据本公开内容执行。计算机化方法400可以由移动计算设备诸如本文提出的移动计算设备10实现。
可以提供计算机程序产品,该计算机程序产品包括用于在计算机程序代码由处理设备执行时执行根据图13的计算机化方法400的计算机代码。处理设备可以例如是能够执行所公开的方法步骤110;120;130;140;150;160;170;180的移动计算单元10中的CPU或任何外部CPU。
在以下编号的条款中描述了本公开内容的另外的替选方面。
条款1:一种计算机化方法,包括:获取包括一个或更多个物理实体的物理环境的图像;基于获取的图像生成虚拟视图,虚拟视图是物理环境的3D表示并且包括与物理环境的一个或更多个物理实体对应的3D数据;显示在物理环境的获取的图像上叠加的虚拟视图;获得多个3D对象模型的边界体积;将多个3D对象模型的所述边界体积合并到虚拟边界体积中,所述合并相对于边界体积中的每一个边界体积内的特定3D点发生,使得特定3D点在虚拟边界体积中重合;以及将虚拟边界体积显示在虚拟视图中。
条款2:根据条款1的计算机化方法,其中,特定3D点位于多个3D对象模型的边界体积内的相同相对位置处。
条款3:根据条款2的计算机化方法,特定3D点是质心点、顶部中心点、底部中心点、顶部边缘点或底部边缘点中的任一个。
条款4:根据条款1至3中任一项的计算机化方法,其中,所述获得包括基于对象模型过滤输入从数据库单元检索3D对象模型。
条款5:根据条款4的计算机化方法,对象模型过滤输入是产品类型;产品类别;产品外观;产品系列;以及促销优惠中的一个或更多个。
条款6:根据条款5的计算机化方法,其中,方法还包括在虚拟边界体积中显示已经合并到虚拟边界体积中的边界体积的3D对象模型的指示。
条款7:根据条款6的计算机化方法,其中,方法还包括接收用户输入,该用户输入指示已经合并到虚拟边界体积中的边界体积的3D对象模型的一个或更多个观看选项。
条款8:根据条款1至7中任一项的计算机化方法,其中,虚拟边界体积包括基于体素的数据表示。
条款9:根据条款1至8中任一项的计算机化方法,其中,方法还包括:在虚拟视图中基于虚拟边界体积与与一个或更多个物理实体对应的所述3D数据之间在3D空间中的一个或更多个交会部来操纵虚拟边界体积;在虚拟视图中显示所操纵的虚拟边界体积,其中,所操纵的虚拟边界体积的至少一部分被放置在虚拟视图内的放置位置处;以及在虚拟视图中显示多个3D对象模型当中的适配所操纵的虚拟边界体积的至少一个3D对象模型。
条款10:根据条款9的计算机化方法,其中,所述操纵虚拟边界体积包括从虚拟边界体积移除至少一部分和向虚拟边界体积添加至少一部分中的至少一个。
条款11:根据条款9或10的计算机化方法,其中,在所述操纵虚拟边界体积之前或之后,方法还包括接收附加用户输入用于用户操纵虚边界体积的至少一部分。
条款12:根据条款9至11中任一项的计算机化方法,其中,所操纵的边界体积响应于被操纵而被动态地用作搜索输入,其中,检索所获得的多个3D对象模型当中的至少一个当前适配的3D对象模型。
条款13:根据条款9至12中任一项的计算机化方法,还包括:在所获得的多个3D对象模型当中确定推荐的3D对象模型,其中,在虚拟视图中显示适配所操纵的虚拟边界体积的至少一个3D对象模型的步骤包括显示推荐的3D对象模型。
条款14:一种移动计算设备,该移动计算设备被配置成:获取包括一个或更多个物理实体的物理环境的图像;基于获取的图像生成虚拟视图,虚拟视图是物理环境的3D表示并且包括与物理环境的一个或更多个物理实体对应的3D数据;显示在物理环境的获取的图像上叠加的虚拟视图;获得多个3D对象模型的边界体积;将多个3D对象模型的所述边界体积合并到虚拟边界体积中,所述合并相对于合并的边界体积中的每一个边界体积内的特定3D点发生,使得特定3D点在虚拟边界体积中重合;以及将虚拟边界体积显示在虚拟视图中。
条款15:一种计算机程序产品,该计算机程序产品包括用于在计算机程序代码由处理设备执行时执行根据条款1至13中任一项的计算机化方法的计算机代码。
上面已经参照本发明的实施方式详细地描述了本发明。然而,如本领域技术人员容易理解的,其他实施方式同样可以在如由所附权利要求限定的本发明的范围内。
Claims (15)
1.一种计算机化方法(100),包括:
获取(110)包括一个或更多个物理实体的物理环境的图像;
基于获取的图像生成(120)虚拟视图,所述虚拟视图是所述物理环境的3D表示并且包括与所述物理环境的所述一个或更多个物理实体对应的3D数据;
显示(130)在所述物理环境的所述获取的图像上叠加的所述虚拟视图;
接收(140)指示所述虚拟视图内的放置位置的用户输入;
接收(150)用于在所述虚拟视图内创建虚拟边界体积的用户输入;
在所述虚拟视图中,基于所述虚拟边界体积和与所述一个或更多个物理实体对应的所述3D数据之间在3D空间中的一个或更多个交会部来操纵(160)所述虚拟边界体积;
在所述虚拟视图中显示(170)所操纵的虚拟边界体积,其中,所述操纵的虚拟边界体积的至少一部分被放置在所述放置位置处;以及
在所述虚拟视图中显示(180)适配所述操纵的虚拟边界体积的至少一个3D对象模型。
2.根据权利要求1所述的计算机化方法(100),其中,所述操纵(160)所述虚拟边界体积包括以下步骤中的至少一个:
从所述虚拟边界体积移除至少一部分,以及/或者
向所述虚拟边界体积添加至少一部分。
3.根据权利要求1或2所述的计算机化方法(100),其中,3D空间中的所述一个或更多个交会部由以下中的一个或更多个引起:
所述虚拟边界体积的拖放功能,以及
所述虚拟边界体积的改变大小功能。
4.根据前述权利要求中任一项所述的计算机化方法(100),其中,在所述操纵(160)所述虚拟边界体积之前或之后,所述方法(100)还包括接收(155;165)用于用户操纵所述虚拟边界体积的至少一部分的附加用户输入。
5.根据前述权利要求中任一项所述的计算机化方法(100),其中,使用所述操纵的虚拟边界体积作为搜索输入来从数据库单元(220)检索包括至少一个3D对象模型的模型集。
6.根据权利要求5所述的计算机化方法(100),其中,所述操纵的边界体积响应于被操纵而被动态地用作搜索输入,其中,从所述数据库单元(220)检索至少一个当前适配的3D对象模型。
7.根据权利要求5或6所述的计算机化方法(100),还包括:
在所述模型集中的所述至少一个3D对象模型当中确定推荐的3D对象模型,
其中,在所述虚拟视图中显示(180)适配所述操纵的虚拟边界体积的至少一个3D对象模型的步骤包括显示所述推荐的3D对象模型。
8.根据权利要求5至7中任一项所述的计算机化方法(100),还包括接收(172)用户输入的步骤,所述用户输入指示所述模型集是否还要基于以下项的类型:
所述物理环境,和/或
所述一个或更多个物理实体中的物理实体。
9.根据前述权利要求中任一项所述的计算机化方法(100),其中,基于获取的图像对所述虚拟视图的所述生成(120)包括:识别所述物理环境中的所述一个或更多个物理实体,并且将对应的3D数据标记为墙、地板、天花板或对象之一,其中,所述放置位置和与所述一个或更多个物理实体中之一对应的标记的3D数据相关联。
10.根据权利要求9所述的计算机化方法(100),其中,操纵(160)所述虚拟边界体积的步骤包括来自以下操作的列表中的一个或更多个:
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为对象的3D数据之间的3D交会部内的部分,
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为地板的3D数据之间的3D交会部内、或位于标记为地板的3D数据的垂直下方的部分,
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为天花板的3D数据之间的3D交会部内、或位于标记为天花板的3D数据的垂直上方的部分,以及
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为墙的3D数据之间的3D交会部内、或位于标记为墙的3D数据的水平外侧的部分。
11.根据权利要求9或10所述的计算机化方法(100),其中,所述虚拟视图的所述生成(120)包括:将标记为对象的3D数据分割成一个或更多个分离对象,并且相应地标记所述3D数据,
其中,所述放置位置与标记为所述一个或更多个分离对象中的特定对象的3D数据相关联,其中,操纵(160)所述虚拟边界体积的步骤包括:
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为所述特定对象的3D数据之间的3D交会部内、或位于标记为所述特定对象的3D数据的垂直下方的部分。
12.根据权利要求9至11中任一项所述的计算机化方法(100),其中,所述放置位置与标记为地板的3D数据相关联,其中,操纵(160)所述虚拟边界体积的步骤包括:
移除所述虚拟边界体积的位于所述虚拟边界体积与标记为对象的3D数据之间的3D交会部内的部分、以及位于标记为对象的3D数据的垂直上方的部分。
13.根据权利要求11或12所述的计算机化方法(100),其中,在所述虚拟边界体积被创建之后,所述方法(100)还包括接收(152)用于改变与所述放置位置相关联的3D数据的用户输入的步骤。
14.一种移动计算设备(10),所述移动计算设备被配置成:
获取包括一个或更多个物理实体的物理环境的图像;
基于获取的图像生成虚拟视图,所述虚拟视图是所述物理环境的3D表示并且包括与所述物理环境的所述一个或更多个物理实体对应的3D数据;
显示在所述物理环境的所述获取的图像上叠加的所述虚拟视图;
接收指示所述虚拟视图内的放置位置的用户输入;
接收用于在所述虚拟视图内创建虚拟边界体积的用户输入;
在所述虚拟视图中,基于所述虚拟边界体积和与所述一个或更多个物理实体对应的所述3D数据之间在3D空间中的一个或更多个交会部来操纵所述虚拟边界体积;
在所述虚拟视图中显示操纵的虚拟边界体积,其中,所述操纵的虚拟边界体积的至少一部分放置在所述放置位置处;以及
在所述虚拟视图中显示适配所述操纵的虚拟边界体积的至少一个3D对象模型。
15.一种计算机程序产品(300),所述计算机程序产品包括计算机代码,用于在所述计算机程序代码由处理设备执行时执行根据权利要求1至13中任一项所述的计算机化方法(100)。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21171682.4A EP4083933A1 (en) | 2021-04-30 | 2021-04-30 | Method, device and computer program product for manipulating virtual bounding volumes |
EP21171682.4 | 2021-04-30 | ||
EP21191096.3 | 2021-08-12 | ||
EP21191096.3A EP4083934A1 (en) | 2021-04-30 | 2021-08-12 | Method, device and computer program product for manipulating virtual bounding volumes |
PCT/EP2022/061357 WO2022229325A1 (en) | 2021-04-30 | 2022-04-28 | Method, device and computer program product for manipulating virtual bounding volumes |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117396925A true CN117396925A (zh) | 2024-01-12 |
Family
ID=75746542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280038561.3A Pending CN117396925A (zh) | 2021-04-30 | 2022-04-28 | 用于操纵虚拟边界体积的方法、设备和计算机程序产品 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11967030B2 (zh) |
EP (3) | EP4083933A1 (zh) |
CN (1) | CN117396925A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210358202A1 (en) * | 2020-05-13 | 2021-11-18 | Electronic Caregiver, Inc. | Room Labeling Drawing Interface for Activity Tracking and Detection |
CN116204945B (zh) * | 2023-04-28 | 2023-07-14 | 北京求解科技有限公司 | 基于三维观察体的对象观察方法、装置、终端及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613049A (en) | 1994-10-26 | 1997-03-18 | The Boeing Company | Method for creating spatially balanced bounding volume hierarchies for use in a computer generated display of a complex structure |
US20140184592A1 (en) * | 2012-12-31 | 2014-07-03 | Ketch Technology, Llc | Creating, editing, and querying parametric models, e.g., using nested bounding volumes |
US9734634B1 (en) * | 2014-09-26 | 2017-08-15 | A9.Com, Inc. | Augmented reality product preview |
US10803663B2 (en) * | 2017-08-02 | 2020-10-13 | Google Llc | Depth sensor aided estimation of virtual reality environment boundaries |
US10740960B2 (en) * | 2019-01-11 | 2020-08-11 | Microsoft Technology Licensing, Llc | Virtual object placement for augmented reality |
WO2020191101A1 (en) * | 2019-03-18 | 2020-09-24 | Geomagical Labs, Inc. | Virtual interaction with three-dimensional indoor room imagery |
-
2021
- 2021-04-30 EP EP21171682.4A patent/EP4083933A1/en not_active Withdrawn
- 2021-08-12 EP EP21191096.3A patent/EP4083934A1/en not_active Withdrawn
-
2022
- 2022-04-28 US US17/732,133 patent/US11967030B2/en active Active
- 2022-04-28 EP EP22726095.7A patent/EP4330927A1/en active Pending
- 2022-04-28 US US17/732,128 patent/US20220358739A1/en active Pending
- 2022-04-28 CN CN202280038561.3A patent/CN117396925A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4083934A1 (en) | 2022-11-02 |
US20220351470A1 (en) | 2022-11-03 |
EP4083933A1 (en) | 2022-11-02 |
US20220358739A1 (en) | 2022-11-10 |
EP4330927A1 (en) | 2024-03-06 |
US11967030B2 (en) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109997173B (zh) | 增强现实模型的自动放置 | |
US11809681B2 (en) | Reality capture graphical user interface | |
US9996974B2 (en) | Method and apparatus for representing a physical scene | |
JP5833772B2 (ja) | 実世界オブジェクトの3dモデルおよび正しい縮尺のメタデータをキャプチャし移動させるための方法およびシステム | |
US11967030B2 (en) | Method, device and computer program product for manipulating virtual bounding volumes | |
JP5592011B2 (ja) | マルチスケール3次元配向 | |
JP5566632B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
WO2016149554A2 (en) | Interactive dimensioning of parametric models | |
US11508141B2 (en) | Simple environment solver using planar extraction | |
KR20130004066A (ko) | 기하학적 3차원 모델링된 오브젝트를 디자인하는 방법 | |
US10019143B1 (en) | Determining a principal image from user interaction | |
JP5372590B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
Pindat et al. | Drilling into complex 3D models with gimlenses | |
JP2001134633A5 (zh) | ||
WO2022229325A1 (en) | Method, device and computer program product for manipulating virtual bounding volumes | |
US20230128656A1 (en) | 3d modelling and representation of furnished rooms and their manipulation | |
CN110134975A (zh) | 灯饰的设计方法、电子设备及电子设备可读存储介质 | |
WO2020084192A1 (en) | Method, arrangement, and computer program product for three-dimensional visualization of augmented reality and virtual reality environments | |
CN113137916B (zh) | 基于对象分类的自动测量 | |
JP7424048B2 (ja) | 情報処理装置及びプログラム | |
CN115048001A (zh) | 虚拟对象的显示方法、装置、电子设备及存储介质 | |
Wang | Interaction and visualization techniques for immersive exploration and perception of 3D datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |