CN116433877B - 确定物体模型摆放面的方法、电子设备及存储介质 - Google Patents
确定物体模型摆放面的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116433877B CN116433877B CN202310402841.4A CN202310402841A CN116433877B CN 116433877 B CN116433877 B CN 116433877B CN 202310402841 A CN202310402841 A CN 202310402841A CN 116433877 B CN116433877 B CN 116433877B
- Authority
- CN
- China
- Prior art keywords
- model
- horizontal plane
- determining
- dimensional model
- placing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000005070 sampling Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004441 surface measurement Methods 0.000 description 3
- 206010063385 Intellectualisation Diseases 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Abstract
本公开实施例公开了一种确定物体模型摆放面的方法、电子设备及存储介质,其中,方法包括:获取物体的三维模型,确定三维模型在三维笛卡尔坐标系下的坐标;将三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;从至少一个水平面几何图形中确定候选水平面图形;在水平面上生成三维模型的垂直投影多边形;基于三维模型的最高点的高度坐标,将垂直投影多边形移动到三维模型之上的位置,得到入射水平面;在入射水平面上生成均匀分布的一组采样点;以一组采样点为起点分别生成垂直向下的一组射线,将与任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。本公开实施例可自动根据三维模型筛选出模型摆放面。
Description
技术领域
本公开涉及三维模型处理技术领域,尤其涉及一种确定物体模型摆放面的方法、电子设备及存储介质。
背景技术
随着家庭装修需求的逐年增加,软装设计也呈现持续发展的态势。在软装设计领域,除了需要设计家具家电类物品的摆放外,还需要对家具上摆放的各类配饰用品进行设计。为了实现对家具上摆放的各类配饰用品的设计,需要先提取出用于摆放配饰用品的家具的摆放面。
相关技术中,通常需要建模人员在构建家具素材模型时手动标记出摆放面区域,手动标记摆放面区域能够较为精确的体现家具模型摆放面的区域坐标,但是由于大平面摆放家具的商品数以万计,手工标记摆放面区域的工作量太大,存在费时费工的缺点。
发明内容
本公开实施例所要解决的一个技术问题是:提供一种确定物体模型摆放面的方法、电子设备及存储介质。
根据本公开实施例的一个方面,提供一种确定物体模型摆放面的方法,包括:
获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标;
基于所述三维模型在三维笛卡尔坐标系下的坐标,将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;
基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形;
在水平面上生成所述三维模型的垂直投影多边形;
基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面;
在所述入射水平面上随机生成均匀分布的一组采样点;
以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
在本公开的一些实施例中,所述将与所述一组射线中任意一条射线产生第一个交点的水平面几何图形确定为模型摆放面之后,还包括:
计算所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,所述顶点坐标为三维坐标;
将所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,确定为所述模型摆放面的高度坐标;
基于所述模型摆放面的高度坐标和所在水平面几何图形的所有顶点的顶点坐标,计算高度相邻的模型摆放面的重叠部分以及高度差值;
为位于下层的模型摆放面的重叠部分设置摆放物件高度阈值,所述摆放物件高度阈值不大于所述高度差值;
生成摆放面区域列表,所述摆放面区域列表中记录有所有模型摆放面以及模型摆放面的摆放信息,所述摆放信息包括摆放面区域所在水平面几何图形的所有顶点的顶点坐标、摆放物件高度阈值。
在本公开的一些实施例中,所述方法还包括:
接收用户触发的确定摆放面的操作,所述操作中携带有摆放物件的参数信息,所述摆放物件的参数信息包括摆放物件的高度,和/或,摆放物件的平面信息;
根据所述摆放物件的参数信息,从所述摆放面区域列表中选择用于摆放所述摆放物件的模型摆放面;
输出所述用于摆放所述摆放物件的模型摆放面。
在本公开的一些实施例中,所述将三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形,包括:
对所述三维模型进行网格简化处理,得到简化网格模型;
基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面;
基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
在本公开的一些实施例中,所述基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面,包括:
遍历所述简化网格模型中的三角形网格面;
计算任意一个三角形网格面的法线向量;
计算所述任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角;
将所述夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面。
在本公开的一些实施例中,所述设定条件包括面积比值阈值和长宽比例阈值;
基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形,包括:
计算所述垂直投影多边形的投影面积;
计算所述至少一个水平面几何图形的面积与所述投影面积的面积比值,以及所述至少一个水平面几何图形的长宽比值;
将所述面积比值大于所述面积比值阈值,并且所述长宽比值大于长宽比例阈值的水平面几何图形确定为候选水平面图形。
在本公开的一些实施例中,所述基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面,包括:
获取所述三维模型的最高点的高度坐标;
计算所述最高点的高度坐标与设定冗余值的和,得到待移动高度值,其中所述设定冗余值大于0;
将所述垂直投影多边形移动到所述待移动高度值对应的位置,得到所述入射水平面。
根据本公开实施例的又一方面,一种确定物体模型摆放面的装置,所述装置包括:
获取模块,用于获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标;
关联模块,用于基于所述三维模型在三维笛卡尔坐标系下的坐标,将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;
筛选模块,用于基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形;
投影多边形模块,用于在水平面上生成所述三维模型的垂直投影多边形;
平面移动模块,用于基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面;
采样点模块,用于在所述入射水平面上随机生成均匀分布的一组采样点;
摆放面确定模块,用于以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
在本公开的一些实施例中,所述装置还包括:
面积确定模块,用于计算所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,所述顶点坐标为三维坐标;
高度确定模块,用于将所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,确定为所述模型摆放面的高度坐标;
差值确定模块,用于基于所述模型摆放面的高度坐标和所在水平面几何图形的所有顶点的顶点坐标,计算高度相邻的模型摆放面的重叠部分以及高度差值;
高度阈值确定模块,用于为位于下层的模型摆放面的重叠部分设置摆放物件高度阈值,所述摆放物件高度阈值不大于所述高度差值;
区域列表生成模块,用于生成摆放面区域列表,所述摆放面区域列表中记录有所有模型摆放面以及模型摆放面的摆放信息,所述摆放信息包括摆放面区域所在水平面几何图形的所有顶点的顶点坐标、摆放物件高度阈值。
在本公开的一些实施例中,所述装置还包括:
接收模块,用于接收用户触发的确定摆放面的操作,所述操作中携带有摆放物件的参数信息,所述摆放物件的参数信息包括摆放物件的高度,和/或,摆放物件的平面信息;
选择模块,用于根据所述摆放物件的参数信息,从所述摆放面区域列表中选择用于摆放所述摆放物件的模型摆放面;
输出模块,用于输出所述用于摆放所述摆放物件的模型摆放面。
在本公开的一些实施例中,所述关联模块包括:
简化子模块,用于对所述三维模型进行网格简化处理,得到简化网格模型;
网格面确定子模块,用于基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面;
关联子模块,用于基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
在本公开的一些实施例中,所述网格面确定子模块包括:
遍历子模块,用于遍历所述简化网格模型中的三角形网格面;
法线计算子模块,用于计算任意一个三角形网格面的法线向量;
夹角计算子模块,用于计算所述任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角;
平面确定子模块,用于将所述夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面。
在本公开的一些实施例中,所述设定条件包括面积比值阈值和长宽比例阈值;
所述筛选模块包括:
投影面积确定子模块,用于计算所述垂直投影多边形的投影面积;
比值确定子模块,用于计算所述至少一个水平面几何图形的面积与所述投影面积的面积比值,以及所述至少一个水平面几何图形的长宽比值;
候选面确定子模块,用于将所述面积比值大于所述面积比值阈值,并且所述长宽比值大于长宽比例阈值的水平面几何图形确定为候选水平面图形。
在本公开的一些实施例中,所述平面移动模块包括:
高度坐标确定子模块,用于获取所述三维模型的最高点的高度坐标;
移动值计算子模块,用于计算所述最高点的高度坐标与设定冗余值的和,得到待移动高度值,其中所述设定冗余值大于0;
移动子模块,用于将所述垂直投影多边形移动到所述待移动高度值对应的位置,得到所述入射水平面。
根据本公开实施例的再一方面,提供一种电子设备,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述确定物体模型摆放面的方法。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机指令被处理器执行时,实现上述确定物体模型摆放面的方法。
基于本公开上述实施例提供的确定物体模型摆放面的方法以及电子设备、存储介质,获取三维模型和三维模型在三维笛卡尔坐标系下的坐标,通过将三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;然后基于面积比值阈值和长宽比例阈值从所述至少一个水平面几何图形中确定候选水平面图形,再基于所述家具三维模型的最高点的高度坐标,将生成的垂直投影多边形沿着垂直方向向上移动到所述家具三维模型之上的位置,得到入射水平面;再入射水平面上随机生成均匀分布的一组采样点,以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。本公开实施例通过面积和长宽比例从三角形网格面的水平面几何图形中确定出可摆放面物品的候选水平面图形,然后将垂直投影多边形中随机生成的均匀分布的采样点向下生成射线,根据交点确定出模型摆放面,过滤掉模型底部的摆放面,得到模型顶部的摆放面。本公开实施例可自动根据家具三维模型筛选出模型摆放面,速度快,无需人工干预,提高了软装设计的智能化和效率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开的确定物体模型摆放面的方法的一个实施例的流程图;
图2A为本公开的确定物体模型摆放面的方法的又一个实施例的流程图;
图2B为本公开的确定的水平面几何图形的效果示意图;
图2C为本公开的具有高低摆放面区域的模型示意图;
图2D为本公开的过滤掉家具模型底部的水平面几何图形的示意图;
图3为本公开的确定物体模型摆放面的方法中确定水平三角形网格面的流程图;
图4为本公开的确定物体模型摆放面的方法中将水平三角形网格面进行关联的流程图;
图5为本公开的确定物体模型摆放面的方法中确定候选水平面图形的流程图;
图6为本公开的确定物体模型摆放面的方法中确定入射水平面的流程图;
图7为本公开的确定物体模型摆放面的装置的一个实施例的结构示意图;
图8为本公开的确定物体模型摆放面的装置的又一个实施例的结构示意图;
图9为本公开的确定物体模型摆放面的装置的又一个实施例的结构示意图;
图10为本公开一示意性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于计算机系统/服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器等电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性实施例
图1为本公开的确定物体模型摆放面的方法的一个实施例的流程图;该确定物体模型摆放面的方法可以应用在电子设备上,如图1所示,该确定物体模型摆放面的方法包括以下步骤:
在步骤101中,获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标。
在一实施例中,三维模型可以是家具三维模型、建筑三维模型、汽车三维模型等,本公开实施例以家具三维模型为例进行示例性说明,但是三维模型可以为任何能够摆放物件的物体的三维模型。
在一实施例中,三维模型通常以OBJ格式文件(一种3D模型文件)存储,OBJ格式文件包含三维模型在三维笛卡尔坐标系下的坐标、三角形网格面等信息。在读取OBJ格式文件时,可以根据OBJ格式文件中记载的信息,获取到三维模型在三维笛卡尔坐标系下的坐标、三角形网格面等信息,并将获取的信息存储在统一数据结构mesh中。
在步骤102中,将三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形。
在一实施例中,可以先采用三维网格精简(Quadic Error Metrics,简称为QEM)算法对家具三维模型进行网格简化处理,减少顶点以及三角形网格面的数量,得到简化网格模型;然后基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面,最后基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
在一实施例中,关联处理是指在两个水平三角形网格面的一个或者两个顶点的顶点坐标相同时,那么将这两个水平三角形网格面确定为相连的水平三角形网格面,将其确定为一个水平面几何图形,由此可以得到在不同水平面的至少一个水平面几何图形。
在一实施例中,水平面几何图形是指三角形网格面法线向量与世界坐标系中竖直坐标轴平行且方向一致的一个水平面图形。本公开实施例中,平行并不是绝对的平行,可以容许三角形网格面的法线向量与世界坐标系中竖直坐标轴之间存在小于夹角基准阈值(如5度)的夹角,在夹角小于夹角基准阈值时,即可判定三角形网格面的法线向量与世界坐标系中竖直坐标轴平行。
在一实施例中,确定至少一个水平面几何图形的具体实现流程可参见图3所示实施例,这里先不详述。
在步骤103中,基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形。
在一实施例中,所述设定条件包括面积比值阈值和长宽比例阈值。
在一实施例中,设定条件用于筛选出面积大小、长宽比例合理的,能够用来摆放物件的水平面几何图形。如果面积比值小于面积比值阈值,则不适于摆放物件,而如果水平面几何图形长宽比例太大,长宽比例大于长宽比例阈值,例如长宽比例为15,则该水平面几何图形可能为桌子撑等识别出的水平面几何图形,无法摆放物件。
在一实施例中,面积大小可以通过水平面几何图形与家具三维模型的垂直投影多边形的面积的比值来衡量。
在一实施例中,家具三维模型的垂直投影多边形为家具模型在空间基准水平面上进行垂直投影得到的多边形。
在一实施例中,根据水平面几何图形的顶点坐标可以计算出水平面几何图形的面积,由此可以计算出水平面几何图形的面积与家具三维模型的垂直投影多边形的面积比值。
在一实施例中,而对于水平面几何图形的长宽比例,如果水平面几何图形为一个规则的矩形,则根据顶点坐标可以很容易计算出长宽比例,如果水平面几何图形为一个不规则的多边形,则可以根据水平面几何图形轮廓的x,y值,构建一个最大外接矩形,将最大外接矩形的长宽比确定为该水平面几何图形的长宽比。
在一实施例中,面积比例阈值和长宽比例阈值可以为一个预先设定的固定值,例如,面积比例阈值为0.03,长宽比例阈值为10。
在一实施例中,执行完步骤103之后,执行步骤107。
在步骤104中,在水平面上生成所述三维模型的垂直投影多边形。
在一实施例中,可以在空间基准水平面上进行垂直投影得到的垂直投影多边形。
在步骤105中,基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面。
在一实施例中,可以通过计算模型boundingbox,获取家具三维模型最高点的高度值,然后增加设定冗余值(如100mm),得到将垂直投影多边形可以沿垂直方向向上移动到的位置。其中,所述三维模型之上的位置是指比三维模型的最高点的高度坐标还要大的一个位置。
本公开实施例中,入射水平面是指以采样点为起点向下生成射线时,采样点所处的水平面。由于入射水平面是在家具三维模型最高点之上的位置,因此,向下生成射线时,可与步骤101生成的水平面几何图形产生交点。
在步骤106中,在所述入射水平面上随机生成均匀分布的一组采样点。
在一实施例中,可以使用随机采样的方法,在入射水平面中随机生成均匀分布的一组采样点。
在步骤107中,以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
在一实施例中,基于家具三维模型确定的各个候选水平面图形的高度坐标不相同,而在确定的候选水平面图形中包括桌面或者其他摆放架的顶部和底部,顶部可以用于摆放物体,而底部不可以摆放物体,参见图2C,其中示意了基于一个桌子三维模型提取得到水平面几何图形的示意图,其中,图2C右侧中的水平面几何图形是根据图2C左侧的三维模型的水平三角形网格面进行关联处理得到的,其中水平面几何图形既包括桌面的顶部,也包括桌面的底部(箭头指向的就是底部),而桌面的底部不可以摆放物体,因此需要过滤掉处于底部的水平面几何图形。其中,图2C右侧中的水平面几何图形并不表示这些水平面的实际相对位置关系,而是根据三维模型的水平三角网格面抽取并关联得到一些水平面。
在一实施例中,可以以这一组采样点分别为起点,生成与三维笛卡尔坐标系中垂直方向一致的向下的一组射线,将与一组射线中任意一条射线产生第一个交点的水平面几何图形确定为模型摆放面,由此可以过滤掉处于底部的一些水平面几何图形。例如,基于一个桌子确定出两个候选水平面图形,一个为桌面的顶部所在的水平面几何图形,另一个为桌子底部所在的水平面几何图形,在通过步骤105得到的入射水平面上的采样点向下生成射线时,与射线产生第一个交点的水平面几何图形为桌子顶部所在的水平面几何图形,因此将与射线产生第一个交点的水平面几何图形确定为模型摆放面时,即过滤掉了桌子底部所在的水平面几何图形。
上述步骤101~107,通过将家具三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;然后基于面积比值阈值和长宽比例阈值从所述至少一个水平面几何图形中确定候选水平面图形,再进一步根据在所述家具三维模型的垂直投影多边形内随机生成均匀分布的一组采样点;基于所述家具三维模型的最高点的高度坐标,将所述垂直投影多边形移动到所述家具三维模型之上的位置,得到入射水平面;以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。本公开实施例通过面积和长宽比例从三角形网格面的水平面几何图形中确定出可摆放面物品的候选水平面图形,然后将垂直投影多边形中随机生成的均匀分布的采样点向下生成射线,根据交点确定出家具的模型摆放面,过滤掉模型底部的摆放面,得到模型顶部的摆放面。本公开实施例可自动根据家具三维筛选出模型顶部的白方面,速度快,无需人工干预,提高了软装设计的智能化和效率。
为了更好地说明本申请的确定物体模型摆放面的方法,下面用另一个实施例说明。
图2A为本公开的确定物体模型摆放面的方法的又一个实施例的流程图,图2B为本公开的确定的水平面几何图形的效果示意图,图2C为本公开的具有高低摆放面区域的模型示意图,图2D为本公开的过滤掉家具模型底部的水平面几何图形的示意图;本实施例以在确定物体模型摆放面后如何生成一个家具三维模型的摆放面区域列表和输出摆放面为例进行示例性说明,如图2A所示,包括如下步骤:
在步骤201中,计算所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,所述顶点坐标为三维坐标。
在一实施例中,三维模型通常以OBJ格式文件(一种3D模型文件)存储,OBJ格式文件包含三维模型在三维笛卡尔坐标系下的坐标、三角形网格面等信息。在读取OBJ格式文件时,可以根据OBJ格式文件中记载的信息,获取到三维模型在三维笛卡尔坐标系下的坐标、三角形网格面等信息,并将获取的信息存储在统一数据结构mesh中。
在步骤202中,将所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,确定为所述模型摆放面的高度坐标。
在一实施例中,由于一个水平面几何图形的所有顶点的高度坐标并不是一定相等的,例如,模型摆放面为倾斜度较小的斜面时,每个顶点的高度坐标就不是完全相同的,这时可通过计算该水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,来确定这个模型摆放面的高度坐标。
在步骤203中,基于所述模型摆放面的高度坐标和所在水平面几何图形的所有顶点的顶点坐标,计算高度相邻的模型摆放面的重叠部分以及高度差值。
在一实施例中,由于家具三维模型可能存在两个以上的模型摆放面,参见图2D,图中标记21所指示的平面(书架面、一个桌面还有抽屉)等均可以用来摆放物品,而书架面和桌面之间存在重叠部分,桌面和抽屉之间也存在重叠部分。重叠部分的高度差决定了下层摆放面可以摆放的物件的高度。
在一实施例中,通过步骤202计算出每个摆放面的高度坐标后,即可计算出高度相邻的模型摆放面的高度差值;而基于所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,可计算高度相邻的模型摆放面的重叠部分,具体可以根据围成水平面几何图形的所有顶点的顶点坐标确定外接多边形,进而可以确定上下多边形的重叠部分。
在步骤204中,为位于下层的模型摆放面的重叠部分设置摆放物件高度阈值,所述摆放物件高度阈值不大于所述高度差值。
在一实施例中,摆放物件高度阈值是指摆放物件的最大高度。例如,图2D中,如果书架和桌面的高度差为20厘米,则可设置摆放物件高度阈值不能超过高度差值,可以为19厘米,书架和桌面的重叠部分所摆放得物件的高度不能超过19厘米。摆放物件高度阈值可以小于高度差值,也可以等于高度差值,可以预先设定摆放物件高度阈值和高度差值之间的具体差值。
在一实施例中,如果高度相邻的模型摆放面的高度差值太小,则也可设置位于下层的模型摆放面的重叠部分不可摆放物件。例如,高度相邻的模型摆放面的高度差值为2厘米,则可设置下层的模型摆放面的重叠部分不能摆放物件。此时可以直接将下层模型摆放面所在水平面几何图形的外接多边形设置为不包含重叠部分的多边形。
在步骤205中,生成摆放面区域列表,所述摆放面区域列表中记录有所有模型摆放面以及模型摆放面的摆放信息。
在一实施例中,摆放面区域列表中记录了所有可以摆放物件的模型摆放面,以及该模型摆放面的摆放信息。在一实施例中,所述摆放信息包括摆放面区域所在水平面几何图形的所有顶点的顶点坐标、摆放物件高度阈值。
在一实施例中,可以在该系统平台中记录每种家具三维模型与摆放面区域列表之间的对应关系。当有用户通过客户端需要访问系统确定该家具三维模型的摆放面时,即可基于用户触发的操作,向用户展示模型摆放面。
在步骤206中,接收用户触发的确定摆放面的操作,所述操作中携带有摆放物件的参数信息,所述摆放物件的参数信息包括摆放物件的高度,和/或,摆放物件的平面信息。
在一实施例中,操作中除了可以携带摆放物件的参数信息之外,还需要包括家具三维模型的标识信息,由此平台可以根据家具三维模型的标识信息获取到对应的摆放面区域列表,进而根据摆放物件的参数信息为摆放物件选择适用于摆放的模型摆放面。
在步骤207中,根据所述摆放物件的参数信息,从所述摆放面区域列表中选择用于摆放所述摆放物件的模型摆放面。
在一实施例中,摆放物件的参数信息中摆放物件的高度可以为所要摆放的物件的高度,例如,摆放物件的高度为20厘米,则可过滤掉摆放物件高度阈值不大于20厘米的摆放面(或者摆放面的重叠部分)。摆放物件的平面信息是指摆放物件的平面尺寸,例如一个物件的长宽为20厘米乘30厘米,则不能将其摆放在模型摆放面所在水平面几何图形的外界多边形不能内含该物件的摆放面。
在步骤208中,输出所述用于摆放所述摆放物件的模型摆放面。
在一实施例中,可以以列表的形式输出用于摆放所述摆放物件的模型摆放面。
通过上述步骤201~步骤208,本实施例公开了家具三维模型中存在上下多个模型摆放免的情况下,确定每个模型摆放面所能摆放的物件的具体区域以及摆放物件的限定条件,通过限定每个模型摆放面的具体摆放信息可以实现后续的模型摆放面的有效输出,确保本公开实施例输出的模型摆放面能够实现物件的有效摆放。
图3为本公开的确定物体模型摆放面的方法中确定水平三角形网格面的流程图;本实施例以如何确定水平三角形网格面以及将水平三角形网格面进行关联为例进行示例性说明,如图3所示,包括如下步骤:
在步骤301中,遍历所述简化网格模型中的三角形网格面。
在步骤302中,计算任意一个三角形网格面的法线向量。
在一实施例中,通过每个三角形网格面的顶点的顶点坐标,可以确定该三角形网格面的平面方程,进而可以计算出三角形网格面的法线向量。
在步骤303中,计算所述任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角。
在一实施例中,可以通过现有技术实现空间中两条直线之间的夹角的计算,这里不详述。
在步骤304中,将所述夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面。
参见图2B,为对一个桌子模型抽取水平面的示意图,通过遍历简化网格模型中的三角形网格面,并通过计算任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角,可以抽取出家具三维模型中的所有水平面。其中需要说明的是,确定水平三角形网格面是为了确定出能够摆放物件的平面,可以使有一点倾斜度的平面,因此可以容许三角形网格面的法线向量与世界坐标系中竖直坐标轴之间存在小于设定夹角阈值(如5度)的夹角,在夹角小于设定夹角阈值时,即可判定三角形网格面为水平三角形网格面。
通过上述步骤301~304,本实施例可以实现确定摆放面的过程中,识别出模型中的水平三角形网格面,进而在后续操作中识别出模型中所有的水平面几何图形,本实施例通过将三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面,可以确保能识别到所有可摆放物件的网格面,这保证了不遗漏任何网格面。
图4为本公开的确定物体模型摆放面的方法中将水平三角形网格面进行关联的流程图;本实施例以如何将所确定的水平三角形网格面进行关联为例进行示例性说明,如图4所示,包括如下步骤:
在步骤401中,对所述三维模型进行网格简化处理,得到简化网格模型。
在一实施例中可以先采用三维网格精简(Quadic Error Metrics,简称为QEM)算法对家具三维模型进行网格简化处理,减少顶点以及三角形网格面的数量,得到简化网格模型。
在步骤402中,基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面。
在一实施例中,步骤402的具体实现方式可参见图3所示实施例,这里不再详述。
在步骤403中,基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
在一实施例中,关联处理是指在两个水平三角形网格面的一个或者两个顶点的顶点坐标相同时,那么将这两个水平三角形网格面确定为相连的水平三角形网格面,将其确定为一个水平面几何图形,由此可以得到在不同水平面的至少一个水平面几何图形。
在一实施例中,水平面几何图形是指三角形网格面法线向量与世界坐标系中竖直坐标轴平行且方向一致的一个水平面。本公开实施例中,平行并不是绝对的平行,可以容许三角形网格面的法线向量与世界坐标系中竖直坐标轴之间存在小于夹角基准阈值(如5度)的夹角,在夹角小于夹角基准阈值时,即可判定三角形网格面的法线向量与世界坐标系中竖直坐标轴平行。
通过上述步骤401~403,可以将连在一起的三角形网格面关联为一个水平面几何图形,保证了后续确定的任意一个模型摆放面都是完整的,进一步提升了家具模型摆放面的准确性。
图5为本公开的确定物体模型摆放面的方法中确定候选水平面图形的流程图;本实施例以如何将候选水平面图形为例进行示例性说明,如图5所示,包括如下步骤:
在步骤501中,计算垂直投影多边形的投影面积。
在一实施例中,通过将家具三维模型在空间基准水平面上进行垂直投影,可以得到垂直投影多边形。通过多边形面积计算方法,即可计算出垂直投影多边形的投影面积。
在步骤502中,计算所述至少一个水平面几何图形的面积与所述投影面积的面积比值,以及所述至少一个水平面几何图形的长宽比值。
在一实施例中,水平面几何图形是由一个以上的水平三角形网格面组成的,根据每个水平三角形网格面的顶点坐标,可得到水平面几何图形的所有顶点的顶点坐标,进而可以计算出围成水平面几何图形的多边形的面积。通过计算水平面几何图形的面积与投影面积的面积比值,可以通过面积比值衡量水平面几何图形的大小,进而只选择面积较大的水平面几何图形来作为模型摆放面。
在一实施例中,在确定水平面几何图形的长宽比例时,如果水平面几何图形为一个规则的矩形,则根据顶点坐标可以很容易计算出长宽比例,如果水平面几何图形为一个不规则的多边形,则可以根据水平面几何图形轮廓的x,y值,构建一个最大外接矩形,将最大外接矩形的长宽比确定为该水平面几何图形的长宽比。
在步骤503中,将所述面积比值大于所述面积比值阈值,并且所述长宽比值大于长宽比例阈值的水平面几何图形确定为候选水平面图形。
在一实施例中,在一实施例中,面积比例阈值和长宽比例阈值可以为一个预先设定的固定值,例如,面积比例阈值为0.03,长宽比例阈值为10。
通过上述步骤501~503,通过面积和水平面几何图形的长宽比例,可以过滤掉水平面几何图形的面积大小、尺寸不能用于摆放物件的水平面,保证了摆放面的效果。
图6为本公开的确定物体模型摆放面的方法中确定入射水平面的流程图;本实施例以如何将所确定入射水平面为例进行示例性说明,如图6所示,包括如下步骤:
在步骤601中,获取所述三维模型的最高点的高度坐标。
在一实施例中,可以使用boundingbox函数获取三维模型的最高点的高度坐标,具体可参见现有技术实现,这里不详述。
在步骤602中,计算所述最高点的高度坐标与设定冗余值的和,得到待移动高度值。
在一实施例中,待移动高度值用于指示垂直投影多边形要移动到的位置,通过步骤601确定家具三维模型的最高点的高度坐标后,再加上设定冗余值可以得到一个比家具三维模型的最高点更高的一个位置。
在一实施例中,设定冗余值可以为预先设定的一个值,为一个大于0的值,例如,为100mm。
在步骤603中,将所述垂直投影多边形移动到所述待移动高度值对应的位置,得到所述入射水平面。
在一实施例中,入射水平面是指以采样点为起点向下生成射线时,采样点所处的水平面。由于入射水平面是在家具三维模型最高点之上的位置,因此,向下生成射线时可与家具三维模型所生成的水平面几何图形产生交点。
通过上述步骤601~603,通过计算模型boundingbox可以确定家具三维模型的最高点,进而可以确定出入射水平面的位置,后续根据入射水平面上的采样点向下发送射线时,即可根据射线的第一个交点过滤掉家具处于底部的摆放面,提高摆放面的准确率。
与前述确定物体模型摆放面的方法的实施例相对应,本公开还提供了确定物体模型摆放面的装置对应的实施例。
图7为本公开的确定物体模型摆放面的装置的一个实施例的结构示意图;该装置应用在电子设备上,如图7所示,该装置包括:
获取模块71,用于获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标;
关联模块72,用于基于所述三维模型在三维笛卡尔坐标系下的坐标,将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;
筛选模块73,用于基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形;
投影多边形模块74,用于在水平面上生成所述三维模型的垂直投影多边形;
平面移动模块75,用于基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面;
采样点模块76,用于在所述入射水平面上随机生成均匀分布的一组采样点;
摆放面确定模块77,用于以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
图8为本公开的确定物体模型摆放面的装置的又一个实施例的结构示意图,如图8所示,在图7所示实施例的基础上,在一实施例中,所述装置还包括:
面积确定模块78,用于计算所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,所述顶点坐标为三维坐标;
高度确定模块79,用于将所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,确定为所述模型摆放面的高度坐标;
差值确定模块80,用于基于所述模型摆放面的高度坐标和所在水平面几何图形的所有顶点的顶点坐标,计算高度相邻的模型摆放面的重叠部分以及高度差值;
高度阈值确定模块81,用于为位于下层的模型摆放面的重叠部分设置摆放物件高度阈值,所述摆放物件高度阈值不大于所述高度差值;
区域列表生成模块82,用于生成摆放面区域列表,所述摆放面区域列表中记录有所有模型摆放面以及模型摆放面的摆放信息,所述摆放信息包括摆放面区域所在水平面几何图形的所有顶点的顶点坐标、摆放物件高度阈值。
在一实施例中,所述装置还包括:
接收模块83,用于接收用户触发的确定摆放面的操作,所述操作中携带有摆放物件的参数信息,所述摆放物件的参数信息包括摆放物件的高度,和/或,摆放物件的平面信息;
选择模块84,用于根据所述摆放物件的参数信息,从所述摆放面区域列表中选择用于摆放所述摆放物件的模型摆放面;
输出模块85,用于输出所述用于摆放所述摆放物件的模型摆放面。
图9为本公开的确定物体模型摆放面的装置的又一个实施例的结构示意图;如图9所示,在图7和/或图8所示实施例的基础上,在一实施例中,所述关联模块72包括:
简化子模块721,用于对所述三维模型进行网格简化处理,得到简化网格模型;
网格面确定子模块722,用于基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面;
关联子模块723,用于基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
在一实施例中,所述网格面确定子模块722包括:
遍历子模块7221,用于遍历所述简化网格模型中的三角形网格面;
法线计算子模块7222,用于计算任意一个三角形网格面的法线向量;
夹角计算子模块7223,用于计算所述任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角;
平面确定子模块7224,用于将所述夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面。
所述筛选模块73包括:
投影面积确定子模块731,用于计算所述垂直投影多边形的投影面积;
比值确定子模块732,用于计算所述至少一个水平面几何图形的面积与所述投影面积的面积比值,以及所述至少一个水平面几何图形的长宽比值;
候选面确定子模块733,用于将所述面积比值大于所述面积比值阈值,并且所述长宽比值大于长宽比例阈值的水平面几何图形确定为候选水平面图形。
在一实施例中,所述平面移动模块75包括:
高度坐标确定子模块751,用于获取所述三维模型的最高点的高度坐标;
移动值计算子模块752,用于计算所述最高点的高度坐标与设定冗余值的和,得到待移动高度值,其中所述设定冗余值大于0;
移动子模块753,用于将所述垂直投影多边形移动到所述待移动高度值对应的位置,得到所述入射水平面。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
下面,参考图10来描述根据本公开实施例的电子设备,其中可以集成本公开实施例实现方法的装置。图10为本公开一示意性实施例提供的电子设备的结构图,如图10所示,电子设备10包括一个或多个处理器101、一个或多个计算机可读存储介质的存储器102,以及存储在存储器上并可在处理器上运行的计算机程序。在执行存储器102中的程序时,可以实现上述确定物体模型摆放面的方法。
具体的,在实际应用中,该电子设备还可以包括输入装置103、输出装置104等部件,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。本领域技术人员可以理解,图10中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者某些部件,或者不同的部件布置。其中:
处理器101可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器102可以存储一个或多个计算机程序产品,存储器可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序产品,处理器101可以运行计算机程序产品,以实现上文的本公开的各个实施例的确定物体模型摆放面的方法以及/或者其他期望的功能。
在一个示例中,电子装置还可以包括:输入装置103和输出装置104,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连,
此外,输入装置103可包括例如键盘、鼠标等等。
输出装置104可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置104可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图10中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的家装方法生成方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的确定物体模型摆放面的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种确定物体模型摆放面的方法,其特征在于,所述方法包括:
获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标;
基于所述三维模型在三维笛卡尔坐标系下的坐标,将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;
基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形;
在水平面上生成所述三维模型的垂直投影多边形;基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面;
在所述入射水平面上随机生成均匀分布的一组采样点;
以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
2.根据权利要求1所述的方法,其特征在于,所述将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面之后,还包括:
计算所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标,所述顶点坐标为三维坐标;
将所述模型摆放面所在水平面几何图形的所有顶点的顶点坐标中高度坐标的均值,确定为所述模型摆放面的高度坐标;
基于所述模型摆放面的高度坐标和所在水平面几何图形的所有顶点的顶点坐标,计算高度相邻的模型摆放面的重叠部分以及高度差值;
为位于下层的模型摆放面的重叠部分设置摆放物件高度阈值,所述摆放物件高度阈值不大于所述高度差值;
生成摆放面区域列表,所述摆放面区域列表中记录有所有模型摆放面以及模型摆放面的摆放信息,所述摆放信息包括摆放面区域所在水平面几何图形的所有顶点的顶点坐标、摆放物件高度阈值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收用户触发的确定摆放面的操作,所述操作中携带有摆放物件的参数信息,所述摆放物件的参数信息包括摆放物件的高度,和/或,摆放物件的平面信息;
根据所述摆放物件的参数信息,从所述摆放面区域列表中选择用于摆放所述摆放物件的模型摆放面;
输出所述用于摆放所述摆放物件的模型摆放面。
4.根据权利要求1所述的方法,其特征在于,所述将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形,包括:
对所述三维模型进行网格简化处理,得到简化网格模型;
基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面;
基于所述水平三角形网格面的顶点坐标,将存在至少一个相同顶点的水平三角形网格面进行关联处理,得到所述至少一个水平面几何图形。
5.根据权利要求4所述的方法,其特征在于,所述基于所述简化网格模型中三角形网格面的法线向量,确定水平三角形网格面,包括:
遍历所述简化网格模型中的三角形网格面;
计算任意一个三角形网格面的法线向量;
计算所述任意一个三角形网格面的法线向量与空间坐标系的竖直坐标轴的夹角;
将所述夹角小于设定夹角阈值的三角形网格面确定为水平三角形网格面。
6.根据权利要求1所述的方法,其特征在于,所述设定条件包括面积比值阈值和长宽比例阈值;
所述基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形,包括:
计算所述垂直投影多边形的投影面积;
计算所述至少一个水平面几何图形的面积与所述投影面积的面积比值,以及所述至少一个水平面几何图形的长宽比值;
将所述面积比值大于所述面积比值阈值,并且所述长宽比值大于长宽比例阈值的水平面几何图形确定为候选水平面图形。
7.根据权利要求1所述的方法,其特征在于,所述基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面,包括:
获取所述三维模型的最高点的高度坐标;
计算所述最高点的高度坐标与设定冗余值的和,得到待移动高度值,其中所述设定冗余值大于0;
将所述垂直投影多边形移动到所述待移动高度值对应的位置,得到所述入射水平面。
8.一种确定物体模型摆放面的装置,其特征在于,所述装置包括:
获取模块,用于获取物体的三维模型,确定所述三维模型在三维笛卡尔坐标系下的坐标;
关联模块,用于基于所述三维模型在三维笛卡尔坐标系下的坐标,将所述三维模型中相连的水平三角形网格面进行关联处理,得到至少一个水平面几何图形;
筛选模块,用于基于设定条件从所述至少一个水平面几何图形中确定候选水平面图形;
投影多边形模块,用于在水平面上生成所述三维模型的垂直投影多边形;
平面移动模块,用于基于所述三维模型的最高点的高度坐标,将所述垂直投影多边形沿垂直方向向上移动到所述三维模型之上的位置,得到入射水平面;
采样点模块,用于在所述入射水平面上随机生成均匀分布的一组采样点;
摆放面确定模块,用于以所述一组采样点为起点分别生成垂直向下的一组射线,将与所述一组射线中任意一条射线产生第一个交点的候选水平面图形确定为模型摆放面。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机产品;
处理器,用于执行所述存储器中存储的计算机产品,且所述计算机产品被执行时,实现上述权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时,实现上述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310402841.4A CN116433877B (zh) | 2023-04-14 | 2023-04-14 | 确定物体模型摆放面的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310402841.4A CN116433877B (zh) | 2023-04-14 | 2023-04-14 | 确定物体模型摆放面的方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116433877A CN116433877A (zh) | 2023-07-14 |
CN116433877B true CN116433877B (zh) | 2024-02-23 |
Family
ID=87085002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310402841.4A Active CN116433877B (zh) | 2023-04-14 | 2023-04-14 | 确定物体模型摆放面的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116433877B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373543A (zh) * | 2008-09-28 | 2009-02-25 | 武汉大学 | 三维网格模型的快速剖切方法 |
CN113850917A (zh) * | 2021-11-29 | 2021-12-28 | 浙江清华柔性电子技术研究院 | 三维模型体素化方法、装置、电子设备及存储介质 |
-
2023
- 2023-04-14 CN CN202310402841.4A patent/CN116433877B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373543A (zh) * | 2008-09-28 | 2009-02-25 | 武汉大学 | 三维网格模型的快速剖切方法 |
CN113850917A (zh) * | 2021-11-29 | 2021-12-28 | 浙江清华柔性电子技术研究院 | 三维模型体素化方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
2D-3D转换:由二维线画图生成三维复杂零部件;缪永伟等;图学学报;第38卷(第2期);第162-169页 * |
缪永伟 ; 冯小红 ; 林海斌 ; 张旭东 ; 高飞 ; .2D-3D转换:由二维线画图生成三维复杂零部件.图学学报.2017,(第02期), * |
Also Published As
Publication number | Publication date |
---|---|
CN116433877A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160275209A1 (en) | Interactive dimensioning of parametric models | |
JP6138880B2 (ja) | 材料のcg表現のシェーディング | |
CN108230453A (zh) | 将3d场景自动划分成由计算资源进行处理的多个分区 | |
US7933672B2 (en) | Shape detailing device, shape detailing method, computer program product, mechanical CAD machine, and method of manufacturing three-dimensional structure | |
KR20120122957A (ko) | 네비게이션 장치, 고도 좌표를 결정하는 방법 및 데이터베이스를 생성하는 방법 | |
US10061303B2 (en) | Three-dimensional printing support models | |
CN106683177A (zh) | 基于互动漫游式房屋装修数据交互方法及装置 | |
CN114820979B (zh) | 三维网格模型的处理方法、装置和存储介质 | |
US7869059B2 (en) | Height-limit calculation apparatus, height-limit calculation method, method of manufacturing three-dimensional structure, and computer product | |
US9141380B2 (en) | Method and system for visualization of large codebases | |
KR20230005312A (ko) | 평면도를 생성하기 위한 방법 및 장치 | |
CN116433877B (zh) | 确定物体模型摆放面的方法、电子设备及存储介质 | |
Kelly et al. | Interactive dimensioning of parametric models | |
Naim et al. | An algorithm for haptically rendering objects described by point clouds | |
CN116168174A (zh) | 建筑物缺失结构点云的修补方法及装置 | |
US20130016101A1 (en) | Generating vector displacement maps using parameterized sculpted meshes | |
CN109242941A (zh) | 三维对象合成通过使用视觉引导作为二维数字图像的一部分 | |
JP2007293550A (ja) | ポリゴンメッシュ編集方法、装置、システム及びプログラム | |
US20160163090A1 (en) | Computing device and method for simulating process of scanning drawing of object | |
Ehtemami et al. | Overview of Visualizing Historical Architectural Knowledge through Virtual Reality | |
CN115761122B (zh) | 三维辅助尺的实现方法、装置、设备和介质 | |
US20230267696A1 (en) | Responsive Video Canvas Generation | |
Hito | Overlaying Virtual Scale Models on Real Environments Without the Use of Peripherals | |
JP2003316836A (ja) | 図面作成装置 | |
Laycock et al. | A hybrid collision detection approach for the haptic rendering of deformable tools |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |