The End of the World

勉強したことのメモが中心。たまに日々の雑感。

【解説&実験】 CNNによるパンシャープニング

※本記事は2018/10/08に公開した記事を

adventar.org

向けに加筆・修正したものになります。

目次

はじめに

アドベントカレンダーの他の記事を眺めると、航空宇宙関連の話題からタンパク質構造といった一見航空宇宙とは関係なさそうな(!?)話題までカバーされていて改めてすごいなと感じています。*1 *2

さて、私が今回の題材ですが色々と迷った末*3、パンシャープニングについて書くことにしました。 冒頭でも述べているように、この記事は以前に公開したものを書き直したものになります。 記事に大きな間違いがあったことに気づいていたのですが、中々直す機会がなかったのでこれを機に書き直すことができてよかったです。 ちなみに、先日の日本リモートセンシング学会*4のポスターセッションで「ブログ読みました!」と声をかけられたのには驚きました。嬉しかった反面、大きな間違えを放置しておくことの危険性を実感しました。

パンシャープニングとは

パンシャープニングを一言で言うと、低解像度マルチバンド画像と高解像度単バンド画像(パンクロマティック)から高解像度マルチバンド画像を合成することです。(図1参照)

f:id:dl-kento:20181008205458p:plain
図1 パンシャープニングの例 (引用元: G. Masi et al. "Pansharpening by convolutional neural networks", Remote Sensing, 2016. (https://www.mdpi.com/2072-4292/8/7/594/htm) )

リモートセンシング画像の品質を定めるパラメータの中に空間分解能とスペクトル分解能があります。空間分解能が高いほど画像を詳細なスケールで解析することができます。また、スペクトル分解能が高いほど画像の1ピクセルから得られる情報量は大きくなります。例えば、スペクトル波形を解析することによって地表面の植物や鉱物の種類を知ることができます。他には時間分解能というパラメータがあり、これは観測頻度を表します。

エネルギー保存の法則から空間分解能 (spatial resolution) とスペクトル分解能 (spectral resolution) にはトレードオフの関係があるため、一つのセンサーにより得られた画像では望ましい性能を達成できないことがあります。そのような場合異なる性能のセンサーのデータを組み合わせることによってそれぞれのデータの「良いとこどり」をした画像を生成することができます。図1の例では二つの画像を組み合わせることにより建物一つ一つの解像度を捉えられる分解能を持ったカラー画像を合成しています。

パンシャープニングのアルゴリズム

多くのstate-of-the-artのパンシャープニングの手法は以下の式の最適化により行われています。


\mathcal{L} = \lambda_1 f_1(\mathbf{X}, \mathbf{P}) + \lambda_2 f_2(\mathbf{X}, \mathbf{M})  + f_3(\mathbf{X}) \tag{1}

ただし、

 \mathbf{X} : パンシャープニング画像

 \mathbf{P}: パンクロマティック画像

 \mathbf{M}: 低解像度マルチバンド画像

です。

つまり、第1項はパンクロ画像との空間情報の一貫性、第2項はマルチスペクトル画像とのスペクトル情報の一貫性を意味しています。第3項は正則化項です。

CNNによるパンシャープニング

CNNによるパンシャープニングの手法は様々なものが紹介されていますが、今回は新たな手法として(1)式を最適化する方法を検討しようと思います。

CNNを用いた手法の代表的な先行研究はRemote Sensingというジャーナルで発表されたPNN*5 やICCV2017で発表されたPanNet *6 で、元スケールの画像を教師としてダウンサンプルした画像を用いたパンシャープニングを学習します。これらの手法は、CNNを用いた超解像の手法を参考にしています。個人的にはこれらの手法は学習フェーズと実用フェーズで画像のスケールが変わってしまうので微妙な気がしています。*7

提案手法はCNNによりマルチスペクトル画像とパンシャープン画像の差分をResNetにより推定します(式 (2))。  f_w はCNNによる写像を表しています。また、 \mathbf{M} はパンクロマティック画像の分解能に合わせてアップサンプリングしています。( \uparrow がアップサンプリングに対応しています。)


\mathbf{X} = f_w (\mathbf{P}, \mathbf{M}) + \uparrow \mathbf{M} \tag{2}

学習は式(1)の目的関数によってCNNのパラメータを最適化することにより行われます。ただし、各項は以下のように計算されます。


f_1(\mathbf{X}, \mathbf{P}) = \parallel \Sigma^B_{b=1} \omega_b \mathbf{X} - \mathbf{P} \parallel^2_2 \tag{3}

 f_2(\mathbf{X}, \mathbf{M}) = \Sigma^B_{b=1} \parallel \mathbf{X} - \uparrow \mathbf{M} \parallel^2_2 \tag{4}

 f_3( \mathbf{X} ) = 0 \tag{5}

ここで bはバンドのインデックス、 Bはバンドの総数です。前述の通り、式(3)は空間情報の制約で、式(4)はスペクトル情報の制約です。式(5)は生成画像の正則化を行う項ですが、weight decayがこれに相当すると考えることができます。

Landsat8を用いた実験

Landsat8の画像が無料で手に入る*8 のでCNNによるパンシャープニングの実験を行いました。*9

適当に画像を取ってきて学習させた結果を図2に示します。左からマルチスペクトル画像(RGB画像)、パンクロマティック画像、パンシャープン画像になります。

f:id:dl-kento:20181008205342j:plain
図2: パンシャープン結果例

左二つの画像をうまく使って綺麗な画像が合成されていますね!

おわりに

今回はCNNを用いたパンシャープニングについて書きました。今回は簡単な実験を行なったのみですが、研究としてまとめていけるように頑張ります。コンピュータビジョンのタスクの中では高解像度化や自動着色が近いと思うのでこのあたりの研究を参考に提案手法をアップデートしていこうと思っています。

*1:verdy_266さんの院試についての記事の「院試後に学科同期と飲んだものの、出てくる話の端々で自分のミスが露呈し〜」というところに非常に大きな共感を覚えた。

*2:さらに述べると、「ひとつ具体的な失敗ポイントを上げるとするなら、2年後期の「材料力学」をこのタイミングで理解できなかったことです。」と言う一節や合格ラインギリギリで落ちる感じなどは後年の学生へ代々語り継ぐべき重要な教訓である。

*3:他には「合成開口レーダの原理」や「東大航空宇宙を舐めている全ての人達へ」などと迷った。

*4:日本リモートセンシング学会 第65回学術講演会 http://www.rssj.or.jp/act/conference/65th_autumn/

*5:G.Masi et al. "Pansharpening by convolutional neural networks". (https://www.mdpi.com/2072-4292/8/7/594)

*6:J. Yang et al. "PanNet: A Deep Network Architecture for Pan-Sharpening". (http://openaccess.thecvf.com/content_ICCV_2017/papers/Yang_PanNet_A_Deep_ICCV_2017_paper.pdf)

*7:特に検証実験等は行なっていないので、あくまでも気がしているだけである。

*8:LandBrowser (https://landbrowser.airc.aist.go.jp/landbrowser/)

*9:日本リモートセンシング学会 第65回講演会はこの内容で発表した。