邰建豪,杨 冉
(1.河南财经政法大学 资源与环境学院,郑州 450046; 2.河南财经政法大学 城乡数据挖掘院士工作站,郑州 450046)
无人机倾斜摄影技术是通过在无人机上搭载同一类型或者不同类型的多台传感器,从而实现多个角度采集影像,得到目标地物更加全面、准确信息的技术[1-3]。它突破了传统正射影像只能从垂直方向入射的局限,通过将多台传感器搭载在无人机飞行平台上,可以同时从一个垂直和4个倾斜共5个角度[4-5](正射、前视、后视、左视、右视)拍摄地物,从而采集目标全方位影像。该技术不仅可以获得目标的垂直影像,还能获得具有目标地物立面纹理信息的倾斜影像[6]。最后,通过构建模型,将用户引入一个符合人眼视觉的真实直观世界[7]。由于倾斜摄影测量技术多角度拍摄的特点,无人机在临近研究区域边界飞行时,垂直镜头拍摄的是研究区域边界部分,而有些倾斜镜头拍摄的部分是研究区域外的地物,在进行空中三角测量计算和三维建模时这些图像也会参与,从而大大降低空中三角测量计算和三维建模效率。因此删除倾斜摄影相机冗余数据十分必要,但目前该领域的研究较少。有个别5镜头倾斜相机生产厂家在自有品牌产品中加入了冗余数据删除功能,但仅限于自有品牌的相机,且不能通用,其处理方法也没有公开发表,例如飞马相机和赛尔相机[8-9]。张军等人设计了基于ArcgisEngine开发的冗余数据处理方法,但该方法自动化程度较低,需要大量人工干预,操作过程中容易出现错误[10]。
文中以5镜头倾斜摄影测量为例,建立了一种通用型5镜头倾斜相机冗余数据删除模型,利用无人机定位导航系统(Position Oriental System,POS)数据,结合相机参数和飞行参数,建立了数学模型,求出每张图像在地面上的4个角点的投影坐标。最后利用射线法解算图像角点坐标和测区范围的空间包含关系,从而确定图像是否有效,实现冗余数据的删除。
由于无人机倾斜摄影是多镜头的(以5镜头为例进行阐述),当无人机在临近研究区域边界飞行进行拍摄时,垂直镜头拍摄的地区是研究区域的边界,且至少有1个倾斜镜头拍摄到的地物是在研究区域外的,所以得到的图像是无效的,这些无效图像在进行三维建模时是无用的,即冗余数据。如果不对这些冗余数据进行剔除,会很大程度上增加空中三角测量计算和三维建模过程中数据量的处理,从而降低空三和三维建模效率。所以删除在研究区域外的冗余数据可以提高空中三角测量和三维建模效率。
为更直观理解此实验的必要性,假设飞行范围和测区范围一样,做简单示意图如图1所示,当无人机在测区边界飞行时,只有一个镜头拍摄的图像落在了测区之内,其他4张图像都落在测区之外,属于冗余数据。本实验所删除的图像都是类似于图1中在测区范围之外的图像。
2.1.1 图像中心点投影坐标的计算模型
根据倾斜摄影5镜头的原理,可以画出中心投影点计算的模型,其中4个倾斜镜头的倾斜角度都是45°,正射方向的镜头的中心点投影到地面上的坐标和相机拍摄图像时的坐标是一样的,所以不用考虑。因无人机自带POS数据中位置是用经纬度表示的,需要换算成长度单位m。经纬度和距离的关系:1经度≈111 000×cos(当地纬度),1纬度≈111 000。航向与正北方向的角度可以根据前后两张图像拍摄时的坐标来确定。POS文件里的高度是海拔高度,实际的飞机的航高还要考虑测区平均高程,即航高=海拔高度-测区平均高程。左视和右视镜头中心点的投影坐标与相机拍摄时的坐标位置关系如图2所示。
图2 左视、右视镜头中心投影点示意图
于是可以得到如下变量:
航向偏离正北的角度:
(1)
左镜头图像中心投影点的经度:
(2)
左镜头图像中心投影点的纬度:
(3)
右镜头图像中心投影点的经度:
(4)
右镜头图像中心投影点的纬度:
(5)
表1 文中数学模型所用符号说明
前视、后视镜头中心点的投影坐标与相机拍摄时的坐标位置关系如图3所示。
图3 前视、后视镜头中心投影点示意
于是可以得到如下变量:
前镜头图像中心投影点的经度:
(6)
前镜头图像中心投影点的纬度:
(7)
后镜头图像中心投影点的经度:
(8)
后镜头图像中心投影点的纬度:
(9)
2.1.2 图像4个角点投影坐标的计算模型
在计算模型中需要确定焦距、航高、传感器尺寸等飞行参数和相机参数,并且确定如下数学关系:焦距/航高=传感器尺寸/地面边长,单位统一用m表示。根据航向和像素数可以得知图像在地面上的投影的形状为向左倾斜的长方形,倾斜角度和航向偏离正北的角度是相同的。左上角点的坐标计算模型示意图如图4所示,根据几何关系可知,左上角点和中心点的经纬度差与右下角点和中心点的经纬度差是一样的。
图4 左上角点坐标示意
于是可以得到计算左上角点和右下角点坐标:
左上角点的经度:
(10)
左上角点的纬度:
(11)
右下角点的经度:
(12)
右下角点的纬度:
(13)
右上角点的坐标计算模型如图5所示,根据几何关系可知,右上角点和中心点的经纬度差与左下角点和中心点的经纬度差是一样的。可以得到计算右上角点和左下角点坐标。
图5 右上角点坐标示意
右上角点的经度:
(14)
右上角点的纬度:
(15)
左下角点的经度:
(16)
左下角点的纬度:
(17)
射线法的基本原理是以目标点为端点引一条射线,统计射线和多边形的交点数目。如果交点个数为奇数[11],则判断该点在多边形的内部(内部包括:多边形的边及多边形的角点),如果交点个数为偶数,则判断该点位于多边形外部[12]。射线法具有如下特点:1)多边形的角点数越多,则射线法判断点与多边形的包含关系的结果越精确[13]。2)若不在多边形内部的一个目标点发出的射线过多边形的一个角点,则该点会被误判为在多边形内部,会被保留[14-15]。
本实验的目的是删除冗余数据,从而提高空中三角测量计算效率和三维建模效率,但要尽可能地保留有用数据,宁可少删但不能多删。实验中已经考虑到了多边形的角点和边点,采取的措施是保留这些点位的图像。
实验用测区是一个小型村庄,如图6所示,包括43块宗地。以农房普查飞行为例,需要获取测区范围内农房的精确数据,房屋之外的数据无需获取。测区面积8 511 m2,见图6蓝色区域,飞行范围面积47 207 m2,见图6白色区域。一共拍摄了890张图像,每个镜头图像数量相等,均为178张。
图6 实验测区范围和飞行范围
航高由POS文件和地面控制点高程值差值确定,本实验飞行高度为100 m。每个镜头的焦距如表2所示,所有焦距均四舍五入保留1位小数。相机传感器尺寸为23.5 mm×15.6 mm,对应的像素6 000×4 000。
表2 各相机焦距 mm
实验流程如图7所示,首先遍历POS文件,剔除高度小于0的数据,这些数据是飞机刚起飞时拍摄的无效图像。然后依据几何关系,计算图像中心点在地面上的投影坐标,并结合相机参数,计算出图像的4个角点在地面上的投影。然后利用射线法判断每张图像的4个角点和研究区域的包含关系,从而确定该张图像是否是冗余数据。如果4个角点都不在研究区域内,那么该张图像是冗余数据,反之,该张图像是有效数据。最后将冗余数据删除。
图7 冗余数据删除流程
每张图像投影点与测区位置之间的关系如图8(a)所示,5个镜头图像分别用不同颜色标注。单次摄影局部放大图如图8(b)所示。
图8 测区所有图像中心投影点解算结果示意
实验结果如图9所示,紫色区域为测区,黄色点为保留的图像点位,蓝色点为删除的图像点位。所有落在研究区域范围内的图像都被保留,部分不在研究区域内的图像也被保留,这是因为射线法自身存在的缺点所导致的,鉴于该实验的意义,为保证空三及三维建模的准确性,所以这部分不在测区范围内的数据可以保留。实验数据一共890张图像,最终结果删除了660张图像,最后保留了230张图像,其中左视、右视、下视、前视、后视镜头分别保留37张、31张、71张、43张、48张。初步结果显示,删除了大量的无效数据,删除率达到了74%。
图9 保留数据和删除数据对比
查看删除的图像,可以看到删除的图像里都是林地和农田,部分图像如图10所示。保留的图像里面大部分都是房屋,偶尔几张是林地或者农田,这是因为射线法判断点和多边形的拓扑关系时会存在误差,少量在多边形外的点会被判断为在多边形内。由于本实验的目的是删除冗余数据提高空中三角测量计算效率和三维建模效率,所以还是要确保三维建模后的准确性,所以这一部分误差数据可以保留。
图10 删除图像和保留图像局部截图
在Context Capture实景三维建模软件中进行空中三角测量计算,结果见表3。 原始数据空三计算时间为25 min,删除冗余数据后的图像空三计算时间为3 min,计算效率提升了7.3倍。
表3 删除前后空三效率对比
本实验通过无人机5镜头倾斜摄影几何关系建立像片投影模型,利用Python语言实现了删除无人机5镜头倾斜摄影相机获得的冗余数据的算法。实验结果表明,该算法能够删除大量冗余数据,极大提高无人机后期数据空三和建模的效率。但该算法仍然存在一些不足。实验结果表明,航线规划不合理会造成大量的冗余数据。但在实际飞行时野外飞行人员一般会为了操控方便和节省时间,往往忽略了航线规划的技巧,而是采用较为简单的方法规划航线,从而人为地增加了冗余数据数量。同时,测区范围形状越简单,删除冗余数据越少,比如矩形测区,删除图像不多。测区范围复杂的,多边形边数越多,产生的冗余数据越多。本文意在阐述删除冗余数据的算法,因此没有讨论影响冗余数据多少的因素。