ArcGIS Pro2.5深度学习使用注意事项

0
分享 2020-09-18


ArcGIS Pro2.5深度学习使用中的注意事项

[/*]
[/list] [/*]
[/list]


又有好几天没有更新了,前面介绍了ArcGIS深度学习概念以及处理环境配置和处理流程介绍;
那么本节:我将围绕Part1-Part4给大家梳理下ArcGIS深度学习中使用中的注意事项以及在ArcGIS Pro2.5中使用参数说明分析。

1、Label深度学习样本工具参数介绍


为什么要标注呢????
首先图像注记(或标注)对于计算机视觉和学习也称为深度学习任务至关重要。如果要训练优质的深度学习模型,需要大量的标注数据,在获得适当的训练数据后,让我们的深度学习模型去学习和训练导出适配的模型。言外之意,给你个样本,你去自己学习去吧。

那么 ArcGIS Pro 2.5提供了两个用于深度学习样本标注的工具,如上图:
Label Objects for Deep Learning是从pro2.5开始新增的一个工具;
Training sample manager – ArcGIS Pro2.5之前已经具有的工具;
有些小伙伴会问它两区别是什么?????
样本标注的时候大概使用上没有什么区别,实质Label Object for Deep Learning包含了样本导出工具,这样就相当于标注完样本,无需在出去使用ExportTrainingDataForDeepLearning工具进展数据准备了。

核心部分还是name和value:注意不要用中文!!


2、准备数据参数介绍


使用遥感影像将标注的矢量或栅格数据转换为深度学习训练数据集。

此工具 输出为影像片文件夹和指定格式的元数据文件文件夹,类似于这种:

:Export Training Data For Deep Learning共中|有个Meta Data Format,这个就需要根据自己的目的进行选择了,你想要干个什么,是对象检测??? 还是 像素分类?? 还是 要素分类??


有些细心的小伙伴会发现,对象检测有两个格式可以选择,经检验,建议用PASC AL VOC rectangles一对象检测,不建议KITTL rectangles.-对象检测!!!

3、训练模型介绍


TrainDeepLearningModel该工具的输入训练数据必须包括从导出训练数据进行深度学习工具生成的影像和标注文件夹。目前ArcGIS Pro2.5是使用 PyTorch 深度学习框架进行训练。必须在您的计算机上安装 PyTorch 才能成功运行此工具。 那么前面提到了ArcGIS中封装了主流的四大深度学习套件,为什么只有pytorch呢???? 其他的三种也是支持的,不过在训练模型的时候,需要自己标注完样本后,自己去对应的框家下进行训练,然后在推理。
目前ArcGIS Pro中集成的可以直接使用的,无需写代码的有下图的6大模型:



Input raster:上一步中导出的样本文件夹;包含训练模型所需的影像片、标注和统计数据的文件夹。此数据为导出训练数据进行深度学习工具的输出。
Epochs:训练轮数;应用于训练模型的最大新纪元数。最大新纪元值为 1 意味着数据集将通过神经网络向前和向后传递一次。默认值为 20。
Batch size:批大小,一次需要处理以便用于训练的训练样本数。默认值为 2。如果您具有功能强大的 GPU,则可将此数字增加到 8、16、32 或 64。
Learning rate:学习率在整个训练过程中,旧信息将被新获取的信息覆盖的比率。如果未指定学习率,则系统将在训练过程中从学习曲线中提取最佳学习率。
Backbone:骨干网络,resnet34/resnet50;指定要用作训练新模型的架构的、预先配置的神经网络。这种方法称为迁移学习。其默认值为 ResNet34。
•RESNET34 —预先配置的模型将是在 ImageNET 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 34 个图层。这是默认设置。
•RESNET50 —预先配置的模型将是在 ImageNET 数据集上训练的残差网络,其中包含一百万个以上的影像,且深度为 50 个图层。
pretrained_model用于微调训练新模型的预训练模型。输入为 Esri 模型定义文件 (.emd)。
可以对具有相似类的预训练模型进行微调以适应新模型。例如,可以对已针对汽车进行了训练的现有模型进行微调,以训练用于识别卡车的模型。预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。
Validation%:验证集的比例将用于验证模型的训练样本的百分比。默认值为 10。
Stop when model stops improving:true指定是否将实施提前停止。
•STOP_TRAINING —当模型不再改进时,无论所指定的 max_epochs 是什么,模型训练都将停止。这是默认设置。
•CONTINUE_TRAINING —模型训练将一直持续,直至达到 max_epochs 为止。

4、ArcGIS Pro2.5深度学习推理工具和模型对应关系介绍


注:在推理工具使用的时候,你需要根据1.3中你选择的深度学习模型,然后来选择对应的工具进行推理:

有些小伙伴会说,怎么就这几个吗??? so what? ? ? 事情没有这么简单的滴!!!!
这些只是ArcGIS Pro中已经封装好的,可以进行直接即拿即用的模型,不用写一句代码,只需要按照使用ArcGIS pro即可使用;
辣么:::目前ArcGIS10.8中已经具有的模型当然不仅仅这些!!! 还有NLP、点云、视频处理的的深度学习模型哦!!!
欲知后事如何,且听下回分解!!

后续我将根据自己的学习进行整理分享给大家。点击右上角的关注哦!!

4.1、Classify Objects Using Deep Learning

用于运行输入栅格和可选要素类上的训练深度学习模型,以生成要素类或表*,其中每个输入对象均分配有类标注。

in_raster
待分类的输入栅格数据集。输入可以是镶嵌数据集、影像服务或影像文件夹中的单个栅格或多个栅格。
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
out_feature_class
包含输入要素类中对象周围几何的输出要素类,以及用于存储分类标注的字段。
Feature Class
in_model_definition
in_model_definition 参数值可以是 Esri 模型定义 JSON 文件 (.emd)、JSON 字符串或深度学习模型包 (.dlpk)。当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。.dlpk 文件必须存储在本地。其中包含深度学习二进制模型文件的路径、待使用的 Python 栅格函数的路径以及其他参数,例如首选切片大小或填充。
in_features(可选)
用于标识要分类或要标注的每个对象位置的点、线或面输入要素类。输入要素类中的每一行表示一个对象。
如果未指定输入要素类,则工具将假设每个输入影像包含单个待分类对象。如果一个或多个输入影像使用空间参考,则工具的输出为要素类,其中每个影像的范围将用作每个标注要素类的边界几何。如果一个或多个输入影像没有使用空间参考,则工具的输出为包含影像 ID 值和每个影像类标注的表。
Feature Class; Feature Layer
class_label_field(可选)
包含输出要素类中分类标注的字段名称。如果未指定字段名称,则会在输出要素类中生成一个名为 ClassLabel 的新字段。
String
processing_mode(可选)
指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
•PROCESS_AS_MOSAICKED_IMAGE —将镶嵌在一起并处理镶嵌数据集或影像服务中的所有栅格项目。这是默认设置。
•PROCESS_ITEMS_SEPARATELY —将作为独立影像处理镶嵌数据集或影像服务中的所有栅格项目。
String
model_arguments[model_arguments,…](可选)
函数参数在 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将由工具通过读取 Python 模块进行填充。
Value Table

4.2、Classify Pixels Using Deep Learning

用于运行输入栅格上的训练深度学习模型,以生成分类栅格,其中每个有效像素都被分配了一个类标注。

in_raster
待分类的输入栅格数据集。输入可以是镶嵌数据集、影像服务或影像文件夹中的单个栅格或多个栅格。
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
in_model_definition
in_model_definition 参数值可以是 Esri 模型定义 JSON 文件 (.emd)、JSON 字符串或深度学习模型包 (.dlpk)。当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。.dlpk 文件必须存储在本地。
其中包含深度学习二进制模型文件的路径、待使用的 Python 栅格函数的路径以及其他参数,例如首选切片大小或填充。
函数参数在 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将由工具通过读取 Python 模块进行填充。
Value Table
processing_mode
指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
•PROCESS_AS_MOSAICKED_IMAGE —将镶嵌在一起并处理镶嵌数据集或影像服务中的所有栅格项目。这是默认设置。
•PROCESS_ITEMS_SEPARATELY —将作为独立影像处理镶嵌数据集或影像服务中的所有栅格项目。
String

4.3、Detect Objects Using Deep Learning

用于运行输入栅格上的训练深度学习模型,以生成包含其找到对象的要素类。这些要素可以是所找到对象周围的边界框或面,也可以是对象中心的点。

in_raster
用于检测对象的输入图像。输入可以是镶嵌数据集、影像服务或影像文件夹中的单个栅格或多个栅格。
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
out_detected_objects
此输出要素类中包含围绕输入图像中检测到的一个或多个对象的几何。
Feature Class
**in_model_definition **
in_model_definition 参数值可以是 Esri 模型定义 JSON 文件 (.emd)、JSON 字符串或深度学习模型包 (.dlpk)。当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。.dlpk 文件必须存储在本地。
其中包含深度学习二进制模型文件的路径、待使用的 Python 栅格函数的路径以及其他参数,例如首选切片大小或填充。
File; String
arguments[arguments,…](可选)
函数参数在 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将由工具通过读取 Python 模块进行填充。
Value Table
run_nms(可选)
执行可用于标识重复对象和移除置信值较低的重复要素的非极大值抑制。
•NO_NMS —所有检测到的对象都将位于输出要素类中。这是默认设置。
•NMS —移除检测到的重复对象。
Boolean
confidence_score_field(可选)
要素类中包含将由对象检测方法输出的置信度得分的字段的名称。
将 NMS 关键字用于 run_nms 参数时需要此参数。
String
class_value_field(可选)
输入要素类中类值字段的名称。若未指定,则工具将使用标准类值字段 Classvalue 和 Value。若这些字段不存在,则所有要素将被视为相同的对象类。
String
max_overlap_ratio(可选)
两个重叠要素的最大重叠比,其定义为交集区域与并集区域之比。默认值为 0。
Double
processing_mode(可选)
指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
•PROCESS_AS_MOSAICKED_IMAGE —将镶嵌在一起并处理镶嵌数据集或影像服务中的所有栅格项目。这是默认设置。
•PROCESS_ITEMS_SEPARATELY —将作为独立影像处理镶嵌数据集或影像服务中的所有栅格项目。
String

文章来源:https://blog.csdn.net/weixin_40625478/article/details/105262776

0 个评论

要回复文章请先登录注册