一种从五个倾斜相机中选择最优墙面纹理的方法与流程

文档序号:18873004发布日期:2019-10-14 19:58阅读:186来源:国知局
一种从五个倾斜相机中选择最优墙面纹理的方法与流程

本发明涉及摄影测量与遥感领域,特别是涉及一种可用于加强建筑物纹理真实感的最优墙面纹理的选取方法。



背景技术:

随着城市数字化的不断发展,构建城市三维模型已成为摄影测量、计算机视觉等领域的研究热点之一。近年来,无人机倾斜摄影这一高新技术的出现,为三维建模提供了很好的数据来源,无人机倾斜摄影技术不同于传统的垂直摄影技术,它将垂直摄影与倾斜摄影两者相结合,多视角的获取地物信息,不仅在数据采集方面减少了野外工作量,而且在纹理信息方面增大了墙面纹理的采集量。在城市建筑物三维模型的重建过程中,纹理作为构建真实感三维模型的重要组成部分,纹理质量的好坏直接影响了模型的效果,故在纹理映射过程中,最优纹理的选取至关重要,如何选取高质量、高真实感的纹理成为了研究重点。

现有的建筑物纹理优化的方法大致可分为三类:

(1)建筑物屋顶采用自上而下的垂直航空影像(如:yangx,qinx,wangj,etal.buildingrecognitionusingobliqueaerialimages[j].remotesensing,2015,7(8):10562.)。该类方法能够以足够的细节和精度有效地提供所有建筑物的整套屋顶形状。然而,由于机载平台的限制,需要利用来自不同视角的多个图像来选择屋顶纹理,在这种情况下,需要在不同视角和分辨率及其不同的照明条件下处理图像中的可见屋顶纹理。

(2)建筑物外墙利用基于地面的图像来完成纹理化(如:pénardl,paparoditisn,pierrot-deseillignym.3dbuildingfacadereconstructionundermeshformfrommultiplewideangleviews[c]//isprscommissionv/4workshop3d-arche.2012.)。该类方法能够提供从街道上看到的建筑物外墙。基于地面的数据图像的外墙纹理存在的问题之一是需要处理大量的地面场景,影像中建筑物被地面遮挡较多,拍摄视点低且视角范围受限制。往往为了从这些影像中提取外墙纹理,需要花费几个月时间。此外,如果建筑物太高,无法采集建筑物的屋顶纹理,建筑物的墙面纹理也可能存在采集不完整的情况,需要对纹理做拼接处理。

(3)利用二者的结合(如:stamosi,allenpk.automaticregistrationof2-dwith3-dimageryinurbanenvironments[m].2001.)。该类方法可以补偿单一的自上而下的垂直航空影像或地面近景影像源来获得高质量的表面纹理。然而两个数据源的组合需要两个数据平台,这样增加了纹理数据采集的成本,并且后处理算法还需要两种类型的处理程序:一个程序针对垂直图像,另一个程序针对地面图像。因此,劳动强度事实上并没有减少。



技术实现要素:

本发明目的在于提供一种从五个倾斜相机中选择最优墙面纹理的方法。

为了达到上述目的,本发明依图1据流程图所示包括如下步骤:

步骤1,将墙面的三维坐标(x,y,z)与各个影像的内外方位元素逐一带入共线方程,求出应该具有该墙面的墙面纹理图像的航空影像,从而使建筑物模型与影像的匹配。

步骤2,通过约束条件1选择最接近90°的顶面纹理作为屋顶的最优纹理;通过约束条件1,2,3以及目标函数1,2来选取墙面的最优纹理。

约束条件1,2,3及目标函数1,2的确定方法如下:

约束条件1确定方法为:通过摄影中心与目标墙面上各个角点的连线方向和摄影中心与地底点的连线方向的角度与视场角进行比较,如果计算得到的角度在视场角的范围内,则证明该张航片上存在目标墙面纹理,反之,则不存在纹理。以此来确定约束条件1:航片中必须存在目标墙面的纹理。

约束条件2的确定方法为:通过构建墙面模型,优化z-buffer算法,即构建新模型对建筑物进行遮挡检测,并且计算遮挡区域的大小。以此来确定约束条件2:目标墙面纹理遮挡数。

约束条件3的确定方法为:目标墙面纹理影像的大小与摄影中心到建筑物的距离以及摄影中心对建筑物的入射光线与目标墙面的法向量方向的夹角有关系,即距离越小,且夹角越小,则该张航片上的目标墙面纹理的面积越大。因此,本发明通过目标墙面纹理影像的大小与摄影中心到建筑物的距离,与摄影中心对建筑物的入射光线与目标墙面的法向量方向的夹角之积来确定约束条件3:航片上目标墙面纹理的面积尽可能大。

目标函数1的确定方法为:由约束条件2可知,倾斜影像的遮挡存在两种情况:一种情况是一幅或多幅倾斜影像中的建筑物墙面纹理图像不存在遮挡;另一种情况是所有的倾斜影像中的建筑物墙面纹理图像都存在遮挡。因而可通过约束条件2的最小值来确定目标函数1:纹理遮挡数最小。

目标函数2的确定方法为:通过共线方程计算墙面四个顶点所对应的像点坐标,由于墙面大多以四边形的方式存在,故可以将墙面的四个顶点依次相连,围成一个四边形,根据多边形的面积计算公式来确定倾斜影像上墙面纹理面积最大的函数。以此来确定目标函数2:纹理面积最大。

步骤3,将最优墙面纹理转换成hsi颜色模型,对建筑物最优纹理的树木遮挡进行处理与恢复。

步骤4,通过纹理坐标归一化,纹理贴图,纹理映射完成opengl纹理映射三维重建。

附图说明

图1是本发明方法的流程图。

图2是本发明方法的倾斜摄影获取影像示意图。

图3纹理可见性分析原理图。

图4是本发明方法的建筑物纹理遮挡检测原理图。

图5是本发明方法的最优屋顶纹理结果图。

图6是本发明方法的最优墙面纹理结果图。

图7是本发明方法的建筑物最优纹理的树木遮挡的恢复过程图。

图8是本发明方法的最终结果图。

具体实施方式

下面结合本发明中的附图详细说明本发明的具体实施方式。显然,所描述的实施案例仅仅是本发明中的一部分实施案例,而不是全部的实施案例。基于本发明中的实施案例,本领域的普通技术人员在没有做出创造性劳动前提的条件下所进行的其他所有实施案例,都属于本发明的保护范围。

实施案例:

本实施案例中,选取位于山东省济南市东关大街作为实验区域进行实验处理。本发明选用无人机倾斜摄影测量来获取影像数据,原理如图2所示。图2中,假设地面上有一栋建筑物bld-1,该栋建筑物拥有五个面,分别为屋顶r和墙面f1,f2,f3,f4,用无人机搭载倾斜相机在空中对建筑物bld-1进行拍摄获取影像信息,图中s1,s2,s3,s4,s5,s6分别为倾斜相机在移动拍摄时曝光的位置,ai,bi,ci,di,ei(i=1,2,3,4,5,6)为倾斜相机拍摄的影像。由图2可知,当倾斜相机在点s1拍摄时,前视相机可以获取墙面f2、墙面f3和屋顶r的纹理,其对应的纹理f2s1-1、纹理f3s1-1和纹理rs1-1成像在影像b1上;当位于倾斜相机在点s2拍摄时,下视相机可以获取屋顶r的纹理,其对应的纹理rs2-1成像在影像a2上,前视相机可以获取墙面f3和屋顶r的纹理,其对应的纹理f3s2-1和纹理rs2-1成像在影像b2上,右视相机可以获取墙面f1、墙面f2和屋顶r的纹理,其对应的纹理f1s2-1、纹理f2s2-1和纹理rs2-1成像在影像c2上;当倾斜相机在点s3拍摄时,下视相机可以获取屋顶r的纹理,其对应的纹理rs3-1成像在影像a3上,右视相机可以获取墙面f1、墙面f2和屋顶r的纹理,其对应的纹理f1s3-1、纹理f2s3-1和纹理rs3-1成像在影像c3上,后视相机可以获取墙面f1、墙面f2和屋顶r的纹理,其对应的纹理f1s3-1、纹理f2s3-1和纹理rs3-1成像在影像e3上;当倾斜相机在点s4拍摄时,下视相机可以获取屋顶r的纹理,其对应的纹理rs4-1成像在影像a4上,前视相机可以获取墙面f1、墙面f4和屋顶r的纹理,其对应的纹理f1s4-1、纹理f4s4-1和纹理rs4-1成像在影像b4上,右视相机可以获取墙面f1、墙面f4和屋顶r的纹理,其对应的纹理f1s4-1、纹理f4s4-1和纹理rs4-1成像在影像c4上;当倾斜相机在点s5拍摄时,下视相机可以获取屋顶r的纹理,其对应的纹理rs5-1成像在影像a5,前视相机可以获取墙面f1、墙面f4和屋顶r的纹理,其对应的纹理f3s5-1和纹理rs5-1成像在影像b5上,右视相机可以获取墙面f1、墙面f4和屋顶r的纹理,其对应的纹理f1s5-1、纹理f2s5-1和纹理rs5-1成像在影像c5上;当倾斜相机在点s6拍摄时,右视相机可以获取墙面f3、墙面f4和屋顶r的纹理,其对应的纹理f3s6-1、纹理f4s6-1和纹理rs6-1成像在影像c6上。

本发明不仅对数据源的获取方式进行了改进,而且对纹理选取的方法也做出了改进。将建筑物纹理图像的选取分为两部分以减小纹理获取的时间,即建筑物顶面纹理选取与建筑物墙面纹理选取。

对于建筑物顶面纹理选取与建筑物墙面纹理选取原则包括纹理是否可见、纹理的遮挡、纹理的面积等几个方面,选取纹理遮挡最小且纹理面积最大的纹理作为最优纹理,并将最优纹理中被树木遮挡的部分进行处理。实验步骤如下:

步骤1,将墙面的三维坐标(x,y,z)与各个影像的内外方位元素逐一带入共线方程,求出应该具有该墙面的墙面纹理图像的航空影像,从而使建筑物模型与影像匹配

步骤2,计算出3个约束条件及2个目标函数,确定出屋顶和墙面的最优纹理。其中3个约束条件及2个目标函数的具体求取方式如下:

约束条件1:在多镜头无人机相机的成像过程中,5个倾斜相机的倾斜角度是不同的。且该倾斜角度是不能被忽略的。因此,本发明针对倾斜相机的特点,提出通过摄影中心与目标墙面上各个角点的连线方向和摄影中心与地底点的连线方向的角度与视场角进行比较,如果计算得到的角度在视场角的范围内,则证明该张航片上存在目标墙面纹理,反之,则不存在纹理。如图3所示,本发明以左视镜头为例,对目标墙面是否在航片上进行判断。图3中,建筑物bld-1的墙面abcd是目标墙面,imi(eoi,ioi)表示第i幅影像,其中eoi表示影像的外方位元素为摄影中心的坐标为si(xi,yi,zi),ioi表示影像的内方位元素x0i,y0i,f。

通过计算目标墙面上4个角点a,b,c,d是否全部在影像中存在,来判断墙面纹理在该张航片上是否可见。判断方式如下:

设墙面角点的坐标为w(xw,yw,zw),其中w=a,b,c,d。地底点的坐标为ni(xni,yni,zni),所用倾斜相机的视场角为βi,则可以计算摄影中心与墙面角点的连线方向以及摄影中心与地底点的连线方向的夹角αi:

则:

由上述公式可见,与夹角有关的变量是航片i的相关信息,则上述公式可以写为:

f1(imi)=αi(2)

其中imi为第i张航片,第i张航片上墙面被遮挡区域大小设为f3,纹理的成像面积为f4,则第i张航片的纹理可视化面积可以表示为:

sv(imi)=f3-f4(3)

纹理可视化面积(以sv表示)是与墙面纹理在影像上的成像面积和纹理在影像上的被遮挡情况有关。航片的总数为k,则最优纹理的选取就是找到一张具有最大纹理可视面积的航片sv(imi),i=1,2,3...k。

如果夹角小于90度则说明目标墙面是面向摄影中心,即可以在航片上成像;如果夹角大于等于90度,则说明目标墙面不是面向摄影中心,即不可能在成像。

图3中,建筑物中心o点的坐标为o(xo,yo,zo),从建筑物中心点o出发,做面abcd的法向量再连接o点与第i张航片的摄影中心si,得向量其中,

根据角度计算公式可得二者的夹角为:

从式中可以看出,在确定目标建筑物墙面的前提下,角度的大小只与第i张航片的位置有关系,则公式(4)可以写为:

f2(imi(eoi,ioi))=θi(6)

根据公式2和5,可以得出满足约束条件1的航片。

约束条件2:在满足约束条件1后,通过构建墙面模型,结合z-buffer理论对建筑物的墙面进行遮挡检测。

首先建立墙面模型,如图4所示,目标墙面的四个角点及其坐标分别为a(xa,ya,za),b(xb,yb,zb),c(xc,yc,zc),d(xd,yd,zd)。在正常情况下,建筑物的墙面都是垂直与地面的,因此,在构建墙面模型的时候,以底部的两个角点b和c为基准,建立格网,格网分辨率单位为1.则在格网中,第wl,m个格网的坐标为:

wl,m(xwlm,ywlm,zwlm)

其中:

然后,利用z-buffer算法,检测墙面模型和dbm上所有坐标点的遮挡情况。z-buffer利用一条摄影光线上有且仅有一个距离摄影中心最近的点会在像片上成像的原理,对地面点进行遮挡的检测。本文在进行墙面的遮挡检测时,将墙面模型与dbm分别带入到共线方程中,计算模型上的点对应的像点坐标,如果出现墙面模型上的点wj与dbm上的一点mj对应于相同的像点坐标时,比较这两个点的z距离。如果dwj<dmj,则说明w1被遮挡了,反之,则是可见的。

墙面模型对应的共线方程:

墙面模型上一点到摄影中心的距离为dwj:

dbm上一点到摄影中心的距离为dmj:

对于第i张航片,墙面纹理影像的遮挡个数为:

统计所有被遮挡的墙面模型上的点的个数,设为ni。依次处理所有的影像。

nocclusion(imi)=ni(10)

约束条件3:在对同一个目标墙面进行拍摄时,摄影中心的位置不同、入射的角度不同都会引起目标墙面在航片中成像大小的变化。

在第i张航片上,目标墙面纹理影像的大小与摄影中心到建筑物的距离以及摄影中心对建筑物的入射光线与目标墙面的法向量方向的夹角θi有关系,即越小,且θi越小,则该张航片上的目标墙面纹理的面积越大。考虑到计算航片上的墙面纹理面积是比较复杂的过程,因此,将作为判断纹理面积大小的标准。根据公式4,很容易得到,第i张航片的相对纹理面积为:

目标函数1:在约束条件2中求出了每一张倾斜影像对应一个ni,故可利用ni的最小值作为此目标的目标函数。因此,将墙面纹理遮挡数最小作为第一个目标函数:

f3(imi)=min(nocclusion(imi))(12)

目标函数2:由于影像在成像时,由于视角的角度不同,使得拍摄时墙面纹理的成像面积有所不同,图像纹理面积越大,则纹理越清晰。因此,将纹理面积最大的墙面纹理作为第二个目标函数:

f4(imi)=max(area(imi))(13)

利用墙面最优化模型的第一个约束条件,选择最接近90度的顶面纹理进行纹理映射。结果如图5所示,图中影像(7)为最优顶面纹理。最优墙面纹理结果如图6。

步骤3,将最优墙面纹理转换成hsi颜色模型,可知建筑物的最优墙面纹理中存在树木遮挡的情况,则需要对建筑物墙面最优纹理区域进行树木遮挡进行处理与恢复。将建筑物的最优墙面中色调h的取值范围在75-145°之间的像素值设定为黑色,并转换rgb。然后对最优墙面纹理进行恢复,建立的窗口s横向遍历选取最小的平均误差平方和d(i,j)所在的窗口复制粘贴在窗口t区域,对建筑物墙面树木遮挡区域进行恢复,恢复过程如图7所示。

步骤4,将众多最优纹理做归一化处理。纹理实际上是一个二维数组,它的元素是一些颜色值。纹理坐标通常由u和v来表示,与笛卡尔坐标系中的x和y很相似,一般纹理坐标范围在0到1之内,包含0和1,纹理坐标系中,最左下角的点为(0,0),最右上角的点为(1,1)。将同一幅倾斜影像上的最优纹理看作一个整体,对这几个最优纹理的坐标做归一化处理,将(minx,miny)看作纹理坐标系最左下角的点(0,0),分别求x轴和y轴上纹理坐标的最大差值,如下:

若x>y,则将(x,x)看作纹理坐标系最右上角的点(1,1);若x<y,则将(y,y)看作纹理坐标系最右上角的点(1,1);这样可以避免纹理出现变形。

该图中最左下角的点为(u4,v1),最右上角的点为(u8,v8),若x>y,则各纹理点的坐标可利用公式15求得;若x<y,则各纹理点的坐标可利用公式16求得。最后,利用求得的纹理坐标映射至三维模型表面。

基于立方体的环境纹理映射方法,利用opengl的相关函数,将选择的最优纹理映射到建筑物三维模型表面上,从而生成具有真实感的建筑物三维模型。

利用opengl进行纹理映射主要步骤如下:

(1)载入纹理。载入纹理时需要对纹理进行定义,利用glteximage2d函数对其进行定义,由于纹理图像数据通常较大,载入纹理的过程较慢。

(2)指定纹理坐标。要生成城市真三维模型场景,必须确定每个模型的顶点坐标及其纹理坐标,这样在生成真三维模型时候,纹理坐标下对应的像素值就会映射到对应的顶点上,前面在对纹理进行选择过程中已经确定了三维模型的顶点坐标及其归一化后的纹理坐标,故利用gltexcoord*系列函数指定纹理坐标,glvertex*系列函数指定顶点坐标。

(3)设置纹理参数。利用gltexparameter*系列函数设置纹理参数,这一步主要是对当纹理图像与物体模型表面大小区别很大时的处理,如纹理图像要映射到一个比它大的模型表面上或纹理图像要映射到一个比它小的模型表面上时需要定义不同的参数对纹理进行设置。

(4)确定纹理对象。很多研究者在这个过程中,一般都只确定一个纹理对象,即只映射一个建筑物的表面,本文之前提出的纹理归一化,就是针对这一点的改进,这样可以减少载入影像的次数,并提高影像载入的效率,因为载入纹理的读取过程所耗费的时间较长,与此同时也提高了建模的效率。

选出简单建筑物的各个面的最优墙面纹理,对最优纹理进行其它地物的遮挡处理,再利用c++与opengl对简单建筑物与复杂进行纹理映射,城市建筑物纹理映射景观图如图8所示。

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