大数跨境
0
0

联合地物轮廓线的三维重建算法研究

联合地物轮廓线的三维重建算法研究 GIS前沿
2024-06-03
4
导读:摘要:针对现有三维重建研究中对线特征利用不充分,重建精度低的问题,提出了一种联合地物轮廓线的三维重建算法。

摘要:针对现有三维重建研究中对线特征利用不充分,重建精度低的问题,提出了一种联合地物轮廓线的三维重建算法。利用BDCN模型和相应预处理算法,提取出二维影像上的边缘轮廓线;基于对极几何原理的核线引导和三角测量原理,建立线段的初始匹配假设;通过相似性计算和图聚类算法重建出三维轮廓线模型结果;将结果应用于三维网格模型的优化。使用Building-Imagery-P36和DTU MVS数据集对本文算法进行验证,结果表明:本文方法提取出的轮廓线段精简而完整。相比经典的Line3D++算法,MAE和标准差值平均降低了0.321、0.699,重建时间平均降低了58%,精度和效率都有明显提升。附加三维轮廓线约束后,生成的网格模型视觉效果更佳,细节信息更为丰富。

引言

从一组二维影像中恢复对象和场景的三维信息即视觉三维重建,在应急救灾、智慧城市、高精地图、古建筑重建等领域有广泛应用[1-4]。当前的三维重建多是利用多个视图中的特征点匹配,来恢复影像深度信息,从本质上来讲,基于点的三维重建是一个通过处理采样对象的离散点集合进而推断或重建得到物体三维模型的过程[5]。此类算法发展已经足够成熟,但在场景三维重建的完整性、准确性和细节保留等方面仍然有待进一步提升。


在人工地物环境中,存在大量的线特征,如墙线、屋檐等,线特征平直锐利,能够快速表达三维场景特征,使用线特征进行三维场景重建一个重要研究方向。在特征线提取研究方面,包括传统的边缘算子和基于深度学习的方法。传统的边缘算子通过寻找影像中强度、颜色、纹理等的突然变化来检测边缘区域,如Sobel探测器[6]、Canny算子[7]、线段检测器(line segment detector, LSD)算法[8];传统边缘检测算法精度有限,有学者尝试使用深度学习算法来识别边缘像素,如文献[9]发明了一个端到端的边缘检测模型(holistically-nested edge detection, HED),该模型能够利用到不同中间层的输出结果;接着文献[10]针对HED进行了改进,并提出了RCF模型(richer convolutional features for edge detection),该模型融合了卷积神经网络中所有卷积层的多尺度特征,提高了检测精度。之后文献[11]提出双向级联网络模型(bi-directional cascade network, BDCN),与以往不同,该模型提出了一种双向级联网络来实现有效的层特定的边缘学习,使得网络相关参数减少,并进一步提高了精度。


在基于线特征的三维重建方面,文献[12]提出了一种从航空影像中重建道路边缘的算法,借助对极几何来匹配城市场景下存在较多的直边缘,实现道路重建。文献[13]使用LSD算法提取出二维影像直线段,使用纯几何约束和图聚类算法实现了基于线段的三维重建。文献[14]提出一种类似SLAM(simultaneous localization and mapping)的基于线的SfM(structure from motion)系统,能够仅用线段重建出大规模的城市场景。在国内利用线特征进行三维重建的研究中,文献[15-16]针对直线段的匹配进行了相关研究,文献[17]在线特征约束下结合点特征对建筑物立面进行了三维重建。综上,当前大部分都是利用直线段特征来辅助三维重建,其重建结果也往往是恢复了场景中直边的边缘轮廓,如道路线、建筑物直线等,对曲线边缘的利用仍较少。


结合前人研究和存在问题,研究拟利用提取出的所有边缘轮廓线进行三维轮廓重建和网格模型优化。首先,利用BDCN模型和相应预处理算法,提取出二维影像上的边缘轮廓线;接着基于对极几何原理的核线引导和三角测量原理,建立线段的初始匹配假设;然后通过相似度计算和图聚类算法重建出三维轮廓线模型结果;最后将结果应用于三维网格模型的优化。结果对提高线特征利用效率、提升三维模型重建精度具有重要意义。

1 研究方法

1.1 二维边缘轮廓提取算法

研究先进行边缘轮廓提取。边缘检测算法主要是用于从影像中提取目标物的边界和一些有意义的局部细节信息。选取双向级联边缘检测网络BDCN进行边缘轮廓提取。影像中的边缘信息往往存在较大的尺度差异,BDCN采用轻量级VGGNet(visual geometry group network) 作为骨干网络,其网络中包括了多个增量检测块(incremental detection, ID),每个ID块先将VGG16卷积层进行划分,然后嵌入尺度增强模块(scale enhancement module, SEM),以丰富其多尺度的表示。在训练过程中,BDCN网络中的每个ID块,由其双向级联网络,通过相邻上下卷积层的输出所推断得到的特定尺度下的边缘标记来监督,在不同层中进行层特定尺度下的训练任务,能够提取到不同尺度的边缘信息。SEM使用膨胀卷积来生成多尺度的特征,用于丰富多尺度表示同时,增强每层输出的特征。最后对所有层的输出进行融合。BDCN模型是基于BSDS500数据集[18]进行训练,在训练时,batch size设置为10,初始学习率设置为1e-6,动量设置为0.9,权重衰减设置为2e-4,共迭代了40 k次,每10 k次迭代后,学习率下降10倍,其网络结构见图1。

利用BDCN网络得到的原始结果为边缘轮廓概率值的可视化结果,会包含大量的粗糙边缘和噪声,需要对其进行预处理,过程如下。

1)非极大值抑制。

找到局部最大值,只保留梯度方向上变化率最大的边缘像素点,并抑制邻域内的其余值,对边缘轮廓线进行初步精细。

2)阈值化和形态学细化。

抑制后轮廓线仍不是单个像素宽,需进一步细化,通过阈值化得到二值影像,选用Zhang-Suen细化算法[19]继续细化边缘轮廓。

3)矢量化。

物体边缘轮廓线包含一些较为复杂的拓扑结构信息,为保证提取出的轮廓线能够准确反应图像中的轮廓结构,研究提出了基于图的矢量化过程(图2):①构建无向图G(V,E),顶点集合V对应于影像中的边缘像素中心,边集合E表示顶点所对应边缘像素的8邻域内与其他边缘像素之间的邻接,通过邻接关系为每个顶点构建邻接集合;②根据顶点邻接集合中的顶点个数,将顶点类型划分为端点、中心点和中间点。对顶点和邻接集合进行迭代搜索,遇到端点或中心点则判断终止,进而获取多段线的坐标集合信息;③使用Douglas-Peuker算法对离散顶点坐标集进行平滑,端点顶点位置不变,中间顶点集调整为最短序列,同时确保不偏移原始坐标超过一定的阈值,即可得到准确的边缘轮廓线矢量化结果。

1.2 融合SfM先验信息的三维轮廓线重建算法
1.2.1 核线引导建立候选匹配

建立不同影像上同一线段的匹配是三维轮廓重建的前提,确定出候选匹配对,包括邻域影像计算、核线约束、三维线段假设生成3个步骤。

1)邻域影像计算。

借助SfM的先验信息,利用稀疏点云信息计算邻域影像,两张影像所共享的可见稀疏点的数目越多,图像信息越相似,取Dice相似性系数(式1)前10张的影像作为候选邻域影像。

S i,j = 2⋅|X i ∩ X i | | X i |+|X j | (1)

式中:Xi、Xj分别为影像Ii和Ij可见的稀疏点集。

2)核线约束。

利用相机姿态信息,采用纯几何约束的对极几何原理,在邻域影像上遍历所有线段,进行初步匹配。利用式(2)计算匹配得分,小于设定阈值的线段剔除,通常该阈值的设定范围为0.2~0.3,此时可得到大量候选匹配对。

s(l k i ,l m j )= d inner (p m j ,q m j ,χ 1 ,χ 2 ) d outer (p m j ,q m j ,χ 1 ,χ 2 ) (2)

式中:p m j 和q m j 表示对应线段l m j 的两个端点;χ1和χ2表示l m j 所在直线与核线的交点,核线是从l m j 的端点计算得到,这4点一定位于同一直线上,dinner和douter分别表示这4点中内侧两点之间和外侧两点之间的欧氏距离。

3)三维线段假设生成。

为进一步增强图像匹配的准确性,将候选匹配对映射到三维空间中,构建三维线段假设。以线段l k i 在邻域影像Ij上的一组候选匹配为例(图3),将候选匹配线段l m j 和它的相机中心点Cj组成平面,将源线段l k i 的两个端点与其相机中心点Ci相连组成两条射线,两射线可与平面相交,得到空间中的两交点,两交点相连则为l k i 对应的三维线段h k,m i,j ,即一条三维线段假设,每个源线段可能存在多个三维线段位置假设。

1.2.2 三维轮廓线模型重建
1)候选匹配对筛选。

三维线段位置假设生成后,需从中为每个源线段的多个三维线段位置假设中筛选出正确的三维位置估计。筛选基本思想为:任一源线段在不同邻域影像上的正确三维位置假设,在三维空间中是相互临近的。基于此,计算任一三维线段假设与来自同一源线段的其它三维线段假设的角度和位置差异,通过设定的阈值进行筛选,阈值一般设定为1,以确保验证通过后的三维线段假设能够得到至少两张以上的邻域影像上的支撑,见式(3)。

c(h k,m i,j )= ∑ x∈V i max y∈{1,⋯,k x } {A(h k,m i,j ,h k,y i,x )} (3)

式中:A(h k,m i,j ,h k,y i,x )表示两个三维线段假设之间的相似度,包含了角度和位置相似度。

2)三维轮廓线模型恢复。

此时保留的三维线段假设大多是正确的,可进行三维轮廓线模型恢复。先为每张影像中的二维线段赋予上节筛选出的三维位置估计。三维空间中的一条线段会在多张二维影像中出现,因此对不同影像上的匹配二维线段的三维位置估计进行融合处理,以得到最终的三维轮廓线模型。融合过程:①构建一个图G(V,E),每个图的顶点V代表一个线段的估计位置,图的边E代表线段之间的关系,边的权重为线段之间的位置和角度相似程度;②使用图聚类算法,将相似度高的线段估计位置聚为集合,得到聚类三维线段集Π={Π1…Πt};③计算出每个三维线段集Π中所有线段端点的重心,对包含所有端点的散布矩阵进行奇异值分解(singular value decomposition,SVD),计算出每个集合中线段的主要方向,即可得到三维代表线段集L={L1…Lt},L即为融合后的三维轮廓线模型结果。

1.2.3 三维轮廓线重建结果精度评价

三维轮廓线重建结果的定量精度评价指标选取平均绝对误差(mean absolute error, MAE)和标准差。MAE是指实际观测值与真实值之间的绝对值之和除以观测值数量。标准差是测量一组数据离其均值的分散程度,可用来表示重建结果的整体误差水平,见式(4)。

ΜAE= ∑ | Ο-Ρ | n (4)

式中:O表示真实值;P表示实际观测值;n为观测值的数量。MAE值越小,表示精度越高。

S= ∑ i=1 n ( x i - x ¯ ) 2 n-1 (5)

式中:xi表示真实点云到实际三维重建轮廓点云的距离;x ¯ 表示所有距离的平均值;n表示点的个数。S值越小,表示整体精度越高。

1.3 附加三维线约束的网格优化算法

基于影像一致性约束和正则化约束算法恢复出的三维模型,在线特征边缘区域会存在过于平滑的问题。针对此问题,采用一种附加三维线约束的网格优化算法[20],将上述算法得到的三维轮廓线模型添加到三维网格模型重建约束中。其过程主要是对得到的轮廓线段附近的网格顶点集{V}进行位置调整。算法流程如图4所示。

为确保调整后网格顶点的精度,待调整的网格顶点需满足3个条件:①投影位置约束,该网格顶点在三维线段上的投影点应位于线段的两个端点之间;②距离约束,网格顶点到相应三维线段即投影点的欧氏距离应小于整个三角网格模型边长的平均值;③三角形面片约束,选取的网格顶点不能来自同一三角形面片,避免狭长三角形的出现影响后续纹理映射过程。通过计算网格顶点集{V}到其最近邻三维线段的投影点之间的坐标差值来引入线约束能量函数,见式(6)。

式中:Pi为{V}中待调整的网格顶点坐标;P′i是该网格顶点到其最近邻三维线段的投影点坐标。对于网格表面{V}以外的其他顶点,其线约束能量设定为0。调整后即得到附加三维轮廓线约束优化后的网格模型。

2 实验与分析

2.1 实验环境与数据
2.1.1 实验环境

实验的系统运行环境为WSL2 Ubuntu 18.04 LTS,配置硬件主要包括:CPU为Intel(R) Core(TM) i7-8700六核处理器,内存64 GB,显卡为NVIDIA GeForce GTX 1660。双向级联边缘检测网络BDCN采用的深度学习框架为Pytorch, python版本为3.8.5,后续预处理过程和融合SfM先验信息的三维轮廓线重建方法采用C++编程语言。

2.1.2 实验数据

实验数据选取了实际场景数据集和标准数据集。实际场景数据集选择ArcGIS公司公开的Building-Imagery-P36数据集,下载地址为:https: //doc. arcgis.com/en/drone2map/latest/help/sample-data.htm, 它是Pix4D官方通过无人机搭载Sony NEX-5T相机于德国采集的36组影像数据集,影像分辨率为4 912像素×3 264像素,用作定性实验分析。标准数据集选择DTU MVS[21],它是由丹麦技术大学提供的用于立体匹配算法评测的多角度影像数据集,影像分辨率为1 600像素×1 200像素,此外它还提供了由结构光扫描仪得到的真值点云数据,主要用作定量实验分析,部分作定性分析。影像示例如图5所示。

2.2 二维边缘轮廓提取分析

选取两幅实验影像数据,分别使用本文的BDCN和对应的预处理算法,以及经典的LSD算法,进行二维边缘轮廓提取实验。图6、图7分别为实际场景数据Building-Imagery-P36、标准数据集中DTU-006的实验效果,从图6(b)、图7(b)来看,LSD算法在重复纹理区域(如房顶)会聚集大量的密集冗余线段,同时还存在有较多非结构的短线段。图6(c)、图7(c)为本文算法提取出的线特征结果,大部分对应于场景中的边缘轮廓结构,在重复纹理区域几乎没有冗余线段,整体结果精简而又完整。综上,本文算法能够很好地抑制高频纹理区域所导致的冗余,提取线段更贴合整体轮廓结构,可为后续重建过程提供优质的边缘轮廓线输入。

2.3 三维轮廓线重建实验结果分析
2.3.1 定性分析

分别使用本文研究算法和标准Line3D++算法进行三维轮廓线重建的实验,Line3D++算法是一种经典的基于三维线段的模型重建算法[13]。表1对比了两种算法下三维线重建模型的三维线段数量、效率。Line3D++算法提取出的三维线段数远多于本文算法,重建时间是本文算法的1.34~2.89倍,究其原因,Line3D++对场景中的大量冗余线段进行重建,因此耗时更多。

表1 重建结果对比


数据

算法

三维线段数/条

重建时间/s

Building-Imagery-P36

Line3D++

2 936

40.201

Building-Imagery-P36

本文算法

1 330

29.832

DTU-006

Line3D++

3 380

49.084

DTU-006

本文算法

882

17.009

通过整体效果和局部放大细节,对比模型的视觉效果。Building-Imagery-P36场景数据的特点为房屋屋顶存在大量重复纹理区域,重建结果如图8,利用Line3D++算法得到的三维重建结果存在大量的冗余直线,还包括部分错误线段,如图中红色虚线放大区域,模型的最终精度和视觉效果都造成了严重的影响。利用本文算法得到的重建结果精简而又完整,轮廓模型很好地对应了场景中的轮廓,整体视觉效果更好。

DTU-006数据景特点为墙面纹理丰富。Line3D++算法得到的重建结果存在很多细小的非结构窄线段,在边线区域有多条线段堆叠现象(右侧放大图),同时存在墙线残缺问题(左侧放大图)。利用本文算法得到的三维轮廓线模型的非结构的窄线段较少,大多为长轮廓线,且墙面没有冗余线,轮廓线模型更为准确精简,实验结果如图9所示。

2.3.2 定量分析

将重建出的三维线模型转化为轮廓点云,并与数据集提供的真值点云进行比较,计算轮廓点云中每个点到最近邻点之间的坐标偏移值,使用MAE和标准差作为精度评价指标。

表2为DTU MVS数据集中7组数据的定量分析结果。与上节结果相同,本文算法重建出的三维轮廓线模型的线段数和重建时间都明显少于Line3D++算法。从重建精度来看,本文算法下的轮廓点云的MAE和标准差值均低于Line3D++算法。究其原因,主要得益于精简而又完整的轮廓线输入,高精度的候选线段对匹配和筛选,以及基于图聚类算法的稳健的线段融合,最终确保构建出完整、高精度的三维轮廓线模型。

表2 重建结果定量对比

实验数据

算法

三维线段数/条

重建时间/s

MAE

标准差

DTU-006

Line3D++

3 380

49.084

0.744

1.296

DTU-006

本文算法

882

17.009

0.530

0.695

DTU-011

Line3D++

1 444

22.415

1.197

1.566

DTU-011

本文算法

423

13.872

0.696

0.757

DTU-023

Line3D++

3 919

56.381

0.750

1.214

DTU-023

本文算法

1 049

39.891

0.488

0.576

DTU-024

Line3D++

4 239

55.032

1.186

1.755

DTU-024

本文算法

643

11.892

0.580

0.747

DTU-037

Line3D++

1 374

20.436

1.116

1.373

DTU-037

本文算法

496

9.645

0.995

0.881

DTU-043

Line3D++

3 462

54.609

0.943

1.548

DTU-043

本文算法

999

16.640

0.604

0.764

DTU-046

Line3D++

3 493

52.383

0.610

1.078

DTU-046

本文算法

896

23.771

0.407

0.517

2.4 附加三维线约束的网格优化实验

在DTU数据集中选取两组数据,利用传统优化方法和附加三维线约束的优化方法分别生成网格模型,对比二者效果。从图10、图11中可以看出,传统优化方法得出的网格模型在红色虚线放大窗户等区域中过于平滑,细节效果差。而在添加三维轮廓线约束后,模型在保证表面一定程度平滑的情况下,有效地保留了边缘特征的平直尖锐特性,细节效果更加符合真实场景。

3 结束语

人工地物场景中线特征较为丰富,为弥补现有研究中线特征利用不充分、重建精度低的问题,本文研究了一种联合地物轮廓线的三维重建算法。首先,使用BDCN模型在二维影像上提取出原始边缘轮廓线,利用非极大值抑制等预处理算法对原始线段进行细化和矢量化;接着,基于对极几何原理的核线引导和三角测量原理建立线段的初始匹配假设;然后,通过线段相似性计算和图聚类算法重建出三维轮廓线模型;最后将结果应用于三维网格模型的优化。使用两组公开数据集对本文算法进行了实验,结果表明:本文方法提取出的轮廓线段精简而完整,相比经典的Line3D++算法,其重建精度和重建效率都有明显提升。同时,附加三维轮廓线约束后,生成的网格模型有效保留了边缘特征的平直尖锐特性,细节效果更佳。


作者:宫志群(1970—),男,黑龙江讷河人,教授级高工,硕士,主要研究方向为摄影测量。E-mail:86847691@qq.com

引用:宫志群,许锋,杨世廷,张栋樑,胡润田,袁婷.联合地物轮廓线的三维重建算法研究[J].测绘科学,2024,49(01):97-105.




- END -



历史干货

在线查看、下载 | 2024年最新测绘地理信息规范
单张卫星影像的建筑自动化三维重建
手机APP就能遥感AI解译?!亚米图源、遥感课程、外业助手...这个遥感APP太实用了
24版最新图源(高清+历史影像)!奥维地图秒加载
近500G航测和激光雷达数据集下载
利用ArcGIS确定一张照片的拍摄位置及方向
官方公布!带审图号的2024省_市_县行政区划矢量下载

【声明】内容源于网络
0
0
GIS前沿
分享测绘地信资讯,交流行业软件技巧。
内容 4923
粉丝 0
GIS前沿 分享测绘地信资讯,交流行业软件技巧。
总阅读6.7k
粉丝0
内容4.9k