CN111325821B - 网格模型处理方法及装置、设备、存储介质 - Google Patents

网格模型处理方法及装置、设备、存储介质 Download PDF

Info

Publication number
CN111325821B
CN111325821B CN202010099306.2A CN202010099306A CN111325821B CN 111325821 B CN111325821 B CN 111325821B CN 202010099306 A CN202010099306 A CN 202010099306A CN 111325821 B CN111325821 B CN 111325821B
Authority
CN
China
Prior art keywords
model
sub
grid
subspace
connection
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
Application number
CN202010099306.2A
Other languages
English (en)
Other versions
CN111325821A (zh
Inventor
赵方石
李姬俊男
马标
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010099306.2A priority Critical patent/CN111325821B/zh
Publication of CN111325821A publication Critical patent/CN111325821A/zh
Application granted granted Critical
Publication of CN111325821B publication Critical patent/CN111325821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请实施例公开了网格模型处理方法及装置、设备、存储介质,其中,所述方法包括:对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;对每一所述第一子模型进行处理,以获得对应的第二子模型;通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。

Description

网格模型处理方法及装置、设备、存储介质
技术领域
本申请实施例涉及计算机视觉技术,涉及但不限于网格模型处理方法及装置、设备、存储介质。
背景技术
在三维模型的重建中,点云与网格是用来表述三维模型最常见的两种格式。其中,网格表述的模型,称之为三维网格模型,该模型更加方便用于三维渲染、增强现实(Augmented Reality,AR)空间感知、三维遮挡碰撞计算和模型存储。网格的优化、减面和分层等处理对于三维网格模型的展示和存储至关重要。
但是,实现网格的优化和减面,需要同时载入网格以及网格的对应图像,因此,对计算机的可运行内存的需求很高。大面积的网格处理,内存需求很容易超过50吉字节(Gigabyte,GB),甚至上百GB。而普通的电脑可执行内存通常只有32GB,这就使得单台主机一次运行很难完成所有的网格计算,从而导致基于海量数据和城市级的三维模型重建,因受限于电脑的计算空间而难以实现。
发明内容
有鉴于此,本申请实施例提供网格模型处理方法及装置、设备、存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供网格模型处理方法,所述方法包括:对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;对每一所述第一子模型进行处理,以获得对应的第二子模型;通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
第二方面,本申请实施例提供一种网格模型处理装置,包括:模型拆分模块,用于对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;子模型处理模块,用于对每一所述第一子模型进行处理,以获得对应的第二子模型;子模型拼接模块,用于通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例任一所述网格模型处理方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例任一所述网格模型处理方法中的步骤。
在本申请实施例中,对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;对每一所述第一子模型进行处理,以获得对应的第二子模型;通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。如此,有效解决了基于海量数据和城市级的三维模型重建,因受限于电脑的计算空间而难以实现的难题。
附图说明
图1为本申请实施例网格模型处理方法的实现流程示意图;
图2为本申请实施例基于八叉树的空间分割方式的结果示意图;
图3为本申请实施例连接网格的示意图;
图4为本申请实施例将三维网格模型划分为多个第二集合的示意图;
图5为本申请实施例第三集合中的网格模型的示意图;
图6为本申请实施例第二子模型的边缘点和内部点的区别示意图;
图7为本申请实施例将第二子模型的边缘点与相匹配的连接网格顶点进行拼接的示意图;
图8为本申请实施例另一网格模型处理方法的实现流程示意图;
图9为本申请实施例网格模型处理装置的组成结构示意图;
图10为本申请实施例电子设备的一种硬件实体示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例提供一种网格模型处理方法,所述方法可以应用于电子设备,所述电子设备可以是笔记本电脑、台式计算机、计算机集群中的某台计算机等。所述网格模型处理方法所实现的功能可以通过所述电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,所述电子设备至少包括处理器和存储介质。
图1为本申请实施例网格模型处理方法的实现流程示意图,如图1所示,所述方法至少包括以下步骤101至步骤103:
步骤101,所述电子设备对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间。
在本申请实施例中,对于初始网格模型的维度不做限定,初始网格模型可以是三维网格模型,还可以是其他任意维度的网格模型,例如四维网格模型等。
所谓连接网格,即,该网格不属于某一个第一子模型,连接网格的顶点分别与多个第一子模型中的网格顶点的坐标相同。实际上,第一子模型为多个网格构成的模型。
可以理解地,之所以将初始网格模型进行拆分,是因为在一些超大规模的应用场景中,例如城市级的三维场景中,初始网格模型的规模是非常大的,如果电子设备直接对初始网格模型进行网格处理(例如网格优化和减面处理等),则需要同时载入大量的网格以及网格的对应图像,这对于具备有限运行内存的电子设备是难以实现的。
因此,在本申请实施例中,将初始网格模型拆分为多个第一子模型和多个连接网格,如此,给海量数据和城市级的三维网格模型的重建提供了可实现的有利条件,电子设备可以对多个第一子模型进行并行处理或者串行处理,从而利用连接网格与第一子模型的关系,将处理后的第一子模型(即第二子模型)和连接网格进行拼接,得到目标网格模型。
步骤102,所述电子设备对每一所述第一子模型进行处理,以获得对应的第二子模型。
电子设备可以对步骤101获得的所述多个第一子模型进行并行处理,或者串行处理。所谓并行处理,即,在电脑集群中,电子设备将所述多个第一子模型拆分后,分配给不同的计算节点,以使每一计算节点对各自接收的第一子模型进行网格优化和/或减面等网格处理。例如,通过步骤101,获得1000个第一子模型,即第一子模型1至第一子模型1000,电子设备将第一子模型1至200,发送给计算节点1;将第一子模型201至480,发送给计算节点2;将第一子模型481至600,发送给计算节点3;将第一子模型601至10000,发送给计算节点4。如此,在解决单台设备无法实现基于海量数据和城市级别的三维模型重建的问题的同时,还能够提高三维网格模型重建的效率,大大加速了大型场景(例如城市级)的三维网格模型的重建。
所谓串行处理,即,电子设备在不同的时间,分别处理不同的第一子模型,换言之,电子设备逐一处理每一第一子模型;如此,在解决单台设备无法实现大规模的三维模型重建的问题的同时,还能够使得用户不必花费巨大成本购买超级电脑,仅用一台普通算力的计算机,便可实现大型三维网格模型的重建。
在一些实施例中,计算节点或者所述电子设备可以对每一第一子模型进行网格处理(例如网格优化和减面处理),得到对应的第二子模型。换言之,被网格处理后的第一子模型称之为第二子模型。
步骤103,所述电子设备通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
也就是说,电子设备以每一连接网格为联通桥梁,将每一第二子模型拼接在一起,即可得到目标网格模型。
在本申请实施例中,对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;对每一所述第一子模型进行处理,以获得对应的第二子模型;通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。如此,有效解决了基于海量数据和城市级的三维模型重建,因受限于电脑的计算空间而难以实现的技术问题。
本申请实施例再提供一种网格模型处理方法,所述方法可以包括以下步骤201至步骤205:
步骤201,所述电子设备利用N叉树,将初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数。
在本申请实施例中,电子设备可以利用二叉树、四叉树、八叉树或十六叉树等分割方法,将初始网格模型划分为多个子空间。也就是说,N的值决定了每次划分时将一个空间划分为多少个子空间。
例如,图2所示,电子设备采用了基于八叉树的空间分割方式,将一个超大场景的三维网格模型按空间区域(Voxel)分割成若干个子空间,每个子空间里存储其内部对应的点云和网格。八叉树的构建方式为递归式构建,即一个立方体空间被切分成8个子立方体空间,即所述子空间,每个子空间又各自被切分成8个子空间。这种切分的过程会递归持续进行,直到所有子空间的点云包含的采样点数目少于某个阈值(例如该阈值为100万)。
步骤202,所述电子设备从所述第一集合中筛选出多个连接网格;其中,所述连接网格的所有顶点不在同一所述子空间内。
在进行八叉树分区时,电子设备会舍弃掉一部分的网格,这部分网格不属于某一个子空间,而是属于两个子空间的交界处。例如,图3所示,网格31的顶点A、B、C存在于不同的子空间内,因此由ABC三个顶点构成的网格面片31无法分配到任何一个子空间里。在本申请实施例中,将顶点坐落于不同子空间内的网格面片称为连接网格或缝隙网格。在实现时,电子设备中设置有一个缓存器(称之为SeamBuffer),该缓存器用于将所有的缝隙网格存储起来,并且标注每个缝隙网格的顶点所在的子空间,例如图3所示,三角面ABC的顶点分别坐落于子空间1、3和4中。这样,电子设备就在缝隙网格的缓存器中添加一个三角面,该三角面对应的子空间的标识分别为1、3和4。SeamBuffer将每个缝隙网格和对应的子空间的标识进行存储。
步骤203,所述电子设备将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型。
换言之,所述子空间中除缝隙网格外的其他网格,作为一个整体,称之为第一子模型。
步骤204,所述电子设备对每一所述第一子模型进行处理,以获得对应的第二子模型。
例如,电子设备可以通过如下实施例的步骤304至步骤308实现步骤204;在另一些实施例中,电子设备还可以对所述多个第一子模型进行串行处理,即,不是分配给各个计算节点进行处理,而是自身在不同的时间逐一处理每一第一子模型,即所述多个第一子模型进行逐一的网格处理(例如网格优化和减面处理),从而得到对应的第二子模型。
步骤205,所述电子设备通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
例如,电子设备可以通过如下实施例的步骤405至步骤407实现步骤205。
在本申请实施例中,利用N叉树,将所述初始网格模型在空间上划分成多个子空间,并在划分的过程中筛选出连接网格;如此,可以快速、可行地实现初始网格模型的分割,进而提高三维网格模型的重建效率。
本申请实施例再提供一种网格模型处理方法,所述方法可以包括以下步骤301至步骤309:
步骤301,所述电子设备利用N叉树,将初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数;
步骤302,所述电子设备从所述第一集合中筛选出多个连接网格;其中,所述连接网格的所有顶点不在同一所述子空间内;
步骤303,所述电子设备将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型;
步骤304,所述电子设备将所述筛选后的第一集合划分为多个第二集合。
在一些实施例中,电子设备可以在所述筛选后的第一集合中,从根节点子空间开始向下查询每一子空间包括的采样点的数目,直到查询到的所有子空间内的采样点数目小于或等于第一阈值时,将所述所有子空间确定为所述第二集合;继续向下查询,以确定下一个所述第二集合,直到查询到所述筛选后的第一集合的每一子空间为止,从而实现所述将所述筛选后的第一集合划分为多个第二集合的步骤。
举例来说,假设第一阈值为300万,电子设备从根节点子空间开始向下查询,依次查询到的根节点子空间包括的采样点数目为90万,子空间1包括的采样点数目为80万,子空间2包括的采样点数目为60.2万,子空间3包括的采样点数目为55.3万,子空间4包括的采样点数目为50万。由于依次查询到的根节点子空间、子空间1、子空间2和子空间3包括的采样点总数目为285.5万,小于第一阈值,且加上子空间4包括的采样点数目,总数目为340.8,则超过了第一阈值,因此,将根节点子空间、子空间1、子空间2和子空间3确定为一个第二集合。
步骤305,所述电子设备将每一所述第二集合发送给对应的计算节点。
例如,图4所示,电子设备将三维网格模型41所在的空间划分为第二集合401至404,并将第二集合401至404分别分配给不同的计算节点,以使解算节点对接收的第二集合中包括的网格模型进行网格处理。例如,将第二集合401分配给计算节点1,将第二集合402分配给计算节点2,第二集合403分配给计算节点3,第二集合404分配给计算节点4。
步骤306,每一所述计算机节点对接收的第二集合中每一子空间内的第一子模型进行网格处理,得到对应子空间的第二子模型。
在一些实施例中,所述网格处理至少包括以下之一:网格优化、网格减面。
步骤307,每一所述计算节点将得到的每一第二子模型发送给所述电子设备;
步骤308,所述电子设备接收每一所述计算节点发送的第二子模型;
步骤309,所述电子设备通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
在本申请实施例中,电子设备将初始网格模型划分为多个第一子模型和多个连接网格,并对所述多个第一子模型进行并行处理,即,将所述多个第一子模型划分后,分配给不同的计算节点,以使每一计算节点对各自接收的第一子模型进行网格优化和/或减面等网格处理;如此,在解决单台设备无法实现基于海量数据和城市级别的三维模型重建的问题的同时,还能够提高三维网格模型重建的效率,大大加速了大型场景(例如城市级)的三维网格模型的重建。
本申请实施例再提供一种网格模型处理方法,所述方法可以包括以下步骤401至步骤407:
步骤401,所述电子设备利用N叉树,将初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数;
步骤402,所述电子设备从所述第一集合中筛选出多个连接网格;其中,所述连接网格的所有顶点不在同一所述子空间内;
步骤403,所述电子设备将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型。
步骤404,所述电子设备对每一所述第一子模型进行处理,以获得对应的第二子模型;
步骤405,所述电子设备按照所述第一集合的结构信息,将每一包含所述第二子模型的子空间进行拼接,得到第三集合。
例如,图5所示,电子设备将接收的每一第二子模型的子空间进行拼接后,得到的第三集合中的网格模型为501,此时部分网格之间存在缝隙,这需要通过连接网格进行填充,即通过如下步骤406和步骤407,将每一连接网格,即图中的深黑色部分,填充至网格模型501的一些缝隙中,从而得到图5所示的模型502。
步骤406,所述电子设备从所述第三集合中,确定每一所述连接网格的每一顶点所在的目标子空间。
在一些实施例中,电子设备可以根据缓存器中存储的连接网格和其顶点所在的子空间的标识,从第三集合中,确定所述连接网格的每一顶点所在的目标子空间。
步骤407,所述电子设备在所述第三集合中,将每一所述目标子空间内的第二子模型,与对应的连接网格进行对齐拼接,以得到所述目标网格模型。
在一些实施例中,电子设备可以通过以下步骤4071至步骤4073实现步骤407:
步骤4071,对每一所述连接网格对应的目标子空间内的第二子模型进行边缘点查找,得到对应的边缘点集合。
例如,图6所示,第二子模型61的内部点611对应的每条入射边都有两个三角形的网格经过,通常将这种入射边称为双边,而第二子模型61的边缘点612对应的入射边只有一个三角形的网格经过,通常将这种入射边称之为单边。基于此,电子设备可以查找第二子模型中的网格顶点对应的每条入射边是否都有两个网格经过,从而确定该顶点是否是边缘点。换言之,电子设备将第二子模型中至少一条入射边只有一个网格经过的顶点,确定为该子模型的边缘点。
在实现时,电子设备可以确定第二子模型中连接第j个网格顶点的每一入射边是否被两个网格共用;如果不是,则将所述第j个网格顶点确定为所述第二子模型的边缘点;其中,j为大于0且小于或等于第二子模型的网格顶点总数的整数。
步骤4072,从每一所述边缘点集合中,确定出与对应的连接网格的顶点相匹配的目标边缘点。
在实现时,电子设备可以确定每一所述边缘点集合中的每一边缘点的坐标,与所述边缘点集合对应的连接网格的第i个顶点的坐标之间的距离;其中,i为大于0且小于或等于所述连接网格的顶点数目的整数;将距离等于0所对应的边缘点,确定为目标边缘点。
步骤4073,通过将每一所述连接网格的顶点与相匹配的目标边缘点合并,实现所述对齐拼接。
例如,图7所示,如果第二子模型70的边缘点701与缝隙网格71的顶点711相匹配,则将该边缘点与缝隙网格顶点进行合并,合并为一个点,这样边缘点就全部拼接到了作为联通桥梁的缝隙网格上,最终生成一个拼接后的网格模型72。
大面积的网格处理,其内存需求很容易便可以超过50GB及甚至上百GB。而普通的主机可执行的内存通常只有32G,这就使得单台主机一次运行很难完成所有的网格处理。
由于单台主机运行算力有限,便产生了提高计算机运行能力和效率的需求。
基于此,下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
在本申请实施例中,提供了一种网格模型处理方法,该方法可以用于三维重建中处理超大规模场景的三维网格模型。所述方法主要解决了以下问题:(1)超大规模(例如城市级)三维场景的网格计算,这通常在一台主机中无法实现;(2)对三维网格模型实现并行处理,可分布在电脑集群中,以快速处理超大规模的网格;(3)提供了一种基于连接网格的大型模型网格拼接方法。总而言之,在本申请实施例中,主要采取了分而治之的思想,以有效解决大场景下的三维重建问题。
首先,电脑集群中的主节点将一个大规模的三维网格模型拆解成若干个第一子模型和连同各子网格模型的连接网格(也称之为缝隙网格),然后将所述若干个第一子模型分发给各个计算节点,每个计算节点对接收的第一子模型分别进行各自的网格处理。
然后,主节点针对每个计算节点发送的处理好的子模型,即第二子模型,通过一种拼接方法将所有的第二子模型和连接网格拼接成一个总模型,即可得到目标网格模型。
需要说明的是,所述主节点也可以作为计算节点,对部分第一子模型进行网格处理。
在本申请实施例中,通过设计一种三维网格模型的拆分方法和拼接方法,减小了每个计算节点的运行压力,节省了处理时间,并且可以处理超大场景的三维网格模型。另外,也可以有效地部署在云端,通过云计算中MapReduce的思想在电脑集群中完成和实现。以所述方法应用于电脑集群中为例,如图8所示,实现流程包括步骤801至步骤804:
步骤801,主节点基于八叉树的结构对三维网格模型进行拆分,生成若干个第一子模型和连接各个第一子模型的缝隙网格;其中,所述三维网格模型,即为所述初始网格模型的一种示例。
步骤802,主节点将所述若干个第一子模型分发给各个计算节点,每个计算节点对第一子模型分别进行各自的网格处理。
在实现时,主节点可以根据特定的阈值T(即每个计算节点最多计算的采样点数目),开始由根节点子空间持续向下查询,直到查询到的所有子空间内的采样点总数小于阈值T,则将所述所有子空间内的点云和网格作为一个第二集合分配给一个计算节点进行处理;然后,继续向下查询,以将当前查询到的子空间内的点云和网格分配给另一个计算节点进行处理。如图8所示,三维网格模型81最终在空间上被划分为三个第二集合811至813,每一第二集合被分配给对应的计算节点,以使该计算节点对该集合中每一子空间内的第一子模型进行网格处理。
步骤803,每个计算节点在接到任务指令后,对任务指令携带的多个第一子模型进行减面和优化等处理,并将处理后得到每一第二子模型提交至主节点。
步骤804,主节点对每个第二子模型拼接到缝隙网格上,从而生成一个目标网格模型。
在实现时,主节点根据缝隙网格(也可理解为连接网格),对每个空间对应的第二子模型进行精准的拼接和融合。
在一些实施例中,主节点收集每个子空间对应的第二子模型,并进行汇总,同时,主节点遍历所有的连接(缝隙)网格,找到每个连接(缝隙)网格所对应子空间。最终,以缝隙网格为联通桥梁,将每个缝隙网格对应的子空间与该缝隙网格进行对齐拼接,从而得到目标网格模型。
在一些实施例中,对齐拼接的方式如下:
首先,主节点通过边缘查找法将每个第二子模型的边缘点列表寻找出来。寻找每个第二子模型的边缘点的方法为对应面查找法。
接下来,主节点对每个第二子模型的边缘点进行遍历,查找每个边缘点所对应的缝隙网格点。然后将每个边缘点和对应的缝隙网格顶点合并为一个点,这样就能够将每一边缘点拼接到作为联通桥梁的缝隙网格上,实现对齐拼接,最终生成一个拼接后的网格模型,即目标网格模型。
通过本申请实施例提供的分段式网格处理思想以及工程化实现,可以实现大场景范围以及城市级的三维网格模型处理,从而摆脱了三维网格模型计算受限于单台计算机的空间不够的困境。并且,用户不必花费巨大成本购买超级电脑,用一台普通算力的计算机,便可实现将三维网格模型拆分成若干文件,分段(或分布)式地对每个子空间进行逐一网格优化和减面处理,以实现超大场景的网格计算。
在本申请实施例中,主要提供了一种基于八叉树的空间网格划分和分段计算方法和一种基于子空间网格和联通缝隙网格的大型三维网格模型拼接方法,在基于海量数据和城市级的三维重建中,可以不必受限电脑计算空间,而实现三维网格模型的计算。
需要说明的是,上述分段式网格处理方案可以部署在云端或一个电脑集群,将分段后的子模型交由集群中不同的计算节点进行处理,最后合并,可大大加速大场景或城市级的三维网格模型重建。
基于前述的实施例,本申请实施例提供一种网格模型处理装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图9为本申请实施例网格模型处理装置的结构示意图,如图9所示,所述装置900包括模型拆分模块901、子模型处理模块902和子模型拼接模块903,其中:
模型拆分模块901,用于对初始网格模型进行拆分,得到多个第一子模型和多个连接网格,所述连接网格处于相邻的两个所述第一子模型之间;
子模型处理模块902,用于对每一所述第一子模型进行处理,以获得对应的第二子模型;
子模型拼接模块903,用于通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
在一些实施例中,模型拆分模块901,用于:利用N叉树,将所述初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数;从所述第一集合中筛选出多个连接网格;其中,所述连接网格的所有顶点不在同一所述子空间内;将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型。
在一些实施例中,子模型处理模块902,用于:将所述筛选后的第一集合划分为多个第二集合;将每一所述第二集合发送给对应的计算节点,以使所述计算节点对接收的第二集合中每一子空间内的第一子模型进行网格处理,得到对应子空间的第二子模型;接收每一所述计算节点发送的第二子模型。
在一些实施例中,子模型处理模块902,用于:在所述筛选后的第一集合中,从根节点子空间开始向下查询每一子空间包括的采样点的数目,直到查询到的所有子空间内的采样点数目小于或等于第一阈值时,将所述所有子空间确定为所述第二集合;继续向下查询,以确定下一个所述第二集合,直到查询到所述筛选后的第一集合的每一子空间为止,从而实现所述将所述筛选后的第一集合划分为多个第二集合的步骤。
在一些实施例中,子模型拼接模块903,用于:按照所述第一集合的结构信息,将每一包含所述第二子模型的子空间进行拼接,得到第三集合;从所述第三集合中,确定每一所述连接网格的每一顶点所在的目标子空间;在所述第三集合中,将每一所述目标子空间内的第二子模型,与对应的连接网格进行对齐拼接,以得到所述目标网格模型。
在一些实施例中,子模型拼接模块903,用于:对每一所述连接网格对应的目标子空间内的第二子模型进行边缘点查找,得到对应的边缘点集合;从每一所述边缘点集合中,确定出与对应的连接网格的顶点相匹配的目标边缘点;通过将每一所述连接网格的顶点与相匹配的目标边缘点合并,实现所述对齐拼接。
在一些实施例中,子模型拼接模块903,用于:确定每一所述边缘点集合中的每一边缘点的坐标,与所述边缘点集合对应的连接网格的第i个顶点的坐标之间的距离;其中,i为大于0且小于或等于所述连接网格的顶点数目的整数;将距离等于0所对应的边缘点,确定为目标边缘点。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的网格模型处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是笔记本电脑、台式计算机、计算机集群中的某台计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种电子设备,图10为本申请实施例电子设备的一种硬件实体示意图,如图10所示,该电子设备100的硬件实体包括:包括存储器101和处理器102,所述存储器101存储有可在处理器102上运行的计算机程序,所述处理器102执行所述程序时实现上述实施例中提供的网格模型处理方法中的步骤。
存储器101配置为存储由处理器102可执行的指令和应用,还可以缓存待处理器102以及电子设备100中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的网格模型处理方法中的步骤。
这里需要指出的是:以上存储介质、芯片和终端设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、芯片和终端设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的触摸屏系统的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是笔记本电脑、台式计算机、计算机集群中的某台计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种网格模型处理方法,其特征在于,所述方法包括:
利用N叉树,将初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数;
从所述第一集合中筛选出多个连接网格;其中,所述连接网格的顶点不在同一所述子空间内;
将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型,所述连接网格处于相邻的两个所述第一子模型之间;
对每一所述第一子模型进行处理,以获得对应的第二子模型;
通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
2.根据权利要求1所述的方法,其特征在于,所述对每一所述第一子模型进行处理,以获得对应的第二子模型,包括:
将所述筛选后的第一集合划分为多个第二集合;
将每一所述第二集合发送给对应的计算节点,以使所述计算节点对接收的第二集合中每一子空间内的第一子模型进行网格处理,得到对应子空间的第二子模型;
接收每一所述计算节点发送的第二子模型。
3.根据权利要求2所述的方法,其特征在于,所述将所述筛选后的第一集合划分为多个第二集合,包括:
在所述筛选后的第一集合中,从根节点子空间开始向下查询每一子空间包括的采样点的数目,直到查询到的所有子空间内的采样点数目小于或等于第一阈值时,将所述所有子空间确定为所述第二集合;
继续向下查询,以确定下一个所述第二集合,直到查询到所述筛选后的第一集合的每一子空间为止,从而实现所述将所述筛选后的第一集合划分为多个第二集合的步骤。
4.根据权利要求1所述的方法,其特征在于,所述通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型,包括:
按照所述第一集合的结构信息,将每一包含所述第二子模型的子空间进行拼接,得到第三集合;
从所述第三集合中,确定每一所述连接网格的每一顶点所在的目标子空间;
在所述第三集合中,将每一所述目标子空间内的第二子模型,与对应的连接网格进行对齐拼接,以得到所述目标网格模型。
5.根据权利要求4所述的方法,其特征在于,所述将每一所述目标子空间内的第二子模型,与对应的连接网格进行对齐拼接,以得到所述目标网格模型,包括:
对每一所述连接网格对应的目标子空间内的第二子模型进行边缘点查找,得到对应的边缘点集合;
从每一所述边缘点集合中,确定出与对应的连接网格的顶点相匹配的目标边缘点;
通过将每一所述连接网格的顶点与相匹配的目标边缘点合并,实现所述对齐拼接。
6.根据权利要求5所述的方法,其特征在于,所述从每一所述边缘点集合中,确定出与对应的连接网格的顶点相匹配的目标边缘点,包括:
确定每一所述边缘点集合中的每一边缘点的坐标,与所述边缘点集合对应的连接网格的第i个顶点的坐标之间的距离;其中,i为大于0且小于或等于所述连接网格的顶点数目的整数;
将距离等于0所对应的边缘点,确定为目标边缘点。
7.一种网格模型处理装置,其特征在于,包括:
模型拆分模块,用于利用N叉树,将初始网格模型在空间上划分成包括多个子空间的第一集合,所述子空间包括的网格有至少一个顶点在所述子空间内;其中,N为大于1的整数;从所述第一集合中筛选出多个连接网格;其中,所述连接网格的顶点不在同一所述子空间内;将所述筛选后的第一集合中每一子空间内的网格,确定为对应子空间的第一子模型,所述连接网格处于相邻的两个所述第一子模型之间;
子模型处理模块,用于对每一所述第一子模型进行处理,以获得对应的第二子模型;
子模型拼接模块,用于通过所述多个连接网格,连接每一所述第二子模型,以得到目标网格模型。
8.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述网格模型处理方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述网格模型处理方法中的步骤。
CN202010099306.2A 2020-02-18 2020-02-18 网格模型处理方法及装置、设备、存储介质 Active CN111325821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010099306.2A CN111325821B (zh) 2020-02-18 2020-02-18 网格模型处理方法及装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010099306.2A CN111325821B (zh) 2020-02-18 2020-02-18 网格模型处理方法及装置、设备、存储介质

Publications (2)

Publication Number Publication Date
CN111325821A CN111325821A (zh) 2020-06-23
CN111325821B true CN111325821B (zh) 2023-06-06

Family

ID=71165264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010099306.2A Active CN111325821B (zh) 2020-02-18 2020-02-18 网格模型处理方法及装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN111325821B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906745B (zh) * 2021-01-21 2022-03-29 天津大学 基于边缘协同的诚信智能网络训练方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9741126B1 (en) * 2015-06-29 2017-08-22 Yowza, Ltd. Edge and vertex based segmenting of a three dimensional surface mesh
CN109272567A (zh) * 2018-11-29 2019-01-25 成都四方伟业软件股份有限公司 模型优化方法和装置
CN110458950A (zh) * 2019-08-14 2019-11-15 首都医科大学附属北京天坛医院 一种三维模型重建方法、移动终端、存储介质及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101686169B1 (ko) * 2010-02-09 2016-12-14 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
EP2905744A1 (en) * 2014-02-05 2015-08-12 Fujitsu Limited Mesh quality improvement in computer aided engineering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9741126B1 (en) * 2015-06-29 2017-08-22 Yowza, Ltd. Edge and vertex based segmenting of a three dimensional surface mesh
CN109272567A (zh) * 2018-11-29 2019-01-25 成都四方伟业软件股份有限公司 模型优化方法和装置
CN110458950A (zh) * 2019-08-14 2019-11-15 首都医科大学附属北京天坛医院 一种三维模型重建方法、移动终端、存储介质及电子设备

Also Published As

Publication number Publication date
CN111325821A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
US10585948B2 (en) Method and device for constructing spatial index of massive point cloud data
CN112669463B (zh) 三维点云的曲面重建方法、计算机设备和计算机可读存储介质
US11625911B2 (en) Image recognition neural network processing method, device and system
US11100073B2 (en) Method and system for data assignment in a distributed system
CN109858613B (zh) 一种深度神经网络的压缩方法、系统及终端设备
CN108920540B (zh) 一种基于Spark的并行栅格数据处理方法
WO2022166258A1 (zh) 行为识别方法、装置、终端设备及计算机可读存储介质
Wang et al. Duplicate discovery on 2 billion internet images
US20220067012A1 (en) Methods, systems and apparatus to improve spatial-temporal data management
CN111966631A (zh) 一种可快速分发的镜像文件生成方法、系统、设备和介质
CN111627119A (zh) 纹理贴图方法及装置、设备、存储介质
CN111325821B (zh) 网格模型处理方法及装置、设备、存储介质
KR20220070482A (ko) 이미지 증분 클러스터링 방법, 장치, 전자 기기, 저장 매체 및 프로그램 제품
CN111367649B (zh) 高精地图数据并行处理方法和装置
CN111401482B (zh) 特征点匹配方法及装置、设备、存储介质
Li et al. Scalable computational geometry in MapReduce
CN109190450A (zh) 基于分布式计算平台的人工智能遥感影像数据提取方法
US11048756B2 (en) Inserting datasets into database systems utilizing hierarchical value lists
Li et al. Pillar-based 3D object detection from point cloud with multiattention mechanism
CN116310060A (zh) 一种渲染数据的方法、装置、设备及存储介质
Gu et al. Parallel optimization of pixel purity index algorithm for hyperspectral unmixing based on spark
CN113763240B (zh) 一种点云缩略图生成方法、装置、设备及存储介质
CN114022721A (zh) 图像特征点选取方法及相关装置、设备和存储介质
Dimiccoli et al. Hierarchical region-based representation for segmentation and filtering with depth in single images
CN115587297A (zh) 构建图像识别模型和图像识别的方法、装置、设备及介质

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