agroeye / README.md
eligapris's picture
Upload folder using huggingface_hub
ab59988 verified
---
language:
- en
thumbnail: "/assets/image.jpg"
tags:
- image-classification
- computer-vision
- agriculture
- maize-diseases
- agroeye
- eligapris
- grey
license: mit
metrics:
- accuracy
pipeline_tag: image-classification
---
# agroEye
This model is designed to detect diseases in maize (corn) leaves using computer vision techniques.
## Model description
The agroEye is a convolutional neural network (CNN) trained to classify images of maize leaves into four categories: Healthy, Gray Leaf Spot, Blight, and Common Rust. It aims to assist farmers and agricultural professionals in quickly identifying common maize diseases, potentially leading to earlier interventions and improved crop management.
### Intended uses & limitations
The model is intended for use as a diagnostic tool to assist in the identification of maize leaf diseases. It should be used in conjunction with expert knowledge and not as a sole means of diagnosis. The model's performance may vary depending on image quality, lighting conditions, and the presence of diseases or conditions not included in the training dataset.
**Limitations:**
- The model is trained on a specific dataset and may not generalize well to significantly different growing conditions or maize varieties.
- It is not designed to detect diseases other than the four categories it was trained on.
- Performance on images with multiple diseases present has not been extensively tested.
- The model should not be used as a replacement for professional agricultural advice.
### How to use
Here's a basic example of how to use the model:
```python
import tensorflow as tf
from PIL import Image
import numpy as np
import json
import tensorflow as tf
from huggingface_hub import snapshot_download
# Download the entire model directory
model_dir = snapshot_download(repo_id="eligapris/agroeye",
local_dir="path/to/model")
# Load the model
model = tf.saved_model.load('path/to/model')
# Now you can use the model for inference
# Load and preprocess the image
img = Image.open('/path/to/image.jpg')
img = img.resize((300, 300 * img.size[1] // img.size[0]))
img_array = np.array(img)[None]
# Make prediction
inp = tensorflow.constant(img_array, dtype='float32')
prediction = model(inp)[0].numpy()
# Load class names
with open('path/to/model/classes.json', 'r') as f:
class_names = json.load(f)
# Get the predicted class
predicted_class = list(class_names.keys())[prediction.argmax()]
print(f"Predicted class: {predicted_class}")
```
Here's a detailed output of model prediction:
```python
import tensorflow as tf
from PIL import Image
import numpy as np
import json
import tensorflow as tf
from huggingface_hub import snapshot_download
# Download the entire model directory
model_dir = snapshot_download(repo_id="eligapris/agroeye",
local_dir="path/to/model")
# Load the model
model = tf.saved_model.load('path/to/model')
# Now you can use the model for inference
# Load and preprocess the image
img = Image.open('/path/to/image.jpg')
img = img.resize((300, 300 * img.size[1] // img.size[0]))
img_array = np.array(img)[None]
# Make prediction
inp = tensorflow.constant(img_array, dtype='float32')
prediction = model(inp)[0].numpy()
# Load class names and details
with open('model/classes_detailed.json', 'r') as f:
data = json.load(f)
class_names = data['classes']
class_details = data['details']
# Get the predicted class
predicted_class = list(class_names.keys())[prediction.argmax()]
predicted_class_label = class_names[predicted_class]
print(f"Predicted class: {predicted_class} (Label: {predicted_class_label})")
# Print detailed information about the predicted class
if predicted_class in class_details:
details = class_details[predicted_class]
print("\nDetailed Information:")
for key, value in details.items():
if isinstance(value, list):
print(f"{key.capitalize()}:")
for item in value:
print(f" - {item}")
else:
print(f"{key.capitalize()}: {value}")
# Print general notes
print("\nGeneral Notes:")
for note in data['general_notes']:
print(f"- {note}")
```
### Test the colab
```
https://colab.research.google.com/drive/13-S-obR6MZDDP5kgj6ytsbFiNKzzfXbp
```
## Ethical considerations
- The model's predictions should not be used as the sole basis for agricultural decisions that may impact food security or farmers' livelihoods.
- There may be biases in the training data that could lead to reduced performance for certain maize varieties or growing conditions not well-represented in the dataset.
- Users should be made aware of the model's limitations and the importance of expert validation.
## Model Card Authors
Grey
## Model Card Contact
eligapris