Seismic Facies Identification Challenge
1st place solution
Solution of the 2nd stage of Seismic facies identification challenge
- As this is multiclass segmentation task, UNet model with 7 output layers is used (one for each class)
- Data is kind of homogeneous, so tiny Efficientnetb0 backbone is enough.
- As we have GT labels (TRAIN) near to TEST area, task can be solved via extrapolation
- Data is very homogeneous and even such small model as Efficientnetb0 is overfitting, so we need a lot of augmentations, best way to achive this is to use random slices (black lines of red train area), not only along X/Y axis.
- As mentioned above, we have extrapolation task, so model should know how to extrapolate, so we feed two layers to model: one with data and second with croped mask, and train it to predict full mask
Prediction stage (for the 2nd stage of challenge)
- First step was to manualy label last slice of the TEST1 set (as we solve extrapolation task and predictions for the TEST1 set was not so good).
- Next step is to take masks (TRAIN1+TEST1) as input and predict next 32px (in TEST2) for each xline
- Use two different kernels to smooth predictions for the whole inline (onestl5/ y this step can be skiped to have more production ready solution as in gives very small impact on score)
- Use prediction as input and go to step 2 untill the end of TEST2
Solution is public now:
Loved the fact that you took random slices for generalization during training. As a seismic interpreter that is actually one of the backbones of seismic interpretation and it totally makes sense to translate it to this kind of problems. Great insights and congratulations on your 1st Place!
Comment deleted by leocd.
🤯 What an idea! I’ve tried using flownet (to make extra data) for the first round but the extrapolation results kinda noisy..
Your method is very creative, Gotta reproduce it soon 👍
Congrats on your 1st place!