使用深度学习预训练模型检测物体

设置工程并浏览数据

首先,您将下载一个包含本教程所有数据的工程,并在 ArcGIS Pro 中将其打开。

  1. 下载 Palm_Tree_Detection 包。

    名为 Palm_Tree_Detection.ppkx 的文件即会下载到您的计算机。

    注:

    .ppkx 文件是一个 ArcGIS Pro 工程包,可能包含可以在 ArcGIS Pro 中打开的地图、数据和其他文件。 通过本指南了解有关在 ArcGIS Pro 工程包 (.ppkx files) 指南中管理 .ppkx 文件的详细信息。

  2. 在计算机上找到已下载的文件。 双击 Palm_Tree_Detection.ppkx 以将其在 ArcGIS Pro 中打开。 如果出现提示,请使用 ArcGIS 账户登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项

    显示以汤加王国汤加塔普岛上的科洛瓦伊村为中心的地图。 图像图层显示在地形底图之上。

    初始工程视图

  3. 进行放大和平移以检查影像。

    观察整个景观中的众多棕榈树。

这些图像由无人机拍摄,并经过正射影像处理,以消除任何扭曲。 它的分辨率很高,每个像素代表地面上大约 9×9 厘米的面积,可以非常清晰地显示棕榈树和其他地物。 它采用 TIFF 格式,有红、绿、蓝三个色带,共同构成一幅自然的彩色图片。

手动识别这张图像中的所有棕榈树将非常耗时。 您将改为使用深度学习以自动检测它们。

使用预训练的深度学习模型检测棕榈树

您希望使用深度学习以检测影像中的棕榈树。 如果您还没有可用的深度学习模型,则需要先从头开始训练一个模型,为其提供大量示例以向模型展示什么是棕榈树。 高性能模型可能需要接触成千上万个示例。 作为替代方法,您可以使用已训练的模型。 您将获得一个这样的模型,并将其应用到您的图像中。

注:

ArcGIS Pro 中使用深度学习工具需要在计算机上安装正确的深度学习库。 如果您未安装这些文件,请保存工程,关闭 ArcGIS Pro,然后按照ArcGIS Pro 中为深度学习做好准备中提供的步骤说明操作。 在这些说明中,您还可以了解如何检查您的计算机硬件和软件能否运行深度学习工作流,以及获取其他有用的提示。 完成后,您可以重新打开工程并继续本教程。

首先,打开使用深度学习检测对象工具。

  1. 在功能区视图选项卡的窗口组中,单击地理处理

    地理处理工具

  2. 地理处理窗格的搜索框中,键入 Detect Objects Using Deep Learning。 在结果列表中,单击使用深度学习检测对象工具打开它。

    “使用深度学习检测对象”工具

  3. 设置以下使用深度学习检测对象参数值:
    • 对于输入栅格,选择 Kolovai_imagery.tif
    • 对于输出检测对象,键入 Detected_Palm_Trees
    • 对于模型定义,单击浏览按钮。

    “使用深度学习检测对象”参数值

    ArcGIS Living Atlas of the World 获取棕榈树提取预训练模型。

    注:

    ArcGIS Living Atlas of the WorldEsri 的权威 GIS 数据集。 它包含一个由超过 50 个预训练深度学习模型组成的日益丰富的的模型库,可检测建筑物、船舶、农田边界等各种物体。

  4. 模型定义窗口中的门户下,单击 Living Atlas。 在搜索框中,键入 Palm Tree Detection。 选择棕榈树检测并单击 OK

    已选中棕榈树检测模型

    注:

    您可以通过ArcGIS Living Atlas 网站检索,了解更多有关棕榈树检测模型的信息。 您将了解到,该模型旨在检测高分辨率图像(5 至 15 厘米)中的棕榈树,例如无人机图像。 图像预计有三个波段:红、绿、蓝 (RGB)。 该机型与您的图像非常匹配。

    选择深度学习模型后,模型参数将自动加载。

  5. 参数下,保留所有默认值。

    模型参数

    有两个参数特别值得关注:

    • 阈值——阈值为 0.5 意味着只有当模型有至少 50% 的置信度认为检测到的物体确实是棕榈树时,才会将其添加到输出数据集中。 通过反复试验可以找到最佳阈值。
    • 批量大小——深度学习对象检测无法一次性对整个图像进行检测。 该工具会改为将图像切割成名为“切片”的小块。 批量大小为 4 意味着该工具将一次处理四个图像切片。 在运行该工具时,您可能会收到内存不足的错误提示,因为您的电脑没有足够的内存来进行该级别的处理。 在这种情况下,请尝试将 Batch_size 值从 4 降到 2 甚至 1。 减小此值不会影响模型的质量,仅会影响模型检测过程的效率。

    目前,这两个参数保留默认值。

    有时,模型会不止一次检测到一个对象。 非极大值抑制 (NMS) 是一种可选程序,当检测到对象重复时,会抑制部分检测到的对象。 保留检测到的置信度最高的对象,移除其他对象。 在下面的示例图像中,棕榈树被检测到两次。 使用 NMS 时,只保留一个检测到的对象。

    一颗棕榈树被检测到两次

  6. 勾选非极大值抑制旁边的方框。
  7. 对于最大重叠比,输入 0.5

    “非极大值抑制”选项

    • 最大重叠比参数决定了两个检测到的对象之间必须有多少重叠才会被视为重复对象并适用于 NMS。 0.5 表示重叠度必须达到或超过 50%。 在下面的示例图中,检测到的两个对象之间的重叠度小于 50%,因此它们并不代表同一个对象,也不会应用 NMS。

      两个检测到的对象重叠

  8. 单击环境选项卡。
    • “环境”选项卡
  9. 对于处理器类型,选择 GPU
    • “处理器类型”设置为 GPU
      注:

      本教程假定您的计算机具有建议的 GPU 性能。 如果计算机没有 GPU,您仍可使用 CPU 执行该过程,但用于处理数据的时间可能更长。 若为此情况,请选择 CPU 选项。

      此时,您可以按原样运行工具:工具将检测整个 Kolovai_imagery.tif 影像中的棕榈树,此过程可能花费 20 分钟到 1 小时的时间,具体取决于计算机的规格。 为使本教程尽可能简洁,您将仅检测输入影像的一小部分中的棕榈树。

  10. 在功能区地图选项卡的导航组中,单击书签并选择 Detection area

    Detection area 书签

    地图会放大到科洛瓦伊的一个较小的区域。

    地图上的较小范围

  11. 地理处理窗格环境选项卡中的处理范围下,单击当前显示范围按钮。

    “当前显示范围”按钮

    顶部左侧右侧底部坐标会更新,以对应地图上显示的当前范围。

  12. 接受所有默认值,然后单击运行

    您可以监控运行按钮下的进程进度,也可以单击查看详细信息以查看详细信息。

    “查看详细信息”链接

    几分钟后,结果图层 Detected_Palm_Trees 将显示在内容窗格中和地图上。 该图层为要素图层,其中每个面表示一个棕榈树。

    提示:

    如果出现内存不足错误,请尝试将 batch_size 值从 4 减小到 2 甚至 1,然后重新运行程序。

    使用预训练的深度学习模型成功检测到了科洛瓦伊地区的棕榈树。

    地图上检测到的棕榈树

    注:

    颜色是随机分配的,可能会有所不同。

设置结果图层的样式并进行检查

您将更改 Detected_Palm_Trees 图层的样式,并对其进行检查。

  1. 内容窗格中,单击 Detected_Palm_Trees 符号以显示符号系统窗格。

    Detected_Palm_Trees 符号

  2. 符号系统窗格中,如有必要,单击属性选项卡。

    符号系统窗格中的属性选项卡

  3. 外观下,设置以下参数:
    • 对于颜色,选择无颜色
    • 对于轮廓颜色,选择一种明亮的黄色,例如太阳黄
    • 轮廓宽度选择 2 磅

    “符号系统”窗格中的参数

  4. 单击应用

    图层已更新至新的符号系统。

    • 使用新符号的图层
  5. 在地图上进行放大并检查 Detected_Palm_Trees 图层。

    检测到的对象(放大)

    您可以观察到,该模型成功地检测到了大多数棕榈树,很少出现误报情况(即模型错误地在没有棕榈树的位置发现了一棵棕榈树)。

  6. 也可以选择在您选择的不同范围或整个图像上再次运行使用深度学习检测对象工具。 为此,请缩放并平移到地图的新范围上,单击环境选项卡上的当前显示范围。 然后单击运行
    注:

    在整个图像上运行该工具将需要 40 分钟或更长的时间,具体取决于您的计算机规格。

    或者,在您的工程中包含了一张地图,显示了整个范围的所有结果层。 要查看它,请转到目录窗格,展开地图,右键单击 Map_results 并选择打开

    整个图像中检测到超过 12500 棵棕榈树。

  7. 也可以尝试更改一些参数,如阈值最大重叠比。
  8. 快速访问工具栏中,单击保存按钮以保存您的工程。

    “保存”按钮

对图像应用预训练模型

要将预训练的深度学习模型应用到自己的数据中,首先要尝试使用本教程中学到的工作流程。 这是一种简单的方法,您可能会立即获得高质量的结果。

不过,您可能对最初的结果并不完全满意。 在这种情况下,可以采用几种技术手段。 首先,可执行以下操作:

  • 修改影像,确保其进一步符合预训练模型的预期(例如,如果模型是在红-绿-蓝影像上训练的,那么您的影像就应该只有红、绿、蓝三种色带,而非红外或其他光谱波段)。
  • 给深度学习模型提供一些自己的数据,对其进一步训练。

您可以在通过迁移学习改进深度学习模型教程中了解这些强大的方法。

在本教程中,您已经使用 ArcGIS Living Atlas 中的预训练模型的深度学习来检测影像中的棕榈树。 由此产生的要素图层可用于估算整个地区的棕榈树数量、监测耕作方法以及评估即将到来的产量。

您可以在教程库中找到更多教程。