马东岭,王晓坤,曾行行,石 壮
(山东建筑大学 测绘地理信息学院,山东 济南 250101)
随着城市的快速发展和城市地物地貌的快速更新[1],传统的二维平面测绘数据已经不能完全满足城市经济建设的需要。同时,由于无人机技术和计算机技术的快速发展[2],三维原始数据的获取和运用已经不是限制三维立体测绘的阻碍。在这种情况下,基于无人机获取的倾斜影像的三维重建技术将成为一种有广泛应用前景的城市三维重建技术。相比于传统的基于二维平面数据手工生成城市三维模型的方法[3-5]和基于激光点云的城市三维重建技术[6],该方法具有建模成本低、速度快、数据获取方便、数据处理自动化程度高、受地形因素影响小等优势。然而,现阶段基于无人机倾斜影像的三维重建技术仍存在相应的问题需要解决,例如:直接将无人机获取的影像作为纹理贴到三维模型表面,会导致纹理间存在色差、三维模型在视觉上存在割裂,甚至会影响三维模型的判读。为解决这个问题,需要在三维重建过程中进行纹理优化[7]。纹理优化是对依附在模型表面的彩色纹理进行处理,以使得三维模型与实际地形地物更加相似的过程。
针对纹理优化问题,目前已有众多学者进行研究。闫利、程君提出了基于视角法的倾斜影像数据三维重建自动纹理映射的方法[8];师建辉、康志忠、翟旭等人提出了一种基于纹理面积、倾斜角度、树木遮挡方法和蚁群算法的建筑物立面纹理优化方法,实现多条带多张纹理贴片的自动拼接[9];张春森、张卫龙、郭丙轩等在三维表面模型的基础上,利用获得的建筑物的三维信息与纹理信息,通过最优算法选择出地物面的理想纹理来实现城市建筑物纹理的自动提取[10];胡丽华、徐利梅、李辉等人提出利用纹理映射技术简化模型的方法来完成三维模型纹理重建[11];孙春生、吴军、陈丹清等提出了基于轮廓线配准的建筑墙面纹理重建策略的手段,实现了建筑墙面纹理快速重建的目标[12];范冲、王学提出了基于三维纹理映射原理的三维建筑模型纹理映射方法来实现三维建筑纹理重建[13];姜翰青、王博胜、章国锋等人提出了一种基于马尔可夫随机场的多视图纹理映射方法来给三维模型贴对应的纹理贴图[14];郭玲、王建宇、黄炎焱提出了一种基于纹理的模型重构和纹理光照连续性重建算法来对三维模型映射对应的纹理[15]。以上算法虽然在一定程度上解决了纹理的优化问题,但是大都处理简单,纹理真实感不强,对于颜色、光照处理不理想,细节处理不细致。因此,寻找一种更为理想的全局纹理优化方法迫在眉睫。本文依据纹理边界间的颜色差异和纹理内部的颜色变化关系,提出了基于纹理贴片颜色差异的全局纹理优化方法。该方法处理的城市三维模型纹理具有纹理真实、色彩一致、纹理处理一次性完成、细节明显等优势。
纹理优化是指利用影像和模型三角网之间的关系去处理贴到模型上的纹理贴片,通过这个过程使附上纹理的模型看起来更加真实。尽管影像纹理之间会存在较大的颜色强度差异,例如其亮度、明度、对比度等信息差异量大,但是这些颜色的变化趋势和影像的轮廓特征是一致的,因此可以根据颜色信息将纹理之间的边界消除,使纹理之间的颜色过渡平滑。基于以上原理,本文提出了基于颜色变化差异的全局纹理优化方案,利用边界颜色差异部分的均值作为基准值来改变颜色,以消除纹理之间颜色的明显边界;同时依据纹理颜色变化趋势和影像轮廓特征一致的特性,来确定纹理的颜色变化趋势。
由于边界上的纹理的颜色变化趋势、图像特征轮廓等是一致的,因此需要保证颜色改正函数g的颜色变化是极小的,可表示为:
(▽h)2dX.
(1)
式中:g为改正三维模型网格M生成的颜色改正函数;S为改正三维模型网格M上由于纹理拼接而形成的不连续的边界线;h为缝隙两侧的颜色变化差异。
优化后的纹理间颜色不应存在明显的颜色变化,因此要求颜色改正函数g在每个不连续点处的正变换必须等于改正三维模型网格M上的颜色描述函数f的负变换,即:
s.t.[g]|X=-[f]|X,∀X∈S.
(2)
其中,颜色描述函数f和颜色改正函数g均是连续分段函数,并且具有相同的不连续性。
将式(1)、式(2)叠加,保留初始函数的较高频率,又保证没有明显的衔接缝隙,使纹理边界得到优化。根据上述全局纹理优化原理,本文首先从不同的纹理上获取多组色彩值,然后依据上述公式来建立纹理优化公式,最后利用公式处理每一个像素点以完成纹理的全局优化。全局纹理优化过程如图1所示。
图1 纹理优化原理
由于不同纹理贴片映射到三维模型中后,纹理贴片边界的色彩值是不相同的,因此在一条边界上会出现两个色彩值。色斑就是因为这两个色彩值的差异造成的,因此使两边界的色彩值一致是全局纹理优化的第一部分。此外,由于同一纹理贴片上的点来自同一张影像,有相同的拍摄条件,所以同一张影像上的点具有相似的颜色调整值。因此,第二部分是使同一纹理上的颜色调整值一致。由于直接将所有像素点参与计算会使得运算十分繁琐,数据量太大,使得数据处理难以完成,因此本文首先利用三角网顶点调整三角网的颜色值,并列算式为:
(3)
式中:V是顶点的集合;vright和vleft是顶点在左右纹理上的投影点;vi和vj是同一个纹理贴片上的相邻顶点;fvright是顶点投影到右纹理贴片上的投影点获取的颜色值;fvleft是顶点投影到左纹理贴片上的投影点获取的颜色值;gvright是顶点投影到右纹理贴片上的投影点获取的颜色值的改正值;gvleft是顶点投影到左纹理贴片上的投影点获取的颜色值的改正值;gvi、gvj是在同一纹理贴片相邻点上的颜色值的改正值;λ是颜色一致性调整量和边界色彩值调整量的比例。
将式(3)写成矩阵形式为:
(4)
式中:A为不同纹理贴片边界色彩值调整量的矩阵,是同一纹理贴片上相邻顶点颜色一致性调整量矩阵;g是三角网顶点的调整量矩阵;f为不同纹理贴片边界色彩值矩阵。其中A和Γ的取值代表原方程的λ,是用来表示颜色一致性调整量和边界色彩值调整量的比例。根据上述公式可以快速简捷的获取纹理优化后的顶点颜色值。为处理全部纹理贴图中每个像素点的颜色值,本文利用颜色插值的手段将顶点颜色值归化到每一个像素点中去。
经过上述过程,三维网格对应的纹理贴片的顶点都有了相应的颜色调整值。然而,通过顶点的颜色调整并不能直接对纹理贴图起作用。因此,需要利用顶点的颜色改正值来生成纹理贴图上每一个像素的颜色改正值。为解决上述问题,需要利用三角形的3个顶点对纹理贴图上的每一个像素进行颜色求解。由于像素值是均匀变化的,所以根据两点间距离的大小可以计算两点之间颜色的影响,因此本文提出利用像素点与3个顶点距离的函数作为权值来求取三角形每个像素点的颜色值改正值的方法,原理如图2所示。
图2 颜色插值原理
不仅3个顶点V1,V2,V3的颜色改正值是不同的,而且3个顶点颜色改正值对像素点P的影响也不一样。在图2中,像素点P与顶点V1,V2,V3构成了3个小三角形,分别是S1,S2,S3。由于S2面积越大,像素点P离顶点V2的距离越短。进而,S2的面积越大,像素点P受顶点V2点的影响也就越大。因此,P点受顶点V1,V2,V3的影响可以用S1,S2,S3的面积和大三角形的面积比表示。因此列方程为:
(5)
(6)
(7)
(8)
(9)
其中:Lvi,vj为边V1,V2的长度;Lv1,v3为边V1,V3的长度;Lv2,v3为边V2,V3的长度;Lv1,p为边P,V1的长度;Lp,v2为边P,V2的长度;Lp,v3为边P,V3的长度。C,CS1,CS2,CS3为三角形△V1V2V3、三角形△V1PV3、三角形△V1PV2、三角形△V2PV3的周长。S,SS1,SS2,SS3为三角形△V1V2V3、三角形△V1PV3、三角形△V1PV2、三角形△V2PV3的面积。Colorp,Colorv1,Colorv2,Colorv3为点P,V1,V2,V3的颜色值。
根据上述公式,将顶点颜色改正值通过三维模型网格传递到纹理贴图的每一个像素中,并通过叠加像素改正值的方式完成纹理贴图的全局优化,消除纹理差异,较好地解决了现行纹理优化方法中存在明显缝隙的问题。
实验数据采用城市地区的无人机倾斜影像数据。计算机环境为Inter Core i3 CPU 2.4 Hz,软件环境为MVS和godWork软件。实验首先利用godWork软件对实验地区的无人机倾斜影像数据进行空中三角测量,以确定每张相片的位置和姿态;然后,利用MVS对无人机倾斜影像和空三结果进行三维重建,建立目标区域的三维表面模型,并附上初始纹理;最后,利用本文提出的基于纹理贴片颜色差异的全局纹理优化方法来优化目标三维表面模型的初始纹理,获取较真实的三维模型。利用本文提出的基于纹理贴片颜色差异的全局纹理优化方法优化目标三维表面模型的初始纹理的流程如图3所示。
图3 数据处理流程
对纹理边界的颜色值,本文首先将三角网投影到影像中,获取三角网中每个三角形对应的纹理三角形,然后将一张影像的相邻纹理三角形影像合并成为纹理影像块,最后标记纹理影像块的边界点作为三角网纹理边界点在纹理影像块上的投影点。对应同一三角网纹理边界点的投影点具有不同的颜色值。
本文方法是通过消除三角网纹理边界投影点的颜色值差异,使同一点上的颜色值一致,以达到消除边界的目的,进而解决全三角网存在大范围颜色差异的问题,并且根据自然形态下颜色是渐进的、平和的变化规律,将三角网顶点的颜色值处理成渐进的、传递的变化趋势,以使三角网的颜色值看起来自然。
通过2.2节获取的每一个顶点的颜色改变值并不能直接用于改变纹理贴片的颜色值。因此,需要对三角网投影到影像上的三角形栅格化,并确定出每个像素点的坐标。利用每个像素点的坐标和三角形顶点的距离作为权值来求取三角形每个像素点的颜色值改正值。其中,与顶点相对的边和像素点构成的三角形越大,该顶点离像素点越近。根据像素点与顶点构成的三角形的大小比例就可以作为评价像素点到对应三角形顶点的距离函数。
通过上述纹理优化方法优化后的结果如图4所示。
图4 纹理优化前后的结果对比
从图4可以看出,在纹理优化前的图4(a)图中,房屋顶棚纹理影像存在着明显的色差,使得顶棚纹理看起来一块一块的,颜色分布不均匀。本来一体化的房屋屋顶看起来变的割裂,缺乏真实感。而通过本文纹理优化后的图4(b)图可以看出,房屋顶棚的颜色更加一致,没有明显的颜色差,虽然房屋顶棚的颜色不是完全一致的,但是颜色接近,并且均匀变化,没有一块一块的色斑的情况,颜色分布均匀,符合现实世界的样子。对于在影像中有颜色变化的区域,该方法并没有因为颜色平滑使得这些区域变的颜色模糊。通过本文提出的全局纹理优化方法得到的整体重建效果如图5所示。
图5 整体重建效果图
从图5可以看出,本文提出的基于纹理贴片颜色差异的全局纹理优化方法,其优化模型纹理的效果理想,能够有效解决三维表面模型存在色斑、纹理割裂的情况,进而使得建筑物纹理面的颜色一致,建筑看起来整体性更好,建筑界限更清晰,真实感更强。通过该方法优化后的模型纹理没有突兀的色差,使得模型光照渲染更加统一,能够表达清楚细节,并且保持了原始纹理绝大部分的颜色特征,没有使得原始纹理出现颜色混乱的情况。利用该方法克服了城市三维表面模型重建中存在的颜色不一致、建模效果不真实等难题,证明该方法可行性高、纹理优化效果较好,大大提高了无人机倾斜影像在城市三维模型重建中的可视性和真实性,使得模型可以更真实的模拟现实。
本文根据纹理贴片边界间两端的不同影像的颜色差异和纹理贴片内部顶点的颜色变化关系,提出了基于纹理贴片颜色差异的全局纹理优化方法。该方法首先获取顶点在不同纹理贴片上的颜色值,然后对顶点颜色值使用基于纹理贴片颜色差异的全局纹理优化方程对城市三维模型进行纹理优化。利用该方法对城市复杂区域的场景模型数据进行实验,精确地校正了纹理颜色差异的问题。实验结果表明,本文提出的方法具有纹理优化效果好、光照一致性理想、模型纹理真实的优势。尤其在细节识别部分,通过纹理优化获得的纹理界限更加清晰。由于该方法校正纹理需要给三维模型顶点赋色值,而合理的选取纹理颜色值可以使纹理优化更为理想,因此,如何更科学合理的给顶点赋色值将是下一步研究的内容。