您可以根据自己的地理区域、影像数据或感兴趣要素,对“Prithvi - 农作物分类”模型进行个性化微调。 与训练全新模型相比,微调现有模型所需的训练数据量更少,且节省计算资源和时间。
如 ArcGIS 提供的预训练深度学习模型未能达到预期效果,我们推荐您尝试对模型进行微调。 当您的感兴趣区域超出模型的适用地理范围,或者您的影像数据在分辨率、比例尺、季节性等属性上有所差异时,这一做法尤其适用。
您可以借助导出训练数据进行深度学习工具来准备训练数据。 然后,您可以利用 ArcGIS Pro 中的训练深度学习模型工具在数据集上对模型进行微调。 按照以下步骤微调模型。
准备训练数据
该模型的训练基础为协调后的 Landsat 8 (HLSL30) 或协调后的 Sentinel 2 (HLSS30) 影像的 18 波段复合数据,并使用了农作物标注。 利用导出训练数据进行深度学习工具,为模型微调准备训练数据。
- 浏览至分析选项卡下的工具。
- 单击地理处理窗格中的工具箱选项卡,选择 Image Analyst 工具,然后浏览至深度学习工具集下的导出训练数据进行深度学习工具。
- 按照以下说明设置参数选项卡下的变量:
- 输入栅格 - 选择 18 波段影像。 关于输入栅格的详细信息,请参阅建议的影像配置。
- 输出文件夹 - 在计算机上选择的任一目录。
- 输入要素类、分类栅格或表(可选)- 选择表示农作物分类的已标注要素类或已分类栅格,用于表示类的 ClassValue 字段或像素值与多时态农作物分类数据集中的 13 个类相同。
要素类还应该有一个名为 ClassName 的文本字段,其值设置为农作物类的名称。
- 类值字段 - 此为 ClassValue 字段。 将其设置为与多时态农作物分类数据集相同的值。
- 图像格式 - TIFF 格式
- 切片大小 X - 224
- 切片大小 Y - 224
- 步幅 X - 0
- 步幅 Y - 0
- 元数据格式 - 分类切片
- 设置环境选项卡下的变量。
- 处理范围 - 根据需要从下拉菜单中选择当前显示范围或任意其他选项。
- 像元大小 - 根据需要设置像元大小。
- 单击运行。
处理完成后,导出的训练数据将存储在指定目录中。
微调“Prithvi - 农作物分类”模型
使用 ArcGIS API for Python 的 learn 模块对模型进行微调:
- 在具备深度学习依赖项的环境中打开 Python 命令提示符,转至所需目录,然后输入 jupyter-notebook。
- 单击浏览器中的新建,选择 Python 3 (ipykernel) 以创建一个新笔记本。
- 按照以下步骤使用函数对模型进行微调:
- 导入 arcgis.learn 模块。
- prepare_data - 利用导出训练数据工具导出的训练样本,或采用受支持数据集格式的训练样本来准备数据对象。
- path - 提供之前步骤中导出的训练数据的路径。
- batch_size - 指定模型推断过程中每步处理的图像切片数量。batch_size 取决于您的显卡的内存。
- 初始化一个 MMSegmentation 模型并将其分配至某个变量名称,例如 model。
- data - 提供使用 prepare_data 函数创建的数据对象。
- model - 将模型名称指定为 prithivi100m_crop_classification。
- fit - 利用 fit 方法自动生成的最优学习率为模型训练指定的迭代次数。
- save - 使用 save 方法将训练完成的模型保存为深度学习包(.dlpk 格式)。 深度学习包格式是在 ArcGIS 平台上部署深度学习模型的标准文件格式。 默认保存路径为训练数据文件夹内的 models 子文件夹。
- per_class_metrics - 使用 per_class_metrics 方法在验证集上计算每个类别的精度、召回率和 f1 得分。
现在,您可以将保存的模型应用于影像数据,进行推理分析。