郭永春,柴 智,彭桂辉
(1.中煤航测遥感集团有限公司,陕西 西安 710054;2.北京市地质调查研究院,北京 102206)
正射影像制作是同时消除地形起伏和相片倾斜引起的影像变形的过程[1]。正射影像是对原始影像进行微分纠正和灰度重采样的结果图,而原始影像由于中心投影和地形起伏的影响并不能保证地面上的每个位置都能在影像中成像。因此,在数字微分纠正中,对于摄影信息充足的区域采样较稀疏,将导致图像出现颗粒感;而对于摄影信息匮乏的区域采样过密或重复采样,将出现图像拉伸的现象,沿一个方向拉伸过度时将导致区域纹理失真,称之为拉花现象。根据中华人民共和国测绘行业标准和国家标准的规定,正射影像在生产过程中应有严格的质量控制措施[2-7],拉花现象不允许出现在正射影像产品中[8-9]。
当生产过程中出现有拉花现象的正射影像时,通常是利用人工的方法寻找拉花区域,并到相应的纠正影像或原图中去定位,从而寻找相应的纹理对拉花区域进行替补,以此来解决拉花问题[10-13]。这种人工方法费时费力,特别是在拉花区域较多的情况下,生产效率非常低。目前,针对拉花现象,已有学者展开了一些分析和研究[14],但在实际应用中对于拉花现象的处理精度和效率仍有待提高。本文深入分析了拉花现象的形成机理和深度测试的原理[15-16],并提出了基于Z-Buffer 的拉花区域检测方法和拉花区域纹理的自动修复方法,较好地解决了拉花现象检测和自动处理问题,在实际生产中取得了很好的应用效果,大大提高了正射影像的生产效率。
摄影光线是指从摄影中心到地面点的连线,投影基线是指摄影光线在地面上的投影。由中心投影的原理可知,影像上每个像素的摄影光线都通过同一个摄影中心。因此,拉花区域的纹理一般都是偏向影像投影中心方向的失真,且在这个方向上由于地形起伏的影响地面上很长一段距离在原始影像上的成像可能非常狭窄,甚至是不能成像的。纠正时,该区域由于原图的信息不足,从而导致纠正片出现了拉花现象,如图1 所示。拉花现象是由沿投影方向地面上的多个点对应同一个像点所造成的,即存在“多对一”的现象,因此在灰度重采样时,多个地面点就会使用同一个灰度值,从而产生了纹理失真,即拉花现象。然而,这种拉花现象在相邻影像上往往不是同时存在的(图1b),因此在检测到相片的拉花区域时可利用邻片的纹理进行恢复。
拉花区域的纹理也不一定能利用相邻影像完全弥补,如图2 所示,相片1 的拉花区域和相片2 的拉花区域存在重叠,在这种情况下,重叠区域的纹理是无法恢复的,因为该区域是整个航空摄影的盲区,摄影信息在整个测区的影像中都是缺失的。此时,就不能要求精确地纠正该区域了,可考虑近似地纠正它,如采用局部均高的办法来纠正。
综上所述,拉花区域一般都是沿摄影方向存在多个地面点对应同一个像点的现象,这种原理跟计算机图形学中Z-Buffer 的原理一样[2],区别在于无需再去判断前视点和后视点的情况,因此可在每个点摄影方向上查找是否存在多个点对应同一个像点的情况来判断该点是否属于拉花区域。
图1 拉花现象的形成机理
图2 拉花盲区
由上述分析可知,若要确定某个地面点的可见性,就要搜索它到地底点之间每个点的高程与其摄影光线的高低关系,计算量很大。为了解决这个问题,本文做了3 个改进:
1)确定待检测点相对于地底点的方位关系。已知待定点P的平面坐标(XP,YP)和地底点S的平面坐标(XS,YS),根据测量学的坐标反算公式,可得到向量PQ的方位角α为:
那么搜索路径上点Q的坐标(XQ,YQ)则可由正算公式得出,即
2)自适应确定搜索长度l。对于不同位置的摄影光线,根据它们到投影中心的距离,不断调整其搜索长度。为了提高效率,无需搜索检查点到地底点的整个长度,可根据这段长度按比例取它的一部分作为检查路径,即可确定其最佳的搜索长度,避免了多余的搜索路径,大大提高了算法的运行效率。
3)基于窗口的拉花判断策略。一般情况下,数字微分纠正是基于一个微小面元的纠正方法,因此在投影方向上选取一定的窗口对拉花面元进行检测是比较合理的。窗口中心设置在该面元中心的投影方向上,窗口大小根据面元大小确定,如3×3、5×5 等。
式中,XP、YP为纠正点地面坐标;XQ、YQ为移动窗口内各点地面坐标;a1、a2、a3、b1、b2、b3、c1、c2、c3为旋转矩阵元素,由外方位元素(XS,YS,ZS,φ,ω,κ)角元素计算;f为焦距;xP、yP为纠正点像点坐标;xQ、yQ为移动窗口内各点像点坐标。
根据上述结果,判断差值是否小于某一阈值(一般取一个像素),若小于则对该点进行标记,否则对该点进行数字微分纠正,即若Δx< ×δpixelsize且Δy< ×δpixelsize,则对地面点进行拉花标记;若Δx> ×δpixelsize 或Δy> ×δpixelsize,则对地面点进行数字微分纠正,δ为阈值范围(一般取1 ~2 个像素),pixelsize 为像素大小。
1)获取DEM 数据、原始影像数据和外方位等参数,计算正射纠正影像的地面格网范围。首先利用已知数据和摄影测量共线方程的正算公式计算影像四角的地面坐标,并确定影像的地面范围;再根据正射影像的比例尺计算其地面分辨率;最后根据影像的地面范围和地面分辨率确定纠正影像的地面格网大小。
2)计算纠正地面点在成像时相对于投影中心的摄影光线方位。利用式(1)计算当前纠正点的成像方位角。
3)沿该点方位按照一定的窗口大小,基于Z-Buffer 原理计算是否存在同名像素,判断是否“拉花”;对拉花点位或面元进行标记,对未拉花的点位或面元进行数字微分纠正。若纠正未结束返回步骤2),否则进行下一步。
4)对于纠正影像中的拉花区域,优先采用其相对于投影中心对角线上的相邻影像进行数字微分纠正,再依次考虑其他相邻影像。
5)对剩余的拉花区域以相应的均高进行平面纠正。对于相邻影像无法处理的拉花死角区域,采用该区域的局部平均高程重新进行数字微分纠正。
6)对纠正影像进行高斯平滑处理。利用当前主影像灰度进行纠正的区域和利用相邻影像灰度进行纠正的区域,必定存在色差或“硬边界”问题,对于这些区域再进行色彩调整和平滑处理。方法流程如图3 所示。
本文选取拉花现象较明显的一块山地影像对上述方法进行验证。
实验一:选取一幅城区的DMC 影像,相机焦距为120 mm,航高约为2 800 m,最小高程为1 603.018 m,最大高程为2 025.668 m,像素为0.012 mm,影像大小为7 680×13 824。因此,可推算该地区航片的近似地面分辨率约为0.11 m,正射影像按照0.2 m 分辨率进行纠正。采用本文方法进行拉花纠正的过程如图4 所示,可以看出,本文方法取得了非常好的纠正效果,解决了拉花区域的变形问题。
图3 方法流程图
图4 实验一拉花纠正过程
实验二:选取一幅UCE 影像,相机焦距为79.8 mm,航高约为3 400 m,平均高程为1 250 m,像素为0.005 2 mm,影像大小为13 080×20 010。采用本文方法对该区域进行拉花纠正(图5),可以看出,本文方法对微小拉花区域也具有较高的检测精度和修复精度,可靠性高、应用效果明显。
为了验证本文方法的精度和效率,在两个实验区各选取一幅图的数据,分别采用人工选择拉花区域并进行人工修复的方法和本文方法进行对比分析。将人工处理的结果假定为正确结果,两种方法的统计结果如表1 所示,其中有效修复区域为算法修复完成后达到目标的正确修复区域面积与实际正确修复区域面积的比例,误修复区域为算法识别错误的修复区域与正确修复区域的比例。两种方法的效率比较如表2 所示,可以看出,本文方法具有很高的时间效率,处理结果精度可靠,可解决98%以上的拉花区域问题,大大减少或杜绝了人工处理的问题,应用价值很高。
a 拉花检测效果图b 纹理修复效果图
表2 两种方法的时间效率比较
本文提出了基于Z-Buffer 的正射影像区域拉花检测方法以及相邻影像的纹理修复策略,以解决正射影像中的拉花现象。实验结果表明,本文方法可准确、高效地生产正射影像。本文主要研究了正射影像生产中的拉花现象检测和修复问题,未提及相邻影像之间的色差问题,严重时将导致拉花修复后的纹理区域与未修复的纹理区域之间色彩变化明显,因此相邻影像的色彩调整问题将是本文后续将要继续研究的课题。