The short answer: our on-device model gets the species exactly right 56.5% of the time. That number is worse than the ones our competitors advertise, and we are publishing it anyway, because the alternative is to quote a figure nobody can check.
The longer answer is more interesting, and it is the reason the app is still useful. The model does not have to answer. It only commits when it is confident, and we measured what happens when it does.
The numbersn = 38,299
That third number is the one a user actually experiences. The model declines most of the time, and hands the photograph to Pl@ntNet and Plant.id instead. When it does commit on its own, it is right 90.3% of the time.
A model that answered everything at 56.5% would be worse than useless, because you could not tell the good answers from the bad ones. Knowing when to shut up is most of the value.
Methodreproduce it
| Model | aiy_plants_V1 (TFLite, 2,102 classes, uint8) |
|---|---|
| Preprocessing | centre-crop, bilinear 224, uint8 RGB, TTA over horizontal mirror |
| Ground truth | iNaturalist research-grade community ID |
| Images | 38,299 across 2,040 species, licensed CC0, CC-BY, CC-BY-SA |
| Threshold | 70.0%. Below it, the app defers to Pl@ntNet and Plant.id. |
The evaluation images are openly licensed and their photographers are credited on the species pages that use them. The full result set is downloadable below. The preprocessing replicates the app exactly, including the test-time mirror averaging, because a benchmark of a model we do not ship would tell you nothing.
What it confuses 1,741 pairs
These are not guesses about what people might mix up. Each row is a pair of species that this model genuinely mistook for one another, and how often.
| Actually | Called it | Rate |
|---|---|---|
| Solanum americanum | Solanum nigrum | 16/20 |
| Toxicodendron rydbergii | Toxicodendron radicans | 16/17 |
| Dichelostemma congestum | Dichelostemma capitatum | 16/19 |
| Nymphaea alba | Nymphaea odorata | 14/20 |
| Pinus monticola | Pinus strobus | 13/20 |
| Solidago altissima | Solidago canadensis | 13/19 |
| Typha angustifolia | Typha latifolia | 12/20 |
| Opuntia engelmannii | Opuntia littoralis | 12/19 |
| Opuntia phaeacantha | Opuntia littoralis | 12/20 |
| Impatiens noli-tangere | Impatiens pallida | 12/19 |
| Zephyranthes drummondii | Zephyranthes chlorosolen | 12/20 |
| Ulmus rubra | Ulmus americana | 12/20 |
| Callirhoe pedata | Callirhoe involucrata | 12/20 |
| Sisyrinchium montanum | Sisyrinchium bellum | 11/20 |
| Conopholis alpina | Conopholis americana | 11/17 |
| Calystegia macrostegia | Convolvulus arvensis | 11/20 |
| Verbascum virgatum | Verbascum blattaria | 11/19 |
| Conocephalum conicum | Lunularia cruciata | 11/19 |
| Tsuga heterophylla | Tsuga canadensis | 11/19 |
| Viola adunca | Viola sororia | 10/17 |
Hardest to identifyby our own model
Species this model gets wrong most often. If you are photographing one of these, take the picture and then check it against a key.
- 1 Toxicodendron rydbergii 0.0%
- 2 Salix exigua 0.0%
- 3 Picea glauca 0.0%
- 4 Dryopteris filix-mas 0.0%
- 5 Vaccinium corymbosum 0.0%
- 6 Solidago altissima 0.0%
- 7 Persea americana 0.0%
- 8 Ulmus rubra 0.0%
- 9 Larix decidua 0.0%
- 10 Phyllocladus trichomanoides 0.0%
- 11 Euonymus fortunei 0.0%
- 12 Carya glabra 0.0%
Why publish thisthe obvious question
Because a number you cannot check is not a number. PictureThis advertises 98% accuracy and publishes no methodology, no dataset, and no error analysis. We have no way to evaluate that claim, and neither do you.
Fine-grained plant identification from a single photograph is a genuinely hard problem. A juvenile Monstera deliciosa and a pothos are close to indistinguishable without a petiole. Two cottonwoods differ by leaf margin. Anyone claiming near-perfect accuracy across tens of thousands of species is either measuring something much easier than what you are doing, or not measuring at all.
So we would rather tell you what the model actually does, show you where it fails, and let the app hand the hard cases to engines that do better. That is also why the app reports its confidence instead of hiding it.