Spring Annuals Trial Harness
A working technical harness: annotate tiny plants, run many models, and get a defensible count with its accuracy measured.
Season context
The dates this work is indexed against.
Condition 111 turns on a ratio: the pit-footprint count against the wider Dunstan Ecological District count.
The physics first
A 10 mm plant on a DJI Mavic 3E — wide, nadir, nominal optics.
Why this app reports millimetres per pixel, not altitude. Altitude on its own is not a measurement — it is a number about an aircraft. Ten metres on a Zenmuse P1 with a 50 mm prime resolves finer than three metres on a Mavic 3E wide, so a result quoted at “10 m” transfers to nothing. Millimetres per pixel is the quantity that survives a change of aircraft, lens or flight, and it is the axis every accuracy claim in this harness is plotted against. Of the 7 cameras in the registry, this card shows the one Keith is most likely to fly.
The usable figure is the nominal pixel count divided by 1.5: lens MTF, Bayer demosaicing, JPEG compression and motion blur all cost resolution the formula does not know about. Plan on the usable number, not the nominal one.
What is seeded
Everything below ships with the demo. No client imagery is present.
Synthetic scenes exist so accuracy can be measured before the September imagery lands: the generator knows where every plant is, including the rock flecks and lichen deliberately planted to be not counted. Real frames exist so nothing here is only ever tested against its own renderer.
Real-frame attribution: CoFly-WeedDB (Krestenitis et al.), DJI Phantom 4 Pro over cotton field, Larissa, Greece — zenodo.org/records/6697343
4 species are modelled. The fourth is unconfirmed and is labelled to confirm with Habitat NZ wherever it appears.
The model bench
16 ranked arms on the bench, plus 1 adjudicator that never counts.
Lanes without keys run published-benchmark profiles, labelled as such — on the leaderboard, in the run manifest and in every export. Access is computed from the environment at request time, never asserted, so an arm flips to LIVE the moment its key arrives and nothing else changes.
Suggested 10-minute walkthrough
Four steps, in this order — each one produces the input the next one needs.
- 1Annotate three plants on a real frame
Two clicks per plant on a CoFly UAV frame. Those boxes become the exemplars the visual-prompt lane consumes, and a single keystroke marks a schist chip as a hard negative.
Open the workbench → - 2Run the bake-off
Pick images and models, tile at 512 px with overlap, and every cell records what actually ran — live client or published-benchmark profile.
Configure a run → - 3Read the evidence chart
Precision, recall and F1 at each model's own best-F1 threshold, plotted against millimetres per pixel. This is the chart a consent panel is entitled to ask for.
See the evidence → - 4Check the flight advisor
Turn the accuracy you just measured into a flight plan: altitude, GSD, footprint, frames per hectare, and a verdict per species.
Plan a flight →