需要 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_raster | 输入源影像,通常是多光谱影像。 输入源影像类型的示例包括多光谱卫星影像、无人机影像、航空影像或国家农业影像计划 (NAIP)。输入可以是影像的文件夹。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; 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 |
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 VOC 矩形、分类切片(类地图)、RCNN 掩膜、标注切片、多标注切片和导出切片。如果输入训练样本数据是诸如建筑物图层等的要素类图层或者标准分类训练样本文件,请使用 KITTI 或 PASCAL VOC 矩形选项。输出元数据是包含训练样本数据的 .txt 文件或 .xml 文件,其中训练样本数据包含在最小外接矩形中。元数据文件的名称与输入源影像名称相匹配。如果输入训练样本数据是类地图,请使用“分类切片”作为输出元数据格式选项。
对于 KITTI 元数据格式,将创建 15 个列,但此工具中仅使用其中 5 个列。第一个列是类值。然后,跳过之后 3 个列。5-8 列用于定义最小外接矩形,该矩形将由以下 4 个影像坐标位置构成:左、上、右和下像素。最小外接矩形包含用于深度学习分类器中的训练片。系统将不会使用其他列。 以下为 PASCAL VOC 选项示例: 有关详细信息,请参阅 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 (可选) | 指定是否对每个影像切片中的每个对象或要素周围的像素进行掩膜。 仅当元数据格式设置为 Labeled_Tiles 且已指定输入要素类或分类栅格时,此参数才适用。
| Boolean |
crop_mode (可选) | 指定是否将裁剪导出的切片,从而使其大小均相同。 仅当元数据格式设置为 Labeled_Tiles 且已指定输入要素类或分类栅格时,此参数才适用。
| String |
代码示例
本示例将针对深度学习创建训练样本。
# 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