第13回:生成AIで衛星画像から雲を消せるか/ Stable Diffusionと独自AIで画像生成比較

AI技術チームによる技術発信

AI技術チームの荻原です。
衛星画像データの活用において、雲の存在は時に大きな制約となります。しかし、今回紹介するような先端技術を用いた雲を除去するデータ加工は、こうしたデータの制約を克服し、衛星画像データの価値を最大限に引き出すことができる可能性を秘めています。
本記事ではテキストから様々な画像を生成する機械学習モデルStable Diffusionが、「衛星画像から雲を除去する」という特殊なタスクに対してどの程度実用的に使うことができるかを、独自モデルと比較しながら見ていきます。
 

衛星データの利活用

(図1)人工衛星や国際宇宙ステーションから撮影した日本、東京周辺の画像。
出典:
左: Jeff Schmaltz, MODIS Rapid Response Team, NASA/GSFC   https://visibleearth.nasa.gov/images/66387/japan
中央: Image courtesy Ron Beck, USGS Eros Data Center Satellite Systems Branch   https://visibleearth.nasa.gov/images/2854/tokyo
右: the Image Science & Analysis Laboratory, Johnson Space Center   https://www.visibleearth.nasa.gov/images/8683/tokyo-at-night 

 

近年、人工衛星で宇宙から撮影した画像データの利活用が注目を集めています。衛星データを用いることで以下に挙げるような様々な応用がされています。
- 家屋や車/飛行機の物体検知
- 土地利用区分でセグメンテーション
- 国交省や農水省での大型土地造成工事における調査
- 農作物収穫時期の予測 etc…
技術発信第6回:衛星データによるCO2モニター [1]で取り上げたように空気中の二酸化炭素の濃度を測定することもできます。一般に人工衛星はドローンや飛行機を使った航空写真より広域を定期的に観測することができるという特徴があります。これらの事例ではそうした特徴がうまく活用されています。

人工衛星の打ち上げは、かつては膨大なコストがかかり、気象観測や情報通信、地理情報・位置情報の取得といった公的な目的、もしくは宇宙物理学などの科学研究への利用が主流でした。しかし、人工衛星を載せるロケットの打ち上げにSpaceXなどの民間の企業が参入するようになって以降、多くの民間企業が地球観測用人工衛星を打ち上げるようになりました。
例えば、Planet Labs [2]は約200機の小型衛星を打ち上げ、編隊(コンステレーション)を組むことにより3.7mの高解像度で地球全体を毎日観測しています。これにより森林破壊やインフラ施設の監視、ハリケーンなどの自然災害による被害状況の把握などをサービスとして提供しています。また、Spire[3]も同様に数多くの衛星を打ち上げ、天気予報や海上の船のモニタリングなど、様々なビジネスを行っています。衛星からの観測では可視光だけでなく、合成開口レーダー(Synthetic Aperture Radar: SAR)を使った観測も行われています。レーダーを使うことで、悪天候で雲がかかっていても、夜間の日が当たらない場所でも観測をすることができます。日本の企業ではSynspective [4]やQPS研究所 [5]がSAR衛星の打ち上げに成功しています。
独自に衛星を打ち上げずとも、Tellus[6]などの衛星データを販売・提供するプラットフォームを利用することでより簡単にデータにアクセスすることも可能になりました。今後、観測機器の性能向上による画像の高解像度化や、画像取得の高頻度化、価格競争による低価格化や活用環境の整備が進むと、他にも様々な用途で用いられていくことでしょう。
 

衛星画像を活用するにあたっての問題=雲

衛星画像は上手く使えば地上の様子を知るための非常に有用なデータですが、その活用に際して注意すべき問題があります。それが「雲」の存在です。人工衛星は文字通り雲の上の軌道上にあります。そのため雲が発生するとその部分の地表面は雲の下に隠れることになり、多くの衛星が行う可視光での観測ができません。もちろん、気象衛星などは雲自体を観測することを目的としている場合もあるため、雲が写り込むことが必ずしも悪いというわけではありません。しかし地表の情報を得たい場合には、雲は厄介な存在です。例えば東京の日照率はおよそ46%(2012年から2022年の平均[7])で、概ねその程度の割合の衛星画像が雲の影響を受けてしまうことが考えられます。
残念ながら雲によって隠されてしまったその時その場所の地表の画像を得ることはできません。しかし、AIを使えば雲の部分のみをリアルな地表面の画像に置き換えることは可能です。AI(機械学習)を用いて衛星画像から雲を除去し補完する研究は過去数年の間にも世界中で行われてきています[8][9]。
雲の除去は、隠された地表面の画像を生成するタスクとして解釈できます。画像生成という観点では近年Stable DiffusionやDALL·E、Midjourneyなどの大規模モデルが注目を集めています。Stable Diffusionについては以前の技術発信第10回:テキストから画像生成を行うAIモデルの紹介[10]でも取り上げました。
 

独自AIで雲除去

本記事では、雲を除去して補完する画像生成タスクに対して、比較的簡素で軽量な独自の機械学習モデルを用いた結果と大規模モデルStable Diffusion の画像補完機能Inpaintingを用いた結果の比較結果をご紹介します。
衛星画像にはAWS上で公開されているLandsat-8,9衛星の観測データ[11]を使用しました。Landsat[12]はNASAとUSGSにより運用されている地球観測計画で、1972年のLandsat-1衛星の打ち上げ以来、継続的に複数の波長帯で地表面を光学観測しています。これまで9機が打ち上げられ、最新の衛星であるLandsat-8,9(図2)はそれぞれ、2013年2月と2021年9月16日に打ち上げられました。両衛星は同じスペックの観測機器を搭載していて、可視光や赤外線を含む11種類の波長帯で観測を行っています。可視光帯での空間分解能は30mで、16日で地球を一周して同じ緯度経度の上空に戻ってくる高度約700kmの軌道を周回しています。今回は、RGBの可視光バンドでの観測結果を用いました。画像中の雲の判定には、データセット内に含まれているピクセルごとに割り当てられた雲や雲によってできた影かどうかの情報を利用しています。

(図2)左:Landsat-8衛星、右:Landsat-9衛星
出典: USGS/NASA Landsat https://landsat.gsfc.nasa.gov/satellites/

雲によって地表が隠れている割合が多くなればなるほど学習は難しいと考えられるため、今回は晴天率が全国の中でも比較的高い「晴れの国」岡山県を含む画像の2020年以降のデータを用います。

独自の機械学習モデルには、畳み込み層3層と逆畳み込み層3層で最新の生成系AIでも用いられることが多いAttention 機構1層を挟み込むような比較的簡単なニューラルネットワークを使用しました。
機械学習タスクとして今回は、単一の画像に対して雲の形の欠損を加え、それを復元するように画像生成を行うこととしました。まず画像サイズが同じ、雲が写っていない画像と雲が写り込んでいる画像を用意します。雲が写り込んでいる画像の雲部分を特定し、雲部分を隠すようなマスクを作成します。そのマスクを雲が写っていない画像に重ね、雲が写っていない画像の地表面が写っていた部分を隠します。この地表面の一部を隠した(欠損を加えた)画像を、もとの画像に復元するように学習を行います。これによりマスクをされた箇所の地表面を補完するような生成モデルができます。
データのダウンロードから前処理や学習まで全てAmazon Sagemaker Studio上で行いました。学習と推論にはg4dn.xlargeインスタンスを使用しました。

結果として、独自モデルでは、図3で示すように、雲の形状をしたマスクで地表面が隠れてしまっている(真っ黒になっている)部分が、細かな構造まではっきりとは再現できていませんが、周囲の状況に合わせて上手く馴染むように補完がされていることがわかります。必ずしも細かい構造まで完全に再現できているわけではありませんが、さらに改良を施すことで、より現実に近い画像の補完ができるようになる可能性があります。先に挙げた先行研究では同じ場所の異なる時刻の画像や可視光以外の波長での観測結果を組み合わせた手法が紹介されています。 

(図3) 独自モデルによる画像補完結果。左から雲が写っていないオリジナルの画像、雲が写っていない画像にマスクを施した画像、マスク部分をモデル出力結果で補完画像。一番右の画像では、どの場所がマスクされていたのか一瞬では判断がつかない程の補完がされていることがわかる。
(Landsat-8,9 image courtesy of the U.S. Geological Survey)
 

Stable Diffusion Inpainting で雲除去

テキストを入力すると画像を生成するAIのStable Diffusion では、画像内の指定した領域内のみに対して、入力テキストに応じて画像生成を行うというInpaintingという機能が提供されています[13]。この機能を用いて画像中から雲を消すことができるか試してみました。
結果は図4の通りで、細かな構造は比較的それらしいものを出力する場合もありましたが、不自然な白い斑点が現れたり、衛星画像としては全く的外れな模様が生成されたりしました。
大規模なデータセットで事前学習を行なった汎用的なモデルであっても、このように事前学習データセットに含まれないと思われる特殊なデータセットに対しては、ユーザーの意図に沿わない結果を出すことがしばしばあります。衛星画像を使って事前学習済みモデルをファインチューニングすることによって表現力豊かでリアルな画像が生成できるかもしれません。ただし、今回利用したAmazon Sagemaker JumpStartで提供されているStable Diffusion 2 Inpainting のモデルについては記事執筆時点ではファインチューニング機能が提供されていませんでした。

(図4) Stable Diffusion Inpaintingによる画像補完結果。左から雲が写っていないオリジナルの画像、雲が写っていない画像にマスクを施した画像、Stable Diffusion Inpaintingの出力結果(補完結果)。不自然な白い斑点や模様が現れることがあった。使用したプロンプトは “This is a satellite image taken by Landsat. Replace the masked area with the realistic ground images. Blend-in with the surroundings.”
(Landsat-8,9 image courtesy of the U.S. Geological Survey)
 

まとめ

本記事では、衛星画像データの活用の際に問題となる「雲」に着目し、画像中から雲を除去して地表面画像で補完することを試みました。単純に同じ地点の他の日時の画像で雲部分を置き換える場合では、季節が異なると落葉して色が周りと異なっていたり、日の当たり方が異なることで明るさが不自然になっていたりする場合がありますが、今回は機械学習を用いてある程度自然に見える画像を得ることができました。
雲というノイズが取り払われたことにより、衛星画像をもとにした分析や意思決定が容易になる可能性があります。例えば、土地の利用状況の分析として森林面積の測定に衛星画像を活用する場合、森の上空にかかっている雲を除去することで面積測定精度が向上する可能性があります。農作物の生育状況を予測する場合には、赤外線やSAR衛星の観測データ・気象データ・これまでの育成記録などに雲を除去した画像を組み合わせることで、収穫時期の予測精度が向上するかもしれません。ただし、機械学習モデルにより補完されたデータは現実を完全に反映しているわけではないため、機械学習が持つ精度や信頼性・不確実性を慎重に考慮することが必要です。森林と市街地の境界線に雲がかかっている場合には、本当は市街地の場所も森林として補完してしまうかもしれません。
画像中の欠損の補完には画像編集ソフトなどが提供するサービスも非常に強力で、便利に使えるものが増えてきました。ただし、特定のデータセットや用途に特化したタスクでは、そうした汎用的なモデルでは望んだ結果を得ることが難しいことがあります。そのような場合には、その特定のデータセットに特化した独自のモデルの作成が不可欠です。
機械学習の活用には様々な注意点がありますが、豆蔵では経験豊富なコンサルタントがそうした注意点も踏まえた上で、お客様の業務に合わせた機械学習モデルの作成を行なっています。また、衛星画像やその他データの分析・利活用支援や、機械学習のリテラシー向上や内製化に役立つ、基礎から実践まで様々なご要望に対応した教育研修プログラムのご提供も行っております。
 

参考文献

[1] 豆蔵AI技術チームによる技術発信 第6回:衛星データによるCO2モニター https://www.mamezou.com/techinfo/ai_machinelearning_rpa/ai_tech_team/6
[2] Planet Labs https://www.planet.com
[3] Spire https://spire.com
[4] Synspective https://synspective.com/jp
[5] QPS研究所 https://i-qps.net
[6] Tellus https://www.tellusxdp.com/
[7] 気象庁日照率データhttps://www.data.jma.go.jp/obd/stats/etrn/view/monthly_s3.php?prec_no=4…
[8] Stucker et al., 2023, U-TILISE: A Sequence-to-sequence Model for Cloud Removal in Optical Satellite Time Series, https://arxiv.org/abs/2305.13277
[9] Zou et al., 2023, PMAA: A Progressive Multi-scale Attention Autoencoder Model for High-performance Cloud Removal from Multi-temporal Satellite Imagery, https://arxiv.org/abs/2303.16565
[10] 豆蔵AI技術チームによる技術発信 第10回:テキストから画像生成を行うAIモデルの紹介https://www.mamezou.com/techinfo/ai_machinelearning_rpa/ai_tech_team/10
[11] USGS Landsat - Registry of Open Data on AWS https://registry.opendata.aws/usgs-landsat/
[12] Landsat Science - NASA https://landsat.gsfc.nasa.gov
[13] Hugging Face stabilityai/stable-diffusion-2-inpainting https://huggingface.co/stabilityai/stable-diffusion-2-inpainting