arcgispro检测对象只能用cpu

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgispro检测对象只能用cpu相关的知识,希望对你有一定的参考价值。

参考技术A arcgispro检测对象只能用cpu
在 Advanced 许可等级下可用。

交互式对象检测用于从场景中显示的图像中查找感兴趣对象。

对象检测依赖于深度学习模型,该模型经过训练,可以检测影像中的特定对象,例如场景中建筑物的门窗。检测结果将自动保存到以置信度得分、边界框尺寸和标注名称作为属性的点要素类。

在运行此工具之前,需要安装深度学习库。

许可:
要执行对象检测,需要 ArcGIS Pro Advanced 许可级别。

下图显示了使用不同的符号系统选项返回的对象检测结果。

使用框符号系统的交互式对象检测

使用位置点符号系统的交互式对象检测

检测 3D 视图中的对象

对象检测工具 目标检测 位于分析选项卡的工作流组中的 3D 探索性分析下拉菜单中。选择对象检测工具后,将显示探索性分析窗格。使用探索性分析窗格可修改或接受对象检测参数,并设置哪种照相机方法确定工具如何运行以获取检测结果。首次运行该工具时,将加载模型并计算检测。其他运行不需要重新加载模型,所需时间更少。如果更改模型选择,将再次需要初始加载时间。

对象检测属性

下表介绍了对象检测的属性:

选项 说明
模型
用于检测对象的深度学习包 (.dlpk)。经过训练的模型必须是 FasterRCNN 模型。展开模型输入下拉箭头,然后单击下载自动获得预先训练的 Esri Windows and Doors 模型。(可选)单击浏览选择本地深度学习包或从 ArcGIS Online 进行下载。

要检测的实际对象列表。将根据 .dlpk 文件填充此列表。默认值设置为全部。
最低置信度
检测必须达到的最低检测分数。将放弃分数低于此级别的检测。默认值为 0.5。
最大重叠阈值
与其他检测的交并比阈值。如果检测结果重叠,则得分最高的检测视为真正。默认值为 0。
使用 GPU 处理
使用图形处理器 (GPU) 的处理能力,而不是计算机处理器 (CPU) 的处理能力。如果您拥有至少 8 Gb 专用 GPU 内存的绝佳显卡,建议这样做。
要素图层
输出要素图层的名称。

如果图层不存在,则将在工程的默认地理数据库中创建要素类,并将其添加到当前地图或场景中。
如果图层已存在于视图中并具有所需的方案,则新检测到的对象将追加到现有要素类。
如果当图层不在当前地图或场景中时重新运行该工具,则将在默认地理数据库中创建一个新的且名称唯一的要素类,并将其添加到视图中。
描述
要包含在属性表中的字段。可以将多个检测结果保存到同一要素图层,并且可以使用描述来区分这几个检测。
符号系统
使用默认颜色电子金色设置输出要素图层的返回形状。符号系统选择如下:

位置点 - 标记要素中心点的 X。这是默认设置。
垂直边界框(仅限 3D)- 垂直半透明的填充边界框。在检测垂直对象(例如门和窗)的深度学习模型的场景中,使用垂直边界框符号系统。
水平边界框(仅限 3D)- 水平半透明的填充边界框。在检测水平对象(例如游泳池)的深度学习模型的场景中,使用水平边界框符号系统。
如果输出图层已存在于视图中并且具有自定义符号系统,则在运行该工具时,不会更改其符号系统。
对象检测方法

下表介绍了对象检测方法:

方法 说明
当前照相机 当前照相机
这是默认照相机方法。它使用当前照相机位置检测物体。
重新定位照相机 重新定位照相机(仅限 3D)
在检测对象之前,将照相机重新定位到水平或垂直视点。设置感兴趣区域视点,然后基于该视点微调路线对齐区域。建议不要将照相机定位在远处的对象上,从而在视图中拉近这些对象。
更新检测结果

要更改输出结果(例如,使用其他置信度值或选择另一个感兴趣区域),更改这些属性,然后再次运行对象检测工具。新发现的对象将追加到同一图层中。或者,提供一个新名称并创建另一个输出要素图层以进行比较。建议不要手动更新对象检测结果的属性值。

提示:
重新运行该工具之前,针对先前检测结果关闭图层可见性。否则,这些结果可能与要检测的对象重叠,从而影响检测结果。

删除检测结果

检测结果将添加为点要素。同样,可使用标准编辑工作流删除各个要素。或者,从工程的默认地理数据库中删除整个要素类。从内容窗格中移除图层时,不会自动删除您的结果,因为这些结果仍存在于地理数据库中。如果当图层不在当前地图或场景中时重新运行该工具,则将在默认地理数据库中创建一个新的且名称唯一的要素类,并将其添加到视图中。

arcgis pro ArcGISProject

ArcGISProject

描述

用于访问 ArcGIS Pro 工程方法和属性。大多数地图自动化工作流都需要引用此对象。

说明

ArcGISProject 对象用于访问 ArcGIS Pro 应用程序中找到的众多工程属性和方法。ArcGISProject 对象通常是最先引用的对象(这些对象是在地图自动化脚本中创建的)之一,因为它是访问几乎所有其他 ArcGIS 工程对象的主要入口点。

引用 ArcGISProject 对象后,您可以使用 listMaps 方法访问地图或使用 listLayouts 方法访问布局。引用 Map 对象后,您可以访问 Layer 或 Table 对象,或访问 Layout 对象后,您可以访问 GraphicElementLegendElementMapFrameMapSurroundElementpictureElement 和 TextElement 等布局元素。您可以从这些对象访问工程中的其他对象。ArcGISProject 对象还可以用于管理工程设置,如 defaultGeodatabase 和 defaultToolbox。

importDocument 方法允许您将地图文档 (.mxd)、globe 文档 (.3dd) 和 scene 文档 (.sxd) 导入到工程中。此操作提供了用于将这些文档类型自动转换为 ArcGIS Pro 工程的机制。importDocument 方法还允许您将地图文件 (.mapx)、布局文件 (.pagx) 或报表文件 (.rptx) 导入到现有工程中。

activeMap 属性用于在应用程序内部执行的脚本,例如在 Python 窗格中运行的脚本,或与使用基于活动视图提供信息的验证脚本的脚本工具相关联的脚本。例如,如果地图视图已打开,则会返回相关联的地图。如果布局视图已打开,则会返回与布局上活动地图框相关联的地图。当脚本在应用程序外部运行时,该属性将始终返回 None 值,因为视图仅在应用程序打开时才会相关。

属性

属性 说明 数据类型
activeMap
(只读)

返回与应用程序内部焦点视图相关联的地图对象。None 如果没有打开具有相关联的地图的视图或当脚本在应用程序外部运行时,将会返回。

Map
dateSaved
(只读)

返回报告上次工程保存日期的 Python datetime 对象。

DateTime
defaultGeodatabase
(可读写)

工程的默认地理数据库位置。此字符串必须包含地理数据库的完整路径和文件名称。

String
defaultToolbox
(可读写)

工程的默认工具箱位置。此字符串必须包含工具箱的完整路径和文件名称。

String
documentVersion
(只读)

根据上次保存文档的时间返回文档版本。执行 save 或 saveACopy 将更新文档版本,以匹配应用程序版本。

String
filePath
(只读)

返回报告完全限定的工程路径和文件名的字符串值。

String
homeFolder
(可读写)

工程的主目录文件夹位置。此字符串必须包含所需位置的完整路径。

String

方法概述

方法 说明
importDocument (document_path, {include_layout}, {reuse_existing_maps})

将地图文档 (.mxd)、globe 文档 (.3dd) 和 scene 文档 (.sxd) 导入到 ArcGIS Pro 工程中。还可以导入地图文件 (.mapx)、布局文件 (.pagx) 和报表文件 (.rptx) 的内容。

listBrokenDataSources ()

返回项目中到所有地图原始源数据的连接存在断开情况的 Layer 和/或 Table 对象的 Python 列表。

listColorRamps ({wildcard})

listColorRamps 方法将引用工程中的可用色带。

listLayouts ({wildcard})

返回 ArcGIS 工程 (.aprx) 中的 Layout 对象的 Python 列表。

listMaps ({wildcard})

返回 ArcGIS 工程 (.aprx) 中的 Map 对象的 Python 列表。

listReports ({wildcard})

返回 ArcGIS 工程 (.aprx) 中的报表对象的 Python 列表。

save ()

将更改保存至 ArcGISProject (.aprx)。

saveACopy (file_name)

将 ArcGISProject (.aprx) 保存到新文件路径或另存为新文件名。

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})

使用工作空间字典或路径替换连接属性。

方法

importDocument (document_path, {include_layout}, {reuse_existing_maps})
参数 说明 数据类型
document_path

包含(.mxd、.3dd 或 .sxd)文档或地图文件 (.mapx)、布局文件 (.pagx) 或报表文件 (.rptx) 的系统路径和名称的字符串。

String
include_layout
 

指示是否导入地图文档中的布局 (.mxd) 的布尔型参数。如果设置为 True,则将导入布局和全部数据框。如果设置为 False,则仅导入数据框。对于其他文件类型,可忽略此参数。

(默认值为 True)

Boolean
reuse_existing_maps
 

默认情况下,导入布局文件 (.pagx) 会复制布局引用的所有地图。如果工程中已存在地图,则可以将 reuse_existing_maps 设置为 False,由此可检查工程中布局文件中引用的地图,并仅复制工程中不存在的地图。这样可以避免在工程中复制地图。对于其他文件类型,可忽略此参数。

(默认值为 False)

Boolean

此方法一次只能导入一个文档。要导入多个文档,请对每个文档执行一次此方法。地图文档 (.mxd) 始终具有布局。迁移地图文档时,您可能并不总是想要导入布局。如果是这种情况,请设置 include_layout=False。

listBrokenDataSources ()
 
返回值
数据类型 说明
List

Layer 和/或 Table 对象的 Python 列表。

listBrokenDataSources 方法始终返回 Python 列表对象,即使返回一个损坏的图层或表。

listColorRamps ({wildcard})
参数 说明 数据类型
wildcard
 

通配符将基于色带名称显示在应用程序中。星号 (*) 和字符的组合可用于帮助限制生成的列表。

(默认值为 None)

String
返回值
数据类型 说明
List

将返回 ColorRamp 对象列表。

在一个工程中,可能会有多个色带使用相同的名称。创作工程时,采用可通过唯一名称轻松进行搜索的色带名称非常重要。索引编号可用于返回一个特定的色带。例如,以下行可以返回列表中的第一个色带对象:cr = aprx.listColorRamps("Black*")[0]。

listLayouts ({wildcard})
参数 说明 数据类型
wildcard
 

通配符基于布局名称且不区分大小写。星号 (*) 和字符的组合可用于帮助限制生成的列表。

(默认值为 None)

String
返回值
数据类型 说明
List

ArcGIS 工程中的 Layout 对象的 Python 列表。

返回 ArcGIS 工程 (.aprx) 中的 Layout 对象的 Python 列表。

listMaps ({wildcard})
参数 说明 数据类型
wildcard
 

通配符基于地图名称且不区分大小写。星号 (*) 和字符的组合可用于帮助限制生成的列表。

(默认值为 None)

String
返回值
数据类型 说明
List

ArcGIS 工程中的 Map 对象的 Python 列表。

返回 ArcGIS 工程 (.aprx) 中的 Map 对象的 Python 列表。

listReports ({wildcard})
参数 说明 数据类型
wildcard
 

通配符基于报表名称且不区分大小写。星号 (*) 和字符的组合可用于帮助限制生成的列表。

(默认值为 None)

String
返回值
数据类型 说明
List

ArcGIS 工程中的报表对象的 Python 列表。

返回 ArcGIS 工程 (.aprx) 中的报表对象的 Python 列表。

save ()
 

将更改保存至 ArcGISProject (.aprx)。已保存此项目,同时项目变量继续引用原始 ArcGISProject对象。

saveACopy (file_name)
参数 说明 数据类型
file_name

用来将 ArcGISProject (.aprx) 保存到新文件路径或另存为新文件名的字符串。

String

该方法会创建新输出工程文件,但工程变量继续引用原始 ArcGISProject 对象。并不会复制工程文件夹中的所有内容。

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
参数 说明 数据类型
current_connection_info

用于表示工作空间路径或 Python 字典(包含要更新的源的连接属性)的字符串。

String
new_connection_info

用于表示包含连接属性与新源信息的工作空间路径或 Python 字典的字符串。

String
auto_update_joins_and_relates
 

如果设置为 True,则 updateConnectionProperties 方法还将更新相关连接或关联的连接。

(默认值为 True)

Boolean
validate
 

如果设置为 True,则仅在 new_connection_info 值为有效连接时,才会更新连接属性。如果为无效连接,则不会替换连接。如果设置为 False,则无论匹配是否有效,此方法都会将所有连接设置为匹配 new_connection_info。在这种情况下,如果匹配不存在,则将损坏数据源。

(默认值为 True)

Boolean
ignore_case
 

确定搜索是否区分大小写。默认情况下,查询区分大小写。要执行不区分大小写的查询,请将 ignore_case 设置为 True。

(默认值为 False)

Boolean

有关详细说明、参数信息、案例和代码示例,请参阅更新和修复数据源帮助主题。

代码示例

ArcGISProject 示例 1

下面的脚本演示了如何将文档导入到现有 ArcGIS Pro 工程。同时还设置了一些默认工程设置并将结果保存到新文件。

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:Projectslank.aprx")
aprx.importDocument(r"C:ProjectsYosemiteNPDocumentsYosemite.mxd")
aprx.importDocument(r"C:ProjectsYosemiteNPDocumentsYosemite_ScenicViews.3dd")
aprx.defaultToolGeoDatabase = r"C:ProjectsYosemiteNPData_VectorYosemiteData.gdb"
aprx.defaultToolbox = r"C:ProjectsYosemiteNPAnalysisAnalysisTools.tbx"
aprx.saveACopy(r"C:ProjectsYosemiteNPYosemite.aprx")
ArcGISProject 示例 2

下面的脚本使用了关键字 current,因此可从 Python 窗口运行此脚本。此脚本打印了工程及其图层中每个地图的名称,以及每个布局的名称及其页面大小。

aprx = arcpy.mp.ArcGISProject("CURRENT")
for m in aprx.listMaps():
    print("Map: " + m.name)
    for lyr in m.listLayers():
        print("  " + lyr.name)
print("Layouts:")
for lyt in aprx.listLayouts():
    print(f"  {lyt.name} ({lyt.pageHeight} x {lyt.pageWidth} {lyt.pageUnits})")

以上是关于arcgispro检测对象只能用cpu的主要内容,如果未能解决你的问题,请参考以下文章

arcgispro导入坐标重叠

带有 TypeError 的 TensorRT 对象检测:只能将整数标量数组转换为标量索引

构造函数

arcgis pro ArcGISProject

js检测对象中是否存在某个属性

ArcGIS Pro 中不可用的工具