Plant health assessment feature


We’ll build our piece of code from API documentation using identify_plant method with added health_all modifier.

for photo in ["animalia1.jpg", "fungi1.jpg", "nutrients1.jpg", "water1.jpg"]:
result = identify_plant([photo])
print(f"photo: {photo}")
print(f" - disorder probability: {result['health_assessment']['disorder_probability']}")
print(f" - disorders: {[d['name'] for d in result['health_assessment']['disorders'] if d['probability'] > 0.4] }")

This gives us following results:

photo: animalia1.jpg
- disorder probability: 0.9624912738800049
- disorders: ['Animalia']
photo: fungi1.jpg
- disorder probability: 0.28298884630203247
- disorders: ['Fungi']
photo: nutrients1.jpg
- disorder probability: 0.5528656244277954
- disorders: ['Nutrients']
photo: water1.jpg
- disorder probability: 0.46365219354629517
- disorders: ['Water', 'Abiotic']

These photos were handpicked so we can demonstrate how well plant health assessment works. The performance on other photos is lower, see the docs.

Evaluation of the current version

The current model can identify exactly 100 different plant health issues.

is_healthy binary classification whether the plant is healthy or not

diseases classification whether the plant has specific disease or not

  • exact match: 49.5%
  • TOP 3 accuracy: 57.1%

The model has been trained mostly on houseplants. We are continually feeding it with fresh photos from our annotation pipeline and will be releasing new models on a monthly basis in 2021.


Please refer to Preliminary documentation on GitHub.

Planned changes in the following months

  • Accuracy improvements; especially regarding garden plants
  • More classes and finer level of health disorder detection; for example Glomerellaceae will be returned instead of just Fungi.
  • Tree-like structure of the results; for example: “Fungi > Sordariomycetes > Glomerellaceae > Colletotrichum”
  • Adding content (e.g. url or description per issue or issue category)