一、引言
几何误差会导致连续卫星图像采集之间的错位,进而影响土地监测和变化检测分析。在这篇博客文章中,我们研究了如何稳健地对时间序列光学卫星图像进行配准,以减少这种错位的影响。
在本篇博客的末尾,给出用Python配准大区域的高分辨率遥感影像资源,供大家参考学习。
图1 哨兵-2斯洛文尼亚东部一条道路的L1C延时。时间段为2021年3月至2021年8月。包含经Sentinel Hub 2022修改的哥白尼Sentinel-2数据。
二、配准探索
在某些情况下,错位可能会影响对时间变化的分析。正如您在上面的动画中看到的那样,对于大小与圆形误差相当的对象尤其如此。与较大的物体(如森林或较大的农业地块)相比,道路、桥梁和建筑物的分析在一定程度上更受地理位置误差的影响。这些误差是定位和正交校正过程中固有的,并且可以校正到一定程度。它们在能够进行陆地监测的高时间分辨率数据收集中更为明显,如Sentinel-2、Landsat和PlanetScope。
我们已经构建了相当多的机器学习(ML)产品,用于土地和区域监测、变化检测和卫星图像的时间分析。我们已经注意到,这些几何误差是我们结果中噪声的一个重要来源。例如,我们的场描绘算法对预测进行逐像素的时间合并,以得出边界所在位置的更稳健的估计。几何误差引入了影响最终结果的虚构边界变化,如下所示。
图2 箭头像素是否为场边界像素的概率变化。概率的波动是由于地理位置误差造成的。
因此,我们着手开发一个工作流程来补偿几何误差。我们希望这个过程对数据收集是不可知的,在很大的时间间隔内工作,并对土地覆盖的巨大变化保持稳健。我们确定基于图像的配准是实现这一切的最佳方式。
协同配准的目的是估计两个图像之间发生的运动,这里称为模板和输入图像。 估计的运动可用于将输入图像与模板对齐。 通过对所有时间帧重复这个过程,我们获得了一个应该与模板图像对齐的时间堆栈。 简而言之,基于图像的配准是一种优化算法,根据目标函数,输入图像使用参数化运动模型进行迭代变换,直到两幅图像看起来相同。 运动模型的示例包括平移(其中输入图像只能在 x 和 y 方向上移动)到仿射变换(其中还对旋转、缩放和倾斜进行建模)。 此外,还可以对非刚性变形进行建模,从而增加优化的自由度和复杂性。 至于目标函数,最常见的是基于均方差、互相关或互信息,具体取决于共同配准的数据集合。
我们进行了许多实验并测试了不同的算法和参数,我们探索的内容包括:
- 应使用哪个模板图像,例如 一个随机的时间框架,时间框架的平均值;
- 哪个波段或波段组合携带最佳信息以在较大的时间间隔内配准图像;
- 哪种运动模型在简单性、收敛速度和准确性之间给出了最佳权衡;
- 没有真实信息的情况下,应该跟踪哪些指标来评估算法的性能;
- 哪个目标函数更适合光学卫星图像。
我们针对 Sentinel-2 和 PlanetScope 时间序列独立进行了实验,我们发现相同的工作流程和参数组合对两种数据收集均显示出最佳结果。 为了评估性能,我们研究了已配准序列相对于未配准模板图像的图像相似性(即均方误差和结构相似性指数)的改进。 我们还查看了估计循环移位的分布和算法的执行时间。 此外,当我们专注于场描绘时,我们跟踪了像素成为已配准和未配准序列边界的概率的变化。 假设已配准的序列将显示较少的概率变化。
我们考虑了斯洛文尼亚东部的一个兴趣区 (AOI),那里有大量的小型农业地块。
发现较好的参数组合如下:
- 使用平均时间图像作为模板图像。 这种选择可能会造成混淆,尤其是因为在很长的时间间隔内,平均图像的真实特征都被剥离了。 然而,平均图像代表了对真实位置的最佳估计,尽管有噪声,并且与所有帧有一定程度的相似性;
- 使用平均 RGB 通道的梯度。 联合配准算法使用单个波段进行优化,因此我们研究了哪个波段单独或它们的组合会产生稳健的结果。 对通过平均 R、G 和 B 波段创建的强度图像进行了测试,其性能优于单独考虑的任何单个波段。 此外,我们使用值的梯度进行测试,以减少不同采集条件(如光照和对比度)的影响。 梯度的使用提高了性能,因为它也将配准集中在对齐感兴趣的特征,如边缘和轮廓;
- 使用仅平移运动模型。 我们已经看到,添加旋转或缩放会减慢优化速度,而不会带来跟踪指标的额外改进。 当然,可以在已注册的堆栈中找到残留的非刚性未对准。 请注意,最合适的模型的选择可能取决于共同注册的场景的大小;
- 在使用不同的算法和目标函数测试了许多实现之后,我们决定使用 OpenCV 库中的“findTransformECC”方法,因为它允许调整许多参数并使用定义有效和无效像素的掩码。 该方法使用增强互相关 (ECC) 目标函数。
让我们来看看一些结果! 这是与上面相同的场景,具有共同配准的时间序列。 你现在可以体会到,小桥小路不再四处飘荡。
图 3. 图 1 中所示的 Sentinel-2 L1C 的时间序列配准结果。已校正桥梁、道路和房屋等较小特征周围可见的波动。 包含使用 Sentinel Hub 2022 修改的 Copernicus Sentinel-2 数据。
查看 Sentinel-2 和 PlanetScope 的配准结果,您会发现平移位移已正确恢复,并且帧之间剩余的未对齐主要显示非刚性(局部)组件。 如果我们查看估计,我们会注意到分布并不是完全偶然的,即值似乎不是从随机正态分布中提取的。 请记住,我们不是在查看循环误差的真实分布,而是通过配准算法估计的分布,它引入了自己的偏差。 然而,这些值分布在 (0, 0) 附近,这证明使用平均图像作为真实位置的噪声估计是合理的。
图 4. Sentinel-2(左)和 PlanetScope(右)的估计像素偏移。 图中看到的相关性可能是由于用于对图块进行地理定位的算法和我们自己的基于图像的配准算法的偏差。
查看 Sentinel-2 估计偏移的范数分布,即循环误差的估计值,我们可以看到它大致类似于数据质量报告中报告的值。我们还重复了 2022 年相同 AOI 的配准过程,看看我们是否可以观察到由于改进的定位算法,估计的圆移明显减少。 结果显示在下图 5中,我们确实看到与未精炼产品相比,估计循环误差的分布更接近 0。
图 5. PlanetScope(左)和 Sentinel-2(右)属于农田的像素概率可变性降低的示例。此处显示的值是未配准概率值的绝对差值之和 (x 轴)和共同注册的(y 轴)堆栈。
三、Python配准大区域的高分辨率遥感影像资源
我们参照上述研究成果,基于GDAL库与OpenCV库,针对大覆盖影像(比如高分二号融合产品)可以分块实现同名点提取,对整幅影像进行配准。下图为配准前后的效果。由于整景影像过大,资源提供的实验数据为裁剪的一部分,供大家学习:)
资源地址如下:
https://download.csdn.net/download/u010329292/87844863
(1)配准前两幅高分二影像(分辨率为0.8米)
图6 前一时相影像
图7 第二时相影像
图8 通过卷帘功能可以看到配准前的误差,约80像素左右
(2)配准后结果
图9 通过卷帘功能可以看到配准后的误差,约2-3像素左右