Skip To Content

使用模型

您可以通过 ArcGIS Pro 中的影像分析工具箱提供的使用深度学习分类对象工具使用基于视觉语言上下文的分类”预训练模型。

对影像进行分类

要使用影像的基于视觉语言上下文的分类功能,请完成以下步骤:

  1. 下载基于视觉语言上下文的分类模型。

    注:
    如果您使用 OpenAI 的视觉语言模型,则此模型需要互联网连接。 用于分类的数据(包括影像和可能的类标注)将与 OpenAI 共享。 但是,如果您使用的是 Llama Vision 模型,它会在本地运行,无需互联网连接,从而确保您的数据保留在您的计算机上,不会在外部共享。

  2. 单击添加数据以将影像添加到内容窗格。

    ArcGIS Pro 中添加的影像

    您将针对此影像运行预测。

  3. 单击分析选项卡,然后单击工具

    ArcGIS Pro 中“分析”选项卡上的“工具”

  4. 地理处理窗格中,单击工具箱,展开影像分析工具,然后选择深度学习下的使用深度学习分类对象工具。

    “使用深度学习分类对象”工具

  5. 参数选项卡上,按照以下说明设置参数:
    1. 输入栅格 - 从下拉菜单或文件夹位置选择一个输入影像。
    2. 输入要素(可选)- 如果您想将处理范围限制在由要素类标识的栅格图像中的特定区域,请选择要素图层。
    3. 输出分类对象要素类 - 设置将包含分类标注的输出要素图层。
    4. 模型定义 - 选择预训练模型的 .dlpk 文件。
    5. ClassLabel - 包含输出要素类中类或类别标注的字段名称。
    6. 参数(可选)- 根据需要更改参数值。

      • - 提供图像将被分类到的类。 使用逗号 (,) 作为类分隔符,可以在此处提供多个类。 例如,如果您要对飓风期间受损的房屋进行分类,输入是:轻微损坏、严重损坏、未损坏。
      • additional_context - 简要描述图像,为视觉语言模型提供上下文信息,帮助其更好地对图像进行分类。 工具将输入栅格裁剪成多个较小的影像。 如果您提供输入要素,则栅格将根据这些输入要素进行裁剪。 如果未提供输入要素,栅格将被裁剪成尺寸为 1024x1024 的小片。 描述单个影像而非栅格。 例如,要对某个社区所有建筑物遭受的损坏进行分类,您可以将输入栅格和该社区建筑物轮廓的边界框作为输入要素参数传递。 在此方案中,附加的上下文可能是“这是从受飓风影响地区拍摄的一栋房屋的航拍照片。” 请注意,这里描述的是单个影像,而不是整个栅格。
      • strict_classification - 包括视觉语言模型的大型语言模型都容易产生幻觉。 模型可能使用了工具中未提供的虚构类。 如果此参数设置为 True,则所有虚构类都将被标注为“未知”。 但是,您可能希望将这些虚构类保留在输出要素类中。 在这种情况下,该参数应保持为 False。
      • ai_connection_file - 这是包含将要使用的模型的连接详细信息的 JSON 文件的路径。 文件的扩展名为 .ais(AI 服务连接文件)或 .json。 目前支持在 OpenAI 或 Azure 上部署的 OpenAI 视觉语言模型,以及在本地计算机上安装的 Llama Vision 模型。 这使用户可以灵活选择 OpenAI 的基于云的解决方案或 Llama Vision 的本地部署模型。 文件路径必须来自运行地理处理工具的同一台计算机。

        以下是用于 OpenAI Azure 部署实例的连接文件 JSON 示例:

        OpenAI Azure 连接 JSON 文件

        {
        "service_provider" : "AzureOpenAI",
        "api_key" : "YOUR_API_KEY",
        "azure_endpoint" : "YOUR_AZURE_ENDPOINT",
        "api_version" : "YOUR_API_VERSION",
        "deployment_name" : "YOUR_DEPLOYMENT_NAME"
         }

        要直接连接到 OpenAI,将 service_provider 设置为 "OpenAI" 并使用 api_key 字段提供您的 OpenAI API 密钥。 您还必须通过设置 deployment_name 字段(例如,“gpt-4o”或“gpt-4”)来指定要使用的模型。 直接连接到 OpenAI 时,其余参数可以留空,因为这些参数仅在使用托管在 Azure 上的 OpenAI 服务时才需要。

        要在不使用基于云的服务的情况下使用 Llama Vision,请按照以下步骤下载模型权重:

        下载权重后,您可以修改连接 JSON,以按如下方式使用 Llama Vision:

        Llama Vision 连接 JSON 文件

        {
        "service_provider" : "local-llama",
         }

      “使用深度学习分类对象”工具的“参数”选项卡

  6. 环境选项卡上,将环境设置如下:
    1. 处理范围 - 从下拉菜单中选择默认范围或任意其他选项。
    2. 像元大小 - 设置为适当的值。 选择以米为单位的像元大小,要确保在选定区域内,可以最大化感兴趣对象的可见性。 在检测较大对象时,应考虑使用较大的像元大小;而在检测较小对象时,则应选择较小的像元大小。 例如,云检测的像元大小设置为 10 米,汽车检测的像元大小则设置为 0.30 米(30 厘米)。 有关像元大小的详细信息,请参阅栅格数据的像元大小
    3. 处理器类型 - 根据需要选择 CPUGPU

      注:

      Llama Vision 模型仅支持在 GPU 上推断;不支持基于 CPU 的推断。

      因此,如果可以,建议您选择 GPU 并设置 GPU ID 以指定要使用的 GPU。

      “使用深度学习分类对象”工具的“环境”选项卡

  7. 单击运行

    数据处理完成后,输出图层将添加到地图,预测类将添加到输出图层的属性表。

    分类结果


在本主题中
  1. 对影像进行分类