Dokumentation (english)

Image Classification - ResNet

Classify plant diseases using ResNet-18 on the Beans dataset

This case study demonstrates training a ResNet-18 convolutional neural network to classify bean plant diseases. ResNet (Residual Network) uses skip connections to enable training of very deep networks, making it highly effective for computer vision tasks.

Dataset: Beans Plant Disease

  • Source: HuggingFace (AI-Lab-Makerere/beans)
  • Type: Image classification
  • Size: 1,295 images
  • Classes: 3 (Angular Leaf Spot, Bean Rust, Healthy)
  • Resolution: 500x500 pixels
  • Format: RGB color images

Model Configuration

{
  "model": "resnet18",
  "category": "computer_vision",
  "subcategory": "image-classification",
  "model_config": {
    "pretrained": true,
    "num_classes": 3,
    "batch_size": 32,
    "epochs": 15,
    "learning_rate": 0.001,
    "optimizer": "adam",
    "image_size": [224, 224]
  }
}

Training Results

Training Progress

Loss and accuracy curves over 15 epochs:

Keine Plot-Daten verfügbar

Class Performance

Per-class precision, recall, and F1 scores:

Keine Plot-Daten verfügbar

Confusion Matrix

Model predictions vs actual classes:

Keine Plot-Daten verfügbar

Sample Predictions

Example predictions with confidence scores:

Keine Plot-Daten verfügbar

Common Use Cases

  • Agricultural Disease Detection: Early identification of crop diseases
  • Medical Imaging: Classify X-rays, MRIs, CT scans
  • Quality Control: Detect defects in manufactured products
  • Wildlife Monitoring: Identify animal species from camera traps
  • Satellite Imagery: Land use classification, deforestation detection
  • Retail: Product categorization from images

Key Settings

Essential Parameters

  • pretrained: Use ImageNet pre-trained weights (recommended)
  • num_classes: Number of output categories
  • batch_size: Images per training batch (16-64 typical)
  • learning_rate: Step size for optimization (0.0001-0.001)
  • epochs: Number of complete passes through dataset

Data Augmentation

  • rotation: Random rotation (-20° to +20°)
  • flip: Horizontal/vertical flipping
  • zoom: Random zoom (0.8x to 1.2x)
  • brightness: Brightness adjustment
  • normalization: ImageNet statistics (mean, std)

Advanced Configuration

  • optimizer: Adam, SGD, or AdamW
  • scheduler: Learning rate scheduling (StepLR, CosineAnnealing)
  • dropout: Regularization to prevent overfitting
  • weight_decay: L2 regularization strength

Performance Metrics

  • Overall Accuracy: 97.0% on test set
  • Macro Average Precision: 96.3%
  • Macro Average Recall: 96.7%
  • Macro Average F1: 96.3%
  • Training Time: ~18 minutes (GPU: NVIDIA RTX 3080)
  • Inference Speed: ~45 images/second

Tips for Success

  1. Transfer Learning: Always start with pretrained weights when possible
  2. Data Augmentation: Essential for small datasets to improve generalization
  3. Proper Splits: Use stratified splits to maintain class balance
  4. Learning Rate: Start with 0.001, reduce if training unstable
  5. Early Stopping: Monitor validation loss to prevent overfitting
  6. Image Quality: Ensure consistent image quality and resolution

Example Scenarios

Scenario 1: Healthy Bean Plant

  • Input: Clear image of healthy bean leaves
  • Prediction: Healthy (confidence: 99.2%)
  • Action: No treatment needed

Scenario 2: Angular Leaf Spot Detected

  • Input: Image showing characteristic angular lesions
  • Prediction: Angular Leaf Spot (confidence: 96.8%)
  • Action: Apply copper-based fungicide, remove affected leaves

Scenario 3: Bean Rust Identification

  • Input: Image with rust-colored pustules on leaves
  • Prediction: Bean Rust (confidence: 95.4%)
  • Action: Apply sulfur-based fungicide, improve air circulation

Troubleshooting

Problem: Model overfitting (high training acc, low validation acc)

  • Solution: Increase data augmentation, add dropout, reduce model complexity

Problem: Low accuracy on all classes

  • Solution: Train longer, increase model capacity, improve data quality

Problem: One class performing poorly

  • Solution: Check class balance, add more samples, adjust class weights

Problem: Predictions inconsistent

  • Solution: Ensure proper image preprocessing, check normalization

Model Architecture Highlights

ResNet-18 consists of:

  • Initial Conv Layer: 7x7 convolution, 64 filters
  • 4 Residual Blocks: Progressive feature extraction
  • Skip Connections: Enable gradient flow in deep networks
  • Global Average Pooling: Reduce spatial dimensions
  • Fully Connected Layer: Final classification (3 classes)
  • Total Parameters: ~11.7 million (11.2M pretrained + custom head)

Next Steps

After training your ResNet-18 model, you can:

  • Deploy as REST API for real-time predictions
  • Create mobile app using TensorFlow Lite or PyTorch Mobile
  • Integrate with drone imaging for large-scale crop monitoring
  • Fine-tune on additional disease types
  • Export to ONNX for cross-platform deployment
  • Compare with larger models (ResNet-50, EfficientNet)

Command Palette

Search for a command to run...

Schnellzugriffe
STRG + KSuche
STRG + DNachtmodus / Tagmodus
STRG + LSprache ändern

Software-Details
Kompiliert vor 1 Tag
Release: v4.0.0-production
Buildnummer: master@64a3463
Historie: 68 Items