| # π§ 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. | |