|
--- |
|
license: agpl-3.0 |
|
datasets: |
|
- KaraAgroAI/CADI-AI |
|
language: |
|
- en |
|
library_name: yolo |
|
tags: |
|
- object detection |
|
- vision |
|
- yolo |
|
pipeline_tag: object-detection |
|
metrics: |
|
- mape |
|
--- |
|
|
|
|
|
## Cashew Disease Identification with AI (CADI-AI) Model |
|
|
|
### Model Description |
|
|
|
Object detection model trained using [YOLO v5x](https://github.com/ultralytics/yolov5/releases), a SOTA object detection algorithm. |
|
The model was pre-trained on the Cashew Disease Identification with AI (CADI-AI) train set (3788 images) at a resolution of 640x640 pixels. |
|
The CADI-AI dataset is available via [Kaggle](https://www.kaggle.com/datasets/karaagroaiprojects/cadi-ai) and |
|
[HuggingFace](https://huggingface.co/datasets/KaraAgroAI/CADI-AI). |
|
|
|
|
|
## Intended uses |
|
|
|
You can use the raw model for object detection on cashew images. |
|
|
|
The model was initially developed to inform users whether cashew trees suffer from: |
|
- pest infection, i.e. damage to crops by insects or pests |
|
- disease, i.e. attacks on crops by microorganisms |
|
- abiotic stress caused by non-living factors (e.g. environmental factors like weather or soil conditions or the lack of mineral nutrients to the crop). |
|
|
|
KaraAgro AI developed the model for the initiatives |
|
[Market-Oriented Value Chains for Jobs & Growth in the ECOWAS Region (MOVE)](https://www.giz.de/en/worldwide/108524.html) and |
|
[FAIR Forward - Artificial Intelligence for All](https://www.bmz-digital.global/en/overview-of-initiatives/fair-forward/). |
|
Both initiatives are implemented by the Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) on behalf of the German Federal Ministry for Economic Cooperation and Development (BMZ). |
|
|
|
### How to use |
|
|
|
- Load model and perform prediction: |
|
|
|
```bash |
|
pip install -U ultralytics |
|
``` |
|
|
|
```python |
|
import torch |
|
|
|
# load model |
|
model = torch.hub.load('ultralytics/yolov5', 'custom', path='CADI-AI/yolov5_0.65map_exp7_best.pt', force_reload=True) |
|
|
|
# Images |
|
img = ['/path/to/your/image.jpg']# batch of images |
|
|
|
# set model parameters |
|
# set Non-Maximum-Suppression(NMS) threshold to define |
|
# minimum confidence score that a bounding box must have in order to be kept. |
|
model.conf = 0.20 # NMS confidence threshold |
|
|
|
# perform inference |
|
results = model(img, size=640) |
|
|
|
# Results |
|
results.print() |
|
|
|
results.xyxy[0] # img1 predictions (tensor) |
|
results.pandas().xyxy[0] # img1 predictions (pandas) |
|
|
|
# parse results |
|
predictions = results.pred[0] |
|
boxes = predictions[:, :4] # x1, y1, x2, y2 |
|
scores = predictions[:, 4] |
|
categories = predictions[:, 5] |
|
|
|
# show detection bounding boxes on image |
|
results.show() |
|
|
|
# save results into "results/" folder |
|
results.save(save_dir='results/') |
|
``` |
|
|
|
- Finetune the model on your custom dataset: |
|
|
|
```bash |
|
yolov5 train --data data.yaml --img 640 --batch 16 --weights KaraAgroAI/CADI-AI --epochs 10 |
|
``` |
|
|
|
### Model performance |
|
|
|
| Class | Precision | Recall | mAP@50 | mAP@50-95 | |
|
| --- | --- | --- | --- | --- | |
|
| all | 0.663 | 0.632 | 0.648 | 0.291 | |
|
| insect | 0.794 | 0.811 | 0.815 | 0.39 | |
|
| abiotic | 0.682 | 0.514 | 0.542 | 0.237 | |
|
| disease | 0.594 | 0.571 | 0.588 | 0.248 | |
|
|
|
### Limitations of the Model |
|
The model has a few limitations that affect its performance in distinguishing between the disease class and the abiotic class. |
|
The primary challenge lies in the similarity between these two classes within a typical farm setting. |
|
The model may encounter difficulties in accurately differentiating between them due to their overlapping characteristics. |
|
This limitation is an inherent challenge in the dataset and can impact the model's accuracy when classifying these classes. |
|
|
|
However, it is worth noting that the model exhibits strong performance when it comes to the insect class. |
|
This is attributed to the distinct characteristics of insect class, which make them easier to identify and classify accurately. |
|
|
|
### Demo |
|
[CADI-AI Spaces demonstration](https://huggingface.co/spaces/KaraAgroAI/CADI-AI) |
|
|
|
### Project Repo |
|
If you want to know how the model and dataset has been used further for the GIZ-funded activity, please have a look at: |
|
- The [GitHub repository](https://github.com/karaagro/cadi-ai) for the CADI AI desktop application |
|
|
|
### Example prediction |
|
|
|
<div align="center"> |
|
<img width="640" alt="KaraAgroAI/CADI-AI" src="https://huggingface.co/KaraAgroAI/CADI-AI/resolve/main/sample.jpg"> |
|
</div> |