Skip To Content

ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)

Spatial Analyst のライセンスで利用可能。

Image Analyst ライセンスで利用できます。

概要

リモート センシング画像を使用して、ラベルが付いたベクターまたはラスター データをディープ ラーニング トレーニング データセットに変換します。出力は画像チップのフォルダー、および指定した形式のメタデータ ファイルのフォルダーです。

使用法

  • このツールは、Google TensorFlow、Keras、PyTorch、Microsoft CNTK などのサード パーティ製ディープ ラーニング アプリケーションをサポートするトレーニング データセットを作成します。

  • ディープ ラーニング クラス トレーニング サンプルは、画像チップと呼ばれる対象のフィーチャまたはクラスを含む小さなサブイメージに基づきます。

  • 既存の分類トレーニング サンプル データや、建物フットプリント レイヤーなどの GIS フィーチャクラス データを使用して、ソース画像からのクラス サンプルを含む画像チップを生成します。多くの場合、画像チップは 256 ピクセル (行) x 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})
パラメーター説明データ タイプ
in_raster

入力ソース画像。通常は、マルチスペクトル画像です。

入力ソース画像のタイプの例としては、マルチスペクトル衛星、ドローン、航空、または NAIP (National Agriculture Imagery Program) などが挙げられます。入力には、画像のフォルダーを使用できます。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer
out_folder

出力画像チップとメタデータを格納するフォルダーです。

Folder
in_class_data

ベクターまたはラスター形式のトレーニング サンプル データ。

ベクター入力は、[トレーニング サンプル マネージャー] で生成されるようなトレーニング サンプル形式に従う必要があります。ラスター入力は、[ラスターの分類 (Classify Raster)] ツールで生成された分類ラスター形式に従う必要があります。

Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service
image_chip_format

画像チップ出力のラスター形式を指定します。

PNG および JPEG は、3 バンドまでサポートします。

  • TIFFTIFF 形式
  • PNGPNG 形式
  • JPEGJPEG 形式
  • MRFMRF 形式
String
tile_size_x
(オプション)

画像チップのサイズ (X ディメンション)。

Long
tile_size_y
(オプション)

画像チップのサイズ (Y ディメンション)。

Long
stride_x
(オプション)

次の画像チップを作成する際に X 方向に移動する距離。

ストライドがタイル サイズと等しい場合、オーバーラップは発生しません。ストライドがタイル サイズの半分と等しい場合は、50% のオーバーラップが発生します。

Long
stride_y
(オプション)

次の画像チップを作成する際に Y 方向に移動する距離。

ストライドがタイル サイズと等しい場合、オーバーラップは発生しません。ストライドがタイル サイズの半分と等しい場合は、50% のオーバーラップが発生します。

Long
output_nofeature_tiles
(オプション)

トレーニング サンプルをキャプチャしない画像チップをエクスポートするかどうかを指定します。

  • ALL_TILESトレーニング サンプルをキャプチャしないものも含め、すべての画像チップをエクスポートします。
  • ONLY_TILES_WITH_FEATURESトレーニング サンプルをキャプチャする画像チップのみをエクスポートします。これがデフォルトです。
Boolean
metadata_format
(オプション)

出力メタデータ ラベルの形式を指定します。

トレーニング データの出力メタデータ ラベルには、[KITTI] の四角形、[PASCAL VOC] の四角形、[分類タイル] (クラス マップ)、[RCNN マスク]、および [ラベル付きタイル] の 5 つのオプションがあります。入力トレーニング サンプル データが建物レイヤーなどのフィーチャクラス レイヤーまたは標準分類トレーニング サンプル ファイルの場合、KITTI または PASCAL VOC の四角形オプションを使用します。出力メタデータは、最小境界範囲内のトレーニング サンプル データを含む *.txt ファイルまたは *.xml ファイルです。メタデータ ファイルの名前は、入力ソース画像名と一致します。入力トレーニング サンプル データがクラス マップの場合、出力メタデータ形式として [分類タイル] オプションを使用します。

  • KITTI_rectanglesメタデータは、KITTI (Karlsruhe Institute of Technology and Toyota Technological Institute) オブジェクト検出評価データセットと同じ形式に従います。KITTI データセットは、Vision Benchmark Suite です。これがデフォルトです。ラベル ファイルは、プレーン テキスト ファイルです。数値および文字列のすべての値はスペースで区切られ、各行は 1 つのオブジェクトと対応しています。
  • PASCAL_VOC_rectanglesメタデータは、PASCAL_VOC (Pattern Analysis, Statistical Modeling and Computational Learning, Visual Object Classes) データセットと同じ形式に従います。PASCAL VOC データセットは、オブジェクト クラスの認識のために標準化された画像データセットです。ラベル ファイルは XML ファイルで、画像名、クラス値、境界四角形に関する情報が含まれています。
  • Classified_Tiles1 つの入力画像チップにつき、分類された画像チップが 1 つ出力されます。各画像チップに対してその他のメタデータは使用されません。統計出力だけに、クラスに関する詳細情報 (クラス名、クラス値、出力統計など) が含まれます。
  • RCNN_Masksサンプルが存在する領域にマスクが含まれる画像チップが出力されます。このモデルは、画像内のオブジェクトの各インスタンスに対して、境界四角形とセグメンテーション マスクを生成します。ディープ ラーニング フレームワーク モデルの FPN (Feature Pyramid Network) と ResNet101 バックボーンに基づいています。
  • Labeled_Tiles各出力タイルは、特定のクラスでラベル付けされます。

KITTI メタデータ形式では 15 個の列が作成されますが、そのうちツールで使用されるのは 5 つのみです。最初の列はクラス値です。次の 3 つの列はスキップされます。5 ~ 8 番目の列は、4 つの画像座標位置 (それぞれ、上下左右のピクセル) で構成される最小境界範囲を定義します。最小境界範囲には、ディープ ラーニング分類器に使用されるトレーニング チップが含まれます。残りの列は使用されません。

詳細については、「KITTI メタデータ形式 KITTI メタデータ」をご参照ください。

次に、PASCAL VOC オプションの例を示します。

<?xml version=”1.0”?>
- <layout>
      <image>000000000</image>
      <object>1</object>
    - <part>
         <class>1</class>
       - <bndbox>
            <xmin>31.85</xmin>
            <ymin>101.52</ymin>
            <xmax>256.00</xmax>
            <ymax>256.00</ymax>
         </bndbox>
      </part>
  </layout>

詳細については、「PASCAL Visual Object ClassesPASCAL Visual Object Classes」をご参照ください。

String
start_index
(オプション)

画像チップのシーケンスの開始インデックス。これにより、既存のシーケンスに画像チップを追加することができます。デフォルト値は 0 です。

Long
class_value_field
(オプション)

クラス値を含むフィールド。フィールドが指定されていない場合、value フィールドまたは classvalue フィールドを検索します。フィーチャにクラス フィールドが含まれていない場合、すべてのレコードが 1 つのクラスに属していると判断します。

Field
buffer_radius
(オプション)

トレーニング サンプル領域を描画する、各トレーニング サンプルの周囲のバッファーの半径。これを使用して、ポイントから円形ポリゴンのトレーニング サンプルを作成できます。

in_class_data 空間参照の距離単位が使用されます。

Double
in_mask_polygons
(オプション)

画像チップが作成される領域を描画するポリゴン フィーチャクラス。

このポリゴンに完全に含まれる画像チップのみが作成されます。

Feature Class; Feature Layer
rotation_angle
(オプション)

追加の画像チップを生成するために使用される回転角度。

画像チップは、0 の回転角度 (つまり、回転しない) で生成されます。その後、画像チップは、追加の画像チップを作成するために、指定した角度で回転されます。データ拡大のために、同じトレーニング サンプルが、複数の角度の複数の画像チップでキャプチャされます。

デフォルトの回転角度は 0 です。

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", 0, "Classvalue", 1)
ExportTrainingDataForDeepLearning (ディープ ラーニング用のトレーニング データをエクスポート) の例 2 (スタンドアロン スクリプト)

この例では、ディープ ラーニング用のトレーニング サンプルを作成します。

# Import system modules and check out ArcGIS Spatial Analyst extension license
import arcpy
arcpy.CheckOutExtension("SpatialAnalyst")
from arcpy.sa 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="KITTI_rectangles"
start_index = 0
classvalue_field = "Classvalue"
buffer_radius = 3
in_mask_polygons = "MaskPolygon"
rotation_angle = 45

# 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)

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst または Image Analyst
  • Standard: 次のものが必要 Spatial Analyst または Image Analyst
  • Advanced: 次のものが必要 Spatial Analyst または Image Analyst

関連トピック