CN115203774A - 自动为虚拟3d房间配备家具的方法 - Google Patents
自动为虚拟3d房间配备家具的方法 Download PDFInfo
- Publication number
- CN115203774A CN115203774A CN202210362343.7A CN202210362343A CN115203774A CN 115203774 A CN115203774 A CN 115203774A CN 202210362343 A CN202210362343 A CN 202210362343A CN 115203774 A CN115203774 A CN 115203774A
- Authority
- CN
- China
- Prior art keywords
- furniture
- room
- region
- template
- elements
- 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 72
- 239000002245 particle Substances 0.000 claims description 12
- 238000013138 pruning Methods 0.000 claims description 8
- 101000854862 Homo sapiens Vacuolar protein sorting-associated protein 35 Proteins 0.000 claims description 4
- 102100020822 Vacuolar protein sorting-associated protein 35 Human genes 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 101100079124 Arabidopsis thaliana NAC079 gene Proteins 0.000 description 1
- 101100371648 Caenorhabditis elegans usp-14 gene Proteins 0.000 description 1
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 101150090882 tgt-1 gene Proteins 0.000 description 1
- 101150041549 tgt-2 gene Proteins 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/16—Customisation or personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/18—Details relating to CAD techniques using virtual or augmented reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/20—Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种用于自动提供包括3D元素的配备家具的虚拟3D房间的至少一个模板的计算机实现的方法,该方法包括:对于每个配备家具的虚拟3D房间进行以下操作:a1)基于在3D房间的3D元素之间的空间关系来自动提取空间关系图,所述3D元素包括位于配备家具的虚拟3D房间中的3D架构元素和3D家具配备对象;a2)基于空间关系图来从3D房间中自动提取至少一个区域,并且提取关于所述区域相对于房间架构或相对于3D房间的其他区域的相对布置的约束集合,区域由至少一个3D家具配备对象的局部空间布置定义;a3)存储配备家具的虚拟3D房间的模板,所述模板包括所述区域和所述约束集合。本发明还涉及一种用于自动为3D房间配备家具的计算机实现的方法,包括以下步骤:b1)提供要配备家具的虚拟3D房间,并且在所存储的模板之中选择模板;b2)为虚拟3D房间配备家具,以便将选定的模板映射到要配备家具的3D房间中。
Description
技术领域
本发明涉及对配备家具的房间的计算机辅助设计的领域。特别地,本发明涉及一种用于自动提供配备家具的虚拟3D房间的至少一个模板的计算机实现的方法。本发明还涉及一种自动为3D房间配备家具的计算机实现的方法。本发明的方法使得用户能够基于配备家具的房间的所存储的模板来自动为3D房间配备家具。
背景技术
打算搬进新公寓或只打算翻新房间的消费者通常会从家具店的类似项目中寻找灵感,或者他们也可以使用CAD软件来这样做。因此,消费者将自己投射到新房间中。
一些现有的自动创建室内房间模板的方法基于经典的优化技术,并使用家具的集合作为输入来布置到给定的房间中。这种方法的缺点是它暗示手动定义约束集合(每个对象周围的哪些空间应该是空闲的,哪些对象应该与其他对象相邻,等等),这花费相当长的时间并且易于出错。
基于经典优化技术的方法的示例在“Automated Interior Design Using aGenetic Algorithm”(Peter Kan等人,Proceedings of VRST2017,Gothenburg,Sweden,2017年11月)中公开。优化过程使用从随机解决方案开始的遗传算法,以便利用家具对象自动填充室内虚拟场景,并根据美学、人体工程学和功能规则优化它们的位置和定向。由于填充是由从数据库中随机选择的家具对象的布局初始化的,因此房间的自动家具配备可能花费很长时间,这取决于问题的复杂度。家具约束由用户指定为参数,这可能很麻烦。
基于深度学习的方法利用室内场景的巨大数据库来学习如何自动为新房间配备家具,如例如在“PlanIT:planning and instantiating indoor scenes with relationgraph and spatial prior networks(Wang,K.等人,ACM Trans.Graph.,Vol.38,No.4,Article 132,2019年7月)”中公开的。
然而,基于深度学习的方法通过仅考虑每种房间类型的对象类型的有限集合和所考虑房间的有限复杂度(例如,四面墙)来简化问题。这些方法提出了非常粗糙的家具配备水平。
依赖于图形结构的其他技术如CN 107240151 A中所公开的。在3D房间中提取某种类型的关系(垂直关系),但依赖于人工干预来定义对象之间更复杂的类型的关系(水平关系)。在约束定义的这一步骤之后,通过将所有对象随机放置在房间中来发起优化过程,然后运行启发式优化算法(在这种情况下为模拟退火),以解决先前定义的约束。这种方法仍然依赖于人工交互来定义布局中的约束,并且缺少一些高级关系。这可能误导优化步骤,并且优化可能花费很长时间才能找到令人满意的结果。
因此,需要获得一种用于自动提供配备家具的虚拟3D房间的至少一个模板的计算机实现的方法,该方法不要求用户在布局中定义约束,并且提供了广泛的家具配备可能性。
发明内容
本发明的目的是一种用于自动提供包括3D元素的配备家具的虚拟3D房间的至少一个模板的计算机实现的方法,该方法包括:对于每个配备家具的虚拟3D房间进行以下操作:
a1)基于在3D房间的3D元素之间的空间关系来自动提取空间关系图,所述3D元素包括位于配备家具的虚拟3D房间中的3D架构元素和3D家具配备对象;
a2)基于空间关系图来从3D房间中自动提取至少一个区域,并且提取关于所述区域相对于房间架构或相对于3D房间的其他区域的相对布置的约束集合,区域由至少一个3D家具配备对象的局部空间布置定义;
a3)存储配备家具的虚拟3D房间的模板,所述模板包括所述区域和所述约束集合。
在优选实施例中,方法包括:计算在房间的3D家具配备对象总地板占据面积与房间地板面积之间的比率,并且仅当所述比率满足预先定义的标准时才实现步骤a1-a3),该预先定义的标准是基于相同类别的房间的数据集合的比率的标准偏差的。
在优选实施例中,步骤a1)包括:
-获得对应于3D元素的节点的集合,
-基于在所述3D元素之间的距离来提取在3D元素之间的垂直关系和水平关系。
在优选实施例中,对于被称为锚点的每个节点,利用以下步骤来提取垂直关系:
-计算在潜在的支撑3D元素与锚点之间的3D交叉的体积,
-如果交叉的体积高于支撑3D元素的体积的特定比例,则向具有“包含”标签的锚点的节点添加支撑边,
-如果交叉的体积没有高于支撑3D元素的体积的特定比例,则仅当3D元素底面中心位于锚点的底面上方时,才向具有距离标签的锚点的节点添加支撑边,该距离标签是基于在支撑目标的底部与锚点的顶面之间的距离计算出的。
在优选实施例中,对于被称为锚点的每个节点,通过以下操作来提取水平关系:追踪开始于锚点的一系列光线,并且计算与3D房间的其他3D家具配备对象的交叉。
在优选实施例中,步骤a1)包括:检测被称为“中心(hub)”的3D家具配备对象具有与被称为“辐条(spoke)”的若干较小3D家具配备对象的相邻或近端边,如果辐条具有与中心相同的类别或功能链接,则辐条节点的入边(ingoing edge)被转移到中心节点。
在优选实施例中,步骤a1)包括:
-检测由相邻或近端边连接并在相同方向上对齐的至少三个3D家具配备对象的链;
-标记组成链的节点和边;
-对于链的每个边,删除相对边。
在优选实施例中,步骤a1)包括:
-检测空间关系图中的至少一个上部结构,并且对空间关系图中不属于上部结构的边应用修剪(pruning),或者
-对空间关系图中这样的边应用修剪:这些边在从3D配备家具的房间的数据集中提取的图形的数据集中出现频率最低。
在优选实施例中,步骤a2)包括:针对在3D架构元素前面具有至少一个3D家具配备对象的每个3D架构元素创建区域,所述区域包括以近端或相邻边在3D架构元素的前面的所有3D家具配备对象。
在优选实施例中,如果区域沿3D架构元素的长度高于特定阈值,则区域被分成若干区域。
在优选实施例中,步骤a2)包括:
-根据3D家具配备对象的重要性,对3D家具配备对象进行排序,这些3D家具配备对象在图中具有与另一3D对象的节点至少具有关系的节点并且不位于沿3D架构元素的区域中,重要性被定义为3D家具配备对象的维度、类别和/或3D家具配备对象所涉及的与其他3D家具配备对象的关系;
-创建包括最重要的3D家具配备对象的新区域。
在优选实施例中,步骤a2)包括:
-检测3D家具配备对象是否位于两个垂直的3D架构元素的前面,
-针对具有要被定位在房间角落的3D家具配备对象的区域创建约束。
在优选实施例中,步骤a2)包括:
-在位于沿3D架构元素处的区域与房间中间的区域之间添加距离约束,
-定义在房间中间的区域相对于沿3D架构元素的区域的潜在相对移动,使得在在线步骤中维持在两个区域的3D家具配备对象之间的关系。
在优选实施例中,步骤a2)包括:
-沿3D分隔物在两个区域之间添加距离约束,
-定义两个区域的潜在相对移动,使得在在线步骤中维持在两个区域的3D家具配备对象之间的关系。
在优选实施例中,在步骤a3)中,模板包括一个或多个区域的集合,以及在区域之间和在区域与房间的3D架构元素之间的空间和功能约束。
本发明还涉及一种用于自动为3D房间配备家具的计算机实现的方法,包括以下步骤:
b1)提供要配备家具的虚拟3D房间,并且在利用用于自动提供至少一个模板的前述计算机实现的方法获得的所存储的模板之中选择模板;
b2)为虚拟3D房间配备家具,以便将选定的模板映射到要配备家具的3D房间中。
在优选实施例中,步骤b2)包括:使用粒子群优化(PSO)算法来将选定的模板映射到要配备家具的3D房间中。
在优选实施例中,步骤b2)包括以下子步骤:
-确定由要配备家具的3D房间的3D架构元素和模板的区域组成的对的所有组合,
-指派所有组合作为PSO算法的粒子的变量,
-运行PSO算法,直到找到满足约束的满意解为止。
本发明还涉及一种计算机程序产品,包括用于使计算机系统执行前述方法的计算机可执行指令。
本发明还涉及一种非暂时性计算机可读数据存储介质,包含用于使计算机系统执行前述方法的计算机可执行指令。
本发明还涉及一种计算机系统,包括耦合到存储器的处理器,该存储器存储用于使计算机系统执行前述方法的计算机可执行指令。
因此,可以学习适用于每种类型的房间的安全规则和布置(以隐式方式,在用户不知道它们和/或将它们表达为约束的情况下)。例如,对于与火灾风险相关联的房间,灭火器必须易于获得,因此在空间关系上,不会将诸如桌子或扶手椅之类的对象定位在灭火器的前面。而且,对于厨房,抽油烟机将始终位于烹饪炉上方。对于残障人士,也可以表达关于窗户的可用性或允许轮椅转圈的通道宽度的物理限制。
附图说明
本发明的附加特征和优点将从以下结合附图的描述中变得显而易见:
-图1示出了本发明的用于自动提供配备家具的虚拟3D房间的至少一个模板的方法;
-图2示出了空间关系图;
-图3示出了通过使用地板上的2D投影来提取空间关系;
-图4示出了沿3D架构元素的区域;
-图5示出了房间中间的区域;
-图6示出了角落约束;
-图7示出了用于图6的布置的计算机代码的一部分;
-图8示出了在区域之间的距离约束;
-图9示出了用于自动为3D房间配备家具的方法;
-图10示出了针对粒子中的给定组合的区域及其看似合理的平移;
-图11示出了针对给定3D房间中给定模板的一些结果;
-图12和图13示出了适合于执行根据本发明的不同实施例的方法的相应的计算机系统的框图。
具体实施方式
本发明提供了一种用于从一个或多个配备家具的3D房间的集合中自动提取模板的方法,如图1所示。
提供以下定义以更好地理解本发明:
3D房间:对应于房间的3D定义,所要求的最少信息是墙壁的集合(及其位置和维度)。
3D_Objects:3D家具配备对象,其可以是放置在房间中以便对其进行家具配备的家具或装饰对象。它不包括所有架构对象,例如,房间分隔物(墙壁和隐式分隔物)、门和窗户。
3D_Openings:房间的门和窗户的集合。
3D_Separators:房间分隔物的集合(墙壁和隐式分隔物)。
3D_Archs:3D架构元素=3D_Openings和3D_Separators的并集。
3D_Elems:3D_Objects和3D_Archs的并集。
家具配备:对应于为3D房间配备家具的任务,即,将一个或多个3D_Objects放置在房间中。
模板:一个或多个区域的集合以及在区域之间和在区域与房间的3D架构元素之间的空间和功能约束。
区域:区域定义了一个或多个3D家具配备对象的局部空间布置,在该区域中具有其看似合理的变换,这些变换可以对应于以下一个或多个:抑制区域中的3D家具配备对象中的一些,用区域中的一个或多个3D家具配备对象来替换一个或多个3D家具配备对象。
方法的第一步骤在于基于在3D房间的3D元素之间的空间关系来自动提取空间关系图。
3D房间的特征可在专用数据库中获得,最初可能由个人或专业人士(例如,家具零售商、房地产经纪人、建筑师)提供;这些特征至少由它们的3D架构元素(3D_Archs)定义:
显式分隔物(物理分隔,例如,墙壁),
隐式分隔物(用户定义的在两个区域之间的分隔,没有物理存在),
开口(例如,门、窗户)。
地板、分隔物和开口都被定义为3D平面内的2D多边形。3D平面由3D点(下文被称为原点)和法线3D向量定义。2D多边形由其顶点定义,顶点被给定作为在平面上相对于原点的2D点,原点被认为在平面上具有(0,0)坐标。顶点的数量取决于架构元素的性质。例如:没有开口的简单墙壁被定义为具有4个顶点(4个墙角)的多边形,而具有门的墙壁具有8个顶点(4个墙角加上4个门角)。
没有任何开口的地板多边形给出了地板面积,并且地板和分隔物定义了房间的体积。
3D家具配备对象必须至少具有以下信息(注意,3D架构元素也具有该信息):
对象相关信息:
o 一个或多个类别,
o 3D边界框(长度、宽度和高度),
o 3D模型。
- 房间相关信息:
o 3D家具配备对象在3D房间内的位置,
o 3D家具配备对象在3D房间内的定向。
3D家具配备对象可以包括具有不同细节级别的一个或多个类别,例如,诸如“桌子”之类的宏观类别和诸如“咖啡桌”之类的更精细类别。
可选地,用户可以为所有或一些3D家具配备对象提供他们使用的替代3D家具配备对象的列表。这些替代3D家具配备对象是在不改变3D家具配备对象的功能、房间的功能或房间的一般方面的情况下,可以在3D房间中使用的3D家具配备对象,而不是原始3D家具配备对象。例如:灰色三座沙发的替代品仍然可以是具有不同颜色或略有不同形状的沙发,但不是桌子。
在步骤a1)中,可以提取配备家具的3D房间的类别(浴室、卧室、厨房等)。该类别可以由用户直接提供,或者从3D房间包含的3D元素的集合自动推断,如“Style-compatibleObject Recommendation for Multi-room Indoor Scene Synthesis(He、Yu等人,arXivpreprint arXiv:2003.04187(2020))”中公开的。
在优选实施例中,计算在房间的3D家具配备对象总地板占据面积与房间地板面积之间的比率,以便仅在房间既不太空也不太杂乱(这意味着在房间内存在的3D家具配备对象既不太少也不太多)的情况下计算模板。这有助于获得干净的模板数据集。
“对象太少”和“对象太多”的阈值可能取决于3D家具配备对象本身和3D房间地板面积,并且可以被手动定义。例如,3D家具配备对象应占据3D房间地板面积的20%到80%。
可替代地,可以从3D房间集合中自动学习阈值(例如:在房间的3D家具配备对象总地板占据面积(sumRoom(Object area))与房间地板面积(Room area)之间的比率接近在相同类别的3D房间集合中所有房间的相同比率的平均值
然后,仅当比率满足预先定义的标准时才实现该方法,该预先定义的标准是基于相同类别的房间的数据集合的比率的标准偏差的。
然后,提取3D房间中的3D元素之间的关系。为此,步骤a1)包括获得对应于3D元素的节点的集合。
空间关系图可以被构造如下:
- 节点列表,每个节点对应于房间中的3D元素,具有以下属性:
o 节点ID(索引和/或名称);
o 3D元素的类别;
o 3D元素的3D边界框(长度、宽度和高度);
o 3D元素的变换矩阵(以获得3D元素在3D房间中的绝对位置和定向);
o 每个3D元素的对应3D模型;
o 3D元素的宏观类别(可选);
o 入边列表;
o 出边列表;
o 父对象;
o 上部结构标签(如果有)(例如,“is_hub”、“is_spoke”、“is_chain”),将在下文详述。
- 表示房间中3D元素之间关系的边列表,具有以下属性:
o 边ID(索引和/或名称);
o 起始节点的ID;
o 结束节点的ID;
o 方向(例如“前”、“后”、“左”、“右”、“支撑”);
o 可选标签(例如“包含”);
o 功能(可选);
o 距离标签,例如:
· “相邻”,如果在边的起始节点的边界框与边的结束节点的边界框之间的最小距离小于“相邻”阈值(例如,5cm);
· “近端”,如果在边的起始节点的边界框与边的结束节点的边界框之间的最小距离大于“相邻”阈值且小于另一“近端”阈值(例如,50cm);
· “远端”,如果在边的起始节点的边界框与边的结束节点的边界框之间的最小距离大于“近端”阈值;
o 在边的起始节点的边界框与结束节点的边界框之间的距离精确值;
o 上部结构标签(如果有)(例如,“is_spoke”、“is_chain”),将在下文详述。
前述结构比现有技术中公开的结构更丰富,因为它包含更多的属性。它有助于更好地描述场景并具有更精细的表示。
图2示出了已经利用前述特征提取的图形示例,其具有对应的图例(节点类型、定向、距离标签、支撑)。
node5”:{
- “category”:“Double beds”,
- “macro-category”:“bed”,
- “transformation_matrix”:[0,1,0,0,-1,0,0,0,0,0,1,0,-13302.5,-5203.2,455.0,1],
- “bounding_box”:[2000,1800,1000],
- “ingoing_edges”:[edge1],
- “outgoing_edges”:[edge2],
- “parents”:[“floor”,“default”],
- “superstructure_tags”:[]
}
“edge2”:{
- “starting_node”:“node5”,
- “ending_node”:“node6”,
- “direction”:“Right”,
- “optional_tag”:“normal”,
- “distance_tag”:“Proximal”,
- “distance_value”:25,#mm
- “superstructure_tag”:[]
}
然后,提取3D元素之间的关系,即,空间垂直关系和水平关系。
关于垂直关系,实现以下步骤:
首先,对于房间中被定义为锚点的每个3D家具配备对象,检查3D房间的其他3D家具配备对象(定义为目标)的底面中心是否被包含在自顶向下的2D投影边界框中,并且目标的底面位于锚点的底面上方。如果是,则将目标添加到当前锚点的潜在的支撑3D家具配备对象的集合中。
其次,对于锚点的潜在的支撑3D家具配备对象的集合中的所有目标,计算在潜在的支撑3D元素与锚点之间的3D交叉的体积。如果交叉的体积高于支撑3D元素的体积特定百分比(例如,90%),则向具有“包含”标签的锚点的节点添加支撑边。如果交叉的体积没有高于支撑3D元素的体积特定百分比,则仅当3D元素底面中心位于锚点的底面上方时,才向具有距离标签的锚点的节点添加支撑边,该距离标签是关于在支撑目标的底部与锚点的顶面之间的距离计算出的。
最后,一旦计算出所有的支撑边,就会修剪支撑边,以便为每个3D元素只保留一个入边。为每个3D元素仅保留具有最小符号距离的边。
与已知的自动家具配备方法不同,本发明的方法处理完全或几乎完全包含在其他对象中的对象。当检测到这种情况时,包含的对象通过具有标签“包含”的关系链接到包含对象,并从与房间的其他对象的任何其他空间关系中丢弃。以这种方式,保留了最有意义的关系,避免了由于丢弃其他关系而引起的干扰。
每个节点还可以具有“父”属性,以便在3D房间的3D元素中的一些元素(即,不是房间的所有3D元素)之间指派水平链接,这降低了图形的复杂度。
几种情况是可能的:
- 如果3D家具配备对象由另一3D家具配备对象支撑,并且它们的距离标签对应于低于特定阈值的距离(“相邻”),则其父对象是支撑3D家具配备对象;
- 如果3D家具配备对象顶面关于特定阈值(例如,15cm)对应于天花板高度,并且其底面高度关于特定阈值(例如,100cm)高于地板,则其父对象为“天花板”;
- 如果3D家具配备对象顶面的高度低于距地板水平的特定阈值(例如,15cm),则其父对象为“地板”;
- 如果3D家具配备对象是3D_Opening(门或窗户),则其父对象为“地板”和“拱形”和“默认”;
- 如果3D家具配备对象不属于上述情况中的任一种,则指派“地板”和“默认”作为其默认父对象。
然后,通过以下步骤提取3D元素之间的空间水平关系:
首先,对于房间中的每个3D元素(其被称为锚点),计算有效目标列表,即,可以与锚点3D元素相关的3D元素列表。以下标准中的一些可以用于决定3D元素是否关于定义的锚点有效:
- 如果锚点具有另一3D家具配备对象作为父对象,则目标应该具有相同的父对象;
- 如果唯一目标的父对象是“天花板”,则锚点应该在其父对象列表中具有“天花板”父对象;
- 如果唯一锚点的父对象是“天花板”,则目标应该在其父对象列表中具有“天花板”父对象;
- 目标3D元素不能具有来自锚点的支撑入边。
其次,使用锚点在地板上的2D投影和有效目标来寻找水平关系,如图3所示:光线RAY来自对象的一侧并与目标TGT相交。光线RAY从锚点对象OBJ的每一侧投影,即,沿着锚点OBJ的每个侧边(例如,每5cm,每个边最少3条线)规则分布的直线集合,这些直线从中心横截面开始并在锚点的侧边的垂直方向上行进穿过房间空间。
收集在这些光线RAY与房间中其他3D元素之间的交叉。考虑到可见性,基于锚点的父对象列表,存储每条光线距锚点对象OBJ的最近的交叉列表(关于光线源自的边的最小符号距离)。存储目标的每个集合相对于epsilon参数的最近交叉。epsilon参数对应于距离(例如,50mm)。该距离用于将所有交叉保持被包括在[dist_closest_intersection,dist_closest_intersection+epsilon]范围内。这允许更好的提取并避免丢失重要的统计数据。这提供了更稳定的图形提取,尤其是在没有经验的用户为房间配备家具时。
例如,可以考虑用户将壁挂电视放在墙上,其上方有相同维度的框架,框架比电视略厚(例如,3cm)。在这种情况下,电视的所有关系(例如,沙发到电视)都将丢失,并且可能会改变统计数据。这在考虑丢弃的对象时也特别有用。在图3中,如果两个对象都被丢弃,则底部对象TGT2将不会链接到锚点对象OBJ,使得其链接不那么有意义(例如,具有更大的距离)的另一对象。
然后,基于对象距锚点及其组的相应的距离对对象进行过滤:(令d(inter)表示在锚点的边界框与所考虑的交叉之间的距离),例如利用以下过滤规则:
每条光线RAY的锚点对象OBJ连同光线RAY的方向、目标ID和该目标所在的距离(TGT1、TGT2)一起存储。
每个对应方向上的边在锚点和每个3D元素之间的空间关系图中创建,其中有足够数量的交叉光线(例如,2条光线)。距离标签和精确距离值是基于在锚点与目标之间相对于方向的最近交叉计算出的。
如果检测到来自起始节点i和结束节点j的若干边(即,若干个看似合理的关系),则将保持仅在光线与其交叉的方面具有最高可见度的一个边。如果若干方向具有相同量的可见性,则选择在锚点与目标之间具有最近交叉的方向。如果交叉距离相等,则使用方向重要性的任意次序(例如,“前”、“后”、“右”、“左”)。
在优选实施例中,空间关系图的提取包括检测空间关系图中被称为上部结构的特殊模式。下面详述了这些模式(即,“中心和辐条”以及“链”)的一些示例提取。通过查看从足够大的数据库(例如,每种房间类型数百个项目)中提取的空间关系图中的关系并保留最频繁出现的组,可以找到其他类型的上部结构。例如,三个或更多个对象类别以相同方式链接,即,在多个项目Np中的若干项目中具有相同的边足以使Np/Number_Of_Projects优于特定阈值t(例如,0.2)可以被视为要保留的潜在上部结构。注意,上部结构也可以对应于对象之间的一个或多个功能关系的组,因此它们代表了家具的功能布置(例如,厨房中的洗碗机、水槽和燃气灶的供水)。在这种情况下,我们可以考虑根据房间类型预先定义的上部结构。
本领域技术人员可以参考附件A.1的“PlanIT:planning and instantiatingindoor scenes with relation graph and spatial prior networks”(Wang,K.等人,ACMTrans.Graph.,Vol.38,No.4,Article 132,2019年7月)中提供的上部结构的定义和上部结构的检测,该附件通过引用并入本文。
在优选实施例中,空间关系图的提取包括检测被称为“中心”的3D家具配备对象具有与被称为“辐条”的若干较小3D家具配备对象的相邻或近端边。
辐条与中心具有相同的类别(或宏观类别,取决于类别的细节水平)(例如,床和床头柜),或者与中心的功能链接可能对房间描述有用(例如,壁炉周围有扶手椅或带椅子的小桌子)。
关于提取的图形数据集的统计数据可以用于检测最频繁出现的中心结构(例如,就所涉及的类别而言)并仅保留最相关的中心结构。
中心和辐条节点可以用“is_hub”和“is_spoke”标签进行标记,并且在中心及其辐条之间的边也可以用“is_spoke”标签进行标记。
一旦已经检测到这样的结构,中心节点就会继承辐条的入边(关于中心而非辐条,更新距离标签和边的值),即,辐条的入边被转移到中心节点。辐条只保留它们与中心节点的关系和相邻关系。
在步骤a1)的另一优选实施例中,检测由相邻或近端边连接并在相同方向上对齐的至少三个3D家具配备对象的链(或序列)。对齐可能由于在3D家具配备对象之间的功能链接(例如,橱柜或架子的链),或出于装饰目的(例如,框架或植物的链)而发生。链被视为“上部结构”。
取决于所需的精度级别,可以过滤链以仅接受相同类别的3D家具配备对象的链,或仅接受类似大小的3D家具配备对象,或要求3D家具配备对象精确对齐(例如,通过检查共线性标准)。
每个边可能只涉及一个链。为了实现这一点,如果边涉及多个链,则只保留最长的链。如果出现平局,则可以使用方向的优先规则来决定保留哪一个。这可以防止在相反方向上具有相同的链。
组成链的节点和边例如用“is_chain”标签进行标记。对于链的每个边,如果存在相对边,则将其删除。
因此,关于提取的图形的数据集的统计数据可以用于检测最频繁出现的链结构(例如,就所涉及的类别而言)并仅保留最相关的链结构。
到目前为止获得的图形可能非常密集,具有房间中的所有空间关系。因此,在步骤a1)中,可以对空间关系图的边缘应用修剪。检测到上部结构,然后修剪不属于检测到的上部结构的边。可替代地,修剪的边是在从3D配备家具的房间的数据集中提取的图形的数据集中出现频率最低的边。为了只保留最有意义的关系,并避免有太多约束,通过实现以下步骤删除在先前步骤中创建的边中的一些:
首先,存储先前获得的图形的版本。
其次,抑制任何3D_Separator(房间分隔物,即,墙壁和隐式分隔物),或朝向non-3D_Separator 3D元素的任何“远端”的出边。
第三,对从3D家具配备的房间的数据集中提取的图形的数据集计算出的统计数据用于确定哪些关系(边)具有最高的出现频率。对于每个距离类别,确定出现频率的阈值(针对给定房间类型,边出现的次数除以包含2个涉及的对象的项目数量),以便定义在考虑的图中要保留或不保留的关系(例如,阈值相邻是0.03,阈值近端是0.1,阈值远端是0.3)。这里可以使用关于3D元素的对称性的可选信息,以便获得更相关的统计数据。
这种基于统计数据的修剪可以应用于由以下规则定义的边的子集:
- 边不属于上述定义的上部结构;
- 边定义了水平关系;
- 边不具有作为3D架构元素的开始节点和结束节点两者;
- 边没有定义与作为3D架构元素的开始节点的相邻关系;
- 边没有定义在具有有意义正面的3D元素之间的正面非远端关系(例如,基于它们的对称性和/或类别)。假设存储了仔细有意义的正面定义(例如,每对类别),这可以扩展到远端关系;
- 边没有定义在相同类别的两个3D家具配备对象之间的相邻关系。
当统计数据不足以代表各种看似合理的3D配备家具的房间时,最后两个条件很有用。
最后,检查修剪后的图是否仍然连接。如果一个或多个节点断开连接,则在先前存储的图中搜索去往已经断开连接的节点的最短路径(例如,使用Dijkstra算法)。边类型和距离用于为每条路径指派权重(例如,相邻关系的权重为1+edge_distance/1000,近端为2.1+edge_distance/1000,远端为3.2+edge_distance/1000)。在那些已经通过统计修剪删除的最短路径中恢复边。如果没有找到重新连接断开连接的节点的边,则确定与节点的3D家具配备对象距离最小的来自3D分隔物的入边,并将其添加到图中。
该过程允许仅保留对房间中3D元素的布置有意义的关系/边。
注意,在自动提取空间关系图的步骤a1)中,如果3D家具配备对象中的一些不是感兴趣的(即,被丢弃的),则可以不为它们提取与其他3D家具配备对象的水平边(除了“支撑”关系),而仅提取来自未被丢弃的3D家具配备对象的入边(仅将它们视为具有独立提取的其他目标的集合)。这对于装饰配件(基于其类别检测到)很有用,以便简化图形提取步骤。在这种情况下,仅保留每个被丢弃的3D家具配备对象的最近入边。
用于自动提供模板的方法的下一步骤(图1的步骤a2))包括基于空间关系图从3D房间中自动提取区域。
区域定义了每个3D架构元素的局部空间布置,其在图中以近端或相邻边在所述3D架构元素前面具有至少一个3D家具配备对象。链接到3D家具配备对象的相邻3D家具配备对象被递归地添加到区域中。
如果区域的长度高于特定阈值(例如,5米),则区域可以拆分成若干区域。这种拆分可能发生在它们之间没有任何相邻关系的3D家具配备对象的组之间。该实施例防止该方法处理非常大的区域(就长度而言)。
如果3D家具配备对象在两个3D架构元素的前面,则检测到其线(使用地板上的投影)与3D家具配备对象的背面最对齐的3D架构元素。
图4示出了基于图(图的左侧)的区域提取示例(图的右侧)。两个橱柜和橱柜后面的墙壁代表第一区域。床、画、两个床头柜和挂画的墙壁代表第二区域。
可能会出现3D家具配备对象不属于图中的任何区域的情况,这意味着在3D家具配备对象与3D架构元素之间没有边。在这种情况下,保留具有至少与另一3D家具配备对象节点的关系并且不在沿3D架构元素(3D分隔物)的区域中的所有3D家具配备对象节点。然后,该列表按3D家具配备对象的重要性排序。可以根据3D家具配备对象的维度、类别和/或3D家具配备对象所涉及的与其他3D家具配备对象的关系来定义该重要性:
Importance(obj)=(objwidth*objlength+nbObjEdges)*g(objcategory)
其中objwidth*objlength以m×m为单位,nbObjEdges是从3D家具配备对象obj开始或结束的入边的总和,并且g(objcategory)是将类别映射到关于其在房间的空间布置中的重要性的某些先验的函数(例如,从给定房间类型中给定对象类别的相对出现频率获得)。
然后,执行以下步骤,直到不存在不属于任何区域的3D家具配备对象为止:
- 1.取先前排序的剩余3D家具配备对象列表中的第一3D家具配备对象,并定义新区域;
- 2.递归地添加来自列表的与新区域中的3D家具配备对象具有“相邻”或“近端”边的3D家具配备对象,直到没有要添加的更多3D家具配备对象为止;
- 3.返回步骤1,以从另一3D家具配备对象开始定义新区域。
这种方法在维度和元素数量方面可能会导致相当大的区域。如果观察到这种行为,则可以通过仅考虑分组的相邻关系(而不是相邻和近端)来执行前述过程。
图5示出了在房间中间创建新区域。在房间的3D视图中,在左侧,地毯、桌子、椅子和吊灯不属于图中的任何区域(节点11-15)。由于前述方法,创建新区域,如围绕节点11-15的框架所示。已经确定地毯12是沙发9的出边。类似地,在右侧,桌子、椅子和吊灯不属于图提取中的任何区域(节点18-22)。创建新区域,如围绕节点18-22的框架所示。已经确定桌子18是墙壁5的出边。
一些区域可以标记为可选并按优先级排序。定义可选区域意味着提出源自不包含该可选区域的3D家具配备对象的该3D房间的家具配备的解决方案仍将被视为有效。它很有用,因为一些3D房间架构可能没有放置灵感的所有区域所需的属性(例如,表面)。下面是定义区域是否可选的标准列表:
- 区域不包含任何“中心”和“辐条”3D家具配备对象;
- 区域具有有限的占用(例如,地板面积<1m2);
- 区域不包含对给定房间类型非常重要的3D家具配备对象,特别是在功能方面(例如,托儿所的婴儿床)。
为了对区域进行排序,可以定义优先级函数:
其中objsurface是区域中的对象的表面,objimportance是区域中的对象相对于房间类型的重要性,并且如果对象属于上部结构,则objsuper是>1的系数,如果对象不属于上部结构,则objsuper是<1的系数,这取决于上部结构的重要性(例如,出现频率)。
在优选实施例中,如图6所示,步骤a2)可以包括检测3D家具配备对象是否位于两个垂直的3D架构元素的前面,并且针对具有要被定位在房间角落的3D家具配备对象的区域创建约束。
角落约束可以定义为左或右。如果为右,则区域将沿其3D分隔物参考放置,因此放置在其左极端(放置在模板角落的那个)的3D家具配备对象将位于右侧另一墙壁的前面(即,旁边)(如果我们看它放置在面向参考3D分隔物正面的参考点)。这是例如图6中的情况,橱柜(节点6)位于墙壁1和4的前面。角落约束定义为右。相反,对于位于墙壁2和3前面的植物8,约束被定义为左。
图7示出了用于图6的布置的计算机代码的一部分。
在另一实施例中,可以在沿3D架构元素的区域与房间中间的区域之间添加硬参数约束,以便保持房间的家具配备结构,如图8中示出的。因此,可以考虑相对于行动不便的人的轻松访问的管理约束,例如区域之间的最小距离。
通过搜索在房间中间的区域中的3D家具配备对象与其他区域中的3D家具配备对象之间的边,房间中间的每个区域都沿着3D架构元素(3D分隔物)链接到一个区域。如果在房间中间的区域与沿3D架构元素的区域之间没有直接边,则中间的区域将链接到房间中间中的另一区域,该区域本身将(直接或不直接)链接到沿3D架构元素的区域。
如果找到若干边,则优选“前”方向,然后是最小边距离值。如果没有“前”方向,则考虑上述数据库统计数据中频率最高的边,保留具有最小距离值的边,与其方向无关。
然后,定义房间中间的区域相对于沿3D架构元素的区域的潜在相对放置(即,平移),从而在3D房间的自动家具配备的步骤中维持在两个区域的3D家具配备对象之间的关系。
同样的方法可以用两个区域来实现,这两个区域共享共同的3D架构元素。如果在两个区域的3D家具配备对象之间存在边,则定义潜在的相对放置(即,平移),从而提议将尊重在两个区域的3D家具配备对象之间的关系。
还可以在开口(门、窗户)与3D家具配备对象之间的关系上添加弱约束,以便相应地将3D家具配备对象设置在窗户或门前面的新房间中。因此,即使3D家具配备对象被另一3D家具配备对象替换,约束仍然存在。
然后,在要求保护的方法的最后一个步骤中,存储配备家具的虚拟3D房间的模板(图1的步骤a3))。该模板可以提供给用于自动为3D房间配备家具的系统。有利地,模板包括一个或多个区域的集合以及在区域之间和在区域与房间的3D架构元素之间的空间和功能约束(链、支撑、中心、角落约束等)。
本发明还涉及一种用于自动为3D房间配备家具的计算机实现的方法,包括以下步骤:
b1)提供要配备家具的虚拟3D房间,并且在利用根据前述权利要求中任一项所述的用于自动提供至少一个模板的计算机实现的方法获得的所存储的模板之中选择模板;
b2)为虚拟3D房间配备家具,以便将选定的模板映射到要配备家具的3D房间中。
图9示出了本发明方法的不同步骤。由用户提供要配备家具的3D房间。模板可以由用户选择(例如,在网站或专用软件上,面板选择基于模板在其原始房间中的渲染)或自动提议(例如,平台上最受欢迎的模板)。
可以实现附加的过滤,以便仅提议与要配备家具的3D房间的类型相对应的模板(例如,对于要配备家具的12m2的卧室,将不提议将对应于30m2的卧室的模板作为灵感)。
在优选实施例中,步骤b2)包括使用粒子群优化(PSO)算法来将选定的模板映射到要配备家具的3D房间中。
需要提醒的是,PSO算法通过迭代地尝试改进关于给定质量测量的候选解决方案来优化问题。通过拥有候选解的集合(这里被称为粒子)并在粒子位置和速度的搜索空间中移动这些粒子来解决问题。每个粒子的移动都受其局部最知名位置的影响;它还按照其自身的速度被引导朝向搜索空间中最知名的位置。
应用于基于模板为3D房间配备家具的PSO算法在于在给定房间中寻找3D家具配备对象的集合的最佳放置,其中约束例如为:非碰撞,3D架构元素的角落中的3D家具配备对象,或两组之间的距离。
给定要配备家具的某个3D房间和灵感模板及其区域的集合以及在区域与3D架构元素或功能元素之间的约束(例如,看似合理的供水),可以应用以下步骤:
- 确定由要配备家具的3D房间的3D架构元素和选定的模板的区域组成的对的所有组合。与模板的区域配对的要配备家具的3D房间中的3D架构元素被称为该区域的参考3D架构元素,
- 指派所有组合作为PSO算法的粒子的变量。区域相对于它们的参考3D架构元素的位置可以添加到粒子的变量中,以及区域的标签“可选”和每个区域中3D家具配备对象的潜在替换集。
- PSO算法:
o 沿着它们的参考3D架构元素移动区域(参见图10,它示出了对于粒子中给定组合的潜在平移);
o 改变参考3D架构元素;
o 修改区域中的3D家具配备对象的集合(替换、可选、装饰等);
o 避免与其他区域或障碍物的碰撞(障碍物是其他3D架构元素、3D开口前面的空间、楼梯和固定的3D家具配备对象)。
然后,可以向用户显示配备家具的3D房间提议,如图11所示。
本发明的方法可以由适当编程的通用计算机或计算机系统执行,该通用计算机或计算机系统可能包括计算机网络,将适当的程序以非易失性形式存储在诸如硬盘、固态盘或CD-ROM之类的计算机可读介质上,并使用其微处理器和存储器执行所述程序。
用于自动提供配备家具的虚拟3D房间的至少一个模板的方法和用于自动为3D房间配备家具的方法可以在同一计算机系统上执行。可替代地,用于自动提供配备家具的虚拟3D房间的至少一个模板的方法可以在第一计算机系统上执行,而用于自动为3D房间配备家具的方法可以在第二计算机系统上执行。在这种情况下,计算机系统可以调用存储在第一计算机系统上的模板。
参考图12描述了适合执行根据本发明示例性实施例的方法的计算机。在图12中,计算机包括中央处理单元(CPU)P,其执行上述方法步骤,同时运行可执行程序,即,计算机可读指令集,其存储在诸如RAM MEM1或ROM MEM2或硬盘驱动器(HDD)MEM3、DVD/CD驱动器MEM4之类的存储器设备中,或远程存储。此外,定义混凝土钢筋杆的一个或多个计算机文件也可以存储在存储器设备MEM1至MEM4中的一个或多个上,或远程存储。
模板以及配备家具的3D房间提议可以存储在存储器设备中的一个中。
所要求保护的发明不受其上存储本发明过程的计算机可读指令的计算机可读介质的形式限制。例如,指令和文件可以存储在CD、DVD、闪速存储器、RAM、ROM、PROM、EPROM、EEPROM、硬盘或计算机与之通信的任何其他信息处理设备(例如,服务器或计算机)中。该程序可以存储在相同的存储器设备上或不同的存储器设备上。
此外,适合于执行本发明方法的计算机程序可以作为实用应用、后台守护程序或操作系统的组件或其组合提供,从而与CPU CP和操作系统(例如,Microsoft VISTA、Microsoft Windows 8、UNIX、Solaris、LINUX、Apple MAC-OS和本领域技术人员已知的其他系统)结合执行。
CPU P可以是美国Intel的Xenon处理器或美国AMD的Opteron处理器,或者可以是其他处理器类型,例如,美国Freescale Corporatioin的Freescale ColdFire、IMX或ARM处理器。可替代地,CPU可以是处理器,例如,来自美国Intel Corporation的Core2 Duo,或者可以在FPGA、ASIC、PLD上实现或使用分立逻辑电路实现,如本领域普通技术人员将认识到的。此外,CPU可以实现为多个处理器,它们协同工作以执行上述发明过程的计算机可读指令。
图12中的计算机CPT还包括网络接口NI(例如,来自美国的Intel Corporation的Intel Ethernet PRO网络接口卡),其用于与网络(例如,局域网(LAN)、广域网(WAN)、互联网等)接合。该方法可以通过web应用远程实现。
计算机还包括显示控制器DC(例如,来自美国NVIDIA Corporation的NVIDIAGeForce GTX图形适配器),其用于与显示器DY(例如,Hewlett Packard HPL2445w LCD监视器)接合。通用I/O接口IF与键盘KB和定点设备PD(例如,滚动球、鼠标、触摸板等)接合。显示器、键盘、触摸模式的敏感表面和定点设备连同显示控制器和I/O接口形成图形用户接口,供用户用于提供输入命令。
磁盘控制器DKC将HDD MEM3和DVD/CD MEM4与通信总线CBS连接,该通信总线CBS可以是ISA、EISA、VESA、PCI或类似物,其用于互连计算机的所有组件。
本文为了简洁省略了对显示器、键盘、定点设备以及显示控制器、磁盘控制器、网络接口和I/O接口的一般特征和功能的描述,因为这些特征是已知的。
图13是计算机系统的框图,该计算机系统适合于执行用于自动提供配备家具的虚拟3D房间的至少一个模板的方法和/或用于自动为3D房间配备家具的方法。
计算机系统可以安装在家具店,或者可以由经由互联网直接连接到服务器的个人客户PC组成。
在图13中,可执行程序以及包括模板和配备家具的房间的计算机文件被存储在连接到服务器SC的存储器设备DB上。除了显示控制器、敏感表面、显示器、键盘和/或定点设备可能在服务器中缺失之外,服务器的存储器设备和整体架构可以与上面参考图11讨论的相同。
然后服务器SC经由网络NW连接到管理员系统ADS和最终用户计算机EUC。
Claims (18)
1.一种用于自动提供包括3D元素的配备家具的虚拟3D房间的至少一个模板的计算机实现的方法,所述方法包括:对于每个配备家具的虚拟3D房间进行以下操作:
a1)基于在所述3D房间的所述3D元素之间的空间关系来自动提取空间关系图,所述3D元素包括位于所述配备家具的虚拟3D房间中的3D架构元素和3D家具配备对象;
a2)基于所述空间关系图来从所述3D房间中自动提取至少一个区域,并且提取关于所述区域相对于房间架构或相对于所述3D房间的其他区域的相对布置的约束集合,区域由至少一个3D家具配备对象的局部空间布置定义;
a3)存储所述配备家具的虚拟3D房间的模板,所述模板包括所述区域和所述约束集合。
2.根据权利要求1所述的方法,包括:计算在房间的3D家具配备对象总地板占据面积与房间地板面积之间的比率,并且仅当所述比率满足预先定义的标准时才实现步骤a1-a3),所述预先定义的标准是基于相同类别的房间的数据集合的比率的标准偏差的。
3.根据前述权利要求中任一项所述的方法,其中,步骤a1)包括:
-获得对应于所述3D元素的节点的集合,
-基于在所述3D元素之间的距离来提取在3D元素之间的垂直关系和水平关系。
4.根据权利要求3所述的方法,其中,对于被称为锚点的每个节点,利用以下步骤来提取所述垂直关系:
-计算在潜在的支撑3D元素与所述锚点之间的3D交叉的体积,
-如果所述交叉的体积高于所述支撑3D元素的体积的特定比例,则向具有“包含”标签的锚点的节点添加支撑边,
-如果所述交叉的体积没有高于所述支撑3D元素的体积的特定比例,则仅当3D元素底面中心位于所述锚点的底面上方时,才向具有距离标签的锚点的节点添加支撑边,所述距离标签是基于在支撑目标的底部与所述锚点的顶面之间的距离计算出的。
5.根据权利要求3或4中任一项所述的方法,其中,对于被称为锚点的每个节点,通过以下操作来提取所述水平关系:追踪开始于所述锚点的一系列光线,并且计算与所述3D房间的其他3D家具配备对象的交叉。
6.根据前述权利要求中任一项所述的方法,其中,步骤a1)包括:
-检测所述空间关系图中的至少一个上部结构,并且对所述空间关系图中不属于上部结构的边应用修剪,或者
-对所述空间关系图中这样的边应用修剪:所述边在从3D配备家具的房间的数据集中提取的图形的数据集中出现频率最低。
7.根据前述权利要求中任一项所述的方法,其中,步骤a2)包括:针对在所述3D架构元素前面具有至少一个3D家具配备对象的每个3D架构元素创建区域,所述区域包括以近端或相邻边在所述3D架构元素的前面的所有3D家具配备对象。
8.根据前述权利要求中任一项所述的方法,其中,如果区域沿所述3D架构元素的长度高于特定阈值,则所述区域被分成若干区域。
9.根据前述权利要求中任一项所述的方法,其中,步骤a2)包括:
-根据所述3D家具配备对象的重要性,对3D家具配备对象进行排序,所述3D家具配备对象在所述图中具有与另一3D对象的节点至少具有关系的节点并且不位于沿3D架构元素的区域中,所述重要性被定义为所述3D家具配备对象的维度、类别和/或所述3D家具配备对象所涉及的与其他3D家具配备对象的关系;
-创建包括最重要的3D家具配备对象的新区域。
10.根据前述权利要求中任一项所述的方法,其中,步骤a2)包括:
-检测3D家具配备对象是否位于两个垂直的3D架构元素的前面,
-针对具有要被定位在房间角落的3D家具配备对象的区域创建约束。
11.根据前述权利要求中任一项所述的方法,其中,步骤a2)包括:
-在位于沿3D架构元素处的区域与房间中间的区域之间添加距离约束,
-定义在所述房间中间的区域相对于沿所述3D架构元素的区域的潜在相对移动,使得在在线步骤中维持在两个区域的3D家具配备对象之间的关系。
12.根据前述权利要求中任一项所述的方法,其中,步骤a2)包括:
-沿3D分隔物在两个区域之间添加距离约束,
-定义两个区域的潜在相对移动,使得在在线步骤中维持在两个区域的3D家具配备对象之间的关系。
13.根据前述权利要求中任一项所述的方法,其中,在步骤a3)中,所述模板包括一个或多个区域的集合,以及在区域之间和在区域与房间的3D架构元素之间的空间和功能约束。
14.一种用于自动为3D房间配备家具的计算机实现的方法,包括以下步骤:
b1)提供要配备家具的虚拟3D房间,并且在利用根据前述权利要求中任一项所述的用于自动提供至少一个模板的计算机实现的方法获得的所存储的模板之中选择模板;
b2)为所述虚拟3D房间配备家具,以便将选定的模板映射到要配备家具的所述3D房间中。
15.根据权利要求14所述的方法,其中,步骤b2)包括以下子步骤:
-确定由要配备家具的所述3D房间的3D架构元素和所述模板的区域组成的对的所有组合,
-指派所有组合作为PSO算法的粒子的变量,
-运行所述PSO算法,直到找到满足约束的满意解为止。
16.一种计算机程序产品,包括用于使计算机系统执行根据前述权利要求中任一项所述的方法的计算机可执行指令。
17.一种非暂时性计算机可读数据存储介质(MEM1、MEM2、MEM3、MEM4),包含用于使计算机系统执行根据权利要求1至15中任一项所述的方法的计算机可执行指令。
18.一种计算机系统,包括耦合到存储器(MEM1、MEM2、MEM3、MEM4)的处理器(CP),所述存储器存储用于使所述计算机系统执行根据权利要求1至15中任一项所述的方法的计算机可执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21305488.5A EP4075316A1 (en) | 2021-04-14 | 2021-04-14 | Method for automatically furnishing a virtual 3d room |
EP21305488.5 | 2021-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203774A true CN115203774A (zh) | 2022-10-18 |
Family
ID=75728776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210362343.7A Pending CN115203774A (zh) | 2021-04-14 | 2022-04-07 | 自动为虚拟3d房间配备家具的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220335171A1 (zh) |
EP (1) | EP4075316A1 (zh) |
JP (1) | JP2022163704A (zh) |
CN (1) | CN115203774A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024106034A1 (ja) * | 2022-11-15 | 2024-05-23 | パナソニックIpマネジメント株式会社 | 情報処理方法、情報処理装置、情報処理システム、および、プログラム |
CN116310009B (zh) * | 2023-05-17 | 2023-08-04 | 海马云(天津)信息技术有限公司 | 一种数字虚拟对象的装饰物处理方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107240151B (zh) | 2017-07-05 | 2020-08-21 | 常州赞云软件科技有限公司 | 一种基于父子约束的场景布局保存与再现方法 |
-
2021
- 2021-04-14 EP EP21305488.5A patent/EP4075316A1/en active Pending
-
2022
- 2022-03-31 JP JP2022058562A patent/JP2022163704A/ja active Pending
- 2022-04-06 US US17/658,187 patent/US20220335171A1/en active Pending
- 2022-04-07 CN CN202210362343.7A patent/CN115203774A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022163704A (ja) | 2022-10-26 |
US20220335171A1 (en) | 2022-10-20 |
EP4075316A1 (en) | 2022-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392736B2 (en) | Structural design systems and methods for automatic extraction of data from 2D floor plans for retention in building information models | |
CN115203774A (zh) | 自动为虚拟3d房间配备家具的方法 | |
CN111008416B (zh) | 一种户型场景光照效果生成方法及系统 | |
Tutenel et al. | Generating consistent buildings: a semantic approach for integrating procedural techniques | |
Strug et al. | Supporting the design process with hypergraph genetic operators | |
JP6395092B2 (ja) | 光環境設計支援装置、光環境設計支援システム、プログラム | |
Zhang et al. | Geometry-based layout generation with hyper-relations among objects | |
US11941332B2 (en) | Generating space models and geometry models using a machine learning system with multi-platform interfaces | |
EP4141726A1 (en) | Method for automatically furnishing a 3d room based on user preferences | |
CN112948933B (zh) | 房屋模型的构建方法、显示方法、管理装置以及存储介质 | |
Zawidzki | Discrete optimization in architecture: Architectural & urban layout | |
Raistrick et al. | Infinigen Indoors: Photorealistic Indoor Scenes using Procedural Generation | |
Tümmers et al. | Generating VR Meeting Rooms with Non-rectangular Floor Plans Using Cost Optimization and Hard Constraints | |
Toljan | Urban Space Index | |
Kim et al. | Space-adaptive Artwork Placement Based on Content Similarities for Curating Thematic Spaces in a Virtual Museum | |
Seenappa | Procrustes: A Declarative Scene Modelling System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |