使用 AI 检测云

从随机森林到 YOLO:比较卫星图像中云分割的不同算法。作者:Carmen Martínez-Barbosa 和 José Arturo Celis-Gil 云朵在一片开满鲜花的绿色田野上,画的是梵高的风格。图片由作者使用 DALL 创建。卫星图像彻底改变了我们的世界。借助它,人类可以实时跟踪水、空气、土地、植被的变化以及我们在全球范围内产生的足迹效应。提供此类信息的应用程序无穷无尽。例如,它们已用于评估土地使用对河流水质的影响。卫星图像还用于监测野生动物和观察城市人口的增长等。根据忧思科学家联盟 (UCS) 的数据,大约有一千颗地球观测卫星正在绕地球运行。然而,其中最著名的是 Sentinel-2。 Sentinel-2 由欧洲航天局 (ESA) 开发,是哥白尼计划的一项地球观测任务,可获取陆地和沿海水域的高空间分辨率(10 米至 60 米)图像。Sentinel-2 获得的数据是多光谱图像,包含 13 个波段,涵盖电磁波谱的可见光、近红外和短波红外部分。Sentinel-2 和其他地球观测卫星生成的图像对于开发上述应用至关重要。但是,使用卫星图像 mig

来源:走向数据科学

需要考虑的一些警告

在某些情况下,生成的蒙版与相应图像的云不匹配,如下图所示:

错误蒙版的示例。请注意没有云的区域是如何被标记为这样的。
错误蒙版的示例。请注意没有云的区域是如何被标记为这样的。

这可能由多种原因造成:一个是 Sentinelhub 中使用的云检测模型,它返回了误报。另一个原因可能是我们在预处理过程中使用的固定阈值。为了解决这个问题,我们建议要么创建新的蒙版,要么丢弃图像蒙版对。我们选择了第二个选项。在此链接中,我们分享了一系列预处理后的图像和蒙版。如果您想尝试本博客中解释的算法,请随意使用它们。

Sentinelhub, 在此链接中 在此链接中 ,我们分享了一系列预处理图像和掩码。如果您想尝试本博客中解释的算法,请随意使用它们。

在建模之前,让我们建立一个适当的指标来评估模型的预测性能。

有几种指标可用于评估实例分割模型。其中之一是并集交集 (IoU)。此指标测量两个分割掩码之间的重叠量。IoU 的值可以是 0 到 1。IoU=0 表示预测和实际分割掩码之间没有重叠。IoU=1 表示预测完美。

IoU 的定义。图片由作者制作。
IoU 的定义。图片由作者制作。

我们在一张测试图像上测量 IoU 来评估我们的模型。我们对 IoU 的实现如下:

我们在一张测试图像上测量 IoU 来评估我们的模型。
使用 TensorFlow 实现 IoU。
使用 TensorFlow 实现 IoU。

最后,在图像中分割云

随机森林

我们必须将图像转换为表格数据以训练随机森林算法。在下面的代码片段中,我们展示了如何执行此操作:

注意: src/model.py

其中:

--model_name=rf --model_name=ann

ANN