掌桥专利:专业的专利平台
掌桥专利
首页

空洞纹理填充方法、设备、装置及存储介质

文献发布时间:2023-06-19 19:28:50


空洞纹理填充方法、设备、装置及存储介质

技术领域

本申请涉及互联网技术领域,尤其涉及一种空洞纹理填充方法、设备、装置及存储介质。

背景技术

在目标对象的现有的三维空间模型中,由于在拍摄过程中,有些位置会被其他物体被遮挡,从而无法采集到数据,也不能拍摄到实景图像。在构建对象的三维空间模型的过程中,没有数据的区域会在该对象的模型表面生成空洞,从模型展示来看就会显示一个黑洞,严重影响模型的展示效果。

例如,VR看房系统,由于在拍摄过程中,房屋有些位置会被其他物体被遮挡,从而无法采集这些位置的实景图像。在构建三维房屋模型的过程中,没有纹理数据对这些位置进行纹理填充,导致无纹理数据的区域会在房屋模型表面生成空洞。因此,如何填补模型表面的空洞,成为亟待解决的问题。

发明内容

本申请的多个方面提供一种空洞纹理填充方法、设备、装置及存储介质,用以对目标对象的三维模型的表面的空洞进行纹理填充,有助于提高三维模型展示效果。

本申请实施例提供一种空洞纹理填充方法,包括:

根据目标对象的三维网格模型和实景图像的映射关系,从所述三维网格模型中,确定未被所述实景图像的纹理填充的第一三角面片形成的空洞联通块;

根据所述空洞联通块在所述三维网格模型中的联结关系,确定所述空洞联通块包含的内部顶点集合和联通的边缘顶点序列;所述边缘顶点序列是指所述第一三角面片中与第二三角面片共享的边的顶点形成的序列,所述内部顶点集合是指所述第一三角面片中未与第二三角面片共享的边的顶点的集合;所述第二三角面片是指所述三维网络模型中被所述实景图像的纹理填充的三角面片;

针对所述边缘顶点序列中的任一边缘顶点,根据所述边缘顶点序列在所述三维网格模型中的联结关系,确定所述任一边缘顶点联结的其它边缘顶点形成的环形序列;

根据所述边缘顶点序列在所述三维网格模型中的联结关系及所述环形序列中的边缘顶点的顺序,对所述边缘顶点序列进行遍历,以得到目标边缘顶点序列;

根据目标边缘顶点序列在所述三维网格模型的分布,确定所述目标边缘顶点序列的纹理坐标;

根据所述目标边缘顶点序列的纹理坐标及所述目标边缘顶点序列和所述内部顶点集合在所述三维网格模型中的联结关系,计算所述内部顶点集合的纹理坐标;

根据所述目标边缘顶点序列所在边缘的纹理及所述内部顶点集合的纹理坐标,对所述空洞联通块进行纹理填充。

本申请实施例还提供一种空洞纹理填充装置,包括:

确定模块,用于根据目标对象的三维网格模型和实景图像的映射关系,从所述三维网格模型中,确定未被所述实景图像的纹理填充的第一三角面片形成的空洞联通块;以及,根据所述空洞联通块在所述三维网格模型中的联结关系,确定所述联通块包含的内部顶点集合和联通的边缘顶点序列;所述边缘顶点序列是指所述第一三角面片中与第二三角面片共享的边的顶点形成的序列;所述内部顶点集合是指所述第一三角面片中未与第二三角面片共享的边的顶点的集合;所述第二三角面片是指所述三维网络模型中被所述实景图像的纹理填充的三角面片;以及,针对所述边缘顶点序列中的任一边缘顶点,根据所述边缘顶点序列在所述三维网格模型中的联结关系,确定所述任一边缘顶点联结的其它边缘顶点形成的环形序列;

遍历模块,用于根据所述边缘顶点序列在所述三维网格模型中的联结关系及所述环形序列中的边缘顶点的顺序,对所述边缘顶点序列进行遍历,以得到目标边缘顶点序列;

所述确定模块,还用于根据目标边缘顶点序列在所述三维网格模型的分布,确定所述目标边缘顶点序列的纹理坐标;

计算模块,用于根据所述目标边缘顶点序列的纹理坐标及所述目标边缘顶点序列和所述内部顶点集合在所述三维网格模型中的联结关系,计算所述内部顶点集合的纹理坐标;

填充模块,用于根据所述目标边缘顶点序列所在边缘的纹理及所述内部顶点集合的纹理坐标,对所述空洞联通块进行纹理填充。

本申请实施例还提供一种计算设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;

所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述空洞纹理填充方法中的步骤。

本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述空洞纹理填充方法中的步骤。

在本申请实施例中,可根据三维网格模型中空洞联通块包含的边缘顶点序列中的边缘顶点序列在三维网格模型中的联结关系,确定边缘顶点序列中的边缘顶点联结的其它边缘顶点形成的环形序列;之后,根据环形序列中边缘顶点的顺序及边缘顶点序列在三维网格模型中的联结关系,对边缘顶点序列进行遍历时,可遍历到边缘顶点序列包含的所有边缘顶点,放宽了对于空洞边界排布形式的约束,可支持空洞联通块内多段边缘及内嵌纹理块的补洞,使得空洞纹理填充方式适应于各种复杂使用场景,有助于提高空洞纹理填充的普适性和纹理填充效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a-图1c为本申请实施例提供的空洞联通块的示意图;

图2为本申请实施例提供的空洞纹理填充方法的流程示意图;

图3为本申请实施例提供的另一空洞联通块的示意图;

图4为本申请实施例提供的又一空洞联通块的示意图;

图5为本申请实施例提供的空洞纹理填充装置的结构示意图;

图6为本申请实施例提供的计算设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请实施例中,为了提高目标对象的展示效果,可构建目标对象的三维空间模型。目标对象可为自然界任意实体对象。例如,目标对象可为建筑物(如住宅、商场、办公楼等)、车辆(如汽车等)及城市等。三维空间模型的各个纹理面包括多个三角面片(Face),每一个三角面片的顶点具有对应的纹理坐标。在渲染时,可以根据纹理面中的三角面片的纹理坐标,渲染每个三角面片的纹理,最终得到整个目标对象的三维空间模型。其中,三维空间模型为目标对象在数据世界的还原,为目标对象的三维实景模型。

目标对象的三维空间模型的构成,可由多种传感器采集目标对象的数据,基于采集到的数据对目标对象进行重构,进而得到三维空间模型。例如,在一些传统方案中,可由激光雷达采集目标对象的点云数据;并基于点云数据构建目标对象的三维网格模型O。可选地,可通过配准融合及泊松重建方式对目标对象的点云数据进行处理,以得到目标对象的三维网格模型O。该三维网格模型O包括:三维顶点集合和将这些顶点联结起来的三角面片集合S。

为了对目标对象的三维网格模型进行纹理填充,得到三维空间模型,还可采用图像采集设备(如摄像头、相机等)采集目标对象的实景图像。其中,图像采集设备中的摄像头可为全景摄像头等。基于目标对象的实景图像,可将实景图像的纹理映射至三维网格模型中对应的三角面片,得到目标对象的三维空间模型。可选地,可根据目标对象的三维网格模型与实景图像之间的映射关系,将目标对象的实景图像映射至三维网格模型对应的三角面片。目标对象的三维网格模型与实景图像之间的映射关系,可由点云数据所在坐标系与实景图像所在坐标系之间的坐标转换关系确定。

但是,在实际应用中,由于在数据采集过程中,有些位置会被其他物体被遮挡,从而无法采集到数据,也不能拍摄到实景图像。因此,在构建目标对象的三维空间模型的过程中,没有数据的区域对应的三角面片无对应的实景图像的纹理,则会在该目标对象的三维空间模型表面生成空洞,从模型展示来看就会显示一个黑洞或空洞,严重影响模型的展示效果。

为了填补目标对象的三维空间模型的表面的空洞,在一些传统方案中,例如单目三维重建方案MVE对目标对象的三维空间模型的表面的空洞进行纹理填充的主要方式如下:

步骤1、根据目标对象的三维网格模型O与图像采集设备在各点位采集的全景图像,将图像采集设备在所有点位拍摄的全景图像的纹理映射至三维网格模型O上,以得到三维网格模型中被纹理映射的三角面片集合P及未被纹理映射的三角面片集合H。其中,未被纹理映射的三角面片即为纹理空洞。

步骤2、根据未被纹理映射的三角面片集合H在三维网格模型O中的联结关系,确定三角面片集合H形成的空洞联通块集合U。其中,每一空洞联通块u是指由联通的未被纹理映射的三角面片组成。可通过广度优先搜索(BFS)或者并查集(Union Find)方式,根据未被纹理映射的三角面片集合H在三维网格模型O中的联结关系,确定三角面片集合H形成的空洞联通块集合U,但不限于此。

步骤3、对于每一上述空洞联通块u,根据空洞联通块u在三维网格模型O中的联结关系,可得到空洞联通块u中所有三角面片包括的顶点集合,并根据顶点是否在空洞联通块与映射有纹理的三角面片共用的边缘上,将空洞联通块u包含的顶点集合,划分为内部顶点集合I,和边缘环形顶点序列B。其中边缘环形顶点序列B中任一序列b的顺序满足任意位置的顶点与其前一位置或后一位置的顶点在三维网格模型O上相邻。

上述步骤3中的边缘环形顶点序列B中顶点为边缘顶点,边缘顶点是指空洞联通块与映射有纹理的三角面片共用的边上的顶点。内部顶点集合是指空洞联通块不与映射有纹理的三角面片共用的边上的顶点的集合。

步骤4、对于每一空洞联通块u,生成一待填充的虚拟纹理块t。虚拟纹理块t未填充纹理,是空白的。

步骤5、对边缘环形顶点序列B的每一顶点赋予一个纹理坐标,并指定这些纹理坐标分布在一个同心圆上。其中同心圆的大小与纹理坐标分布间距可由边缘环形顶点序列B在三维网格模型O中的分布确定。

步骤6、对于每一空洞联通块u,得到边缘环形顶点序列B的纹理坐标后,可将内部顶点集合I在虚拟纹理块t上的纹理坐标设为未知项集合,按照边缘环形顶点序列B与内部顶点集合I在三维网格模型O中的联结关系,确定边缘环形顶点序列B的纹理坐标对内部顶点集合I中的顶点的纹理坐标的权重;之后,上一步骤5中计算得到的边缘环形顶点序列B的纹理坐标作为边界条件,建立全局拉普拉斯方程求解出内部顶点集合I的纹理坐标。

步骤7、根据边缘环形顶点序列B的纹理坐标、内部顶点集合I的纹理坐标及边缘环形顶点序列B所在边缘的纹理,对未被纹理映射的三角面片集合H形成的空洞进行纹理渲染,即完成补洞操作。

上述方案虽然可完成空洞纹理渲染,但是该方案可行的前提条件是需要纹理空洞性质满足一定假设:(1)要求其必须满足空洞边缘顶点上的度均为2,即每个顶点只与它邻接的前后两个顶点相连;(2)空洞联通块内部不包含其他纹理块,即所有边缘顶点相连仅组成一条首尾相连的环。但是,当假设条件不满足时,上述空洞纹理填充操作会退出,无法实现空洞纹理填充。例如,纹理空洞联通块u的形状为一首尾相连的环等。在实际应用中,经常会因为图像采集设备的采集点位不足,物体遮挡等原因,导致目标对象的物体轮廓复杂和多点位配准误差较大的情况等,进而导致三维网格模型中的空洞联通块不满足上述假设的前提条件,导致上述空调纹理填充失败。

例如,如图1a-图1c所示,白色区域为未被纹理映射的三角面片构成的空洞联通块,灰色区域为有纹理填充的三角面片区域。上述空洞纹理填充方案仅适用于图1a所示的空洞联通块情况,即空洞联通块的边缘顶点的度为2,且边缘顶点相连仅组成一条首尾相连的环。但是,上述空洞纹理填充方案无法完成图1b和图1c所示的空洞联通块的纹理填充,图1b中边缘顶点v0的度为4,不满足上述假设条件(1)。图1c中空洞联通块内部包含其它有纹理的联通块,空洞联通块的边缘顶点序列为多段,即多条首尾相连的环,不满足上述假设条件(2)。因此,图1b和图1c示出的空洞无法采用上述空洞纹理填充方案进行纹理填充。

针对上述空洞纹理填充方案使用情况受限,导致空洞纹理填充效果较差的技术问题,本申请一些实施例提出一种新的空洞纹理填充方案,主要思路为:可根据三维网格模型中空洞联通块包含的边缘顶点序列中的边缘顶点序列在三维网格模型中的联结关系,确定边缘顶点序列中的边缘顶点联结的其它边缘顶点形成的环形序列;之后,根据环形序列中边缘顶点的顺序及边缘顶点序列在三维网格模型中的联结关系,对边缘顶点序列进行遍历时,可遍历到边缘顶点序列包含的所有边缘顶点,放宽了对于空洞边界排布形式的约束,可支持空洞联通块内多段边缘及内嵌纹理块的补洞,使得空洞纹理填充方式适应于各种复杂使用场景,有助于提高空洞纹理填充的普适性和纹理填充效果。

以下结合附图,详细说明本申请各实施例提供的技术方案。

应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。

图2为本申请实施例提供的空洞纹理填充方法的流程示意图。如图2所示,该方法主要包括如下步骤:

201、根据目标对象的三维网格模型和实景图像的映射关系,从三维网格模型中,确定未被实景图像的纹理填充的第一三角面片形成的空洞联通块。

202、根据空洞联通块在三维网格模型中的联结关系,确定联通块包含的内部顶点集合和联通的边缘顶点序列;边缘顶点序列是指第一三角面片中与第二三角面片共享的边的顶点形成的序列,内部顶点集合是指第一三角面片中未与第二三角面片共享的边的顶点的集合;第二三角面片是指三维网络模型中被实景图像的纹理填充的三角面片。

203、针对边缘顶点序列中的任一边缘顶点,根据边缘顶点序列在三维网格模型中的联结关系,确定任一边缘顶点联结的其它边缘顶点形成的环形序列。

204、根据边缘顶点序列在三维网格模型中的联结关系及环形序列中的边缘顶点的顺序,对边缘顶点序列进行遍历,以得到目标边缘顶点序列。

205、根据目标边缘顶点序列在三维网格模型的分布,确定目标边缘顶点序列的纹理坐标。

206、根据目标边缘顶点序列的纹理坐标及目标边缘顶点序列和内部顶点集合在三维网格模型中的联结关系,计算内部顶点集合的纹理坐标。

207、根据目标边缘顶点序列所在边缘的纹理及内部顶点集合的纹理坐标,对空洞联通块进行纹理填充。

在本申请实施例中,关于目标对象的三维网格模型和实景图像的获取方式,可参见上述传统方案的相关内容,在此不再赘述。基于目标对象的三维网格模型和实景图像,可根据目标对象的三维网格模型和实景图像之间的映射关系,从三维网格模型中,确定未被实景图像的纹理填充的三角面片形成的空洞联通块。

具体地,可根据目标对象的三维网格模型和实景图像的映射关系,将实景图像的纹理映射到三维网格模型的三角面片,以得到未被纹理映射的三角面片。其中,未被纹理映射的三角面片的数量可为1个或多个。在本申请各实施例中,多个是指2个或2个以上。未被纹理映射的三角面片的具体数量可由具有采集到的实景图像覆盖的区域决定。

进一步,可根据未被纹理映射的三角面片在三维网格模型中的联结关系,确定未被纹理映射的三角面片形成的空洞联通块。其中,空洞联通块的数量可为1个或多个,具体由未被纹理映射的三角面片在三维网格模型中的分布位置确定。可选地,可采用广度优先方式根据未被纹理映射的三角面片在三维网格模型中的联结关系,在三维网格模型中进行搜索,确定未被映射的三角面片形成的空洞联通块。每个空洞联通块由至少一个未被纹理映射的三角面片组成,组成空洞联通块的三角面片相互联通。例如,如图3所示,未被纹理映射的三角面片为h1-h5,三角面片h1-h5组成的联通块(即图3中白色区域部分)即为空洞联通块。

基于确定出的三维网格模型中的空洞联通块,在步骤202中,可根据空洞联通块在三维网格模型中的联结关系,确定空洞联通块包含的内部顶点集合和联通的边缘顶点序列。

在本申请实施例中,为了便于描述和区分,将三维网格模型中未被实景图像的纹理填充的三角面片,定义为第一三角面片;并将三维网格模型中被实景图像的纹理填充的三角面片,定义为第二三角面片。相应地,步骤202中,边缘顶点序列是指三维网格模型中第一三角面片与第二三角面片共用的边的顶点形成的序列;内部顶点集合是指第一三角面片中未与第二三角面片共线的边的顶点的集合。

例如,如图3所示,三角面片h1-h5组成的联通块(即图3中白色区域部分)即为空洞联通块。根据三角面片h1-h5组成的空洞联通块在三维网格模型中的联结关系,可确定空洞联通块包含的内部顶点集合为顶点v0;联通的边缘顶点序列即为边缘顶点v1-v5形成的序列。

具体地,可根据空洞联通块在三维网格模型中的联结关系,确定空洞联通块包括的内部顶点集合和边缘顶点集合。其中,边缘顶点集合是指三维网格模型中第一三角面片与第二三角面片共用的边的顶点的集合。进一步,可根据边缘顶点集合在三维网格模型中的联结关系,确定联通的边缘顶点序列。边缘顶点序列的数量为1个或多个。多个是指2个或2个以上。每个边缘顶点序列中的前后两个顶点在三维网格模型中是联结的。

例如,如上述图1c中,边缘顶点集合为顶点v0-v25,根据边缘顶点集合v0-v25在三维网格模型中的联结关系,可确定联通的边缘顶点序列为3个,即边缘顶点v0-v15形成的边缘顶点序列、边缘顶点v16-v20形成的边缘顶点序列及边缘顶点v21-v25形成的边缘顶点序列。图3中,边缘顶点集合为顶点v1-v5,可确定联通的边缘顶点序列为顶点v1-v5形成的边缘顶点序列。

在本申请实施例中,为了提高空洞纹理填充的普适性和纹理填充效果,防止出现上述图1b中所示的空洞联通块无法实现纹理填充,在步骤203中,针对边缘顶点序列中的任一边缘顶点v

环形序列是指环形序列中包含的边缘顶点绕边缘顶点vi形成一环形。其中,环形序列包含的边缘顶点的数量可为2个或2个以上,具体由边缘顶点v

在本申请实施例中,不限定环形序列包含的边缘顶点在三维网格模型中的分布顺序。在一些实施例中,为了便于后续遍历,可根据边缘顶点序列在三维网格模型中的联结关系,确定任一边缘顶点vi联结的其它边缘顶点;并按照设定的排列顺序,对边缘顶点vi联结的其它边缘顶点进行排序,得到环形序列。可选地,可按照逆时针或顺时针的排列顺序,对边缘顶点vi联结的其它边缘顶点进行排序,得到环形序列。例如,上述图1b中,按照逆时针的排列顺序,可得到边缘顶点v0联结的其它边缘顶点形成的环形序列为:边缘顶点v2、v16、v20和v17。

在确定边缘顶点序列中所有边缘顶点联结的其它边缘顶点形成的环形序列之后,在步骤204中,可根据边缘顶点序列在三维网格模型中的联结关系,及,环形序列中边缘顶点的排列顺序,对边缘顶点序列进行遍历,得到目标边缘顶点序列。

可选地,可根据边缘顶点序列在三维网格模型中的联结关系,按照环形序列中边缘顶点的顺序,对边缘顶点序列进行深度优先遍历;且在任一边缘顶点vi联结的其它边缘顶点的数量大于2个的情况下,在遍历到环形序列中的边缘顶点时,可根据环形序列中边缘顶点的排列顺序,对任一边缘顶点vi进行重复遍历,至环形序列中的边缘顶点遍历结束。边缘顶点序列中的每个边缘顶点均按照上述方式进行遍历,得到目标边缘顶点序列。

例如,在上述图1b中,对于边缘顶点v0,边缘顶点v0联结的其它边缘顶点形成的环形序列为逆时针排列的环形序列v2、v16、v20和v17,在遍历到该环形序列时,可重复遍历边缘顶点v0,即遍历顺序可为:v2->v0->v0->v16->v0-v20->v0->v17。对其它度为2的边缘顶点,可按照环形序列的排列顺序进行深度优先遍历至边缘顶点序列遍历完成,得到目标边缘顶点序列。

上述边缘顶点序列的数量可为1个或多个。每个边缘顶点序列为一条由边缘顶点形成环形序列。在边缘顶点序列为多个的情况下,每个边缘顶点序列均可按照上述步骤203和步骤204进行遍历,得到每个边缘顶点序列对应的目标边缘顶点序列。

在得到目标边缘顶点序列之后,在步骤205中,可根据目标边缘顶点序列在三维网格模型中的分布,确定目标边缘顶点序列的纹理坐标。

具体地,可生成空洞联通块对应的空白的虚拟纹理块。在本申请实施例中,不限定空白的虚拟纹理块的形状和尺寸。在一些实施例中,虚拟纹理块可为矩形,该矩形为空白的纹理块。可选地,可确定空洞联通块的边缘在实景图像中的投影长度;并根据空洞联通块的边缘在实景图像中的投影长度,确定虚拟纹理块的尺寸。可选地,可计算空洞联通块的边缘在实景图像中的投影长度之和;并计算空洞联通块的边缘在实景图像中的投影长度之和,除以圆周率的商,作为虚拟纹理块的长和宽。进一步,可根据虚拟纹理块的尺寸,生成空白的虚拟纹理块。

在生成空洞纹理块对应的空白的虚拟纹理块之后,可根据目标边缘顶点序列在三维网格模型的分布,将目标边缘顶点序列投影至虚拟纹理块中具有指定轮廓的流形上,并确定目标边缘顶点序列在虚拟纹理块的投影的纹理坐标,为目标边缘顶点序列的纹理坐标。

上述指定轮廓的流形可为一维流形。可选地,可将目标边缘顶点序列正交投影至虚拟纹理块所在的拟合平面上,并确定目标边缘顶点序列在拟合平面投影形成的轮廓,为所述指定轮廓的流形。或者,指定轮廓的流形也可为同心圆等等。

在得到目标边缘顶点序列的纹理坐标之后,在步骤206中,可根据目标边缘顶点序列的纹理坐标及目标边缘顶点序列和内部顶点集合在三维网格模型中的联结关系,计算内部顶点集合的纹理坐标。

具体地,可根据目标边缘顶点序列和内部顶点集合在三维网格模型中的联结关系,确定目标边缘顶点序列联结的目标内部顶点。例如,在图3中,根据目标边缘顶点序列v1-v5和内部顶点集合v0在三维网格模型中的联结关系,确定目标边缘顶点序列联结的目标内部顶点为v0。

进一步,可以目标内部顶点的纹理坐标为待求量,根据目标内部顶点与目标边缘顶点序列在三维网格模型中的三角几何关系,确定目标边缘顶点序列的纹理坐标对待求量的权重;之后,可根据对目标边缘顶点序列的纹理坐标对待求量的权重,对目标边缘顶点序列的纹理坐标进行加权求和;利用目标边缘顶点序列的纹理坐标进行加权求和的结果等于待求量,构建数学模型。可选地,数学模型可为拉普拉斯方程组。

进一步,可对数学模型进行求解,以得到目标内部顶点的纹理坐标;并根据目标内部顶点的纹理坐标,确定内部顶点集合的纹理坐标。在本实施例中,可采用相同的方式求得所有目标内部顶点的纹理坐标,所有目标内部顶点的纹理坐标构成内部顶点集合的纹理坐标。

在本申请实施例中,不限定根据目标内部顶点与目标边缘顶点序列在三维网格模型中的三角几何关系,确定目标边缘顶点序列的纹理坐标对待求量的权重的具体实施方式。在一些实施例中,针对目标边缘顶点序列中的第一边缘顶点,以目标内部顶点的纹理坐标为待求量,计算第一边缘顶点与目标内部顶点之间的距离;该距离包含待求量;进一步,根据第一边缘顶点与目标内部顶点所在的第一边分别与目标内部顶点所在的第二边和第三边之间的夹角,以及,第一边缘顶点与目标内部顶点之间的距离,确定第一边缘顶点的纹理坐标对待求量的权重;第一边缘顶点的纹理坐标的权重包含待求量;其中,第二边和第三边分别为第一边缘顶点在目标边缘顶点序列中的前后边缘顶点与目标内部顶点所在的边。

例如,在图4中,目标边缘顶点序列为v

在式(1)中,w

在确定出目标边缘顶点序列中的边缘顶点v

进一步,可对上述式(2)和式(3)进行求解,得到目标内部顶点v

在确定出空洞联通块包含的内部顶点集合及目标边缘顶点序列的纹理坐标之后,在步骤207中,可根据目标边缘顶点序列所在边缘的纹理及内部顶点集合的纹理坐标,对上述空洞联通块进行纹理填充,实现对目标对象的三维网格模型表面的空洞纹理填充。

可选地,可以目标边缘顶点序列所在边缘的纹理为边界条件,采用泊松融合方式对空洞联通块进行向内纹理填充,至纹理填充至空洞联通块的内部顶点集合的纹理坐标,实现对目标对象的三维网格模型表面的空洞纹理填充。

本实施例提供的空洞纹理填充方式,可根据三维网格模型中空洞联通块包含的边缘顶点序列中的边缘顶点序列在三维网格模型中的联结关系,确定边缘顶点序列中的边缘顶点联结的其它边缘顶点形成的环形序列;之后,根据环形序列中边缘顶点的顺序及边缘顶点序列在三维网格模型中的联结关系,对边缘顶点序列进行遍历时,可遍历到边缘顶点序列包含的所有边缘顶点,放宽了对于空洞边界排布形式的约束,可支持空洞联通块内多段边缘及内嵌纹理块的补洞,使得空洞纹理填充方式适应于各种复杂使用场景,有助于提高空洞纹理填充的普适性和纹理填充效果。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401和402的执行主体可以为设备A;又比如,步骤401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。

相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述空洞纹理填充方法中的步骤。

图5为本申请实施例提供的空洞纹理填充装置的结构示意图。如图5所示,该空洞纹理填充装置包括:确定模块50a、遍历模块50b、计算模块50c及填充模块50d。

其中,确定模块50a,用于根据目标对象的三维网格模型和实景图像的映射关系,从所述三维网格模型中,确定未被所述实景图像的纹理填充的第一三角面片形成的空洞联通块;以及,根据所述空洞联通块在所述三维网格模型中的联结关系,确定所述联通块包含的内部顶点集合和联通的边缘顶点序列;所述边缘顶点序列是指所述第一三角面片中与第二三角面片共享的边的顶点形成的序列;所述内部顶点集合是指所述第一三角面片中未与第二三角面片共享的边的顶点的集合;所述第二三角面片是指所述三维网络模型中被所述实景图像的纹理填充的三角面片;以及,针对所述边缘顶点序列中的任一边缘顶点,根据所述边缘顶点序列在所述三维网格模型中的联结关系,确定所述任一边缘顶点联结的其它边缘顶点形成的环形序列。

遍历模块50b,用于根据所述边缘顶点序列在所述三维网格模型中的联结关系及所述环形序列中的边缘顶点的顺序,对所述边缘顶点序列进行遍历,以得到目标边缘顶点序列。

所述确定模块50a,还用于根据目标边缘顶点序列在所述三维网格模型的分布,确定所述目标边缘顶点序列的纹理坐标。

计算模块50c,用于根据所述目标边缘顶点序列的纹理坐标及所述目标边缘顶点序列和所述内部顶点集合在所述三维网格模型中的联结关系,计算所述内部顶点集合的纹理坐标。

填充模块50d,用于根据所述目标边缘顶点序列所在边缘的纹理及所述内部顶点集合的纹理坐标,对所述空洞联通块进行纹理填充。

在一些实施例中,确定模块50a在确定未被所述实景图像的纹理填充的第一三角面片形成的空洞联通块时,具体用于:根据目标对象的三维网格模型和实景图像的映射关系,将所述实景图像的纹理映射到所述三维网格模型的三角面片,以得到所述第一三角面片;并根据所述第一三角面片在三维网格模型中的联结关系,确定所述第一三角面片形成的空洞联通块。

可选地,确定模块50a在确定所述空洞联通块包含的内部顶点集合和联通的边缘顶点序列时,具体用于:根据所述空洞联通块在所述三维网格模型中的联结关系,确定所述空洞联通块包含的内部顶点集合和边缘顶点集合;并根据所述边缘顶点集合在所述三维网格模型中的联结关系,确定联通的边缘顶点序列。

可选地,确定模块50a在确定所述任一边缘顶点联结的其它边缘顶点形成的环形序列时,具体用于:根据所述边缘顶点序列在所述三维网格模型中的联结关系,确定所述任一边缘顶点联结的其它边缘顶点;按照设定的排列顺序,对所述其它边缘顶点进行排序,以得到所述环形序列。

可选地,遍历模块50b在对所述边缘顶点序列进行遍历时,具体用于:根据所述边缘顶点序列在所述三维网格模型中的联结关系,按照所述环形序列中边缘顶点的顺序,对所述边缘顶点序列进行深度优先遍历;在所述任一边缘顶点联结的其它边缘顶点的数量大于2个的情况下,在遍历到所述环形序列中的边缘顶点时,根据所述环形序列中边缘顶点的顺序,对所述任一边缘顶点进行重复遍历,至所述环形序列中的边缘顶点遍历结束。

在一些实施例中,如图5所示,空洞纹理填充装置还可包括:生成模块50e。生成模块50c,用于在根据目标边缘顶点序列在所述三维网格模型的分布,确定所述目标边缘顶点序列的纹理坐标之前,生成所述空洞联通块对应的空白的虚拟纹理块。

可选地,生成模块50c在生成所述空洞联通块对应的空白的虚拟纹理块时,具体用于:确定所述空洞联通块的边缘在所述实景图像中的投影长度;根据所述空洞联通块的边缘在所述实景图像中的投影长度,确定所述虚拟纹理块的尺寸;根据所述虚拟纹理块的尺寸,生成所述空白的虚拟纹理块。

相应地,确定模块50a在确定所述目标边缘顶点序列的纹理坐标时,具体用于:根据所述目标边缘顶点序列在所述三维网格模型的分布,将所述目标边缘顶点序列投影至所述虚拟纹理块中具有指定轮廓的流形;确定所述目标边缘顶点序列在所述虚拟纹理块的投影的纹理坐标,为所述目标边缘顶点序列的纹理坐标。

可选地,空洞纹理填充装置还可包括:投影模块50f。投影模块50f,用于将所述目标边缘顶点序列正交投影至所述虚拟纹理块所在的拟合平面;并确定所述目标边缘顶点序列在拟合平面投影形成的轮廓,为所述指定轮廓的流形。

在一些实施例中,计算模块50c在计算所述内部顶点集合的纹理坐标时,具体用于:根据所述目标边缘顶点序列和所述内部顶点集合在所述三维网格模型中的联结关系,确定所述目标边缘顶点序列联结的目标内部顶点;以所述目标内部顶点的纹理坐标为待求量,根据所述目标内部顶点与所述目标边缘顶点序列在所述三维网格模型中的三角几何关系,确定所述目标边缘顶点序列的纹理坐标对所述待求量的权重;根据所述对所述目标边缘顶点序列的纹理坐标对所述待求量的权重,对所述目标边缘顶点序列的纹理坐标进行加权求和;利用所述目标边缘顶点序列的纹理坐标进行加权求和的结果等于所述待求量,构建数学模型;对所述数学模型进行求解,以得到所述目标内部顶点的纹理坐标;根据所述目标内部顶点的纹理坐标,确定所述内部顶点集合的纹理坐标。

进一步,计算模块50c在确定所述目标边缘顶点序列的纹理坐标对所述待求量的权重时,具体用于:针对目标边缘顶点序列中的第一边缘顶点,以所述目标内部顶点的纹理坐标为待求量,计算所述第一边缘顶点与所述目标内部顶点之间的距离;所述距离包含所述待求量;根据所述第一边缘顶点与所述目标内部顶点所在的第一边分别与所述目标内部顶点所在的第二边和第三边之间的夹角,以及,所述第一边缘顶点与所述目标内部顶点之间的距离,确定所述第一边缘顶点的纹理坐标对所述待求量的权重;所述第一边缘顶点的纹理坐标的权重包含所述待求量;其中,所述第二边和所述第三边分别为第一边缘顶点在所述目标变动顶点序列中的前后边缘顶点与所述目标内部顶点所在的边。

可选地,填充模块50d在对所述空洞联通块进行纹理填充时,具体用于:以所述目标边缘顶点序列所在边缘的纹理为边界条件,采用泊松融合方式对所述空洞联通块进行向内纹理填充,至纹理填充至所述空洞联通块的内部顶点集合的纹理坐标。

本实施例提供的空洞纹理填充装置,可根据三维网格模型中空洞联通块包含的边缘顶点序列中的边缘顶点序列在三维网格模型中的联结关系,确定边缘顶点序列中的边缘顶点联结的其它边缘顶点形成的环形序列;之后,根据环形序列中边缘顶点的顺序及边缘顶点序列在三维网格模型中的联结关系,对边缘顶点序列进行遍历时,可遍历到边缘顶点序列包含的所有边缘顶点,放宽了对于空洞边界排布形式的约束,可支持空洞联通块内多段边缘及内嵌纹理块的补洞,使得空洞纹理填充方式适应于各种复杂使用场景,有助于提高空洞纹理填充的普适性和纹理填充效果。

图6为本申请实施例提供的计算设备的结构示意图。如图6所示,该计算设备包括:存储器60a和处理器60b。其中,存储器60a,用于存储计算机程序。

处理器60b耦合至存储器60a,用于执行计算机程序以用于:根据目标对象的三维网格模型和实景图像的映射关系,从三维网格模型中,确定未被实景图像的纹理填充的第一三角面片形成的空洞联通块;根据空洞联通块在三维网格模型中的联结关系,确定空洞联通块包含的内部顶点集合和联通的边缘顶点序列;边缘顶点序列是指第一三角面片中与第二三角面片共享的边的顶点形成的序列,内部顶点集合是指第一三角面片中未与第二三角面片共享的边的顶点的集合;第二三角面片是指三维网络模型中被实景图像的纹理填充的三角面片;针对边缘顶点序列中的任一边缘顶点,根据边缘顶点序列在三维网格模型中的联结关系,确定任一边缘顶点联结的其它边缘顶点形成的环形序列;根据边缘顶点序列在三维网格模型中的联结关系及环形序列中的边缘顶点的顺序,对边缘顶点序列进行遍历,以得到目标边缘顶点序列;根据目标边缘顶点序列在三维网格模型的分布,确定目标边缘顶点序列的纹理坐标;根据目标边缘顶点序列的纹理坐标及目标边缘顶点序列和内部顶点集合在三维网格模型中的联结关系,计算内部顶点集合的纹理坐标;以及,根据目标边缘顶点序列所在边缘的纹理及内部顶点集合的纹理坐标,对空洞联通块进行纹理填充。

可选地,处理器60b在确定未被实景图像的纹理填充的第一三角面片形成的空洞联通块时,具体用于:根据目标对象的三维网格模型和实景图像的映射关系,将实景图像的纹理映射到三维网格模型的三角面片,以得到第一三角面片;以及,根据第一三角面片在三维网格模型中的联结关系,确定第一三角面片形成的空洞联通块。

可选地,处理器60b在确定空洞联通块包含的内部顶点集合和联通的边缘顶点序列时,具体用于:根据空洞联通块在三维网格模型中的联结关系,确定空洞联通块包含的内部顶点集合和边缘顶点集合;根据边缘顶点集合在三维网格模型中的联结关系,确定联通的边缘顶点序列。

可选地,处理器60b在确定任一边缘顶点联结的其它边缘顶点形成的环形序列时,具体用于:根据边缘顶点序列在三维网格模型中的联结关系,确定任一边缘顶点联结的其它边缘顶点;按照设定的排列顺序,对其它边缘顶点进行排序,以得到环形序列。

可选地,处理器60b在对边缘顶点序列进行遍历时,具体用于:根据边缘顶点序列在三维网格模型中的联结关系,按照环形序列中边缘顶点的顺序,对边缘顶点序列进行深度优先遍历;在任一边缘顶点联结的其它边缘顶点的数量大于2个的情况下,在遍历到环形序列中的边缘顶点时,根据环形序列中边缘顶点的顺序,对任一边缘顶点进行重复遍历,至环形序列中的边缘顶点遍历结束。

可选地,处理器60b还用于:在根据目标边缘顶点序列在三维网格模型的分布,确定目标边缘顶点序列的纹理坐标之前,生成空洞联通块对应的空白的虚拟纹理块。

可选地,处理器60b在生成空洞联通块对应的空白的虚拟纹理块时,具体用于:确定空洞联通块的边缘在实景图像中的投影长度;根据空洞联通块的边缘在实景图像中的投影长度,确定虚拟纹理块的尺寸;根据虚拟纹理块的尺寸,生成空白的虚拟纹理块。

相应地,处理器60b在根据目标边缘顶点序列在三维网格模型的分布,确定目标边缘顶点序列的纹理坐标时,具体用于:根据目标边缘顶点序列在三维网格模型的分布,将目标边缘顶点序列投影至虚拟纹理块中具有指定轮廓的流形;确定目标边缘顶点序列在虚拟纹理块的投影的纹理坐标,为目标边缘顶点序列的纹理坐标。

可选地,处理器60b还用于:将目标边缘顶点序列正交投影至虚拟纹理块所在的拟合平面;并确定目标边缘顶点序列在拟合平面投影形成的轮廓,为指定轮廓的流形。

在一些实施例中,处理器60b在计算内部顶点集合的纹理坐标时,具体用于:根据目标边缘顶点序列和内部顶点集合在三维网格模型中的联结关系,确定目标边缘顶点序列联结的目标内部顶点;以目标内部顶点的纹理坐标为待求量,根据目标内部顶点与目标边缘顶点序列在三维网格模型中的三角几何关系,确定目标边缘顶点序列的纹理坐标对待求量的权重;根据对目标边缘顶点序列的纹理坐标对待求量的权重,对目标边缘顶点序列的纹理坐标进行加权求和;利用目标边缘顶点序列的纹理坐标进行加权求和的结果等于待求量,构建数学模型;对数学模型进行求解,以得到目标内部顶点的纹理坐标;根据目标内部顶点的纹理坐标,确定内部顶点集合的纹理坐标。

进一步,处理器60b在确定目标边缘顶点序列的纹理坐标对待求量的权重时,具体用于:针对目标边缘顶点序列中的第一边缘顶点,以目标内部顶点的纹理坐标为待求量,计算第一边缘顶点与目标内部顶点之间的距离;距离包含待求量;根据第一边缘顶点与目标内部顶点所在的第一边分别与目标内部顶点所在的第二边和第三边之间的夹角,以及,第一边缘顶点与目标内部顶点之间的距离,确定第一边缘顶点的纹理坐标对待求量的权重;第一边缘顶点的纹理坐标的权重包含待求量;其中,第二边和第三边分别为第一边缘顶点在目标变动顶点序列中的前后边缘顶点与目标内部顶点所在的边。

在一些实施例中,处理器60b在对空洞联通块进行纹理填充时,具体用于:以目标边缘顶点序列所在边缘的纹理为边界条件,采用泊松融合方式对空洞联通块进行向内纹理填充,至纹理填充至空洞联通块的内部顶点集合的纹理坐标。

在一些可选实施方式中,如图6所示,该计算设备还可以包括:通信组件60c、显示组件60d、电源组件60e及音频组件60f等可选组件。图6中仅示意性给出部分组件,并不意味着计算设备必须包含图6所示全部组件,也不意味着计算设备只能包括图6所示组件。

本实施例提供的计算设备,可根据三维网格模型中空洞联通块包含的边缘顶点序列中的边缘顶点序列在三维网格模型中的联结关系,确定边缘顶点序列中的边缘顶点联结的其它边缘顶点形成的环形序列;之后,根据环形序列中边缘顶点的顺序及边缘顶点序列在三维网格模型中的联结关系,对边缘顶点序列进行遍历时,可遍历到边缘顶点序列包含的所有边缘顶点,放宽了对于空洞边界排布形式的约束,可支持空洞联通块内多段边缘及内嵌纹理块的补洞,使得空洞纹理填充方式适应于各种复杂使用场景,有助于提高空洞纹理填充的普适性和纹理填充效果。

在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SOC)等等,但不限于此。

在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。

在本申请实施例中,显示组件可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示组件包括触摸面板,显示组件可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。

需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

技术分类

06120115920844