Skip to content
ranbao_deng://
← ~/projects

Competition · AI Cup 2026 · Feb – Mar 2026

AI Cup 2026: bird species from radar

A national AI challenge by Team Epoch and TNO: identify which birds are flying past wind turbines from radar data alone, so turbines can be slowed down only when vulnerable species are at risk. I entered solo, as team “Rambler”, in both the model-performance track and the system-design track.

Result
26th of 89 teams (215 participants) on the final hidden test set
Role
Solo
Data
~5,200 expert-validated radar tracks, Eemshaven wind farm
Links
Challenge ↗

The problem

Wind farms protect birds today mostly through blunt, conservative shutdowns, which cost a lot of energy. Bird radar sees every bird, day and night and in any weather, but it doesn't see species. The challenge data came from a Robin Radar MAX at the Eemshaven wind farm: about 5,200 tracks validated by ornithologists over 18 field visits. In TNO's analysis they fall into 9 bird groups plus radar clutter, and the classes are very uneven: gulls alone make up roughly 2,770 tracks, while cormorants have 74. Each track comes with features such as flight height, radar cross-section, speed, directionality, track quality and length.

Performance track: the classifier

I trained an ensemble of state-of-the-art classifiers on the radar-track features and placed 26th of 89 teams (215 participants) in the organisers' final evaluation on a hidden test set, as a one-person team. The public Kaggle leaderboard was only for validation. I used 6 submissions, against about 30 per team on average (2,672 in total), so the result reflects offline validation rather than tuning to the leaderboard. With strong class imbalance and overlapping radar signatures between clutter and similar bird groups, I combined models with different strengths rather than relying on a single architecture.

Implementation track: from radar track to turbine decision

A good classifier alone doesn't protect any birds. For the second track I designed the system around it: a radar-first pipeline that turns species predictions into targeted, auditable curtailment. It is modular, so each layer can be validated and deployed on its own.

  1. 1 · sense

    Sensing & ingestion

    Bird radar at the turbines, plus weather, time and turbine status. Cameras, microphones and observers are used only to create labels.

  2. 2 · classify

    Species classification

    Species or species-group probabilities per radar track, with calibrated confidence and an explicit “uncertain” outcome.

  3. 3 · decide

    Risk & decision logic

    Per-track collision risk, aggregated over turbines and 10–15 min windows, then fed through simple, auditable rules.

  4. 4 · learn

    Monitoring & learning

    Operator interface, performance monitoring, and active learning that picks which tracks to label next.

Key design choices

  • A label taxonomy that matches reality. Species-level classes only where the radar signature is distinctive, functional groups (for example, small nocturnal songbirds) where it isn't, and “unclassified large/small bird” catch-alls. Species that radar can't separate can still share one mitigation rule.
  • A two-branch model with a simple fallback. A Conv1D + GRU branch reads the track as a time series, and a feed-forward branch reads summary features. A gradient-boosted tree baseline runs in parallel, for interpretability and as a fallback.
  • Calibrated uncertainty. Deep ensembles or Monte-Carlo dropout, plus temperature scaling. Low-confidence tracks are routed to “uncertain” and never trigger automatic action.
  • Evaluation that reflects deployment. Splits by site and season, class-wise metrics, and high recall prioritised for vulnerable species, even at the cost of more false alarms.
Operating modes of the curtailment logic
ModeTriggered whenAction
NormalLow aggregated riskLog species and risk and update dashboards. No action.
AlertRisk above the lower threshold, or a high-priority species nearbyWarn operators and prepare for curtailment.
CurtailHigh-priority species in or near the rotor zone with high confidence, and risk above the upper thresholdSlow down only the affected turbines, for a limited time. Resume automatically once risk stays low.

Rollout is staged, so trust is earned before any automation. Every phase is evaluated on both ecological benefit and lost energy:

  1. Offline analysis
  2. Shadow mode
  3. Assisted operation
  4. Limited automation

What I took from it

It's the same problem as in my research, in a different domain. The data is small, imbalanced and noisy, and the classes overlap physically, so a raw accuracy number says little. What matters is calibrated uncertainty, class-wise recall where it counts, and a decision layer that stays safe when the model is unsure.