# 🧠 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.