王 刚
(1.广东省国土资源测绘院,广东 广州 510500)
将场景约束条件纳入光束法平差是摄影测量中常用的自检校手段,引入合适的约束条件往往能够优化平差结果[1]。鉴于影像中,尤其是建筑物区域包含有大量明确、具有实际意义的直线特征,通过这些直线特征对空三平差过程进行约束,可以提升光束法平差的整体效果。
传统的基于直线特征约束的自检校方法中,一般通过人工提取或是Hough变换等算法提取直线后,再人工选定线段[2-3]。这些方法需要大量的人工操作,尤其是在倾斜摄影测量中,由于朝向多、重叠度高、航片数量巨大,难以全部通过人工、半人工手段采集线段特征,达不到自动空三的目的。如果为了效率只通过人工选取少量明显的线段,则无法利用其他约束特征,不能保证获取稳定的结果。因此,本文提出一种基于全自动、准确、高效率的线段检测算法,快速提取影像中的海量线段特征作为场景约束条件的方法,从而提高平差精度、减少控制点的使用,提高倾斜摄影测量作业效率。
常用的直线(线段)检测算法有Hough变换、LSD、Edlines等方法。其中Hough变换最简单也最普及,但是需要运算量大,并且会将非连续的线段组合在一起,从而产生大量错误检测等缺陷。LSD算法能够自适应控制误检的数量,具有较高的精度;EDlines精度与LSD算法大体相当,但是运算效率更高。本文采用的Cannylines线段检测算法是一种改进的Edlines方法,无需指定提取参数,能够有效提取人工场景中的线段[4],同时具有较高的运算效率。
CannyLines算法通过以下4个步骤检测线段:
1)边缘图提取:使用一种名为CannyPF的无参数边缘检测器,用于从输入图像中提取图像边缘,它可以根据输入图像的梯度大小自适应地调整Canny算子的低阈值和高阈值,并且可以确保图像结构信息的完整性。相较于传统的Canny算子边缘检测,不需要人工输入参数,更适应全自动流程。
2)边缘链接和分割。从具有最大梯度幅度的边缘像素开始,通过图像边缘方向计算逐渐链接像素,并通过梯度阈值进行分割,以获取较短但是准确的初始线段。
3)线段延伸和合并。将初始线段在首位2个方向上延伸以收集更多的边缘像素,并与周围的其他共线线段合并。
4)线段验证。通过基于Helmholtz原理的线验证方法[5]对合并后的线段进行验证,剔除错误线段。该方法结合了梯度方向和幅度信息,以验证每个线段的正确性。
为保证作为约束条件的线段准确性,需要对提取出来的线段进行迭代优化,尽可能的剔除错误线段。鉴于建筑物的直线特征主要体现为水平、垂直和竖直3个方向,同时会有一些如屋檐、雨棚等其他朝向的结构,因此同一幅影像中大多数有意义的线段可以通过聚类算法纳入若干个朝向相近的线段组,然后剔除其他聚类,能够有效保障线段准确性。聚类结果中保留组数的取决于测区复杂程度,一般不少于3组。本文采用IOSDATA算法,基于线段朝向进行聚类,并保留聚类结果中数量最多的10组作为约束条件。
在提取出航片中的线段后,需要对像对之间的同名线段进行匹配,生成线对以供空三使用。本文采用基于LBD描述符的方法进行线段匹配[6](如图1~3所示)。主要步骤如下:
图1 原始无人机影像
1)生成候选匹配对:计算待匹配线段对的LBD描述子,通过检查描述子的一元几何属性和局部外观,生成一组候选匹配对。
2)最大一致性搜索:对于每一组候选匹配对进行一致性计算,满足一致性分数最大的匹配对被认为是最终匹配结果。
图2 线段提取结果
图3 线段聚类结果
由共线方程可知[6],在没有误差的情况下物方直线在像平面上的成像仍然是直线。因此从视点中心到沿该线的任何中间图像点的矢量都位于该图像的视点中心和两个定义对象空间中直线的点所定义的平面上。如图4所示,有ν1(将视点中心连接到沿着对象空间线的第一点的向量),ν2(将视点中心沿物体空间线连接到第二点的向量),以及ν3(将视点中心连接到沿图像线的任何中间点的向量)3个矢量共面。即:(ν1×ν2)·ν3=0,考虑到误差的影响,则为 (ν1×ν2)·ν3=min。
图4 同名线段匹配结果
参考图5,上式代入内外方位元素、像点坐标和物方坐标[7],可以改写为:
图5 直线共面关系图
由此可以针对像对中提取出的同名线对上的任意点进行解算,同时该约束不会引入任何新参数。
本项目采用DJI P4RTK无人机,对湛江市坡头区山朱沃村进行了五向航测。飞行高度100 m,航向重叠度80%,旁向重叠度70%,总计获取有效影像1 091张。为了检查成果精度,在测区内均匀布设了18个检查点。
航飞后进行了两次解算,其中一次没有引入约束条件直接进行三维重建,另一次采用本文方法进行了有约束的解算,通过CannyLines算法自动提取了580 412条线段,聚类后保留325 196条线段,匹配线对903 054对,总计耗时320 s,相比于布设和解算像控点,耗时极短且过程全自动。
通过表1检查点精度对比可知,加入约束后检查点的中误差有所降低,平面和高程精度都有所提升。由图6、7可见,加入约束后空三残差分布更为均匀;但是在局部区域残差比约束之前有所增大,推测原因为线段提取和匹配过程引入的误差所造成。总体来说,加入约束后成果精度有明显提升。
表1 检查点精度对比/m
图6 检查点布设图
图7 空三解算残差分布(左:无约束,右:有约束)
本文提出了一种全自动、无需人工干预的通过直线特征进行自检校的方法,通过Cannylines算法快速、准确的提取建筑物中的直线特征,然后进行像对间的同名线段匹配,最后将同名线对上的点引入光束法平差,实现了自检校过程。由实验结果可见,通过自动提取的直线特征约束后空三整体精度有明显提升,同时残差分布更加均匀。然而由于部分线段提取、匹配不准确,也给空三解算引入了新的误差,使得结果出现局部精度受影响的情况。有鉴于此,需要对线段提取、筛选和匹配算法进行进一步优化和改进,有效过滤错误线段和错误匹配结果。同时,需要进一步考虑诸如垂直、平行、共面等其他约束条件,进一步优化约束模型。