宙畑 Sorabatake

機械学習

超解像の精度アップに寄与した4つのこと、衛星データ解析コンペ5位入賞者にインタビュー!

2021年9月から始まったSolafuneの「市街地画像の超解像化」コンペで見事5位に入賞された方に、精度アップに寄与したことを伺いました。

(1)Solafuneとは

現在、世界中で「衛星データの利活用」を促進するべく、様々な取り組みが行われています。この中でも、衛星データや地理空間データに特化したコンテストを開催することで利活用を促進しようとしているのが「Solafune」です。

これまでも「夜間光データから土地価格を予測」や「衛星画像から空港利用者数を予測」といった衛星データを利用した独自のテーマでコンテストが開催されています。

コンテストを開催するだけでなく、Solafuneではコンテスト参加者が交流できるDiscordのチャンネルも用意されており、コンペ参加者同士で活発な意見交換が実施されていることも魅力の1つです。

今回は、「市街地画像の超解像化」コンテストで5位に入賞された坂本様(rskmoi様)より、参加されたキッカケや、取り組んできた内容についてお伺いいたしました。

【インタビュイー】
坂本怜
フリーランスの機械学習エンジニアとして業務を行っている。画像処理案件を得意としており、2019年-2020年には衛星画像系の案件にも取り組んだ経験を有する。

インタビュアー】
俺人

優秀な人工知能が自身の代わりに頑張ってくれることを目標に、Solafuneを始め各種コンテストに参画しながら、Pythonや機械学習、統計学などの勉強中。。
学習したことをアウトプットすることで自分の身に着けるために、ブログ(https://oregin-ai.hatenablog.com/)やTwitter(https://twitter.com/Oregin2)も運用中。

【実績】
データ分析サイト
・ProbSpace 総合1位(金5、銀2、銅2)
・Nishika 総合13位(金1、銅2)
・SIGNATE 銅1
・Kaggle 銅1

日本ディープラーニング協会主催
・CDLEハッカソン2020 優秀賞受賞
・CDLEハッカソン2021 企業賞受賞

(2)Solafuneを知ったキッカケは?

まずは、Solafuneのコンテストを知ったキッカケについて、お伺いしてみました。

―――衛星データ解析コンテストプラットフォームであるSolafuneを知ったキッカケを教えてください。

坂本:最初は、Twitterだったと思います。衛星データに特化した分析サイトができたということで話題に上がっていたのを覚えています。最初のコンテストではデータだけダウンロードして参加できていなかったのですが、今回、初めてコンテストに参加することができました。

―――では、今回、どのような理由で参加してみようと思ったのでしょうか。

坂本:理由は2点あります。1点目は、「超解像化」という、これまで取り組んだことがなかったタスクだった点です。画像系のタスクは色々と経験があったのですが、「超解像化」は、初めてで、何から手を付けて良いかということから勉強してみようと思い、挑戦しました。

2点目は、GPUクラウドを活用する業務を担当していたこともあり、実際にコンテストという実務に近い環境での動作検証及び性能の評価をしたかったという点になります。

(3)超解像化が視覚的に理解できた

―――では、実際にコンテストに参加してみて、いかがでしたでしょうか。

坂本:論文を読んだり、自身でコードを動かしてみることで、「超解像化」はこのように取り組めばよいということが理解できた点が有意義でした。また、学習が進むにつれてどのような箇所が「超解像化」されていくのかも視覚的に理解できました。特に、横断歩道や道路の模様が高精細で見えてきたところは印象的でした。

GPUクラウドの動作検証の視点では、AMD社製GPUのGPUクラウドでも十分な性能が得られるということが確認できました。NVIDIA製GPUを利用されていることが多いようなのですが、今回「超解像化」においてSOTA(State-of-the-Art)モデルをAMD社製GPUでも動作させることが検証できました。

(4)精度を上げるためにした4つのこと

―――5位入賞されているという点で、精度を上げるために工夫したことを教えていただけますか。

坂本:うまくいった工夫点は、主に4点あります。

1点目は、コンテスト外部の航空写真データの利用になります。今回、学習用に与えられたデータは60枚程度しかなく、精度を上げるためには、色々なデータがあったほうが良いと考え外部データを利用しました。特に衛星画像は、撮影方法も似ているデータが沢山あるので、外部データが有効だと考えました。

ただ、今回は衛星画像でライセンス上、コンテストに利用するにあたって適切なデータが無かったため、練馬区の航空写真のオープンデータを利用しました。練馬区全域の航空写真の500枚以上のデータが得られたので、市街地から水辺まで様々な写真を学習できたことが精度を上げることに有効であったと考えています。

https://www.city.nerima.tokyo.jp/kusei/tokei/opendata/opendatasite/
tokei_kusei/koku-shashin.html

2点目は、Data Augmentation(データ拡張)です。今回は、MixUpという手法をもちいました。MixUpとは、訓練データのペアを混合して新たな訓練データを作成する手法になります。(MixUP:http://www.inference.vc/mixup-data-dependent-data-augmentation/

3点目は、学習を進めるにつれて元の訓練データの割合を高めた点になります。最初は外部データやMixUpで拡張したデータを含めて学習させ、学習を進めれば進めるほど60枚の元の訓練データの割合を高めて学習させることで、精度をあげることができました。

最後に、4点目は、コンテストの評価方法に合わせた損失関数を利用した点になります。今回の評価方法はSSIMという評価方法だったのですが、モジュールに組み込まれているSSIMと少し異なっていたため、自身で今回の評価方法に合わせた損失関数を作成することで、コンテストで求められる精度を向上しました。

(5)難しかったこと/壁を感じたこと

―――このコンテストで直面した、難しかったことや、壁を感じてできなかったことなどはありましたでしょうか。

坂本:難しかったことは沢山あったのですが、そのうちの1つは取り組み始めたころに挑戦した半教師学習です。テストデータから予測された高解像画像を教師データとして学習させるという取り組みでした。しかしながら、この手法はうまく精度の向上にはつながりませんでした。

―――半教師学習から、今回の外部データを利用した方式に切り替えたタイミングはどのようなタイミングでしょうか。

坂本:最初は、良い外部データが見つからず、テストデータも活用しようと考えていたのですが、ネットワーク上のオープンデータを探している中で、Kaggleのデータセットで他の自治体の航空写真を見つけることができて、衛星画像の超解像化にも使えるのではないかと考えた時に、切り替えました。その後、各自治体で公開されている航空写真を調べて今回の練馬区のデータが一番適切だったため採用しました。

―――やはり、データを揃えるということは重要ということですね。勉強になります。少し観点が変わりますが、私が取り組むにあたっては、Google Colaboratoryをメインで使用しているため、GPUの性能や利用時間の制限が壁となりましたが、リソースの観点ではいかがでしたでしょうか。

坂本:今回のモデルは、Google Colaboratoryでも十分な性能が出せたのではないかと考えています。やはり精度に大きく貢献していたのは外部データを利用して訓練データを十分確保できたことだと考えています。

また、人的リソースという面では、コンテストの後半戦、私自身が取り組む時間を十分に撮れなかったという壁がありました。一時期は、リーダーボードで1位になっていたのですが、取り組む時間が取れなくなってから、徐々に順位を落としていってしまいました。

―――限られた時間で取り組むにあたって、取り組むポイントの優先順位はどのように決められましたか。

坂本:普段行っている業務の中で、モデルを考える前に、「良いデータを揃える」ことと「評価指標を適切に設定する」という点を優先的に考えています。今回のコンテストでも、外部データを利用したり、損失関数をコンテストで求められる評価指標にあわせたりすることで、精度の向上に寄与することができたと考えています。

(6)お勧めの計算リソース

次に機械学習に使用する計算リソースに関する考え方をお伺いいたしました。

―――計算リソースについては、どのように使い分けるとよいとお考えでしょうか。

坂本:個人用途やであれば、自由に利用できるオンプレの実機の計算リソースがよいと思います。クラウドだと「使えば使うほど損」という気持ちになる一方、オンプレは「使えば使うほど元が取れる」という気持ちになるため、機械学習に取り組む際の精神的ハードルが全然違います。

一方、企業等の業務目的であったり、個人でもたくさんのリソースが必要になった場合は、、クラウドを利用することがよいと思います。

(7)超解像の解析をやってみて感じた衛星データの可能性

次に今回、超解像の解析を実施してみて感じた衛星データの可能性についてお伺いいたしました。

―――超解像度の解析を実施してみて、衛星データの可能性について、どのように感じられましたか。

坂本:衛星データの可能性としては、今回のコンテストに関連した観点と、衛星データ全体での観点の2つの視点から感じた点があります。

今回のコンテストに関連した観点では、解像度の低い安価な衛星画像でも、くっきりした画像を得られるというユーザ体験は、インパクトが大きいと思います。Google map等の高精細な画像を入手することができるのですが、ライセンス上の問題などによって簡単には商用利用できないことが多くあります。

一方で、30m程度の解像度の画像であれば比較的容易に入手することができるので、これらの画像を超解像化できるということは、ビジネスに繋げることができるのではと感じました。

また、今後、衛星画像に限らず、ドローンでの空撮画像も普及してくると考えています。ドローンには高価なカメラが載せられないといった条件から限られた解像度の画像しか得られないことも想定されます。これらの画像を高精細化する上でも今回の技術が活用できるのではないかと考えています。

衛星データ全体での観点では、現在は、特定の時間帯など限られた時間での衛星画像しか提供されていませんが、今後、もっと撮影頻度が高い衛星画像(例えば同一地点で10分毎に1回など)が入手できるようになれば、広告や需要予測に使えるようになっていくのではないかと考えています。

(8)今後開催されるコンテストにはどのようなコンテストが良いか

最後に、今後開催されるコンテストに、どのようなコンテストが良いかをお伺いしてみました。

―――今後、どのようなコンテストがあれば参加してみたいと思われますか。

坂本:需要予測や、広告を展開する場所など、地上の時系列データと連携したコンテストがあると面白いと思います。以前、空港の利用者数を予測するコンテストがありましたが、似たようなコンテストとして、ある店舗の時系列衛星画像から来月の来店者数を予測するといったコンテストが考えられると思います。

―――今後も、Solafuneでは、いろいろなコンテストが開催されるようなので、楽しみですね。今回は、お忙しいところ、お時間をいただきありがとうございました。

(9)インタビューを終えて

今回初めて、コンペティションの他の参加者の取り組みについてインタビューさせていただくことができました。私自身の取り組み方の姿勢としては、モデルの構築や組み合わせなどで精度を上げることに注力しており、計算リソース不足に頭を悩ましておりました。

しかしながら、坂本様の実業務目線での取り組みとして、「良いデータを揃える」ことと「評価指標を適切に設定する」ことに注力された結果、精度が向上したということをお伺いし、モデル構築の前に適切なデータ、適切な評価指標を選択することが非常に重要であると再認識いたしました。この知見は、コンテストでの成績向上だけでなく将来的に実業務で機械学習を活かしていくためにも重要な知見だと感じました。

最後となりましが、とても示唆に富んだインタビューを実施させていただきました坂本様、このような機会を提供下さいました宙畑様、エキサイティングなコンテストを運営して下さいましたMicrosoft様・Solafune様、一緒にコンテストで対戦してくださいました皆様に感謝いたします。今後も更なる社会貢献ができるよう精進してまいりますので、引き続きよろしくお願いいたします。