ディープ ラーニング モデルのトレーニング (Train Deep Learning Model) (Image Analyst)

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

サマリー

[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールからの出力を使用してディープ ラーニング モデルをトレーニングします。

使用法

  • このツールは、ディープ ラーニング フレームワークを使用するディープ ラーニング モデルです。

  • ArcGIS Pro のディープ ラーニング フレームワークを使用するようにコンピューターを設定するには、「ArcGIS 用のディープ ラーニング フレームワークのインストール」をご参照ください。

  • 非接続環境でモデルをトレーニングする場合は、詳細について「非接続環境でのインストール」をご参照ください。

  • このツールは、既存のトレーニング済みモデルの微調整にも使用できます。 たとえば、車に関してトレーニングされた既存のモデルを微調整して、トラックを識別するモデルをトレーニングすることができます。

  • GPU を使用してこのツールを実行するには、プロセッサ タイプ環境を GPU に設定します。 複数の GPU がある場合は、代わりに GPU ID 環境を指定します。

  • このツールの入力トレーニング データには、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールから生成された画像フォルダーとラベル フォルダーを含める必要があります。

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

  • ディープ ラーニングの詳細については、「ArcGIS Pro のディープ ラーニング」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力トレーニング データ

モデルのトレーニングに必要な画像チップ、ラベル、統計情報を含むフォルダー。 [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールからの出力です。

モデルのトレーニングにおいて、入力画像は 3 バンドの 8 ビット ラスターである必要があります。

Folder
出力モデル

トレーニング済みのモデルを格納する出力フォルダーの場所。

Folder
最大エポック
(オプション)

モデルをトレーニングする場合の対象となるエポックの最大数。 最大エポックを 1 に設定すると、データセットがニューラル ネットワークを通って前後に 1 回渡されます。 デフォルト値は 20 です。

Long
モデル タイプ
(オプション)

ディープ ラーニング モデルのトレーニングに使用されるモデル タイプを指定します。

  • シングル ショット検出器 (オブジェクト検出) —シングル ショット検出器 (SSD) アプローチがモデルのトレーニングに使用されます。 SSD の使用目的はオブジェクト検出です。 このモデル タイプの入力トレーニング データは、Pascal Visual Object Classes メタデータ形式を使用します。
  • U-Net (ピクセル分類) —U-Net アプローチがモデルのトレーニングに使用されます。 U-Net の使用目的はピクセル分類です。
  • フィーチャ分類器 (オブジェクト分類) —フィーチャ分類器アプローチがモデルのトレーニングに使用されます。 フィーチャ分類器の使用目的はオブジェクト分類または画像分類です。
  • ピラミッド型解析ネットワーク (ピクセル分類) —ピラミッド型解析ネットワーク (PSPNET) アプローチがモデルのトレーニングに使用されます。 PSPNET の使用目的はピクセル分類です。
  • RetinaNet (オブジェクト検出) —RetinaNet 手法がモデルのトレーニングに使用されます。 RetinaNet の使用目的はオブジェクト検出です。 このモデル タイプの入力トレーニング データは、Pascal Visual Object Classes メタデータ形式を使用します。
  • MaskRCNN (オブジェクト検出) —MaskRCNN アプローチがモデルのトレーニングに使用されます。 MaskRCNN の使用目的はオブジェクト検出です。 この手法は、インスタンス セグメンテーション (つまり、画像内のオブジェクトの正確な描写) に使用できます。 このモデル タイプを使用して、建物フットプリントを検出することができます。 トレーニング データを入力データにする場合は、MaskRCNN メタ形式を使用します。 入力トレーニング データのクラス値は、1 で始める必要があります。 このモデル タイプは、CUDA 対応 GPU を使用する場合にのみトレーニングできます。
  • YOLOv3 (オブジェクト検出) —YOLOv3 手法がモデルのトレーニングに使用されます。 YOLOv3 の使用目的はオブジェクト検出です。
  • DeepLabV3 (ピクセル分類) —DeepLabV3 手法がモデルのトレーニングに使用されます。 DeepLab の使用目的はピクセル分類です。
  • FasterRCNN (オブジェクト検出) —FasterRCNN 手法がモデルのトレーニングに使用されます。 FasterRCNN の使用目的はオブジェクト検出です。
  • BDCN Edge Detector (ピクセル分類) — BDCN (Bi-Directional Cascade Network) アーキテクチャがモデルのトレーニングに使用されます。 BDCN Edge Detector の使用目的はピクセルの分類です。 この手法は、さまざまな縮尺でオブジェクトのエッジ検出を改善するのに便利です。
  • HED Edge Detector (ピクセル分類) — HED (Holistically-Nested Edge Detection) アーキテクチャがモデルのトレーニングに使用されます。 HED Edge Detector の使用目的はピクセルの分類です。 この手法は、エッジおよびオブジェクト境界検出に便利です。
  • Multi Task Road Extractor (ピクセル分類) —Multi Task Road Extractor アーキテクチャがモデルのトレーニングに使用されます。 Multi Task Road Extractor の使用目的はピクセルの分類です。 この手法は、衛星画像から道路網を抽出するのに便利です。
  • ConnectNet (ピクセル分類) —ConnectNet アーキテクチャがモデルのトレーニングに使用されます。 ConnectNet の使用目的はピクセル分類です。 この手法は、衛星画像から道路網を抽出するのに便利です。
  • Pix2Pix (画像変換) —Pix2Pix 手法がモデルのトレーニングに使用されます。 Pix2Pix は、画像間変換に使用されます。 この手法は、あるタイプの画像から別のタイプの画像を生成するモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Export Tiles メタデータ形式を使用します。
  • CycleGAN (画像変換) —CycleGAN 手法がモデルのトレーニングに使用されます。 CycleGAN は画像間変換に使用されます。 この手法は、あるタイプの画像から別のタイプの画像を生成するモデル オブジェクトを作成します。 この手法は、トレーニングする画像が重なっている必要がない点で独特です。 このモデル タイプの入力トレーニング データは、CycleGAN メタデータ形式を使用します。
  • 超解像 (画像変換) —超解像技術がモデルのトレーニングに使用されます。 超解像は画像間変換に使用されます。 この手法は、解像度を上げて画像の品質を高めるモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Export Tiles メタデータ形式を使用します。
  • 変化検出器 (ピクセル分類) —変化検出器手法がモデルのトレーニングに使用されます。 変化検出器の使用目的はピクセル分類です。 この手法は、2 つの空間的、時間的な画像を使用して変化の分類ラスターを作成するモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Classified Tiles メタデータ形式を使用します。
  • 画像キャプショナー (画像変換) —画像キャプショナー手法がモデルのトレーニングに使用されます。 画像キャプショナーの使用目的は画像からテキストへの変換です。 この手法は、ある画像のテキスト キャプションを生成するモデルを作成します。
String
バッチ サイズ
(オプション)

1 回のトレーニングで処理されるトレーニング サンプルの数。 デフォルト値は 2 です。

高性能な GPU を使用している場合は、この数を 8、16、32、または 64 に増やすことができます。

Long
モデル引数
(オプション)

Python ラスター関数クラスには、関数の引数が定義されています。 ここでは、実験や調整のための追加のディープ ラーニング パラメーターおよび引数 (感度を調整するための信頼性の閾値など) をリストします。 引数の名前は、Python モジュールを読み取ることによって入力されます。

[シングル ショット検出器][モデル タイプ] パラメーターの値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • grids - 処理中に画像が分割されるグリッドの数です。 この引数を 4 に設定すると、画像が 4 x 4、つまり 16 個のグリッド セルに分割されます。 値が指定されない場合は、入力イメージに基づいて最適なグリッド値が計算されます。
  • zooms - 各グリッド セルが拡大/縮小されるズーム レベルの数です。 この引数を 1 に設定すると、すべてのグリッド セルが同じサイズまたはズーム レベルで維持されます。 ズーム レベルが 2 の場合は、すべてのグリッド セルが 2 倍の大きさになります (100 パーセントでズームされる)。 ズーム レベルのリストを指定すると、そのリスト内のすべての数値を使用して、すべてのグリッド セルが拡大/縮小されます。 デフォルト値は 1.0 です。
  • ratios - アンカー ボックスで使用する縦横比のリストです。 オブジェクト検出を行う場合、アンカー ボックスは予測対象のオブジェクトに最適な位置、形状、サイズを表します。 この引数を [1.0, 1.0], [1.0, 0.5] に設定すると、アンカー ボックスが正方形 (1:1) になるか、水平側が垂直側の半分の長方形 (1:0.5) になります。 デフォルト値は [1.0, 1.0] です。

[ピラミッド型解析ネットワーク][U-Net][DeepLabv3] などのピクセル分類モデルを [モデル タイプ] パラメーター値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • use_net - U-Net デコーダーを使用して、ピラミッド プーリングが完了した時点でデータを復旧するかどうかを指定します。 デフォルトは True です。 この引数は、[ピラミッド型解析ネットワーク] モデルでのみ使用されます。
  • pyramid_sizes - それぞれの小区域に適用される畳み込みレイヤーの数とサイズです。 デフォルト値は [1,2,3,6] です。 この引数は、[ピラミッド型解析ネットワーク] モデルでのみ使用されます。
  • mixup - mixup 補強および mixup 損失を使用するかどうかを指定します。 デフォルトは False です。
  • class_balancing - クラスあたりのピクセルの頻度に逆比例する交差エントロピー誤差のバランスを調整するかどうかを指定します。 デフォルトは False です。
  • focal_loss - 焦点損失を使用するかどうかを指定します。 デフォルトは False です。
  • ignore_classes - モデルが損失を生じないクラス値のリストを含めます。

[RetinaNet][モデル タイプ] パラメーターの値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • scales - 各セルが拡大/縮小される縮尺レベルの数です。 デフォルト値は [1, 0.8, 0.63] です。
  • ratios - アンカー ボックスの縦横比です。 デフォルト値は 0,5, 1,2 です。

[Multi Task Road Extractor] または [ConnectNet][モデル タイプ] パラメーターの値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • gaussian_thresh - 必要な道路幅を設定する Gaussian 閾値を設定します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルト値は 0.76 です。
  • orient_bin_size - 方向の角度のビン サイズを設定します。 デフォルトは 20 です。
  • orient_theta - 方向のマスクの幅を設定します。 デフォルト値は 8 です。
  • mtl_model - モデルの作成に使用されるアーキテクチャ タイプを設定します。 有効な選択肢は、ニューラル アーキテクチャがリンクネットベースの場合は linknet、砂時計ベースの場合は hourglass です。 デフォルトは hourglass です。

[画像キャプショナー][モデル タイプ] パラメーターの値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • decode_params - 画像キャプショナーの実行方法を制御するディクショナリです。 デフォルト値は {'embed_size':100, 'hidden_size':100, 'attention_size':100, 'teacher_forcing':1, 'dropout':0.1, 'pretrained_emb':False} です。
  • chip_size - モデルのトレーニングのための画像のサイズを設定します。 画像は指定したチップ サイズにトリミングされます。 画像サイズがチップ サイズより小さい場合は、画像サイズが使用されます。 デフォルトのサイズは 224 ピクセルです。
decode_params は、以下の 6 つのパラメーターで構成されます。
  • embed_size - 埋め込みサイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • hidden_size - 非表示のレイヤー サイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • attention_size - 中間のアテンション レイヤーのサイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • teacher_forcing - Teacher Forcing の可能性を設定します。 Teacher Forcing はリカレント ニューラル ネットワークのトレーニング戦略で、バック プロパゲーション時に、前の出力ではなく、前の時間ステップから出力されたモデルを入力として使用します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルトは 1 です。
  • dropout - ドロップアウトの可能性を設定します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルトは 0.1 です。
  • pretrained_emb - 事前トレーニング済みの埋め込みフラグを設定します。 True の場合、高速のテキスト埋め込みを使用します。 False の場合、事前トレーニング済みのテキスト埋め込みを使用しません。 デフォルトは False です。

[変化検出器][モデル タイプ] パラメーターの値として選択すると、[モデル引数] パラメーターに次の引数が設定されます。

  • attention_type - モジュール タイプを指定します。 モジュールの選択肢は、PAM (Pyramid Attention Module) または BAM (Basic Attention Module) です。 デフォルトは PAM です。

すべてのモデル タイプは、トレーニング サンプルの 画像チップ サイズを表す [chip_size] 引数をサポートしています。 画像チップ サイズは、[入力トレーニング データ] パラメーターで指定したフォルダーの *.emd ファイルから抽出されます。

Value Table
学習率
(オプション)

トレーニング処理全体で、既存の情報を新たに取得した情報に上書きする割合。 値を指定しないと、トレーニング プロセス中に最適な学習率が学習曲線から抽出されます。

Double
バックボーン モデル
(オプション)

新しいモデルをトレーニングするアーキテクチャとして使用する、事前構成済みのニューラル ネットワークを指定します。 この方法は「転移学習」と呼ばれます。

  • DenseNet-121 —構成済みモデルは、100 万を超える画像が含まれており、深さが 121 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DenseNet-161 —構成済みモデルは、100 万を超える画像が含まれており、深さが 161 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DenseNet-169 —構成済みモデルは、100 万を超える画像が含まれており、深さが 169 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DenseNet-201 —構成済みモデルは、100 万を超える画像が含まれており、深さが 201 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • MobileNet バージョン 2 —事前構成済みのモデルは、ImageNet データベースでトレーニングされ、メモリの使用量が少ないため、54 層の深さがあり、エッジ デバイス コンピューティングに適しています。
  • ResNet-18 —事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、18 層の深さがあります。
  • ResNet-34 —事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、34 層の深さがあります。 これがデフォルトです。
  • ResNet-50 —事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、50 層の深さがあります。
  • ResNet-101 —事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、101 層の深さがあります。
  • ResNet-152 —事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、152 層の深さがあります。
  • VGG-11 —事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、11 層の深さがあります。
  • VGG-11 (バッチ正規化あり) —事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、11 層の深さがあります。
  • VGG-13 —事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、13 層の深さがあります。
  • VGG-13 (バッチ正規化あり) —事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、13 層の深さがあります。
  • VGG-16 —事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、16 層の深さがあります。
  • VGG-16 (バッチ正規化あり) —事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、16 層の深さがあります。
  • VGG-19 —事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、19 層の深さがあります。
  • VGG-19 (バッチ正規化あり) —事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、19 層の深さがあります。
  • DarkNet-53 —構成済みモデルは、100 万を超える画像が含まれており、深さが 53 個のレイヤーである ImageNET データセット上でトレーニングされた畳み込みニューラル ネットワークになります。
String
事前トレーニング済みモデル
(オプション)

新しいモデルの微調整に使用される事前トレーニング済みモデル。 入力は Esri モデル定義ファイル (*.emd) またはディープ ラーニング パッケージ ファイル (*.dlpk) です。

類似したクラスを持つ事前トレーニング済みモデルは、新しいモデルに合わせて微調整することができます。 事前トレーニング済みモデルは、新しいモデルのトレーニングに使用される同じモデル タイプおよびバックボーン モデルでトレーニングされている必要があります。

File
検証 %
(オプション)

モデルの検証に使用するトレーニング サンプルの割合。 デフォルト値は 10 です。

Double
モデルの改善が見込めなくなった時点で停止
(オプション)

早期停止を実施するかどうかを指定します。

  • オン - 早期停止が実施され、指定した [最大エポック] パラメーター値にかかわらず、モデルの改善がなくなった時点でモデルのトレーニングを停止します。 これがデフォルトです。
  • オフ - 早期停止は実施されず、[最大エポック] パラメーター値に到達するまで、モデルのトレーニングが続行されます。
Boolean
モデルの固定
(オプション)

事前トレーニング済みモデルのバックボーン レイヤーを固定するかどうかを指定します。これにより、ウェイトとバイアスが本来の設計どおりになります。

  • オン - バックボーン レイヤーが固定され、事前定義済みのウェイトとバイアスを [バックボーン モデル] パラメーターで変更しません。 これがデフォルトです。
  • オフ - バックボーン レイヤーは固定されず、[バックボーン モデル] パラメーターのウェイトとバイアスを、トレーニング サンプルに合わせて変更できます。 この処理には時間がかかりますが、通常は優れた結果が得られます。

Boolean

派生した出力

ラベル説明データ タイプ
出力モデル

出力トレーニング済みモデル ファイル

File

TrainDeepLearningModel(in_folder, out_folder, {max_epochs}, {model_type}, {batch_size}, {arguments}, {learning_rate}, {backbone_model}, {pretrained_model}, {validation_percentage}, {stop_training}, {freeze})
名前説明データ タイプ
in_folder

モデルのトレーニングに必要な画像チップ、ラベル、統計情報を含むフォルダー。 [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールからの出力です。

モデルのトレーニングにおいて、入力画像は 3 バンドの 8 ビット ラスターである必要があります。

Folder
out_folder

トレーニング済みのモデルを格納する出力フォルダーの場所。

Folder
max_epochs
(オプション)

モデルをトレーニングする場合の対象となるエポックの最大数。 最大エポックを 1 に設定すると、データセットがニューラル ネットワークを通って前後に 1 回渡されます。 デフォルト値は 20 です。

Long
model_type
(オプション)

ディープ ラーニング モデルのトレーニングに使用されるモデル タイプを指定します。

  • SSDシングル ショット検出器 (SSD) アプローチがモデルのトレーニングに使用されます。 SSD の使用目的はオブジェクト検出です。 このモデル タイプの入力トレーニング データは、Pascal Visual Object Classes メタデータ形式を使用します。
  • UNETU-Net アプローチがモデルのトレーニングに使用されます。 U-Net の使用目的はピクセル分類です。
  • FEATURE_CLASSIFIERフィーチャ分類器アプローチがモデルのトレーニングに使用されます。 フィーチャ分類器の使用目的はオブジェクト分類または画像分類です。
  • PSPNETピラミッド型解析ネットワーク (PSPNET) アプローチがモデルのトレーニングに使用されます。 PSPNET の使用目的はピクセル分類です。
  • RETINANETRetinaNet 手法がモデルのトレーニングに使用されます。 RetinaNet の使用目的はオブジェクト検出です。 このモデル タイプの入力トレーニング データは、Pascal Visual Object Classes メタデータ形式を使用します。
  • MASKRCNNMaskRCNN アプローチがモデルのトレーニングに使用されます。 MaskRCNN の使用目的はオブジェクト検出です。 この手法は、インスタンス セグメンテーション (つまり、画像内のオブジェクトの正確な描写) に使用できます。 このモデル タイプを使用して、建物フットプリントを検出することができます。 トレーニング データを入力データにする場合は、MaskRCNN メタ形式を使用します。 入力トレーニング データのクラス値は、1 で始める必要があります。 このモデル タイプは、CUDA 対応 GPU を使用する場合にのみトレーニングできます。
  • YOLOV3YOLOv3 手法がモデルのトレーニングに使用されます。 YOLOv3 の使用目的はオブジェクト検出です。
  • DEEPLABDeepLabV3 手法がモデルのトレーニングに使用されます。 DeepLab の使用目的はピクセル分類です。
  • FASTERRCNNFasterRCNN 手法がモデルのトレーニングに使用されます。 FasterRCNN の使用目的はオブジェクト検出です。
  • BDCN_EDGEDETECTORBDCN (Bi-Directional Cascade Network) アーキテクチャがモデルのトレーニングに使用されます。 BDCN Edge Detector の使用目的はピクセルの分類です。 この手法は、さまざまな縮尺でオブジェクトのエッジ検出を改善するのに便利です。
  • HED_EDGEDETECTORHED (Holistically-Nested Edge Detection) アーキテクチャがモデルのトレーニングに使用されます。 HED Edge Detector の使用目的はピクセルの分類です。 この手法は、エッジおよびオブジェクト境界検出に便利です。
  • MULTITASK_ROADEXTRACTORMulti Task Road Extractor アーキテクチャがモデルのトレーニングに使用されます。 Multi Task Road Extractor の使用目的はピクセルの分類です。 この手法は、衛星画像から道路網を抽出するのに便利です。
  • CONNECTNETConnectNet アーキテクチャがモデルのトレーニングに使用されます。 ConnectNet の使用目的はピクセル分類です。 この手法は、衛星画像から道路網を抽出するのに便利です。
  • PIX2PIXPix2Pix 手法がモデルのトレーニングに使用されます。 Pix2Pix は、画像間変換に使用されます。 この手法は、あるタイプの画像から別のタイプの画像を生成するモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Export Tiles メタデータ形式を使用します。
  • CYCLEGANCycleGAN 手法がモデルのトレーニングに使用されます。 CycleGAN は画像間変換に使用されます。 この手法は、あるタイプの画像から別のタイプの画像を生成するモデル オブジェクトを作成します。 この手法は、トレーニングする画像が重なっている必要がない点で独特です。 このモデル タイプの入力トレーニング データは、CycleGAN メタデータ形式を使用します。
  • SUPERRESOLUTION超解像技術がモデルのトレーニングに使用されます。 超解像は画像間変換に使用されます。 この手法は、解像度を上げて画像の品質を高めるモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Export Tiles メタデータ形式を使用します。
  • CHANGEDETECTOR変化検出器手法がモデルのトレーニングに使用されます。 変化検出器の使用目的はピクセル分類です。 この手法は、2 つの空間的、時間的な画像を使用して変化の分類ラスターを作成するモデル オブジェクトを作成します。 このモデル タイプの入力トレーニング データは、Classified Tiles メタデータ形式を使用します。
  • IMAGECAPTIONER画像キャプショナー手法がモデルのトレーニングに使用されます。 画像キャプショナーの使用目的は画像からテキストへの変換です。 この手法は、ある画像のテキスト キャプションを生成するモデルを作成します。
String
batch_size
(オプション)

1 回のトレーニングで処理されるトレーニング サンプルの数。 デフォルト値は 2 です。

高性能な GPU を使用している場合は、この数を 8、16、32、または 64 に増やすことができます。

Long
arguments
[arguments,...]
(オプション)

Python ラスター関数クラスには、関数の引数が定義されています。 ここでは、実験や調整のための追加のディープ ラーニング パラメーターおよび引数 (感度を調整するための信頼性の閾値など) をリストします。 引数の名前は、Python モジュールを読み取ることによって入力されます。

SSDmodel_type パラメーターの値として選択すると、arguments パラメーターに次の引数が設定されます。

  • grids - 処理中に画像が分割されるグリッドの数です。 この引数を 4 に設定すると、画像が 4 x 4、つまり 16 個のグリッド セルに分割されます。 値が指定されない場合は、入力イメージに基づいて最適なグリッド値が計算されます。
  • zooms - 各グリッド セルが拡大/縮小されるズーム レベルの数です。 この引数を 1 に設定すると、すべてのグリッド セルが同じサイズまたはズーム レベルで維持されます。 ズーム レベルが 2 の場合は、すべてのグリッド セルが 2 倍の大きさになります (100 パーセントでズームされる)。 ズーム レベルのリストを指定すると、そのリスト内のすべての数値を使用して、すべてのグリッド セルが拡大/縮小されます。 デフォルト値は 1.0 です。
  • ratios - アンカー ボックスで使用する縦横比のリストです。 オブジェクト検出を行う場合、アンカー ボックスは予測対象のオブジェクトに最適な位置、形状、サイズを表します。 この引数を [1.0, 1.0], [1.0, 0.5] に設定すると、アンカー ボックスが正方形 (1:1) になるか、水平側が垂直側の半分の長方形 (1:0.5) になります。 デフォルト値は [1.0, 1.0] です。

PSPNETUNETDEEPLAB などのピクセル分類モデルのいずれかを model_type パラメーター値として選択すると、arguments パラメーターに次の引数が設定されます。

  • USE_UNET - U-Net デコーダーを使用して、ピラミッド プーリングが完了した時点でデータ使用を復旧します。 デフォルトは、True です。 この引数は、PSPNET モデルでのみ使用されます。
  • PYRAMID_SIZES - それぞれの小区域に適用される畳み込みレイヤーの数とサイズです。 デフォルト値は [1,2,3,6] です。 この引数は、PSPNET モデルでのみ使用されます。
  • MIXUP - mixup 補強および mixup 損失を使用するかどうかを指定します。 デフォルトは、False です。
  • CLASS_BALANCING - クラスあたりのピクセルの頻度に逆比例する交差エントロピー誤差のバランスを調整するかどうかを指定します。 デフォルトは、False です。
  • FOCAL_LOSS - 焦点損失を使用するかどうかを指定します。 デフォルトは、False です。
  • IGNORE_CLASSES - モデルが損失を生じないクラス値のリストを含めます。

RETINANETmodel_type パラメーターの値として選択すると、arguments パラメーターに次の引数が設定されます。

  • SCALES - 各セルが拡大/縮小される縮尺レベルの数です。 デフォルト値は [1, 0.8, 0.63] です。
  • RATIOS - アンカー ボックスの縦横比です。 デフォルト値は [0,5,1,2] です。

MULTITASK_ROADEXTRACTOR または ConnectNetmodel_type パラメーターの値として選択すると、arguments パラメーターに次の引数が設定されます。

  • gaussian_thresh - 必要な道路幅を設定する Gaussian 閾値を設定します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルト値は 0.76 です。
  • orient_bin_size - 方向の角度のビン サイズを設定します。 デフォルトは 20 です。
  • orient_theta - 方向のマスクの幅を設定します。 デフォルト値は 8 です。
  • mtl_model - モデルの作成に使用されるアーキテクチャ タイプを設定します。 有効な選択肢は、ニューラル アーキテクチャがリンクネットベースの場合は linknet、砂時計ベースの場合は hourglass です。 デフォルトは、hourglass です。

IMAGECAPTIONERmodel_type パラメーターの値として選択すると、arguments パラメーターに次の引数が設定されます。

  • decode_params - 画像キャプショナーの実行方法を制御するディクショナリです。 デフォルト値は {'embed_size':100, 'hidden_size':100, 'attention_size':100, 'teacher_forcing':1, 'dropout':0.1, 'pretrained_emb':False} です。
  • chip_size - モデルのトレーニングのための画像のサイズを設定します。 画像は指定したチップ サイズにトリミングされます。 画像サイズがチップ サイズより小さい場合は、画像サイズが使用されます。 デフォルトのサイズは 224 ピクセルです。
decode_params は、以下の 6 つのパラメーターで構成されます。
  • embed_size - 埋め込みサイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • hidden_size - 非表示のレイヤー サイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • attention_size - 中間のアテンション レイヤーのサイズを設定します。 ニューラル ネットワークにおけるデフォルトは 100 レイヤーです。
  • teacher_forcing - Teacher Forcing の可能性を設定します。 Teacher Forcing はリカレント ニューラル ネットワークのトレーニング戦略で、バック プロパゲーション時に、前の出力ではなく、前の時間ステップから出力されたモデルを入力として使用します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルトは 1 です。
  • dropout - ドロップアウトの可能性を設定します。 有効な範囲は 0.0 ~ 1.0 です。 デフォルトは 0.1 です。
  • pretrained_emb - 事前トレーニング済みの埋め込みフラグを設定します。 True の場合、高速のテキスト埋め込みを使用します。 False の場合、事前トレーニング済みのテキスト埋め込みを使用しません。 デフォルトは、False です。

CHANGEDETECTORmodel_type パラメーターの値として選択すると、arguments パラメーターに次の引数が設定されます。

  • attention_type - モジュール タイプを指定します。 モジュールの選択肢は、PAM (Pyramid Attention Module) または BAM (Basic Attention Module) です。 デフォルトは、PAM です。

すべてのモデル タイプは、トレーニング サンプルのタイルのチップ サイズを表す chip_size 引数をサポートしています。 画像チップ サイズは、in_folder パラメーターで指定したフォルダーの *.emd ファイルから抽出されます。

Value Table
learning_rate
(オプション)

トレーニング処理全体で、既存の情報を新たに取得した情報に上書きする割合。 値を指定しないと、トレーニング プロセス中に最適な学習率が学習曲線から抽出されます。

Double
backbone_model
(オプション)

新しいモデルをトレーニングするアーキテクチャとして使用する、事前構成済みのニューラル ネットワークを指定します。 この方法は「転移学習」と呼ばれます。

  • DENSENET121構成済みモデルは、100 万を超える画像が含まれており、深さが 121 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DENSENET161構成済みモデルは、100 万を超える画像が含まれており、深さが 161 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DENSENET169構成済みモデルは、100 万を超える画像が含まれており、深さが 169 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • DENSENET201構成済みモデルは、100 万を超える画像が含まれており、深さが 201 個のレイヤーである ImageNET データセット上でトレーニングされた高密度のネットワークになります。 加算を使用してレイヤーを結合する RESNET とは異なり、DenseNet は連結を使用してレイヤーを結合します。
  • MOBILENET_V2事前構成済みのモデルは、ImageNet データベースでトレーニングされ、メモリの使用量が少ないため、54 層の深さがあり、エッジ デバイス コンピューティングに適しています。
  • RESNET18事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、18 層の深さがあります。
  • RESNET34事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、34 層の深さがあります。 これがデフォルトです。
  • RESNET50事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、50 層の深さがあります。
  • RESNET101事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、101 層の深さがあります。
  • RESNET152事前構成済みのモデルは、ImageNET データセットでトレーニングされる残留ネットワークです。このネットワークには 100 万以上の画像が含まれ、152 層の深さがあります。
  • VGG11事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、11 層の深さがあります。
  • VGG11_BN事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、11 層の深さがあります。
  • VGG13事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、13 層の深さがあります。
  • VGG13_BN事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、13 層の深さがあります。
  • VGG16事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、16 層の深さがあります。
  • VGG16_BN事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、16 層の深さがあります。
  • VGG19事前構成済みのモデルは、ImageNET データセットでトレーニングされるたたみ込みニューラル ネットワークです。このネットワークには 100 万以上の画像が含まれ、画像を 1,000 のオブジェクト カテゴリに分類し、19 層の深さがあります。
  • VGG19_BN事前構成済みのモデルは、VGG ネットワークに基づいていますが、バッチ正規化を使用しており、ネットワークの各レイヤーが正規化されています。 ImageNet データセットでトレーニングされ、19 層の深さがあります。
  • DARKNET53構成済みモデルは、100 万を超える画像が含まれており、深さが 53 個のレイヤーである ImageNET データセット上でトレーニングされた畳み込みニューラル ネットワークになります。
String
pretrained_model
(オプション)

新しいモデルの微調整に使用される事前トレーニング済みモデル。 入力は Esri モデル定義ファイル (*.emd) またはディープ ラーニング パッケージ ファイル (*.dlpk) です。

類似したクラスを持つ事前トレーニング済みモデルは、新しいモデルに合わせて微調整することができます。 事前トレーニング済みモデルは、新しいモデルのトレーニングに使用される同じモデル タイプおよびバックボーン モデルでトレーニングされている必要があります。

File
validation_percentage
(オプション)

モデルの検証に使用するトレーニング サンプルの割合。 デフォルト値は 10 です。

Double
stop_training
(オプション)

早期停止を実施するかどうかを指定します。

  • STOP_TRAINING早期停止が実施され、指定した max_epochs パラメーター値にかかわらず、モデルの改善がなくなった時点でモデルのトレーニングを停止します。 これがデフォルトです。
  • CONTINUE_TRAINING早期停止は実施されず、max_epochs パラメーター値に到達するまで、モデルのトレーニングが続行されます。
Boolean
freeze
(オプション)

事前トレーニング済みモデルのバックボーン レイヤーを固定するかどうかを指定します。これにより、ウェイトとバイアスが本来の設計どおりになります。

  • FREEZE_MODELバックボーン レイヤーが固定され、事前定義済みのウェイトとバイアスを backbone_model パラメーターで変更しません。 これがデフォルトです。
  • UNFREEZE_MODELバックボーン レイヤーは固定されず、backbone_model パラメーターのウェイトとバイアスを、トレーニング サンプルに合わせて変更できます。 この処理には時間がかかりますが、通常は優れた結果が得られます。
Boolean

派生した出力

名前説明データ タイプ
out_model_file

出力トレーニング済みモデル ファイル

File

コードのサンプル

TrainDeepLearningModel (ディープ ラーニング モデルのトレーニング) の例 1 (Python ウィンドウ)

この例では、U-Net 手法を使用してツリー分類モデルをトレーニングします。

# Import system modules  
import arcpy  
from arcpy.ia import *  
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
# Execute 
TrainDeepLearningModel(r"C:\DeepLearning\TrainingData\Roads_FC", 
     r"C:\DeepLearning\Models\Fire", 40, "UNET", 16, "# #", None, 
     "RESNET34", None, 10, "STOP_TRAINING", "FREEZE_MODEL")
TrainDeepLearningModel (ディープ ラーニング モデルのトレーニング) の例 2 (スタンドアロン スクリプト)

この例では、SSD 手法を使用してオブジェクト検出モデルをトレーニングします。

# Import system modules  
import arcpy  
from arcpy.ia import *  
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
#Define input parameters
in_folder = "C:\\DeepLearning\\TrainingData\\Cars" 
out_folder = "C:\\Models\\Cars"
max_epochs = 100
model_type = "SSD"
batch_size = 2
arg = "grids '[4, 2, 1]';zooms '[0.7, 1.0, 1.3]';ratios '[[1, 1], [1, 0.5], [0.5, 1]]'"
learning_rate = 0.003
backbone_model = "RESNET34" 
pretrained_model = "C:\\Models\\Pretrained\\vehicles.emd"
validation_percent = 10
stop_training = "STOP_TRAINING"
freeze = "FREEZE_MODEL"


# Execute
TrainDeepLearningModel(in_folder, out_folder, max_epochs, model_type, 
     batch_size, arg, learning_rate, backbone_model, pretrained_model, 
     validation_percent, stop_training, freeze)

関連トピック