Model Card for Bacterial Morphology Classification

This model classifies bacterial images into three morphological categories: cocci, bacilli, and spirilla.

Model Details

Model Description

It leverages the MobileNetV2 architecture as a base for feature extraction, followed by custom dense layers for classification. The model was fine-tuned on a dataset of bacterial images with images preprocessed to ensure compatibility.

  • Model Developed by: Taraka Ram Donepudi, University of Michigan-Flint, Graduate Student
  • Model Card Author: Yola Charara, University of Michigan-Flint, M.S Data Science-Student
  • Model type: Image classification (multi-class)
  • Language(s) (NLP): English
  • License: CC BY 4.0
  • Finetuned from model: MobileNetV2 (pre-trained on ImageNet)

Uses

Direct Use

This model is suitable for classifying bacterial morphology into three categories based on visual features in microscopy images. It is intended for educational and research purposes.

Out-of-Scope Use

The model is not intended for clinical diagnosis or medical decision-making. Misuse includes applying it to unrelated image classification tasks or using it with non-bacterial images.

Bias, Risks, and Limitations

The model was trained and validated on a specific dataset of bacterial images, which may not represent all possible imaging conditions or bacterial morphologies. It may perform poorly on data outside its training distribution, such as images from different microscopes, lighting conditions, or bacterial species not represented in the dataset.

Recommendations

Users should test the model on other datasets to ensure generalizability and account for variations in bacterial imaging conditions. Misclassification risks should be acknowledged, especially in critical applications.

How to Get Started with the Model

Here is a sample code snippet to use the model:

  • import tensorflow as tf

  • from tensorflow.keras.utils import load_img, img_to_array

  • import numpy as np

  • Load and preprocess an image:

  • img_path = 'path_to_image.jpg'

  • img = load_img(img_path, target_size=(224, 224))

  • img_array = img_to_array(img) / 255.0

  • img_array = np.expand_dims(img_array, axis=0)

  • Predict with the model:

  • prediction = model.predict(img_array)

  • predicted_class = prediction.argmax()

  • print(f"Predicted class: {predicted_class}")

Training Details

Training Data

The model was trained on the [BacterialMorphologyClassification Dataset] (https://huggingface.co/datasets/yolac/BacterialMorphologyClassification). The model was trained on a dataset of bacterial images with 360 training samples across three classes: cocci, bacilli, and spirilla. Images were preprocessed by resizing to 224x224 and normalized to pixel values between 0 and 1.

Training Procedure

  • Base Model: MobileNetV2 (frozen weights)
  • Optimizer: Adam (learning rate: 0.0001)
  • Loss Function: Categorical Crossentropy
  • Metrics: Accuracy
  • Regularization: Dropout layer with 50% dropout rate
  • Early Stopping: Monitored validation loss with a patience of 3 epochs

Preprocessing

All images were resized to 224x224 and normalized by dividing pixel values by 255. Image augmentation was not applied during this training.

Training Hyperparameters

  • Epochs: Up to 50 (early stopping applied)
  • Batch size: 32
  • Dropout: 0.5 on dense layers

Evaluation

Testing Data, Factors & Metrics

Testing Data

The test dataset included unseen images with filenames provided in a separate file. Images were resized and normalized in the same way as training and validation data.

Metrics

  • Accuracy
  • F1 Score

Results

The model achieved 0.85 accuracy and F1 score on the Codalab test set. Codalab leaderboard: https://codalab.lisn.upsaclay.fr/competitions/20680?secret_key=b04da988-294a-4491-831c-3f4b55529a0b

Summary

This bacterial morphology classification model effectively categorizes images into three classes: cocci, bacilli, and spirilla. Leveraging the MobileNetV2 architecture, the model achieves high performance with an accuracy and F1 score of 0.85 on the Codalab test set. It is efficient for educational and research purposes, though not suitable for diagnostic applications without further validation.

Model Architecture and Objective

The model uses the MobileNetV2 architecture with the top layers replaced for the classification task. The objective is to minimize categorical crossentropy loss for three classes.

Model Card Contact

email: [email protected]

Downloads last month
4
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Space using yolac/BacterialMorphologyClassification 1

Collection including yolac/BacterialMorphologyClassification