目次
ArcGIS Pro のディープ ラーニング
ArcGIS Pro では、統計的分類法または機械学習分類法によって、リモート センシング画像を分類することができます。機械学習の一種でもあるディープ ラーニングも、Image Analyst エクステンションを使用することによって、ディープ ラーニング モデルを ArcGIS Pro に統合し、オブジェクト検出、オブジェクト分類、および画像分類などを行うことができます。
近年、これらの解析への注目が高まっていますが、環境やデータの準備に手間がかかる、というイメージを持たれているかもしれません。そこで、本記事ではより多くの方に、手軽に ArcGIS Pro でディープ ラーニングを使用した解析をお試しいただけるよう、実行環境の整備と、米国 Esri 社が公開する事前トレーニング済みのすぐに使えるディープ ラーニング モデルの活用についてご紹介します。
※本記事は米国 Esri 社のブログ記事「Deep Learning with ArcGIS Pro Tips & Tricks」を基に、内容を翻訳・抜粋したものです。
※本記事でご紹介するツールの使用には ArcGIS Pro の Image Analyst エクステンションが必要です。
ArcGIS Pro でディープ ラーニングを実行するには
- 適切な GPU を使用する
ディープ ラーニングのワークフローは、大量のデータを並列で効率的に処理できる GPU (Graphics Processing Unit) で処理することをお勧めします。ワークフローを CPU でも実行することができますが、GPU で実行する場合と比べ大幅な処理時間を要します。
ArcGIS Pro のディープ ラーニング ツールを GPU で処理する場合には、CUDA 互換の NVIDIA 社製 GPU が必要です。お使いのコンピューターが互換性のある NVIDIA 社製 GPU を搭載していることを確認し、次のステップに進みます。
- CUDA Toolkit のインストール
ArcGIS Pro のジオプロセシング ツールが GPU と通信できるようにするためには、NVIDIA 社が提供する CUDA Toolkit をインストールする必要があります。
NVIDIA 社 Web サイトの「CUDA Installation Guide for Microsoft Windows」(英語) を参照のうえ、手順に従って CUDA Toolkit をインストールします。
インストールが完了したら、コマンド プロンプトを開き、「nvidia-smi」と入力します。下記のような応答が表示されます。
- ArcGIS Pro 用のディープ ラーニング フレームワークのインストール
ディープ ラーニングで使用するジオプロセシング ツールの実行に必要なライブラリを ArcGIS Pro の Python 環境に自動でインストールできるツールが米国 Esri 社から提供されています。
「Deep Learning Libraries Installer for ArcGIS Pro」にアクセスし、利用している ArcGIS Pro のバージョン用のインストーラーをダウンロードし、実行します。
※デフォルトの Python 環境を保持し、専用の新しい Python 環境でツールを実行する場合は「Manual Installation Instructions」ドキュメント (英語) をご参照ください。
- ディープ ラーニング環境のテスト
最後のステップとして、これまで構築した環境をテストします。ArcGIS Pro を起動し、[解析] タブ → [Python ウィンドウ] をクリックして開き、次のコード スニペットを実行します。
import torch
import fastai
torch.cuda.is_available()
torch.cuda.is_availavle() が True を返せば、環境構築は完了です。
事前トレーニング済みのディープ ラーニング モデル
ArcGIS Living Atlas of the World で、すぐに利用することができるトレーニング済みの 13 種類のディープ ラーニング モデルが公開 (2021 年 6 月現在) されています。
衛星画像から土地被覆や人が居住するエリア、道路を分類するモデルや、点群データ内の樹木のポイントや電線を抽出するモデルを無償で入手することができます。
たとえば、「Building Footprint Extraction – USA」モデルは、ドローン空撮画像などの高解像度 (10 ~ 40 cm) 画像から建物のフットプリントを抽出する処理 (オブジェクト検出) に利用できます。都市計画をはじめとする様々な用途に使用できるデータの作成が可能です。
モデルは、アイテム詳細ページから、ディープ ラーニング モデル パッケージ (*.dlpk) としてダウンロードできます。
ディープ ラーニング モデル パッケージ (*.dlpk) は、ディープ ラーニングのワークフローで必要となる Esri モデル定義ファイル (*.emd) と、トレーニング済みのモデル ファイルが 1 つになったパッケージです。
すぐに利用できるトレーニング済みのディープ ラーニング モデルでの解析
ご紹介した「Building Footprint Extraction – USA」モデルを使用して、建物のオブジェクト検出を行ってみましょう。
ArcGIS Pro で [ディープ ラーニングを使用したオブジェクトの検出] ツールを開きます。
・[入力ラスター] に解析したい画像データを入力します。
・[モデル定義] に、Living Atlas からダウンロードしたディープ ラーニング モデル パッケージ (*.dlpk) を指定します。[引数] がモデルから自動で設定されます。
・[Non Maximum Suppression] をオンにすると、検出時に重複したフィーチャをマージできます。
他のパラメーターはそのままにし、[環境] タブをクリックします。
GPU でツールを実行する場合、[プロセッサ タイプ] を「GPU」に設定します (GPU ID はお使いの環境に応じて設定してください)。
※その他の設定項目については、[ディープ ラーニングを使用したオブジェクトの検出] ツールのヘルプをご参照ください。
ツールを実行します。
なお、ツールを GPU で実行中、コマンド プロンプトで nvidia-smi コマンドを使用すると、GPU のメモリ使用率などを確認することができます。
メモリ使用率が GPU の容量を超え、ツールの実行に失敗する場合は、ツールの引数の [batch_size] の数字を減らして調整してください。
オブジェクト検出の結果は、フィーチャクラスとして出力されます。これにより ArcGIS Pro でさらに解析を実行するなどができるため、結果の活用の幅が広がります。
また、ArcGIS Pro では、ディープ ラーニング モデルのトレーニング データを作成することもできます。Learn ArcGIS チュートリアル「ディープ ラーニングを使用したヤシの木の健康状態の評価」で、データと手順を学習できます。
■関連リンク
ヘルプ ドキュメント
・Deep learning FAQ (英語)
米国 Esri ブログ記事 (英語)
・Deep Learning with ArcGIS Pro Tips & Tricks: Part 1
・Deep Learning with ArcGIS Pro Tips & Tricks: Part 2
・Deep Learning with ArcGIS Pro Part 3: QA/QC Extracted Features
・Introducing pre-trained geospatial deep learning models