SIGNATE地震コンペ解法まとめ(The 1st Tellus Satellite Challenge)
SIGNATEのThe 1st Tellus Satelite Challange(土砂崩れコンペ)に参加していました。
結果は散々だったので、他の参加者の解法を知り、いろいろと学ぼうと思ったのですが、SIGNATEにはkaggleと違ってKernelもDiscussionもありません。また参加者自体も少ないため、あまり情報が出回りません。
ということで、拾ってきたTellusコンペの解法をまとめました。
ただ、やはり参加者が少ないのか、ほとんど情報はありませんでした...
公式の結果発表会
表彰式より、上位1~3位のどなたかの資料?あるいはそれを総括したもの?パネルディスカッションがはじまりました!
— 宙畑-sorabatake-(宇宙ビジネス情報サイト) (@sorabatake) 2018年12月18日
初出し情報「第2回衛星データ分析コンテスト」で使用するデータはASNARO-1!
それ以上はまだ秘密とのこと。気になります。。。#tellus pic.twitter.com/HzZBGCIdWl
推測を交えて文章化↓
- 40px * 40pxの元画像を、ファイル名に従って連結して400px * 400pxにする
- Optical Flow:BeforeとAfterの動きを求める
- DIC( デジタル画像相関法) :検索すると位相限定相関が出るのでこれ?画像の位置ずれを求めるらしい。
- Multi channel:Before,After、上の手法の計算結果などをチャンネルとして重ねる?
- インバランス対策:正例と負例の偏りが激しいので、データ量を調整する?
Twitterより その1
Signateの土砂崩れコンペの自分の解法をざっくり呟いてみる。
— coz a (@coz_a_1980) 2018年12月9日
(12thなのでさほどの価値はない)
train用にLANDSAT(写真)とPALSAR(レーダー)の衛星画像が与えられているが、testではLANDSATが与えられない、という制約がキモ。
- ResNet16
- AugmentationはRandom CropとRandom Erase(flip,rotationはダメだった?)
- 3段階で学習(1:教師モデル、2:蒸留、3:ファインチューニング)
- 1:PARSAR,LANDSAT,前後を全部重ねて8chとして学習。損失関数はBCE。IoU0.25~035。
- 2:1の中間層の出力をtarget、PARSARだけの2ch画像を入力として学習。損失関数はMSE
- 3:2で学習したモデルにロジスティック回帰層+αを追加して再学習。Private0.20296。
公式ページのルールより"推論時にLANDSATのデータを入力して必要とするのは禁止”とありますが、学習には使っていいんですね。そして、そういう時に蒸留というテクニックの出番。
別ツイで定番手法と書かれていますが、初学者にとってはとても学びのある解法でした。
参考
- Optical Flow
簡単に言うと、画像間の動きを表す方法。
オプティカルフロー(Optical Flow) — OpenCV-Python Tutorials
- 位相限定相関法 (POC:Phase Only Correlation)
位相特性の相関をとって類似度を計算する。
2枚の画像をFFTして、その積をとって逆フーリエ変換することで求まるらしい。
余談
kaggleが盛り上がってるのって、コンペの中身もさることながら、kernelやdiscussionという場の提供や、強い日本人が積極的に情報発信している、という要因が大きいと思うので、SIGNATEももう少し楽しめる仕掛けを作って欲しいですね。