S2-PhenoCNN

A compact dual-head 1D CNN that predicts crop type (corn, rice, soybean) and phenophase (7 growth stages) from Sentinel-2 satellite time series.

These are the released weights from the ITU 2026 AI and Space Computing Challenge Track 1 entry, which scored 98.23 on the algorithm leaderboard and received a Bronze Award on the combined score.

Code, training pipeline, and full documentation are on GitHub: kavayam/s2-phenocnn. This repository hosts the weights; the GitHub repository is the source of truth for everything else.

What this is

  • Architecture: dual-head 1D convolutional network, 73,866 parameters.
  • Inputs: Sentinel-2 L2A time series, read as an unfilled (cloud-gapped) series on a day-of-year grid β€” no interpolation or gap-filling step.
  • Outputs: one of three crop types, and (for rice) one of seven phenophases.
  • Footprint: small enough for CPU inference; the released weights were both trained and evaluated on CPU.

The design β€” classifying directly from gapped series rather than reconstructing missing observations β€” follows Zhao et al. (2021), Evaluation of Five Deep Learning Models for Crop Type Mapping Using Sentinel-2 Time Series Images with Missing Information, Remote Sensing 13(14):2790 (https://doi.org/10.3390/rs13142790).

Files

File Description
cnn1d_best.pt Trained weights (73,866 parameters).
cnn1d_encoders.pkl Label encoders β€” required to decode outputs into crop and phenophase names.
cnn1d_meta.json Training provenance and the preprocessing configuration inference reads back.

These three files must stay together. Inference reads the meta sidecar to reconstruct the matching input pipeline; using the weights without it will fail or silently run the wrong preprocessing. Checksums are in the GitHub repository.

How to use it

The inference and training code, the expected data layout, and worked commands are in the GitHub repository. In brief: clone it, place the weights under models/cnn1d/, and run inference on a Sentinel-2 tile directory.

Scope β€” please read before relying on it

The 98.23 figure is the competition's own algorithm metric on its own held-out data. It is not a general accuracy figure, and it does not describe performance on other regions, crops, or seasons.

The model was trained on farmland across north-east China, for three crops and seven rice phenophases. Several parts of the pipeline are specific to that setting β€” a spatial voting step, the three-class crop head, and an assumption of a single growing cycle. The GitHub repository includes a scope document (docs/SCOPE.md) that sets out what transfers to other data and what does not. If you plan to use this on your own imagery, read it first.

If you want to retrain on your own data, public Sentinel-2 crop-type datasets such as TimeSen2Crop and Sen4AgriNet are a reasonable starting point; the training pipeline on GitHub documents the expected format.

License

Apache 2.0. The competition data is not included and is not ours to distribute.

Citation

If you use this model, please cite the repository. A CITATION.cff with author and version details is on GitHub.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support