ピクセルの分類

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

次の方法と概念は、AllSource でのピクセルの分類を理解して実行する上で重要となります。

セマンティック セグメンテーション

セマンティック セグメンテーションは、ピクセルベースの分類とも呼ばれており、各ピクセルの分類が特定のクラスに属している場合に重要なタスクとなります。 GIS では、セグメンテーションを土地被覆の分類や衛星画像からの道路または建物の抽出に使用できます。

セマンティック セグメンテーション

セマンティック セグメンテーションの例を示します。

セマンティック セグメンテーションの目標は、リモート センシングでの従来の画像分類と同じです。 通常、この画像分類を実行する場合は、ランダム フォレストや最尤法分類器などの従来の機械学習手法を適用します。 画像分類と同様に、セマンティック セグメンテーションにも、次の 2 つの入力データがあります。

  • 複数のバンドを含むラスター画像
  • 各ピクセルのラベルを含むラベル画像

散在データでのトレーニング

画像内のすべてのピクセルがトレーニング サンプルの分類で使用されるわけではありません。 これを散在トレーニング サンプルと呼びます。 選択されている画像と散在トレーニング サンプルの図を次に示します。 次に示されているような散在トレーニング サンプルの場合は、[無視] クラス パラメーターを 0 に設定する必要があります。 これにより、トレーニングに分類されていないピクセルが無視されます。

散在トレーニング サンプル

散在トレーニング サンプルの例を示します。

U-Net

U-Net のアーキテクチャは、エンコーダー ネットワークとその後に続くデコーダー ネットワークと解釈することができます。 セマンティック セグメンテーションでは、ピクセルのフィーチャが分類され、このピクセル レベルの分類がエンコーダーのそれぞれの段階で学習されます。

エンコーダーは U-Net プロセスの前半部分です。 エンコーダーは通常、VGG や ResNet などの事前トレーニング済みの分類ネットワークであり、畳み込みブロックを適用してから maxpool ダウンサンプリングを適用して、入力画像を複数のレベルでフィーチャ表現にエンコードします 1。 デコーダーは U-Net プロセスの後半部分です。 この目標は、エンコーダーが学習した識別機能 (低解像度) をピクセル空間 (高解像度) に意味的に投影して、密度の高い分類を取得することです。 デコーダーは、アップサンプリングおよび連結とそれに続く正規の畳み込み処理で構成されます 1

参考文献

[1] Olaf Ronneberger, Philipp Fischer, Thomas Brox. U-Net: Convolutional Networks for Biomedical Image Segmentation, https://arxiv.org/abs/1505.04597, (2015).

PSPNet

ピラミッド型解析ネットワーク (PSPNet) モデルは、エンコーダーとデコーダーで構成されます。 エンコーダーは、画像からフィーチャを抽出する役割を果たします。 デコーダーは、プロセスの最後にピクセルのクラスを予測します。

DeepLab

完全畳み込みニューラル ネットワーク (FCN) は、セマンティック セグメンテーションによく使用されます。 セグメンテーション タスクの画像で FCN を使用する場合の問題の 1 つとして、ネットワークの畳み込みレイヤーとプーリング レイヤーを通過する際に入力フィーチャ マップが小さくなる点があります。 この場合には、画像に関する情報が失われ、生成される出力で、予測が低解像度になり、オブジェクトの境界が不明瞭になります。

DeepLab モデルでは、Atrous 畳み込みと Atrous Spatial Pyramid Pooling (ASPP) モジュールを使用して、この問題に対処できます。 DeepLab の最初のバージョン (DeepLabV1) は、Atrous 畳み込みと Fully Connected Conditional Random Field (CRF) を使用して、画像のフィーチャが計算される解像度を制御します。

AllSource では、DeepLabV3 が採用されています。 DeepLabV3 でも、Atrous 畳み込みが使用されていますが、ASPP モジュールとして、バッチ正規化と画像レベルのフィーチャが組み込まれた改良版が使用されています。 V1 と V2 で使用されていた CRF (Conditional Random Field) は使用されなくなりました。

DeepLabV3 モデルのアーキテクチャは、次のとおりです。

  • VGG、DenseNet、ResNet などのバックボーン ネットワークからフィーチャが抽出されます。
  • フィーチャ マップのサイズを制御するために、バックボーンの最後のいくつかのブロックで Atrous 畳み込みが使用されます。
  • クラスに対応する各ピクセルを分類するために、バックボーンから抽出されたフィーチャだけでなく、ASPP ネットワークも使用されます。
  • 画像の実際のサイズを取得するために、ASPP ネットワークから生成された出力が 1 x 1 の畳み込みを通過します。これは、画像に対してセグメント化された最終的なマスクになります。