Cheese Texture Classifier (AutoML)

Model Creator: Rumi Loghmani (@rlogh)
Original Dataset: aslan-ng/cheese-image (by Aslan Noorghasemi)

This model performs 4-class texture classification on cheese images using AutoML-optimized transfer learning. The model was developed by Rumi Loghmani using the cheese image dataset created by Aslan Noorghasemi.

Model Description

  • Architecture: Transfer Learning with resnet34
  • Task: 4-class texture classification (Low, Medium-Low, Medium-High, High texture)
  • Input: 224x224 RGB images
  • Output: 4-class probability distribution

Training Details

  • Model Developer: Rumi Loghmani (@rlogh)
  • Dataset: aslan-ng/cheese-image (by Aslan Noorghasemi)
  • AutoML Method: Optuna with 20 trials
  • Transfer Learning: Pre-trained resnet34 backbone
  • Early Stopping: Yes (patience=10)
  • Max Epochs: 50

Performance

  • Test Accuracy: 80.00%
  • Validation Accuracy: 50.00%
  • Test Loss: 1.6345

Best Hyperparameters (AutoML Optimized)

{
  "model_name": "resnet34",
  "dropout_rate": 0.4682019316470914,
  "learning_rate": 0.00027817005315620047,
  "weight_decay": 1.4677013775851028e-05,
  "batch_size": 2
}

Usage

import torch
import torch.nn as nn
from PIL import Image
import torchvision.transforms as transforms
import torchvision.models as models

# Load model (define TransferLearningModel class first)
model = TransferLearningModel(num_classes=4, dropout_rate=0.4682019316470914, model_name='resnet34')
model.load_state_dict(torch.load('pytorch_model.bin'))
model.eval()

# Preprocess image
transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# Load and preprocess image
image = Image.open('cheese_image.jpg').convert('RGB')
input_tensor = transform(image).unsqueeze(0)

# Make prediction
with torch.no_grad():
    output = model(input_tensor)
    probabilities = torch.softmax(output, dim=1)
    predicted_class = torch.argmax(probabilities, dim=1).item()

class_names = ["Low Texture", "Medium-Low Texture", "Medium-High Texture", "High Texture"]
print(f"Predicted class: {class_names[predicted_class]}")

Class Definitions

  • Class 0 (Low Texture): Texture values <= 0.425
  • Class 1 (Medium-Low Texture): Texture values 0.425 < x <= 0.600
  • Class 2 (Medium-High Texture): Texture values 0.600 < x <= 0.775
  • Class 3 (High Texture): Texture values > 0.775

AutoML Features

  • Hyperparameter Optimization: Optuna with 20 trials
  • Architecture Search: ResNet18 vs ResNet34
  • Transfer Learning: Pre-trained ImageNet weights
  • Early Stopping: Prevents overfitting
  • Fixed Budget: 20 trials, 10-minute timeout

Limitations

  • Trained on a very small dataset (30 images)
  • Texture classification may not generalize to all cheese types
  • Performance may vary with different lighting conditions or image quality

AI Usage

This notebook was developed with the assistance of AI as a coding co-pilot. AI tools were used to:

  • Suggest code snippets: AI provided suggestions for implementing various parts of the code, such as the dataset class, model architecture, training loops, and data preprocessing steps.
  • Debug and refactor code: AI helped identify potential errors and suggest ways to refactor code for improved readability and efficiency.
  • Generate documentation: AI assisted in generating explanations for code sections and creating the model card for Hugging Face.
  • Explore potential issues: AI provided insights into potential challenges, such as handling small batch sizes and implementing early stopping, and suggested strategies to address them.

The AI served as a valuable partner throughout the development process, accelerating coding and improving code quality.

Citation

If you use this model, please cite both the model and the original dataset:

Model Citation:

@model{rlogh/cheese-texture-classifier-automl,
  title={Cheese Texture Classifier (AutoML)},
  author={Rumi Loghmani},
  year={2024},
  url={https://huggingface.co/rlogh/cheese-texture-classifier-automl}
}

Dataset Citation:

@dataset{aslan-ng/cheese-image,
  title={Cheese Image Dataset},
  author={Aslan Noorghasemi},
  year={2024},
  url={https://huggingface.co/datasets/aslan-ng/cheese-image}
}
Downloads last month
59
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Dataset used to train rlogh/cheese-texture-classifier-Neural

Space using rlogh/cheese-texture-classifier-Neural 1

Evaluation results