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

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

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

概要

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

使用法

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

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

  • 既存の分類トレーニング サンプル データや、建物フットプリント レイヤーなどの GIS フィーチャクラス データを使用して、ソース画像からのクラス サンプルを含む画像チップを生成します。多くの場合、画像チップは 256 ピクセル (行) x 256 ピクセル (列) です (トレーニング サンプルのサイズがこれより大きくない場合)。画像チップごとにオブジェクトを 1 つ以上含めることができます。[ラベル付きタイル] メタデータ形式を使用する場合は、画像チップごとに 1 つのオブジェクトしか含めることができません。

  • [参照系] パラメーターを指定すると、トレーニング データをマップ空間またはピクセル空間 (未加工の画像空間) にエクスポートして、ディープ ラーニング モデル トレーニングに使用することができます。

  • このツールは、画像のコレクションからのトレーニング データのエクスポートに対応しています。画像フォルダーを [入力ラスター] として追加できます。[入力ラスター] がモザイク データセットまたはイメージ サービスの場合は、[処理モード] パラメーターで、モザイクを 1 つの入力データとして処理するか、各ラスター アイテムとして別々に処理するかを指定することもできます。

  • セルのサイズおよび範囲は、ジオプロセシング環境設定を使用して調整できます。

  • このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問 ディープ ラーニングに関するよくある質問 PDF」をご参照ください。

構文

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 (National Agriculture Imagery Program) などが挙げられます。入力には、画像のフォルダーを使用できます。

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

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

このフォルダーは、クラウド ストレージ接続ファイル (*.acs) を使用するフォルダー URL にすることもできます。

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 形式を使用します。
  • MRFメタ ラスター形式 (MRF) を使用します。
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 マスク]、[ラベル付きタイル]、[複数のラベル付きタイル]、[タイルのエクスポート] です。入力トレーニング サンプル データが建物レイヤーなどのフィーチャクラス レイヤーまたは標準分類トレーニング サンプル ファイルの場合、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各出力タイルは、特定のクラスでラベル付けされます。この形式の使用目的はオブジェクト分類です。
  • MultiLabeled_Tiles各出力タイルは、1 つ以上のクラスでラベル付けされます。たとえば、タイルに「agriculture」および「cloudy」とラベル付けすることができます。この形式の使用目的はオブジェクト分類です。
  • Export_Tiles出力は、ラベルのない画像チップです。この形式は、超解像などの画像処理技術に使用されます。

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

次に、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
(オプション)

レガシー:

このパラメーターは非推奨になりました。Python 内で値として 0 または # を使用します。

Long
class_value_field
(オプション)

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

Field
buffer_radius
(オプション)

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

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

Double
in_mask_polygons
(オプション)

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

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

Feature Layer
rotation_angle
(オプション)

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

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

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

Double
reference_system
(オプション)

入力画像を解釈するために使用する参照系のタイプを指定します。指定する参照系は、ディープ ラーニング モデルをトレーニングするために使用する参照系と一致する必要があります。

  • MAP_SPACEマップベースの座標系が使用されます。これがデフォルトです。
  • PIXEL_SPACE回転と歪みのない画像空間が使用されます。
String
processing_mode
(オプション)

モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムを処理する方法を指定します。入力ラスターがモザイク データセットまたはイメージ サービスである場合、このパラメーターが適用されます。

  • PROCESS_AS_MOSAICKED_IMAGEモザイク データセットまたはイメージ サービス内のすべてのラスター アイテムがモザイク化され、処理されます。これがデフォルトです。
  • PROCESS_ITEMS_SEPARATELYモザイク データセットまたはイメージ サービス内のすべてのラスター アイテムが、個別の画像として処理されます。
String
blacken_around_feature
(オプション)

それぞれの画像ファイル内で各オブジェクトまたはフィーチャの周囲のピクセルをマスクするかどうかを指定します。

このパラメーターは、メタデータ形式が [Labeled_Tiles] に設定されており、入力フィーチャクラスまたは分類ラスターが指定されている場合にのみ適用されます。

  • NO_BLACKENオブジェクトまたはフィーチャの周囲のピクセルがマスクされません。これがデフォルトです。
  • BLACKEN_AROUND_FEATUREオブジェクトまたはフィーチャの周囲のピクセルがマスクされます。
Boolean
crop_mode
(オプション)

エクスポートされたタイルがすべて同じサイズになるようにトリミングするかどうかを指定します。

このパラメーターは、メタデータ形式が [Labeled_Tiles] に設定されており、入力フィーチャクラスまたは分類ラスターが指定されている場合にのみ適用されます。

  • FIXED_SIZEエクスポートされたタイルが同じサイズにトリミングされ、フィーチャが中央に配置されます。これがデフォルトです。
  • BOUNDING_BOXタイル内のフィーチャだけが境界ジオメトリで囲まれるように、エクスポートされたタイルがトリミングされます。
String

コードのサンプル

ExportTrainingDataForDeepLearning (ディープ ラーニング用のトレーニング データをエクスポート) の例 1 (Python ウィンドウ)

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

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

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

# 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

関連トピック