宙畑 Sorabatake

機械学習

船舶の物体検出!第2回衛星データ解析コンテスト上位入賞者の解析手法紹介!

衛星データを用いた船舶検出アルゴリズムコンペ「Tellus Satellite Challenge」の上位3名の解析手法をご紹介します。

(1)「Tellus Satellite Challenge」とは~企画の狙い~

「Tellus」は日本政府が掲げる「宇宙産業ビジョン2030」で述べられている「2030年代早期に宇宙産業全体の市場規模の倍増する」という目標達成に向けて、衛星データの産業利用を目的とした衛星データプラットフォーム事業。

Tellus事業の一環として、衛星データの利活用事例を可視化し、優秀なデータサイエンティストの発掘、衛星データの周知・啓蒙等を行うことで「Tellus」の利活用促進を目的としたデータ分析コンテストが「Tellus Satellite Challenge」です。

初回のチャレンジは2018年の10月に開催され、テーマは「SARデータを用いた熊本地震における土砂崩れ検出」、国内外から544名が参加し、のべ3400モデルの応募がありました。

結果として、非常に優れたDeep Learningモデルが開発され、分析の知見が多くの技術者に広まり、衛星データ分析の実際(特にSARという特殊なデータ)に関して理解が深まりました。入賞者のアプローチに関しては前回の記事「第1回衛星データ解析コンテスト、上位3名の解析手法と第2回への期待」にて解説しております。

The 1st Tellus Satellite Challengeの概要

本記事では、Tellus Satellite Challengeの第2弾「高分解能光学衛星データを用いた水域における船舶検出」について、チャレンジの趣意や入賞者のアプローチについて解説していきます。

記事執筆協力:齊藤 秀(SIGNATE)

(2)第2回コンテストのテーマのポイント

第2回のテーマは水域に存在する船舶を検出するAIの開発です。日本は周囲を海に囲まれた島国であり、領海を含む排他的経済水域(EEZ)は世界第6位の面積を保有する海洋大国です。よって、海域・水上における船舶活動の網羅的な把握は、水運・漁業などの産業活動や安心・安全につながる重要なテーマです。

しかしながら、あまりに水域が広大なため、そのモニタリングは容易でないことは想像に難くありません。そこで人工衛星の登場です。第2回目のチャレンジでは広域を観測可能な衛星データの特性を生かし、水域における高精度な船舶検出アルゴリズムの開発を目指しました。

さらに、利用した衛星データが有する高分解能特性から、船舶が静止しているかどうかの動きの判定や船種の識別にもチャレンジしました。現在のAI技術を用いると高分解能光学衛星データからどのレベルまで物体検知が可能か?得られた成果をもとに、さらなる船種や船籍などの詳細な識別へと発展させることにより、多様な目的への利用が期待されます。

コンテストで使用した衛星データは、ASNARO(Advanced Satellite with New system Architecture for Observation、先進的宇宙システム)シリーズにおける高分解能光学衛星データ「ASNARO-1」です。ASNARO-1は、経済産業省の委託を受けて日本電気株式会社(NEC)が開発した0.5m以下の地上分解能を持つ高解像度光学センサを搭載した人工衛星です。

ASNARO-1の画像 Credit : NEC Corporation, Distributed by PASCO CORPORATION

田端にある東京新幹線車両センター周辺のシーンです。パッと見ていろいろな構造物が肉眼でみてとれます。

コンテストは2018年1月18日から2月14日まで448人が参加し、557モデルが応募されました。1ヶ月にも満たない短い期間でしたが、多数のハイレベルなAIが集まりました。1・2位は海外からの応募となり、国際的な争いになりました。

評価指標はMAP、船舶と判定したピクセル領域の6割以上が実際の船舶領域とオーバーラップすることが要求され、かつ3種類の船舶(動いている船舶・停止している船舶・艀)のいずれかであるかを正しく判定するタスクとなっています。難しいですね。

データは、お台場・川崎・横須賀・大阪・神戸・福岡の6地域における(学習用)20シーン、(評価用)21シーンの画像が提供されました。課題の特性としては2点あり、1つ目は、1シーンの画像サイズの非常に大きい(1辺が10000ピクセル以上)ため、そのままDeep Learningで扱うことが困難であること、2つ目は検出対象の船舶がとても小さい(100ピクセル程度)ので見逃さないような工夫が求められることです。

Credit : Original data provided by NEC

入賞者のアプローチは類似傾向にあり、すべての入賞者が

●小さいウインドウサイズのDeep Learningをずらしながらシーン全体から船舶を検出する戦略をとっていたこと

●ロバストな検出器を作るために、”データ水増し”を実施していたこと

●Deep Learningはstate-of-the-art (SOTA)なモデルを採用し、領域検出では後処理で検出精度を高めていたこと

等が共通しています。

それぞれの戦略をもう少し詳しくみていきましょう。

(3)各入賞者のアプローチを徹底解説(前処理)

各入賞者はいずれも一定サイズの局所画像をシーンから切り出す作業をしています(1位は700px、2位は1024px、3位は250pxおよび700px四方)。これは1シーンをそのまま扱うモデルで、はネットワークサイズの観点からモデリングが困難なため、局所における判定器を構築し、スライドしながら船舶を検出する戦略をとっていることがみてとれます。

また、random scaling、random rotate、random flip等の異なるサイズ・向きのデータ生成やcolor jitteringによる色調変化といったdata augmentationを実施し、学習データの水増しと汎化性能の向上を狙っています。切り出しサイズや水増しテクニックの種別の違いは本質的ではないので、ここでは共通戦略から有用な前処理を学ぶことができます。

(4) 各入賞者のアプローチを徹底解説(モデリング)

使用モデルは1位・2位が“Faster-RCNN”、3位が“RetinaNet”を用いています。

まず、Faster-RCNNは2015年に提案されたDeep Learningモデルであり、Convolutional Layerで画像の特徴を抽出し、そこからRegion Proposal Networkにより物体領域を検出すると同時に分類、回帰の結果を出力するEnd-to-Endなネットワーク構造となっています。

Faster-RCNNは領域提案部分が独立な構造をとっているため、Two-stage detector、つまり2段階で検出を行う戦略をとっています。従来Two-stage detectorはOne-stage detector(後述)に相対して高精度である一方、非効率で推論速度が遅いのが欠点でした。Faster-RCNNはその速度要求の解決を提案するモデルです。今回の船舶検出では該当しませんが、自動走行運転等のリアルタイム物体検出などでは高い検出精度と同時に高速な推論が求められます。

Source : https://arxiv.org/pdf/1506.01497.pdf

RetinaNetは2017年に提案されたモデルです。

RetinaNetはOne-stage detectorと呼ばれ、領域検出と分類を一度に行うモデルです。このアプローチは逆に高速な推論が可能な一方、精度がTwo-stage detectorに劣ることが課題でした。RetinaNetはFocal Lossという損失関数を提案し、精度向上を実現しています。詳細は論文を参照ください。

Source : https://arxiv.org/abs/1708.02002

今回のチャレンジではFaster-RNNベースに軍配があがりました。また、実際のモデルでは複数のネットワーク(複数のウインドウサイズ等)のアンサブルにより精度向上を達成しています。また、2位のモデルではImageNet、COCOによる学習済みモデルも利用しています。結果的に利用しないモデルを引き離すことができなかったことから、今回のチャレンジでは、学習済みモデルの効果は限定的であると推察されます。

いずれにせよ入賞者の皆さんは先進技術をキャッチアップして今回のチャレンジに応用していただきました。

(5) 各入賞者のアプローチを徹底解説(後処理)

前述の通り、すべての入賞者は今回複数のDeepLearningモデルのアンサンブルにより最終推定を実施しています。その際の推定領域の代表化および検出の精度向上対策として、1位および3位がNon-maximum supression(NMS)処理を採用し、2位がBounding box voting処理を適用しています。いずれも同じ船舶に対して複数の領域検出結果が得られた場合、もっともらしい1つの代表領域を得ることを目的とした手法です。ここでは詳細を解説しませんが、興味のある方は是非、調べてみてください。

ここで、今回の入賞モデルの領域推定精度を検証していきましょう。評価手法としてはIoU(Intersection over Union)を用います。IoUとは実際の船舶領域と推定領域の重なり具合を評価する指標です。

下図は1位のモデルにおけるIoUの分布を示しています。

今回のタスクではIoUが0.6以上を領域検出の閾値としています。85.7%の船舶領域を検出することができています。

続いて、船舶の大きさと領域検出精度の関係をみてみましょう。

小さな船舶は検出が難しい傾向がありますが、一連のSOTAなモデリングアプローチが高い検出精度を実現していることは間違いありません。

(6)コンテスト全体の総評

今回の検出精度MAPで0.567の解釈ですが、Deep Learningにより検出された領域に57%弱、正しい船種の存在を検知できたことになります。

検出精度自体は前述のとおり85.7%と高いので、船種判定が難しいことがわかります。船種別に精度を細かくみていくと、停止している船舶に比べ動いている船舶の検出率が低いことから、波しぶき等を含めた動きの判定が難しいことがわかります。また、艀は特徴が捉えづらく、より判定が困難であることがわかります。

また、検出ミスの例として、陸域の構造物を船舶として認識してしまう例がしばしば見られました。地図データを活用して、陸域をフィルタリングし、水域のみの検出精度を検証すれば、さらに高い精度を示すと考えられます。

入賞者からは、皆様参加できて楽しかったという所感、1位・2位の方から「データの質が高い」とASNAROの高分解能性に対して高い評価、成果がTellus APIへ繋がってほしい、次のコンテストも参加したい等のコメントをいただきました。Tellusの普及につながるよい結果が得られたと思います。

(7)第3回「Tellus Satellite Challenge」への期待

第3回「Tellus Satellite Challenge」は「海氷領域の検知」をテーマに2019年10月14日より開始しております。

オホーツク海のいわゆる”流氷”を衛星から見つけよう!というチャレンジです。漁師さんや海運業の方々には重要なテーマです。

実は、海氷の判定業務は海上保安庁さんの専門家が冬季の間、我々の安心安全のために日々実施してくださっています。今回のチャレンジの成果は同業務の労力低減や意思決定支援などにつながることが期待されていて、とても社会意義の高いチャレンジになっています。

また、使用するデータはPALSAR-2の広域観測モード(ScanSAR)、2種類の偏波種データが提供されています。偏波と物理特性など、色々学びながら具体的なテーマにチャレンジできるよい機会となっています。11月30日まで参加可能なので、ぜひチャレンジしてみてください!

The 3rd Tellus Satellite Challenge:海氷領域の検知
https://signate.jp/competitions/183

「機械学習と衛星データ」に関する宙畑おすすめ記事