南非亚历山大镇分布着众多非正规住区。 当地一家非营利组织需要绘制该区域地图,以便更好地为社区居民提供服务。 他们计划运用 GeoAI 技术分析无人机影像,提取非正规住区的建筑覆盖区。 然而,即用型预训练深度学习模型可能难以充分应对这些错综复杂的非正规社区。 另一种可行的方案是 SAMLoRA(基于低秩适配的 Segment Anything Model) 该模型基于 SAM 构建,SAM 是一款在海量数据集上训练的多用途基础模型。 它采用 LoRA 方法,仅需少量示例即可快速教会模型识别特定地物(如建筑物、道路、太阳能板、树木等)。
在本教程中,您将在 ArcGIS Pro 中训练 SAMLoRA 模型,识别您影像中的非正规住区。 随后,您将应用训练好的模型提取非正规住区的建筑覆盖区。 您还将学习如何运用相同的方法提取其他要素,包括各种类型的建筑物和道路。
要求
- ArcGIS Pro
- ArcGIS Image Analyst
- ArcGIS Pro 的深度学习库GitHub – Esri/deep-learning-frameworks: Installation support for Deep Learning Frameworks for the ArcGIS SystemInstallation support for Deep Learning Frameworks for the ArcGIS System – Esri/deep-learning-frameworks
https://github.com/Esri/deep-learning-frameworks
- 推荐:至少具有 8GB 专用内存的 NVIDIA GPU
1 生成训练数据
在本工作流中,您将学习训练 SAMLoRA 并识别影像中感兴趣的要素的过程,在本例中是非正式住区的建筑物。 首先,您需要生成少量训练数据,这些数据包含影像中这些建筑物的示例。 您将设置 ArcGIS Pro 工程,查看提供的示例,并将训练数据导出为 SAMLoRA 期望的格式。
1.1 设置工程
1. 您将下载一个包含本教程所有数据的工程,并在 ArcGIS Pro 中将其打开。下载Alexandra_Informal_Settlements.zip 文件并在您的计算机中找到已下载的文件。提取Alexandra_Informal_Settlements 文件夹。 双击 Alexandra_Informal_Settlements.aprx 在 ArcGIS Pro 中打开该工程。
百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1p-Ff8rEV9QQo0ubF8Je72g?pwd=fuv7
2. 工程随即打开。
在地图上,您将添加代表南非亚历山德拉镇街区的无人机影像图层。 该影像的分辨率较高,其中每个像素代表地面上约 2 x 2 厘米的正方形。 由 South Africa Flying Labs 捕获。 该图层作为图像切片服务存储在 ArcGIS Online 中。
注:此真正射图像图层源自多个原始无人机图像。要将本教程中介绍的工作流应用于您自己的影像,请参阅文末部分提供的技巧。
3. 使用鼠标滚轮按钮放大和缩小,观察影像中的构建区域的细节。
许多建成区域都是非正式住区,建筑物之间建造得非常紧密,形成了错综复杂的格局。 它们的屋顶由颜色各异、维护状况不同的波纹金属板构成。 由于这些特性,传统的深度学习模型可能难以高精度地识别此类建筑物。 您将在本教程中学习的 SAMLoRA 方法提供了一个有效的替代方案,可以在不需要高计算能力的情况下获得高质量的结果。
1.2 探索非正式住区示例
您将查看工程随附的训练示例。
1. 在内容窗格中,选中 Training_Area 图层旁边的框,将其打开。
影像的西侧出现一个橙色的面。 它代表了用于训练 SAMLoRA 识别非正式住区外观的选定区域。
注:在本例中,只有一个训练区域,但也可以拥有多个训练区域,每个区域由不同的面表示。 您将在本教程的后续部分看到多个训练区域的示例。
2. 在内容窗格中,右键单击 Training_Area 图层,然后选择缩放至图层。
地图将自动缩放到训练区域的范围。
3. 开启 Informal_Settlements_Examples 图层。
Informal_Settlements_Examples 图层将训练区域内的所有建筑物表示为浅灰色的面。
注:您可以在通过迁移学习改进深度学习模型教程的准备用于迁移学习的训练样本部分找到关于如何创建训练示例图层的详细步骤。
训练区域内的每个建筑物都已捕获为一个面。 即使遗漏了少数几个建筑物,也会产生混淆的信息,导致 SAMLoRA 无法进行最优化的训练。 在下面的示例图像中,左侧的训练集是完整的,可以直接用于训练。 相比之下,右侧缺少了一些建筑物,这将导致较差的训练性能。
接下来,您将检查 Informal_Settlements_Examples 图层的属性字段。
4. 在内容窗格中,右键单击 Informal_Settlements_Examples 图层并选择属性表。
表中的每一行代表一个建筑物面要素。 类属性的值为 Building。
注:虽然这并非本工作流的必要环节,但请注意,值 Building 实际上是底层数值 1 的标注。 有关此主题的详细信息,请参阅本教程后面的将此工作流应用于您自己的影像部分。在训练示例代表多种要素类型的情况下,Class 字段将列出这些类型,例如 Building、Road 或 Tree。 通过这种方法,SAMLoRA 能够学习如何在您的影像中识别不同的要素类型。
5. 关闭表。
6. 在快速访问工具栏中,单击保存工程按钮以保存您的工程。
1.3 了解训练切片和像元大小
您将使用示例面图层和影像图层,以特定格式生成训练数据。 深度学习模型不能在一次运行中针对大型区域执行训练,它只能处理较小的裁切影像,即影像片。 影像片由影像切片和相应的标签切片组成,标签切片显示感兴趣对象(在本例中为建筑物)的位置。 在训练过程中,这些切片被输入到深度学习模型中。
一个训练切片,包含其影像切片(左)和相应的标注切片(右)。
在生成切片时,一个重要的考虑因素是确定其最佳大小。 要检测彼此靠近的对象(如非正式住区的建筑物),一个好的经验法则是,一个切片应包含 6 到 12 个要素。 另一种理解方式是,一个切片应在其中心至少包含一个或两个完整的要素,并显示周围足够的环境(或背景)信息。
下面的示例图像包含三个不同大小的切片:
- 切片 1 过小;它不包含任何完整的要素,几乎没有背景信息。
- 切片 2 的大小适中;中心有两个完整的要素,周围还有一些不完整的要素和背景信息。
- 切片 3 过大;它包含大量的要素(超过 25 个)。
如何调整切片的大小? 通常情况下,切片的尺寸为 256 像素 x 256 像素(或像元),因此您将保留此默认值。 然而,您可以通过改变组成切片的像元大小来获得不同尺寸的切片。 例如,上面显示的三个切片是用以下像元大小生成的:
- 切片 1 – 0.02 米(2 厘米)
- 切片 2 – 0.05 米(5 厘米)
- 切片 3 – 0.1 米(10 厘米)
注:当一个切片的像元大小为 5 厘米时,这意味着它的每个像元代表地面上 5 厘米乘 5 厘米的正方形区域。
最佳切片大小将取决于您想要识别的要素的大小。 例如,农田、房屋、汽车和太阳能电池板的大小差异很大。 寻找最佳切片尺寸的一种方法是进行反复试验。 您可以选择不同的像元大小,生成切片,然后目视评估这些切片。 还有更高级的方法来确定切片和像元大小,但这些方法超出了本教程的范围。 对于本教程,已确定 5 厘米的像元大小将生成用于识别非正式住区建筑的最佳尺寸切片。
1.4 导出训练数据
接下来,您将使用导出深度学习的训练数据工具生成训练切片。
1. 在功能区上,单击分析选项卡。 在地理处理组中,单击工具。
2. 在地理处理窗格中,搜索导出训练数据进行深度学习。 在结果列表中,单击导出训练数据进行深度学习。
3. 设置以下工具参数:
-
- 对于输入栅格,选择 Alexandra_Orthomosaic。
- 对于输出文件夹,输入 Informal_Settlements_256_5cm。 (此操作将在您的工程内创建一个子文件夹,用于存放训练数据。)
- 对于输入要素类或分类栅格或表,选择 Informal_Settlements_Examples。
- 对于类值字段,选择 Class。
- 对于输入掩膜面,选择 Training_Area。
将 Training_Area 图层指定为掩膜至关重要,因为这能确保影像切片仅在所有建筑物都被标记的区域内生成。
注:如果您需要为自己的数据创建 Training_Area 图层,可以使用创建要素类地理处理工具。 创建要素类后,在功能区编辑选项卡上,单击创建工具,绘制一个或多个矩形多边形,标示出您希望提供训练样本的区域。
4. 对于切片大小 X 和切片大小 Y,请保留默认值 256 像素。
5. 对于元数据格式,选择已分类切片。
分类切片是训练 SAMLoRA 模型所要求的元数据格式。
注:要了解更多关于不同深度学习模型类型所支持的元数据格式,请到帮助文档中参阅深度学习模型架构页面。 要了解更多关于该工具中列出的参数,请到帮助文档中参阅导出深度学习的训练数据文档页面。
6. 在工具窗格中,单击环境选项卡。
7. 对于像元大小,输入 0.05。
此像元大小为 0.05 米,相当于 5 厘米。 如前一部分所述,此像元大小将确保生成的切片尺寸适合于识别非正式住区的建筑物。
注:为您的影像切片选择像元大小不会改变原始输入影像的分辨率。 该工具将动态地对数据进行重采样,以生成具有所需像元大小的影像切片。有关如何识别您的影像属性(包括像元大小)的详细信息,请参阅本教程后面的将此工作流应用于您自己的影像部分。 您还可以在探索影像 – 空间分辨率教程中了解关于影像像元大小和分辨率的详细信息。
8. 单击运行。片刻之后,该工具将完成运行。
1.5 检查训练数据
接下来,您将检查您生成的训练切片。 首先,您将关闭建筑物示例图层,减少地图上的视觉干扰。
1. 在内容窗格中,取消选中 Informal_Settlements_Examples 旁边的框,关闭该图层。
您将浏览到存储影像和标注切片的文件夹。
2. 单击功能区上的视图选项卡。 在窗口组中,单击目录窗格。
3. 在目录窗格中,展开文件夹、Alexandra_Informal_Settlements 和 Informal_Settlements_256_5cm。
Informal_Settlements_256_5cm 文件夹包含 images 和 labels 两个子文件夹。
4. 展开 labels 文件夹。
此文件夹共包含 128 个 TIFF 格式的标注切片。
5. 右键单击 000000000000.tif 文件,然后选择添加到当前地图。
6. 如果提示您计算统计数据,请单击是。
标注切片将显示在地图上。 它是一个栅格,每个像元的值可以是 0 或 1。 值为 1 的像元显示为白色,表示建筑物区域。 值为 1 的像元显示为黑色,表示非建筑物区域。
7. 在目录窗格中,展开 images 文件夹。
此文件夹共包含 128 个 TIFF 格式的图像切片。 每个标注切片都对应着一个图像切片。 例如,000000000000.tif 图像切片是一个小的影像裁剪,它与 000000000000.tif 标注切片相匹配,如下面的示例图像所示。
SAMLoRA 深度学习模型将使用这些带标注的切片来学习建筑物的外观及其位置。
8. (可选)关闭 Alexandra_Orthomosaic 图层,并将图像切片添加到地图进行检查。 您也可以向地图添加更多的标注切片。
9. 在内容窗格中,右键单击 000000000000.tif 标注切片,然后选择移除。 移除您添加到地图上的任何其他标注和图像切片。
提示:如果您想查看关于标注切片的更多数值信息,可以在目录窗格的 labels 文件夹下,右键单击 stats.txt 文件,然后选择在文件资源管理器中显示。 该文件包含统计数据,例如每个切片的最小、平均(平均数)和最大要素(在本例中为建筑物)数量。
10. 在 ArcGIS Pro 中,按 Ctrl+S,保存工程。
到目前为止,您已完成以下步骤:设置工程、探索代表非正式住区示例的面图层、了解训练切片和像元大小、生成标注和图像训练切片,并检查了输出结果。
2 训练 SAMLoRA 非正规住区模型
接下来,您将使用先前生成的训练数据,对 SAMLoRA 深度学习基础模型进行训练,使其能够识别您影像中的非正规住区建筑物。 随后,您将审查已训练完成的模型,以便对其有更深入的理解。
2.1 训练 SAMLoRA 模型
首先,您需要使用训练深度学习模型工具来训练模型。
1. 在目录窗格的底部,单击地理处理选项卡。
2. 在地理处理窗格中,单击返回按钮,直至返回至搜索框。
3. 搜索并打开训练深度学习模型工具。
4. 对于输入训练数据,单击浏览按钮。 请浏览至文件夹 > Alexandra_Informal_Settlements,选中 informal_settlements_256_5cm,然后单击确定。
5. 对于输出文件夹,输入 Informal_Settlements_256_5cm_SAMLoRA。
此操作将在您的工程(文件夹 > 模型下)中创建一个子文件夹,用于存放训练完成的模型。
6. 对于最大轮数,输入 50。轮指的是对整个训练数据集完成一次完整的遍历。
7. 对于模型类型,选择 SAMLoRA(像素分类)。
8. 展开数据准备。 在批量大小设置中,如果您的 NVIDIA GPU 拥有 4 GB 的专用内存,请键入 2。 如果您的 GPU 拥有 8 GB 的专用内存,请键入 4。
批量大小的数值只会影响训练过程的速度,而不会改变输出结果的质量。
提示:要确定批量大小值,一个有效的参考原则是以您的 GPU 专用内存容量(以 GB 为单位)的一半作为初始值。 例如,如果您拥有 16 GB 的 GPU 专用内存,则可以从批量大小 8 开始尝试。 如果您对此不确定,建议从数值 2 开始。为了获得更精确的数值,您可以实时监测 GPU 内存使用情况。 请从 Windows 开始菜单打开命令提示符,并粘贴命令 nvidia-smi -l -5。 在深度学习工具运行期间,观察您所使用的内存量。如果内存使用量未达到上限,您可以在下次运行该工具时考虑增加批量大小。
9. 展开高级。 对于骨干模型,选择 ViT-B。字母 B 代表基础。 此选项将会在一个规模较小(基础)的神经网络上训练 SAMLoRA 模型。
10. 请确认监视指标已选定为验证损失。该指标用于衡量模型将其学习到的知识推广应用到新数据的能力。
11. 请确认已选中当模型停止改进时停止选项,避免模型发生过拟合现象。
注:对于您拥有较大规模训练数据集,且 GPU 专用内存达到或超过 8 GB 的情况,您可以考虑在更大的骨干模型上训练深度学习模型,例如 ViT-L (large) 或 ViT-H (huge)。
您现在已准备就绪,可以运行该工具。
注:本教程建议使用配备至少 8 GB 专用内存的 NVIDIA GPU。 根据您的计算机是否配备 GPU 及其具体规格,此过程可能耗时从不到 2 分钟到 20 分钟甚至更长。 作为替代方案,您可以选择使用一个已经为您训练好的模型。 如果是这种情况,切勿运行该工具,并阅读至本节末尾。 稍后将提供关于如何检索预训练模型的具体说明。如果您不确定计算机是否配备 GPU 以及其具体规格,请查阅在ArcGIS Pro中为深度学习做好准备中的检查 GPU 可用性部分。
11. 如果您选择自行运行该过程,请单击运行。 在工具运行过程中,单击查看详细信息,获取关于训练过程的想下信息。
提示:您也可以在历史记录窗格中找到相同的信息。 在功能区分析选项卡的地理处理组中,单击历史记录。 在历史记录窗格中,右键单击训练深度学习模型过程,然后选择查看详细信息。
12. 在详细信息窗口中,单击消息选项卡,并密切关注验证损失指标。
验证损失值越小,通常表示模型性能越好。 随着模型提高成功识别建筑物区域的能力,验证损失会随着每个 epoch 的进行而逐步降低。 当验证损失的值不再发生显著变化时,训练过程将自动停止。 与此同时,准确率和 Dice 指标(第三列和第四列)会持续上升。 这些指标用于评估模型的性能表现。
注:由于深度学习训练本质上是一个非确定性的过程,您在消息选项卡上看到的信息可能与示例图片有所不同。
13. 当训练结束后,仔细查看准确率和建筑物精度的数值。
在示例图片中,整体准确率为 8.9250e-01,即 89.25%。 对于此特定的应用场景,该数值应在 85% 到 95% 之间。 由于您的主要目标是识别建筑物,因此建筑物的精度值是衡量模型性能的最佳指标。 在本示例中,该值为 0.8913,即 89.13%。 (选择的值必须不相同)
14. 关闭详细信息窗口。
2.2 检查已训练的 SAMLoRA 模型
若想进一步了解您训练的 SAMLoRA 模型,可以使用检查深度学习模型工具进行查看。
1. 单击功能区上的影像选项卡。 在图像分类组中,单击深度学习工具,然后选择审查深度学习模型。
2. 在深度学习模型查看器窗格中,对于模型,单击浏览按钮。
3. 请浏览至文件夹 > Alexandra_Informal_Settlements > models 路径,选择 Informal_Settlements_256_5cm_SAMLoRA,然后单击确定。
4. 在深度学习模型查看器窗格中,找到训练和验证损失下方的图表。
这张图详细展示了模型是如何学习的。 训练损失(以蓝色显示)反映了模型在训练数据上的学习效果,而验证损失(以橙色显示)则体现了模型将其学到的知识推广到新数据的能力。 (您的图表可能呈现出不同的形态。)在训练过程的最后阶段,训练损失和验证损失的曲线逐渐趋于平缓,形成了渐近线。
这种现象被称为收敛。 如果训练在该阶段之后继续进行,模型在训练数据上的性能可能会持续提升,但在验证数据上的性能反而下降,这表明模型正在过度拟合训练数据,失去了泛化到新数据的能力。
5. 检查窗格中提供的其他信息,包括模型类型、骨干、总体准确性以及轮次详细信息。
注:若想更深入了解此窗格中的信息,请参阅深度学习模型审查文档页面。
6. 完成模型信息审查后,关闭深度学习模型查看器窗格。
7. 按 Ctrl+S 以保存工程。您现在已经训练了 SAMLoRA 基础深度学习模型,使其能够识别非正规住区建筑物。
3 使用 SAMLoRA 分类并提取非正规住区
您现在可以开始从您的影像数据中提取非正规住区。 首先,您需要将训练好的 SAMLoRA 模型应用于影像,将每个像素分类为建筑物或非建筑物。 此过程称为推断。 然后,您将导出建筑物覆盖区面。 最后,您将探索更广泛的结果,了解 SAMLoRA 方法在更大范围内提取不同类型目标对象的强大能力。
3.1 分类非正规住区
首先,您将通过使用深度学习分类像素工具,将训练好的 SAMLoRA 模型应用于您的影像数据。 为了加快本教程的工作流,您将仅在一个小范围内运行此过程。 然而,在实际应用中,您可以处理超大量的影像数据。
1. 单击功能区上的地图选项卡。 在导航组中,单击书签,然后选择 Inferencing Area 书签。
地图将缩放至该书签。
2. 在地理处理窗格中,单击后退按钮。 搜索并打开使用深度学习分类像素工具。
3. 设置以下工具参数:
-
- 对于输入栅格,选择 Alexandra_Orthomosaic。
- 对于输出栅格数据集,输入 Informal_Settlements_Raster。
- 对于模型定义,单击浏览按钮。 浏览至文件夹 > Alexandra_Informal_Settlements > 模型 > Informal_Settlements _256_5cm_SAMLoRA,选择 Informal_Settlements _256_5cm_SAMLoRA.dlpk 文件,然后单击确定。
- 对于 batch_size,键入与您之前使用的相同值(例如,如果您的 GPU 专用内存为 4 GB,则输入 2)。
注:如果您未使用自己的数据训练模型,对于模型定义,使用提供的模型,该模型位于文件夹 > Alexandra_Informal_Settlements > Provided_Data > 模型 > Informal_Settlements _256_5cm_SAMLoRA。
4. 在工具窗格中,单击环境选项卡。
5. 在处理范围下,单击当前显示范围按钮。
此参数可确保仅处理当前地图上显示的区域。
6. 对于像元大小,键入 0.05,匹配您训练 SAMLoRA 模型时使用的像元大小。
注:此工具的执行时间可能从不到一分钟到 15 分钟不等,具体取决于您是否拥有 GPU 以及其规格配置。 如果您不想自己运行此过程,可以使用预先提供的输出结果。 在目录窗格中,浏览至数据库 > Provided_Data.gdb,右键单击 Informal_Settlements_Raster,然后选择添加到当前地图。
7. 如果您选择自行运行该过程,请单击运行。
处理完成后,将在地图上显示新栅格图层。
对于您选择的范围,影像中的每个像素都已完成分类,结果保存在输出栅格中:属于非正规住区建筑物的区域被分配值 1(符号化为浅橙色),而非建筑物区域被分配值 0(符号化为透明)。
注:颜色是随机分配的,可能会有所不同。
3.2 派生并清理建筑物覆盖区面
现在您已通过 GeoAI 工具生成了输出栅格,接下来将对其进行一些后处理。 目标是获取一个代表建筑物覆盖区的面要素图层。 您将使用一个自定义工具,该工具包含以下主要步骤:
- 使用栅格转面工具获取面要素图层。
- 使用规则化建筑物覆盖区工具归一化并平滑面要素的形状。
- 移除面积过小而不能视为建筑物的面要素。
- 使用融合工具移除重叠的面要素。
首先,您需要检索一个包含该工具且托管于 ArcGIS Online 中的工具箱。
1. 在目录窗格中,单击门户选项卡,然后单击 ArcGIS Online 按钮。 在搜索框中输入 Post Deep Learning Workflows owner:Esri_Tutorials,然后按 Enter 键。
在搜索结果中,右键单击后深度学习工作流,然后选择添加到工程。
该工具箱将下载到您的本地工程。
2. 在目录窗格中,单击工程选项卡。 展开工具箱和 PostDeepLearning.pyt。该工具箱包含两个工具:一个用于后处理建筑物(您将使用),另一个用于后处理道路。
注:用于后处理建筑物的工具应适用于各种类型的建筑物,不仅限于非正规住区。(可选)您可以在 GitHub 上查看此自定义工具的源代码。
3. 右键单击通过栅格输出后处理建筑物,然后选择打开。
4. 对于输入栅格,选择 Informal_Settlements_Raster。
5. 对于栅格转面字段名称,选择 Class。此字段包含 Building 的类值。
6. 对于所选字段的唯一值,选择 Building。该工具将仅处理标注为此值的栅格单元。
7. 对于输出要素类,输入 Informal_Settlements_Final。此输出将是最终的要素类成果。 它将保存在您的默认工程数据库中。
8. 单击运行。出现输出图层。 您将为该图层设置与您在工作流前期使用的 Informal_Settlements_Examples 图层相同的符号系统。
9. 在内容窗格中,右键单击 Informal_Settlements_Examples 图层并选择复制。
10. 右键单击 Informal_Settlements_Final,选择粘贴属性。
图层将更新为浅灰色符号系统。 您将关闭栅格图层,简化地图显示。
11. 在内容窗格中,关闭 Informal_Settlements_Raster 图层。
您将使用卷帘工具比较最终输出图层与原始影像。
12. 在内容窗格中,单击 Informal_Settlements_Final 图层,将其选中。
13. 在功能区上,单击要素图层选项卡。 在比较组中,单击卷帘。
14. 在地图上,从上往下拖动,揭开 Informal_Settlements_Final 图层,显示下方的 Alexandra_Orthomosaic 影像。
建筑物覆盖区面与影像中的建筑物高度精确地匹配。
15. 单击功能区上的地图选项卡。 在导航组中,单击浏览按钮。
3.3 探索更多结果
到目前为止,为了加快工作流,您仅提取了小范围非正规住区的要素。 接下来,您将检查整个无人机影像范围的输出结果。 您还将探讨使用 SAMLoRA 方法提取多种要素类型的可能性。 在本例中,提取了以下要素:
- 不同类型的建筑物 – 从非正规且较小的到更标准且较大的。
- 不同类型的道路 – 从狭窄且未铺砌的到更宽阔且已铺砌的。
首先,您将打开包含这些示例的地图。
1. 在目录窗格中,展开地图。 右键单击 Explore Outputs,然后选择打开。
Explore Outputs 地图随即显示。 目前,仅Alexandra_Orthomosaic 影像图层处于开启状态。 您将开启其他图层并进行查看。
2. 在内容窗格中,打开 Expanded_Training_Areas 和 Buildings_and_Roads_Examples 图层。
这次,有若干橙色面,每个面都描绘了一个不同的训练区域。 在这些训练区域中,灰色的示例捕捉了不同类型的建筑物和道路。
3. 放大并平移,观察建筑物和道路示例。
4. 在内容窗格中,右键单击 Buildings_and_Roads_Examples,然后选择属性表。
5. 在 Buildings_and_Roads_Examples 属性表中,向下滚动,查看类值。
在本例中,有两个可能的类值:Building 和 Road。 SAMLoRA 将利用这些信息学习识别这两种不同的要素类型。
6. 关闭表。按照本教程相同的工作流,这些示例被用作生成训练数据的输入。 然后,您训练 SAMLoRA 模型学习识别这些要素。 该模型已应用于整个影像,最终得到了建筑物和道路的要素图层。 您将检查生成的输出结果。
7. 在内容窗格中,关闭 Expanded_Training_Areas 和 Buildings_and_Roads_Examples 图层。
8. 打开 Building_and_Roads_Raster_Full_Extent 图层。
输出栅格标识了与建筑物(浅橙色)和道路(深蓝色)相关的区域。
9. 放大并平移,观察栅格图层。
所识别出的建筑物和道路的种类繁多,令人印象深刻。 该模型可以应用于更大范围的影像,覆盖整个城市或区域。
接下来,您将查看两个派生的要素图层:
- 一个是建筑物面图层,您可以使用之前用过的通过栅格输出后处理建筑物工具派生。
- 另一个是道路折线图层,您可以使用同样包含在后深度学习工作流工具箱中的通过栅格输出后处理建筑物工具派生。
10. 在内容窗格中,关闭Building_and_Roads_Raster_Full_Extent打开 Buildings_Full_Extent 和 Roads_Full_Extent。
11. 放大并平移,观察建筑物和道路要素图层。
如此细致的地图能帮助您当地的非营利组织更好地为社区提供服务。
12. 按 Ctrl+S 以保存工程。
扩展:将此工作流应用于您自己的影像(可选)
要将此工作流应用于您自己的影像,请记住以下几点建议。
- 存储您的影像的位置 – 在本教程中,您使用了在 Site Scan for ArcGIS 中根据原始高分辨率无人机影像生成的图像图层,并直接从 Site Scan 将其保存至 ArcGIS Online。 当使用您自己的数据时,您可以同样将其托管在 ArcGIS Online 上。 有关详细信息,请参阅发布托管影像图层文档页面。 另一个选项是使用存储在本地计算机上的影像。
- 在整个工作流程中保持影像一致性 – 当您使用 SAMLoRA 模型时,务必确保用于训练和应用模型的影像是相似的。 尤其需要注意的是,光谱波段(例如,红、绿、蓝波段)、像素深度(例如 8 位)和像元大小应保持一致。
- 查找您的影像属性 – 如果您不确定您的影像属性,请在内容窗格中右键单击您的影像图层,然后选择属性。 在属性窗格中,单击源选项卡。 在栅格信息下,找到波段数、像元大小 X、像元大小 Y 和像素深度值。
- 调整您的影像输入 – 如果您需要调整您的影像以用作已训练的 SAMLoRA 模型的输入(例如,选择波段子集或更改像素深度),请参阅使用迁移学习改进深度学习模型教程中选择相关的影像波段部分,该部分提供了关于此主题的详细步骤说明。 您还可以在探索影像 – 空间分辨率教程中学习如何对影像进行重采样(或更改像元大小)。
- 创建训练样本面图层 – 遵循使用迁移学习改进深度学习模型教程中准备迁移学习的训练样本部分的详细步骤说明进行操作。
- 使用属性域 – 在训练样本面图层中,类属性中值为 Building 的要素实际上指向的是底层数值 1 的标注。 虽然这并非工作流的关键环节,但您应该了解这是通过属性域来实现的。 您可以在将子类型和域应用于维也纳徒步路线教程中了解关于此技术的详细信息。 或者,您可以直接为您的类别使用数值;输出结果也将是数值,提取的要素将被命名为 1 而不是 Building。
- 创建训练区域图层 – 您可以使用创建要素类地理处理工具。 然后,在功能区上的编辑选项卡中,单击创建工具,绘制一个或多个矩形面,勾勒出您希望提供训练样本的区域。
- 选择合适的像元大小 – 正如了解训练切片和像元大小部分所解释的,请务必尝试不同的像元大小,从而生成针对您计划提取的要素进行优化的切片。
- 在小范围内进行实验 – 在实验过程中,您可以将处理限制在较小的范围内以获得更快的结果。 在环境选项卡上的处理范围下,单击绘制范围按钮,然后在地图上绘制一个较小的多边形。 或者,您可以放大地图,然后单击当前显示范围按钮。
在本教程中,您采用了 SAMLoRA 方法来识别您影像中的非正规住区。 您生成了训练数据,并用这些数据训练了基础模型。 您应用了训练好的模型对您影像中的非正规住区进行分类,然后派生并清理了建筑物覆盖区面。 最后,您探索了更广泛的结果。
评论前必须登录!
注册