プロジェクトの作成と入力データの取得
まず、ArcGIS Pro プロジェクトを作成し、ワークフローに必要な入力データを取得します。
- ArcGIS Pro を開きます。 サイン インを求められたら、ArcGIS アカウントを使用してサイン インします。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- [新しいプロジェクト] の [マップ] を選択します。
- [新しいプロジェクト] ウィンドウで、次のパラメーターを設定します。
- [名前] に「Alexandra_Land_Cover」と入力します。
- [場所] で [参照] ボタンをクリックし、任意のフォルダーの場所を選択します。
- [OK] をクリックします。
プロジェクトが開きます。 これで、デフォルト ベースマップだけが表示されます。
南アフリカのアレクサンドラ タウンシップ地域を表すドローン画像を追加します。 画像は高解像度で、各ピクセルが地上の約 2.5 x 2.5 センチメートルの正方形を表しています。 これは South Africa Flying Labs により撮影されたものです。 ArcGIS Online ではこのレイヤーが画像タイル サービスとして格納されています。
注意:
South Africa Flying Labs は南アフリカでドローン画像を制作する非営利組織であり、同国の社会問題の解決に必要な知識や技能を地域コミュニティに提供しようとしています。
- リボンの [マップ] タブをクリックします。 [レイヤー] グループの [データの追加] ボタンをクリックします。
- [データの追加] ウィンドウで、[ポータル] の下の [ArcGIS Online] をクリックします。 検索ボックスに「Alexandra_Orthomosaic owner:Esri_Tutorials」と入力し、Enter キーを押します。 結果のリストで、[Alexandra_Orthomosaic] という名前のレイヤーをクリックして [OK] をクリックします。
タイル画像レイヤーが表示され、マップでそのレイヤーが拡大表示されます。
注意:
このトゥルー オルソ画像レイヤーは複数のドローン画像から取得されたものです。 Site Scan for ArcGIS アプリケーションで生成され、Site Scan から ArcGIS Online に直接保存されています。
このチュートリアルで提案しているワークフローを独自の画像に適用するには、ヒントとして、チュートリアルの最後の「独自の画像へのこのワークフローの適用」セクションをご参照ください。
- マップを拡大表示したり画面移動したりして、建物の場所をより詳細に調べます。
次に、High Resolution Land Cover Classification - USA ディープ ラーニング パッケージを ArcGIS Living Atlas からダウンロードします。 このディープ ラーニング パッケージは、土地被覆フィーチャを正確に分類するために大規模データセットでトレーニングされた事前トレーニング済みモデルです。 この事前トレーニング済みモデルを使用することで、モデルに組み込まれた知見や専門知識を活用して、分析範囲のさまざまな土地被覆タイプを抽出できます。 こうすることによって、自身でモデルのトレーニングを行う場合よりも時間と労力が節約されます。
- ArcGIS Living Atlas に移動します。
- 検索ボックスに「High Resolution Land Cover Classification - USA」と入力して Enter キーを押します。
- 結果リストで [High Resolution Land Cover Classification - USA] をクリックし、モデルのアイテム ページに移動します。
- モデルのアイテム ページで説明を読み、モデルについて理解を深めます。
モデルは 80 ~ 100 センチメートル (0.8 ~ 1 メートル) の解像度を持つ画像を処理するようにトレーニングされています。これは、同様の解像度の入力で最も良好に機能することを意味します。
- [ダウンロード] をクリックします。
注意:
ほとんどの Web ブラウザーでは、デフォルトでコンピューターのダウンロード フォルダーにファイルがダウンロードされます。
- ダウンロードしたディープ ラーニング パッケージを、コンピューター上の見つけやすい場所に移動します。
- Ctrl + S を押して、プロジェクトを保存します。
ディープ ラーニングを使用したピクセルの分類
ここでは、ディープ ラーニングを使用したピクセルの分類ジオプロセシング ツールとダウンロードした事前トレーニング済みモデルを使用して、土地被覆レイヤーを生成します。
注意:
ディープ ラーニング ツールを ArcGIS Pro で使用するには、正しいディープ ラーニング ライブラリがコンピューター上にインストールされている必要があります。 これらのファイルがインストールされていない場合は、プロジェクトを保存し、ArcGIS Pro を終了して、「ArcGIS Pro でのディープ ラーニングの準備」に記載された手順に従います。 これらの手順では、お使いのコンピューター ハードウェアとソフトウェアでディープ ラーニング ワークフローを実行できるかどうかを確認する方法と他の有用なヒントについても説明します。 完了したら、プロジェクトを再度開いてチュートリアルを続行できます。
- リボンの [表示] タブをクリックします。 [ウィンドウ] グループで、[ジオプロセシング] をクリックします。
- [ジオプロセシング] ウィンドウの検索ボックスに、「ディープ ラーニングを使用したピクセルの分類」と入力します。 結果リストの [ディープ ラーニングを使用したピクセルの分類] ツールをクリックして開きます。
- [ディープ ラーニングを使用したピクセルの分類] ツールで、以下のパラメーターを設定します。
- [入力ラスター] で、[Alexandra_Orthomosaic] を選択します。
- [出力ラスター データセット] で、「Land_Cover_Raster」と入力します。
- [モデル定義] で [参照] ボタンをクリックします。
- [モデル定義] ウィンドウで、ダウンロードした [HighResolutionLandCoverClassification_USA.dlpk] ディープ ラーニング パッケージを参照します。 選択して、[OK] をクリックします。
しばらくすると、モデルの引数が自動的に読み込まれます。
- [引数] で、[batch_size] 引数を特定します。
ディープ ラーニングのピクセル分類は、画像全体に対して一度に実行できません。 その代わり、ツールが [tile_size] 引数値に基づき、画像を小さなタイルに分割します。 バッチ サイズが 4 とは、ツールが一度に 4 つの画像タイルを処理することを意味します。 ツールを実行すると、エラーが発生する場合がありますが、コンピューターにそのレベルの処理に十分なメモリがないためです。 その場合は、[batch_size] の値を 4 から 2 または 1 に変更してみてください。 高性能コンピューターであれば、[batch_size] の値を上げて、処理を速めることもできます。
今回は、デフォルト値の 4 のままにします。他の引数でもデフォルト値をそのまま使用します。 次に、ツールの実行時に使用するセル サイズを設定します。
- [環境] タブをクリックします。
- [ラスター解析] の [セル サイズ] に、「0.9」(0.9 メートル = 90 センチメートル) と入力します。
ドローン画像の元のセル サイズ (ピクセル サイズ) は 2.5 センチメートル (0.025 メートル) です。 解像度が非常に高いため、処理すべきピクセルが多く、長い処理時間がかかります。 また、セル サイズが小さく、詳細すぎるため、フィーチャを正確に分類できない可能性があります。 前述のとおり、モデルが想定している入力画像のセル サイズは 80 ~ 100 センチメートル (0.8 ~ 1 メートル) です。 処理セル サイズを 0.9 メートルに調整することで、ディープ ラーニング分類の入力として使用される前に、画像がより大きなセル サイズで自動的にリアルタイムでリサンプリングされます。 リサンプリングされた画像はモデルの想定に非常に近いものになります。 これによって、より高速な処理で、より正確な土地被覆分類結果が得られます。
注意:
セル サイズの設定が結果にどのように影響するかをより深く理解するには、「Multiresolution Object Detection with Text SAM」記事の「Imagery cell size」セクションをご参照ください。
- [プロセッサー タイプ] で、[GPU] を選択します。 [GPU ID] で [0] を選択します。
注意:
このチュートリアルでは、4 GB 以上の専用メモリが搭載された NVIDIA GPU を推奨しています。 CPU のみが搭載されている場合、それでも処理は実行されますが、実行に非常に時間がかかります。 その場合は、CPU オプションを選択します。 GPU およびディープ ラーニング処理での GPU の使用方法の詳細については、「ArcGIS Pro でのディープ ラーニングの準備」チュートリアルの「GPU の利用可能性の確認」のセクションをご参照ください。
- その他のデフォルト値をそのままにして、[実行] をクリックします。
ツールが処理中に、[詳細の表示] をクリックすると、さらに情報を得られます。
ヒント:
メモリ不足エラーが発生した場合は、[batch_size] の値を 4 から 2 または 1 に減らして、プロセスをもう一度実行してみてください。
数分後、[Land_Cover_Raster] 結果レイヤーが [コンテンツ] ウィンドウとマップに表示されます。 これは、各ピクセル値が 9 つの土地被覆カテゴリのいずれかを表す、ラスター レイヤーです。
[コンテンツ] ウィンドウで土地被覆タイプのリストを確認できます。
- 拡大表示して画面を移動し、[Land_Cover_Raster] レイヤーを確認します。
植生、建物、水域、道路など、さまざまな土地被覆フィーチャが見られます。 この高解像度ラスターは、このアレクサンドラ タウンシップ地域における、これらの土地被覆タイプの分布と範囲についての価値ある知見を提供します。
注意:
植生エリアは全体的に高精度で抽出されているものの、特に非公式住宅を含むエリアでは建物の結果が低品質であることに気づくかもしれません。 結果の品質は、画像の解像度と、存在する特定の種類の建物によって異なります。異なるフィーチャ タイプを抽出するためにさまざまな方法を使用するとよいでしょう。 建物を高精度で抽出する強力なアプローチについては、「Multiresolution Object Detection with Text SAM」記事で説明しています。
- [クイック アクセス ツールバー] で [プロジェクトの保存] ボタンをクリックして、プロジェクトを保存します。
土地被覆フィーチャ レイヤーの生成
土地被覆ラスターを取得した後は、目的に応じて、そこからポリゴン レイヤーを作成すると便利です。 そうすれば、ArcGIS Pro で利用できる、ベクターベースのジオプロセシング ツールを使用して、解析ワークフローを続行できます。 そのためには、ラスター → ポリゴン ツールを使用します。 次に、新しいレイヤーをシンボル表示します。
- [ジオプロセシング] ウィンドウで、[戻る] ボタンを 2 回クリックします。
- [ラスター → ポリゴン] ツールを検索して開きます。
- [ラスター → ポリゴン] ツールで、次のパラメーターを設定します。
- [入力ラスター] で、[Land_Cover_Raster] を選択します。
- [フィールド] で、[Class] を選択します。
- [出力ポリゴン フィーチャ] に「Land_Cover_Features」と入力します。
- その他のデフォルト設定をそのままにして、[実行] をクリックします。
[Land_Cover_Features] レイヤーが作成され、マップに追加されます。
注意:
レイヤーの色はランダムに割り当てられたため、異なる場合があります。
新しいレイヤーで、さまざまな土地被覆パッチがポリゴン フィーチャに変換されています。 各ポリゴンに 1 つの土地被覆タイプが割り当てられています。 次に、レイヤーをシンボル表示して、土地被覆タイプを可視化します。 タイプごとに異なる色を選択しながら、各タイプを 1 つずつシンボル表示することもできます。 しかし、ワークフローを円滑に実行するために、すでに設定されたシンボルを含むレイヤー ファイルを使用します。
- Land_Cover_Symbology.lyrx レイヤー ファイルをダウンロードします。
- [コンテンツ] ウィンドウで、[Land_Cover_Features] レイヤーが選択されていることを確認します。
- リボンの [フィーチャ レイヤー] タブをクリックします。 [描画] グループにある [シンボル] ボタンをクリックします。
[シンボル] ウィンドウが表示されます。
- [シンボル] ウィンドウでオプション ボタンをクリックして、[シンボルのインポート] を選択します。
- [レイヤーのシンボル情報を適用] ツールで、次のパラメーターを設定します。
- [入力レイヤー] が [Land_Cover_Features] に設定されていることを確認します。
- [シンボル レイヤー] で、[参照] ボタンをクリックします。 [ダウンロード] フォルダーを参照して、[Land_Cover_Symbology.lyrx] ファイルを選択し、[OK] をクリックします。
ヒント:
または、[Land_Cover_Symbology.lyrx] ファイルを [Alexandra_Land_Cover] プロジェクト フォルダーに移動して、そこでアクセスすることもできます。 こうすると、このシンボルを他のレイヤーに再利用する予定がある場合に特に便利です。
- [実行] をクリックします。
植生の合計面積の計算
ここでは、このアレクサンドラ地域の緑地 (植生で覆われたエリア) を特定し、緑地で覆われたサーフェスの合計面積を計算します。
- [コンテンツ] ウィンドウで、[Land_Cover_Features] レイヤーを右クリックして、[属性テーブル] を選択します。
- [Land_Cover_Features] 属性テーブルで、[Class] フィールドを見つけます。
ここに土地被覆タイプの値が格納されています。 [Low Vegetation] と [Tree Canopy] という 2 つの土地被覆タイプが、植生で覆われたエリアに対応しています。 これら 2 つのタイプを含むクエリを作成します。
- [属性条件で選択] をクリックします。
- [属性条件で選択] ウィンドウの [式] で、[Where 句 Class が Low Vegetation, Tree Canopy を含む] という式を作ります。
- [OK] をクリックします。
これで、植生に対応するすべてのポリゴン フィーチャがマップ上で選択されました。
- 属性テーブルで [選択レコードを表示] ボタンをクリックします。
植生を表すポリゴンは 831 個あります。
注意:
数は多少異なる場合があります。
次に、これら 831 個のポリゴンが覆っているサーフェスが全部でどれくらいかを調べます。
- [Shape_Area] フィールドを右クリックし、[統計の探索] を選択します。
- 水平方向にスクロールして [合計] セルを見つけます。
この値は、現在選択されているすべてのポリゴンのサーフェス面積の合計に一致します。
注意:
数は多少異なる場合があります。
したがって、このアレクサンドラ地域で緑地に覆われたサーフェスの合計はおよそ、403,990 平方メートル、つまり 0.404 平方キロメートルであることがわかります。
緑地レイヤーの作成
最後のステップとして、フィーチャのエクスポート ツールを使用して、分析範囲内の緑地のみを含むレイヤーを作成します。
- [コンテンツ] ウィンドウで [Land_Cover_Features] レイヤーを右クリックし、[データ] にポインターを合わせて [フィーチャのエクスポート] を選択します。
- [フィーチャのエクスポート] ウィンドウで、次のパラメーターを設定します。
- [入力フィーチャ] で [Land_Cover_Features] が選択されていることを確認します。
- [選択されているレコードを使用] オプションがオンになっていることを確認します。
- [出力フィーチャクラス] に、「Green_Spaces」と入力します。
[選択されているレコードを使用] オプションがオンになっているため、現在選択されているポリゴン フィーチャのみが新しいレイヤーにエクスポートされます。
- [OK] をクリックします。
新しいレイヤーがマップに追加されます。 この新しいレイヤーが見やすくなるように少し整理します。
- [Land_Cover_Features] データ エンジニアリング ビューを閉じます。 属性テーブルを閉じます。
- リボンの [マップ] タブをクリックします。 [選択] グループで、[選択解除] をクリックして、[Land_Cover_Features] レイヤーでのフィーチャ選択を解除します。
- [コンテンツ] ウィンドウで、[Land_Cover_Features] と [Land_Cover_Rasters] のチェックボックスをオフにして、これらのレイヤーを非表示にします。
これでマップは、元のドローン画像上に [Green_Spaces] レイヤーのみが表示された状態になりました。
- Ctrl + S を押して、プロジェクトを保存します。
[Green_Spaces] レイヤーは、どのマップや調査プロジェクトでも使用できます。 このレイヤーを Web レイヤーとして ArcGIS Online に公開することで、コミュニティと共有することもできます。
独自の画像へのこのワークフローの適用 (オプション)
このワークフローを独自の画像に適用するには、次の点に留意します。
- 画像の保存場所 - このチュートリアルでは、Site Scan for ArcGIS によって未処理のドローン画像から生成され、Site Scan から ArcGIS Online に直接保存された画像レイヤーを使用しました。 独自のデータを扱う場合も、同じように ArcGIS Online でホストできます。 もう 1 つの選択肢は、ローカル コンピューターに保存されている画像を使用することです。
モデルのデータ要件の理解 - High Resolution Land Cover Classification - USA の説明ページに記載されているように、モデルは入力として 8 ビット、3 バンドの高解像度 (80 ~ 100 cm) 画像を想定しています。
- 画像の準備 - 想定されている 3 バンドは、赤、緑、青 (RGB) です。 画像が 3 バンドより多い場合は、ディープ ラーニング プロセスを続ける前に、適切なバンドを抽出する必要があります。 また、このモデルでは画像のピクセル深度は 8 ビットを想定しています。 画像のピクセル深度が 16 ビットなど、想定と違う場合は、8 ビットに変換する必要があります。 「転移学習によるディープ ラーニング モデルの強化」チュートリアルの「関連する画像バンドの選択」のセクションをご参照ください。変更方法が段階を追って説明されています。
- 画像に関する情報の確認 - 画像のプロパティ (バンド数、ピクセル深度、セル サイズなど) が不明な場合は、[コンテンツ] ウィンドウで、画像のレイヤーを右クリックし、[プロパティ] を選択します。 [プロパティ] ウィンドウで、[ソース] ウィンドウをクリックし、[ラスター情報] で、[バンド数]、[セル サイズ X]、[セル サイズ Y]、[ピクセル深度] の値を確認します。
- セル サイズの実験 - [ディープ ラーニングを使用したピクセルの分類] ジオプロセシング ツールを使用しているときに、いくつかの [セル サイズ] 値を試し、自分の画像で最適な結果が得られる値はどれであるかを調べることができます。 ただし、モデルが想定しているセル サイズは 80 ~ 100 センチメートル (0.8 ~ 1 メートル) であるため、0.9 が適切であるはずです。 モデルの想定より粗いセル サイズの画像を使用することはおすすめしません。
狭い範囲での実験 - 実験中に、より高速に結果を得るために処理範囲を狭めることができます。 [環境] タブの [処理範囲] で、[範囲の描画] ボタンをクリックしてマップ上に小さいポリゴンを描画します。
このチュートリアルでは、事前トレーニング済みのディープ ラーニング モデルを使用して、南アフリカのアレクサンドラ タウンシップ地域の高解像度ドローン画像をピクセル レベルで土地被覆タイプ別に分類しました。 その後、詳細な土地被覆ラスター レイヤーをベクター レイヤーに変換し、シンボル表示しました。 植生を表すポリゴンを選択し、このポリゴンで覆われたサーフェスの合計面積を計算しました。 最後に、同地域の緑地のみを含むベクター レイヤーを作成しました。
GeoAI で土地被覆を抽出するその他のオプションの詳細については、記事「Unlocking Landscapes: Landcover Mapping using Pretrained Deep Learning Models」をご参照ください。
同様のチュートリアルについては、「ArcGIS のディープ ラーニング」シリーズをご参照ください。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。