标注 | 说明 | 数据类型 |
输入栅格 | 输入源影像,通常是多光谱影像。 输入源影像类型的示例包括多光谱卫星影像、无人机影像、航空影像和国家农业影像计划 (NAIP)。 输入可以是影像的文件夹。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder |
输出文件夹 | 将存储输出影像片和元数据的文件夹。 该文件夹还可以是使用云存储连接文件 (*.acs) 的文件夹 URL。 | Folder |
输入要素类或分类栅格或表 | 矢量或栅格形式的训练样本数据。 矢量输入应当遵循使用训练样本管理器窗格生成的训练样本格式。 栅格输入应当遵循分类栅格工具生成的分类栅格格式。 栅格输入也可以来自分类栅格的文件夹。 输入表应当遵循通过训练样本管理器窗格中的深度学习标注对象工具生成的训练样本格式。 可以使用统计信息并遵循正确的训练样本格式生成最佳结果;但输入也可以是没有类值字段的点要素类,或不具有任何类信息的整型栅格。 | Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Table; Folder |
图像格式 | 指定将用于影像片输出的栅格格式。 PNG 和 JPEG 格式最多支持 3 个波段。
| String |
切片大小 X (可选) | 影像片的大小,针对 x 维度。 | Long |
切片大小 Y (可选) | 影像片的大小,针对 y 维度。 | Long |
步幅 X (可选) | 在创建下一个影像片时 x 方向上移动的距离。 当步幅等于切片大小时,将不会发生重叠。 当步幅等于切片大小的一半时,将有 50% 的重叠。 | Long |
步幅 Y (可选) | 在创建下一个影像片时 y 方向上移动的距离。 当步幅等于切片大小时,将不会发生重叠。 当步幅等于切片大小的一半时,将有 50% 的重叠。 | Long |
输出无要素切片 (可选) | 指定是否将导出不捕获训练样本的影像片。
如果选中,不捕获标注数据的影像片也会被导出;如果未选中,它们将不会被导出。 | Boolean |
元数据格式 (可选) | 指定输出元数据标注使用的格式。 如果输入训练样本数据是诸如建筑物图层等的要素类图层或者标准分类训练样本文件,请使用 KITTI 标注 或 PASCAL Visual 对象类选项(Python 中的 KITTI_rectangles 或 PASCAL_VOC_rectangles)。 输出元数据是包含训练样本数据的 .txt 文件或 .xml 文件,其中训练样本数据包含在最小外接矩形中。 元数据文件的名称与输入源影像名称相匹配。 如果输入训练样本数据是类地图,请使用分类切片选项(Python 中的 Classified_Tiles)作为输出元数据格式。 对于 KITTI 元数据格式,将创建 15 个列,但此工具中仅使用其中 5 个列。 第一个列是类值。 然后,跳过之后 3 个列。 5 至 8 列用于定义最小外接矩形,该矩形将由以下 4 个影像坐标位置构成:左、上、右和下像素。 最小外接矩形包含用于深度学习分类器中的训练片。 系统将不会使用其他列。
| String |
起始索引 (可选) | 旧版本:此参数已弃用。 | Long |
类值字段 (可选) | 包含类值的字段。 如果未指定任何字段,则系统将搜索 value 或 classvalue 字段。 如果该要素不包含类字段,则系统将确定所有记录均属于一个类。 | Field |
缓冲半径 (可选) | 用于描绘训练样本区域的每个训练样本周围的缓冲区半径。 您可以借此从点创建圆形面训练样本。 系统将使用输入要素类或分类栅格或表参数值空间参考的线性单位。 | Double |
输入掩膜面 (可选) | 此面要素类用于描绘将创建影像片的区域。 系统仅会创建完全位于面内的影像片。 | Feature Layer |
旋转角度 (可选) | 将用于生成其他影像片的旋转角度。 影像片将在旋转角度为 0 的情况下生成,这意味着无旋转。 随后系统将以指定的角度旋转该片,以创建其他影像片。 系统将在多个影像片中以多个角度捕获相同的训练样本,以便用于数据增强。 默认旋转角度为 0。 | Double |
参考系统 (可选) | 指定将用于解释输入影像的参考系类型。 指定的参考系必须与训练深度学习模型所使用的参考系相匹配。
| String |
处理模式 (可选) | 指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。 当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
| String |
将周围要素变黑 (可选) | 指定是否对每个影像切片中的每个对象或要素周围的像素进行掩膜。 仅当元数据格式参数设置为标注切片且已指定输入要素类或分类栅格时,此参数才适用。
| Boolean |
裁剪模式 (可选) | 指定是否将裁剪导出的切片,从而使其大小均相同。 仅当元数据格式参数设置为标注切片或 Imagenet 且已指定输入要素类或分类栅格时,此参数才适用。
| String |
附加输入栅格 (可选) | 将用于影像转换方法的附加输入影像源。 当元数据格式参数设置为分类切片、导出切片或 CycleGAN 时,此参数有效。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder |
实例要素类 (可选) | 采集的训练样本数据,包含用于实例分割的类。 输入也可以是没有类值字段的点要素类,或不具有任何类信息的整型栅格。 该参数仅在将元数据格式参数设置为全景分割时有效。 | Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Table; Folder |
实例类值字段 (可选) | 包含实例分割的类值的字段。 如果未指定任何字段,则该工具将使用值或类值字段(如果存在)。 如果要素不包含类字段,则工具将确定所有记录均属于一个类。 该参数仅在将元数据格式参数设置为全景分割时有效。 | Field |
最小面重叠比 (可选) | 要包含在训练数据中的要素的最小重叠百分比。 如果重叠百分比小于指定的值,则将从训练片中排除该要素,并且不会将其添加到标注文件中。 百分比值以小数表示。 例如,要指定 20% 重叠,请使用值 0.2。 默认值为 0,这意味着将包含所有要素。 此参数可以改善工具的性能,也可以改善推断能力。 由于创建的训练片较少,因此速度得到了改进。 由于将对模型进行训练以仅检测大块对象,而忽略要素的小角落,因此推断得到了改进。 这意味着将检测到较少的误报,并且非最大抑制工具将移除较少的误报。 当输入要素类或分类栅格或表参数值为要素类时,此参数处于活动状态。 | Double |
需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
摘要
使用遥感影像将标注的矢量或栅格数据转换为深度学习训练数据集。 输出将是影像芯片文件夹和指定格式的元数据文件文件夹。
使用情况
该工具将创建训练数据集以支持第三方深度学习应用程序,如 Google TensorFlow、Keras、PyTorch 和 Microsoft CNTK。
深度学习类训练样本基于包含感兴趣的要素或类的小型子影像,该子影像被称为影像片。
使用现有的分类训练样本数据或 GIS 要素类数据(如建筑物覆盖区图层)生成包含来自源影像的类样本的影像片。 影像片通常有 256 个像素行和 256 个像素列,除非训练样本大小更大。 每个影像片可以包含一个或多个对象。 如果使用标注切片参数元数据格式,则每个影像片只能有一个对象。
通过指定参考系统参数值,可以将训练数据导出到地图空间、影像空间或像素空间(原始影像空间)中,以便将其用于深度学习模型训练。
该工具支持从影像集合中导出训练数据。 您可以将影像文件夹添加为输入栅格值。 如果输入栅格值为镶嵌数据集或影像服务,则您也可以将处理模式参数指定为将镶嵌作为一个输入进行处理或每个栅格项目分别处理。
可以使用地理处理环境设置来调整像元大小和范围。
此工具支持并行处理因子环境设置。 默认情况下,并行处理因子不启用;因此,该工具将在单个核心上运行。 当使用大型数据集时,通过指定该工具可用于分配工作负载的核心数以启用并行处理因子。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
参数
ExportTrainingDataForDeepLearning(in_raster, out_folder, in_class_data, image_chip_format, {tile_size_x}, {tile_size_y}, {stride_x}, {stride_y}, {output_nofeature_tiles}, {metadata_format}, {start_index}, {class_value_field}, {buffer_radius}, {in_mask_polygons}, {rotation_angle}, {reference_system}, {processing_mode}, {blacken_around_feature}, {crop_mode}, {in_raster2}, {in_instance_data}, {instance_class_value_field}, {min_polygon_overlap_ratio})
名称 | 说明 | 数据类型 |
in_raster | 输入源影像,通常是多光谱影像。 输入源影像类型的示例包括多光谱卫星影像、无人机影像、航空影像和国家农业影像计划 (NAIP)。 输入可以是影像的文件夹。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder |
out_folder | 将存储输出影像片和元数据的文件夹。 该文件夹还可以是使用云存储连接文件 (*.acs) 的文件夹 URL。 | Folder |
in_class_data | 矢量或栅格形式的训练样本数据。 矢量输入应当遵循使用训练样本管理器窗格生成的训练样本格式。 栅格输入应当遵循分类栅格工具生成的分类栅格格式。 栅格输入也可以来自分类栅格的文件夹。 输入表应当遵循通过训练样本管理器窗格中的深度学习标注对象工具生成的训练样本格式。 可以使用统计信息并遵循正确的训练样本格式生成最佳结果;但输入也可以是没有类值字段的点要素类,或不具有任何类信息的整型栅格。 | Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Table; Folder |
image_chip_format | 指定将用于影像片输出的栅格格式。 PNG 和 JPEG 格式最多支持 3 个波段。
| String |
tile_size_x (可选) | 影像片的大小,针对 x 维度。 | Long |
tile_size_y (可选) | 影像片的大小,针对 y 维度。 | Long |
stride_x (可选) | 在创建下一个影像片时 x 方向上移动的距离。 当步幅等于切片大小时,将不会发生重叠。 当步幅等于切片大小的一半时,将有 50% 的重叠。 | Long |
stride_y (可选) | 在创建下一个影像片时 y 方向上移动的距离。 当步幅等于切片大小时,将不会发生重叠。 当步幅等于切片大小的一半时,将有 50% 的重叠。 | Long |
output_nofeature_tiles (可选) | 指定是否将导出不捕获训练样本的影像片。
| Boolean |
metadata_format (可选) | 指定输出元数据标注使用的格式。 如果输入训练样本数据是诸如建筑物图层等的要素类图层或者标准分类训练样本文件,请使用 KITTI 标注 或 PASCAL Visual 对象类选项(Python 中的 KITTI_rectangles 或 PASCAL_VOC_rectangles)。 输出元数据是包含训练样本数据的 .txt 文件或 .xml 文件,其中训练样本数据包含在最小外接矩形中。 元数据文件的名称与输入源影像名称相匹配。 如果输入训练样本数据是类地图,请使用分类切片选项(Python 中的 Classified_Tiles)作为输出元数据格式。
对于 KITTI 元数据格式,将创建 15 个列,但此工具中仅使用其中 5 个列。 第一个列是类值。 然后,跳过之后 3 个列。 5 至 8 列用于定义最小外接矩形,该矩形将由以下 4 个影像坐标位置构成:左、上、右和下像素。 最小外接矩形包含用于深度学习分类器中的训练片。 系统将不会使用其他列。 以下为 PASCAL_VOC_rectangles 选项示例: 有关详细信息,请参阅 PASCAL 可视化对象类。 | String |
start_index (可选) | 旧版本:此参数已弃用。 在 Python 中使用 0 或 # 的值。 | Long |
class_value_field (可选) | 包含类值的字段。 如果未指定任何字段,则系统将搜索 value 或 classvalue 字段。 如果该要素不包含类字段,则系统将确定所有记录均属于一个类。 | Field |
buffer_radius (可选) | 用于描绘训练样本区域的每个训练样本周围的缓冲区半径。 您可以借此从点创建圆形面训练样本。 系统将使用 in_class_data 参数值空间参考的线性单位。 | Double |
in_mask_polygons (可选) | 此面要素类用于描绘将创建影像片的区域。 系统仅会创建完全位于面内的影像片。 | Feature Layer |
rotation_angle (可选) | 将用于生成其他影像片的旋转角度。 影像片将在旋转角度为 0 的情况下生成,这意味着无旋转。 随后系统将以指定的角度旋转该片,以创建其他影像片。 系统将在多个影像片中以多个角度捕获相同的训练样本,以便用于数据增强。 默认旋转角度为 0。 | Double |
reference_system (可选) | 指定将用于解释输入影像的参考系类型。 指定的参考系必须与训练深度学习模型所使用的参考系相匹配。
| String |
processing_mode (可选) | 指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。 当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
| String |
blacken_around_feature (可选) | 指定是否对每个影像切片中的每个对象或要素周围的像素进行掩膜。 仅当 metadata_format 参数设置为 Labeled_Tiles 且已指定输入要素类或分类栅格时,此参数才适用。
| Boolean |
crop_mode (可选) | 指定是否将裁剪导出的切片,从而使其大小均相同。 仅当 metadata_format 参数设置为 Labeled_Tiles 或 Imagenet 且已指定输入要素类或分类栅格时,此参数才适用。
| String |
in_raster2 (可选) | 将用于影像转换方法的附加输入影像源。 此参数仅在 metadata_format 参数设置为 Classified_Tiles、Export_Tiles 或 CycleGAN 时有效。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder |
in_instance_data (可选) | 采集的训练样本数据,包含用于实例分割的类。 输入也可以是没有类值字段的点要素类,或不具有任何类信息的整型栅格。 此参数只有在 metadata_format 参数设置为 Panoptic_Segmentation 时才有效。 | Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Table; Folder |
instance_class_value_field (可选) | 包含实例分割的类值的字段。 如果未指定任何字段,则该工具将使用值或类值字段(如果存在)。 如果要素不包含类字段,则工具将确定所有记录均属于一个类。 此参数只有在 metadata_format 参数设置为 Panoptic_Segmentation 时才有效。 | Field |
min_polygon_overlap_ratio (可选) | 要包含在训练数据中的要素的最小重叠百分比。 如果重叠百分比小于指定的值,则将从训练片中排除该要素,并且不会将其添加到标注文件中。 百分比值以小数表示。 例如,要指定 20% 重叠,请使用值 0.2。 默认值为 0,这意味着将包含所有要素。 此参数可以改善工具的性能,也可以改善推断能力。 由于创建的训练片较少,因此速度得到了改进。 由于将对模型进行训练以仅检测大块对象,而忽略要素的小角落,因此推断得到了改进。 这意味着将检测到较少的误报,并且非最大抑制工具将移除较少的误报。 当 in_class_data 参数值为要素类时,将启用此参数。 | Double |
代码示例
本示例将针对深度学习创建训练样本。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
ExportTrainingDataForDeepLearning("c:/test/image.tif", "c:/test/outfolder",
"c:/test/training.shp", "TIFF", "256", "256", "128", "128",
"ONLY_TILES_WITH_FEATURES", "Labeled_Tiles", 0, "Classvalue",
0, None, 0, "MAP_SPACE", "PROCESS_AS_MOSAICKED_IMAGE", "NO_BLACKEN", "FIXED_SIZE")
本示例将针对深度学习创建训练样本。
# Import system modules and check out ArcGIS Image Analyst extension license
import arcpy
arcpy.CheckOutExtension("ImageAnalyst")
from arcpy.ia import *
# Set local variables
inRaster = "c:/test/InputRaster.tif"
out_folder = "c:/test/OutputFolder"
in_training = "c:/test/TrainingData.shp"
image_chip_format = "TIFF"
tile_size_x = "256"
tile_size_y = "256"
stride_x= "128"
stride_y= "128"
output_nofeature_tiles= "ONLY_TILES_WITH_FEATURES"
metadata_format= "Labeled_Tiles"
start_index = 0
classvalue_field = "Classvalue"
buffer_radius = 0
in_mask_polygons = "MaskPolygon"
rotation_angle = 0
reference_system = "PIXEL_SPACE"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
blacken_around_feature = "NO_BLACKEN"
crop_mode = “FIXED_SIZE”
# Execute
ExportTrainingDataForDeepLearning(inRaster, out_folder, in_training,
image_chip_format,tile_size_x, tile_size_y, stride_x,
stride_y,output_nofeature_tiles, metadata_format, start_index,
classvalue_field, buffer_radius, in_mask_polygons, rotation_angle,
reference_system, processing_mode, blacken_around_feature, crop_mode)
许可信息
- Basic: 需要 Image Analyst 或 Spatial Analyst
- Standard: 需要 Image Analyst 或 Spatial Analyst
- Advanced: 需要 Image Analyst 或 Spatial Analyst