機械学習の解析手法を網羅的に整理、衛星データ解析を題材に学ぶ機械学習の解析手法と実践例まとめ
機械学習とは、コンピューターが大量のデータからルールやパターンを学習し、未知のデータに対して予測や判断を行う技術です。本記事では、初学者の方向けにその解析手法をご紹介!衛星データ解析を学びたい方もおすすめです。
本記事では、機械学習を学びたいという方を対象に、衛星データを題材とした機械学習の解析手法を網羅的に紹介します。
これから機械学習を学びたいという方、また、衛星データ解析を学びたいという方はぜひ本記事を参考に手を動かしてみていただけますと幸いです。
(1)機械学習の解析手法の全体像と、解析の考え方フローチャート
まずは、本記事で紹介する機械学習の解析手法の全体像を紹介します。本記事で学べるのは以下の内容となっています。
| 学ぶ内容 | 何ができるようになる? | どんな時に使える? |
|---|---|---|
| 分類モデル 線形回帰 | 値の予測 何かを分類 |
衛星の状況判断 バンド演算の最適化 |
| 分類モデル ツリーモデル | 何かを分類 | 衛星データの分類 マップの作成 |
| ディープラーニング 2値分類 | 何かを分類 | 衛星の状況判断 バンド演算の最適化 |
| セグメンテーション | 面での分類予測 | 事象の確率ヒートマップの作成 変化検知 |
| 時系列モデル(時系列解析) | 時系列データの予測 | 時間変化による推移 |
| 物体検知 | 検知物の位置を特定できる | 地物の位置や個数を知る |
| インスタンスセグメンテーション | 検知物の位置を特定してセグメントで分類できる | 地物の領域を個数ごとに把握できる |
| 超解像 | ピクセル解像度を向上できる | 見やすい画像にできる |
| 生成モデル | 似たような衛星データを生成できる | 地物や衛星データを作成可能 |
| 基盤モデル | モデルの精度向上と安定化ができる | 取得した衛星画像だけでない特性を取得できる |
機械学習を使って衛星データ解析がしたいと考えた時、どういったことに適用したいのかによって、用いる手法が異なります。
衛星データに写っている物を数えたり、どういう状態かを判定したりする場合には、以下のような手法があります。
また、衛星データで分かることから推測できることや未来を予測する手法としては以下のようなものがあげられます。
さらに、衛星データから別のデータを新たに作り出すことにも機械学習が使われています。
それでは、それぞれの手法を紹介して入っていきましょう。
(2)分類モデル 線形回帰
最初に紹介するのは「線形回帰」です。
線形回帰は統計モデルで計算内容も把握しやすく、比較的理解が簡単です。
それは実装だけではなく、予測値の理解にも繋がるので一番最初に取り組むのがおすすめです。
線形回帰とは、入力特徴量から計算した予測した値と正解との誤差が最小になるように直線(平面)で近似することで予測を行うモデルです。
図のように実際の値をグラフにプロットし、それらの点のなるべく近くを通るように引いた直線が予測値となります。
入力値として何か値が観測されたら(図では0.4)、予測した直線と交わる点の値(図では400円)が、線形回帰での予測値となります。
線形回帰は単純な演算で説明性の高いモデルを作成する時に活用します。
宙畑では以下の記事で本モデルを利用しています。
解析実例とともに学ぶNDVI(正規化植生指標)の基本と扱う上での注意点【コード付き】
(3)分類モデル ツリーモデル
ツリーモデル(決定木)とは、ある特定の条件で似通ったサンプルをまとめて整理して分類を行う機械学習モデルです。
ツリーモデルは、スケールが不明な場合やルールが見えづらいデータでも適用が可能です。さらに、分類条件を可視化することで説明性も担保することが可能です。
衛星データでは、地上観測した状態の判定の活用ができます。
解析実例とともに学ぶNDVI(正規化植生指標)の基本と扱う上での注意点【コード付き】
(4)ディープラーニング分類
ディープラーニング分類とは、ディープラーニングを使用した分類モデルのことです。多くの場合は画像モデルで衛星内にある対象が映り込んでいるかどうかの2値分類や状態の複数分類を行うことです。
ディープラーニング分類は、画像データが比較的大量にある場合に計算効率よくモデルに落とし込んだり、様々なパターンを認識させる場合に活用できます。
宙畑では以下の記事で本モデルを利用しています。
Kerasを使って衛星画像内の山が独立峰か連峰かを判別するモデル作成チャレンジ
CNNを使って衛星データに雲が映っているか否か画像分類してみた
(5)セグメンテーション
ここでのセグメンテーションとは、セマンティックセグメンテーションのことで、画像のピクセルごとに分類を行い、クラスなどに分けることが可能なタスクです
衛星データでは、水域や農地の分類などの土壌分類、洪水時の判定の確率分布を作成したいなどときに活用ができます。
宙畑では以下の記事で本モデルを利用しています。
Sentinel-2を用いた雲検知モデルから被雲率を求める方法とその精度向上【学習済みモデル付き】【コード公開】
教師データがない時どうする? 衛星データを用いた浸水深予測の設計と実装手順【Githubでコードも紹介】
(6)時系列モデル(時系列解析)
時系列データとは、データの状態が時間の変化によって変化するデータのことです。この時系列データの、未来の時点や2時期の間の時点を予測するモデルを時系列モデルといいます。特に、衛星データは、同一地点を何度も来訪して観測できるので自然と時系列データが形成されていきます。
衛星データでは、売り上げ予測や需要予測のような時間ごとに変化するデータに活用ができます。
宙畑では以下の記事で本モデルを利用しています。
解析実例とともに学ぶNDVI(正規化植生指標)の基本と扱う上での注意点【コード付き】
(7)物体検知
物体検知とは、画像内の物体が写っている範囲とその確率を同時に予測することです。
衛星データでは、(車両などの)対象物の位置を正確に知りたい場合や、対象物の個数を知る時に活用ができます。
宙畑では以下の記事で本モデルを利用しています。
駐車場に停まっている車両の検知精度アップ? 衛星データによる車両の回転検知とその実装方法
DeepLearning×SAR画像で王道の物体検出を実装!(アノテーションから学習、識別までの全工程を解説)
(8)インスタンスセグメンテーション
インスタンスセグメンテーションとは、物体検知で位置と確率を予測すると共に、同時にその物体の領域も予測することです。同じ対象物をセグメンテーションするだけではなく、それぞれを独立して数えたいときに活用できます。
衛星データでは、(桜などの)樹木の領域が知りたい時や、船舶の領域を検出したいときに活用ができます。
宙畑では以下の記事で本モデルを利用しています。
衛星データから桜の開花検知によるお花見スポット探索の実装と3Dでの表現【MAXARの衛星データでやってみた】
(9)超解像
超解像とは、解像度を向上させる際に人間が解釈しやすいように解像度をあげるような加工を行うことです。地上分解能が向上するわけではありません。
衛星データでは、単純な補間で画像を拡大して画像を可視化するより自然な画像を投影したいときに活用ができます。
宙畑では以下の記事で本モデルを利用しています。
商用最高級の衛星データなら桜の開花状況が分かる!? MAXARの衛星データでお花見してみた
SRCNNを用いて衛星画像の超解像にチャレンジしてみた【コード付き】
衛星画像を超解像処理するTellus新ツール「Tellus-Clairvoyant」提供開始
(10)生成モデル
生成モデルとは、衛星画像を生成するモデルのことです。
衛星データでは、まだ打ち上げていない衛星の画像を生成するときや、購入するのが高価なときの代替に活用できます。
宙畑では以下の記事で本モデルを利用しています。
石油タンクの検出精度をUP!?GANを使って衛星データを水増ししてみた
SAR画像から光学画像への変換をpix2pixで実装して、作った生成器で別のSAR画像を分析してみた
(11)基盤モデル
基盤モデルとは、過去のアーカイブで撮像した衛星の知見や、自然言語との特徴量による紐付けを提供するようなモデルのことです。前提知識をモデルに埋め込んだり、データを統合したりすることが可能です。
衛星データでは、土壌分類や洪水検知の精度向上のようなときに活用ができます。
宙畑では以下の記事で本モデルを利用しています。
IBM と NASA の「Largest Geospatial AI」とは? 複数衛星のデータ融合と衛星基盤モデルによる先端技術の利用とその Python実装
(12)まとめ
衛星データの分野で機械学習モデルごとのタスクの説明と具体例を見ていきました。
近年の衛星データ活用には、自動化するシステムが基本となっていてそこには、コンピュータビジョン、機械学習や統計処理などのモデルの知識も必須になってきています。
網羅的な理解とメリットデメリットの把握で最新ネタにもついていきたいですね。
今後の宙畑では、具体例や新しい例なども充実させていきたいと思います。

