Home

Awesome

<img src='https://s3.amazonaws.com/drivendata-public-assets/logo-white-blue.png' width='600'> <br><br>

<a href="https://www.drivendata.org/competitions/255/kelp-forest-segmentation/"><img alt="Overhead drone footage of giant kelp canopy. Image Credit: Tom Bell, All Rights Reserved." src="https://drivendata-public-assets.s3.amazonaws.com/kelp-canopy-2.jpg" style=" object-fit: cover; object-position: center; height: 250px; width: 100%; "></a>

Kelp Wanted: Segmenting Kelp Forests

Goal of the Competition

The goal of this challenge was to detect the presence of kelp canopy using Landsat satellite imagery. The labels were generated by citizen scientists participating in the Floating Forests project. Competitors were tasked with performing binary semantic segmetnation on 350x350 tiles that depicted coastlines around the Falkland Islands. Kelp forests are essential marine ecosystems supporting diverse species and offering substantial economic value. Satellite imagery offers a cost-effective and scalable method to map and monitor these habitats, crucial for safeguarding these vital habitats against climate change, overfishing, and unsustainable activities.

What's in this Repository

This repository contains code from winning competitors in the Kelp Wanted: Segmenting Kelp Forests DrivenData challenge. Code for all winning solutions are open source under the MIT License.

Winning code for other DrivenData competitions is available in the competition-winners repository.

Winning Submissions

PlaceTeam or UserPrivate ScorePublic ScoreSummary of Model
1Team Epoch IV: EWitting, hjdeheer, jaspervanselm, JeffLim, tolgakopar0.73320.7237Custom ensemble selection using weighted averaging on raw model logits. Models trained using VGG-based UNet, SwinUNetR, and ConvNext architectures. XGBoost used to generate features. Threshold fitted after weighed ensembling.
2xultaeculcis0.73180.7210Ensemble of UNet and EfficentNet models. Weighted sample of custom tile types like "mostly water" per epoch. Generated 17 extra spectral indices as features.
3ouranos0.72960.7247Ensemble using UNet models with mit_b1, mit_b2, mit_b3 and mit_b4 backbones, encoders from segmentation models pytorch library, as well as UperNet models with convnext_tiny and convenxt_base encoders. Final models used the SWIR, NIR and Green channels. In post-processing, a threshold turned probabilities to masks and a land-sea mask from last image channel was applied to remove predicted masks on land.
Top MATLAB UserTeam KELPAZKA: kaveh9877, AZK900.71760.7044An ensemble of 19 U-Net convolutional neural network models trained using MATLAB. Used different U-Net structures with different number of layers, and several loss functions such as dice loss and focal loss.

Additional solution details can be found in the reports folder inside the directory for each submission.

Winners announcement: Meet the Winners fo the Kelp Wanted Challenge

Benchmark blog post: Kelp Wanted Challenge - Benchmark