钟国
(河南省遥感测绘院,河南 郑州 450003)
目前市面上自动建模软件得到的三维数据是由密集匹配生成的点云数据连接成的不规则三角网(TIN)组成,输出成果通常是osgb 格式,而数据量的大小直接影响数据的传输和浏览。许多学者提出了利用单体化的方法对地物进行统一管理[1-2]。为此,本文尝试重构单体化以减少三维数据的数据量,提高三维数据加载效率,同时在不需要进行精细模型区域以DLG 数据为建筑底图,快速推拉出较低等级模型。
将外业采集到的多视影像、POS 数据以及相机自检校获取的相机参数作为原数据输入Smart3D。在软件中采用旋转、特征提取及密集匹配得到参与空三加密有效影像的旋转矩阵和像主点位置。在空三加密中各控制点和检查点的精度满足要求的前提下,利用软件生成osgb 格式的三维模型。
Sketchup 软件操作简单易上手,编辑功能较强,有学者已利用Sketchup 做出相关尝试,但不能引入倾斜摄影空三加密成果和osgb 三维模型,或仅引入空三加密成果,需在立体环境下确定建筑物高度,并应用单片对模型贴图[3-4]。故若能兼顾Sketchup 自身建模优势、倾斜摄影的空三加密成果和三维模型成果的优点,则可提升单体化效率。
根据OGC(Open Geospatial Consortium)中有关城市模型不同语义层级的定义[5],城市的不同区域,需要的单体模型层级不同。CityGML 定义的5 个细节层级如图1 所示,某项目要求的单体精细度与细节层级对照如表1 所示。
表1 某项目要求的单体精细度与细节层级对照
经过空三加密处理之后的影像会恢复拍摄时的位置关系,如图2 所示。对任意一个在航线中的建筑物来说,靠近正上方的影像即正射影像拍摄到的屋顶细节更丰富,偏离正上方的影像即倾斜影像则能拍摄到更多立面细节,例如建筑物高度、阳台侧面等。
图2 影像位置关系
在确定单体模型中某些面的高度或立面的缩进程度时,除利用影像边界位置,还可通过三维场景中的osgb 模型确定。如图3 所示,从左至右分别为LOD1、LOD2、LOD3 层级的单体模型与三角网交错显示情况。
图3 不同层级单体模型与osgb模型套合显示
若区域内已有相同坐标的地形图数据(如DWG 格式的数据),可将该数据导入工程,再利用Sketchup的自动构面插件,将DLG 数据中闭合线条自动封闭成平面。由影像或osgb 模型可判断建筑物高度,使用推拉工具,可将平面推拉成为LOD1 或LOD2 层级单体化模型。如图4 所示,DLG 数据和倾斜摄影得到的osgb模型和影像套合显示,平面位置无差异。图5 显示了采用DLG 数据推拉成的建筑物立体结构。
图4 DLG数据与影像和模型的无缝套合
图5 DLG数据自动构面后的立体结构
3.5.1 纹理自动映射
在拍摄物体时,如一个立面,影像得到的并非正射投影,而是随拍摄角度不同,产生一定的变换,即透视变换。因此需将平面投影到影像上对应的四边形纹理,经过纠正成为矩形并映射到对应平面。具体方法为 :确定四边形区域与纹理UV 坐标的一一对应关系。如图6 所示,同一平面投影到不同方位影像上的UV 坐标显示。自动映射后得到的纹理特征如图7 所示。
图6 平面投影在影像中的UV框
图7 经过纹理映射的平面(上)与群组(下)
3.5.2 纹理人工完善
由于某些植被距离建筑物立面较近,航空影像采集的角度并非任意,故采集到的立面纹理被地物遮挡,可利用第三方纹理编辑工具修复纹理,如图8 所示。
图8 修复前纹理(左)与修复后纹理(右)
完成纹理映射之后的模型在Sketchup 中,每个平面对应一张纹理。该种纹理存储方式不利于后续模型可视化。场景过大,单体模型数量较多,可能会因为计算机没有过多资源,导致工程退出。为提高可视化效率,软件会将导出的纹理进行封装,如图9 所示。
图9 封装的纹理
利用OSketch 软件完成某项目后,对作业效率进行统计,完成情况以及数据量对比分别如表2 和表3所示。数据量统计均为非压缩状态。由表3 可知,项目所得osgb模型的数据量是单体模型成果的约25倍。
表2 某项目工作量统计
表3 项目成果数据的数据量统计
利用StampGIS 发布obj 单体模型、测区DOM、DEM 数据,得到的三维场景包含地面起伏状况、建筑物信息。建筑物以外地物(如树木、公园小品、路灯等)采用平台自带的模型库按照DOM 放在相应位置。数据在平台上的成果如图10 和图11 所示。基于DLG 批量推拉成的数据无屋顶结构,用于非重点区域快速重建。基于osgb 和多视影像建模适用于重点区域精细建模。
图10 基于DLG数据单体模型发布成果
图11 基于osgb数据单体模型发布成果
采用本文所用的方法可快速为三维城市的建设提供有效的基础数据。如何进一步提高单体数据的自动化程度,特别是对单体模型要求较高的区域,是未来工作中需要继续研究的重点。