面向复杂城市三维场景可视域分析方法
2021-06-21孙亚琴徐强国靳文举詹秀眉
孙亚琴,张 林,徐强国,靳文举,詹秀眉
(1.自然资源部国土环境与灾害监测重点实验室,江苏 徐州 221116;2.中国矿业大学环境与测绘学院,江苏 徐州 221116;3.兖煤菏泽能化有限公司,赵楼煤矿,山东 菏泽 274705)
0 引 言
精细化城市三维场景是智慧城市空间信息基础设施重要组成部分,对实现城市智能化管理至关重要[1]。构建精细化城市三维场景不仅促使三维模型包含更丰富信息,也导致模型数量和种类呈爆炸式增长,复杂程度剧增。精细化城市三维场景高效、准确地服务于城市智能化管理,是目前亟待解决的问题。
在复杂城市三维场景中,可视域分析在路径规划、地物要素(如建筑物、交通标志牌)遮挡分析、日照分析、监控摄像头选址等具有重要的作用[2-3]。传统可视域分析方法[4-5]研究对象是地形数据,地物单一,不适合复杂城市三维场景。随着三维GIS的发展,诸多学者对城市三维场景的可视域分析方法进行了深入研究。Shinya等通过将建筑物高度信息叠加到地形DEM数据上生成城市数字高程模型(UDEM)来实现可视域分析[6]。周永望等将基于城市RSG高程数据的LOS(Line of Sight)可视算法、平面视域算法扩展到立体视域计算实现城市可视域分析[7]。基于城市建筑模型的可视域分析一般通过对视线与组成建筑物模型的三角形面元进行相交测试来实现,但方法通常有大量冗余计算,效率低。为加速计算,有研究通过提取建筑物的最小矩形外包盒以及其对视点可视的角点,计算视点与可视角点构成的模型锥体在另一模型锥体底面上投影区与锥体底面多边形的差集,从而得到每个建筑模型的可视面实现建筑物可视域分析[8],但该方法面对复杂建筑物时,准确率较低。面向其他城市场景,如树木,Liu等提出一种改进的LOS的可视域分析算法[9],该方法将复杂的树木模型简化为两个旋转锥的组合,并基于此实现森林场景的可视域分析。
上述城市可视域分析方法都是面向单一城市对象(建筑物或者树木),且都将城市三维模型简化以便于计算,因此这些已有的方法在处理复杂模型时,会丢失大量细节信息,无法准确分析模型间的遮挡关系,同时处理对象单一,无法适用于精细化的城市三维场景。故为克服上述缺陷,本文提出一种基于三维草图-对象匹配模型的复杂城市三维场景可视域分析方法,避免了城市三维对象的简化,有效实现复杂城市三维场景下的可视域分析;同时,本文通过对监控摄像头的选址分析,验证了方法的有效性。
1 基于三维草图-对象匹配模型的可视域分析方法
作为人类生产活动的主要场所,建筑物是城市可视域分析的主要研究对象。城市建筑物的可视分析方法主要有基于插值与基于投影的方法。基于插值的城市建筑物可视域分析方法一般在地形数据上叠加建筑物高度信息,之后采用面向地形的LOS算法实现可视域分析,其本质仍为较传统的地形可视域分析方法,分析对象为地形数据,故建筑物的表达精度依赖于地形精度,无法较好地表达复杂建筑物,继而导致分析结果可信度较低。
基于投影的城市建筑物可视域分析方法以单个建筑物为分析对象,通过投影将建筑物从三维转为二维,减少了计算量,降低了计算复杂度。尹长林等[10]首先将视线与建筑物投影到同一水平面确定被视线穿过的建筑物,然后将这些待分析的建筑物投影至与视线垂直的平面,通过判断视线与建筑物的投影是否相交来实现可视域分析。靳海亮等[8]首先计算建筑物的最小矩形包围盒与视点构成的锥体,然后选择视距范围内的一锥体作为参考,计算其他锥体在该锥体底面的投影与其底面的差集,之后将不为空的差集投影至水平面上,对投影后得到的结果进行计算得到可视域分析结果。但是基于投影方法的处理对象均是简化了的模型且种类单一,需要两次投影,每次都以视线为参考选择投影面,无法采用统一的投影坐标系,对于精细化三维模型而言,投影后的二维平面图形的解算难度较大。
由于现有基于投影的可视域分析方法难以运用于复杂城市三维场景,故本文提出基于三维草图-对象匹配模型实现可视域分析。为降低计算复杂度和适应城市三维场景精细化的特点,该模型将现有方法中基于面投影的计算退化为基于点投影的计算。因城市三维场景对象空间关系复杂,本文提出“三维草图”来储存可视域分析结果中可视的对象,然后以“三维草图”为依据进行对象匹配得到最终的可视域分析结果。因需求上的差异,不同应用的可视域分析空间范围(即视域)也不尽相同,同时相比于城市三维场景而言,视域的大小远远小于城市大小,因此面向复杂城市三维场景的可视域分析问题就转化为视域空间范围的快速计算及基于三维草图的对象匹配模型两个问题。
1.1 视域快速计算
如缓冲区分析需要指定缓冲半径来确定分析范围,可视域分析亦需要借助视域来表达分析范围,进而找到待分析对象。视域所表达的场景反映了在实际应用中可视域分析的适用场景,将大场景分析问题转化为小场景问题,既提高可视域分析的时间效率,又提高了匹配的效率和准确度。视域的表达随着应用场景的改变而变化,本文采用以视锥体作为视域的方法,此时视域由视点、视距、视角来表达空间范围,通过视点确定观察的位置,视距和视角实现观察范围的动态调节。
虽然复杂城市三维场景多种类型的对象之间相互交错(如树木和交通标志),但是不同的对象在地理空间中仍相对独立,因此,以单个对象作为视域提取的切入点,使用基于层次匹配的三维对象提取实现视域快速计算。为了对该方法进行描述,现给出定义fo(A∩B):对两个空间实体A、B进行交集运算,然后根据结果集返回A和B的空间关系(包含、相交和相离)。
复杂城市三维场景中,直接通过遍历每个对象与视域的交集来实现视域提取过于复杂,为了简化计算,本文首先采用通过简化城市三维对象找到与可能位于视域内部的三维对象,之后进行精确的视域提取,从而获得最终的待分析对象,过程如下:
(1)计算每个城市三维对象最小矩形包围盒(B)、最小外接球(S)。
(2)设置视点、视距和视角,完成视域(VF)的绘制,并计算视域的最小外接球(Sview)。
(3)对任意三维对象,通过fo(Sview∩S)遍历找到与Sview相交的对象,如图1(a)中的对象B、C、D。
(4)取步骤(3)中的任一对象,通过fo(VF∩B)判断该对象最小矩形包围盒与视域的空间关系,若相离,如图1(b)D,剔除对象;若包含,如图1(b)B,标记该对象为视域内部对象;若相交,如图1(b)C,进入步骤(5)。
图1 可视域提取
(5)遍历与视域相交的对象任意顶点P,通过fo(Sview∩P)找到每个对象位于视域内部的部分,如图1(c)中对象C的实线部分。
经过以上过程,位于视域内部的对象被精确提取,减少了后续可视域分析计算的数据量,有助于提高计算效率。
1.2 可视域分析计算
城市三维场景非常复杂,对象形状存在较大差异,空间关系复杂,很多情况下对象之间会相互遮挡或者包含,插值的方法在此并不适用。根据1.1精确筛选了位于视域内部的对象,但也导致大多对象的碎片化,形状差异进一步增大,增加了投影后二维图像的解算难度。为了减少计算复杂度,本文直接基于点进行投影计算,为充分利用三维坐标下每个点都表示一个向量的特性,简化投影计算,故本文基于三维草图的对象匹配模型可分为坐标系转换、“三维对象-三维草图”映射和三维对象匹配三部分,具体如下。
(1)坐标系转换。首先通过旋转矩阵R和平移向量T将视域内的对象从世界坐标系(图2 a)转至以视点为原点的视点坐标系(图2 b),即式(1)。
(1)
式(1)中,(Xv,Yv,Zv)为对象在视点坐标系下的坐标,(Xw,Yw,Zw)为视点在原始坐标系下的坐标。完成转换后,后续的计算直接使用其三维坐标即可,无须多余的坐标计算。
(2)“三维对象-三维草图”映射。根据视域范围,构建以视点为中心、边长为2a和每个平面的分辨率为dx×dy的立方体作为三维草图(图2 c),相比于二维草图,三维草图可以更好的保留视点于对象、对象与对象间的空间遮挡关系,拥有三维对象的特点,场景维度不变,便于进行对象匹配。创建以视点为起点、指向立方体平面网格的视线,对于每条视线,沿着视线方向将视线方向上的对象顶点投影到对应的网格中,如果在视线方向上不存在对象顶点(如图2 c中白色的网格),那么网格为空,如果存在多个对象,那么将网格存储的对象设为视该线第一个遇到的对象的点与视点的距离值(如图2 c中深色的网格),相比于直接记录点,距离值无须对该点添加额外的身份信息,在进行对象匹配时,计算简单。待所有视线完成对所有对象的点的投影后,三维草图完整记录了可视域分析中可视对象的信息(图2 c)。
(3)三维对象匹配。三维对象匹配是从三维草图中提取出可视对象,并将结果展示在地图上,步骤为:① 选取视域内的任意一个对象O的点,计算其与视点的距离distance;② 根据对象O的点坐标获得三维草图对应位置的距离信息D;③ 如果distance<=D,那么对象O的该点可视,将该点在地图上标记为可视,否则,标记为不可视。
遍历视域对象集合,重复上述计算过程,得到所有可视和不可视对象。
3 可视域分析试验
3.1 实验平台与环境
基于本文方法,使用Cesium作为底层开发平台,利用JavaScript语言设计并实现了面向复杂城市三维场景的可视域分析,并以中国矿业大学南湖校区倾斜摄影模型作为实验数据。软件环境为Window10 64位系统,电脑型号为戴尔 Precision 7920 Tower图形工作站,CPU采用Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz(2195 MHz),内存16GB,显卡采用NVIDIA Quadro P2000(5 G显存)。
3.2 实验结果与分析
监控摄像头作为智慧城市管理的一种重要工具,合理的选址可以充分发挥其功能,提高城市管理效率,而且其有效监控范围为视锥形状,符合本文方法使用的视域,故将可视域分析应用于监控摄像头选址。
植被和建筑物为城市三维场景中最常见对象,因此,以此两种地物作为实验对象。选取镜头为8 mm的监控摄像头,在确定观察点及角度后,分别对植被和建筑物进行可视域分析,图3是可视化分析结果,其中a和b是对植被分析结果的正面图和侧面图,c和d是对建筑物分析结果的正面图和侧面图,绿色表示可视区域,红色表示不可视区域,蓝色球体代指监控摄像头位置。图3以及表1中运行时间表明,本文方法在保持单个模型原有形状的基础上,能够快速、准确执行可视域分析,达到实时可视化监控效果。
图3 监控摄像机监控范围可视域分析
在对单个模型实验的基础上,本文选择某典型校园作为复杂城市三维场景进行实验,在保持监控摄像头参数不变的情况下(表1),将观察范围延伸至200 m和500 m,图4和图5分别为分析结果,对用户而言,随着观察范围的增加,可视域分析结果等待并未造成明显影响。表明本方法可适用于复杂城市三维场景,大场景条件下仍可以实时、准确获得分析结果,是一种快速、稳健的方法。
表1 基于三维草图-对象匹配模型的可视域分析实验结果
图4 10~200 m范围可视域分析
图5 10~500 m范围可视域分析
4 结 语
本文面向复杂城市三维场景提出了一种基于三维草图-对象匹配模型的可视域分析方法。针对复杂城市三维场景数据海量的特点,基于层次匹配的三维对象提取实现视域提取,提高了可视域分析的计算效率。
(1)针对复杂城市三维场景对象的复杂性,难以直接计算空间关系,以及视域提取带来的对象碎片化问题,提出基于三维草图的对象匹配模型。
(2)通过视线将视域内部对象的顶点进行投影,在三维草图中记录视点可见顶点,基于对象匹配实现可视域分析,避免直接计算三维场景对象引起空间阻挡关系,同时充分考虑三维场景对象细节。
(3)监控摄像头选址分析试验结果表明,本文提出的可视域分析方法可很好适用于复杂城市三维场景,同时保留对象的细节信息,是一种快速、稳健的方法。下一步可围绕可视域分析定量化计算开展研究。