こんにちは!株式会社アクセルスペース採用担当のMegです!🚀
今回の社員紹介記事シリーズでは、当社の衛星画像インフラサービスAxelGlobeに関連した、とあるエンジニアリングに関してのお話になります。
突然ですが、衛星画像って、すごく綺麗で見惚れますよね✨
衛星画像というのはもともと生の撮影データがあって、 衛星画像生成処理(Data Processing Pipeline) や 衛星画像解析処理(Analytics Pipeline )等の多くのプロセスラインを通り、最終的な商品として衛星画像や衛星画像の分析データを利用者に提供しています。
そこで、今回は、宇宙から届けられたデータを、どのようにエンジニアたちが生成・解析処理しているのか、ちょっと技術的に赤裸々にお話しようと思います😎
宇宙業界未経験でも、ソフトウェア・DevOps・クラウドインフラ系の仕事をされている方々からしたら、「意外と自分のスキル・経験が宇宙ビジネスで役立つのかも」と気付きになるかもしれません…?!
衛星画像生成処理(Data Processing Pipeline)とは? 衛星から取得したデジタル値(Image Raw DataやSatellite Logs)から、衛星画像利用者が利用できるようなデータ(Imagery Product)を生成するまでの一連の処理のことです。 衛星画像生成処理は、一般的にいくつかの処理ステップから構成されていますが、そのうち光学衛星の画像処理で一般的に行われている3つの処理ステップを簡単に説明します。
⑴ 光学衛星画像は、太陽光(Solar radiation)の反射を、衛星に搭載した光学センサーで観測しデータを収集・生成します。光学センサーで観測できる太陽光の反射の値は、センサー感度特性や望遠鏡レンズに付着しているなにかしらの障害物や、地上と衛星の間にある大気などからも影響を受けます。これらの誤差を、地上のモデルサイトなどで観測した値などを利用して補正する処理を ラジオメトリック補正 と呼んでいます。
⑵ ジオメトリック補正 は、取得した衛星画像が地上のどの地点に対するものか、というのを推定する処理のことをいいます。撮影時の衛星位置情報や衛星の地表方向への向きといったデータから、取得画像の地点座標を計算します。また、取得画像と参照画像における、GCPs(Ground Control Pointsの略。予め座標がわかっている地上点)を比較することで、より高い精度で地点情報を類推することも行います。
⑶ 空間分解能の向上・鮮鋭化 とは、例えば分解能5mのデータから2.5mのデータを生成するようなことを指します。これらを実現するテクニックはいくつかありますが、パンシャープニング(Pansharpening)はその一例です。この技術は、2.5mのPanchromatic bandデータと5mのMultispectral bandデータを組み合わせて、2.5mのMultispectral bandデータを生成するというような技術です。
衛星画像解析処理(Analytics Pipeline)とは? AxelGlobeでは衛星画像の更なる活用のため、衛星画像解析処理解析によって生成されたデータ「解析データ」を提供しており、その一例として、 クラウドレス(雲なし)ベースマップ に取り組んでいます☁️
クラウドレスベースマップにおける衛星画像解析処理では、ある対象とする期間内に存在する同じ地点で撮影日の異なる衛星画像をインプットとして、それらに対し雲ピクセルを検知し、雲をなるべく取り除いたものを合成処理し、 一枚のできる限り雲のない合成画像 を生成するような処理を行っています。
そもそも、クラウドレスベースマップの必要性とは?
一般的に、光学衛星画像の40%は雲に覆われていると言われており、例えば梅雨の時期や地性的に雨の多い地域では、より高い確率で雲に覆われています。画像上で地上が雲に覆われていると、衛星画像利用者が見たいものが写っておらず、使い勝手が悪くなるケースがあります。また、撮影時間の厳密性を重要視せず、できる限り雲がない画像が欲しい、とリクエストされることもあります(例:スマートフォン等でみる地図サービスの衛星画像表示機能に利用される衛星画像はこのケースにあたります)。
1年毎・半年毎・1ヶ月毎に同じ場所をカバーしたクラウドレスベースマップを提供できるようになれば、新しく作られた道路インフラや作物の成長具合等の、ある時点間の差分のデータを取得できるようになります。それらのデータを用いて、これまで存在しなかった、あるいは取得することが困難だった情報で利用者が意思決定できるようになります。
世界中のあらゆる産業において宇宙データが当たり前のように使われつつある時代に対して、AxelGlobeでは、クラウドレスベースマップでアマゾン熱帯雨林地域や日本全土の光学衛星画像といった地表データを、一定程度の品質基準を満たして継続的に取得・提供できるようにする、というサービス提供を目指しています。
AxelGlobeのDevOpsにおける面白さ(課題)とは? 取り扱うデータ量の大きさや、そのデータを処理するパイプラインシステムの設計は頭を悩ませるところです。データ量に応じてそれを処理できる適切なコンピュータリソースを動的に確保してアルゴリズムを実行するインフラシステムを構築する必要があります。データの特性に合わせて独立性があれば、複数のインプットデータに対して、同じ処理を並行して処理できるようにしてデータ提供までのレイテンシーを短くできるようなパイプライン設計が求められます。また、データの処理方法自体を変更する場合は、これまでの一連の処理と、新しい一連の処理を、同時に並列で動かせるようにして、処理結果を比較できるようなパイプラインの拡張性・柔軟性も求められます。 これらを実現するためには、インフラシステムの拡張性だけでなく、アルゴリズムのインプット・アウトプットを適切な抽象度で定義し、データの取得部分と永続化部分を柔軟に変更できるようなシステムが必要になるため、アルゴリズム開発エンジニアとの設計部分での合意形成も必要になります。
また、データをどのようなフォーマットでどのように永続化するかの設計・実装も、必要とするデータ量・フォーマット・取得方法はデータ利用者のユースケースによって様々なので、ユースケース毎にデータを永続化すると、それに応じてストレージコストが必要になります。ストレージコストを抑えつつ、柔軟な取得方法を実現するにはどうすれば良いかなどなど、多くの課題に対して、日々チームとディスカッションしています👥
使ってるツール・ライブラリ・言語など教えてください! 現在は光学衛星画像データを主に処理対象としており、これらのデータ処理を行うシステムのほとんどはクラウドサービス上で運用しています。それぞれの項目での色の濃淡は人によって異なりますが、ざっくり以下のような技術を使用しています。
データコンピュテーションリソース:Amazon ECS/Fargate, AWS Lambda, Amazon EC2 データパイプラインの イベント駆動処理:Amazon SNS/SQS/EventBridge データパイプラインのモニタリング、可視化:Amazon CloudWatch、Amazon RDS Performance Insights 各種データの保存・永続化:Amazon S3、Amazon RDS Postgresql & PostGIS 認証・認可、システム・データのアクセス制御:AWS IAM データフォーマット:GeoTiff, JSON, GeoJSON Infrastructure as Code:Terraform Python, Bash CI/CD: GitHub Actions また、運用するシステムの対象は主に画像処理になることもあり、運用システムを構築する上で、以下の技術の興味・理解があると、チームメンバーとのコミュニケーションに役に立ちます🙆
Computer vision (OpenCV) GDAL, rasterioといった衛星画像などのGeoSpatial data処理ライブラリ PyTorch, Tensorflow, scikit-learnといったML/DNN ライブラリ 宇宙を変える仲間、募集中。 「AxelGlobe、面白そうかも」 「クラウド/インフラ/DevOpsの基本的なスキル持ってるから、話聞いてみようかな」 「チームのことももっと知りたいな」 「ソフトウェアエンジニアとして、市場価値高められそう・成長できそう!」
と、少しでも思われた方は、是非こちら確認してみてください👇😉
Noteでは役員目線での社内情報も発信中!📢
アクセルスペースの「中」、覗いてみませんか?
実は キャリアページ に、社内の雰囲気、労働環境等、シェアしているスライドがありますので「アクセルスペースの中」を更に知りたい方は、是非是非ご覧ください🙌
株式会社アクセルスペースでは一緒に働く仲間を募集しています