一种适用于三维重建的网格纹理化简算法的制作方法

文档序号:32350801发布日期:2022-11-26 13:00阅读:174来源:国知局
一种适用于三维重建的网格纹理化简算法的制作方法

1.本发明涉及网格纹理化简技术领域,尤其涉及一种适用于三维重建的网格纹理化简算法。


背景技术:

2.近年来,倾斜三维重建技术克服了传统航空摄影只能从垂直角度拍摄的局限,以多角度、高分辨率获取图像,并以大规模、自动化、集群并行计算的方式快速实现三维模型的重建,因此成为了主流的建模手段。然而,随着重建区域的增大以及建模精度的不断提高,激化了快速增长的三维模型数据量与有限的传输带宽、流畅的模型渲染之间的矛盾。网格化简是一种有效的解决途径。
3.网格化简技术将高分辨率、精准的原始三维模型转化为较粗略的近似网格模型。目前,国内外学者在这一领域取得卓有成效的进展,算法大致可分为两类:几何驱动的化简算法和外观属性驱动的化简算法。常见的几何驱动的化简算法有基于顶点聚类的算法、基于顶点抽取的算法、基于边折叠算法。该类算法只靠成本度量中的几何体,力求在减少顶点的前提下保证几何保真度,而忽略了颜色和纹理等外观属性,当面对带有纹理等外观属性的三维模型时,化简效果并不理想。而外观属性驱动的化简算法不仅考虑了几何,还考虑了外观属性尤其是纹理,以更好地保证化简后的外观。其中,garland和heckbert通过将外观属性合并到二次误差度量(qem)中扩展他们原来的算法;sporysz等人对纹理贴图进行canny边缘检测,同时考虑简化区域面积与三维网格总面积的比值,有效保留网格中边缘信息;she等人根据拓扑和外观对曲面网格进行分割,并推导出一种考虑了几何和纹理的误差度量,最大限度降低了纹理失真度。然而,上述方法仅将模型化简作为三维重建的后处理步骤,均未考虑与三维重建流程紧密结合;并且使用上述方法进行化简处理后的模型在纹理方面存在一定程度的失真问题,且纹理均未做化简处理导致模型数据量依然很大。
4.外观属性驱动的化简算法同时将几何与外观属性尤其是纹理考虑进化简过程,以便更好地保持化简后模型的外观。大多数算法使用迭代边折叠来简化网格,并确定每个替换顶点的纹理坐标,以降低纹理失真程度。garland和heckbert通过将属性合并到二次误差度量(qem)中扩展他们原来的算法。cohen等人通过引入纹理偏差度量并基于该度量局部查找新顶点的纹理坐标,进一步改进了他们的工作。williams等人基于感知模型,考虑纹理偏差、照明对比度、动态照明等因素,对边缘降维进行优先排序。另外一些算法在网格化简过程中引用纹理图像或渲染图像。lindstrom和turk提出了一种图像驱动的简化方法,从多个视点比较简化前、后模型的渲染图像,并计算图像像素的均方根误差(rmse),然后根据rmse对边折叠操作进行排序;qu和meyer分析了表面信号的感知特性(例如纹理、颜色、光线),并使用结果计算模型每个顶点的重要性值并将其整合到qem中,以指导简化过程。另外,pascual等人和gonz
á
lez等人提出了基于视点熵和互信息的简化算法,也可以减少简化模型的纹理扭曲。
5.在带有纹理的模型简化中,还提出了其他外观保持策略。garc
í
a和patow提出了一
种称为逆几何纹理(igt)的纹理技术,该技术为简化模型中的所有顶点定义纹理坐标,以保留高分辨率参考模型中的纹理细节。chen和chuang以及coll和paradinas对纹理图像进行了修改,以最大限度地减少每个边缘降维造成的纹理失真。值得注意的是,garc
í
a和patow、chen和chuang以及coll和paradinas的方法并不适用于嵌入式lod构建,因为在迭代简化过程中,继承顶点的纹理坐标或纹理图像内容不断变化。
6.在缓解简化模型的纹理扭曲和变形方面,现有研究中最新且较为有效的方法源自she(she j,gu x,tan j,et al.an appearance reserving simplification method for complex 3d building models[j].transactions in gis,2019,23),其提出了一种新的复杂三维建筑模型简化方法,在几何保真度和纹理保持之间实现了良好的平衡。该方法的基本原理如下:
[0007]
步骤1:网格分割。基于广度优先搜索(bfs),依据网格中的几何相似性和纹理特征,将曲面网格分割为多个区域。基于分割结果,为模型的每一条边分配一个权重,以便在同一区域内进行更多的简化操作;
[0008]
步骤2:代价计算和半边折叠。遍历该网格以计算所有边的初始成本,并选择成本最小的边作为半边折叠简化的起点,简化中充分考虑了模型中的纹理信息。
[0009]
步骤3:纹理坐标更新。调整纹理坐标并更新相邻边的成本。当简化率超过用户指定的阈值(简化率定义为删除的三角形数除以原始模型中的三角形数)时,该方法终止。
[0010]
现有算法在网格化简方面已经很成熟,但在纹理化简方面只考虑了化简后网格对应的纹理坐标的计算和更新,这只能在一定程度上缓解纹理扭曲和变形,并未完全解决该问题;其次,算法未对纹理内容进行化简,导致化简后模型的数据量依然很大。以下对两个方面进行详细说明:
[0011]
(1)化简后网格纹理扭曲和变形方面:
[0012]
由于化简算法是按照一定的合并规则(如二次度量公式)对三维空间邻接关系的面片进行网格顶点删除、边折叠和面合并等操作。但囿于这些被合并的面片对应的纹理斑块在二维纹理空间不一定是连续的,这种离散分布现象导致了不能正确计算合并新生成三角面片的纹理坐标,以下结合图1和图2进行说明:
[0013]
根据现有算法(she),将原始网格m
i-1
合并为化简网格mi,在合并过程中顾及了模型纹理扭曲和变形的问题:算法步骤2中构建的误差度量公式倾向于合并连续的纹理斑块,如图2(c)中的t
′1、t
′5;对于离散分布的纹理斑块,如图2(c)的t
′2、t
′3、t
′4,算法将收集折叠前、后多个线段组,线段对之间并没有交点,则纹理误差公式计算失败,因此不能处理该类情况,算法存在一定的局限性。
[0014]
同时,现有算法步骤3中调整纹理坐标时,根据化简前、后网格顶点建立的纹理坐标映射表,查找纹理空间最近的纹理坐标值进行近似代替,如图1(b)中面片t3所属的顶点v2对应的纹理坐标tex2则用图1(a)中面片t5所属的顶点v2对应的纹理坐标tex2替代,注意这里的两个tex2在纹理空间很有可能不是同一个坐标,因此,图1(b)中面片t3的纹理图斑很有可能会出现扭曲或变形。
[0015]
图2(a)m
i-1
是3d空间中的原始网格,t1~t5是5个相邻的面片;图2(b)mi是半边折叠(v1,v2)

v2后的简化网格;图2(c)i代表2d纹理空间,t
′1~t
′5是t1~t5在纹理空间对应的图斑,v

1-0
~v

1-3
,v

2-0
~v

2-1
分别是v1和v2在i中的对应点。
[0016]
(2)纹理内容化简方面:
[0017]
由于现有算法直接将原有纹理作为化简后网格的纹理,仅对相关顶点的纹理坐标做了调整和更新。一般情况下,在由网格和纹理构成的三维模型中,纹理占整个模型数据量的比重较大。因此,化简后模型的数据量仍然很大。


技术实现要素:

[0018]
本发明的目的在于提供一种适用于三维重建的网格纹理化简算法,从而解决现有技术中存在的前述问题。
[0019]
为了实现上述目的,本发明采用的技术方案如下:
[0020]
一种适用于三维重建的网格纹理化简算法,包括如下步骤,
[0021]
s1、参考三维模型场景的构建;
[0022]
利用三维重建中恢复的场景结构以及已校准图像,对原始精细的三维网格执行纹理贴图,以完成参考三维模型场景的重建;
[0023]
s2、参考三维模型场景的图像采集;
[0024]
依据参考三维模型场景与视图内参、外参之间的三维空间相对姿态关系,利用反反投影原理逐视图逐像素进行三维网格到二维图像的栅格化计算,完成参考图像集的采集;
[0025]
s3、网格和纹理化简;
[0026]
利用qem算法对网格进行化简,以参考图像集作为数据源并利用纹理重建算法进行纹理的重映射和化简。
[0027]
优选的,步骤s1具体包括如下内容,
[0028]
s11、基于多视图像的网格面片进行最佳视图选择;
[0029]
以graph cuts和alpha expansion最小化视图的能量函数,求得网格中每个面片的最佳视图;并创建纹理斑块,将空间相邻且具有相同最佳视图的面片存入同一纹理斑块;
[0030][0031]
texturepatch=({trij...trin},li)
ꢀꢀꢀꢀ
(2)
[0032]
其中,e(l)为视图l的能量函数;e
data
为数据项,grad
ij
为三角网格fi在标记图像li下的soble梯度积分,表示节点fi选择某个标签图像li的概率大小;e
smooth
为平滑项,表示邻接节点fi和fj选择相同标签图像时,平滑项的值为0,否则为无穷大;texturepatch为某一纹理斑块,trij为属于当前纹理斑块的一个面片,li为当前纹理斑块对应的最佳视图;fi为面片;faces为面片集合;fj为与fi相邻的面片;li和lj为图像,i和j为编号;
[0033]
s12、纹理块接缝处的颜色调整;
[0034]
采用全局颜色调整和泊松编辑局部颜色调整对相邻面片接缝处进行颜色调整;
[0035]
s13、纹理空间布局及纹理坐标计算;
[0036]
依据视图的投影矩阵将纹理斑块中存储的面片顶点坐标逐一反投影到视图图像空间并计算纹理斑块对应的包围盒,利用二维盒子打包算法进行纹理空间布局并计算出每
个包围盒的偏移值;计算每个面片的纹理坐标值,并提取像素数据,生成参考三维模型场景的纹理。
[0037]
优选的,步骤s2具体包括如下步骤,
[0038]
s21、根据已恢复场景中视图的内参、外参和图像分辨率构建视图l的投影矩阵,如公式3,将世界坐标系下的三维点变换到视图图像坐标系下的像素;然后,对参考三维模型场景建立八叉树索引,便于快速搜索视图l的可见面片;
[0039][0040]
其中,m1为内参矩阵,m2为外参矩阵;x、y分别为视图图像坐标系下x轴坐标值和y轴坐标值;zc为相机坐标系z轴坐标值;f为相机焦距;μ0、v0分别为中心像素坐标;rc为3
×
3旋转矩阵,即相机坐标系相对于世界坐标系的旋转;tc为3
×
1的平移向量,即相机坐标系相对于世界坐标系的偏移;o1×3为1
×
3的零向量;xw、yw、zw分别为世界坐标系下在x轴、y轴和z轴的分量;
[0041]
s22、结合视图l的相机投影矩阵,分别创建一张与视图图像相同分辨率re(width,height)的深度图l
depth
和参考图像l
ref
,深度图l
depth
位于视图l的相机坐标系下,且深度值初始化为0;
[0042]
其中,width和height分别为视图图像的原始宽、高;
[0043]
s23、遍历视图l的可见面片,利用相机投影矩阵将面片ti从三维空间投影到二维参考图像l
ref
并栅格化为三角形t
′i;
[0044]
s24、统计t
′i的占用像素,并逐像素从参考三维模型场景的纹理抽取颜色值构造参考图像l
ref
的数据内容;
[0045]
s25、重复步骤s21-s24遍历所有视图,直至完成参考图像集ir={imageref0......imagerefi}的采集任务。
[0046]
优选的,步骤s24具体包括如下内容,
[0047]
s241、面片ti中的像素点p在三维空间和纹理空间的映射分别为p

和p


[0048]
s242、计算点p

对应的深度值d(x,y)并与深度图l
depth
中的深度值d
depth
(x,y)比较,若d(x,y)小于d
depth
(x,y),则将d(x,y)存储到深度图中;
[0049]
s243、利用三角形t
′i中像素p

(x,y)与面片ti、面片ti与三角形t
″i之间的反投影以及面片三个顶点纹理坐标{p
″1(x,y),p
″2(x,y),p
″3(x,y)}之间的线性关系计算出纹理坐标p

(x,y);计算公式为,
[0050][0051]
其中,反投影即为公式3的逆过程;x、y分别为p

在视图图像坐标系下x轴坐标值和
y轴坐标值;x、y分别为p

在视图图像坐标系下x轴坐标值和y轴坐标值;t
″i为面片ti在图像空间的投影映射;
[0052]
s244、根据纹理坐标p

(x,y)提取像素颜色值填充到参考图像l
ref
中的p

(x,y)像素坐标处。
[0053]
优选的,步骤s3具体包括如下内容,
[0054]
s31、根据实际需求确定qem算法中化简参数α,α∈(0.0,1.0],利用qem算法对原始精细的三维网格进行顶点的删除、合并,边的折叠及面片的删除、合并操作;
[0055]
s32、确定纹理化简参数,即参考图像的分辨率采样等级β;
[0056]
s33、根据参考图像的分辨率采样等级β,确定纹理重建算法中涉及的内参矩阵m
s1
、外参矩阵m
s2
和参考图像分辨率res;利用res对参考图像集进行采样得到新的参考图像集irs={imageref
0s
......imageref
is
};
[0057]ms1
=m1/(β
×
max(width,height))
[0058]ms2
=m2[0059]
res=re(width,height)/β
ꢀꢀꢀꢀ
(5)
[0060]
s34、将上述计算好的参数、图像数据以及化简网格作为输入,按照步骤s2节中的纹理重建步骤对化简网格进行纹理贴图。
[0061]
优选的,步骤s32中,参考图像的分辨率采样等级β能够根据需求进行自定义,或者利用化简参数α计算获取,计算公式为,
[0062]
β=ceil(1/α)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)。
[0063]
本发明的有益效果是:1、仅网格化简情况下,本发明算法基本上不存在纹理扭曲和变形的情况,且具有鲁棒性。2、本发明算法可支持网格与纹理一起化简,不同纹理化简参数下,纹理几乎没有失真且能显著降低纹理数据量。
附图说明
[0064]
图1是现有化简算法中步骤3的化简示意图;
[0065]
图2是现有化简算法中步骤2的化简示意图;
[0066]
图3是本发明实施例中网格纹理化简算法的原理流程图;
[0067]
图4是本发明实施例中带有边框的纹理块示意图;
[0068]
图5是本发明实施例中三维模型及其场景结构示意图;
[0069]
图6是本发明实施例中原始网格面片的最佳视图id;
[0070]
图7是本发明实施例中简化网格面片的最佳视图id;
[0071]
图8是本发明实施例中同一区域不同时间采集的图像;
[0072]
图9是本发明实施例中三维网格、视图、纹理三者转换关系示意图;
[0073]
图10是本发明实施例中实验数据示意图;
[0074]
图11是本发明实施例中建筑物区域模型的纹理质量对比示意图;
[0075]
图12是本发明实施例中工厂区域模型的纹理质量对比示意图;
[0076]
图13是本发明实施例中建筑物区域模型的纹理质量对比示意图;
[0077]
图14是本发明实施例中四类不同区域三维模型示意图;
[0078]
图15是本发明实施例中数据量统计柱状图。
具体实施方式
[0079]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
[0080]
实施例一
[0081]
如图3所示,本实施例中提供了一种适用于三维重建的网格纹理化简算法,包括如下步骤,
[0082]
s1、参考三维模型场景的构建;
[0083]
利用三维重建中恢复的场景结构以及已校准图像,对原始精细的三维网格执行纹理贴图,以完成参考三维模型场景的重建;
[0084]
s2、参考三维模型场景的图像采集;
[0085]
依据参考三维模型场景与视图内参、外参之间的三维空间相对姿态关系,利用反反投影原理逐视图逐像素进行三维网格到二维图像的栅格化计算,完成参考图像集的采集;
[0086]
s3、网格和纹理化简;
[0087]
利用qem算法对网格进行化简,以参考图像集作为数据源并利用纹理重建算法进行纹理的重映射和化简。
[0088]
下面分别对上述三部分内容进行说明:
[0089]
一、参考三维模型场景的构建
[0090]
采用如下步骤的纹理重建方法,对原始精细的三维网格进行纹理贴图,完成参考三维模型场景的重建。具体步骤为,
[0091]
1、基于多视图像的网格面片进行最佳视图选择
[0092]
该步骤实质是为每个面片计算一个标签用于记录面片嘴和进行纹理映射的图像编号。
[0093]
以graph cuts和alpha expansion最小化视图的能量函数,求得网格中每个面片的最佳视图,并创建纹理斑块,将空间相邻且具有相同最佳视图的面片存入同一纹理斑块;
[0094]
texturepatch=({trij...trin},li)
ꢀꢀ
(2)
[0095]
其中,texturepatch为某一纹理斑块,trij为属于当前纹理斑块的一个面片,li为当前纹理斑块对应的最佳视图。
[0096]
在能量函数的数据项e
data
中采用soble梯度积分来解决图像散焦的问题,在能量函数的平滑项e
smooth
中采用potts模型来平滑邻域三角网的视图选择;
[0097][0098]
其中,e(l)为视图l的能量函数;e
data
为数据项,grad
ij
为三角网格fi在标记图像li下的soble梯度积分,表示节点fi选择某个标签图像li的概率大小;e
smooth
为平滑项,表示邻接节点fi和fj选择相同标签图像时,平滑项的值为0,否则为无穷大;fi为面片;faces为面片集合;fj为与fi相邻的面片;lj为图像;i、j为编号。
[0099]edata
作为数据项,考虑了面片fi投影到的视图梯度幅度图中所有像素求和与图像一致性检测两个方面。其中,面片fi投影梯度幅度像素之和的公式为:梯度幅度为图像一致性检测主要是使用改进的均值偏移算法(modified mean-shift algorithm)试图删除包含诸如行人之类的遮挡物的图像;其中,为图像li的梯度。
[0100]esmooth
作为平滑项,是指缝隙左右两侧的纹理在接缝处的差异,根据potts模型提出一个平滑项:e
smooth
=[li≠lj]。这也更倾向于使用紧凑的块,而不会倾向于选择距离较远的视图,并且计算速度非常快。
[0101]
2、纹理块接缝处的颜色调整
[0102]
选择面片的最佳视图后,相邻面片可能会选择不同的视图作为纹理的来源。由于图像采集时的拍摄角度、光照、遮挡等客观因素,导致相邻面片接缝处附近的像素存在差异,因此需要调整相邻面片之间的颜色。颜色调整包括全局颜色调整和泊松编辑局部颜色调整两部分。
[0103]
(1)全局颜色调整:主要是通过查找顶点投影处以及沿着所有相邻的接缝边缘查找不一致的颜色值;在全局视角下为每个顶点的颜色值计算一个累加校正。其公式以矩阵的形式表示为:的形式表示为:该公式中f是一个接缝左、右两侧的叠加向量;a和γ是包含
±
1项的稀疏矩阵,g为顶点计算一个累加校正。
[0104]
在全局调整之后,算法仍不能消除所有可见的接缝处颜色差异。因此,还需要执行局部泊松图像编辑,算法中设置了一个20像素宽的边框条,该条带的外边缘(图4,外圈浅色线)和内边缘(图4,内圈深色线)作为泊松方程的边界条件:将分配给补丁的图像以及邻居补丁的图像的像素颜色均值设置为每个外边缘像素颜色值的固定值。每个内边缘像素的值都固定为其当前颜色。如果补丁太小,内边缘将被省略。
[0105]
s13、纹理空间布局及纹理坐标计算;
[0106]
颜色调整后,依据视图的投影矩阵将纹理斑块中存储的面片顶点坐标逐一反投影到视图图像空间并计算纹理斑块对应的包围盒;然后,利用二维盒子打包算法进行纹理空间布局并计算出每个包围盒的偏移值;最后,计算每个面片的纹理坐标值,并提取像素数据,生成参考三维模型场景的纹理。二维盒子打包算法为改进的二维装箱逼近算法。
[0107]
二、参考三维模型场景的图像采集
[0108]
为方便描述本发明方法,做出如下规定:借助已恢复的视图位姿(如图5中浅色三角线框表示的相机视锥体)对参考三维模型场景进行“拍照”生成的图像集称为参考图像集ir={imageref0......imagerefi};无人机、移动终端等设备对真实客观世界进行“拍照”生成的图像集称为真实图像集i={image0......imagei}。
[0109]
若直接使用真实图像集作为第三步中化简网格纹理重建的数据源,会导致原始网格与简化网格的纹理像素内容不一致。具体原因如下:
[0110]
(1)同一空间范围内原始网格与化简网格的面片具有不同的形状和大小,导致纹理重建第一阶段中原始网格与化简网格会以不同视图作为面片的最佳视图,如图6、图7和图8所示。其中,图6(a)和图7(a)都为整体图,图6(b)和图7(b)为相应整体图的局部放大图。
图6和图7中虚线框表示同一空间范围,纹理重建算法将每个面片转换为graph的一个节点并以面片的可见性、梯度幅度、图像一致性检测、运动物体剔除等因素构成能量函数,然后对graph进行全局图割方法获得面片的最佳视图,即图6(b)中原始网格的最佳视图id有48、87、115、88,而图7(b)中化简网格的最佳视图id仅有41。
[0111]
(2)无人机或移动终端等设备采集数据时受到时间维度的影响,同一区域不同时刻采集的图像会包含不同的车辆、行人、动态阴影、路面干湿变化等信息,如图8所述(图8(a)中路面有行驶的汽车,没有水,图8(b)中路面无行驶的汽车,有水)。因此,同一面片从不同图像中提取的像素内容可能不同。
[0112]
综合以上两个方面,根据原因(1)分析得出红色框内原始、化简网格会以不同视图作为面片的最佳视图,根据原因(2)可知因同一空间范围不同时刻采集的图像像素内容不同,面片从不同图像中提取的像素内容也不同。因此,造成了纹理在像素内容方面的不一致问题。
[0113]
为避免出现原始、简化网格的纹理存在像素内容不一致的问题,算法借助已恢复场景中的相机内参、视图外参以及校准的图像等信息,从参考三维模型场景的纹理中抽取像素用于生成参考图像集。具体步骤如下:
[0114]
1、根据已恢复场景中视图的内参、外参和图像分辨率构建视图l的投影矩阵,如公式3,将世界坐标系下的三维点变换到视图图像坐标系下的像素;然后,对参考三维模型场景建立八叉树索引,便于快速搜索视图l的可见面片;
[0115][0116]
其中,m1为内参矩阵,m2为外参矩阵;x、y分别为视图图像坐标系下x轴坐标值和y轴坐标值;zc为相机坐标系z轴坐标值;f为相机焦距;μ0、v0分别为中心像素坐标;rc为3
×
3旋转矩阵,即相机坐标系相对于世界坐标系的旋转;tc为3
×
1的平移向量,即相机坐标系相对于世界坐标系的偏移;o1×3为1
×
3的零向量;xw、yw、zw分别为世界坐标系下在x轴、y轴和z轴的分量。
[0117]
2、结合视图l的相机投影矩阵,分别创建一张与视图图像相同分辨率re(width,height)的深度图l
depth
和参考图像l
ref
,深度图l
depth
位于视图l的相机坐标系下,且深度值初始化为0;
[0118]
3、遍历视图l的可见面片,利用相机投影矩阵将面片ti从三维空间投影到二维参考图像l
ref
并栅格化为三角形t
′i;
[0119]
4、统计t
′i的占用像素,并逐像素从参考三维模型场景的纹理抽取颜色值构造参考图像l
ref
的数据内容;
[0120]
以图9(图9(a)为整体图,该图中下方为网格,左上为纹理,右上为视图参考图像;图9(b)为三个空间关系放大图)中像素p为例进行说明,其中p

和p

分别是面片ti中的像素点p在三维空间和纹理空间的映射。首先,计算点p

对应的深度值d(x,y)并与深度图l
depth
中的深度值d
depth
(x,y)比较;若d(x,y)小于d
depth
(x,y),则将d(x,y)存储到深度图中;然后,利用t
′i中像素p

(x,y)与ti、ti与t
″i之间的反投影(公式(3)的逆过程)以及面片三个顶点纹
理坐标{p
″1(x,y),p
″2(x,y),p
″3(x,y)}之间的线性关系计算出纹理坐标p

(x,y),公式为(4);最后,根据纹理坐标p

(x,y)提取像素颜色值(一般为rgb)填充到参考图像l
ref
中的p

(x,y)像素坐标处;其中,x、y分别为p

在视图图像坐标系下x轴坐标值和y轴坐标值;x、y分别为p

在视图图像坐标系下x轴坐标值和y轴坐标值;t
″i为面片ti在图像空间的投影映射。
[0121][0122]
5、重复步骤s21-s24遍历所有视图,直至完成参考图像集的采集任务。
[0123]
三、网格和纹理化简
[0124]
三维模型的化简分为网格化简和纹理化简两个方面。本发明采用qem算法;而纹理化简目前还存在纹理扭曲和变形问题且纹理未化简导致模型数据量仍然很大,本发明提出的方法能有效解决上述问题。具体步骤为,
[0125]
1、根据实际需求确定qem算法中化简参数α,α∈(0.0,1.0],利用qem算法对原始精细的三维网格进行顶点的删除、合并,边的折叠及面片的删除、合并等操作;
[0126]
2、确定纹理化简参数,即参考图像的分辨率采样等级β;
[0127]
β值可以自主确定,也可以根据网格化简参数α估算,本发明建议的计算公式为β=ceil(1/α)。理论上β值的范围为β∈[1.0,+∞),但在实际应用中图像的分辨率等级为无穷大没有意义,因此,常用的范围限制设定为β∈[1.0,20)。另外,β的计算公式也可以自定义。
[0128]
3、根据参考图像的分辨率采样等级β,确定纹理重建算法中涉及的内参矩阵m
s1
、外参矩阵m
s2
和参考图像分辨率res;利用res对参考图像集进行采样得到新的参考图像集irs={imageref
0s
......imageref
is
};
[0129]ms1
=m1/(β
×
max(width,height))
[0130]ms2
=m2[0131]
res=re(width,height)/β
ꢀꢀ
(5)
[0132]
4、将上述计算好的参数、图像数据以及化简网格作为输入,按照步骤s2节中的纹理重建步骤对化简网格进行纹理贴图。
[0133]
实施例二
[0134]
本实施例中,依托中国测绘科学研究院研制的ims自动化三维重建软件,嵌入本发明适用于三维重建的网格纹理化简算法,以滕州市某镇驻地倾斜摄影重建的三维网格模型为例进行效果验证。
[0135]
一、实验数据
[0136]
实验数据的详细参数如表1所示,重建范围如图10所示,涵盖了三维模型的主要类型:建筑、植被、道路等,对实验验证具有普遍意义。实验运行环境为一台工作站,windows 10 64-bit操作系统,lntel core(tm)i9-10900x cpu(主频为3.70ghz),128gb内存。
[0137]
表1倾斜影像三维网格数据描述
[0138][0139]
二、纹理质量对比分析
[0140]
在网格化简方面,本发明算法与传统算法相同,均以qem算法为基础,对网格的三角面片做折叠合并操作。在纹理化简方面,传统算法仅重新计算纹理坐标,导致纹理存在一定程度的扭曲和变形等质量问题,而本发明算法能有效避免纹理扭曲和变形。将本发明算法与传统算法(she j,gu x,tan j,et al.an appearance reserving simplification method for complex 3d building models[j].transactions in gis,2019,23)在同一环境下设计对比实验。
[0141]
实验挑选两类结构复杂且纹理丰富的不同情境(建筑物区域和工厂区域)的三维模型,建筑物区域包含建筑立面、窗户和附着物等主要要素,工厂区域包含油罐、路面交通标志、管道等主要要素。
[0142]
1、网格化简参数α对纹理质量的影响
[0143]
对两组三维模型仅进行网格化简,不做纹理化简,即β=1.00。将原始网格(即α=1.00,β=1.00)作为真值,分别不同的网格化简参数α=0.50,0.25,0.125时,比较本发明算法与传统算法的纹理扭曲及变形程度。建筑物区域和工厂区域的实验对比结果分别如图11、12所示。
[0144]
网格化简参数不同时的实验对比分析:从图11(a)(c)(e)(g)可以看出,传统算法的网格化简参数越小,纹理的扭曲及变形程度越大。在化简参数较大时,纹理扭曲及变形程度较小,但随着网格化简参数的减小,纹理扭曲及变形十分明显,这种现象在工厂区域的油罐、路面交通标志和管线处尤为明显,如图12(c)(e)(g)所示。这是因为随着网格化简参数的减少,那些被折叠合并的面片对应的纹理斑块在二维纹理空间连续的可能性越小,这种离散分布现象导致了不能正确计算合并新生成的三角面片的纹理坐标,因此纹理扭曲和变形程度愈加严重;而从图11(a)(b)(d)(f)可以看出,本发明算法在不同的网格化简参数下,建筑物区域和工厂区域的纹理均没有扭曲及变形,接近原始网格。
[0145]
网格化简参数相同时的实验对比分析:对比图11(b)和(c)、图11(d)和(e)、图11(f)和(g)、图12(b)和(c)、图12(d)和(e)、图12(f)和(g)等六组网格化简参数相同时的实验结果,可以看出本发明算法与传统算法的三角面片数相等,本发明算法的纹理扭曲及变形程度均小于传统算法,验证了本发明算法在纹理质量方面的优越性。此外,本发明算法在两类模型的建筑立面、附着物、路面交通标志、管线以及油罐等区域均无扭曲和变形,能适用于包含不同要素的模型,具有较强的普适性。
[0146]
图11中,(a)原始网格(真值):α=1.0,β=1.0,面片数=109304;(b)本发明算法:α=0.50,β=1.0,面片数=54651;(c)传统算法:α=0.50,β=1.0,面片数=54651;(d)本发明算法:α=0.25,β=1.0,面片数=27326;(e)传统算法:α=0.25,β=1.0,面片数=27326;(f)本发明算法:α=0.125,β=1.0,面片数=13662;(g)传统算法:α=0.125,β=1.0,面片数=13662.
[0147]
图12中,(a)原始网格(真值):α=1.0,β=1.0,面片数=125288;(b)本发明算法:α=0.50,β=1.0,面片数=62643;(c)传统算法:α=0.50,β=1.0,面片数=62643;(d)本发
明算法:α=0.25,β=1.0,面片数=31321;(e)传统算法:α=0.25,β=1.0,面片数=31321;(f)本发明算法:α=0.125,β=1.0,面片数=15661;(g)传统算法:α=0.125,β=1.0,面片数=15661。
[0148]
2、纹理化简参数β对纹理质量的影响
[0149]
实验中设置网格化简参数α={1.0,0.5,0.25,0.125},依据步骤s2中的计算公式β=ceil(1/α)得到β={1.0,2.0,4.0,8.0}。按照上述参数在建筑物区域执行本发明算法,得到化简结果,如图13所示。图13中,(a)本发明算法:α=0.50,β=2.0,面片数=54651;(b)本发明算法:α=0.25,β=4.0,面片数=27326;(c)本发明算法:α=0.125,β=8.0,面片数=13662。
[0150]
从图13(a)(b)(c)可以看出,纹理化简参数越大,纹理越模糊,但在纹理扭曲和变形方面几乎没有差别。对比图11(b)和图13(a)、图11(d)和图13(b)、图11(f)和图13(c)分析得出,网格化简参数相同而纹理化简参数不同时,图12中经过纹理化简的纹理与图11中未化简的纹理在扭曲和变形方面几乎没有差别,但是经过化简的纹理清晰度要弱于未进行化简的纹理。这说明纹理化简参数β值的大小不会影响纹理的扭曲和变形,但会影响纹理的清晰度。极端情况下,超过一定的纹理化简参数阈值后,纹理内容较难区分。这主要是因为本发明算法的纹理化简时会对参考数据集中的图像适当的做降采样处理,导致了纹理清晰度的降低。但是,本发明算法能满足一般情况下的模型化简的正常需求。
[0151]
三、纹理数据量对比分析
[0152]
本发明算法不仅能进行网格化简,还可以通过纹理化简,减小模型整体的数据量。在具有代表性的四类区域(居民区、工厂区、植被区、道路区)中随机选取多个模型瓦片(瓦片大小为100.0m*100.0m)作为实验数据,如图14(图14(a)居民区;图14(b)工厂区;图14(c)植被区;图14(d)道路区)所示。将网格与纹理的化简参数(α,β)分别设置为(1.0,1.0),(0.5,2.0),(0.25,4.0),(0.125,8.0),比较本发明算法与传统算法的数据量,如表2所示,分别统计在不同化简参数下,本发明算法、传统算法化简后(网格,纹理)的数据量,单位为kb,(a)居民区;(b)工厂区;(c)植被区(以农田为例);(d)道路区(以高速路为例)。柱状图如图15(图15中每四条相邻的柱状数据所代表的内容从左至右依次为本发明算法网格、本发明算法纹理、传统算法网格、传统算法纹理)所示。
[0153]
表2数据量统计
[0154][0155]
从表2可以看出,本发明算法在网格和纹理方面均可以通过化简处理减少三维模型的数据量,且纹理的数据量随着β值的增大成倍减小,如(α,β)=(0.5,2.0)和(α,β)=(0.125,8.0)时,本发明算法的模型数据量仅为原始三维模型的38.9%和7.11%;而传统方法仅减少了网格的数据量,纹理的数据量没有变化。随着α值的降低、β值的增加,本发明算法相较于传统算法在三维模型数据量减少方面差距越显著,如(α,β)=(0.125,8.0)时,本发明算法的模型数据量仅为传统算法的12.9%。综上,本发明算法能有效的缓解快速增长的三维模型数据量与有限的传输带宽、流畅的模型渲染之间的矛盾。
[0156]
四、结论
[0157]
现有三维网格化简算法进行网格化简时,囿于只对纹理重新计算纹理坐标,存在不同程度的纹理扭曲和变形问题,且未对纹理做化简处理。为此,本发明提出了一种适用于三维重建的网格纹理化简算法,首先基于原始网格和已恢复的相机位姿构建参考三维模型场景;其次基于参考三维模型场景和已恢复的相机位姿进行图像采集生成参考图像集;最后利用qem算法对网格进行化简,利用改进的纹理重建算法对纹理进行化简并避免扭曲。通过实验验证和对比分析,得出结论如下:(1)仅网格化简情况下,本发明算法基本上不存在纹理扭曲和变形的情况,且具有鲁棒性;(2)本发明算法可支持网格与纹理一起化简,不同纹理化简参数下,纹理几乎没有失真且能显著降低纹理数据量。当纹理化简参数β=2.0时,本发明算法的纹理数据量仅为传统方法的28.17%;当纹理化简参数β=8.0时,本发明算法的纹理数据量仅为传统方法的2.40%。
[0158]
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0159]
本发明提供了一种适用于三维重建的网格纹理化简算法,仅网格化简情况下,本发明算法基本上不存在纹理扭曲和变形的情况,且具有鲁棒性。本发明算法可支持网格与纹理一起化简,不同纹理化简参数下,纹理几乎没有失真且能显著降低纹理数据量。
[0160]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1