基于3D模型的景观建筑物全景纹理映射仿真

2023-10-29 01:47张秋敏
计算机仿真 2023年9期
关键词:对应点全景纹理

张秋敏,曹 治

(1. 江西应用科技学院建筑工程学院,江西 南昌 330100;2. 南昌航空大学,江西 南昌 330000)

1 引言

城市景观建筑物代表着一个城市的风采和内涵,是每个城市的文化体现,具有很重要的艺术和科学研究价值。为了更好地保护、修缮城市景观性建筑物,对其展开全景3D模型纹理映射研究具有重要的意义[1]。传统的模型纹理映射方法存在信息量少、真实性差以及速度慢等问题,不能满足建设规划的要求,因此,研究一种高效、精准的城市景观建筑物全景3D模型纹理映射方法成为了当下最热门的研究课题。

有学者利用城市景观建筑物多边形角点和面积获取最佳像片,通过摄影中心和多边形角点连接光束及遮挡面相交的点判断是否遮挡,最后采用间接法纹理纠正获取模型的最佳纹理,完成模型纹理映射,该方法纹理映射效果不佳,精准度较低。除此之外,文献[2]提出了一种基于帧缓存的纹理映射方法,首先将城市景观建筑物精细模型与倾斜摄影测量解决方案产生的三角网模型配准,根据其空间特征提取纹理,通过帧缓存纹理绘制方法将纹理映射到城市建筑物模型表面,完成模型纹理映射,该方法构建的模型存在模糊现象,平面误差高。文献[3]提出了一种基于PTM模型的纹理映射方法,获取表示色彩与建筑亮度依赖关系的双二次多项式关系,然后获得其纹理信息后直接映射到建筑物模型表面,完成模型纹理映射,该方法构建模型时存在失真现象。

为了解决上述方法中存在的问题,提出一种城市景观建筑物全景3D模型纹理映射方法。

2 城市景观性建筑物全景3D模型预处理

2.1 数据去噪

由于各种外界因素的影响,获取的城市景观性建筑物的点云数据集存在一些噪声,首先对获取的线扫描数据展开去噪处理[4-5]。对于线扫描数据,通过扫描线逐行排查实施去噪操作。并通过最小二乘法将截面数据的起点与终点近似为曲线,在此过程中,拟合多项式次数越多,拟合曲线与实际建筑物越相似。

设A1,A2,A3代表平面中随机一个圆上的三个点,圆心坐标是(x0,y0),则A2的曲率值l表达式如下:

(1)

用S表示扫描线点云数据集合,依照顺序选择扫描线上的数据点Ai,j、Ai,j+1、Ai,j+2,根据式(1)获取所有数据点的曲率值。求解S中同等距离的两个点之间的曲率差值,当差值超过阈值n个点时,将扫描线划分为n+1段,拟合每个分段的点云数据,去掉大于阈值的数据点。

考虑到城市景观建筑物全景3D模型中离散点云数据[6-8]之间不存在明显的集合关系,通过计算数据点和剩余点的方差,再通过对比,就可以去掉对应的噪声点。

如果中心点A的局部坐标系为(o,b,k),将其设为目标,按照概率统计理论,得到正态分布N(τ,υ),其中,均值τ决定了形状位置与坐标系原点的变化,复合方差υ决定了形状的开口和噪声程度,数值越大形状开口越大,数值越小开口越小;将其和阈值实施对比操作,去掉υ大于阈值的全部数据点,完成去噪操作。υ的表达式如下:

(2)

在去噪时,如果阈值小于υ,则运用下列公式对(o,b,k)每个方向的△o、△b、△k分别展开求解,具体公式如下:

(3)

通过上式去除全部方向上的最大噪声点,然后不断迭代循环,直至删除全部噪声点。

2.2 点云数据拼接

传统方法对去噪后的点云数据实施拼接处理的结果不太理想[9],本文方法采用ICP算法对城市景观建筑物的点云数据展开精准拼接。

ICP算法是通过设定目标距离度量函数以及对应点的选择达到快速收敛和确保函数优化至全局最小[10-11]。根据点到点距离模型特点与点到面距离模型的特征,将二者之间的总体度量函数相结合,利用分层次设置迭代循环的停止条件,使迭代次数大大降低,通过重采样对应点云,将寻找对应点的时间降低至最小,精准选择正确的对应点,完成点云数据的精准拼接。

1)第一个层次的迭代收敛。针对具有N个边的局部点云数据A1、W1,将通过几何曲率取样手法得到的点集对A2、W2视作对应点集对,为了减少迭代次数,缩短点云数据之间的距离,需要设立相对大一点的停止阈值0.1mm。

假设点云数据A1、W1上的点分别表示为ai、wi(1=1,2,…N),从概念上来看,拼接两个曲面时相对应的点对(ai,wi)之间存在以下刚体变换:

|Y(ai)-wj|=0

(4)

式中,Y(ai)表示对ai实施Y变换。由于现实中存在各种影响因素,上式很难成立,为了使式(4)成立,需要设立一个精度可以承担的无穷小值r,即:

(5)

对于不规则曲面来说,探索对应点对的位置艰难且时间消耗较大。所以将曲面A2固定,采用k-d tree搜索算法搜索W2中A2最小间隔的最近点wi,如下所示:

(6)

(7)

图1 度量函数收敛模拟图

点ai处的切平面为di,则距离度量函数表达式如下:

(8)

点到平面的距离可视为一个线性函数:

(9)

通过上述步骤可以大大降低迭代次数,提高收敛速度,但是误差还未降低,所以要继续提高精确度。

2)第二个层次的迭代收敛。探索对应点的位置,若已知对应关系参数{v1,v2,…,vk},则可以快速获取各个点相对应的最近的点。反之,若两个点云数据之间位于拼接的最好形态,此时存在的转换关系即为探索的最佳拼接参数。所以通过获取转换参数Atr1,对A2实施重采样计算,获得参考局部最近点集W4,并在其中搜索最近点,此时检索的时间低于运用k-dtree搜索算法展开全局搜索的时间。

1)假设点云数据目标为A3(ai∈A(i=1,2,…,Na)),点云数据参考为W3(wi∈W(i=1,2,…,Nw));

2)运用最初的点云数据拼接转换参数Atr1,将A3中Na个点在W3间局部重取样的对应点集W4A标识出来;

3)将点云数据初始化:X0=A3,Y0=[100000]Y,k=0;

4)运用k-dtree在W4的邻近局部地点检索A3最近的点,当迭代达到第k次以后,得到的点集W4k=(A3,W4A);

5)计算点云数据的拼接参数g(A3,W4k);

6)对X0展开计算获取新一个迭代点集Xk+1;

7)若不符合迭代收敛要求fk-fk+1<ε,则返回步骤4)(迭代的停止要求ε设置为0.02mm),否则停止迭代操作,获取点云数据拼接的最优转换参数Atr2。

通过上述步骤实现点云数据拼接,提升城市景观性建筑物全景3D模型纹理映射精准度。

3 纹理映射算法

3.1 球面纹理映射

为了避免纹理图像局部扭曲变形、图像失真和映射效果差等情况的发生,利用半球面等比约束球面映射算法对模型展开纹理映射操作[12]。此算法可以通过不断调整倍数大小均匀控制球面纹理映射的覆盖范围。

假设纹理平面上随机点T1的极坐标表示为(r,β),将其映射到半球面上,与之对应的点U的经纬坐标为T2(δ,σ),如下图2所示。

图2 纹理图片在半球面的映射

(10)

(11)

3.2 重建模型的纹理映射

通过上述算法构建纹理图片和球面之间的关系,进而构建点云重建模型和球面之间的关系,通过获取对应的纹理坐标完成城市景观建筑物全景3D模型的纹理映射[14-15]。

第一步,选取一个半径尺寸合适的半球面,将城市景观建筑物的点云模型包围起来,使这个半球的轴正好穿过建筑物底部的中心位置,选择适当的球心到建筑底部之间的距离,最后通过面积等比约束算法,将纹理图案映射到球冠面上。设城市景观建筑物点云模型中的随机一个点为T(vx,vy,vz),为了方便计算,在z轴上设定一个固定点U(x1,y1,z1),则球表示为x2+y2+z2=r2,点云模型中的点与固定点U之间的一条直线表示为:

(12)

使这条直线相交于球,计算k值求得点云和球面的对应关系。k值的求解方法如下:

(13)

式中,mid的计算量较大,因此需要将其简化,令U为(0,0,z),此时可求得点云模型中点和球面之间的关系,即x=k×(vx-x1)+x1,y=k×(vy-y1)+y1,z=k×(zy-z1)+z1。

(14)

在点云数据渲染中,通过上式将纹理坐标直接覆盖到点云模型的各个点上,进而完成城市景观建筑物全景3D模型的纹理映射。

4 仿真与分析

为了验证城市景观建筑物全景3D模型纹理映射方法的整体有效性,需要对其展开如下测试。采用MATLAB仿真软件对实验图像进行处理,实验所用图像来自Inria 航空影像数据集(http:∥m6z.cn/6nUs6s),在该数据集中选取城市景观建筑物对象,如图3所示。建立城市景观建筑物的全景架构,架构的完整度直接决定纹理映射的效果,对图3所示的城市景观建筑物展开架构重建,结果如图4所示。

图3 城市景观建筑物

图4 城市景观建筑物架构重建效果

对城市景观建筑物的全景架构展开纹理映射,结果如图5所示。

图5 城市景观建筑物全景架构纹理映射效果

分析图4和图5可知,所提方法的纹理映射效果最佳,其余两种方法均存在不同程度的模型缺失、扭曲、变形、失真和粗糙等问题,而所提方法构建的城市景观建筑物全景3D模型基本不存在上述问题,因为所提方法首先对点云数据展开去噪处理,其次采用ICP算法对点云数据实施精准拼接,最后运用半球面等比约束算法重建模型的纹理映射,消除了外在因素对建模过程产生的影响,可以很好地完成城市景观建筑物全景3D模型的纹理映射。

将城市景观建筑物全景3D模型的点位平面误差作为指标,测试三种方法的应用效果,结果如表1所示。

表1 点位平面误差对比结果

根据上表1可知,在测试过程中,三种方法均存在平面误差,其中所提方法的平面误差最低,最高值为0.089米,其余两种方法的平面误差远高于所提方法,表明所提方法在城市景观建筑物全景3D模型纹理映射中精准度高、性能好。

5 结束语

现阶段城市景观建筑物全景3D模型纹理映射存在失真、模糊、精准度低以及效率低的问题,提出城市景观建筑物全景3D模型纹理映射方法,该方法首先制作城市景观建筑物全景3D模型,对点云数据展开去噪处理,其次运用ICP算法对城市景观建筑物的点云数据展开精准拼接,最后采用半球面等比约束算法重建模型的纹理映射,进而实现城市景观建筑物全景3D模型纹理映射。通过实验验证了该方法实现了对现有方法的优化,其应用价值更高。

猜你喜欢
对应点全景纹理
凸四边形的若干翻折问题
三点定形找对应点
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
“一定一找”话旋转
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
全景敞视主义与侦探小说中的“看”
TEXTURE ON TEXTURE质地上的纹理
从5.1到全景声就这么简单 FOCAL SIB EVO DOLBY ATMOS
比较大小有诀窍