需要 Spatial Analyst 许可。
描述
使用遥感影像将标注的矢量或栅格数据转换为深度学习训练数据集。输出为影像芯片文件夹和指定格式的元数据文件文件夹。
使用方法
该工具将创建训练数据集以支持第三方深度学习应用程序,如 Google TensorFlow、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_raster | 输入源影像,通常是多光谱影像。 输入源影像类型的示例包括多光谱卫星影像、无人机影像、航空影像或国家农业影像计划 (NAIP)。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer |
out_folder | 将存储输出影像片和元数据的文件夹。 | Folder |
in_class_data | 矢量或栅格形式的训练样本数据。 矢量输入应当遵循 ArcGIS Desktop 影像分类工具栏生成的训练样本格式。栅格输入应当遵循分类栅格工具生成的分类栅格格式。 | 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 (可选) | 指定输出元数据标注的格式。 针对训练数据的输出元数据标注,系统提供 4 个选项:KITTI 矩形、PASCAL VOC 矩形、分类切片(类地图)和 RCNN 掩膜。如果输入训练样本数据是诸如建筑物图层等的要素类图层或者标准分类训练样本文件,请使用 KITTI 或 PASCAL VOC 矩形选项。输出元数据是包含训练样本数据的 .txt 文件或 .xml 文件,其中训练样本包含在最小外接矩形中。元数据文件的名称与输入源影像名称相匹配。如果输入训练样本数据是类地图,请使用“分类切片”作为输出元数据格式选项。
对于 KITTI 元数据格式,将创建 15 个列,但此工具中仅使用其中 5 个列。第一个列是类值。然后,跳过之后 3 个列。5-8 列用于定义最小外接矩形,该矩形将分别由以下 4 个影像坐标位置构成:左、上、右和下像素。最小外接矩形包含用于深度学习分类器中的训练片。系统将不会使用其他列。 有关详细信息,请参阅 KITTI 元数据格式 。 以下为 PASCAL VOC 选项示例:
有关详细信息,请参阅 PASCAL 可视化对象类。 | String |
start_index (可选) | 影像片序列的起始索引。由此可将更多影像片添加到现有序列。默认值为 0。 | Long |
class_value_field (可选) | 包含类值的字段。如果未指定任何字段,则系统将搜索 value 或 classvalue 字段。如果该要素不包含类字段,则系统将确定所有记录均属于一个类。 | Field |
buffer_radius (可选) | 用于描绘训练样本区域的,围绕每个训练样本的缓冲区的半径。您可以借此从点创建圆形面训练样本。 系统将使用in_class_data空间参考的线性单位。 | Double |
代码示例
ExportTrainingDataForDeepLearning 示例 1(Python 窗口)
本示例将针对深度学习创建训练样本。
from arcpy.sa import *
ExportTrainingDataForDeepLearning("c:/test/image.tif", "c:/test/outfolder",
"c:/test/training.shp", "TIFF", "256",
"256", "128", "128", "NO", "KITTI_rectangles")
ExportTrainingDataForDeepLearning 示例 2(独立脚本)
本示例将针对深度学习创建训练样本。
# Import system modules and check out ArcGIS Spatial Analyst extension license
import arcpy
arcpy.CheckOutExtension("Spatial")
from arcpy.sa import *
# Set local variables
inRaster = "c:/test/image.tif"
out_folder = "c:/test/outfolder"
in_training = "c:/test/training.shp"
image_chip_format = "TIFF"
tile_size_x = "256"
tile_size_y = "256"
stride_x="128"
stride_y="128"
output_nofeature_tiles="NO"
metadata_format="KITTI_rectangles"
# 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)
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst