| --- |
| datasets: |
| - AI-Lab-Makerere/beans |
| language: en |
| library_name: timm |
| license: apache-2.0 |
| pipeline_tag: image-classification |
| tags: |
| - image-classification |
| - classifier-lab |
| - embry-os |
| - automated-ml |
| - beans |
| - plant-disease |
| model-index: |
| - name: efficientnet_b0 |
| results: |
| - task: |
| type: image-classification |
| dataset: |
| name: Beans |
| type: AI-Lab-Makerere/beans |
| metrics: |
| - type: f1 |
| value: 0.9218 |
| name: Macro F1 |
| - type: accuracy |
| value: 0.9219 |
| --- |
| |
| # Model Card for grahamaco/beans-classifier |
|
|
| <!-- Provide a quick summary of what the model is/does. --> |
|
|
|
|
|
|
| ## Model Details |
|
|
| ### Model Description |
|
|
| <!-- Provide a longer summary of what this model is. --> |
|
|
| Bean leaf disease classifier trained with self-improving Classifier Lab pipeline. |
|
|
| - **Developed by:** Graham Anderson (Embry OS) |
| - **Funded by [optional]:** [More Information Needed] |
| - **Shared by [optional]:** [More Information Needed] |
| - **Model type:** [More Information Needed] |
| - **Language(s) (NLP):** en |
| - **License:** apache-2.0 |
| - **Finetuned from model [optional]:** [More Information Needed] |
|
|
| ### Model Sources [optional] |
|
|
| <!-- Provide the basic links for the model. --> |
|
|
| - **Repository:** https://github.com/grahamaco/embry-os |
| - **Paper [optional]:** [More Information Needed] |
| - **Demo [optional]:** [More Information Needed] |
|
|
| ## Uses |
|
|
| <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> |
|
|
| ### Direct Use |
|
|
| <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. --> |
|
|
| [More Information Needed] |
|
|
| ### Downstream Use [optional] |
|
|
| <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app --> |
|
|
| [More Information Needed] |
|
|
| ### Out-of-Scope Use |
|
|
| <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. --> |
|
|
| [More Information Needed] |
|
|
| ## Bias, Risks, and Limitations |
|
|
| <!-- This section is meant to convey both technical and sociotechnical limitations. --> |
|
|
| [More Information Needed] |
|
|
| ### Recommendations |
|
|
| <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. --> |
|
|
| Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. |
|
|
| ## How to Get Started with the Model |
|
|
| Use the code below to get started with the model. |
|
|
| [More Information Needed] |
|
|
| ## Training Details |
|
|
| ### Training Data |
|
|
| <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. --> |
|
|
| [More Information Needed] |
|
|
| ### Training Procedure |
|
|
| <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. --> |
|
|
| #### Preprocessing [optional] |
|
|
| [More Information Needed] |
|
|
|
|
| #### Training Hyperparameters |
|
|
| - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision --> |
|
|
| #### Speeds, Sizes, Times [optional] |
|
|
| <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. --> |
|
|
| [More Information Needed] |
|
|
| ## Evaluation |
|
|
| <!-- This section describes the evaluation protocols and provides the results. --> |
|
|
| ### Testing Data, Factors & Metrics |
|
|
| #### Testing Data |
|
|
| <!-- This should link to a Dataset Card if possible. --> |
|
|
| [More Information Needed] |
|
|
| #### Factors |
|
|
| <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. --> |
|
|
| [More Information Needed] |
|
|
| #### Metrics |
|
|
| <!-- These are the evaluation metrics being used, ideally with a description of why. --> |
|
|
| [More Information Needed] |
|
|
| ### Results |
|
|
| [More Information Needed] |
|
|
| #### Summary |
|
|
|
|
|
|
| ## Model Examination [optional] |
|
|
| <!-- Relevant interpretability work for the model goes here --> |
|
|
| [More Information Needed] |
|
|
| ## Environmental Impact |
|
|
| <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly --> |
|
|
| Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). |
|
|
| - **Hardware Type:** [More Information Needed] |
| - **Hours used:** [More Information Needed] |
| - **Cloud Provider:** [More Information Needed] |
| - **Compute Region:** [More Information Needed] |
| - **Carbon Emitted:** [More Information Needed] |
|
|
| ## Technical Specifications [optional] |
|
|
| ### Model Architecture and Objective |
|
|
| [More Information Needed] |
|
|
| ### Compute Infrastructure |
|
|
| [More Information Needed] |
|
|
| #### Hardware |
|
|
| [More Information Needed] |
|
|
| #### Software |
|
|
| [More Information Needed] |
|
|
| ## Citation [optional] |
|
|
| <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. --> |
|
|
| **BibTeX:** |
|
|
| [More Information Needed] |
|
|
| **APA:** |
|
|
| [More Information Needed] |
|
|
| ## Glossary [optional] |
|
|
| <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. --> |
|
|
| [More Information Needed] |
|
|
| ## More Information [optional] |
|
|
| [More Information Needed] |
|
|
| ## Model Card Authors [optional] |
|
|
| [More Information Needed] |
|
|
| ## Model Card Contact |
|
|
| [More Information Needed] |
|
|
| ## Results (Verified on Held-Out Test Set) |
|
|
| **128 test images, never seen during training or validation.** |
|
|
| | Metric | Value | |
| |--------|-------| |
| | **Macro F1** | **0.9218** | |
| | **Accuracy** | **0.9219** | |
| | **Holdout Gate** | **PASSED >= 0.90** | |
|
|
| ### Per-Class Metrics |
|
|
| | Class | Precision | Recall | F1 | Support | |
| |-------|-----------|--------|----|---------| |
| | angular_leaf_spot | 0.92 | 0.84 | 0.88 | 43.0 | |
| | bean_rust | 0.87 | 0.95 | 0.91 | 43.0 | |
| | healthy | 0.98 | 0.98 | 0.98 | 42.0 | |
| |
| |
| ### Confusion Matrix |
| |
| | | angular_leaf_spot | bean_rust | healthy | |
| |---|---|---|---| |
| | **angular_leaf_spot** | 36 | 6 | 1 | |
| | **bean_rust** | 2 | 41 | 0 | |
| | **healthy** | 1 | 0 | 41 | |
| |
| |
| ## Self-Improvement Loop |
| |
| The classifier was trained iteratively until the holdout gate (F1 >= 0.90) was met. |
| Each round adjusts hyperparameters and augmentation strategy based on prior failures. |
| |
| | Round | Epochs | LR | Augment | Val F1 | Test F1 | Gate | |
| |-------|--------|----|---------|--------|---------|------| |
| | 1 | 10 | 0.0002 | 1 | 0.9328 | 0.8762 | FAILED | |
| | 2 | 15 | 0.0001 | 2 | 0.9240 | 0.9218 | PASSED | |
| |
| |
| **Winning configuration**: Round 2 |
| |
| ## Architecture |
| |
| - **Backbone**: efficientnet_b0 (pretrained on ImageNet) |
| - **Framework**: PyTorch + timm |
| - **Classes**: angular_leaf_spot, bean_rust, healthy |
| - **Image size**: 224x224 |
| |
| ## Training Pipeline (Classifier Lab) |
| |
| 1. **Research** -- Identified EfficientNet B0 as candidate |
| 2. **Data** -- Beans dataset from HuggingFace (1034 train, 133 val, 128 test) |
| 3. **Self-improvement loop** -- Round 1 failed gate (F1 0.876), adjusted LR and augmentation, Round 2 passed (F1 0.922) |
| 4. **Evaluate** -- Held-out test set (128 images, never seen during training) |
| 5. **Promote** -- Gate passed, pushed to HuggingFace with model checkpoint |
| |
| ## License |
| |
| Apache 2.0 |
| |