田红霞,府伟娟,贺飞越,包赛赛,杨明潮
(中煤浙江测绘地理信息有限公司,浙江杭州 310021)
随着我国“智慧城市”建设的迅速发展,城市真三维模型作为“智慧城市”建设的重要基础设施,承载着城市中基础的数据信息,构建城市真三维模型在目前社会发展中具有广阔的应用前景以及不可估量的经济价值。随着倾斜摄影测量技术的不断发展,以及三维可视化的不断进步,短时间内高效率的大面积三维建模成为现实,这些技术的发展为我国“智慧城市”的建设提供了重要的基础数据[1-2]。根据倾斜摄影测量的建模的技术机理,构建的模型是一个连续的整体,是一个连续的TIN 网加纹理贴图,并没有实现目标对象的单体化[3]。然而,对大多数倾斜摄影三维模型的应用来说,单体化后的三维成果可以进行属性编辑,可以选中单个地物要素,具备GIS 查询和管理等功能,因此,实现三维模型的单体化能够打破了只能在三维模型中漫游浏览的局限功能,使地物要素管理更加智能化、精细化[4-6]。
目前,应用最广泛的单体化方法是以下四种。①参照倾斜摄影三维模型进行单体化建模,即利用人工干预的手段在倾斜摄影实景模型的基础上重新构建出单个的立体模型,这种方法比传统人工建模,在速度上有所提升;②逻辑单体化,即将矢量面数据覆盖到三维模型的表面,通过点选矢量图层的属性来达到单独选中三维模型的效果,这种方式没有真正将目标对象进行分离,限制了模型数据的应用空间;③ID 单体化,即给目标对象包含的三角面的预点赋予对应矢量面的ID 值,来达到单独选中的效果。该方法需要对模型数据进行预处理,属于一种折中的方法;④基于LiDAR 激光点云进行自动建模,该方法前期需要对LiDAR 激光点云数据进行分类处理,且模型精度受制于LiDAR 点云密度,需要的人工干预工作量大[7-11]。
倾斜摄影测量技术以高精度、大范围的方式全面感知复杂场景,生成“全要素、全纹理”的包含高精度具有量测性的实景三维模型,实景三维模型更符合人们的认知。但倾斜摄影三维模型各地理要素无法单独处理,使得倾斜摄影三维模型的应用仅局限于场景浏览[12-13]。鉴于此,笔者以瑞安市发改局“万亩千亿”三维可视化平台辅助决策系统项目为依托,获取测区范围无人机倾斜影像,开展基于可视化平台的建筑物单体化及信息提取研究。
实现三维模型建筑物单体化主要工作包括三维建模、建筑物轮廓提取、模型单体化三个方面的内容。本次研究工作目的是使可视化平台中三维模型数据能够更好的被管理。采用UNet 网络算法对数字正射影像(DOM)中建筑物的几何、纹理特征进行详细地分析,提出对建筑物进行粗略定位的方法,获取并筛选出建筑物的轮廓。在三维建筑物模型中获取建筑物高度信息,将建筑物轮廓矢量数据关联建筑物高度信息,拉伸建筑物轮廓矢量,从而获得建筑物单体化模型。具体流程如图1所示。
图1 工作流程Figure 1 Work Flow
无人机倾斜摄影建模是一种高效的三维建模技术,其原理主要是利用无人机搭载的倾斜摄影系统,从一个正射、四个倾斜等五个不同的角度采集影像数据,通过图像处理、配准、拼接等技术实现三维建模[14-15]。主要包括摄影数据采集、影像处理、自动空中三角测量、三维建模等步骤。
UNet 模型是一种典型的具有“编码—解码”结构的深度学习模型,其基本结构如图2 所示。UNet呈左右对称结构,左侧为模型编码部分,右侧为解码部分。编码部分由4 个子模块组成,每个子模块对模型进行二倍下采样,每经过一个子模块,图像分辨率下降为原来的二分之一。解码部分也是由4个子模块组成,每个子模块对输入图像进行二倍上采样,每经过一个子模块,图像的分辨率上升为输入图像的二倍。此外,为了帮助模型在解码阶段恢复图像的细节特征,在解码部分加入了编码部分对应分辨率的特征图[15]。
图2 UNet基本结构Figure 2 UNet basic structure
2021 年6 月,对依托项目所在区域进行影像数据采集。采用大疆无人机搭载睿铂DG3 PRO 五镜头相机(2 400×5=12 000 万像素,42.8mm 等效镜头),航飞高度为100m,获取4 685张航拍影像。
对航摄影像进行三维建模,主要包括航线布设及数据采集、影像预处理、自动空中三角测量、倾斜三维模型生产4个方面。
1)航线布设及数据采集。航飞前先对测区周边环境进行勘察,收集地形地貌信息,保障无人机能正常进行航飞作业。像控点需选在无遮挡的环境下布设,像控点与像控点之间间隔在300~400m之间,且尽量上下左右之间均匀分布。在航线参数设置上,一般航向重叠度设置不小于70%,旁向重叠度不小于60%。航飞前应确保天气和飞行条件,观察风力风向,云层厚度和光照可见度。
2)影像处理。将航飞回来的数据进行导出整理,确保POS 数据能一一对应不同影像,剔除一些往返路途所拍摄的无用影像,减少数据处理时间。如若天气变化原因,出现不同架次的影像色彩存在差异,则需在匀光匀色软件上进行色彩自动调节。
3)自动空中三角测量。将预处理完成后的影像进行空中三角测量及加密,当生成点云数据后,导入控制点文件,为调整影像所带来的经度和高程误差,则需要在相应影像上选定对应控制点进行精确定位。最后进行整体空三平差。
4)三维建模。确保空中三角测量完成无误后,调整模型所需范围和瓦块切块大小,选定模型空间参考系统和纹理压缩比例后,即可自动生成三维模型。同时,生成数字正射影像图。
利用大疆智图软件将数字正射影像进行对比度和色彩饱和度调整、匀色、锐化与去雾等预处理,将满足规范重叠度的影像合成一张分辨率为0.1m的研究区域数字正射影像,并将该研究区域南面的89幢建筑物做训练,北面的97幢建筑物用作测试。
研究区域正射影像的南面建筑物是训练数据,采用人工手动绘制建筑物轮廓作为训练标签,为获取更为精确的训练样本,需要严格按照建筑物外轮廓进行绘制,共绘制了89 个训练标签,如图3 所示,手动绘制的训练标签紧贴正射影像建筑物外轮廓。
图3 人工绘制建筑物轮廓Figure 3 Artificial draw for building outline by articical
根据研究区域正射影像可知,在进行标签制作时,训练区建筑物轮廓周围存在居民自主搭建的附属建筑物如晾衣架、遮阳板等,对精确绘制建筑物轮廓存在一定的影响。经多次实验,分析周围相似建筑物轮廓,寻找没有遮挡的建筑物,进行模仿绘制轮廓。
该研究实验环境为Windows10、处理器为Intel(R)Core(TM)i79700k CPU @3.60GHz 3.60GHz,64G运行内存,1T 硬盘,显卡为NVIDIA GeForce GTX 2080S,使用GPU 加速计算,在Python 编程语言下搭建Pytorch深度学习框架。
(1)影像标签裁剪及增强
将正射影像及对应的标签数据采用重叠方式分割成1 024×1 024 像素大小的子影像,每幅子影像重叠区域的宽度均为512 像素。因此,试验区影像分割后共得到800 张子影像,分割标签与分割影像相同,确保标签的行列数、像元大小必须与影像的行列数、分辨率对应一致。由于建筑物样本较少,造成了整个数据的正负样例分布极其不平衡。因此,将生成的800 张子影像及标签进行训练数据增强,增强训练数据能够较大地减少计算机视觉模型的泛化误差,同时训练数据的数量大小也会影响模型的质量效果,因此,通过多角度旋转和多种镜像的几何变换增广两种数据增强方式,将训练数据集扩充到原始的4.5倍,如图4所示。
图4 训练标签数据增强Figure 4 Data enhancement for label training data enhancement
(2)模型训练
由于UNet网络模型是一个普适性的算法模型,因此需要针对训练区的训练样本进行专门训练,生成专门用于提取建筑物轮廓矢量的训练模型。采用UNet网络模型对训练样本中的3 600张子影像进行训练,将训练样本按9∶1 比例随机分为训练集和验证集。训练模型用时为12h,对360张子影像验证集进行自动建筑物轮廓提取验证,用时约为30min。
在样本进行训练时,最佳的迭代训练次数难以快速准确确定,一般来说训练次数越高,提取效果越好,但是消耗的时间也越长。为解决这一问题可以先设定一个理论最优训练次数,然后逐渐逼近,找出最佳的训练次数。
(1)初始轮廓的提取
将研究区域正射影像的北面作为目标测试区域,该区域占地面积约为0.07km2,共97 幢建筑物,建筑物周围居民自搭自建的附属设施与高大植被较少。用生成好的UNet 训练模型对目标区域进行建筑物的初始轮廓提取,提取的建筑物轮廓整体较为完整,如图5a 所示,但同时也存在部分建筑物轮廓缺失及轮廓边框存在明显的锯齿的情况,如图5b所示。
图5 建筑物初始轮廓提取Figure 5 Extraction for rough building outline
(2)轮廓优化操作
那么,造成建筑物轮廓缺失的原因是什么呢?通过分析可知,首先,缺失区域建筑物屋顶玻璃反光导致正射影像中部分信息缺失,使得在进行建筑物轮廓提取过程中提取轮廓出现空洞现象;其次,缺失区域建筑物周围有高大植被覆盖屋檐,以及居民自主搭建的附属建筑物,导致提取的建筑物轮廓存在明显锯齿状;最后,缺失建筑物屋顶材质及纹理不一致,导致一个建筑物割裂成两个轮廓。基于以上三个方面的分析,采用神经网络中UNet网络模型提取建筑物初始轮廓不能完整反映建筑物实体轮廓情况,需对初始轮廓进行适当的人工交互优化操作。优化操作主要包括去除噪点、补充空洞区域及锯齿状边缘修改完善等工作。因此,通过人工交互优化操作后,建筑物轮廓整体较为完整,建筑物轮廓包裹正射影像建筑物较为完整,能较为真实反映建筑物轮廓边界信息(图6)。
图6 优化后的建筑物轮廓Figure 6 Optimized building outline
(3)精度统计
为了验证UNet模型提取建筑物轮廓的精度,以人工提取目标测试区域内建筑物的轮廓边长作为参考数据,共采集了72条建筑物的轮廓边长。将优化后的建筑物轮廓的边长与之对应的人工提取轮廓边长进行比较,具体边长精度统计数据见表1所示。
表1 建筑物轮廓边长精度统计Table1 Accuracy statistics for the length of building outline
通过表1 建筑物轮廓边长精度对比分析,比较72 条检测边长,较差Δ>0.05m 的边长数量为9 条,较差Δ≤0.05m 的边长数量为63 条,通过比对表明UNet 模型提取建筑物的初始轮廓,再经过人工交互优化操作的建筑物轮廓,能够满足建筑物单体化轮廓提取的要求,在建筑物单体化研究方面具有一定的推广性。
根据重建建筑物三维模型测量出目标区的建筑物高度,将提取建筑物轮廓的矢量数据关联建筑物高度信息,在ArcScene 中以建筑物高度信息为拉伸基准,拉伸建筑物轮廓矢量,生成了建筑物单体化模型(图7)。在三维建筑物模型上量取建筑物高度时,要注意屋顶的附属建筑物及斜屋顶,防止建筑物的高度失真,影响单体化模型的精度。另外,在完成三维模型建筑物单体化后,可对其进行属性信息赋值,挂接属性表的关联属性值采用单个建筑物的ID 值,将属性表的信息准确赋值到建筑物上,为后期查询建筑物信息提供信息基础。
图7 建筑物模型单体化Figure 7 Monomerization for building model
基于UNet 网络提取正射影像的建筑物轮廓及优化操作为实现三维建筑物模型单体化研究具有一定意义。通过将优化后的建筑物轮廓的边长与之对应的人工提取轮廓边长进行精度分析与比较,大部分检测边长的较差小于0.05m,表明该方法能够满足建筑物单体化轮廓提取的要求,在建筑物单体化研究方面具有一定的推广性。