The crops it carries

Development preview — not validated every photograph below is a held-out field test image
a grape leaf photographed in the field

Photographed in the wild, not on a lab bench — and held out from every split the models were fitted on.

what the app decided

It called the crop grape at 70%, and the grape disease model then said black rot at 100% — which is what the leaf actually has.

1
Crop
grape70%
the plant really is grape
2
The grape disease model
black rot100%
clears its floor, so it is shown
3
Recorded answer
black rot
what the people who built the corpus wrote down

How the app decides, in three steps

A crop classifier decides what plant it is looking at, then that crop’s disease model runs — and only speaks if it clears its own confidence floor.

The floor is the part that matters. A model that always answers is confidently wrong on everything outside its training; one that must clear a bar can decline instead.

More crops, same chain

Held-out field photographs, with the answer the corpus recorded. The chain named the crop, named the condition, and was confident enough to show it.

How often it is right when it speaks

What matters is not how often a model is right, but how often the answers it puts on the screen are. Of 361 held-out field photographs, 131 were held back by a confidence floor and shown nothing.

74%of shown answers correct, on the four crops above (76 answers, 95% CI 63%–82%)
48%across all nine crops (230 answers, 95% CI 42%–55%)
131 of 361shown nothing rather than a guess
croptest imagesanswered on screenof those, right precision95% CI
grape24161488%64%–97%
strawberry117686%49%–97%
potato25151173%48%–89%
pepper2411873%43%–90%
apple59382566%50%–79%
tomato123612643%31%–55%
corn72652031%21%–43%
cherry106117%3%–56%
peach131100%0%–26%

The faded rows are the crops this page does not showcase. They are here because leaving them out would make the four above look like the whole picture.

What this page does not claim

Rebuilt with python scripts/render_crops_demo.py; the measurement is scripts/measure_covered_crops.py.