TideTrace oil slick segmenter
Three class semantic segmentation of Sentinel-1 SAR: sea, look-alike, mineral oil. Trained for TideTrace, the SIH26143 oil spill attribution console.
Files
| file | what it is |
|---|---|
oil_unet_best.pt |
the shipped checkpoint, weights and metadata, kept under 80 MB |
oil_unet_best.report.json |
metrics, and the dB threshold baseline on the same tiles |
last_state.pt |
optimiser state for resuming a Kaggle session, not needed for inference |
training_state.json |
epoch and best metrics, small enough to poll |
code/app/ |
the source snapshot that produced the weights |
Architecture
- UnetPlusPlus, encoder
timm-efficientnet-b0, ImageNet initialised - 3 classes, 512 tiles, VV and VH in dB with VV repeated to a third channel
- Weighted cross entropy plus soft Dice, oil class weighted 2.5
- AdamW 1e-4, cosine schedule, AMP
The checkpoint carries its own architecture and normalisation statistics, so inference never guesses what it was trained on.
Honest evaluation
The report file always prints the trained model next to the published -22 dB dark patch baseline, measured on identical validation tiles. A model that does not beat that baseline is not worth shipping, and the comparison is there so anyone can check rather than take it on trust.
Intended use
Detecting candidate oil slicks in SAR for investigation. Output is a ranked likelihood, not proof that any vessel discharged anything.
Licence
MIT for the weights and code. Training data is CC BY 4.0 from Zenodo; cite it.