Skip To Content

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

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

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

概要

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

使用法

  • このツールは、Google TensorFlow、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_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

ベクターまたはラスター形式のラベル付きデータ。

ベクター入力は、ArcGIS Pro [トレーニング サンプル マネージャー] で生成されたトレーニング サンプル形式に従う必要があります。

ラスター入力は、[ラスターの分類 (Classify Raster)] ツールで生成された分類ラスター形式に従う必要があります。

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

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

  • 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 マスクの 4 つのオプションがあります。入力トレーニング サンプル データが建物レイヤーなどのフィーチャクラス レイヤーまたは標準分類トレーニング サンプル ファイルの場合、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_Tilesこのオプションは、入力画像チップごとに 1 つの分類画像チップを出力します。各画像チップに対してその他のメタデータは使用されません。統計出力だけに、クラスに関する詳細情報 (クラス名、クラス値、出力統計など) が含まれます。
  • RCNN_Masksこのオプションは、サンプルが存在する領域にマスクが含まれる画像チップを出力します。このモデルは、画像内のオブジェクトの各インスタンスに対して、境界四角形とセグメンテーション マスクを生成します。ディープ ラーニング フレームワーク モデルの FPN (Feature Pyramid Network) と ResNet101 バックボーンに基づいています。

以下の表は、KITTI メタデータ形式の 15 の値を示しています。ツールでは、15 の値の中でクラス名 (列 1)、4 つの画像座標位置で構成される最小境界範囲 (列 5 ~ 8) の 5 つの値のみが使用されます。最小境界範囲には、ディープ ラーニング分類器に使用されるトレーニング チップが含まれます。

名前詳細

1

クラス値

stats.txt ファイルにリストされたオブジェクトのクラス値。

2-4

未使用

名前詳細

5-8

BBOX

画像内にあるオブジェクトの 2 次元の境界四角形。0 ベースの画像空間座標インデックスに基づきます。境界四角形には、上下左右のピクセルに対応する 4 つの座標が含まれています。

9-15

未使用

詳細については、「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

トレーニング サンプル領域の描画に使用するポイント フィーチャクラスの半径。

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("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"
start_index = 0
classvalue_field = "Classvalue"
buffer_radius = "1"

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

ライセンス情報

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

関連トピック