2020FME博客大赛——利用FME实现倾斜摄影的影像筛选

作者:李新双

单位:成都市勘察测绘研究院

摘要

倾斜摄影是目前获取实景三维模型数据、大比例尺地形图的重要手段之一。由于倾斜摄影的影像数量巨大,因此后期处理需要耗费较多的时间和硬件资源。在作业过程中,会有较多的外扩航线以保证测区内所有区域的多角度影像覆盖,而这些外扩航线产生拍摄到测区之外的无效影像。考虑到影像数量会直接影响后期处理的效率,因此将无效影像筛选并剔除可显著提高生产效率。本文从摄影测量学基本原理出发,在FME中利用多个转换器工具,可以较精准的计算出每张影像的地面覆盖范围,从而可以发现无效影像。经过验证测试,该方法可以减少约20%的影像数量。

1 问题分析

1.1 倾斜摄影的外扩航线

倾斜摄影技术具有获取效率高、产品类型丰富、成果精度高等显著特点,因此倾斜摄影已经逐渐成为高精度地理信息数据生产的重要技术手段。广泛应用于地形图、地籍图、实景三维模型等数据的生产,创造了巨大的经济效益和社会效益。

倾斜摄影的关键[地图部外网1] 在于任务区域内任意点都有多个方向的影像覆盖。相比传统的航空摄影,倾斜摄影的摄影基线更长、更多,因此可以具有更高的平面和高程精度[地图部外网2] 。在实施过程中,为保证任务区域内任意位置都有多角度的影像覆盖,尤其是任务区域边缘附近都能有各个方向的倾斜角度影像,需要在任务区域外设计较多的外扩航线和航点(图1)。

                                                                                       图1 外扩航线与外扩航点

1.2 有效影像与无效影像

以最常见的五相机为例,在航线上的每一次曝光,都会产生前后左右下五个方向的影像。而对于在任务区域边界附近的航线,就会产生较多的任务区域之外的影像。这些影像对作业生产没有作用,因此称之为无效影像。反之,那些影像所覆盖地面范围与任务区域有交集的影像则称之为有效影像(图2)。

                                                                                          图2 有效影像与无效影像

每次作业过程都会产生一定数量的无效影像,目前的主流生产流程未对影像的有效性进行较准确的鉴别,因此需要对全部影像进行处理。如果可以将这类无效影像通过某种方式分析筛选出来,就可以在后续处理过程中仅处理有效影像,即可有效的减少需要处理的影像数量。不仅可以减少后续处理时间,也可以减少自动处理过程中出错的几率,从而全面提高作业效率。

2 解决思路

2.1数字微分纠正正解法

要实现影像筛选功能,首先需要获得每张影像所拍摄的地面范围,然后就可以分辨出无效影像与有效影像,因此如何获得每张影像的地面覆盖是关键的问题。

利用摄影测量学中共线方程,可以根据影像的摄影中心位置、姿态等外方位元素,计算出地面上任意一点(XA,YA,ZA)在影像上的位置:

(1)式中(XS,YS,ZS)是影像外方位元素的线元素,即每张影像的成像位置。影像的姿态角构成影像外方位元素角元素,其中

中的值可以根据每张影像的姿态角的经过三角函数计算和矩阵计算得到。

对共线方程进行反转变换,即可得到影像上任意一点所对应的地面点的坐标(XA,YA,ZA)。经过反转后的共线方程在数字摄影测量学中称之为微分纠正正解法。

理论上利用微分纠正正解法可以计算出任意影像上任意像素所对应的地面位置,即可得到该影像的地面覆盖范围。但是观察(2)式可以看出若要获得地面点坐标(XA,YA),需要已知ZA,而此时ZA同样是未知值。因此在仅知道影像外方位元素的条件下无法通过(2)计算出地面点坐标。

2.2 旋转矩阵

对于旋转矩阵,可以由影像的姿态角经过矩阵运算得到。当选用HPR转角系统(Heading,Pitch,Roll)时,其计算过程如下:

 

2.3 迭代计算

《数字摄影测量学》一书中给出的解决方法是利用高程迭代的方法完成计算。先将ZA赋值为任务区的平均高程Z0,随后将Z0和影像外方位元素代入(2)中即可地面坐标值(X1,Y1)。然后将(X1,Y1)该点在DEM中内插,可获得该点的高程值Z1。再将Z1代入到(2)式中可计算得到新的地面坐标(X2,Y2)。如图3所示,经过多次迭代计算后即可获得较为准确的地面点坐标(XA,YA,ZA)。

                                                                                    图3 利用DEM进行迭代计算

3 实现方法

3.1 影像位置读取

通常影像的位置信息是以TXT、CSV、XLS等格式,以列表形式存储纪录。因此需要读取每张影像的影像名和影像位置坐标(XS,YS,ZS)。可以直接使用Reader读取相应的文件,并且使用AttributeRenamer将需要使用的影像文件名、X、Y、Z等字段进行重命名。

3.2 影像姿态角计算与赋值

通常情况下测绘航空摄影可以利用差分GPS设备得到高精度的影像位置数据,在影像覆盖分析计算时可以直接视为影像的外方位元素。对于外方位元素中姿态角数据航向角Heading、仰俯角Pitch、横滚角Roll在没有高精度的IMU设备时,可以根据航线的方向和相机的安置角赋予一个近似值。首先根据相邻影像之间的位置关系,计算出每张影像的航向角。考虑到无人机在航线飞行时姿态较平稳,没有仰俯和横滚变化,可以假定倾斜相机的倾斜角度Pitch即为相机的安装角45度,而横滚角为0度。

在FME中可以获取每张影像和对应下一张影像的坐标差值(dx,dy),然后使用公式

即可计算出影像的航向角H(Heading)。然而如果所有影像使用该方法,则每条航线最后一张影像计算出的航向角会错误的指向下一条航线的第一张影像。因此在实际实现过程中,需要综合考虑计算分析每张影像之前和之后的多张影像,才能获得较为准确的航向角。

在FME中多次使用AttributeCreator和Tester转换器,可实现坐标差值计算、航线最末影像判断、航向角计算,从而得到每张影像的姿态角(图4)。

                                                                                         图4 航向角计算模块

3.3 旋转矩阵计算

同样使用AttributeCreator实现(3)式的计算,根据姿态角(H,P,R)的数值计算出旋转矩阵(图5)。

                                                                                图5 AttributeCreator计算旋转矩阵

3.4 影像像幅边缘点

对于每张影像,如果需要计算每个像素的地面位置,则会有极大的计算量。如果仅在影像像幅边缘上选取个别点,同样可以得到较为精确的影像覆盖范围。如图6所示,仅选取了位于影像边缘上的17个点进行后续计算。

                                                                                        图6 选取影像边缘点

如图7所示,使用AttributeCreator,将(2)式写入到表达式中,计算出初始的地面点位置(X1,Y1)。

                                                                       图7 计算影像边缘点的地面位置(初值)

3.5 迭代计算

读入DEM,然后使用PointOnRasterValueExtractor转换器内插计算出(X1,Y1)点的高程值Z1。随后再将Z1做为已知值,计算出新的地面点位置(X2,Y2)(图8)。

                                                                                            图8 计算新的地面位置

多次进行迭代计算即可计算出地面坐标。经过实际计算后发现,该迭代方法具有较快的收敛特性,仅需3次迭代就可以较为准确的地面点坐标(XA,YA,ZA)。因此出于减少复杂度的考虑,在FME中重复3次,而不采用阈值循环的方式进行计算(图9)。最终将单张影像的所有像幅边缘点对应的地面点连线,即得到了该影像的地面覆盖范围。

                                                                            图9 三次迭代计算得到较精确的地面位置

3.6 影像有效性判断

将所有影像的覆盖范围与任务区域进行叠加分析,即可发现每张影像的覆盖范围是否有效。使用SpatialRelator判断影像覆盖范围与测区范围的空间关系,然后使用Tester判断影像的重叠性,将存在重叠的影像判断为有效影像,不重叠的影像判断为无效影像(图10)。

                                                                                图10 SpatialRelator实现有效性判断

3.7 全部模板

                                                                                   图11 全部模块构成模板

4 方法验证

4.1 已完成案例验证

使用某项目的实际飞行数据进行验证,该区域共有16885张影像,使用FME计算出全部影像的覆盖范围,如图12所示。

                                                                                       图12 计算出的影像覆盖范围

从中任意选取影像,通过叠加现有DOM可以看到该影像覆盖范围内的地物。与真实影像进行比较,可以发现计算出的地面覆盖范围与真实影像基本一致(图13、图14)。

                                                                            图13 计算出地面覆盖范围与真实影像对比1

                                                                        图14 计算出地面覆盖范围与真实影像对比2

将影像覆盖范围与该区块的范围面进行叠加分析,发现其中有近5000张影像属于无效影像,占全部影像数量的30%。剔除无效影像后,后续的连接点提取、空三平差计算、模型重建中均有显著的效率提升。

4.2 设计案例验证

使用某项目的飞行计划进行验证测试。该区域作业面积7.7平方公里,预计航线总里程172公里,预计将产生35510张影像。使用FME进行地面覆盖范围计算和叠加分析,如图15所示,判断出共有6864张影像属于无效影像,占全部影像数量的19.3%。

                                                                                  图15 利用设计航线计算有效影像

5 总结

倾斜摄影的后期数据处理中,影像的空三处理和自动建模需要消耗较多的时间和硬件资源。利用本文的方法可以有效减少需要处理的影像数量,从而减少后期处理的时间提高工作效率。该方法目前已在本单位的多个倾斜摄影项目中得到应有,可以减少近20%的影像数量,具有较强的实用价值。


 [地图部外网1]感觉不大对

精度 [地图部外网2]跟基线无关吧,主要是飞行高度吧

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/105633151
今日推荐