I’m definitely looking forward to seeing the winning solutions, well done @vecxoz@KarimAmer and Daniel_FG! (I can only tag two users…)
My final solution (9th place) was a carefully tuned EfficientNetB3 (ensemble of crossfold) then a Kalman Filter. This was averaged with a 3D CNN with a 32 storm lookback. I attempted a CNN + LSTM, but started on that too late to get good results. Lesson learned.
" I attempted a CNN + LSTM, but started on that too late to get good results. Lesson learned."
you can freeze the CNN part and just use CNN to do image embeddings. Then train a LSTM on the embeddings to see quick results. If kaman filter works, then LSTM should work. THis roughly give you an estimate of the performance of LSTM.
After that, you can unfreeze the CNN to finetune (or retrain from scratch if desired).
Thanks to the organisers and congratulations to all the competitors. Looking forward to learn new things from the winning solutions.
Briefly, my approach consists of an ensemble of 10 models weighted by their performance on the public leader board. Models share the same architecture but were trained using different data splits.
Regarding the architecture I have used a ResNet18 (due to memory limitations) to extract feature vectors for every frame. Thereafter, a BiLSTM has been used to compute accurate speed variations. Finally, both forward and backward BiLSTM’s hidden outputs are passed through a LSTM to forecast the wind speed at the last time-step.
Models have been trained using 25 x 366 x 366 frames. Moreover, a data augmentation technique that increases/reduce the frame-rate from 0 to 3 has been used. I have also applied TTA (rot90 + flips)
Hope to have time this month to clean my code up and upload it to GitHub.