一种基于分布式的优化大尺度网格方法与流程

文档序号:16515862发布日期:2019-01-05 09:37阅读:257来源:国知局
一种基于分布式的优化大尺度网格方法与流程

本发明属于计算机虚拟现实领域,具体地说,一种基于分布式的优化大尺度网格方法。主要用于影视动画、虚拟现实及测绘等领域。



背景技术:

近年来,无人飞行器(无人机)逐渐受到人们的关注,无人机拍摄得到的航拍图像具有大尺度、广视角、高现势等优点,结合倾斜摄影技术,可以很容易的获得高质量、纹理丰富的室外静态大场景的图像。将无人机航拍图像与序列图像三维重建相结合,围绕室外场景三维重建问题开展相关研究具有重要的应用价值。该研究可以建立一个针对户外大型场景的高效、便捷,相对廉价的三维重建系统,将在地形测绘、城市数字化、建筑和军事等领域发挥重要的作用,并在未来有着非常广阔的应用前景。

目前已经有很多的科研人员对三维重建的各个步骤进行的大量的研究,最近vu等人采用光流一致性优化网格,还原网格的细节特征,但此方法所耗的内存过大,并且运行时间过慢,无法应用于大尺度的网格。为了更好的还原细节特征,目前已有相关文章采用了深度学习的方法,将网格看作体素,来学习网格的语义信息,辅助细节特征的还原,可是此方法所耗的内存和运行时间更大。目前还没有大尺度网格优化的相关文献报导。

因此,本发明针对分布式大尺度网格的优化工作极具研究意义和应用前景。



技术实现要素:

本发明的技术解决问题:克服现有技术的一些局限性,提供一种基于分布式的优化大尺度网格方法,能够优化10公里以上的场景网格,并且能够保证生成光滑并且拥有丰富细节的大尺度网格,能够应用于虚拟现实、测绘等领域。

本发明的技术解决方案:一种基于分布式的优化大尺度网格方法,以三维重建中网格重建后的初始网格和原始图像为输入,基于分布式的进行大尺度网格的优化,克服单个计算机内存和计算能力的限制。其特征在于如下步骤:

(1)输入三维重建中网格重建后的初始网格,根据所搭建集群的cpu核心数,将输入初始网格切分成多个网格块,然后分发给集群的每台机器上。

(2)在集群的每台机器上地简化和细化步骤(1)得到的网格块,但是不能移动网格边界的顶点。

(3)寻找步骤(2)得到的网格块之间的坐标相等的顶点,将坐标相等的顶点融合在一起,然后将融合后的网格进行整体的简化和细化,使步骤(2)固定的网格块边界处的边长度与融合后的网格的平均边长度相等。

(4)输入无人机航拍的图像集,利用多层k路分割算法,将无人机航拍的图像集均匀的分割成k个子图像集,其中子图像集的个数k等于集群的cpu核心数。

(5)利用图像颜色一致性和拉普拉斯光顺方法构造能量公式,根据步骤(4)得到的k个子图像集,在k个子图像集的每个子图像集中计算步骤(3)得到的网格顶点的梯度,分布式地最优化能量公式来得到光滑且拥有丰富细节特征的网格。

所述步骤(2)具体实现如下:

(1)计算步骤(1)输入的初始网格中每一个三角形投影到每张无人机航拍图像集上所覆盖的像素个数,选取步骤(1)输入的初始网格中每一个三角形覆盖无人机航拍图像集的最大像素个数作为此三角形的最大投影区域。

(2)将(1)所得的步骤(1)输入的初始网格的三角形的最大投影区域进行排序,选取排序后结果的中位数和最大值,将中位数除以最大值作为简化输入参数θ,即将拥有f个三角形的步骤(1)输入的初始网格简化成拥有θf个三角形的网格。简化方法采用的边折叠法,边折叠法需要计算网格的每一条边对应的权重,修改了传统方法的权重,在其中加入了一项形状因子t,使简化后的网格不出现狭长的三角形。

(3)将(2)得到的网格重新进行(1)的计算得到其每个三角形的最大投影区域,若三角形的最大投影区域大于64,将此三角形分割成多个三角形。

所述步骤(4)具体实现如下:首先,将无人机航拍图像集构建成一个graph,将无人机航拍图像集的每张图像作为graph的一个节点,无人机航拍图像集的匹配的图像对作为graph的一条边,以此构建一个graph,然后采用多层k路分割算法将graph切分成k个子图像集。

所述步骤(5)图像颜色一致性和拉普拉斯光顺方法构造能量公式具体如下:

其中是第k个子图像集的数据项,λ≥0是数据项和光顺项的权重,esmoothness是光顺项。所述λ取值为1。

相比现有技术,本发明的优势在于:

(1)输入三维重建中网格重建后的初始网格,根据所搭建集群的cpu核心数,将网格分成相等的网格块,然后分发给集群的每台机器上。

(2)为了使网格的每条边长度尽量相等,并且网格中三角形投影到图像上的最大区域不能太大,在集群每台机器上地在固定边界约束的基础上简化和细化步骤(1)得到的网格块。

(3)寻找网格块之间的重合顶点,将重合的顶点融合在一起,然后将融合后的网格进行整体的简化和细化,使步骤(2)固定的网格块边界处的边长度与融合后的网格的平均边长度相等。

(4)输入无人机航拍的图像集,利用多层k路分割算法,将无人机航拍的图像集均匀的分割成k个子图像集,其中子图像集的个数k等于集群的cpu核心数。

(5)为了去除初始网格的噪声和还原网格的细节特征,我们利用图像颜色一致性和拉普拉斯光顺方法构造能量公式,根据步骤(4)得到的k个子图像集,在k个子图像集的每个子图像集中计算步骤(3)得到的网格顶点的梯度,分布式地最优化能量公式来得到光滑且拥有丰富细节特征的网格。

相比现有技术,本发明的优点在于:

(1)本发明将输入的初始网格自动化的分成多个网格化,以充分的利用集群每台机器的运算能力,与传统的方法比,大大加快了网格简化和细化的运行速度。

(2)本发明采用多层k路分割算法将无人机航拍图像切分成k个子图像集并在集群的每台机器上输入不同的子图像集分布式的还原网格特征以此解决了单台机器内存无法加载所有无人机航拍图像集的限制,并且加快了网格特征还原的运行速度。

附图说明

图1为本发明方法的数据流程图;其中左图是输入的初始网格,中图是网格简化和细化后的网格,右图是优化后的网格;

图2为本发明方法的分割图像集方法的示意图;其中箭头左边是无人机航拍图像集的graph,箭头右边是切分后的子图像集;

图3为本发明方法的结果展示图,左上图和右上图是无人机航拍图像,左下图和右下图是与航拍图像对应的网格。中图是优化后的大尺度网格。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细说明。

本发明公开了一种基于分布式的优化大尺度网格方法,分布式地优化三维重建中网格重建后的初始网格。其步骤包括:(1)网格分块,根据所搭建集群的cpu核心数,将网格重建后的初始网格切分成多个网格块发给集群的每台机器上;(2)网格的分布式简化与细化,在集群每台机器上加入边界约束分布式地简化和细化步骤(1)得到的网格块,使网格的每条边尽量均匀;(3)网格块的合成。将每台机器上经过步骤(2)处理的网格块发给集群的master上面,然后进行融合,再进行一次整体的简化和细化,得到一个均匀并且没有冗余顶点的网格;(4)利用多层k路分割算法,将无人机航拍图像集分割成k个子图像集。(5)利用步骤(4)得到的图像集,基于图像颜色一致性和拉普拉斯光顺方法分布式地优化大尺度网格。本发明能够从输入的包含噪声的初始网格生成一个光滑且拥有丰富细节特征的网格。

本发明方法的主要流程图如图1所示,具体步骤如下:

(1)基于分布式的大尺度网格简化和细化

首先,计算输入的初始网格中每一个三角形投影到每张无人机航拍图像集上所覆盖的像素个数,选取步骤(1)输入的初始网格中每一个三角形覆盖无人机航拍图像集的最大像素个数作为此三角形的最大投影区域。将输入的初始网格的三角形的最大投影区域进行排序,选取排序后结果的中位数和最大值,将中位数除以最大值作为简化输入参数θ,即将拥有f个三角形的初始网格简化成拥有θ*f个三角形的网格。

然后,将输入的初始网格切分成多个网格块,然后在集群上对每一个网格块进行简化和细化,对于不同的集群,每个worker节点具有不同的机器配置。为了充分的利用集群资源,将根据集群每个节点的配置,来自定义每个网格块的大小。

假设spark集群拥有n个节点,且每个节点的cpu核数和内存分别为{(a1:b1),(a2:b2),…,(an:bn)},cpu总核数为a,总内存为b。

设网格数据大小为s,单位为kb,其中

若p≤β,则把网格切分成x=a个网格块。(分配方法见下节)

若p>β,

则把网格切分成x个网格块。

网格切分的方法:设首先找出网格的体积最小的包围盒,沿包围盒底面最大平面横向纵向切成u2个网格块。

将切分后的多个网格块发送到集群的每台机器上,然后对每个网格块运用网格简化方法,目前使用最广泛的网格简化方法是边折叠法,它不仅可以延续原有的拓扑结构,而且几何误差较小,简化速度较快。但是其简化后的网格质量不好。所以在边折叠法中每条边的权重添加形状因子t,设三角形最长、最短、中间的三条边长分别为el,es,em同时为了使形状因子在0到1之间,形状因子定义为:

很明显当t=1,的时候,对应的三角形为等边三角形;当t≈0的时候出现了狭长三角形,所以可以优先折叠狭长三角形的边,以此来保持简化后的网格质量

网格细化计算得到其每个三角形的最大投影区域,若三角形的最大投影区域大于64个像素,将此三角形分割成多个三角形。以此达到细化的目的,生成一个三角形边长相差不大的网格。接着将简化和细化后的网格块发送回集群的master节点上进行网格融合,寻找网格块之间的重合顶点,将重合的顶点融合在一起,然后将融合后的网格进行整体的简化和细化,使固定的网格块边界处的边长度与融合后的网格的平均边长度相等。

(2)基于多层k路分割算法的图像集分割

由于本发明针对是10公里以上的大场景重建的网格优化,所以所有的无人机航拍图像集不可能放在一台机器里面进行处理,这里将无人机航拍图像集进行切分。首先,假设每张图像作为graph的一个节点,匹配的图像对作为graph的一条边,以此构建了一个基于无人机航拍图像的graph。定义是在第k块的第k张图像,ηk为第k块的子图像集:

很明显,要尽可能减少的差距,但此问题是np难的问题。不可能直接求解。所以采用近似方法,利用多层k路图割方法,将graph切分成k个子图像集,其中,子图像集的个数k等于集群的cpu核心数,并且重复包含的图像数据尽可能少。分割具体细节如图2。

(3)基于分布式的大尺度网格特征还原方法

为了生成具有丰富细节特征的网格。需要将网格进行进一步优化,还原出网格的细节特征。定义网格曲面为s,顶点集合为v,面片集合为f。在进行这一步操作前,首先假设在特征还原期间的网格拓扑结构并不会改变,并且每张图像的参数是独立的,以便于进行局部的网格特征还原。

为了去除初始网格的噪声和还原网格的细节特征,可以利用图像颜色一致性和拉普拉斯光顺方法构造一个能量公式,能量公式由数据项和光顺项组成:

其中是第k个子图像集的数据项,λ≥0是数据项和光顺项的权重,λ通常取值为1,esmoothness是光顺项。根据上面的方程会构造一个与网格顶点对应的梯度向量用来最小化这个能量方程,下面针对每一项进行介绍。

数据项是根据图像颜色一致性构造的,目的就是要使图像对之间的图像重投影误差尽可能小,所以这个数据项如下:

其中是将图像ij通过网格重投影到图像ii上,pi和pi-1分别是将图像i投影和反投影到网格上的操作。是一个图像ii和图像在像素xi上的关于颜色一致性的递减函数。是将图像ij重投影到ii的区域。

光顺项主要是为了消除网格中的噪声,使网格的表面光滑。而光顺的方法很多,主要是为了最小化如下的能量函数:

其中k1和k2是网格曲面在同一个顶点的主曲率。光顺项衡量了整个网格的曲率使之光滑。这是个经典问题。将采用一阶和二阶的伞算子进行优化。

本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

以上所述仅为本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应该视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1