Kaggleの雲コンペ(Understanding Clouds from Satellite Images)についての記録
Kaggleの雲コンペに参加したので、実施事項や思ったことを記録しておきます。
1. 雲コンペ
衛星写真にうつった雲を種類ごとに検出して分類するタスクについて、その精度を競います。
Understanding Clouds from Satellite Images | Kaggle
特徴は以下のとおりです。
- 検出する雲の種類は4種類(fish, flower, gravel, sugar)。
- 学習用データとして衛星画像、画像中の雲の位置・種類が与えられます。テストデータとして衛星画像のみが与えられるので、雲の位置・種類を推定する必要があります。
- いわゆるSegmentationタスクにあたり、Deep learningの得意領域です。
わかりやすく説明してくれているブログがあったのでリンクを貼っておきます。
Kaggle 雲コンペ 反省録 - 機械学習 Memo φ(・ω・ )
2. 自分の解法
167位/1538チームという結果でした。
SegmentationモデルとしてはDeeplab v3+ (MobileNetV2バックボーン)を使いました。これを選んだ理由は、モデルサイズが小さい割に精度が良かったからです(PCのスペックがしょぼくて大きいモデル使えない。。)。resnet系バックボーンのUNETはGPUのメモリが足りなくてまともに使えなかったけど、Deeplab v3+ (MobileNetV2バックボーン)は使える程度に動いてくれました。ネットワーク構造も色々工夫されてて個人的に好みです笑
概要とコードは以下のとおりです。
GitHub - statsu1990/kaggle_understanding_clouds: Kaggle competition Understanding Clouds from Satellite Images
Solution overview
- ranking : 167th / 1538 teams
- score : Public 0.65691 / Private 0.65430
- method : segmentation using deep learning
- segmentation model : deeplab v3+ (backbone MobileNetV2)
https://github.com/bonlime/keras-deeplab-v3-plus - optimizer : RAdam
https://pypi.org/project/keras-rectified-adam/ - loss : binary cross entropy + dice loss
- data augmentation : h and v flip, ShiftScaleRotate, RandomBrightness
https://github.com/albumentations-team/albumentations - test time augmentation : h and v flip, h shift x2, v shift x2, rotation 180
https://github.com/qubvel/tta_wrapper - ensemble : 6 model
- segmentation model : deeplab v3+ (backbone MobileNetV2)
3. 上位の解法
全員Deep learning系のSegmentationモデルを使っていました。具体的にはUnet, FPNが多い。上位勢は当然のごとく大きなモデル使ってますね。
https://www.kaggle.com/c/understanding_cloud_organization/discussion/118080
https://www.kaggle.com/c/understanding_cloud_organization/discussion/118255
https://www.kaggle.com/c/understanding_cloud_organization/discussion/118016
気になった解法は以下とおりです。
雲の位置を検出するように事前学習
画像の白い部分(≒雲)を検出するようにモデルを事前学習した後に、指定の雲のセグメンテーションモデルを学習させる。たしかにimagenetとかの事前学習モデルを使うより良さそうですね。
https://www.kaggle.com/c/understanding_cloud_organization/discussion/118017衛星写真に写った明るい部分(太陽光?)を補正
衛星画像には太陽光?由来の明るい帯のような部分があります。本来の背景色を推定し、この部分を補正していました。すごい
https://www.kaggle.com/c/understanding_cloud_organization/discussion/118018