y_megane.log

日々の勉強や改善ネタの備忘。

SIGNATE地震コンペ解法まとめ(The 1st Tellus Satellite Challenge)

SIGNATEのThe 1st Tellus Satelite Challange(土砂崩れコンペ)に参加していました。
結果は散々だったので、他の参加者の解法を知り、いろいろと学ぼうと思ったのですが、SIGNATEにはkaggleと違ってKernelもDiscussionもありません。また参加者自体も少ないため、あまり情報が出回りません。

ということで、拾ってきたTellusコンペの解法をまとめました。
ただ、やはり参加者が少ないのか、ほとんど情報はありませんでした...

公式の結果発表会

表彰式より、上位1~3位のどなたかの資料?あるいはそれを総括したもの?
推測を交えて文章化↓

  • 40px * 40pxの元画像を、ファイル名に従って連結して400px * 400pxにする
  • Optical Flow:BeforeとAfterの動きを求める
  • DIC( デジタル画像相関法) :検索すると位相限定相関が出るのでこれ?画像の位置ずれを求めるらしい。
  • Multi channel:Before,After、上の手法の計算結果などをチャンネルとして重ねる?
  • インバランス対策:正例と負例の偏りが激しいので、データ量を調整する?

Twitterより その1

  • 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

オプティカルフロー (optical flow)

  • 位相限定相関法 (POC:Phase Only Correlation)

位相特性の相関をとって類似度を計算する。
2枚の画像をFFTして、その積をとって逆フーリエ変換することで求まるらしい。

位相限定相関法 « Rest Term

余談

kaggleが盛り上がってるのって、コンペの中身もさることながら、kernelやdiscussionという場の提供や、強い日本人が積極的に情報発信している、という要因が大きいと思うので、SIGNATEももう少し楽しめる仕掛けを作って欲しいですね。