|
# π§ Beans-Image-Classification-AI-Model |
|
|
|
A fine-tuned image classification model trained on the Beans dataset with 3 classes: angular_leaf_spot, bean_rust, and healthy. This model is built using Hugging Face Transformers and the ViT (Vision Transformer) architecture and is suitable for educational use, plant disease classification tasks, and image classification experiments. |
|
|
|
--- |
|
|
|
|
|
## β¨ Model Highlights |
|
|
|
- π Base Model: google/vit-base-patch16-224-in21k |
|
- π Fine-tuned: Beans dataset |
|
- πΏ Classes: angular_leaf_spot, bean_rust, healthy |
|
- π§ Framework: Hugging Face Transformers + PyTorch |
|
- π¦ Preprocessing: AutoImageProcessor from Transformers |
|
|
|
--- |
|
|
|
## π§ Intended Uses |
|
|
|
- β
Educational tools for training and evaluation in agriculture and plant disease detection |
|
- β
Benchmarking vision transformer models on small datasets |
|
- β
Demonstration of fine-tuning workflows with Hugging Face |
|
|
|
--- |
|
|
|
## π« Limitations |
|
|
|
- β Not suitable for real-world diagnosis in agriculture without further domain validation |
|
- β Not robust to significant background noise or occlusion in images |
|
- β Trained on small dataset, may not generalize beyond bean leaf diseases |
|
|
|
--- |
|
|
|
π Input & Output |
|
|
|
- Input: RGB image of a bean leaf (expected size 224x224) |
|
- Output: Predicted class label β angular_leaf_spot, bean_rust, or healthy |
|
|
|
--- |
|
|
|
## ποΈββοΈ Training Details |
|
|
|
| Attribute | Value | |
|
|--------------------|----------------------------------| |
|
| Base Model |`google/vit-base-patch16-224-in21k| |
|
| Dataset |Beans Dataset (train/val/test) | |
|
| Task Type | Image Classification | |
|
| Image Size | 224 Γ 224 | |
|
| Epochs | 3 | |
|
| Batch Size | 16 | |
|
| Optimizer | AdamW | |
|
| Loss Function | CrossEntropyLoss | |
|
| Framework | PyTorch + Transformers | |
|
| Hardware | CUDA-enabled GPU | |
|
|
|
--- |
|
|
|
## π Evaluation Metrics |
|
|
|
|
|
| Metric | Score | |
|
| ----------------------------------------------- | ----- | |
|
| Accuracy | 0.98 | |
|
| F1-Score | 0.99 | |
|
| Precision | 0.98 | |
|
| Recall | 0.99 | |
|
|
|
|
|
--- |
|
|
|
--- |
|
π Usage |
|
```python |
|
from transformers import AutoImageProcessor, AutoModelForImageClassification |
|
from PIL import Image |
|
import torch |
|
|
|
model_name = "AventIQ-AI/Beans-Image-Classification-AI-Model" |
|
|
|
processor = AutoImageProcessor.from_pretrained(model_name) |
|
model = AutoModelForImageClassification.from_pretrained(model_name) |
|
model.eval() |
|
|
|
def predict(image_path): |
|
image = Image.open(image_path).convert("RGB") |
|
inputs = processor(images=image, return_tensors="pt").to(model.device) |
|
with torch.no_grad(): |
|
outputs = model(**inputs) |
|
preds = torch.argmax(outputs.logits, dim=1) |
|
return model.config.id2label[preds.item()] |
|
|
|
# Example |
|
print(predict("example_leaf.jpg")) |
|
|
|
|
|
``` |
|
--- |
|
|
|
- π§© Quantization |
|
- Post-training static quantization applied using PyTorch to reduce model size and accelerate inference on edge devices. |
|
|
|
---- |
|
|
|
π Repository Structure |
|
``` |
|
. |
|
beans-vit-finetuned/ |
|
βββ config.json β
Model architecture & config |
|
βββ pytorch_model.bin β
Model weights |
|
βββ preprocessor_config.json β
Image processor config |
|
βββ special_tokens_map.json β
(Auto-generated, not critical for ViT) |
|
βββ training_args.bin β
Training metadata |
|
βββ README.md β
Model card |
|
|
|
``` |
|
--- |
|
π€ Contributing |
|
|
|
Open to improvements and feedback! Feel free to submit a pull request or open an issue if you find any bugs or want to enhance the model. |
|
|
|
|
|
|