本公开涉及计算机技术领域,尤其涉及一种模型简化处理方法、装置以及电子设备、存储介质。
背景技术:
随着数据采集水平的提升以及三维建模技术的发展,可以构建大型室内场景的三维模型。如何在计算机上展示得到的室内场景的三维模型,是vr技术能否投入使用的关键的问题。在计算机图形学领域,衡量一个三维模型的好坏的指标为:(1)模型的精度;(2)模型的复杂度。模型的精度衡量的是三维模型与实际三维场景之间的几何距离是否足够小,以及三维模型是否能够保有真实场景的细节部分。模型的复杂度通常是指一个三维模型对应的三角面片的个数。目前,在对室内场景的三维模型进行实时渲染时,通常需要对三维模型进行简化,用以在保有模型精度的同时大幅度降低模型的复杂度。但是,现有的模型简化方法会造成模型的精度下降,因此,需要一种对室内场景模型进行简化的技术方案。
技术实现要素:
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种模型简化处理方法、装置以及电子设备、存储介质。
根据本公开实施例的第一方面,提供一种模型简化处理方法,包括:基于预设的平面检测策略对原始三维模型进行处理,获取所述原始三维模型中的第一平面;根据所述第一平面对与所述原始三维模型相对应的三维空间进行分割处理,获得几何元素集合;其中,所述几何元素包括:多面体;根据位于所述三维空间边缘的边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程;使用预设的图像分割算法对所述能量方程进行求解,获取与各个多面体相对应的标签;其中,所述标签用于表征所述多面体是否位于物体的内部;基于所述标签确定属于物体表面的至少一个第一平面,并根据所述至少一个第一平面确定与所述物体表面相对应的第二平面;根据所述第二平面生成与所述原始三维模型相对应的简化三维模型。
可选地,所述基于预设的平面检测策略对原始三维模型进行处理,获取所述原始三维模型中的第一平面包括:基于预设的平面检测算法对所述原始三维模型进行平面检测处理,获取所述原始三维模型中的多个平面区域;基于预设的边界确定算法确定所述平面区域的边界,获得多个所述第一平面。
可选地,所述平面检测方法包括:ransac、区域增长算法;所述边界确定算法包括:alpha-shape算法。
可选地,所述根据所述第一平面对与所述原始三维模型相对应的三维空间进行分割处理,获得几何元素集合包括:将各个第一平面在所述三维空间中进行延伸,以使此第一平面将经过的空间进行分割处理。
可选地,所述基于所述标签确定属于物体表面的至少一个第一平面包括:获取与相邻的两个多面体相对应的第一标签和第二标签;获取与相邻的两个多面体之间的共有平面相对应的第一平面;如果所述第一标签和所述第二标签不同,则确定此第一平面属于所述物体表面。
可选地,所述基于所述至少一个第一平面确定与所述物体表面相对应的第二平面包括:获取属于一个物体表面的一个或多个第一平面;基于所述一个或多个第一平面生成所述第二平面。
可选地,所述根据位于所述三维空间边缘的边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程包括:获取所述多面体的中心分别与多个边缘多面体的中心之间的连接线段;确定各个连接线段与其他多面体的组成面相交的相交次数;计算所述相交次数为奇数的连接线段数量与连接线段总数的商,作为与此多面体相对应的表面概率;其中,所述表面概率用于表征多面体是否具有物体表面;根据所述多面体的体积与对应的表面概率,生成所述能量方程的第一项;获取相邻的多面体之间的共有平面的第一面积;获取与所述共有平面相对应的第一平面的第二面积;计算所述第二面积与所述第一面积的商,作为面积占比;基于所述第一面积与所述面积占比生成所述能量方程的第二项;根据所述第一项和所述第二项生成所述能量方程。
可选地,所述第一项为:
其中,vi表示第i个多面体的体积,c为第i个多面体的表面概率,li为第i个多面体的标签值,
所述第二项为:
其中,ai,j为相邻的第i个和第j个多面体的共有平面的第一面积,ωi,j为所述面积占比,lj为第j个多面体的标签值;
所述能量方程为:
其中,v为全部多面体的集合,e为全部相邻的多面体的集合,α为预设的方程系数。
可选地,所述根据所述第二平面生成与所述原始三维模型相对应的简化三维模型包括:获得所述原始三维模型中的非平面;根据所述第二平面和所述非平面表面生成所述简化三维模型。
可选地,所述图像分割算法包括:graphcut算法。
根据本公开实施例的第二方面,提供一种模型简化处理装置,包括:平面获取模块,用于基于预设的平面检测策略对原始三维模型进行处理,获取所述原始三维模型中的第一平面;分割处理模块,用于根据所述第一平面对与所述原始三维模型相对应的三维空间进行分割处理,获得几何元素集合;其中,所述几何元素包括:多面体;方程构建模块,用于根据位于所述三维空间边缘的边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程;方程求解模块,用于使用预设的图像分割算法对所述能量方程进行求解,获取与各个多面体相对应的标签;其中,所述标签用于表征所述多面体是否位于物体的内部;表面确定模块,用于基于所述标签确定属于物体表面的至少一个第一平面,根据所述至少一个第一平面确定与所述物体表面相对应的第二平面;模型生成模块,用于根据所述第二平面生成与所述原始三维模型相对应的简化三维模型。
可选地,所述平面获取模块,用于基于预设的平面检测算法对所述原始三维模型进行平面检测处理,获取所述原始三维模型中的多个平面区域;基于预设的边界确定算法确定所述平面区域的边界,获得多个所述第一平面。
可选地,所述平面检测方法包括:ransac、区域增长算法;所述边界确定算法包括:alpha-shape算法。
可选地,所述分割处理模块,用于将各个第一平面在所述三维空间中进行延伸,以使此第一平面将经过的空间进行分割处理。
可选地,所述表面确定模块,包括:平面判别单元,用于获取与相邻的两个多面体相对应的第一标签和第二标签;获取与相邻的两个多面体之间的共有平面相对应的第一平面;如果所述第一标签和所述第二标签不同,则确定此第一平面属于所述物体表面。
可选地,所述表面确定模块,包括:平面生成单元,用于获取属于一个物体表面的一个或多个第一平面,基于所述一个或多个第一平面生成所述第二平面。
可选地,所述方程构建模块,用于获取所述多面体的中心分别与多个边缘多面体的中心之间的连接线段;确定各个连接线段与其他多面体的组成面相交的相交次数;计算所述相交次数为奇数的连接线段数量与连接线段总数的商,作为与此多面体相对应的表面概率;其中,所述表面概率用于表征多面体是否具有物体表面;根据所述多面体的体积与对应的表面概率,生成所述能量方程的第一项;获取相邻的多面体之间的共有平面的第一面积;获取与所述共有平面相对应的第一平面的第二面积;计算所述第二面积与所述第一面积的商,作为面积占比;基于所述第一面积与所述面积占比生成所述能量方程的第二项;根据所述第一项和所述第二项生成所述能量方程。
可选地,所述第一项为:
其中,vi表示第i个多面体的体积,c为第i个多面体的表面概率,li为第i个多面体的标签值,
所述第二项为:
其中,ai,j为相邻的第i个和第j个多面体的共有平面的第一面积,ωi,j为所述面积占比,lj为第j个多面体的标签值;
所述能量方程为:
其中,v为全部多面体的集合,e为全部相邻的多面体的集合,α为预设的方程系数。
可选地,所述模型生成模块,用于获得所述原始三维模型中的非平面;根据所述第二平面和所述非平面表面生成所述简化三维模型。
可选地,所述图像分割算法包括:graphcut算法。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的方法。
根据本公开实施例的第四方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于执行上述的方法。
基于本公开上述实施例提供的模型简化处理方法、装置以及电子设备、存储介质,可以保有原始三维模型中的结构性特征,在保证不损失精度的同时降低模型的复杂度;计算复杂度低,效率高;提高了三维模型传输和浏览的实时性,有效的改善了客户体验。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征以及优势将变得更加明显。附图用来提供对本公开实施例的进一步的理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1为本公开的模型简化处理方法的一个实施例的流程图;
图2为本公开的模型简化处理方法的一个实施例中的获取原始三维模型中的第一平面的流程图;
图3为本公开的模型简化处理方法的一个实施例中的确定属于物体表面的第一平面的流程图;
图4为本公开的模型简化处理方法的一个实施例中的构建能量方程的流程图;
图5a、图5b、图5c和图5d为基于原始三维模型生成简化三维模型的过程示意图;
图6a和图6b为对与所述原始三维模型相对应的三维空间进行分割处理的示意图;
图7为本公开的模型简化处理装置的一个实施例的结构示意图;
图8为本公开的模型简化处理装置的一个实施例中的表面确定模块的结构示意图;
图9是本公开的电子设备的一个实施例的结构图。
具体实施方式
下面将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或者两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可以存在三种关系,如a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开的实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与终端设备、计算机系统或者服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施。在分布式云计算环境中,任务可以是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
在对三维模型进行简化时,模型的精度和复杂度这两个指标通常不能同时满足,高精度的模型通常复杂度也高,不利于实时渲染。为了在精度和复杂度这两个指标之间达到一个动态平衡,现有技术中的模型简化方法是在获得高精度的三维模型之后,对三维模型进行简化,在保有模型精度的同时大幅度降低模型的复杂度。现有的模型简化方法通常采用迭代的方式,在每次迭代中选取代价损失数值最小的两条边进行边坍塌操作。
在实现本公开的过程中,发明人发现,现有的模型简化算法虽然计算复杂度低,效率高,但是在迭代中,模型的精度会下降,并且没有利用到三维模型的结构特征,例如平面等,使得最终得到的模型并未达到全局最优解。
本公开提供的模型简化处理方法,基于原始三维模型中的平面对三维空间进行分割处理,获得多面体;根据边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程;对能量方程进行求解,获取与各个多面体相对应的用于表征多面体是否位于物体的内部的标签,基于标签生成简化三维模型;可以保有原始三维模型中的结构性特征,在保证不损失精度的同时降低模型的复杂度。
示例性方法
图1为本公开的模型简化处理方法的一个实施例的流程图,如图1所示的方法包括步骤:s101-s105。下面对各步骤分别进行说明。
s101,基于预设的平面检测策略对原始三维模型进行处理,获取原始三维模型中的第一平面。
在一实施例中,采集对于家具、房间等的三维点云,基于三维点云进行建模,生成原始三维模型。原始三维模型可以为三角形网格模型、四边形网格模型或五边形网格模型等。可以预先设置平面检测策略,用于获取原始三维模型中的第一平面,第一平面可以为与原始三维模型中的墙壁、地板、天花板等相对应的平面。
s102,根据第一平面对与原始三维模型相对应的三维空间进行分割处理,获得几何元素集合。几何元素包括多面体等,多面体可以为四面体、五面体等。
s103,根据位于三维空间边缘的边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程。
s104,使用预设的图像分割算法对能量方程进行求解,获取与各个多面体相对应的标签,其中,标签用于表征多面体是否位于物体的内部。
在一实施例中,物体为原始三维模型中的、位与房间内的墙壁、地板、天花板等,房间包括客厅、卧室、餐厅、厨房、卫生间等。图像分割算法可以为多种,例如为graphcut算法等。
s105,基于标签确定属于物体表面的至少一个第一平面,并根据至少一个第一平面确定与物体表面相对应的第二平面。
在一实施例中,获取属于一个物体(例如为墙壁、地板、天花板等)表面的一个或多个第一平面,基于一个或多个第一平面生成第二平面;可以使用多种现有方法生成第二平面,使多个第一平面合并在同一个第二平面中。
s106,根据第二平面生成与原始三维模型相对应的简化三维模型。
在一实施例中,获得原始三维模型中的非平面,可以使用现有的多种方法根据第二平面和非平面表面生成简化三维模型。
在现有的模型简化处理方法中,由于在数据采集的过程中可能存在误差,在建立的原始三维模型(例如为三角形网格模型)后,与相同的特征结构(例如墙面、地面等)对应的三角面片并不在同一平面内,导致简化得到的三维模型同样会存在同样的问题,从而导致简化后的三维模型精度降低。
本公开的模型简化处理方法,通过提取场景中的结构化特征平面并将离散的平面拼接成一个连续的三维模型,则在简化后的三维模型中,可以保有原始三维模型中的结构性特征,使墙、地板、天花板等特征结构对应的三角面片都落在同一平面内,可以在保证不损失精度的同时降低模型的复杂度。
图2为本公开的模型简化处理方法的一个实施例中的获取原始三维模型中的第一平面的流程图,如图2所示的方法包括步骤:s201-s202。下面对各步骤分别进行说明。
s201,基于预设的平面检测算法对原始三维模型进行平面检测处理,获取原始三维模型中的多个平面区域。
在一实施例中,平面检测方法包括ransac(randomsampleconsensus,随机抽样一致算法)、区域增长算法等。区域生长算法是一种影像分割技术,基于判别规则将相似的像素等合并起来构成区域。使用现有的ransac、区域增长算法对原始三维模型进行平面检测处理,能够获取平面区域。
s202,基于预设的边界确定算法确定平面区域的边界,获得多个第一平面。
在一实施例中,边界确定算法包括alpha-shape算法等,使用现有的alpha-shape算法等确定平面区域的边界。在获得多个第一平面后,利用二叉空间分割(binaryspacepartition,bsp)算法等将各个第一平面在三维空间中进行延伸,以使此第一平面将经过的空间进行分割处理,生成三维平面延展模型,并获得几何元素集合。
图3为本公开的模型简化处理方法的一个实施例中的确定属于物体表面的第一平面的流程图,如图3所示的方法包括步骤:s301-s303。下面对各步骤分别进行说明。
s301,获取与相邻的两个多面体相对应的第一标签和第二标签。
s302,获取与相邻的两个多面体之间的共有平面相对应的第一平面。
s302,如果第一标签和第二标签不同,则确定此第一平面属于物体表面。
图4为本公开的模型简化处理方法的一个实施例中的构建能量方程的流程图,如图4所示的方法包括步骤:s401-s409。下面对各步骤分别进行说明。
s401,获取多面体的中心分别与多个边缘多面体的中心之间的连接线段。
在一实施例中,可以预先在三维平面延展模型确定多个边缘多面体,边缘多面体为位于三维平面延展模型边缘的多面体。
s402,确定各个连接线段与其他多面体的组成面相交的相交次数。
s403,计算相交次数为奇数的连接线段数量与连接线段总数的商,作为与此多面体相对应的表面概率;其中,表面概率用于表征多面体是否具有物体表面。
s404,根据多面体的体积与对应的表面概率,生成能量方程的第一项。
在一实施例中,能量方程的第一项可以为:
其中,vi表示第i个多面体的体积,c为第i个多面体的表面概率,li为第i个多面体的标签值,i为自然数。
s405,获取相邻的多面体之间的共有平面的第一面积。
在一实施例中,在三维平面延展模型中,确定相邻多面体之间的共有平面,并获取此共有平面的第一面积。
s406,获取与共有平面相对应的第一平面的第二面积。
在一实施例中,基于原始三维模型和三维平面延展模型,确定与共有平面相对应的第一平面,获取此第一平面的第二面积。
s407,计算第二面积与第一面积的商,作为面积占比。
s408,基于第一面积与面积占比生成能量方程的第二项。
在一实施例中,能量方程的第二项为:
其中,ai,j为相邻的第i个和第j个多面体的共有平面的第一面积,ωi,j为面积占比,li为第i个多面体的标签值,i为自然数,lj为第j个多面体的标签值,j为自然数。
s409,根据第一项和第二项生成能量方程。
在一实施例中,能量方程为:
其中,v为全部多面体的集合,e为全部相邻的多面体的集合,α为预设的方程系数,α的值可以预先设置,例如为0.5,0.6等。
graphcut(图像分割)算法是一种的能量优化算法,可以使用现有的graphcut算法对能量方程进行求解,获取与各个多面体相对应的标签。
在一个实施例中,如图5a所示,获取预先建立的原始三维模型,使用区域增长算法等从原始三维模型中提取第一平面,如图5b所示。使用现有的基于迭代的三维模型简化方法得到的简化三维模型(具有840个三角面片),如图5c所示。使用本公开的模型简化处理方法,基于离散的第一平面生成一个连续的简化三维模型(具有917个多边形面片),如图5d所示。由上可知,通过本公开的模型简化处理方法获得的简化三维模型的精度更高,同时保留了室内场景的结构化特征,即与特征结构(例如墙面、地面等)对应的面片都在同一平面上。
如图6a所示,基于平面检测策略对原始三维模型进行处理,获取原始三维模型中的第一平面。利用提取出的第一平面将整个三维空间分割成一系列点、线、面以及多面体的几何元素集合,生成三维平面延展模型,如图6b所示。
采用二叉空间分割(binaryspacepartition)算法将各个第一平面在三维空间中进行延伸,即将每个第一平面在三维空间中延伸一段距离,然后把该第一平面经过的所有空间都一分为二,能够大大降低算法的复杂度,同时减小了后续优化算法的搜索空间。
在一个实施例中,对每一个多面体都设置一个标签,标签值分别为0或1。如果标签值为1,代表多面体在物体的内部,如果标签值为0,代表多面体在物体的外部。对于所有相邻的两个多面体,如果对应的标签相反,则这两个多面体共同的片面(相邻的多面体之间的共有平面)为物体表面的一部分。最终,所有这样的面片的集合组成了室内场景的三维模型。
将计算每个多面体标签的问题定义成一个马尔科夫场问题,建立如下能量方程:
其中,能量方程的第一项为:
vi表示每个多面体的体积,c表示每个多面体属于物体内部的概率。首先获取每个多面体的中心与三维平面延展模型边缘的多面体(这些边缘多面体一定属于物体外部)的中心练成的线段;然后计算这些线段与三维平面延展模型中的其他多面体的组成面(墙、天花板、底板等的特征平面对应的alphashape)相交的次数;最后,每个多面体属于物体内部的概率c等于相交次数为奇数的线段总个数除以所有线段的总个数。α为预设的方程系数,α的值可以预先设置,例如为0.5,0.6等。
能量方程的第二项如下:
其中,ai,j为相邻的第i个和第j个多面体的共有平面的第一面积(即ai,j为相邻的两个多面体共有的面片的面积),ωi,j为该面片被初始点覆盖的面积与ai,j之比。该能量方程可以用graphcut算法求解。
示例性装置
在一个实施例中,如图7所示,本公开提供一种模型简化处理装置,包括:平面获取模块701、分割处理模块702、方程构建模块703、方程求解模块704、表面确定模块705和模型生成模块706。
平面获取模块701基于预设的平面检测策略对原始三维模型进行处理,获取原始三维模型中的第一平面。分割处理模块702根据第一平面对与原始三维模型相对应的三维空间进行分割处理,获得几何元素集合,其中,几何元素包括多面体等。
方程构建模块703根据位于三维空间边缘的边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程。方程求解模块704使用预设的图像分割算法对能量方程进行求解,获取与各个多面体相对应的标签,其中,标签用于表征多面体是否位于物体的内部。
表面确定模块705基于标签确定属于物体表面的至少一个第一平面,根据至少一个第一平面确定与物体表面相对应的第二平面。模型生成模块706根据第二平面生成与原始三维模型相对应的简化三维模型。
在一个实施例中,平面获取模块701基于预设的平面检测算法对原始三维模型进行平面检测处理,获取原始三维模型中的多个平面区域,平面检测方法包括:ransac、区域增长算法等。平面获取模块701基于预设的边界确定算法确定平面区域的边界,获得多个第一平面,边界确定算法包括alpha-shape算法等。
分割处理模块702利用二叉空间分割算法将各个第一平面在三维空间中进行延伸,以使此第一平面将经过的空间进行分割处理。模型生成模块707获得原始三维模型中的非平面,根据第二平面和非平面表面生成简化三维模型。
在一个实施例中,方程构建模块703获取多面体的中心分别与多个边缘多面体的中心之间的连接线段。方程构建模块703确定各个连接线段与其他多面体的组成面相交的相交次数,计算相交次数为奇数的连接线段数量与连接线段总数的商,作为与此多面体相对应的表面概率,其中,表面概率用于表征多面体是否具有物体表面。
方程构建模块703根据多面体的体积与对应的表面概率,生成能量方程的第一项。方程构建模块703获取相邻的多面体之间的共有平面的第一面积,获取与共有平面相对应的第一平面的第二面积,计算第二面积与第一面积的商,作为面积占比,基于第一面积与面积占比生成能量方程的第二项。方程构建模块703根据第一项和第二项生成能量方程。
如图8所示,表面确定模块705包括:平面判别单元7051和平面生成单元7052。平面判别单元7051获取与相邻的两个多面体相对应的第一标签和第二标签,获取与相邻的两个多面体之间的共有平面相对应的第一平面。如果第一标签和第二标签不同,则平面判别单元7051确定此第一平面属于物体表面。平面生成单元7052获取属于一个物体表面的一个或多个第一平面,基于一个或多个第一平面生成第二平面。
图9是本公开的电子设备的一个实施例的结构图,如图9所示,电子设备131包括一个或多个处理器911和存储器912。
处理器911可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备91中的其他组件以执行期望的功能。
存储器912可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器,例如,可以包括:随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器,例如,可以包括:只读存储器(rom)、硬盘以及闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器911可以运行程序指令,以实现上文的本公开的各个实施例的模型简化处理方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备91还可以包括:输入装置99以及输出装置914等,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备913还可以包括例如键盘、鼠标等等。该输出装置914可以向外部输出各种信息。该输出设备914可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备91中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备91还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的模型简化处理方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的模型简化处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列举)可以包括:具有一个或者多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势以及效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
上述实施例中的模型简化处理方法、装置以及电子设备、存储介质,基于原始三维模型中的平面对三维空间进行分割处理,获得多面体;根据边缘多面体以及相邻的多面体之间的共有平面信息,构建能量方程;对能量方程进行求解,获取与各个多面体相对应的用于表征多面体是否位于物体的内部的标签,基于标签生成简化三维模型;能够在保有模型精度的同时大幅度降低模型的复杂度;可以保有原始三维模型中的结构性特征,使墙,地板,天花板等特征结构对应的面片都落在同一平面内,在保证不损失精度的同时降低模型的复杂度;计算复杂度低,效率高;提高了三维模型传输和浏览的实时性,有效的改善了客户体验。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备以及系统。诸如“包括”、“包含、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述,以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改等对于本领域技术人员而言,是非常显而易见的,并且在此定义的一般原理可以应用于其他方面,而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式中。尽管以上已经讨论了多个示例方面以及实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。