本页中的示例演示了如何将 Vertex AI 与 Earth Engine 搭配使用。如需了解详情,请参阅托管模型页面。 这些示例使用在 Colab 笔记本中运行的 Earth Engine Python API。
费用
AutoML
低代码作物分类
借助 AutoML,您只需极少的技术工作即可创建和训练模型。此示例演示了如何使用 Vertex AI Python SDK 训练和部署 AutoML 表格模型,然后从 Earth Engine 连接到该模型,以便对国家农业图像计划 (NAIP) 航空图像中的农作物类型进行分类。
PyTorch
使用 CNN 进行土地覆盖分类
此示例演示了一个简单的 CNN,它将多个光谱矢量作为输入(即一次一个像素),并为每个像素输出一个类标签。该 Colab 笔记本演示了如何创建 CNN、使用 Earth Engine 中的数据对其进行训练、将模型部署到 Vertex AI,以及在 Earth Engine 中从模型获取预测结果。
TensorFlow
从头开始使用 DNN 进行多类别预测
“深度”神经网络 (DNN) 是具有一个或多个隐藏层的人工神经网络 (ANN)。此示例演示了一个只有一个隐藏层的简单 DNN。DNN 将光谱矢量作为输入(即一次一个像素),并输出每个像素的单个类标签和类概率。Colab 笔记本演示了如何创建 DNN、使用 Earth Engine 中的数据对其进行训练、对导出的图像进行预测,以及将预测结果导入 Earth Engine。
使用在 Vertex AI 上托管的 DNN 进行多类预测
您可以直接在 Earth Engine 中(例如在代码编辑器中)从托管在 Vertex AI 上的模型获取预测结果。本指南演示了如何训练、保存和准备 TensorFlow 模型以供托管、将模型部署到 Vertex AI 端点,以及从 Earth Engine 获取交互式模型预测的地图。
使用在 Vertex AI 上训练和托管的 FCNN 进行语义分割
本指南演示了用于土地覆盖图绘制的语义分割。如需详细了解输入或训练数据,请参阅这场 2022 年“地理位置赋能公益事业”会议。本指南以 Earth Engine 中的数据为依托,介绍了如何使用自定义机器在 Vertex AI 上训练模型、准备模型以供托管、将模型部署到端点,以及从 Earth Engine 获取交互式模型预测的地图。
托管预训练的树冠分割模型
您可以托管预训练模型,以便在 Earth Engine 中获取互动式预测结果。例如,Li 等人 (2023) 发布了几种使用 TensorFlow 实现的树冠分割模型。如果输入和输出具有相应的形状,这些模型便可直接托管,并用于在有输入图像的任何位置在 Earth Engine 中获取预测结果。本指南演示了如何下载预训练模型,准备好在 Vertex AI 上托管该模型,以及如何针对 Earth Engine 公共目录中的图像获取预测结果。
TensorFlow 决策森林
TensorFlow 决策森林 (TF-DF) 是 TensorFlow 中基于树的热门机器学习模型的实现。 与 TensorFlow 神经网络一样,这些模型可以在 Vertex AI 上训练、保存和托管。 此笔记本演示了如何安装 TF-DF、训练随机森林、在 Vertex AI 上托管模型,以及在 Earth Engine 中获取交互式预测。
已弃用
使用 FCNN 进行回归
“卷积”神经网络 (CNN) 包含一个或多个卷积层,其中输入是像素的邻域,因此网络不是全连接的,但适合识别空间模式。全卷积神经网络 (FCNN) 不包含作为输出的全连接层。这意味着,它不会学习全局输出(即每个图片一个输出),而是学习局部输出(即每个像素一个输出)。
此 Colab 笔记本演示了如何使用 UNET 模型(一种专为医学图像分割而开发的 FCNN)根据 256x256 像素邻域中的每个像素预测连续的 [0,1] 输出。具体而言,此示例展示了如何导出数据补丁以训练网络,以及如何重叠图片补丁以进行推理,以消除图块边界伪影。
在 AI Platform 上训练
对于相对较大的模型(例如 FCNN 示例),运行 Colab 笔记本的免费虚拟机的生命周期可能不足以支持长时间运行的训练作业。具体而言,如果在评估数据集上未最小化预期预测误差,则不妨进行更多训练迭代。如需在云端执行大型训练作业,此 Colab 笔记本演示了如何打包训练代码、启动训练作业、使用 earthengine model prepare
命令准备 SavedModel
,以及使用 ee.Model.fromAiPlatformPredictor
在 Earth Engine 中以互动方式获取预测结果。